38 template <
class IF>
using sc_port_opt = sc_core::sc_port<IF, 1, sc_core::SC_ZERO_OR_MORE_BOUND>;
41 sc_core::sc_event evt;
42 tlm::tlm_generic_payload* gp{
nullptr};
43 bool lt_transport{
false};
44 sc_core::sc_process_handle hndl{};
45 thread_unit(
const thread_unit& o)
47 , lt_transport(o.lt_transport)
49 thread_unit() =
default;
58 sc_core::sc_export<intor_fw_nb>
fw_i{
"fw_i"};
64 sc_port_opt<intor_bw_nb>
bw_o{
"bw_o"};
70 sc_core::sc_port<intor_fw_b>
fw_o{
"fw_o"};
86 void transport(tlm::tlm_generic_payload& payload,
bool lt_transport =
false)
override;
88 void snoop_resp(tlm::tlm_generic_payload& payload,
bool sync)
override {
fw_o->snoop_resp(payload, sync); }
90 std::deque<unsigned> waiting_ids;
91 std::vector<thread_unit> threads;