ASIC & FPGA, Edge AI & Software, Cloud Systems

Renode MPW tester

This repo is a template for testing SkyWater MPW designs using Renode, Antmicro's open source simulation framework, in a co-simulation setup with Verilator.


Contributors
3

Created
4 years ago

License
Apache-2.0

Languages

python(48.91%)
shell(13.98%)
cmake(13.47%)
diff(6.79%)
Others(16.85%)

Renode MPW tester

Copyright (c) 2022 Antmicro

This repo is a template for testing SkyWater MPW designs using Renode, Antmicro's open source simulation framework, in a co-simulation setup with Verilator.

The setup allows MPW participants to test their HDL by running real software and tests, with the Management Area of the design simulated by Renode and the user area simulated via Verilator.

The FossiAES design submitted to MPW 6 is used as a sample, but this template should be easy to adapt to other digital designs using the new Caravel harness, after minor changes.

The testing flow is executed by GitHub Actions workflow.

To reproduce the flow locally, first run:

./prepare.sh

This will download a pre-built toolchain, apply necessary patches to the design repository and create an output directory for artifacts. Running the prepare script once after cloning the repository is enough - there is no need to call it before every build.

Now run:

./build.sh
./test.sh

To use a custom design, set TEST_NAME, DESIGN_NAME, VTOP, CLASS and INCLUDE parameters when calling the build script:

./build.sh [-v DESIGN_NAME ] [-t TEST_NAME] [-i FILE] [-I INCLUDE] [-c CLASS] [-TV] [MODE]

 -v DESIGN_NAME   - Set design to use, default is aes
 -t TEST_NAME     - Set test name to use, default is aes_test
 -f MAIN_FILE     - Set specific verilator file to use
 -i EXTRA_FILE    - Copy additional file to verilator
 -I INCLUDE       - Set include in sim_main.cpp, default is Vaes.h
 -C CLASS         - Set top class in sim_main.cpp, default is Vaes
 -V               - Display all possible design names
 -T               - Display all possible test names
 -p               - Set PDK root directory, default is /usr/local/share/pdk
 MODE             - Function to run, default is ALL
      soc_configuration       - Build soc configuration
      renode_configuration    - Build renode configuration
      test                    - Build test
      verilate_design         - Verilate design
      ALL                     - Run all functions above

This repository is still work in progress.

Relevant projects

Nothing found

Apologies, but no results were found.

If you’d like to build a commercial product based on our open source solutions, reach out to us via the contact form.