def main(): dut = ASMIcon(sdram_phy, sdram_geom, sdram_timing) initiator1 = Initiator(my_generator_r(), dut.hub.get_port()) initiator2 = Initiator(my_generator_w(), dut.hub.get_port()) dut.finalize() logger = DFILogger(dut.dfi) def end_simulation(s): s.interrupt = initiator1.done and initiator2.done fragment = dut.get_fragment() + initiator1.get_fragment() + initiator2.get_fragment() + \ logger.get_fragment() + \ Fragment(sim=[end_simulation]) sim = Simulator(fragment, TopLevel("my.vcd")) sim.run(700)
def __init__(self): self.submodules.dut = LASMIcon(sdram_phy, sdram_geom, sdram_timing) self.submodules.xbar = lasmibus.Crossbar([self.dut.lasmic], self.dut.nrowbits) self.submodules.logger = DFILogger(self.dut.dfi) masters = [self.xbar.get_master() for i in range(6)] self.initiators = [Initiator(my_generator(n), master) for n, master in enumerate(masters)] self.submodules += self.initiators
def __init__(self): self.submodules.ctler = LASMIcon(sdram_phy, sdram_geom, sdram_timing) self.submodules.xbar = lasmibus.Crossbar([self.ctler.lasmic], self.ctler.nrowbits) self.submodules.logger = DFILogger(self.ctler.dfi) self.submodules.bridge = wishbone2lasmi.WB2LASMI( l2_size // 4, self.xbar.get_master()) self.submodules.initiator = wishbone.Initiator(my_generator()) self.submodules.conn = wishbone.InterconnectPointToPoint( self.initiator.bus, self.bridge.wishbone)
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, TopLevel("my.vcd")) sim.run()
def __init__(self): self.submodules.ctler = LASMIcon(sdram_phy, sdram_geom, sdram_timing) self.submodules.xbar = lasmibus.Crossbar([self.ctler.lasmic], self.ctler.nrowbits) self.submodules.logger = DFILogger(self.ctler.dfi) self.submodules.writer = dma_lasmi.Writer(self.xbar.get_master()) self.comb += self.writer.address_data.stb.eq(1) pl = self.writer.address_data.payload pl.a.reset = 255 pl.d.reset = pl.a.reset*2 self.sync += If(self.writer.address_data.ack, pl.a.eq(pl.a + 1), pl.d.eq(pl.d + 2) ) self.open_row = None