def __init__(self,name,parent,dut): Infrastructure.__init__(self,name,parent) StreamDriverMaster(Stream(dut,"io_rx_cmd"),self.genRxCmd(), dut.clk, dut.reset) StreamDriverMaster(Stream(dut, "io_rx_data"), self.genRxData(), dut.clk, dut.reset) StreamDriverSlave(Stream(dut, "io_tx_cmd"), dut.clk, dut.reset) StreamDriverSlave(Stream(dut, "io_tx_data"), dut.clk, dut.reset)
def __init__(self,name,parent,dut): Infrastructure.__init__(self,name,parent) self.txCmdScordboard = ScorboardInOrder("txCmdScordboard",self) self.txDataScordboard = ScorboardInOrder("txDataScordboard",self) StreamMonitor(Stream(dut,"io_tx_cmd"), self.txCmdScordboard.uutPush, dut.clk, dut.reset) StreamMonitor(Stream(dut, "io_tx_data"), self.txDataScordboard.uutPush, dut.clk, dut.reset) cmd = Transaction() cmd.ip = 0x33445566 cmd.dstPort = 0x3456 cmd.srcPort = 37984 cmd.length = 1+8 self.txCmdScordboard.refPush(cmd) cmd = Transaction() cmd.ip = 0x44556677 cmd.dstPort = 0x4567 cmd.srcPort = 37984 cmd.length = 1+8 self.txCmdScordboard.refPush(cmd) for i in range(2): data = Transaction() data.fragment = 0x22 data.last = 0 self.txDataScordboard.refPush(data) message = "test1234" for f in range(len(message)): data = Transaction() data.fragment = ord(message[f]) data.last = (f == len(message)-1) self.txDataScordboard.refPush(data)
def __init__(self,name,parent,dut): Infrastructure.__init__(self,name,parent) StreamDriverMaster(Stream(dut,"io_cmdA"),self.genCmdA, dut.clk, dut.reset) StreamDriverMaster(Stream(dut, "io_cmdB"), self.genCmdB, dut.clk, dut.reset) StreamDriverSlave(Stream(dut, "io_rsp"), dut.clk, dut.reset) self.memInitDone = False
def pinsecClockGen(dut): cocotb.fork(ClockDomainAsyncReset(dut.io_axiClk, dut.io_asyncReset, 7500)) cocotb.fork(ClockDomainAsyncReset(dut.io_vgaClk, None, 40000)) # cocotb.fork(axiClkLogger(dut.uut)) core = dut.uut.axi_core.core logger = PinsecLogger() StreamMonitor(Stream(core, "dCmd"), logger.logDCmd, dut.io_axiClk, dut.io_asyncReset) StreamMonitor(Stream(core, "dRsp"), logger.logDRsp, dut.io_axiClk, dut.io_asyncReset)
def __init__(self,name,parent,dut): Infrastructure.__init__(self,name,parent) self.dut = dut self.mem = [0 for i in xrange(1<<8)] self.cmdA = Queue() self.cmdB = Queue() self.scoreboard = ScorboardInOrder("rspScordboard",self) StreamMonitor(Stream(dut,"io_cmdA"), self.onCmdA, dut.clk, dut.reset) StreamMonitor(Stream(dut, "io_cmdB"), self.onCmdB, dut.clk, dut.reset) StreamMonitor(Stream(dut, "io_rsp"), self.scoreboard.uutPush, dut.clk, dut.reset) cocotb.fork(self.onMemWrite())
def __init__(self, name, parent, dut, sock): Infrastructure.__init__(self, name, parent) self.sock = sock self.txCmdQueue = Queue() self.txDataQueue = Queue() StreamMonitor(Stream(dut, "io_tx_cmd"), self.onTxCmd, dut.clk, dut.reset) StreamMonitor(Stream(dut, "io_tx_data"), self.onTxData, dut.clk, dut.reset) self.bootTime = time.time()
def test1(dut): random.seed(0) from cocotblib.misc import cocotbXHack cocotbXHack() cocotb.fork(ClockDomainAsyncResetCustom(dut.clk, dut.reset)) cocotb.fork(simulationSpeedPrinter(dut.clk)) phaseManager = PhaseManager() phaseManager.setWaitTasksEndTime(1000 * 1000) SdramTester("sdramTester", phaseManager, Stream(dut, "io_bus_cmd"), Stream(dut, "io_bus_rsp"), dut.clk, dut.reset) yield phaseManager.run()
def test1(dut): cocotb.fork(ClockDomainAsyncReset(dut.clk, dut.reset, 100000)) cocotb.fork(simulationSpeedPrinter(dut.clk)) baudPeriod = 2500000 sclInterconnect = OpenDrainInterconnect() sclInterconnect.addHardDriver(dut.io_i2c_scl_write) sclInterconnect.addHardReader(dut.io_i2c_scl_read) sdaInterconnect = OpenDrainInterconnect() sdaInterconnect.addHardDriver(dut.io_i2c_sda_write) sdaInterconnect.addHardReader(dut.io_i2c_sda_read) dut.io_config_samplingClockDivider <= 3 dut.io_config_timerClockDivider <= 24 softMaster = I2cSoftMaster(sclInterconnect.newSoftConnection(), sdaInterconnect.newSoftConnection(), baudPeriod, dut.clk) slaveThread = fork( SlaveThread(sclInterconnect.newSoftConnection(), sdaInterconnect.newSoftConnection(), dut.clk, baudPeriod)) masterThread = fork( MasterThread(Stream(dut, "io_cmd"), Flow(dut, "io_rsp"), dut.clk, dut.reset, baudPeriod, softMaster).run()) yield masterThread.join()
def __init__(self, dut): # CMD --------------------------------------------- self.cmd = Flow(dut, "io_ioSlave_cmd") # RSP --------------------------------------------- self.rsp = Stream(dut, "io_ioSlave_rsp") # Clk & Rst --------------------------------------- self.clk = dut.clk self.resetn = dut.resetn
def __init__(self, name, parent, dut, sock, clkTocken): Infrastructure.__init__(self, name, parent) self.clkTocken = clkTocken self.rxCmdQueue = Queue() self.rxDataQueue = Queue() self.sock = sock StreamDriverMaster(Stream(dut, "io_rx_cmd"), self.genRxCmd, dut.clk, dut.reset) StreamDriverMaster(Stream(dut, "io_rx_data"), self.genRxData, dut.clk, dut.reset) StreamDriverSlave(Stream(dut, "io_tx_cmd"), dut.clk, dut.reset) StreamDriverSlave(Stream(dut, "io_tx_data"), dut.clk, dut.reset) try: thread.start_new_thread(self.rxThread, ()) except Exception as errtxt: print errtxt
def test1(dut): random.seed(0) from cocotblib.misc import cocotbXHack cocotbXHack() cocotb.fork(ClockDomainAsyncReset(dut.clk, dut.reset)) cocotb.fork(simulationSpeedPrinter(dut.clk)) phaseManager = PhaseManager() phaseManager.setWaitTasksEndTime(1000 * 200) StreamFifoTester("fifoA", phaseManager, Stream(dut, "fifoAPush"), Stream(dut, "fifoAPop"), bundleAGen, 3000, dut.clk, dut.reset).createInfrastructure() StreamFifoTester("fifoB", phaseManager, Stream(dut, "fifoBPush"), Stream(dut, "fifoBPop"), bundleAGen, 3000, dut.clk, dut.reset).createInfrastructure() yield phaseManager.run()
def __init__(self, dut): # I2C --------------------------------------------- self.sda = dut.io_sda self.scl = dut.io_scl # CMD --------------------------------------------- self.cmd = Stream(dut, "io_ioMaster_cmd") # RSP --------------------------------------------- self.rsp = Flow(dut, "io_ioMaster_rsp") # Clk & Rst --------------------------------------- self.clk = dut.clk self.resetn = dut.resetn
def __init__(self, dut, name): self.ar = Stream(dut, name + "_ar") self.r = Stream(dut, name + "_r") self.aw = Stream(dut, name + "_aw") self.w = Stream(dut, name + "_w") self.b = Stream(dut, name + "_b")
def __init__(self, dut, name): self.ar = Stream(dut, name + "_ar") self.r = Stream(dut, name + "_r")
def __init__(self, dut, name): self.cmd = Stream(dut, name + "_cmd") self.rsp = Stream(dut, name + "_rsp")
def __init__(self, dut): self.cmd = Stream(dut, "io_cmd") self.rsp = Flow(dut, "io_rsp") self.clk = dut.clk self.resetn = dut.resetn
def __init__(self, dut): self.cmd = Stream(dut, "io_cmd") self.rsp = Flow(dut, "io_rsp") self.init = dut.io_init self.clk = dut.clk