Changes between Version 87 and Version 88 of Writing Rules/Tlmt


Ignore:
Timestamp:
Nov 17, 2008, 12:37:12 PM (15 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Writing Rules/Tlmt

    v87 v88  
    6363  tlm::tlm_response_status  response_status;
    6464  unsigned char*            byte_enable;
    65   unsigned int               streaming_width;
     65  unsigned int              streaming_width;
    6666
    6767  // TLM-T related fields
    6868 
    6969  bool*                     activity_status_ptr;
    70   sc_core::sc_time*          local_time_ptr;
     70  sc_core::sc_time*         local_time_ptr;
    7171
    7272  // VCI related fields
     
    7676  vci_param::trdid_t        trdid;     
    7777  vci_param::pktid_t        pktid;
    78 
     78};
    7979}}}
    8080
     
    307307  int nbytes = 4;
    308308
    309   for(int i=0; i<nbytes; i++) byte_enable[i] = TLM_BYTE_ENABLED;
     309  for(int i=0; i<nbytes; i++) byte_enable[i] = tlm::TLM_BYTE_ENABLED;
    310310
    311311  while ( true ) {
     
    499499  case soclib::tlmt::VCI_LOCKED_READ_COMMAND:
    500500  case soclib::tlmt::VCI_STORE_COND_COMMAND:
    501       {
    502 
    503         payload.set_response_status(soclib::tlm::TLM_OK_RESPONSE);
    504         phase = soclib::tlmt::TLMT_RSP;
    505         time = time + (nwords * UNIT_TIME);
    506 
    507 #if MY_TARGET_DEBUG
    508         std::cout << "[RAM " << m_targetid << "] Send to source "<< payload.get_src_id() << " a anwser packet " << payload.get_pkt_id() << " Time = "  << time.value() << std::endl;
    509 #endif
    510 
    511         p_vci_target->nb_transport_bw(payload, phase, time);
    512         return tlm::TLM_COMPLETED;
    513       }
    514       break;
    515     default:
     501       payload.set_response_status(tlm::TLM_OK_RESPONSE);
     502       break;
     503   default:
     504      payload.set_response_status(tlm::TLM_GENERIC_ERROR_RESPONSE);
    516505      break;
    517506  }
    518 
    519   //send error message
    520   payload.set_response_status(soclib::tlmt::TLMT_ERROR_RESPONSE);
    521 
    522   phase = soclib::tlmt::TLMT_RSP;
    523   time = time + nwords * UNIT_TIME;
    524 
    525 #if MY_TARGET_DEBUG
    526   std::cout << "[RAM " << m_targetid << "] Address " << payload.get_address() << " does not match any segment " << std::endl;
    527   std::cout << "[RAM " << m_targetid << "] Send to source "<< payload.get_src_id() << " a error packet with time = "  << time.value() << std::endl;
    528 #endif
    529   p_vci_target->nb_transport_bw(payload, phase, time);
    530   return tlm::TLM_COMPLETED;
     507      phase = soclib::tlmt::TLMT_RSP
     508      time = time + (nwords * UNIT_TIME);
     509      p_vci_target->nb_transport_bw(payload, phase, time);
     510      return tlm::TLM_COMPLETED;
    531511}
    532 
    533 ////////////////////////// my_target.h ////////////////////////////////
    534 
    535 
    536 ////////////////////////// my_target.cpp ////////////////////////////////
    537 
    538512
    539513}}}