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