ai.asic Posted July 17, 2023 Report Share Posted July 17, 2023 Hey, guys I found an example of AXI4 with TLM2 which only adapt to single socket. Now I wonder if I can use multi_passthrough_initiator_socket and multi_passthrough_target_socket to build AXI4 noc. And now I am stuck by the code. I really need your help. Best wishes. Quote Link to comment Share on other sites More sharing options...
Eyck Posted July 17, 2023 Report Share Posted July 17, 2023 It depends on what level of abstraction you want to use to model AXI4. For LT level multi-socket should be ok. But to model at AT level you are better off using an sc_vector of sockets as each socket has its own timing and state. But I'm wondering: why would you want to use multi passthrough sockets? What gainusing them would you expect? Quote Link to comment Share on other sites More sharing options...
ai.asic Posted July 18, 2023 Author Report Share Posted July 18, 2023 @Eyck Thank you for your answer. I want to model at AT level. The reason why I want to use multi sockets is I found it is convinient to build crossbar topo. Quote Link to comment Share on other sites More sharing options...
Eyck Posted July 23, 2023 Report Share Posted July 23, 2023 To your orginal question: yes, you can use multi-passthrough sockets to model a NoC. You need to implement the AT protocol (depending on the socket id) and bind it to the sockets, there is no difference. There is one drawback you might encounter: if you need to hierarchically bind the sockets of your NoC and split the connections this will not be possible.This is because multi_passthrough_target_socket does not bind to tlm::target_socket, only to tlm::initialtor_socket. Therefore my suggestion to use a sc_vector of TLM sockets... Quote Link to comment Share on other sites More sharing options...
ai.asic Posted July 25, 2023 Author Report Share Posted July 25, 2023 It seems that you're right. I'm appriciate to have your suggustion of using sc_vector of TLM sockets to imple a NoC. How can I approch with sc_vector instead of multi_socket. Is there any sample of NoC? Quote Link to comment Share on other sites More sharing options...
Eyck Posted August 3, 2023 Report Share Posted August 3, 2023 Not of a NoC but a router for LT traffic: https://github.com/Minres/SystemC-Components/blob/develop/src/components/scc/router.h Besides tlm::scc::initiator_mixin<tlm::tlm_initiator_socket<BUSWIDTH>> (and respective target socket) you might use tlm_utils::simple_initiator_socket<...> which work similar. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.