BRG’s Superscalar Modular Processor developed by Parker Schless
The main documentation for Zeppelin can be found on the GitHub Pages
Zeppelin owes much of its infrastructure and early exploratory work to BLIMP, BRG's first modular processor developed by Aidan McNay. Zeppelin would not be possible without the groundwork laid out by BLIMP.
Zeppelin uses CMake as its build system generator. To begin testing, first
generate the build system using CMake, optionally specifying either Verilator
or VCS as the Verilog compiler (Zeppelin uses Verilator by default)
mkdir build
cd build
cmake .. -DCMAKE_Verilog_COMPILER_ID=VerilatorFrom there, users can run any individual test by specifying its name as a target:
make zeppelin-add-testKnown tests can be listed with the list target.
make listFinally, all tests can be run with the check target
make checkRunning tests as shown above can often be slow; users may additionally want to
specify a level of parallelism (ex. make -j ALU_test) or specify a different
backend when generating the build system (ex. cmake .. -GNinja)
Simulation programs are kept in the app directory. A given program can be
built natively by with the target app-<program>-native, which will build
<program>-native in the app directory
make app-hello-native
./app/hello-nativePrograms can also be built for RISCV by omitting the native suffix
make app-helloThese can then be run using the functional-level simulator, specifying the path to the ELF file
make fl-sim
./fl-sim app/helloThey can also be run on Zeppelin version by making the simulator
make zeppelin-sim
./zeppelin-sim +elf=app/hello