Hacker News new | ask | show | jobs
by ekiwi 2024 days ago
> I thought Berkeley's BOOM is way more advanced implementation of RISCV than VexRiscV and it is written in Chisel3.

It is a lot more advanced and thus harder to get started with than VexRiscV.

> BOOM does not look like most effective in terms of LUTs utilisation core.

So the problem is also that the BOOM design is targeted at ASICs. The developers do not generally synthesize BOOM for FPGA. Only as a FireSim project which is using FPGAs to do fast simulations in order to get more accurate performance figures by running real world benchmarks (multiple MHz of target frequency). None of the developers are interested in using BOOM as a computer on an FPGA and thus no one has provided support for that.

> Another thing I also disliked in Chisel3 is dependancy on new intermediate representation of hardware (FIRRTL) which adds one more layer of abstraction and compilation.

I really enjoy working with firrtl. It is generally easy to inspect and quite human readable. With firrtl you can:

- automatically add coverage instrumentation:

  - for fuzzing: https://github.com/ekiwi/rfuzz/tree/master/instrumentation/src/rfuzz

  - for simulator independent coverage [wip]: https://github.com/freechipsproject/treadle/pull/263
- besides Verilog the firrtl compiler can generate SMTLib or btor2 file for model checking: https://github.com/chipsalliance/firrtl/tree/master/src/main...

- for ASIC development it is important to be able to replace all memories in your design with appropriate designs specific to the technology you target: https://chipyard.readthedocs.io/en/latest/Tools/Barstools.ht...

Adam's thesis has some more examples on what you can do with firrtl: https://www2.eecs.berkeley.edu/Pubs/TechRpts/2019/EECS-2019-...

There also might soon be a second implementation of a firrtl to Verilog compiler if you prefer C++ over Scala: https://github.com/llvm/circt

1 comments

Well, as I said this all stuff is very new to me, I do not understand many of the solutions, thanks for explaining. Using C++ as HDL is also interesting idea, for many this could lower the entry barrier.