Search the Community
Showing results for tags 'multi_passthrough_initiator_socket'.
Found 3 results
-
I have an array of initiaot/target sockets(without pointers) like tlm_utils::multi_passthrough_initiator_socket<Router, 32, tlm::tlm_base_protocol_types,1,sc_core::SC_ZERO_OR_MORE_BOUND > Out[10] How I can provide the name to these elements as Out0, Out1,Out2,...,Out9. Please note these are not pointers but simple object Thanks Sumit
-
Interconnect backward transactions
SumitK posted a topic in SystemC TLM (Transaction-level Modeling)
Hi Folks In my inteconnect model, I have a target socket In (which allows multiple initiator sockets connected to it) and an array of initiator socket like folloiwng tlm_utils::multi_passthrough_target_socket<QC_Mux_base<N_TARGETS>, 32, tlm::tlm_base_protocol_types,0,sc_core::SC_ZERO_OR_MORE_BOUND > In tlm_utils::multi_passthrough_initiator_socket<QC_Mux_base<N_TARGETS>, 32, tlm::tlm_base_protocol_types,1,sc_core::SC_ZERO_OR_MORE_BOUND > Out[MAX] Now if I receive some backward transaction, e.g. nb_transport_bw or invalidate_direct_mem_ptr, on some of the Out socket, I need to forward it via In socket. For that do I just say In->nb_transport_bw(...) and In->invalidate_direct_mem_ptr(...) or for(unsigned int i=0; i< In.size(); i++) In->nb_transport_bw(...) and for(unsigned int i=0; i< In.size(); i++) In->invalidate_direct_mem_ptr(...) wrt compilation, both are accepted Thanks in Advance Thanks Sumit -
TLM2 port hierarchical connections with different direction
SumitK posted a topic in SystemC TLM (Transaction-level Modeling)
Hi Folks Is it allowed to connect an initiator port to a target port up in the hierarchy ? Is it allowed to connect an target port to a initiator port up in the hierarchy ? I assume no but what I observe that OSCI systemc implementation allows this. I tried to reproduce this problem with a small example(attached) where I have a component model with following ports tlm_utils::multi_passthrough_initiator_socket<model,32, tlm::tlm_base_protocol_types,0,SC_ZERO_OR_MORE_BOUND> master; tlm_utils::multi_passthrough_target_socket<model,32, tlm::tlm_base_protocol_types,0,SC_ZERO_OR_MORE_BOUND> slave; Then I create a subsystem with an instance of above component model and a following port tlm_utils::multi_passthrough_initiator_socket<model,32, tlm::tlm_base_protocol_types,0,SC_ZERO_OR_MORE_BOUND> master; Then if I connect model_inst->master.bind(master); // this is fine master.bind(model_inst->slave); // this should not allowed, I think I am attaching the complete code. Can you help me to understand whether it is allowed ? Thanks Sumit test.cpp