Level RISC-V โ Development Tools Guide¶
This document describes the open-source development tools used in the Level RISC-V project, how to install them, and usage examples.
๐ Tool Summary¶
| Tool | Category | Rating | License | Description |
|---|---|---|---|---|
| Verilator | Simulation | โญโญโญโญโญ | LGPL | Fastest open-source RTL simulator |
| Spike | RISC-V ISS | โญโญโญโญโญ | BSD | Official RISC-V reference simulator |
| Slang (pyslang) | Linting | โญโญโญโญโญ | MIT | Most comprehensive SV parser/linter |
| Yosys | Synthesis | โญโญโญโญโญ | ISC | RTL synthesis framework |
| svlint | Linting | โญโญโญโญ | MIT | Fast SV style linter |
| GTKWave | Waveform | โญโญโญโญ | GPL | Mature VCD/FST viewer |
| Surfer | Waveform | โญโญโญโญ | MIT | Modern, GPU-accelerated viewer |
| > Rating scale: โญ Basic โ โญโญโญโญโญ Professional |
๐ Simulation Tools¶
Verilator (Recommended)¶
Version: 5.026
Rating: โญโญโญโญโญ
Website: https://verilator.org
Verilator is the fastest open-source simulator that compiles SystemVerilog/Verilog RTL to C++/SystemC.
Features¶
- โ SystemVerilog 2017 support
- โ Multi-threaded simulation
- โ Lint and static analysis
- โ Coverage analysis
- โ FST/VCD waveform output
- โ C++ testbench integration
Installation¶
# Ubuntu 24.04
sudo apt install verilator
# From source (recommended, more up to date)
git clone https://github.com/verilator/verilator
cd verilator && git checkout v5.026
autoconf && ./configure --prefix=/opt/verilator
make -j$(nproc) && sudo make install
Usage¶
make verilate # Build model
make run_verilator TEST_NAME=rv32ui-p-add
make lint # Verilator lint (--lint-only -Wall)
Spike (RISC-V ISS)¶
Rating: โญโญโญโญโญ
Website: https://github.com/riscv-software-src/riscv-isa-sim
Official RISC-V Instruction Set Simulator. Used as a golden model.
Features¶
- โ All RISC-V ISA extensions
- โ Commit trace log output
- โ Interactive debugging
- โ Memory model support
Usage¶
Icarus Verilog¶
The project has no Makefile target for Icarus: Level RTL uses advanced SystemVerilog and does not practically build with Icarus. You may install and try it separately; the official flow is Verilator / ModelSim.
๐ Linting Tools¶
Slang (pyslang)¶
Version: 9.1.0
Rating: โญโญโญโญโญ
Website: https://sv-lang.com
The most comprehensive SystemVerilog parser and linter. Full IEEE 1800-2023 alignment.
Features¶
- โ Full SV 2023 support
- โ Semantic analysis
- โ Type checking
- โ 200+ lint rules
- โ Python bindings (pyslang)
Installation¶
Usage¶
Sample Output¶
rtl/core/cpu.sv:182:78: error: no implicit conversion from 'int' to 'spec_type_e'
rtl/core/cpu.sv:309:16: warning: 'case' marked 'unique' has 'default' label
svlint¶
Version: 0.9.5
Rating: โญโญโญโญ
Website: https://github.com/dalance/svlint
Fast SystemVerilog style and naming linter. Rust-based.
Features¶
- โ Fast execution
- โ TOML configuration
- โ Customizable rules
- โ CI/CD friendly
Installation¶
Usage¶
Configuration (.svlint.toml)¶
[option]
exclude_paths = ["subrepo/", "build/"]
[rules]
prefix_module = false
style_keyword_1space = true
case_default = true
Verilator Lint¶
Rating: โญโญโญโญ
Built-in Verilator lint.
Usage¶
๐ Waveform Viewer¶
GTKWave¶
Rating: โญโญโญโญ
Website: http://gtkwave.sourceforge.net
Mature, widely used waveform viewer.
Features¶
- โ VCD, FST, LXT2 support
- โ TCL scripting
- โ Signal search
- โ Analog waveform
Installation¶
Usage¶
Surfer¶
Rating: โญโญโญโญ
Website: https://surfer-project.org
Modern, GPU-accelerated waveform viewer. Rust-based.
Features¶
- โ GPU acceleration
- โ Modern UI
- โ Fast large-file loading
- โ VCD, FST, GHW support
Installation¶
Usage¶
make surfer # Open waveform
make surfer_file WAVE_FILE=path # Open specific file
make wave_compare # GTKWave vs Surfer comparison
๐จ Synthesis Tools¶
Yosys¶
Rating: โญโญโญโญโญ
Website: https://yosyshq.net/yosys
Open-source RTL synthesis framework.
Features¶
- โ Verilog/SystemVerilog parsing
- โ Various optimization passes
- โ FPGA and ASIC targets
- โ Formal verification support
Installation¶
Usage¶
๐งช Test Framework¶
riscv-tests¶
Official RISC-V ISA test suite.
riscv-arch-test¶
RISC-V architecture compliance tests.
CoreMark¶
Embedded system benchmark.
๐ Quick Reference¶
| Command | Description |
|---|---|
make verilate |
Build Verilator model |
make run_verilator TEST_NAME=... |
Run simulation |
make svlint |
Run svlint |
make slang_lint |
Run Slang lint |
make lint_all |
Run all linters |
make lint_install |
Install lint tools |
make gtkwave |
Open GTKWave |
make surfer |
Open Surfer |
make yosys_check |
Yosys synthesis check |
make isa |
Run ISA tests |
make html |
Generate test dashboard |
๐ง Troubleshooting¶
Verilator Errors¶
BLKLOOPINIT error:
VL_SYSTEM_IN error:
svlint Configuration Error¶
pyslang Import Error¶
๐ Additional Resources¶
Last updated: November 2025