[libre-riscv-dev] formal proof NLnet proposal in
Luke Kenneth Casson Leighton
lkcl at lkcl.net
Mon Sep 23 19:24:11 BST 2019
The two primary keywords in verilog (and yosys, and therefore in nmigen)
are "assert" and "assume".
In nmigen there is a nice set of wrapper operators one of which is called
"Past".
You can Assert() that a condition involving a signal from the Past() holds
true.
This is what the nmigen FIFO proof does, because it makes sure that the
data going IN to the FIFO equals the data coming OUT of the pipe, 2 cycles
later, on a 2 entry FIFO, by Asserting Past(Past(din))== dout
In some ways if you are used to python assert statements it is dead easy.
Hendrick the stuff you did, which you described several months back, is at
the level of z3 solver and yices.
L.
--
---
crowd-funded eco-conscious hardware: https://www.crowdsupply.com/eoma68
More information about the libre-riscv-dev
mailing list