You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1.6 KiB

Additional prerequisites

git clone https://github.com/antonblanchard/microwatt
cd microwatt;
git apply ../0001-WIP.patch
cd -

Usage

# Enter virtual environment
poetry shell # Activate virtual environment

python ./run.py --help

# Exit virtual environment
exit

Example

In run.py, we check that Microwatt is able to retire one instruction.

Let's find the minimal number of clock cycles to reach this state:

python run.py --mode=cover --pre=20 --post=20
SBY 13:58:23 [smoke_tb] engine_0: ##   0:00:29  Reached cover statement at /home/jf/src/power-fv/cores/microwatt/./run.py:29 ($1) in step 9.
SBY 13:58:23 [smoke_tb] engine_0: ##   0:00:29  Writing trace to VCD file: engine_0/trace0.vcd

In BMC mode, the pre-condition will indeed be unreachable at step 8:

python ./run.py --mode=bmc --pre=8 --post=8
SBY 14:08:17 [smoke_tb] engine_0: ##   0:00:14  Checking assumptions in step 8..
SBY 14:08:20 [smoke_tb] engine_0: ##   0:00:17  Assumptions are unsatisfiable!
SBY 14:08:20 [smoke_tb] engine_0: ##   0:00:17  Status: PREUNSAT
SBY 14:08:20 [smoke_tb] engine_0: finished (returncode=1)
SBY 14:08:20 [smoke_tb] engine_0: Status returned by engine: ERROR

But it will be reachable at step 9:

python ./run.py --mode=bmc --pre=9 --post=9
SBY 14:11:13 [smoke_tb] engine_0: ##   0:00:15  Checking assumptions in step 9..
SBY 14:11:25 [smoke_tb] engine_0: ##   0:00:27  Checking assertions in step 9..
SBY 14:11:26 [smoke_tb] engine_0: ##   0:00:27  Status: passed