43class socket_width_adapter :
public sc_core::sc_module,
public tlm::tlm_fw_transport_if<TYPES>,
public tlm::tlm_bw_transport_if<TYPES> {
45 using tlm_payload_type =
typename TYPES::tlm_payload_type;
46 using tlm_phase_type =
typename TYPES::tlm_phase_type;
47 using target_socket_type = tlm::tlm_target_socket<TGT_BUSWIDTH, TYPES, N, POL>;
48 using initiator_socket_type = tlm::tlm_initiator_socket<INTOR_BUSWIDTH, TYPES, N, POL>;
54 target_socket_type
tsck{
"tsck"};
60 initiator_socket_type
isck{
"isck"};
67 : sc_core::sc_module(nm) {
83 tlm::tlm_sync_enum nb_transport_fw(tlm_payload_type& trans, tlm_phase_type& phase, sc_core::sc_time& t)
override {
84 return isck->nb_transport_fw(trans, phase, t);
87 void b_transport(tlm_payload_type& trans, sc_core::sc_time& t)
override {
isck->b_transport(trans, t); }
89 bool get_direct_mem_ptr(tlm_payload_type& trans, tlm::tlm_dmi& dmi_data)
override {
return isck->get_direct_mem_ptr(trans, dmi_data); }
91 unsigned int transport_dbg(tlm_payload_type& trans)
override {
return isck->transport_dbg(trans); }
93 tlm::tlm_sync_enum nb_transport_bw(tlm_payload_type& trans, tlm_phase_type& phase, sc_core::sc_time& t)
override {
94 return tsck->nb_transport_bw(trans, phase, t);
97 void invalidate_direct_mem_ptr(sc_dt::uint64 start_range, sc_dt::uint64 end_range)
override {
98 tsck->invalidate_direct_mem_ptr(start_range, end_range);