from migen.fhdl.std import *
from migen.genlib.cdc import GrayCounter
-from migen.sim.generic import run_simulation
+from migen.sim import Simulator
-class TB(Module):
- def __init__(self, width=3):
- self.width = width
- self.submodules.gc = GrayCounter(self.width)
- self.prng = Random(7345)
+def tb(dut):
+ prng = Random(7345)
+ for i in range(35):
+ print("{0:0{1}b} CE={2} bin={3}".format((yield dut.q),
+ flen(dut.q), (yield dut.ce), (yield dut.q_binary)))
+ yield dut.ce, prng.getrandbits(1)
+ yield
- def do_simulation(self, selfp):
- print("{0:0{1}b} CE={2} bin={3}".format(selfp.gc.q,
- self.width, selfp.gc.ce, selfp.gc.q_binary))
- selfp.gc.ce = self.prng.getrandbits(1)
if __name__ == "__main__":
- run_simulation(TB(), ncycles=35)
+ dut = GrayCounter(3)
+ Simulator(dut, tb(dut)).run()