Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's the difference between Chisel and Lava and CLaSH?

Tags:

lava

clash

chisel

I've been studying the sources of Chisel and also various Lavas (Kansas, Chalmers and Xilinx flavors) and CLaSH. I'm trying to understand what's the main selling points of Chisel versus the others. The main one I've identified is fast simulation.

I was wondering if people who have studied more in-depth can point out other advantages, disadvantages and trade-offs.

(Sorry if it's too much of a discussion question. I tried posting to chisel-users but apparently you need to be accepted as a member to do that.)

like image 468
Michael Fox Avatar asked Dec 14 '14 18:12

Michael Fox


1 Answers

First, a disclaimer that I'm a heavy Chisel user but have only passing familiarity with the Haskell-based DSELs that you mention.

I think the ability of Chisel to target multiple backends (C++, Verilog, etc.) is a significant advantage. The generated C++ allows cycle-accurate simulation at many times the speed of Verilog/VHDL simulators, because it avoids the event-driven model inherent to those languages.

This is not an intrinsic limitation, but Lava and CLaSH seem to be mostly targeted at FPGA implementations, while Chisel has been used for work on both FPGAs and ASICs. Chisel may also be a bit better supported; code, instructions, and examples are all available on GitHub, and the language remains under active development.

There are also differences between Haskell and Scala (the parent languages); if you're more comfortable in one or the other, it might make getting started a bit easier. (I'll leave the "language wars" to the experts.)

like image 164
Ben Avatar answered Sep 30 '22 18:09

Ben