54 using tlm_initiator_socket_t = tlm_utils::simple_initiator_socket_b<
MOD,
BUSWIDTH, tlm::tlm_base_protocol_types,
55 sc_core::SC_ZERO_OR_MORE_BOUND>;
56 using tlm_target_socket_t = tlm_utils::simple_target_socket_tagged_b<
MOD,
BUSWIDTH, tlm::tlm_base_protocol_types,
57 sc_core::SC_ZERO_OR_MORE_BOUND>;
67 void setup_biflow_socket(pybind11::object&
_modules);
69 void do_b_transport(
int id, pybind11::object&
py_trans, pybind11::object&
py_delay);
71 void b_transport(
int id, tlm::tlm_generic_payload&
trans, sc_core::sc_time& delay);
73 void bf_b_transport(tlm::tlm_generic_payload&
txn, sc_core::sc_time& delay);
75 unsigned int transport_dbg(
int id, tlm::tlm_generic_payload&
trans);
77 bool get_direct_mem_ptr(
int id, tlm::tlm_generic_payload&
trans, tlm::tlm_dmi& dmi_data);
79 void invalidate_direct_mem_ptr(sc_dt::uint64 start, sc_dt::uint64 end);
81 void exec_if_py_fn_exist(
const char*
fn_name);
83 void before_end_of_elaboration()
override;
85 void end_of_elaboration()
override;
87 void start_of_simulation()
override;
89 void end_of_simulation()
override;
91 void target_signal_cb(
int id,
bool value);
94 cci::cci_param<std::string> p_py_mod_name;
95 cci::cci_param<std::string> p_py_mod_dir;
96 cci::cci_param<std::string> p_py_mod_args;
97 cci::cci_param<std::string> p_py_mod_current_mod_id_prefix;
98 cci::cci_param<uint32_t> p_tlm_initiator_ports_num;
99 cci::cci_param<uint32_t> p_tlm_target_ports_num;
100 cci::cci_param<uint32_t> p_initiator_signals_num;
101 cci::cci_param<uint32_t> p_target_signals_num;
102 cci::cci_param<uint32_t> p_bf_socket_num;
103 sc_core::sc_vector<tlm_initiator_socket_t> initiator_sockets;
104 sc_core::sc_vector<tlm_target_socket_t> target_sockets;
105 sc_core::sc_vector<InitiatorSignalSocket<bool>> initiator_signal_sockets;
106 sc_core::sc_vector<TargetSignalSocket<bool>> target_signal_sockets;
107 sc_core::sc_vector<gs::biflow_socket<python_binder<BUSWIDTH>>> bf_socket;
110 pybind11::module_ m_main_mod;
111 pybind11::module_ m_tlm_do_b_transport_mod;
112 pybind11::module_ m_biflow_socket_mod;
113 pybind11::module_ m_initiator_signal_socket_mod;
114 pybind11::module_ m_cpp_shared_vars_mod;