This allows running several operation cases in succession, without needing
to restart the processes, losing state and trace history.
I expect the need to synchronize the processes for each new operation.
class CompUnitParallelTest:
class CompUnitParallelTest:
- def __init__(self, dut,
- # TODO add a, b, expected_o, and other parameters such as imm_mode, zero
- # operand etc.
- ):
+ def __init__(self, dut):
self.dut = dut
# Operation cycle should not take longer than this:
self.dut = dut
# Operation cycle should not take longer than this:
self.MIN_BUSY_LOW = 5
def driver(self):
self.MIN_BUSY_LOW = 5
def driver(self):
print("Begin parallel test.")
print("Begin parallel test.")
+ yield from self.operation()
+
+ # TODO add a, b, expected_o, and other parameters such as imm_mode, zero
+ # operand etc.
+ def operation(self):
+ yield from self.issue()
# issue_i starts inactive
yield self.dut.issue_i.eq(0)
# issue_i starts inactive
yield self.dut.issue_i.eq(0)