rtl-artifacts builds a reproducible set of artifacts from several RTL projects. It exists to provide real VCD, FST,FTR, etc. samples for waveform viewers, converters, parsers, regression tests, and tool-behavior comparisons.
Each project is isolated under projects/<name>/ and owns its own Docker image, source cache, build work tree, and artifact recipes. The generated files are written under artifacts/ and are not tracked by Git.
Install these host tools:
- Docker, with permission for the current user to build and run containers
- GNU Make
- Git
- Bash
- standard POSIX command-line tools
First-time builds need network access to upstream source repositories, package mirrors, PyPI, Conan package remotes, xPack releases, Miniforge, and project-managed dependencies.
Check the host:
make tools-checkBuild the default artifact set incrementally:
make collect
find artifacts -type f | sortBuild a subset:
make collect PROJECTS="scr1 tb_complex_types"Run one project directly:
make -C projects/systemc-components collect
make -C projects/tb_complex_types listRemove generated work and selected project artifact directories only when you mean it:
make cleanmake artifacts-clean removes the entire artifacts/ tree. Use it only when you intentionally want to delete existing generated files.
scr1builds SCR1 RISC-V core waveform artifacts for AXI and AHB configurations.picorv32builds PicoRV32 testbench waveform artifacts.chipyardbuilds Chipyard Rocket-based simulation waveform artifacts.tb_complex_typesbuilds a compact SystemVerilog waveform fixture for complex type dumping behavior using supported open-source simulators.systemc-componentsbuilds MINRES SystemC-Components example waveform and transaction-recording artifacts.
VCD is Value Change Dump, a text waveform format widely supported by simulators and viewers. The default artifact set contains these VCD files:
artifacts/tb_complex_types/verilator/vcd/waves.vcdartifacts/tb_complex_types/icarus/vcd/waves.vcdartifacts/systemc-components/converted/transaction_recording__transaction_recording_cftr/my_db.vcdartifacts/systemc-components/converted/transaction_recording__transaction_recording_ftr/my_db.vcdartifacts/systemc-components/waves/apb_bfm__apb_bfm/apb_trace.vcdartifacts/systemc-components/waves/lwtr__lwtr_example/my_db.vcdartifacts/systemc-components/waves/transaction_recording__transaction_recording/my_db.vcd
FST is Fast Signal Trace, a compact waveform format used by GTKWave and related tools. The default artifact set contains these FST files:
artifacts/scr1/max/axi/isr_sample.fstartifacts/scr1/max/axi/riscv_arch.fstartifacts/scr1/max/axi/riscv_compliance.fstartifacts/scr1/max/axi/riscv_isa.fstartifacts/scr1/max/axi/hello.fstartifacts/scr1/max/axi/coremark.fstartifacts/scr1/max/axi/dhrystone21.fstartifacts/scr1/max/ahb/isr_sample.fstartifacts/scr1/max/ahb/riscv_arch.fstartifacts/scr1/max/ahb/riscv_compliance.fstartifacts/scr1/max/ahb/riscv_isa.fstartifacts/scr1/max/ahb/hello.fstartifacts/scr1/max/ahb/coremark.fstartifacts/scr1/max/ahb/dhrystone21.fstartifacts/picorv32/test_vcd.fstartifacts/picorv32/test_wb_vcd.fstartifacts/picorv32/test_ez_vcd.fstartifacts/chipyard/DualRocketConfig/dhrystone.fstartifacts/chipyard/DualRocketConfig/towers.fstartifacts/chipyard/DualRocketConfig/qsort.fstartifacts/chipyard/DualRocketConfig/memcpy.fstartifacts/chipyard/DualRocketConfig/mt-memcpy.fstartifacts/chipyard/DualRocketConfig/mt-vvadd.fstartifacts/chipyard/ClusteredRocketConfig/dhrystone.fstartifacts/chipyard/ClusteredRocketConfig/towers.fstartifacts/chipyard/ClusteredRocketConfig/qsort.fstartifacts/chipyard/ClusteredRocketConfig/memcpy.fstartifacts/chipyard/ClusteredRocketConfig/mt-memcpy.fstartifacts/chipyard/ClusteredRocketConfig/mt-vvadd.fstartifacts/tb_complex_types/verilator/fst/waves.fstartifacts/tb_complex_types/icarus/fst/waves.fstartifacts/systemc-components/converted/apb_bfm__apb_bfm/apb_trace.fstartifacts/systemc-components/converted/lwtr__lwtr_example/my_db.fstartifacts/systemc-components/converted/transaction_recording__transaction_recording/my_db.fstartifacts/systemc-components/waves/ace-ace__ace_ace_example/ace_axi_test.fstartifacts/systemc-components/waves/ace-axi__ace_axi_example/ace_axi_test.fstartifacts/systemc-components/waves/ahb_bfm__ahb_bfm/ahb_bfm.fstartifacts/systemc-components/waves/apb_bfm__apb_bfm/apb_bfm.fstartifacts/systemc-components/waves/axi-axi__axi_axi_example/axi-axi.fstartifacts/systemc-components/waves/axi4_tlm-pin-tlm__axi4_tlm_pin_tlm_example/axi4_tlm_pin_tlm.fstartifacts/systemc-components/waves/axi4lite_tlm-pin-tlm__axi4lite_tlm_pin_tlm_example/axi4lite_tlm_pin_tlm.fstartifacts/systemc-components/waves/cxs-channel__cxs_channel/cxs_tlm.fstartifacts/systemc-components/waves/simple_system__simple_system/simple_system.fstartifacts/systemc-components/waves/transaction_recording__transaction_recording_cftr/my_db.fstartifacts/systemc-components/waves/transaction_recording__transaction_recording_ftr/my_db.fst
FTR is Fast Transaction Recording, a transaction-level recording format produced by SystemC-Components examples. The default artifact set contains these FTR files:
artifacts/systemc-components/ftr/ace-axi__ace_axi_example/ace_axi_test.ftrartifacts/systemc-components/ftr/ahb_bfm__ahb_bfm/ahb_bfm.ftrartifacts/systemc-components/ftr/apb_bfm__apb_bfm/apb_bfm.ftrartifacts/systemc-components/ftr/axi4_tlm-pin-tlm__axi4_tlm_pin_tlm_example/axi4_tlm_pin_tlm.ftrartifacts/systemc-components/ftr/axi4lite_tlm-pin-tlm__axi4lite_tlm_pin_tlm_example/axi4lite_tlm_pin_tlm.ftrartifacts/systemc-components/ftr/cxs-channel__cxs_channel/cxs_tlm.ftrartifacts/systemc-components/ftr/lwtr4axi__lwtr4axi_example/lwtr4axi.ftrartifacts/systemc-components/ftr/simple_system__simple_system/simple_system.ftrartifacts/systemc-components/ftr/transaction_recording__transaction_recording_cftr/my_db.ftrartifacts/systemc-components/ftr/transaction_recording__transaction_recording_ftr/my_db.ftr
GitHub releases upload every generated artifact as a separate release asset. Nested artifact paths are flattened by replacing / with __, so each file can be downloaded individually from the release page.