forked from libre-chip/fayalite
WIP getting queue formal to pass -- passes for capacity <= 2
This commit is contained in:
parent
bc26fe32fd
commit
3e2fb9b94f
5 changed files with 343 additions and 77 deletions
|
@ -3390,7 +3390,15 @@ fn test_formal() {
|
|||
assert_export_firrtl! {
|
||||
m =>
|
||||
"/test/check_formal.fir": r#"FIRRTL version 3.2.0
|
||||
circuit check_formal:
|
||||
circuit check_formal: %[[
|
||||
{
|
||||
"class": "firrtl.transforms.BlackBoxInlineAnno",
|
||||
"name": "fayalite_formal_reset.v",
|
||||
"text": "module __fayalite_formal_reset(output rst);\n reg rst;\n (* gclk *)\n reg gclk;\n initial rst = 1;\n always @(posedge gclk)\n rst <= 0;\nendmodule\n",
|
||||
"target": "~check_formal|formal_reset"
|
||||
}
|
||||
]]
|
||||
type Ty0 = {rst: UInt<1>}
|
||||
module check_formal: @[module-XXXXXXXXXX.rs 1:1]
|
||||
input clk: Clock @[module-XXXXXXXXXX.rs 2:1]
|
||||
input en1: UInt<1> @[module-XXXXXXXXXX.rs 3:1]
|
||||
|
@ -3399,12 +3407,21 @@ circuit check_formal:
|
|||
input pred1: UInt<1> @[module-XXXXXXXXXX.rs 6:1]
|
||||
input pred2: UInt<1> @[module-XXXXXXXXXX.rs 7:1]
|
||||
input pred3: UInt<1> @[module-XXXXXXXXXX.rs 8:1]
|
||||
assert(clk, pred1, en1, "en check 1") @[module-XXXXXXXXXX.rs 9:1]
|
||||
assume(clk, pred2, en2, "en check 2") @[module-XXXXXXXXXX.rs 10:1]
|
||||
cover(clk, pred3, en3, "en check 3") @[module-XXXXXXXXXX.rs 11:1]
|
||||
assert(clk, pred1, UInt<1>(0h1), "check 1") @[module-XXXXXXXXXX.rs 12:1]
|
||||
assume(clk, pred2, UInt<1>(0h1), "check 2") @[module-XXXXXXXXXX.rs 13:1]
|
||||
cover(clk, pred3, UInt<1>(0h1), "check 3") @[module-XXXXXXXXXX.rs 14:1]
|
||||
inst formal_reset of formal_reset @[formal.rs 189:24]
|
||||
assert(clk, pred1, and(en1, not(formal_reset.rst)), "en check 1") @[module-XXXXXXXXXX.rs 9:1]
|
||||
inst formal_reset_1 of formal_reset @[formal.rs 189:24]
|
||||
assume(clk, pred2, and(en2, not(formal_reset_1.rst)), "en check 2") @[module-XXXXXXXXXX.rs 10:1]
|
||||
inst formal_reset_2 of formal_reset @[formal.rs 189:24]
|
||||
cover(clk, pred3, and(en3, not(formal_reset_2.rst)), "en check 3") @[module-XXXXXXXXXX.rs 11:1]
|
||||
inst formal_reset_3 of formal_reset @[formal.rs 189:24]
|
||||
assert(clk, pred1, and(UInt<1>(0h1), not(formal_reset_3.rst)), "check 1") @[module-XXXXXXXXXX.rs 12:1]
|
||||
inst formal_reset_4 of formal_reset @[formal.rs 189:24]
|
||||
assume(clk, pred2, and(UInt<1>(0h1), not(formal_reset_4.rst)), "check 2") @[module-XXXXXXXXXX.rs 13:1]
|
||||
inst formal_reset_5 of formal_reset @[formal.rs 189:24]
|
||||
cover(clk, pred3, and(UInt<1>(0h1), not(formal_reset_5.rst)), "check 3") @[module-XXXXXXXXXX.rs 14:1]
|
||||
extmodule formal_reset: @[formal.rs 168:5]
|
||||
output rst: UInt<1> @[formal.rs 171:32]
|
||||
defname = __fayalite_formal_reset
|
||||
"#,
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue