gem5  v22.1.0.0
Classes | Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
sc_gem5::TlmToGem5Bridge< BITWIDTH > Class Template Reference

#include <tlm_to_gem5.hh>

Inheritance diagram for sc_gem5::TlmToGem5Bridge< BITWIDTH >:
sc_gem5::TlmToGem5BridgeBase sc_core::sc_module sc_core::sc_object

Classes

class  BridgeRequestPort
 

Public Types

typedef gem5::TlmToGem5BridgeBaseParams Params
 

Public Member Functions

gem5::Portgem5_getPort (const std::string &if_name, int idx=-1) override
 
 TlmToGem5Bridge (const Params &p, const sc_core::sc_module_name &mn)
 
tlm_utils::simple_target_socket< TlmToGem5Bridge< BITWIDTH >, BITWIDTH > & getSocket ()
 
void before_end_of_elaboration () override
 
- Public Member Functions inherited from sc_core::sc_module
virtual ~sc_module ()
 
virtual const char * kind () const
 
void operator() (const sc_bind_proxy &p001, const sc_bind_proxy &p002=SC_BIND_PROXY_NIL, const sc_bind_proxy &p003=SC_BIND_PROXY_NIL, const sc_bind_proxy &p004=SC_BIND_PROXY_NIL, const sc_bind_proxy &p005=SC_BIND_PROXY_NIL, const sc_bind_proxy &p006=SC_BIND_PROXY_NIL, const sc_bind_proxy &p007=SC_BIND_PROXY_NIL, const sc_bind_proxy &p008=SC_BIND_PROXY_NIL, const sc_bind_proxy &p009=SC_BIND_PROXY_NIL, const sc_bind_proxy &p010=SC_BIND_PROXY_NIL, const sc_bind_proxy &p011=SC_BIND_PROXY_NIL, const sc_bind_proxy &p012=SC_BIND_PROXY_NIL, const sc_bind_proxy &p013=SC_BIND_PROXY_NIL, const sc_bind_proxy &p014=SC_BIND_PROXY_NIL, const sc_bind_proxy &p015=SC_BIND_PROXY_NIL, const sc_bind_proxy &p016=SC_BIND_PROXY_NIL, const sc_bind_proxy &p017=SC_BIND_PROXY_NIL, const sc_bind_proxy &p018=SC_BIND_PROXY_NIL, const sc_bind_proxy &p019=SC_BIND_PROXY_NIL, const sc_bind_proxy &p020=SC_BIND_PROXY_NIL, const sc_bind_proxy &p021=SC_BIND_PROXY_NIL, const sc_bind_proxy &p022=SC_BIND_PROXY_NIL, const sc_bind_proxy &p023=SC_BIND_PROXY_NIL, const sc_bind_proxy &p024=SC_BIND_PROXY_NIL, const sc_bind_proxy &p025=SC_BIND_PROXY_NIL, const sc_bind_proxy &p026=SC_BIND_PROXY_NIL, const sc_bind_proxy &p027=SC_BIND_PROXY_NIL, const sc_bind_proxy &p028=SC_BIND_PROXY_NIL, const sc_bind_proxy &p029=SC_BIND_PROXY_NIL, const sc_bind_proxy &p030=SC_BIND_PROXY_NIL, const sc_bind_proxy &p031=SC_BIND_PROXY_NIL, const sc_bind_proxy &p032=SC_BIND_PROXY_NIL, const sc_bind_proxy &p033=SC_BIND_PROXY_NIL, const sc_bind_proxy &p034=SC_BIND_PROXY_NIL, const sc_bind_proxy &p035=SC_BIND_PROXY_NIL, const sc_bind_proxy &p036=SC_BIND_PROXY_NIL, const sc_bind_proxy &p037=SC_BIND_PROXY_NIL, const sc_bind_proxy &p038=SC_BIND_PROXY_NIL, const sc_bind_proxy &p039=SC_BIND_PROXY_NIL, const sc_bind_proxy &p040=SC_BIND_PROXY_NIL, const sc_bind_proxy &p041=SC_BIND_PROXY_NIL, const sc_bind_proxy &p042=SC_BIND_PROXY_NIL, const sc_bind_proxy &p043=SC_BIND_PROXY_NIL, const sc_bind_proxy &p044=SC_BIND_PROXY_NIL, const sc_bind_proxy &p045=SC_BIND_PROXY_NIL, const sc_bind_proxy &p046=SC_BIND_PROXY_NIL, const sc_bind_proxy &p047=SC_BIND_PROXY_NIL, const sc_bind_proxy &p048=SC_BIND_PROXY_NIL, const sc_bind_proxy &p049=SC_BIND_PROXY_NIL, const sc_bind_proxy &p050=SC_BIND_PROXY_NIL, const sc_bind_proxy &p051=SC_BIND_PROXY_NIL, const sc_bind_proxy &p052=SC_BIND_PROXY_NIL, const sc_bind_proxy &p053=SC_BIND_PROXY_NIL, const sc_bind_proxy &p054=SC_BIND_PROXY_NIL, const sc_bind_proxy &p055=SC_BIND_PROXY_NIL, const sc_bind_proxy &p056=SC_BIND_PROXY_NIL, const sc_bind_proxy &p057=SC_BIND_PROXY_NIL, const sc_bind_proxy &p058=SC_BIND_PROXY_NIL, const sc_bind_proxy &p059=SC_BIND_PROXY_NIL, const sc_bind_proxy &p060=SC_BIND_PROXY_NIL, const sc_bind_proxy &p061=SC_BIND_PROXY_NIL, const sc_bind_proxy &p062=SC_BIND_PROXY_NIL, const sc_bind_proxy &p063=SC_BIND_PROXY_NIL, const sc_bind_proxy &p064=SC_BIND_PROXY_NIL)
 
sc_moduleoperator<< (sc_interface &)
 
sc_moduleoperator<< (sc_port_base &)
 
sc_moduleoperator, (sc_interface &)
 
sc_moduleoperator, (sc_port_base &)
 
virtual const std::vector< sc_object * > & get_child_objects () const
 
virtual const std::vector< sc_event * > & get_child_events () const
 
- Public Member Functions inherited from sc_core::sc_object
const char * name () const
 
const char * basename () const
 
virtual void print (std::ostream &=std::cout) const
 
virtual void dump (std::ostream &=std::cout) const
 
sc_objectget_parent_object () const
 
bool add_attribute (sc_attr_base &)
 
sc_attr_baseget_attribute (const std::string &)
 
sc_attr_baseremove_attribute (const std::string &)
 
void remove_all_attributes ()
 
int num_attributes () const
 
sc_attr_cltnattr_cltn ()
 
const sc_attr_cltnattr_cltn () const
 
sc_simcontextsimcontext () const
 

Public Attributes

const gem5::RequestorID _id
 

Protected Member Functions

void peq_cb (tlm::tlm_generic_payload &trans, const tlm::tlm_phase &phase)
 
tlm::tlm_sync_enum nb_transport_fw (tlm::tlm_generic_payload &trans, tlm::tlm_phase &phase, sc_core::sc_time &t)
 
void b_transport (tlm::tlm_generic_payload &trans, sc_core::sc_time &t)
 
unsigned int transport_dbg (tlm::tlm_generic_payload &trans)
 
bool get_direct_mem_ptr (tlm::tlm_generic_payload &trans, tlm::tlm_dmi &dmi_data)
 
bool recvTimingResp (gem5::PacketPtr pkt)
 
void recvReqRetry ()
 
void recvRangeChange ()
 
- Protected Member Functions inherited from sc_core::sc_module
 sc_module (const sc_module_name &)
 
 sc_module ()
 
 sc_module (const char *)
 
 sc_module (const std::string &)
 
void end_module ()
 
void reset_signal_is (const sc_in< bool > &, bool)
 
void reset_signal_is (const sc_inout< bool > &, bool)
 
void reset_signal_is (const sc_out< bool > &, bool)
 
void reset_signal_is (const sc_signal_in_if< bool > &, bool)
 
void async_reset_signal_is (const sc_in< bool > &, bool)
 
void async_reset_signal_is (const sc_inout< bool > &, bool)
 
void async_reset_signal_is (const sc_out< bool > &, bool)
 
void async_reset_signal_is (const sc_signal_in_if< bool > &, bool)
 
void dont_initialize ()
 
void set_stack_size (size_t)
 
void next_trigger ()
 
void next_trigger (const sc_event &)
 
void next_trigger (const sc_event_or_list &)
 
void next_trigger (const sc_event_and_list &)
 
void next_trigger (const sc_time &)
 
void next_trigger (double, sc_time_unit)
 
void next_trigger (const sc_time &, const sc_event &)
 
void next_trigger (double, sc_time_unit, const sc_event &)
 
void next_trigger (const sc_time &, const sc_event_or_list &)
 
void next_trigger (double, sc_time_unit, const sc_event_or_list &)
 
void next_trigger (const sc_time &, const sc_event_and_list &)
 
void next_trigger (double, sc_time_unit, const sc_event_and_list &)
 
bool timed_out ()
 
void wait ()
 
void wait (int)
 
void wait (const sc_event &)
 
void wait (const sc_event_or_list &)
 
void wait (const sc_event_and_list &)
 
void wait (const sc_time &)
 
void wait (double, sc_time_unit)
 
void wait (const sc_time &, const sc_event &)
 
void wait (double, sc_time_unit, const sc_event &)
 
void wait (const sc_time &, const sc_event_or_list &)
 
void wait (double, sc_time_unit, const sc_event_or_list &)
 
void wait (const sc_time &, const sc_event_and_list &)
 
void wait (double, sc_time_unit, const sc_event_and_list &)
 
void halt ()
 
void at_posedge (const sc_signal_in_if< bool > &)
 
void at_posedge (const sc_signal_in_if< sc_dt::sc_logic > &)
 
void at_negedge (const sc_signal_in_if< bool > &)
 
void at_negedge (const sc_signal_in_if< sc_dt::sc_logic > &)
 
virtual void end_of_elaboration ()
 
virtual void start_of_simulation ()
 
virtual void end_of_simulation ()
 
- Protected Member Functions inherited from sc_core::sc_object
 sc_object ()
 
 sc_object (const char *)
 
 sc_object (const sc_object &)
 
sc_objectoperator= (const sc_object &)
 
virtual ~sc_object ()
 

Private Member Functions

void sendEndReq (tlm::tlm_generic_payload &trans)
 
void sendBeginResp (tlm::tlm_generic_payload &trans, sc_core::sc_time &delay)
 
void handleBeginReq (tlm::tlm_generic_payload &trans)
 
void handleEndResp (tlm::tlm_generic_payload &trans)
 
void destroyPacket (gem5::PacketPtr pkt)
 
void invalidateDmi (const gem5::MemBackdoor &backdoor)
 

Private Attributes

tlm_utils::peq_with_cb_and_phase< TlmToGem5Bridge< BITWIDTH > > peq
 
bool waitForRetry
 
tlm::tlm_generic_payloadpendingRequest
 
gem5::PacketPtr pendingPacket
 
bool needToSendRetry
 
bool responseInProgress
 
std::unordered_set< gem5::MemBackdoorPtrrequestedBackdoors
 
BridgeRequestPort bmp
 
tlm_utils::simple_target_socket< TlmToGem5Bridge< BITWIDTH >, BITWIDTH > socket
 
sc_gem5::TlmTargetWrapper< BITWIDTH > wrapper
 
gem5::Systemsystem
 

Additional Inherited Members

- Protected Attributes inherited from sc_core::sc_module
sc_sensitive sensitive
 

Detailed Description

template<unsigned int BITWIDTH>
class sc_gem5::TlmToGem5Bridge< BITWIDTH >

Definition at line 93 of file tlm_to_gem5.hh.

Member Typedef Documentation

◆ Params

template<unsigned int BITWIDTH>
typedef gem5::TlmToGem5BridgeBaseParams sc_gem5::TlmToGem5Bridge< BITWIDTH >::Params

Definition at line 167 of file tlm_to_gem5.hh.

Constructor & Destructor Documentation

◆ TlmToGem5Bridge()

template<unsigned int BITWIDTH>
sc_gem5::TlmToGem5Bridge< BITWIDTH >::TlmToGem5Bridge ( const Params p,
const sc_core::sc_module_name mn 
)

Definition at line 547 of file tlm_to_gem5.cc.

Member Function Documentation

◆ b_transport()

template<unsigned int BITWIDTH>
void sc_gem5::TlmToGem5Bridge< BITWIDTH >::b_transport ( tlm::tlm_generic_payload trans,
sc_core::sc_time t 
)
protected

◆ before_end_of_elaboration()

template<unsigned int BITWIDTH>
void sc_gem5::TlmToGem5Bridge< BITWIDTH >::before_end_of_elaboration
overridevirtual

◆ destroyPacket()

template<unsigned int BITWIDTH>
void sc_gem5::TlmToGem5Bridge< BITWIDTH >::destroyPacket ( gem5::PacketPtr  pkt)
private

Definition at line 281 of file tlm_to_gem5.cc.

◆ gem5_getPort()

template<unsigned int BITWIDTH>
gem5::Port & sc_gem5::TlmToGem5Bridge< BITWIDTH >::gem5_getPort ( const std::string &  if_name,
int  idx = -1 
)
overridevirtual

Reimplemented from sc_core::sc_module.

Definition at line 536 of file tlm_to_gem5.cc.

References sc_core::sc_module::gem5_getPort().

◆ get_direct_mem_ptr()

template<unsigned int BITWIDTH>
bool sc_gem5::TlmToGem5Bridge< BITWIDTH >::get_direct_mem_ptr ( tlm::tlm_generic_payload trans,
tlm::tlm_dmi dmi_data 
)
protected

◆ getSocket()

template<unsigned int BITWIDTH>
tlm_utils::simple_target_socket<TlmToGem5Bridge<BITWIDTH>, BITWIDTH>& sc_gem5::TlmToGem5Bridge< BITWIDTH >::getSocket ( )
inline

Definition at line 171 of file tlm_to_gem5.hh.

References sc_gem5::TlmToGem5Bridge< BITWIDTH >::socket.

◆ handleBeginReq()

template<unsigned int BITWIDTH>
void sc_gem5::TlmToGem5Bridge< BITWIDTH >::handleBeginReq ( tlm::tlm_generic_payload trans)
private

◆ handleEndResp()

template<unsigned int BITWIDTH>
void sc_gem5::TlmToGem5Bridge< BITWIDTH >::handleEndResp ( tlm::tlm_generic_payload trans)
private

Definition at line 267 of file tlm_to_gem5.cc.

References sc_assert.

◆ invalidateDmi()

template<unsigned int BITWIDTH>
void sc_gem5::TlmToGem5Bridge< BITWIDTH >::invalidateDmi ( const gem5::MemBackdoor backdoor)
private

◆ nb_transport_fw()

template<unsigned int BITWIDTH>
tlm::tlm_sync_enum sc_gem5::TlmToGem5Bridge< BITWIDTH >::nb_transport_fw ( tlm::tlm_generic_payload trans,
tlm::tlm_phase phase,
sc_core::sc_time t 
)
protected

◆ peq_cb()

template<unsigned int BITWIDTH>
void sc_gem5::TlmToGem5Bridge< BITWIDTH >::peq_cb ( tlm::tlm_generic_payload trans,
const tlm::tlm_phase phase 
)
protected

Definition at line 297 of file tlm_to_gem5.cc.

References tlm::BEGIN_REQ, tlm::END_RESP, and panic.

◆ recvRangeChange()

template<unsigned int BITWIDTH>
void sc_gem5::TlmToGem5Bridge< BITWIDTH >::recvRangeChange
protected

Definition at line 528 of file tlm_to_gem5.cc.

References DPRINTF.

◆ recvReqRetry()

template<unsigned int BITWIDTH>
void sc_gem5::TlmToGem5Bridge< BITWIDTH >::recvReqRetry
protected

Definition at line 501 of file tlm_to_gem5.cc.

References sc_assert, and sc_core::SC_ZERO_TIME.

◆ recvTimingResp()

template<unsigned int BITWIDTH>
bool sc_gem5::TlmToGem5Bridge< BITWIDTH >::recvTimingResp ( gem5::PacketPtr  pkt)
protected

◆ sendBeginResp()

template<unsigned int BITWIDTH>
void sc_gem5::TlmToGem5Bridge< BITWIDTH >::sendBeginResp ( tlm::tlm_generic_payload trans,
sc_core::sc_time delay 
)
private

◆ sendEndReq()

template<unsigned int BITWIDTH>
void sc_gem5::TlmToGem5Bridge< BITWIDTH >::sendEndReq ( tlm::tlm_generic_payload trans)
private

◆ transport_dbg()

template<unsigned int BITWIDTH>
unsigned int sc_gem5::TlmToGem5Bridge< BITWIDTH >::transport_dbg ( tlm::tlm_generic_payload trans)
protected

Member Data Documentation

◆ _id

template<unsigned int BITWIDTH>
const gem5::RequestorID sc_gem5::TlmToGem5Bridge< BITWIDTH >::_id

Definition at line 178 of file tlm_to_gem5.hh.

◆ bmp

template<unsigned int BITWIDTH>
BridgeRequestPort sc_gem5::TlmToGem5Bridge< BITWIDTH >::bmp
private

Definition at line 128 of file tlm_to_gem5.hh.

◆ needToSendRetry

template<unsigned int BITWIDTH>
bool sc_gem5::TlmToGem5Bridge< BITWIDTH >::needToSendRetry
private

Definition at line 122 of file tlm_to_gem5.hh.

◆ pendingPacket

template<unsigned int BITWIDTH>
gem5::PacketPtr sc_gem5::TlmToGem5Bridge< BITWIDTH >::pendingPacket
private

Definition at line 120 of file tlm_to_gem5.hh.

◆ pendingRequest

template<unsigned int BITWIDTH>
tlm::tlm_generic_payload* sc_gem5::TlmToGem5Bridge< BITWIDTH >::pendingRequest
private

Definition at line 119 of file tlm_to_gem5.hh.

◆ peq

template<unsigned int BITWIDTH>
tlm_utils::peq_with_cb_and_phase<TlmToGem5Bridge<BITWIDTH> > sc_gem5::TlmToGem5Bridge< BITWIDTH >::peq
private

Definition at line 116 of file tlm_to_gem5.hh.

◆ requestedBackdoors

template<unsigned int BITWIDTH>
std::unordered_set<gem5::MemBackdoorPtr> sc_gem5::TlmToGem5Bridge< BITWIDTH >::requestedBackdoors
private

Definition at line 126 of file tlm_to_gem5.hh.

◆ responseInProgress

template<unsigned int BITWIDTH>
bool sc_gem5::TlmToGem5Bridge< BITWIDTH >::responseInProgress
private

Definition at line 124 of file tlm_to_gem5.hh.

◆ socket

template<unsigned int BITWIDTH>
tlm_utils::simple_target_socket< TlmToGem5Bridge<BITWIDTH>, BITWIDTH> sc_gem5::TlmToGem5Bridge< BITWIDTH >::socket
private

Definition at line 130 of file tlm_to_gem5.hh.

Referenced by sc_gem5::TlmToGem5Bridge< BITWIDTH >::getSocket().

◆ system

template<unsigned int BITWIDTH>
gem5::System* sc_gem5::TlmToGem5Bridge< BITWIDTH >::system
private

Definition at line 133 of file tlm_to_gem5.hh.

◆ waitForRetry

template<unsigned int BITWIDTH>
bool sc_gem5::TlmToGem5Bridge< BITWIDTH >::waitForRetry
private

Definition at line 118 of file tlm_to_gem5.hh.

◆ wrapper

template<unsigned int BITWIDTH>
sc_gem5::TlmTargetWrapper<BITWIDTH> sc_gem5::TlmToGem5Bridge< BITWIDTH >::wrapper
private

Definition at line 131 of file tlm_to_gem5.hh.


The documentation for this class was generated from the following files:

Generated on Wed Dec 21 2022 10:25:10 for gem5 by doxygen 1.9.1