clean up unit_test_single get_case based on how dual_add works
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 27 Feb 2019 00:29:50 +0000 (00:29 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 27 Feb 2019 00:29:50 +0000 (00:29 +0000)
src/add/unit_test_single.py

index ca5c14aa14f5365c2b2e0168fcab7a4aace5fffb..609ff892eb6e3bddda20d7b40d2188054ba79ab2 100644 (file)
@@ -43,22 +43,28 @@ def get_case(dut, a, b):
     yield
     a_ack = (yield dut.in_a.ack)
     assert a_ack == 0
+
+    yield dut.in_a.stb.eq(0)
+
     yield dut.in_b.v.eq(b)
     yield dut.in_b.stb.eq(1)
+    yield
+    yield
     b_ack = (yield dut.in_b.ack)
     assert b_ack == 0
 
+    yield dut.in_b.stb.eq(0)
+
+    yield dut.out_z.ack.eq(1)
+
     while True:
-        yield
         out_z_stb = (yield dut.out_z.stb)
         if not out_z_stb:
+            yield
             continue
         out_z = yield dut.out_z.v
         yield dut.out_z.ack.eq(0)
-        yield dut.in_a.stb.eq(0)
-        yield dut.in_b.stb.eq(0)
         yield
-        yield dut.out_z.ack.eq(1)
         break
 
     return out_z