Skip to content

Formal verification on NutShell using riscv-spec-core

License

Notifications You must be signed in to change notification settings

iscas-tis/nutshell-fv

 
 

Repository files navigation

NutShell Formal Verification

This project is a case study using riscv-spec-core on Nutshell for formal verification.

NutShell (果壳)

NutShell is a processor developed by the OSCPU (Open Source Chip Project by University) team. Currently, it supports riscv64/32. More information about NutShell see its GitHub repo.

Run Verification Directly

Install Dependency

Install btormc:

git clone https://github.com/Boolector/boolector.git
cd boolector
./contrib/setup-lingeling.sh
./contrib/setup-btor2tools.sh
./configure.sh && cd build && make -j$(nproc)
sudo make install
cd ../..

Initialize This Project

git clone https://github.com/iscas-tis/nutshell-fv
cd nutshell-fv
git submodule update --init --recursive

Run Verification

In this project, run:

mill chiselModule.test.testOnly formal.NutCoreFormalSpec

This will run the test case formal.NutCoreFormalSpec, which transforms NutCore (core computing unit) with assertions and SpecCore in riscv-spec-core to a transaction system and then passes it to the formal verification backend.

Modifications On NutShell

Search Formal in source code to see the main modifications.

About

Formal verification on NutShell using riscv-spec-core

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Scala 56.4%
  • Tcl 34.4%
  • Verilog 5.5%
  • C 1.9%
  • Makefile 1.0%
  • SystemVerilog 0.7%
  • Other 0.1%