5 from migen
.genlib
.cdc
import Gearbox
8 # connect two gearbox together:
9 # first gearbox: iwidth > owidth
10 # second gearbox: iwidth < owidth
12 # compare input data to output data, should be similar
13 # various datawidth/clock ratios
16 def data_generator(dut
):
23 def data_checker(dut
):
29 class GearboxDUT(Module
):
31 self
.submodules
.gearbox_down
= Gearbox(10, "user", 8, "gearbox")
32 self
.submodules
.gearbox_up
= Gearbox(8, "gearbox", 10, "user")
33 self
.comb
+= self
.gearbox_up
.i
.eq(self
.gearbox_down
.o
)
34 self
.i
, self
.o
= self
.gearbox_down
.i
, self
.gearbox_up
.o
37 class TestGearbox(unittest
.TestCase
):
38 def test_gearbox(self
):
40 generators
= {"user": [data_generator(dut
), data_checker(dut
)]}
41 clocks
= {"user": 12.5, "gearbox": 10}
42 run_simulation(dut
, generators
, clocks
, vcd_name
="sim.vcd")
43 self
.assertEqual(0, 0)