gem5 v24.0.0.0
Loading...
Searching...
No Matches
SimpleBusAT< NR_OF_INITIATORS, NR_OF_TARGETS > Class Template Reference

#include <SimpleBusAT.h>

Inheritance diagram for SimpleBusAT< NR_OF_INITIATORS, NR_OF_TARGETS >:
sc_core::sc_module sc_core::sc_object

Classes

struct  ConnectionInfo
 

Public Types

typedef tlm::tlm_generic_payload transaction_type
 
typedef tlm::tlm_phase phase_type
 
typedef tlm::tlm_sync_enum sync_enum_type
 
typedef tlm_utils::simple_target_socket_tagged< SimpleBusATtarget_socket_type
 
typedef tlm_utils::simple_initiator_socket_tagged< SimpleBusATinitiator_socket_type
 

Public Member Functions

 SC_HAS_PROCESS (SimpleBusAT)
 
 SimpleBusAT (sc_core::sc_module_name name)
 
unsigned int getPortId (const sc_dt::uint64 &address)
 
sc_dt::uint64 getAddressOffset (unsigned int portId)
 
sc_dt::uint64 getAddressMask (unsigned int portId)
 
unsigned int decode (const sc_dt::uint64 &address)
 
void RequestThread ()
 
void ResponseThread ()
 
sync_enum_type initiatorNBTransport (int initiator_id, transaction_type &trans, phase_type &phase, sc_core::sc_time &t)
 
sync_enum_type targetNBTransport (int portId, transaction_type &trans, phase_type &phase, sc_core::sc_time &t)
 
unsigned int transportDebug (int initiator_id, transaction_type &trans)
 
bool limitRange (unsigned int portId, sc_dt::uint64 &low, sc_dt::uint64 &high)
 
bool getDMIPointer (int initiator_id, transaction_type &trans, tlm::tlm_dmi &dmi_data)
 
void invalidateDMIPointers (int portId, sc_dt::uint64 start_range, sc_dt::uint64 end_range)
 
- Public Member Functions inherited from sc_core::sc_module
virtual gem5::Portgem5_getPort (const std::string &if_name, int idx=-1)
 
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

target_socket_type target_socket [NR_OF_INITIATORS]
 
initiator_socket_type initiator_socket [NR_OF_TARGETS]
 

Private Types

typedef std::map< transaction_type *, ConnectionInfoPendingTransactions
 
typedef PendingTransactions::iterator PendingTransactionsIterator
 
typedef PendingTransactions::const_iterator PendingTransactionsConstIterator
 

Private Member Functions

void addPendingTransaction (transaction_type &trans, initiator_socket_type *to, int initiatorId)
 

Private Attributes

PendingTransactions mPendingTransactions
 
tlm_utils::peq_with_get< transaction_typemRequestPEQ
 
sc_core::sc_event mBeginRequestEvent
 
sc_core::sc_event mEndRequestEvent
 
tlm_utils::peq_with_get< transaction_typemResponsePEQ
 
sc_core::sc_event mBeginResponseEvent
 
sc_core::sc_event mEndResponseEvent
 

Additional Inherited Members

- 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 before_end_of_elaboration ()
 
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 ()
 
- Protected Attributes inherited from sc_core::sc_module
sc_sensitive sensitive
 

Detailed Description

template<int NR_OF_INITIATORS, int NR_OF_TARGETS>
class SimpleBusAT< NR_OF_INITIATORS, NR_OF_TARGETS >

Definition at line 32 of file SimpleBusAT.h.

Member Typedef Documentation

◆ initiator_socket_type

template<int NR_OF_INITIATORS, int NR_OF_TARGETS>
typedef tlm_utils::simple_initiator_socket_tagged<SimpleBusAT> SimpleBusAT< NR_OF_INITIATORS, NR_OF_TARGETS >::initiator_socket_type

Definition at line 39 of file SimpleBusAT.h.

◆ PendingTransactions

template<int NR_OF_INITIATORS, int NR_OF_TARGETS>
typedef std::map<transaction_type*, ConnectionInfo> SimpleBusAT< NR_OF_INITIATORS, NR_OF_TARGETS >::PendingTransactions
private

Definition at line 362 of file SimpleBusAT.h.

◆ PendingTransactionsConstIterator

template<int NR_OF_INITIATORS, int NR_OF_TARGETS>
typedef PendingTransactions::const_iterator SimpleBusAT< NR_OF_INITIATORS, NR_OF_TARGETS >::PendingTransactionsConstIterator
private

Definition at line 364 of file SimpleBusAT.h.

◆ PendingTransactionsIterator

template<int NR_OF_INITIATORS, int NR_OF_TARGETS>
typedef PendingTransactions::iterator SimpleBusAT< NR_OF_INITIATORS, NR_OF_TARGETS >::PendingTransactionsIterator
private

Definition at line 363 of file SimpleBusAT.h.

◆ phase_type

template<int NR_OF_INITIATORS, int NR_OF_TARGETS>
typedef tlm::tlm_phase SimpleBusAT< NR_OF_INITIATORS, NR_OF_TARGETS >::phase_type

Definition at line 36 of file SimpleBusAT.h.

◆ sync_enum_type

template<int NR_OF_INITIATORS, int NR_OF_TARGETS>
typedef tlm::tlm_sync_enum SimpleBusAT< NR_OF_INITIATORS, NR_OF_TARGETS >::sync_enum_type

Definition at line 37 of file SimpleBusAT.h.

◆ target_socket_type

template<int NR_OF_INITIATORS, int NR_OF_TARGETS>
typedef tlm_utils::simple_target_socket_tagged<SimpleBusAT> SimpleBusAT< NR_OF_INITIATORS, NR_OF_TARGETS >::target_socket_type

Definition at line 38 of file SimpleBusAT.h.

◆ transaction_type

template<int NR_OF_INITIATORS, int NR_OF_TARGETS>
typedef tlm::tlm_generic_payload SimpleBusAT< NR_OF_INITIATORS, NR_OF_TARGETS >::transaction_type

Definition at line 35 of file SimpleBusAT.h.

Constructor & Destructor Documentation

◆ SimpleBusAT()

Member Function Documentation

◆ addPendingTransaction()

template<int NR_OF_INITIATORS, int NR_OF_TARGETS>
void SimpleBusAT< NR_OF_INITIATORS, NR_OF_TARGETS >::addPendingTransaction ( transaction_type & trans,
initiator_socket_type * to,
int initiatorId )
inlineprivate

◆ decode()

template<int NR_OF_INITIATORS, int NR_OF_TARGETS>
unsigned int SimpleBusAT< NR_OF_INITIATORS, NR_OF_TARGETS >::decode ( const sc_dt::uint64 & address)
inline

◆ getAddressMask()

◆ getAddressOffset()

template<int NR_OF_INITIATORS, int NR_OF_TARGETS>
sc_dt::uint64 SimpleBusAT< NR_OF_INITIATORS, NR_OF_TARGETS >::getAddressOffset ( unsigned int portId)
inline

◆ getDMIPointer()

◆ getPortId()

template<int NR_OF_INITIATORS, int NR_OF_TARGETS>
unsigned int SimpleBusAT< NR_OF_INITIATORS, NR_OF_TARGETS >::getPortId ( const sc_dt::uint64 & address)
inline

◆ initiatorNBTransport()

◆ invalidateDMIPointers()

template<int NR_OF_INITIATORS, int NR_OF_TARGETS>
void SimpleBusAT< NR_OF_INITIATORS, NR_OF_TARGETS >::invalidateDMIPointers ( int portId,
sc_dt::uint64 start_range,
sc_dt::uint64 end_range )
inline

◆ limitRange()

template<int NR_OF_INITIATORS, int NR_OF_TARGETS>
bool SimpleBusAT< NR_OF_INITIATORS, NR_OF_TARGETS >::limitRange ( unsigned int portId,
sc_dt::uint64 & low,
sc_dt::uint64 & high )
inline

◆ RequestThread()

◆ ResponseThread()

◆ SC_HAS_PROCESS()

template<int NR_OF_INITIATORS, int NR_OF_TARGETS>
SimpleBusAT< NR_OF_INITIATORS, NR_OF_TARGETS >::SC_HAS_PROCESS ( SimpleBusAT< NR_OF_INITIATORS, NR_OF_TARGETS > )

◆ targetNBTransport()

◆ transportDebug()

Member Data Documentation

◆ initiator_socket

◆ mBeginRequestEvent

template<int NR_OF_INITIATORS, int NR_OF_TARGETS>
sc_core::sc_event SimpleBusAT< NR_OF_INITIATORS, NR_OF_TARGETS >::mBeginRequestEvent
private

Definition at line 370 of file SimpleBusAT.h.

◆ mBeginResponseEvent

template<int NR_OF_INITIATORS, int NR_OF_TARGETS>
sc_core::sc_event SimpleBusAT< NR_OF_INITIATORS, NR_OF_TARGETS >::mBeginResponseEvent
private

Definition at line 374 of file SimpleBusAT.h.

◆ mEndRequestEvent

template<int NR_OF_INITIATORS, int NR_OF_TARGETS>
sc_core::sc_event SimpleBusAT< NR_OF_INITIATORS, NR_OF_TARGETS >::mEndRequestEvent
private

◆ mEndResponseEvent

template<int NR_OF_INITIATORS, int NR_OF_TARGETS>
sc_core::sc_event SimpleBusAT< NR_OF_INITIATORS, NR_OF_TARGETS >::mEndResponseEvent
private

◆ mPendingTransactions

template<int NR_OF_INITIATORS, int NR_OF_TARGETS>
PendingTransactions SimpleBusAT< NR_OF_INITIATORS, NR_OF_TARGETS >::mPendingTransactions
private

◆ mRequestPEQ

template<int NR_OF_INITIATORS, int NR_OF_TARGETS>
tlm_utils::peq_with_get<transaction_type> SimpleBusAT< NR_OF_INITIATORS, NR_OF_TARGETS >::mRequestPEQ
private

◆ mResponsePEQ

◆ target_socket

template<int NR_OF_INITIATORS, int NR_OF_TARGETS>
target_socket_type SimpleBusAT< NR_OF_INITIATORS, NR_OF_TARGETS >::target_socket[NR_OF_INITIATORS]

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

Generated on Tue Jun 18 2024 16:24:09 for gem5 by doxygen 1.11.0