Verification Engineerの戯言
イニシエータソケット(initiator_socket)とターゲットソケット(target_socket)に対して、
マクロにて設定したものは、lm_fw_nb_transport_ifとlm_bw_nb_transport_ifで説明したtlm::tlm_fw_nb_transport_ifおよびtlm::tlm_fw_nb_transport_ifクラスに必要なメソッドです。
マクロにて設定したものは、lm_fw_nb_transport_ifとlm_bw_nb_transport_ifで説明したtlm::tlm_fw_nb_transport_ifおよびtlm::tlm_fw_nb_transport_ifクラスに必要なメソッドです。
ターゲットソケット(target_socket)に対して、マクロにて設定したものは、
tlm::tlm_fw_nb_transport_ifクラスに必要な次の3つのメソッドです。
initiatorNBTransportメソッドを、
REGISTER_DEBUGTRANSPORT_USERマクロでは、transport_dbgメソッドとして、
transportDebugメソッドを、
REGISTER_DMI_USERマクロでは、get_direct_mem_ptrメソッドとして、
getDMIPointerを、各target_socket[i]に設定しています。
tlm::tlm_fw_nb_transport_ifクラスに必要な次の3つのメソッドです。
tlm::tlm_sync_enum nb_transport( tlm::tlm_generic_payload& trans, tlm::tlm_phase& phase, sc_core::sc_time& t); bool get_direct_mem_ptr( const sc_dt::uint64& address, tlm::tlm_dmi_mode& dmi_mode, tlm::tlm_dmi& dmi_data); unsigned int transport_dbg(tlm::tlm_debug_payload& r);REGISTER_NBTRANSPORT_USERマクロでは、nb_transportメソッドとして、
initiatorNBTransportメソッドを、
REGISTER_DEBUGTRANSPORT_USERマクロでは、transport_dbgメソッドとして、
transportDebugメソッドを、
REGISTER_DMI_USERマクロでは、get_direct_mem_ptrメソッドとして、
getDMIPointerを、各target_socket[i]に設定しています。
イニシエータソケット(initiator_socket)に対して、マクロにて設定したものは、
tlm::tlm_bw_nb_transport_ifクラスに必要な次の2つのメソッドです。
targetNBTransportメソッドを、
REGISTER_INVALIDATEDMIマクロでは、get_direct_mem_ptrメソッドとして、
invalidateDMIPointersを、各initiator_socket[i]に設定しています。
tlm::tlm_bw_nb_transport_ifクラスに必要な次の2つのメソッドです。
tlm::tlm_sync_enum nb_transport( tlm::tlm_generic_payload& trans, tlm::tlm_phase& phase, sc_core::sc_time& t); void invalidate_direct_mem_ptr(sc_dt::uint64 start_range, sc_dt::uint64 end_range);REGISTER_NBTRANSPORTマクロでは、nb_transportメソッドとして、
targetNBTransportメソッドを、
REGISTER_INVALIDATEDMIマクロでは、get_direct_mem_ptrメソッドとして、
invalidateDMIPointersを、各initiator_socket[i]に設定しています。
このように複数のソケットを持つモジュールは、マクロを使って、必要なメソッドを
設定するようになっているようです。
設定するようになっているようです。