This project is a case study using riscv-spec-core on Nutshell for formal verification.
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.
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 ../..git clone https://github.com/iscas-tis/nutshell-fv
cd nutshell-fv
git submodule update --init --recursiveIn this project, run:
mill chiselModule.test.testOnly formal.NutCoreFormalSpecThis 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.
Search Formal in source code to see the main modifications.