Dependencies
Zeppelin requires the following:
CMake (as well as any preferred backend, such as Ninja)
The RISCV toolchain, for cross-compiling
One of the following (for Verilog simulation):
Exact versions required are unknown, but all functionality was successfully demonstrated on the BRG research server. Those looking to replicate should aim for:
CMake >= 3.10
GCC >= 13 (necessary for using
<format>)RISCV Toolchain built 2025 or later (we built in Jan. 2025)
Verilator >= 5.032
Note that the build system is currently only intended to work on Linux systems.
In particular, MacOS doesn’t natively support ELF utilities (i.e. elf.h),
and has particular command-line flags with CMake that don’t work with the
RISCV toolchain. Further work could be done for this use case, but isn’t
needed at this time.
Verilator Version
Recent Verilator releases disallow function calls into tasks (see the
FUNCTIMECTL
warning). The init_mem flow in the simulator wrappers triggers this
on un-waived builds; the project waiver file
(verilator_waivers.vlt) suppresses it, but the underlying call
shape should eventually be cleaned up.