add (but comment out) reset signal
[ieee754fpu.git] / src / add / test_dual.py
index 43f28404a438136e890bed8b9b6c4e17a9eb0865..15f5c762df9a2e78ede74c8725c3806a022cc2ef 100644 (file)
@@ -4,13 +4,6 @@ from dual_add_experiment import ALU
 
 
 def get_case(dut, a, b, c):
-    yield dut.c.v.eq(c)
-    yield dut.c.stb.eq(1)
-    yield
-    yield
-    c_ack = (yield dut.c.ack)
-    assert c_ack == 0
-
     yield dut.a.v.eq(a)
     yield dut.a.stb.eq(1)
     yield
@@ -18,32 +11,44 @@ def get_case(dut, a, b, c):
     a_ack = (yield dut.a.ack)
     assert a_ack == 0
 
+    yield dut.a.stb.eq(0)
+
     yield dut.b.v.eq(b)
     yield dut.b.stb.eq(1)
+    yield
+    yield
     b_ack = (yield dut.b.ack)
     assert b_ack == 0
 
+    yield dut.b.stb.eq(0)
+
+    yield dut.c.v.eq(c)
+    yield dut.c.stb.eq(1)
+    yield
+    yield
+    c_ack = (yield dut.c.ack)
+    assert c_ack == 0
+
+    yield dut.c.stb.eq(0)
+
+    yield dut.z.ack.eq(1)
+
     while True:
-        yield
         out_z_stb = (yield dut.z.stb)
         if not out_z_stb:
+            yield
             continue
-        yield dut.a.stb.eq(0)
-        yield dut.b.stb.eq(0)
-        yield dut.c.stb.eq(0)
-        yield dut.z.ack.eq(1)
-        yield
+
+        out_z = yield dut.z.v
+
         yield dut.z.ack.eq(0)
-        yield
-        yield
         break
 
-    out_z = yield dut.z.v
     return out_z
 
 def check_case(dut, a, b, c, z):
     out_z = yield from get_case(dut, a, b, c)
-    assert out_z == z, "Output z 0x%x not equal to expected 0x%x" % (out_z, z)
+    assert out_z == z, "Output z 0x%x != 0x%x" % (out_z, z)
 
 def testbench(dut):
     yield from check_case(dut, 0, 0, 0, 0)