import unittest from migen import * from migen.genlib.divider import Divider from migen.test.support import SimCase class DivisionCase(SimCase, unittest.TestCase): class TestBench(Module): def __init__(self): self.submodules.dut = Divider(4) def test_division(self): def gen(): for dividend in range(16): for divisor in range(1, 16): yield self.tb.dut.dividend_i, dividend yield self.tb.dut.divisor_i, divisor yield self.tb.dut.start_i, 1 yield yield self.tb.dut.start_i, 0 while not (yield self.tb.dut.ready_o): yield self.assertEqual((yield self.tb.dut.quotient_o), dividend//divisor) self.assertEqual((yield self.tb.dut.remainder_o), dividend%divisor) self.run_with(gen())