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)
def vldSynced(name, width): a = VldSynced() a.DATA_WIDTH = width a._name = name a._loadDeclarations() return a