|
| using | payload_type = axi::axi_protocol_types::tlm_payload_type |
| using | phase_type = axi::axi_protocol_types::tlm_phase_type |
|
| void | b_snoop (payload_type &trans, sc_core::sc_time &t) override |
| | snoop access to a snooped master
|
| tlm::tlm_sync_enum | nb_transport_bw (payload_type &trans, phase_type &phase, sc_core::sc_time &t) override |
| void | invalidate_direct_mem_ptr (sc_dt::uint64 start_range, sc_dt::uint64 end_range) override |
| size_t | get_transferwith_in_bytes () const |
| void | transport (payload_type &trans, bool blocking) override |
| | The forward transport function. It behaves blocking and is re-entrant.
|
| void | snoop_resp (payload_type &trans, bool sync=false) override |
| | triggers a non-blocking snoop response if the snoop callback does not do so.
|
| | axi_initiator_b (sc_core::sc_module_name nm, sc_core::sc_port_b< axi::axi_fw_transport_if< axi_protocol_types > > &port, size_t transfer_width, flavor_e flavor) |
|
| axi_initiator_b (axi_initiator_b const &)=delete |
|
| axi_initiator_b (axi_initiator_b &&)=delete |
|
axi_initiator_b & | operator= (axi_initiator_b const &)=delete |
|
axi_initiator_b & | operator= (axi_initiator_b &&)=delete |
| void | add_protocol_cb (axi::fsm::protocol_time_point_e e, std::function< void(payload_type &, bool)> cb) |
| | register a callback for a certain time point
|
|
| sc_core::sc_in< bool > | clk_i {"clk_i"} |
| sc_core::sc_export< tlm::scc::pe::intor_fw_b > | fw_i {"fw_i"} |
| sc_core::sc_port< tlm::scc::pe::intor_bw_b, 1, sc_core::SC_ZERO_OR_MORE_BOUND > | bw_o {"bw_o"} |
| cci::cci_param< bool > | data_interleaving {"data_interleaving", false} |
| cci::cci_param< unsigned > | artv {"artv", 1} |
| | Read address valid to next read address valid.
|
| cci::cci_param< unsigned > | awtv {"awtv", 1} |
| | Write address valid to next write address valid.
|
| cci::cci_param< unsigned > | wbv {"wbv", 1} |
| | Write data handshake to next beat valid.
|
| cci::cci_param< unsigned > | rbr {"rbr", 0} |
| | Read data valid to same beat ready.
|
| cci::cci_param< unsigned > | br {"br", 0} |
| | Write response valid to ready.
|
| cci::cci_param< unsigned > | rla {"rla", 1} |
| | Read last data handshake to acknowledge.
|
| cci::cci_param< unsigned > | ba {"ba", 1} |
| | Write response handshake to acknowledge.
|
| cci::cci_param< bool > | enable_id_serializing {"enable_id_serializing", false} |
| | Quirks enable.
|
| cci::cci_param< unsigned > | outstanding_snoops {"outstanding_snoops", 8} |
| | number of snoops which can be handled
|
Definition at line 34 of file axi_initiator.h.
◆ payload_type
| using axi::pe::axi_initiator_b::payload_type = axi::axi_protocol_types::tlm_payload_type |
◆ phase_type
| using axi::pe::axi_initiator_b::phase_type = axi::axi_protocol_types::tlm_phase_type |
◆ axi_initiator_b()
◆ ~axi_initiator_b()
| axi::pe::axi_initiator_b::~axi_initiator_b |
( |
| ) |
|
|
virtual |
◆ add_protocol_cb()
| void axi::pe::axi_initiator_b::add_protocol_cb |
( |
axi::fsm::protocol_time_point_e | e, |
|
|
std::function< void(payload_type &, bool)> | cb ) |
|
inline |
register a callback for a certain time point
This function allows to register a callback for certain time points of a transaction (see axi::fsm::protocol_time_point_e). The callback will be invoked after the FSM-actions are executed.
- Parameters
-
| e | the timepoint |
| cb | the callback taking a reference to the transaction and a bool indicating a snoop if true |
Definition at line 122 of file axi_initiator.h.
◆ b_snoop()
| void axi::pe::axi_initiator_b::b_snoop |
( |
payload_type & | trans, |
|
|
sc_core::sc_time & | t ) |
|
overridevirtual |
◆ calculate_beats()
| unsigned axi::pe::axi_initiator_b::calculate_beats |
( |
payload_type & | p | ) |
|
|
inlineprotected |
◆ get_transferwith_in_bytes()
| size_t axi::pe::axi_initiator_b::get_transferwith_in_bytes |
( |
| ) |
const |
|
inline |
◆ invalidate_direct_mem_ptr()
| void axi::pe::axi_initiator_b::invalidate_direct_mem_ptr |
( |
sc_dt::uint64 | start_range, |
|
|
sc_dt::uint64 | end_range ) |
|
override |
◆ nb_transport_bw()
| tlm::tlm_sync_enum axi::pe::axi_initiator_b::nb_transport_bw |
( |
payload_type & | trans, |
|
|
phase_type & | phase, |
|
|
sc_core::sc_time & | t ) |
|
override |
◆ snoop_resp()
| void axi::pe::axi_initiator_b::snoop_resp |
( |
payload_type & | trans, |
|
|
bool | sync = false ) |
|
overridevirtual |
triggers a non-blocking snoop response if the snoop callback does not do so.
- Parameters
-
| trans | |
| sync | when true send response with next rising clock edge otherwise send immediately |
Implements tlm::scc::pe::intor_fw< type::BL >.
Definition at line 362 of file axi_initiator.cpp.
◆ snoop_thread()
| void axi::pe::axi_initiator_b::snoop_thread |
( |
| ) |
|
|
protected |
◆ transport()
| void axi::pe::axi_initiator_b::transport |
( |
payload_type & | trans, |
|
|
bool | blocking ) |
|
overridevirtual |
The forward transport function. It behaves blocking and is re-entrant.
This function initiates the forward transport either using b_transport() if blocking=true or the nb_transport_* interface.
- Parameters
-
| trans | the transaction to send |
| blocking | execute in using the blocking interface |
Timing
Timing
Timing
Implements tlm::scc::pe::intor_fw< type::BL >.
Definition at line 113 of file axi_initiator.cpp.
◆ any_tx_finished
| sc_core::sc_event axi::pe::axi_initiator_b::any_tx_finished |
|
protected |
◆ artv
| cci::cci_param<unsigned> axi::pe::axi_initiator_b::artv {"artv", 1} |
Read address valid to next read address valid.
Definition at line 95 of file axi_initiator.h.
◆ awtv
| cci::cci_param<unsigned> axi::pe::axi_initiator_b::awtv {"awtv", 1} |
Write address valid to next write address valid.
Definition at line 97 of file axi_initiator.h.
◆ ba
| cci::cci_param<unsigned> axi::pe::axi_initiator_b::ba {"ba", 1} |
◆ br
| cci::cci_param<unsigned> axi::pe::axi_initiator_b::br {"br", 0} |
◆ bw_o
◆ clk_i
| sc_core::sc_in<bool> axi::pe::axi_initiator_b::clk_i {"clk_i"} |
◆ clk_period
| sc_core::sc_time axi::pe::axi_initiator_b::clk_period {10, sc_core::SC_NS} |
|
protected |
◆ data_interleaving
| cci::cci_param<bool> axi::pe::axi_initiator_b::data_interleaving {"data_interleaving", false} |
◆ enable_id_serializing
| cci::cci_param<bool> axi::pe::axi_initiator_b::enable_id_serializing {"enable_id_serializing", false} |
◆ flavor
| const flavor_e axi::pe::axi_initiator_b::flavor |
|
protected |
◆ fw_i
◆ id_mtx
◆ outstanding_snoops
| cci::cci_param<unsigned> axi::pe::axi_initiator_b::outstanding_snoops {"outstanding_snoops", 8} |
◆ rbr
| cci::cci_param<unsigned> axi::pe::axi_initiator_b::rbr {"rbr", 0} |
◆ rd_chnl
◆ rd_outstanding
| scc::sc_variable<unsigned> axi::pe::axi_initiator_b::rd_outstanding {"RdOutstanding", 0} |
|
protected |
◆ rd_waiting
| scc::sc_variable<unsigned> axi::pe::axi_initiator_b::rd_waiting {"RdWaiting", 0} |
|
protected |
◆ rla
| cci::cci_param<unsigned> axi::pe::axi_initiator_b::rla {"rla", 1} |
◆ snp_peq
| tlm_utils::peq_with_get<payload_type> axi::pe::axi_initiator_b::snp_peq {"snp_peq"} |
|
protected |
◆ snp_state_by_id
| std::unordered_map<void*, tx_state*> axi::pe::axi_initiator_b::snp_state_by_id |
|
protected |
◆ socket_fw
◆ sresp_chnl
◆ transfer_width_in_bytes
| const size_t axi::pe::axi_initiator_b::transfer_width_in_bytes |
|
protected |
◆ tx_state_by_tx
| std::unordered_map<void*, tx_state*> axi::pe::axi_initiator_b::tx_state_by_tx |
|
protected |
◆ wbv
| cci::cci_param<unsigned> axi::pe::axi_initiator_b::wbv {"wbv", 1} |
Write data handshake to next beat valid.
Definition at line 99 of file axi_initiator.h.
◆ wr_chnl
◆ wr_outstanding
| scc::sc_variable<unsigned> axi::pe::axi_initiator_b::wr_outstanding {"WrOutstanding", 0} |
|
protected |
◆ wr_waiting
| scc::sc_variable<unsigned> axi::pe::axi_initiator_b::wr_waiting {"WrWaiting", 0} |
|
protected |
The documentation for this class was generated from the following files:
- /home/eyck/Projects/MINRES/SystemC-Components/third_party/axi_chi/axi/pe/axi_initiator.h
- /home/eyck/Projects/MINRES/SystemC-Components/third_party/axi_chi/axi/pe/axi_initiator.cpp