Esempio n. 1
0
    def _impl(self):
        ITEMS = self.addr_cam.ITEMS
        item_vld = self._reg("item_vld", Bits(ITEMS), def_val=0)
        waiting_transaction_id = self._sig("waiting_transaction_id",
                                           self.s.ar.id._dtype[ITEMS])
        waiting_transaction_vld = self._reg("waiting_transaction_vld",
                                            Bits(ITEMS),
                                            def_val=0)
        read_ack = self._sig("read_ack")
        # if the parent transaction is about to finish how we need to copy the response now
        data_copy_override = VldSynced()
        data_copy_override.DATA_WIDTH = self.ID_WIDTH
        self.data_copy_override = data_copy_override

        self.read_request_section(read_ack, item_vld, waiting_transaction_id,
                                  waiting_transaction_vld, data_copy_override)
        self.read_data_section(read_ack, waiting_transaction_id,
                               waiting_transaction_vld, data_copy_override)
        propagateClkRstn(self)
Esempio n. 2
0
def vldSynced(name, width):
    a = VldSynced()
    a.DATA_WIDTH = width
    a._name = name
    a._loadDeclarations()
    return a