Esempio n. 1
0
    def _declr(self):
        AxiWriteAggregatorWriteDispatcher.precompute_constants(self)
        addClkRstn(self)
        with self._paramsShared():
            self.s = Axi4()
            self.m = Axi4()._m()

            if self.BUS_WORDS_IN_CACHE_LINE > 1:
                fb = AxiSFifoCopy(Axi4_r)
                fb.DEPTH = 2 * self.BUS_WORDS_IN_CACHE_LINE
            else:
                fb = AxiSRegCopy(Axi4_r)
            self.frame_buff = fb

        ac = self.addr_cam = CamMultiPort()
        ac.MATCH_PORT_CNT = 1
        ac.ITEMS = 2**self.ID_WIDTH
        ac.USE_VLD_BIT = False
        ac.KEY_WIDTH = self.CACHE_LINE_ADDR_WIDTH

        for i in [self.s, self.m]:
            i.HAS_W = False
Esempio n. 2
0
 def _impl(self):
     CamMultiPort._impl(self)
     self.read.data(self._mem[self.read.addr])
Esempio n. 3
0
 def _declr(self):
     assert not self.USE_VLD_BIT
     CamMultiPort._declr(self)
     r = self.read = AddrDataIntf()
     r.ADDR_WIDTH = log2ceil(self.ITEMS - 1)
     r.DATA_WIDTH = self.KEY_WIDTH
Esempio n. 4
0
 def _config(self):
     CamMultiPort._config(self)
     self.USE_VLD_BIT = False