TLM-2.0  2.0.4
Accellera TLM-2.0 proof-of-concept library
tlm::tlm_req_rsp_channel< REQ, RSP, REQ_CHANNEL, RSP_CHANNEL > Class Template Reference

#include <tlm_core/tlm_1/tlm_req_rsp/tlm_channels/tlm_req_rsp_channels/tlm_req_rsp_channels.h>

Inheritance diagram for tlm::tlm_req_rsp_channel< REQ, RSP, REQ_CHANNEL, RSP_CHANNEL >:
Collaboration diagram for tlm::tlm_req_rsp_channel< REQ, RSP, REQ_CHANNEL, RSP_CHANNEL >:

Public Types

typedef unsigned phase_cb_mask
 

Public Member Functions

 tlm_req_rsp_channel (int req_size=1, int rsp_size=1)
 
 tlm_req_rsp_channel (sc_core::sc_module_name module_name, int req_size=1, int rsp_size=1)
 
sc_simcontextsc_get_curr_simcontext ()
 
const char * gen_unique_name (const char *basename_, bool preserve_first)
 
virtual const char * kind () const
 
sc_moduleoperator<< (sc_interface &)
 
sc_moduleoperator<< (sc_port_base &)
 
sc_moduleoperator, (sc_interface &interface_)
 
sc_moduleoperator, (sc_port_base &port_)
 
const ::std::vector< sc_object *> & get_child_objects () const
 
void defunct ()
 
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)
 
const char * name () const
 
const char * basename () const
 
virtual void print (::std::ostream &os=::std::cout) const
 
virtual void dump (::std::ostream &os=::std::cout) const
 
virtual void trace (sc_trace_file *tf) const
 
sc_simcontextsimcontext () const
 
bool add_attribute (sc_attr_base &)
 
sc_attr_base * get_attribute (const std::string &name_)
 
const sc_attr_base * get_attribute (const std::string &name_) const
 
sc_attr_base * remove_attribute (const std::string &name_)
 
void remove_all_attributes ()
 
int num_attributes () const
 
sc_attr_cltn & attr_cltn ()
 
const sc_attr_cltn & attr_cltn () const
 
virtual const std::vector< sc_event *> & get_child_events () const
 
sc_objectget_parent () const
 
sc_objectget_parent_object () const
 

Public Attributes

sc_core::sc_export< tlm_fifo_get_if< REQ > > get_request_export
 
sc_core::sc_export< tlm_fifo_put_if< RSP > > put_response_export
 
sc_core::sc_export< tlm_fifo_put_if< REQ > > put_request_export
 
sc_core::sc_export< tlm_fifo_get_if< RSP > > get_response_export
 
sc_core::sc_export< tlm_master_if< REQ, RSP > > master_export
 
sc_core::sc_export< tlm_slave_if< REQ, RSP > > slave_export
 

Protected Member Functions

virtual void before_end_of_elaboration ()
 
void construction_done ()
 
virtual void end_of_elaboration ()
 
void elaboration_done (bool &)
 
virtual void start_of_simulation ()
 
void start_simulation ()
 
virtual void end_of_simulation ()
 
void simulation_done ()
 
void sc_module_init ()
 
void end_module ()
 
void dont_initialize ()
 
void positional_bind (sc_interface &)
 
void positional_bind (sc_port_base &)
 
void async_reset_signal_is (const sc_in< bool > &port, bool level)
 
void async_reset_signal_is (const sc_inout< bool > &port, bool level)
 
void async_reset_signal_is (const sc_out< bool > &port, bool level)
 
void async_reset_signal_is (const sc_signal_in_if< bool > &iface, bool level)
 
void reset_signal_is (const sc_in< bool > &port, bool level)
 
void reset_signal_is (const sc_inout< bool > &port, bool level)
 
void reset_signal_is (const sc_out< bool > &port, bool level)
 
void reset_signal_is (const sc_signal_in_if< bool > &iface, bool level)
 
void wait ()
 
void wait (const sc_event &e)
 
void wait (const sc_event_or_list &el)
 
void wait (const sc_event_and_list &el)
 
void wait (const sc_time &t)
 
void wait (double v, sc_time_unit tu)
 
void wait (const sc_time &t, const sc_event &e)
 
void wait (double v, sc_time_unit tu, const sc_event &e)
 
void wait (const sc_time &t, const sc_event_or_list &el)
 
void wait (double v, sc_time_unit tu, const sc_event_or_list &el)
 
void wait (const sc_time &t, const sc_event_and_list &el)
 
void wait (double v, sc_time_unit tu, const sc_event_and_list &el)
 
void wait (int n)
 
void next_trigger ()
 
void next_trigger (const sc_event &e)
 
void next_trigger (const sc_event_or_list &el)
 
void next_trigger (const sc_event_and_list &el)
 
void next_trigger (const sc_time &t)
 
void next_trigger (double v, sc_time_unit tu)
 
void next_trigger (const sc_time &t, const sc_event &e)
 
void next_trigger (double v, sc_time_unit tu, const sc_event &e)
 
void next_trigger (const sc_time &t, const sc_event_or_list &el)
 
void next_trigger (double v, sc_time_unit tu, const sc_event_or_list &el)
 
void next_trigger (const sc_time &t, const sc_event_and_list &el)
 
void next_trigger (double v, sc_time_unit tu, const sc_event_and_list &el)
 
bool timed_out ()
 
void halt ()
 
void at_posedge (const sc_signal_in_if< bool > &s)
 
void at_posedge (const sc_signal_in_if< sc_dt::sc_logic > &s)
 
void at_negedge (const sc_signal_in_if< bool > &s)
 
void at_negedge (const sc_signal_in_if< sc_dt::sc_logic > &s)
 
void watching (bool)
 
void set_stack_size (std::size_t)
 
int append_port (sc_port_base *)
 
virtual void add_child_event (sc_event *event_p)
 
virtual void add_child_object (sc_object *object_p)
 
virtual bool remove_child_event (sc_event *event_p)
 
virtual bool remove_child_object (sc_object *object_p)
 
phase_cb_mask register_simulation_phase_callback (phase_cb_mask)
 
phase_cb_mask unregister_simulation_phase_callback (phase_cb_mask)
 

Protected Attributes

REQ_CHANNEL request_fifo
 
RSP_CHANNEL response_fifo
 
tlm_master_imp< REQ, RSP > master
 
tlm_slave_imp< REQ, RSP > slave
 
sc_sensitive sensitive
 
sc_sensitive_pos sensitive_pos
 
sc_sensitive_neg sensitive_neg
 

Detailed Description

template<typename REQ, typename RSP, typename REQ_CHANNEL = tlm_fifo<REQ>, typename RSP_CHANNEL = tlm_fifo<RSP>>
class tlm::tlm_req_rsp_channel< REQ, RSP, REQ_CHANNEL, RSP_CHANNEL >

Definition at line 33 of file tlm_req_rsp_channels.h.

Constructor & Destructor Documentation

◆ tlm_req_rsp_channel() [1/2]

template<typename REQ, typename RSP, typename REQ_CHANNEL = tlm_fifo<REQ>, typename RSP_CHANNEL = tlm_fifo<RSP>>
tlm::tlm_req_rsp_channel< REQ, RSP, REQ_CHANNEL, RSP_CHANNEL >::tlm_req_rsp_channel ( int  req_size = 1,
int  rsp_size = 1 
)
inline

Definition at line 52 of file tlm_req_rsp_channels.h.

◆ tlm_req_rsp_channel() [2/2]

template<typename REQ, typename RSP, typename REQ_CHANNEL = tlm_fifo<REQ>, typename RSP_CHANNEL = tlm_fifo<RSP>>
tlm::tlm_req_rsp_channel< REQ, RSP, REQ_CHANNEL, RSP_CHANNEL >::tlm_req_rsp_channel ( sc_core::sc_module_name  module_name,
int  req_size = 1,
int  rsp_size = 1 
)
inline

Definition at line 64 of file tlm_req_rsp_channels.h.

Member Data Documentation

◆ get_request_export

template<typename REQ, typename RSP, typename REQ_CHANNEL = tlm_fifo<REQ>, typename RSP_CHANNEL = tlm_fifo<RSP>>
sc_core::sc_export< tlm_fifo_get_if< REQ > > tlm::tlm_req_rsp_channel< REQ, RSP, REQ_CHANNEL, RSP_CHANNEL >::get_request_export

Definition at line 38 of file tlm_req_rsp_channels.h.

◆ get_response_export

template<typename REQ, typename RSP, typename REQ_CHANNEL = tlm_fifo<REQ>, typename RSP_CHANNEL = tlm_fifo<RSP>>
sc_core::sc_export< tlm_fifo_get_if< RSP > > tlm::tlm_req_rsp_channel< REQ, RSP, REQ_CHANNEL, RSP_CHANNEL >::get_response_export

Definition at line 44 of file tlm_req_rsp_channels.h.

◆ master

template<typename REQ, typename RSP, typename REQ_CHANNEL = tlm_fifo<REQ>, typename RSP_CHANNEL = tlm_fifo<RSP>>
tlm_master_imp< REQ , RSP > tlm::tlm_req_rsp_channel< REQ, RSP, REQ_CHANNEL, RSP_CHANNEL >::master
protected

Definition at line 95 of file tlm_req_rsp_channels.h.

◆ master_export

template<typename REQ, typename RSP, typename REQ_CHANNEL = tlm_fifo<REQ>, typename RSP_CHANNEL = tlm_fifo<RSP>>
sc_core::sc_export< tlm_master_if< REQ , RSP > > tlm::tlm_req_rsp_channel< REQ, RSP, REQ_CHANNEL, RSP_CHANNEL >::master_export

Definition at line 48 of file tlm_req_rsp_channels.h.

◆ put_request_export

template<typename REQ, typename RSP, typename REQ_CHANNEL = tlm_fifo<REQ>, typename RSP_CHANNEL = tlm_fifo<RSP>>
sc_core::sc_export< tlm_fifo_put_if< REQ > > tlm::tlm_req_rsp_channel< REQ, RSP, REQ_CHANNEL, RSP_CHANNEL >::put_request_export

Definition at line 43 of file tlm_req_rsp_channels.h.

◆ put_response_export

template<typename REQ, typename RSP, typename REQ_CHANNEL = tlm_fifo<REQ>, typename RSP_CHANNEL = tlm_fifo<RSP>>
sc_core::sc_export< tlm_fifo_put_if< RSP > > tlm::tlm_req_rsp_channel< REQ, RSP, REQ_CHANNEL, RSP_CHANNEL >::put_response_export

Definition at line 39 of file tlm_req_rsp_channels.h.

◆ request_fifo

template<typename REQ, typename RSP, typename REQ_CHANNEL = tlm_fifo<REQ>, typename RSP_CHANNEL = tlm_fifo<RSP>>
REQ_CHANNEL tlm::tlm_req_rsp_channel< REQ, RSP, REQ_CHANNEL, RSP_CHANNEL >::request_fifo
protected

Definition at line 92 of file tlm_req_rsp_channels.h.

◆ response_fifo

template<typename REQ, typename RSP, typename REQ_CHANNEL = tlm_fifo<REQ>, typename RSP_CHANNEL = tlm_fifo<RSP>>
RSP_CHANNEL tlm::tlm_req_rsp_channel< REQ, RSP, REQ_CHANNEL, RSP_CHANNEL >::response_fifo
protected

Definition at line 93 of file tlm_req_rsp_channels.h.

◆ slave

template<typename REQ, typename RSP, typename REQ_CHANNEL = tlm_fifo<REQ>, typename RSP_CHANNEL = tlm_fifo<RSP>>
tlm_slave_imp< REQ , RSP > tlm::tlm_req_rsp_channel< REQ, RSP, REQ_CHANNEL, RSP_CHANNEL >::slave
protected

Definition at line 96 of file tlm_req_rsp_channels.h.

◆ slave_export

template<typename REQ, typename RSP, typename REQ_CHANNEL = tlm_fifo<REQ>, typename RSP_CHANNEL = tlm_fifo<RSP>>
sc_core::sc_export< tlm_slave_if< REQ , RSP > > tlm::tlm_req_rsp_channel< REQ, RSP, REQ_CHANNEL, RSP_CHANNEL >::slave_export

Definition at line 49 of file tlm_req_rsp_channels.h.


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