Git Product home page Git Product logo

azadi-verify's Introduction

Verification Environment for Azadi SoC

This repository contain tests (in C and assembly both), benchmarks and the test-benches for the verification of Azadi SoC. It also has an extension to the DV environment from lowRISC (commit hash: 86084b9d3d4ffb569287aa9ee0869048c5b6b78d) which adds support for the "F" and "D" Standard Extension for Single-Precision and Double-Precision Floating-Point respectively.

Repositories and versions to use:

Azadi RISC-V SoC

Azadi SoC after it's first tapeout in MPW-two.

Please stick to version v0.0.1 release (commit hash: 7a9ffe84d3ff1eeba20a23b0a386c8a03c60e2c6)

git clone https://github.com/merledu/azadi-new.git
cd azadi-new
git checkout v0.0.1-7a9ffe84

Note: Until the changes to the trace port for floating-point signals are merged in merledu/azadi-new, use this fork instead.

riscv-dv

Random instruction generator for RISC-V processor verification (commit hash: 3da32bbf6080d3bf252a7f71c5e3a32ea4924e49)

git clone https://github.com/google/riscv-dv.git
cd riscv-dv
git checkout 3da32bbf

Setting up the environment

Make sure the environment variables for the instruction set simulator such as Spike or OVPsim and the RISC-V GNU compiler toolchain are set. In addition to the RISCV_GCC and RISCV_OBJCOPY environment variables, you'll also have to set one more with the directory where you'll be cloning the repos.

mkdir azadi_regresion
export DV_AZADI=/path/to/azadi_regression

For csh or its derivatives:

setenv DV_AZADI /path/to/azadi_regression

Cloning the repo

All directories need to be created at the root level with the rest of the repos.

cd $DV_AZADI
git clone https://github.com/merledu/azadi-verify.git
cd azadi-verify

Once inside this directory, you can start the process of cloning the repos mentioned here. Just run:

make setup

and it will clone the random instruction generator in the $DV_AZADI/google_riscv-dv directory and the Azadi RISC-V SoC in the $DV_AZADI/azadi-new directory. It will also create a folder regr in the same directory and run an arithmetic instruction test (without any load/store/branch instructions) with ITERATIONS=1 using the Xcelium simulator by default. This is to make sure that the environment has been correctly setup. The steps can also be performed individually by running:

make env

followed by:

make verify

Running the regression

Currently, our extension of the DV environment enables the random instruction generator for generating the assembly for the floating-point instructions and the coverage options for the Xcelium simulator. To run a test, cd into your working directory and type:

make -f $DV_AZADI/azadi-verify/Makefile \
 > TEST=<testname> \
 > ITERATIONS=<count> \
 > ISA=<risc-v ISA subset> \
 > SEED=<seed> # random, if not provided

# For example to run a regression on the whole
# of the `RV32IMFDC` subset: (with coverage and waveform dump)

make -f $DV_AZADI/azadi-verify ISA=rv32imfdc COV=1 WAVES=1

The coverage reports and the waveforms for each test under all can be found in the rtl_sim directory and in case of the coverage report can also be merged post-regression to give the aggregated coverage.

Verification Status

The verifcation is being done by using the azadi-verify repo, the status of all the tests can be found Verification Basic Tests Sheet.

azadi-verify's People

Contributors

za1nrkhan avatar wishahnaseer avatar zeeshanrafique23 avatar sajjadahmed677 avatar auringzaibsabir avatar wishah-naseer avatar kinzaqamar avatar usmnzain avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.