Hey all,
This is a very large update to BOOM, and I felt it deserved a post.
0) To run BOOM use:
cd rocket-chip/emulator; make run CONFIG=BOOMConfig.
The BOOMCPPConfig (among others) has been removed. To see what configurations are available, look at rocket-chip/src/main/scala/PrivateConfigs.scala and rocket-chip/boom/src/main/scala/configs.scala.
A lot of work has gone into the rocket-chip L2 and uncore memory system in the past year, and BOOM now instantiates an L2 by default.
1) Completely moved to Chisel3/FIRRTL.
BOOM now uses a complete ground-up rewrite of Chisel, which interfaces with a new "Flexible IR for RTL" called FIRRTL. More info can be found here: (
https://github.com/ucb-bar/chisel3) and (
https://github.com/ucb-bar/firrtl). There are some (small) syntax/API differences. While Chisel3 is still 'alpha', the entire rocket-chip ecosystem has upgraded.
2) However, FIRRTL does not have a C++ backend. Instead, we only generate Verilog and use Verilator for our simulations. This makes mixed simulation easier and the performance hit isn't very big. It takes me ~5 minutes to compile and run through all of the riscv-tests.
3) BOOM is updated to the latest rocket-chip goodies, including the Privileged Architecture Spec v1.9 and the RISC-V External Debug Spec.
4) BOOM is now untethered and the non-standard HTIF interface has been removed.
The Debug interface is used in its place for loading in test programs and recreating the old tethered setup via riscv-fesvr as before.
5) BOOM supports uncached memory operations (and memory-mapped I/Os).
6) Zynq FPGA support has been temporarily removed.
Adding this back is a high priority for us, but all of the changes to the platform spec and the removal of HTIF requires a rewrite.
7) This update is still only lightly tested, so I apologize for the growing pains involved. The rocket-chip ecosystem is moving at a very fast pace, so I (already) have some more catching up to do!
8) I have quite a few more exciting things on the horizon for BOOM...
Let me know if you have any questions!
Enjoy,
Chris