--- /dev/null
+from migen.fhdl.structure import *
+from migen.bus import wishbone, wishbone2asmi, asmibus
+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
+
+l2_size = 8192 # in bytes
+
+def my_generator():
+ for x in range(100):
+ t = TRead(x)
+ yield t
+
+def main():
+ controller = ASMIcon(sdram_phy, sdram_geom, sdram_timing)
+ bridge = wishbone2asmi.WB2ASMI(l2_size//4, controller.hub.get_port())
+ controller.finalize()
+ initiator = wishbone.Initiator(my_generator())
+ conn = wishbone.InterconnectPointToPoint(initiator.bus, bridge.wishbone)
+
+ logger = DFILogger(controller.dfi)
+
+ def end_simulation(s):
+ s.interrupt = initiator.done
+
+ fragment = controller.get_fragment() + \
+ bridge.get_fragment() + \
+ initiator.get_fragment() + \
+ conn.get_fragment() + \
+ logger.get_fragment() + \
+ Fragment(sim=[end_simulation])
+ sim = Simulator(fragment, Runner(), TopLevel("my.vcd"))
+ sim.run()
+
+main()