3 ms·
got it - it's like chisel. thanks
by tubby12345 5y ago
got it - it's like chisel. thanks
- rowanG077 5y agoNot exactly. Chisel is a DSL while clash is not. But it's at the same level of circuit design abstraction.
- rowanG077 5y agoLooking at your posting history I can be a little more concrete: Chisel is essentially a metaprogramming framework for VHDL/Verilog. Clash is a compiler closely based on GHC that compiles Haskell code, not a DSL defined within Haskell, to VHDL/Verilog.
- tubby12345 5y agoyou're saying seemingly contradictory things (that would best be resolved for me if i just dug into clash, so i will): >HLS generally means you compile a very high level description of computation to VHDL/Verilog. ... >Clash is not itself coming up with a digital circuit like HLS is doing. The developer is specifying the digital circuit. ... >Clash is a compiler closely based on GHC that compiles Haskell code what does it mean for clash to compile haskell code but not to come up with a digital circuit? haskell code (afaik) doesn't represent combinational or sequential logic. well maybe it does using clash (thanks to haskell crazy metaprogramming faciilities) but then what does it mean to "compile"? verilog isn't compiled, it's still synthesized to gates and luts and whatever right? what does clash compile to natively if not verilog/vhdl (which then gets synthesized)?
- rowanG077 5y agoIt's not contradictory. A Haskell function(modulo io and boundless recursion) gets compiled to combinational logic without registers. a digital circuit circuit in clash are normal Haskell function combined together with registers and other combinators. Clash can compile to an executable as well as to hardware. The executable is a cycle accurate simulation of the circuit.