wr_rel = dut.wr.rel
go_die = dut.go_die_i
- shadow = dut.shadown_i # note this is inverted (name shadow>N<)
+ shadow = Signal()
+ comb += shadow.eq(~dut.shadown_i)
rst = ResetSignal()
with m.If(Past(wr_rel) & Past(go_wr)):
# Shadow interferes with this and I'm not sure what is
# correct
- with m.If(~Past(shadow)):
+ with m.If(Past(shadow)):
comb += Assert(busy == 0)
with m.Elif(Past(busy) == 1):
comb += Assert(busy == 1)
comb += Assert(has_issued)
# Property 8: Similar to property 4, wr_rel should stay
- # asserted until a go_rd, go_die, or shadow
+ # asserted until a go_rd or go_die
- with m.If((Past(go_wr) == 0) & ~Past(go_die, 2) &
- ~Past(shadow)):
+ with m.If((Past(go_wr) == 0) & ~Past(go_die, 1) &
+ ~shadow):
comb += Assert(~Fell(wr_rel))
# Assume go_wr is not asserted unless wr_rel is
with m.If(wr_rel == 0):