18 #include <axi/pe/axi_target_pe.h>
19 #include "target_info_if.h"
27 sc_core::sc_in<bool> clk_i{
"clk_i"};
29 sc_core::sc_export<tlm::scc::pe::intor_fw_nb> fw_i{
"fw_i"};
31 sc_core::sc_port<tlm::scc::pe::intor_bw_nb, 1, sc_core::SC_ZERO_OR_MORE_BOUND> bw_o{
"bw_o"};
33 sc_core::sc_attribute<unsigned>
min_latency{
"min_latency", 10};
35 sc_core::sc_attribute<unsigned>
max_latency{
"max_latency", 100};
38 sc_core::sc_attribute<unsigned>
window_size{
"window_size", 2};
52 void transport(tlm::tlm_generic_payload& payload,
bool lt_transport =
false)
override;
59 void snoop_resp(tlm::tlm_generic_payload& payload,
bool sync =
false)
override {}
65 que_entry(tlm::tlm_generic_payload& gp):trans(&gp){}
67 std::array<std::unordered_map<unsigned , std::deque<que_entry>>, 3> reorder_buffer;
73 sc_core::sc_port_policy POL = sc_core::SC_ONE_OR_MORE_BOUND>
77 using payload_type = base::payload_type;
78 using phase_type = base::phase_type;
80 sc_core::sc_in<bool> clk_i{
"clk_i"};
90 : sc_core::sc_module(nm)
91 , pe(
"pe", BUSWIDTH) {
94 pe.fw_o(reorder_buffer.fw_i);
95 reorder_buffer.clk_i(clk_i);
96 reorder_buffer.bw_o(pe.bw_i);
109 size_t get_outstanding_tx_count()
override {
return pe.getAllOutStandingTx();}
112 void end_of_elaboration(){
113 auto* ifs = sckt.get_base_port().get_interface(0);
114 sc_assert(ifs!=
nullptr);
115 pe.set_bw_interface(ifs);
119 tx_reorderer reorder_buffer{
"reorder_buffer"};
reordering_target(const sc_core::sc_module_name &nm)
the constructor
void snoop_resp(tlm::tlm_generic_payload &payload, bool sync=false) override
sc_core::sc_attribute< unsigned > window_size
void transport(tlm::tlm_generic_payload &payload, bool lt_transport=false) override
sc_core::sc_attribute< unsigned > min_latency
the minimum time a transaction will stay in the target
sc_core::sc_attribute< bool > prioritize_by_qos
use the QoS field for selection.
sc_core::sc_attribute< bool > prioritize_by_latency
sc_core::sc_attribute< unsigned > max_latency
the maximum time a transaction is allwed to stay in the target
TLM2.0 components modeling AHB.
The AXI protocol traits class. Since the protocoll defines additional non-ignorable phases a dedicate...