| title | version |
|---|---|
MoSAICFireSim |
v0.3.0 |
[[TOC]]
Simple FireSim without Chipyard wrapper for MoSAIC.
Due to FireSim using Chisel v3.6, we need to add a FIRRTL2 shim that will provide the translation of MoSAIC's Chisel 6 wrapper to be consumed by FireSim's Chisel 3.6.
To see the generated FIRRTL:
make firrtlYou'll find the generated FIRRTL in build.
To integrate the Chisel Wrapper for MoSAIC with FireSim, make sure you have $FIRESIM_ROOT defined in your environment. $FIRESIM_ROOT points to where your FireSim checkout is located in your environment.
# Make sure $FIRESIM_ROOT is defined
make firesimFollow the directions for FireSim without Chipyard for details on how to build and run MoSAIC within Verilator and FireSim.
Here are some basic instructions for running the SimpleMoSAIC harness within Verilator.
cd $FIRESIM_ROOT/sim
make TARGET_PROJECT=mosaic PLATFORM=xilinx_alveo_u250 run-verilatorYou will see the following output upon completion:
...
MoSAIC has reset successfully
MoSAIC has reset successfully
MoSAIC has reset successfully
Simulation complete.
*** FAILED *** simulation timed out after 10001 cycles
Emulation Performance Summary
------------------------------
Wallclock Time Elapsed: 0.3 s
Host Frequency: 29.128 KHz
Target Cycles Emulated: 10001
Effective Target Frequency: 29.061 KHz
FMR: 1.00
Note: The latter three figures are based on the fastest target clock.
make: *** [/home/bxeuser/chipyard/sims/firesim/sim/src/main/makefrag/mosaic/metasim.mk:16: run-verilator] Error 1
This is not an Error, as the simulation timed out. In fact, this shows the MoSAIC successfully resetting within Verilator.
Simple Chisel 6 wrapper for MoSAIC.
This project can be built with the following build tools:
scala-cliis the easiest way to build Chisel.- Mill, a modern Scala build tool that's more user friendly than SBT. The instructions for installing
millcan be found here.
make verilogYou'll find the generated SystemVerilog in build.