Implementation of a processor based RTL emulation platform.
cd scripts
conda-lock lock -p linux-64 -f env.yaml- This will generate a
conda-lock.ymlfile
- For Ubuntu 2025 or later, the system TBB library has been updated to match what KaMinPar uses. Hence, we can skip this step
cd scripts
// Install conda env
conda-lock install -n <name of the environment>
// Change the PKG_CONFIG_PATH to point to the conda env
conda env config vars set PKG_CONFIG_PATH=$CONDA_PREFIX/lib/pkgconfig:$PKG_CONFIG_PATHconda config --set channel_priority true
conda config --add channels defaults
conda create -c litex-hub --prefix ~/.conda-yosys yosys=0.27_4_gb58664d44
conda config --set channel_priority strict
conda config --remove channels defaults
conda activate ~/.conda-yosys- The
yosys.cmdreads the verilog file, lowers it to primitive logic level representations, and uses ABC to map it to LUTs
cd examples
yosys
> script yosys.cmdThe compiler has a functional simulator that you can use to run tests.
cd compiler
just \
top=OneReadOneWritePortSRAM \
dir=../examples num_mods=17 \
num_procs=64 sram_entries=16384 \
sram_width=256 \
inter_mod_nw_lat=1 inter_proc_nw_lat=1 beecd compiler
just \
top=DigitalTop \
instance_path=TestDriver.testHarness.chiptop0.system \
check_cycle_period=100 \
sram_entries=16384 \
imem_lat=1 \
num_mods=17 \
num_procs=64 \
inter_mod_nw_lat=1 \
dmem_rd_lat=1 \
inter_proc_nw_lat=1 \
bee_vcdAnother example:
just \
dir=../examples/digitaltop \
top=DigitalTop \
instance_path=TOP.TestDriver.testHarness.chiptop0.system \
ref_skip_cycles=200 \
check_cycle_period=100 \
time_steps_per_cycle=5 \
sram_entries=16384 imem_lat=1 num_mods=17 num_procs=64 inter_mod_nw_lat=1 dmem_rd_lat=0 inter_proc_nw_lat=1 \
sim_dir=sim-dir-digitaltop-hello \
vcd_file=hello.vcd \
bee_vcdThis is useful to check if the functional simulator has any bugs
cd compiler
just top=DigitalTop sram_entries=16384 sim_dir=blif-sim-dir-DigitalTop run_blifsim
cd compiler
just top=DigitalTop instance_path=TOP.TestDriver.testHarness.chiptop0.system run_test_gen_from_vcd
cd compiler
just test
This essentially corresponds to metasims in FireSim: we expose AXI ports that connect to the XDMA module and simulate everything downstream. Running the below commands will generate the RTL, verilate it and create rust bindings so that the driver can perform AXI transactions.
cd sim/metasims
make test
cd fpga/alveo-u250/design/
make ip_project && make all
cd sim/alveo-u250/
make run