2014-12-14 16 views
5

Studiuję źródła Dłuta, a także różne smaki Lavas (Kansas, Chalmers i Xilinx) i CLaSH. Próbuję zrozumieć, co jest głównymi zaletami Chisela w porównaniu z innymi. Główną z nich, którą zidentyfikowałem, jest szybka symulacja.Jaka jest różnica między Chisel i Lava i CLaSH?

Zastanawiałem się, czy osoby, które badały bardziej szczegółowo, mogą wskazać inne zalety, wady i kompromisy.

(Przepraszam, jeśli to zbyt wiele kwestii do dyskusji. Próbowałem delegowania do dłuta użytkowników, ale widocznie trzeba być przyjęta jako członek tego robić.)

Odpowiedz

5

pierwsze zastrzeżenie, że jestem ciężki użytkownik dłuta Chisela, ale ma tylko możliwość zaznajomienia się z danymi DSEL opartymi na Haskell, o których wspomniałeś.

Myślę, że zdolność Chisela do kierowania wielu backendów (C++, Verilog itp.) Jest znaczącą zaletą. Wygenerowane C++ pozwala na symulację symulacji cyklu przy wielu prędkościach symulatorów Verilog/VHDL, ponieważ pozwala uniknąć modelu opartego na zdarzeniach, charakterystycznego dla tych języków.

To nie jest samoistne ograniczenie, ale Lava i CLaSH wydają się być głównie ukierunkowane na implementacje FPGA, podczas gdy Chisel został użyty do pracy zarówno na FPGA i ASIC. Dłuto może być nieco lepiej obsługiwane; kod, instrukcje i przykłady są wszystkie available on GitHub, a język pozostaje pod aktywnym rozwojem.

Istnieją również różnice między Haskell i Scala (języki macierzyste); jeśli czujesz się bardziej komfortowo w jednym lub drugim, może to ułatwić rozpoczęcie pracy. (Opuszczę "wojny językowe" dla ekspertów.)