Пример #1
0
    def getTransactions(self):
        transactions = AhbLite3TraficGenerator.getTransactions(self)
        for trans in transactions:
            if trans.HTRANS >= 2:
                write = trans.HWRITE
                size = 1 << trans.HSIZE
                address = trans.HADDR
                addressOffset = address % (self.dataWidth / 8)

                if write == 1:
                    for idx in range(size):
                        self.ram[address  + idx] = (trans.HWDATA >> (8*(addressOffset + idx))) & 0xFF
                        # cocotb.log.info("WRITE %x %x" % (address  + idx, (trans.HWDATA >> (8*(addressOffset + idx))) & 0xFF))
                else:
                    data = 0
                    for idx in xrange(size):
                        data |= self.ram[address + idx] << (8*(addressOffset + idx))
                    self.readBuffer.put(data)
                    # cocotb.log.info("READ %x %x" % (trans.HADDR,data))


        return transactions
Пример #2
0
 def __init__(self, addressWidth, dataWidth, readBuffer, id):
     AhbLite3TraficGenerator.__init__(self, addressWidth, dataWidth)
     self.ram = bytearray(b'\x00' * (1 << addressWidth))
     self.readBuffer = readBuffer
     self.id = id
Пример #3
0
 def genRandomAddress(self):
     while True:
         value = AhbLite3TraficGenerator.genRandomAddress(self)
         if (value >> 10) != self.id and ((value >> 8) & 0x3) == self.id:
             return value
Пример #4
0
 def __init__(self, addressWidth, dataWidth,readBuffer):
     AhbLite3TraficGenerator.__init__(self, addressWidth, dataWidth)
     self.ram = bytearray(b'\x00' * (1 << addressWidth))
     self.readBuffer = readBuffer
Пример #5
0
 def genRandomAddress(self):
     while True:
         value = AhbLite3TraficGenerator.genRandomAddress(self)
         if (value >> 10) != self.id  and ((value >> 8) & 0x3) == self.id:
             return value