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 |