no need to check individual port members, just check the Record (dut.i.ctx.op)
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 15 Jul 2020 10:18:27 +0000 (11:18 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 15 Jul 2020 10:18:27 +0000 (11:18 +0100)
src/soc/fu/spr/formal/proof_main_stage.py

index 457f89a1b32b31c499db0b1e2539a5ed772f7a77..b831bc63dfefe24618633b5634fb605e61ce62b9 100644 (file)
@@ -57,13 +57,16 @@ class Driver(Elaboratable):
                  ca_in.eq(AnyConst(0b11)),
                  so_in.eq(AnyConst(1))]
 
+        # and for the context muxid
+        width = dut.i.ctx.muxid.width
+        comb += dut.i.ctx.muxid.eq(AnyConst(width))
+
+        # assign the PowerDecode2 operation subset
         comb += dut.i.ctx.op.eq(rec)
 
-        # Assert that op gets copied from the input to output
-        for rec_sig in rec.ports():
-            name = rec_sig.name
-            dut_sig = getattr(dut.o.ctx.op, name)
-            comb += Assert(dut_sig == rec_sig)
+        # check that the operation (op) is passed through (and muxid)
+        comb += Assert(dut.o.ctx.op == dut.i.ctx.op )
+        comb += Assert(dut.o.ctx.muxid == dut.i.ctx.muxid )
 
         return m