2014-12-14 8 views
5

Ich habe die Quellen von Chisel und auch verschiedene Lavas (Kansas, Chalmers und Xilinx Aromen) und CLaSH studiert. Ich versuche zu verstehen, was die Hauptverkaufsargumente von Chisel im Vergleich zu den anderen sind. Die wichtigste, die ich identifiziert habe, ist schnelle Simulation.Was ist der Unterschied zwischen Chisel und Lava und CLaSH?

Ich frage mich, ob Leute, die tiefer in die Tiefe geblickt haben, auf andere Vorteile, Nachteile und Kompromisse hinweisen können.

(Sorry, wenn es zu viel von einer Diskussion Frage ist. Ich habe versucht Posting to-User Meißel aber offenbar müssen Sie als Mitglied akzeptiert werden, das zu tun.)

Antwort

5

Zuerst eine Verzichtserklärung, die ich bin schwerer Meißel-Benutzer, aber haben nur vertraut mit den Haskell-basierten DSELs, die Sie erwähnen.

Ich denke, die Fähigkeit von Chisel, mehrere Backends (C++, Verilog, etc.) anzusprechen, ist ein wesentlicher Vorteil. Das generierte C++ ermöglicht eine zyklusgenaue Simulation der Verilog/VHDL-Simulatoren um ein Vielfaches schneller, da das für diese Sprachen typische ereignisgesteuerte Modell vermieden wird.

Dies ist keine intrinsische Einschränkung, aber Lava und CLaSH scheinen hauptsächlich auf FPGA-Implementierungen ausgerichtet zu sein, während Chisel für Arbeiten an FPGAs und ASICs verwendet wurde. Meißel kann auch ein bisschen besser unterstützt werden; Code, Anweisungen und Beispiele sind alle available on GitHub, und die Sprache bleibt unter aktiver Entwicklung.

Es gibt auch Unterschiede zwischen Haskell und Scala (die übergeordneten Sprachen); Wenn Sie sich in der einen oder anderen Situation wohler fühlen, könnte es den Einstieg etwas erleichtern. (Ich werde die "Sprachkriege" den Experten überlassen.)