コード例 #1
0
ファイル: MasterDriver.py プロジェクト: Snoopy87/SpinalHDL
 def __init__(self,name,parent,idBase,axi,dut):
     Infrastructure.__init__(self,name,parent)
     self.idBase = idBase
     self.axi = axi
     self.dut = dut
     self.closeIt = False
     self.readCmdIdleRand = BoolRandomizer()
コード例 #2
0
    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)
コード例 #3
0
    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)
コード例 #4
0
 def __init__(self, name, parent, axi, addressWidth, clk, reset):
     Infrastructure.__init__(self, name, parent)
     self.axi = axi
     if hasattr(axi.arw.payload, "hid"):
         self.idWidth = len(axi.arw.payload.hid)
     self.addressWidth = addressWidth
     self.dataWidth = len(axi.w.payload.data)
     self.maxDataBytes = int(log2Up(self.dataWidth) / 8)
     self.ram = bytearray(b'\x00' *
                          ((1 << addressWidth) * self.maxDataBytes))
     self.doReadWriteCmdRand = BoolRandomizer()
     self.readWriteRand = BoolRandomizer()
     self.writeDataRand = BoolRandomizer()
     self.writeRspScoreboard = ScorboardOutOfOrder("writeRspScoreboard",
                                                   self)
     self.readRspScoreboard = ScorboardOutOfOrder("readRspScoreboard", self)
     self.writeRspScoreboard.addListener(self.freeReservatedAddresses)
     self.readRspScoreboard.addListener(self.freeReservatedAddresses)
     self.cmdTasks = Queue()
     self.writeTasks = Queue()
     self.nonZeroReadRspCounter = 0
     self.nonZeroReadRspCounterTarget = 1000
     self.reservedAddresses = {}
     StreamDriverSlave(axi.r, clk, reset)
     StreamDriverSlave(axi.b, clk, reset)
     StreamDriverMaster(axi.arw, self.genReadWriteCmd, clk, reset)
     StreamDriverMaster(axi.w, self.genWriteData, clk, reset)
     StreamMonitor(axi.r, self.onReadRsp, clk, reset)
     StreamMonitor(axi.b, self.onWriteRsp, clk, reset)
     axi.w.payload.last <= 0
     axi.r.payload.last <= 0
コード例 #5
0
ファイル: MasterDriver.py プロジェクト: zwxb/SpinalHDL
 def __init__(self, name, parent, idBase, axi, dut):
     Infrastructure.__init__(self, name, parent)
     self.idBase = idBase
     self.axi = axi
     self.dut = dut
     self.closeIt = False
     self.readCmdIdleRand = BoolRandomizer()
コード例 #6
0
 def __init__(self, name, parent, axi, dut):
     Infrastructure.__init__(self, name, parent)
     self.axi = axi
     self.dut = dut
     self.writeRspCounter = 0
     self.writeRspScoreboard = ScorboardOutOfOrder("writeRspScoreboard",
                                                   self)
コード例 #7
0
    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
コード例 #8
0
ファイル: MasterDriver.py プロジェクト: Snoopy87/SpinalHDL
 def __init__(self,name,parent,idBase,axi,dut):
     Infrastructure.__init__(self,name,parent)
     self.dut = dut
     self.axi = axi
     self.idBase = idBase
     self.writeCmdQueue = Queue()
     self.writeDataQueue = Queue()
     self.writeCmdIdleRand = BoolRandomizer()
     self.writeDataIdleRand = BoolRandomizer()
     self.closeIt = False
コード例 #9
0
ファイル: MasterDriver.py プロジェクト: zwxb/SpinalHDL
 def __init__(self, name, parent, idBase, axi, dut):
     Infrastructure.__init__(self, name, parent)
     self.dut = dut
     self.axi = axi
     self.idBase = idBase
     self.writeCmdQueue = Queue()
     self.writeDataQueue = Queue()
     self.writeCmdIdleRand = BoolRandomizer()
     self.writeDataIdleRand = BoolRandomizer()
     self.closeIt = False
コード例 #10
0
 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())
コード例 #11
0
 def __init__(self,name,parent,pushStream,popStream,transactionGenerator,dutCounterTarget,clk,reset):
     Infrastructure.__init__(self,name,parent)
     self.pushStream = pushStream
     self.popStream = popStream
     self.clk = clk
     self.reset = reset
     self.dutCounter = 0
     self.closeIt = False
     self.transactionGenerator = transactionGenerator
     self.dutCounterTarget = dutCounterTarget
     self.pushRandomizer = BoolRandomizer()
     self.scoreboard = ScorboardInOrder("scoreboard", self)
コード例 #12
0
ファイル: Scorboard.py プロジェクト: typingArtist/CocotbLib
    def startPhase(self, phase):
        Infrastructure.startPhase(self, phase)
        if phase == PHASE_CHECK_SCORBOARDS:
            if (not self.refs.empty()) or (not self.uuts.empty()):
                error = self.getPath() + " has some remaining transaction :\n"
                for e in self.refs.queue:
                    error += "REF:\n" + str(e) + "\n"

                for e in self.uuts.queue:
                    error += "UUT:\n" + str(e) + "\n"

                cocotb.log.error(error)
コード例 #13
0
ファイル: SdramCtrlTester.py プロジェクト: svancau/SpinalHDL
 def __init__(self,name,parent,cmd,rsp,clk,reset):
     Infrastructure.__init__(self, name, parent)
     StreamDriverMaster(cmd, self.genCmd, clk, reset)
     self.nonZeroRspCounter = 0
     self.cmdRandomizer = BoolRandomizer()
     self.writeRandomizer = BoolRandomizer()
     self.burstRandomizer = BoolRandomizer()
     self.lastAddr = 0
     self.closeIt = False
     self.ram = bytearray(b'\x00' * (1 << (9+2+2+1)))
     self.scorboard = ScorboardInOrder("scoreboard", self)
     StreamDriverSlave(rsp, clk, reset)
     # rsp.ready <= 1
     StreamMonitor(rsp, self.scorboard.uutPush, clk, reset)
コード例 #14
0
ファイル: Scorboard.py プロジェクト: typingArtist/CocotbLib
    def startPhase(self, phase):
        Infrastructure.startPhase(self, phase)
        if phase == PHASE_CHECK_SCORBOARDS:
            if len(self.refsDic) != 0 or len(self.uutsDic) != 0:
                error = self.getPath() + " has some remaining transaction :\n"
                for l in self.refsDic.itervalues():
                    for e in l.queue:
                        error += "REF:\n" + str(e) + "\n"

                for l in self.uutsDic.itervalues():
                    for e in l.queue:
                        error += "UUT:\n" + str(e) + "\n"

                cocotb.log.error(error)
コード例 #15
0
    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()
コード例 #16
0
ファイル: SdramCtrlTester.py プロジェクト: zwxb/SpinalHDL
 def __init__(self, name, parent, cmd, rsp, clk, reset):
     Infrastructure.__init__(self, name, parent)
     StreamDriverMaster(cmd, self.genCmd, clk, reset)
     self.nonZeroRspCounter = 0
     self.cmdRandomizer = BoolRandomizer()
     self.writeRandomizer = BoolRandomizer()
     self.burstRandomizer = BoolRandomizer()
     self.lastAddr = 0
     self.closeIt = False
     self.ram = bytearray(b'\x00' * (1 << (9 + 2 + 2 + 1)))
     self.scorboard = ScorboardInOrder("scoreboard", self)
     StreamDriverSlave(rsp, clk, reset)
     # rsp.ready <= 1
     StreamMonitor(rsp, self.scorboard.uutPush, clk, reset)
コード例 #17
0
    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
コード例 #18
0
 def __init__(self,name,parent,message):
     Infrastructure.__init__(self,name,parent)
     self.message = message
コード例 #19
0
ファイル: Scorboard.py プロジェクト: typingArtist/CocotbLib
 def endPhase(self, phase):
     Infrastructure.endPhase(self, phase)
     if phase == PHASE_CHECK_SCORBOARDS:
         if (not self.refs.empty()) or (not self.uuts.empty()):
             raise TestFailure("Scoreboard not empty")
コード例 #20
0
ファイル: Scorboard.py プロジェクト: typingArtist/CocotbLib
 def __init__(self, name, parent):
     Infrastructure.__init__(self, name, parent)
     self.refsDic = {}
     self.uutsDic = {}
     self.listeners = []
コード例 #21
0
ファイル: Scorboard.py プロジェクト: typingArtist/CocotbLib
 def endPhase(self, phase):
     Infrastructure.endPhase(self, phase)
     if phase == PHASE_CHECK_SCORBOARDS:
         if len(self.refsDic) != 0 or len(self.uutsDic) != 0:
             raise TestFailure("Scoreboard not empty")
コード例 #22
0
 def __init__(self, name, parent, message):
     Infrastructure.__init__(self, name, parent)
     self.message = message
コード例 #23
0
ファイル: SdramCtrlTester.py プロジェクト: svancau/SpinalHDL
 def startPhase(self, phase):
     Infrastructure.startPhase(self, phase)
     if phase == PHASE_WAIT_TASKS_END:
         self.closeIt = True
コード例 #24
0
 def startPhase(self, phase):
     Infrastructure.startPhase(self, phase)
     if phase == PHASE_WAIT_TASKS_END:
         self.closeIt = True
コード例 #25
0
ファイル: SlaveMonitor.py プロジェクト: zwxb/SpinalHDL
 def __init__(self,name,parent,axi,dut):
     Infrastructure.__init__(self,name,parent)
     self.axi = axi
     self.dut = dut
     self.dataScoreboard = ScorboardInOrder("scoreboard", self)
コード例 #26
0
ファイル: MasterMonitor.py プロジェクト: Snoopy87/SpinalHDL
 def __init__(self,name,parent,axi,dut):
     Infrastructure.__init__(self,name,parent)
     self.axi = axi
     self.dut = dut
     self.readRspCounter = 0
     self.readRspScoreboard = ScorboardOutOfOrder("readRspScoreboard", self)
コード例 #27
0
ファイル: Scorboard.py プロジェクト: typingArtist/CocotbLib
 def __init__(self, name, parent):
     Infrastructure.__init__(self, name, parent)
     self.refs = Queue()
     self.uuts = Queue()
     self.refsCounter = 0
     self.uutsCounter = 0
コード例 #28
0
ファイル: SlaveMonitor.py プロジェクト: Snoopy87/SpinalHDL
 def __init__(self,name,parent,axi,dut):
     Infrastructure.__init__(self,name,parent)
     self.axi = axi
     self.dut = dut
     self.dataScoreboard = ScorboardInOrder("scoreboard", self)