17 #ifndef _TLM_SCC_PE_PARALLEL_PE_H_
18 #define _TLM_SCC_PE_PARALLEL_PE_H_
31 template <
class IF>
using sc_port_opt = sc_core::sc_port<IF, 1, sc_core::SC_ZERO_OR_MORE_BOUND>;
34 sc_core::sc_event evt;
35 tlm::tlm_generic_payload* gp{
nullptr};
36 bool lt_transport{
false};
37 sc_core::sc_process_handle hndl{};
38 thread_unit(
const thread_unit& o)
40 , lt_transport(o.lt_transport)
42 thread_unit() =
default;
46 sc_core::sc_export<intor_fw_nb> fw_i{
"fw_i"};
48 sc_port_opt<intor_bw_nb> bw_o{
"bw_o"};
50 sc_core::sc_port<intor_fw_b> fw_o{
"fw_o"};
57 void transport(tlm::tlm_generic_payload& payload,
bool lt_transport =
false)
override;
59 void snoop_resp(tlm::tlm_generic_payload& payload,
bool sync)
override { fw_o->snoop_resp(payload, sync); }
61 std::deque<unsigned> waiting_ids;
62 std::vector<thread_unit> threads;