Skip to content

cornell-brg/zeppelin

Repository files navigation

Zeppelin

BRG’s Superscalar Modular Processor developed by Parker Schless

Documentation

The main documentation for Zeppelin can be found on the GitHub Pages

History

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.

Testing

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=Verilator

From there, users can run any individual test by specifying its name as a target:

make zeppelin-add-test

Known tests can be listed with the list target.

make list

Finally, all tests can be run with the check target

make check

Running 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

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-native

Programs can also be built for RISCV by omitting the native suffix

make app-hello

These can then be run using the functional-level simulator, specifying the path to the ELF file

make fl-sim
./fl-sim app/hello

They can also be run on Zeppelin version by making the simulator

make zeppelin-sim
./zeppelin-sim +elf=app/hello

Releases

No releases published

Packages

 
 
 

Contributors