litex/tb/asmicon/asmicon.py

40 lines
985 B
Python
Raw Normal View History

2012-04-01 17:23:45 -04:00
from migen.fhdl.structure import *
from migen.bus.asmibus import *
from migen.sim.generic import Simulator, TopLevel
from migen.sim.icarus import Runner
from milkymist.asmicon import *
from common import sdram_phy, sdram_geom, sdram_timing, DFILogger
def my_generator_r():
for x in range(50):
2012-04-01 17:23:45 -04:00
t = TRead(x)
yield t
print("reads done")
def my_generator_w():
for x in range(50):
t = TWrite(x, x)
yield t
print("writes done")
2012-04-01 17:23:45 -04:00
def main():
dut = ASMIcon(sdram_phy, sdram_geom, sdram_timing)
initiator1 = Initiator(dut.hub.get_port(), my_generator_r())
initiator2 = Initiator(dut.hub.get_port(), my_generator_w())
2012-04-01 17:23:45 -04:00
dut.finalize()
logger = DFILogger(dut.dfi)
def end_simulation(s):
s.interrupt = initiator1.done and initiator2.done
2012-04-01 17:23:45 -04:00
fragment = dut.get_fragment() + initiator1.get_fragment() + initiator2.get_fragment() + \
2012-04-01 17:23:45 -04:00
logger.get_fragment() + \
Fragment(sim=[end_simulation])
2012-04-26 18:21:10 -04:00
sim = Simulator(fragment, Runner(), TopLevel("my.vcd"))
sim.run(700)
2012-04-01 17:23:45 -04:00
main()