| 128 | | tlm::tlm_generic_payload *payload_ptr = new tlm::tlm_generic_payload(); |
| 129 | | tlm::tlm_phase phase; |
| 130 | | soclib_payload_extension *extension_ptr = new soclib_payload_extension(); |
| 131 | | sc_core::sc_time send_time; |
| 132 | | ... |
| 133 | | |
| 134 | | // set the values in tlm payload |
| 135 | | payload_ptr->set_command(tlm::TLM_IGNORE_COMMAND); |
| 136 | | payload_ptr->set_address(0x10000000]); |
| 137 | | payload_ptr->set_byte_enable_ptr(byte_enable); |
| 138 | | payload_ptr->set_byte_enable_length(nbytes); |
| 139 | | payload_ptr->set_data_ptr(data); |
| 140 | | payload_ptr->set_data_length(nbytes); |
| 141 | | // set the values in payload extension |
| 142 | | extension_ptr->set_read(); |
| 143 | | extension_ptr->set_src_id(m_srcid); |
| 144 | | extension_ptr->set_trd_id(0); |
| 145 | | extension_ptr->set_pkt_id(pktid); |
| 146 | | // set the extension to tlm payload |
| 147 | | payload_ptr->set_extension (extension_ptr ); |
| 148 | | // set the tlm phase |
| 149 | | phase = tlm::BEGIN_REQ; |
| 150 | | // set the local time to transaction time |
| 151 | | send_time = m_local_time; |
| | 128 | tlm::tlm_generic_payload *payload_ptr = new tlm::tlm_generic_payload(); |
| | 129 | tlm::tlm_phase phase; |
| | 130 | soclib_payload_extension *extension_ptr = new soclib_payload_extension(); |
| | 131 | sc_core::sc_time send_time; |
| | 132 | ... |
| | 133 | |
| | 134 | // set the values in tlm payload |
| | 135 | payload_ptr->set_command(tlm::TLM_IGNORE_COMMAND); |
| | 136 | payload_ptr->set_address(0x10000000]); |
| | 137 | payload_ptr->set_byte_enable_ptr(byte_enable); |
| | 138 | payload_ptr->set_byte_enable_length(nbytes); |
| | 139 | payload_ptr->set_data_ptr(data); |
| | 140 | payload_ptr->set_data_length(nbytes); |
| | 141 | // set the values in payload extension |
| | 142 | extension_ptr->set_read(); |
| | 143 | extension_ptr->set_src_id(m_srcid); |
| | 144 | extension_ptr->set_trd_id(0); |
| | 145 | extension_ptr->set_pkt_id(pktid); |
| | 146 | // set the extension to tlm payload |
| | 147 | payload_ptr->set_extension (extension_ptr ); |
| | 148 | // set the tlm phase |
| | 149 | phase = tlm::BEGIN_REQ; |
| | 150 | // set the local time to transaction time |
| | 151 | send_time = m_local_time; |
| 260 | | my_initiator::my_initiator |
| 261 | | ( sc_core::sc_module_name name, // module name |
| 262 | | const soclib::common::IntTab &index, // index of mapping table |
| 263 | | const soclib::common::MappingTable &mt, // mapping table |
| 264 | | uint32_t time_quantum) // time quantum |
| 265 | | : sc_module(name), // init module name |
| 266 | | m_mt(mt), // mapping table |
| 267 | | p_vci_initiator("socket") // vci initiator socket name |
| | 259 | my_initiator::my_initiator( |
| | 260 | sc_core::sc_module_name name, // module name |
| | 261 | const soclib::common::IntTab &index, // index of mapping table |
| | 262 | const soclib::common::MappingTable &mt, // mapping table |
| | 263 | uint32_t time_quantum) // time quantum |
| | 264 | : sc_module(name), // init module name |
| | 265 | m_mt(mt), // mapping table |
| | 266 | p_vci_init("socket") // vci initiator socket name |
| 470 | | tlm::tlm_sync_enum nb_transport_bw ( |
| 471 | | tlm::tlm_generic_payload &payload, |
| 472 | | tlm::tlm_phase &phase, |
| 473 | | sc_core::sc_time &time) |
| 474 | | { |
| 475 | | ... |
| 476 | | payload.set_response_status(tlm::TLM_OK_RESPONSE); |
| 477 | | phase = tlm::BEGIN_RESP; |
| 478 | | time = time + (nwords * UNIT_TIME); |
| 479 | | p_vci_target->nb_transport_bw(payload, phase, time); |
| 480 | | } |
| | 469 | tlm::tlm_sync_enum nb_transport_bw |
| | 470 | ( tlm::tlm_generic_payload &payload, |
| | 471 | tlm::tlm_phase &phase, |
| | 472 | sc_core::sc_time &time) |
| | 473 | { |
| | 474 | ... |
| | 475 | payload.set_response_status(tlm::TLM_OK_RESPONSE); |
| | 476 | phase = tlm::BEGIN_RESP; |
| | 477 | time = time + (nwords * UNIT_TIME); |
| | 478 | p_vci_target->nb_transport_bw(payload, phase, time); |
| | 479 | } |
| 505 | | tmpl(/**/)::VciRam |
| 506 | | ( sc_core::sc_module_name name, |
| 507 | | const soclib::common::IntTab &index, |
| 508 | | const soclib::common::MappingTable &mt, |
| 509 | | soclib::common::ElfLoader &loader) |
| 510 | | : sc_module(name), |
| 511 | | m_mt(mt), |
| 512 | | m_loader(new soclib::common::ElfLoader(loader)), |
| 513 | | m_atomic(8), // 8 equals to maximal number of initiator |
| 514 | | p_vci_target("socket") |
| | 498 | VciRam::VciRam |
| | 499 | ( sc_core::sc_module_name name, |
| | 500 | const soclib::common::IntTab &index, |
| | 501 | const soclib::common::MappingTable &mt, |
| | 502 | soclib::common::ElfLoader &loader) |
| | 503 | : sc_module(name), |
| | 504 | m_mt(mt), |
| | 505 | m_loader(new soclib::common::ElfLoader(loader)), |
| | 506 | m_atomic(8), // 8 equals to maximal number of initiator |
| | 507 | p_vci_target("socket") |
| 552 | | |
| 553 | | //nb_transport_fw implementation calls from initiators |
| 554 | | tmpl(tlm::tlm_sync_enum)::my_nb_transport_fw // non-blocking transport call through Bus |
| 555 | | ( tlm::tlm_generic_payload &payload, // generic payoad pointer |
| 556 | | tlm::tlm_phase &phase, // transaction phase |
| 557 | | sc_core::sc_time &time) // time it should take for transport |
| | 545 | tlm::tlm_sync_enum VciRam::my_nb_transport_fw |
| | 546 | ( tlm::tlm_generic_payload &payload, // generic payoad pointer |
| | 547 | tlm::tlm_phase &phase, // transaction phase |
| | 548 | sc_core::sc_time &time) // time it should take for transport |