I have a single conduit on my Qsys component. This conduit contains a range of signals which are not are inter-related. However, in the RTL code related signals are bunched together.
When I goto the Block Symbol view in Qsys and select my custom component, I can see the RTL names of the conduit signals and also what name they were given during the Qsys custom component creation which are the names stored in the _hw.tcl file.
The issue is that, the order that the signals appear in the Qsys block symbol view is different from the way I grouped them in the RTL code. Also, the order that appears in the block symbol view is exactly how these signals are arranged in the Instantiation Template. This leads to a lot of confusion when we want to instantiate the Qsys system in RTL code and then port map it.
There are quite a lot of signals in this conduit. It is possible to have multiple separate conduit ports to help group related signals together.
I just want to know, why does the order of signals in conduit as seen in Qsys block symbol view not match the order in the RTL code. How is this order decided by Qsys?
Yes, you can create as many conduit interfaces as you want to organize signals.
I'm not sure how the organization of signals within a conduit works. I usually create multiple conduits.
ok, point noted.
I am still curious to know how the order of signals is decided by Qsys. Since it does not follow the order in the RTL file, what criteria does it use?
The _hw.tcl contains nothing to indicate the order. The order is not alphabetic. The order is also not inputs on top followed by outputs.
It would be great to know how Qsys decides this.
Currently there no information of how the order of conduit signal is decided. Yes, you can create multiple conduit interface to manage your signal.
Can't you find out from people that make Quartus how it works? I am very interested to know. When there are dozens of signals in conduit then such things matter a lot. I am not sure if you have ever done work in design and verification of complex designs. It seems that you are trivialising this matter.
Can't you request this information from the factory? The designers of Quartus will know how the order of conduits is decided. This information is really important for me.
The order of the conduit signal is determined by order in you _hw.tcl generated by Qsys not rtl. The Qsys will generate you tcl file after you finish creating custom component. You can set the order from there (_hw.tcl) for signal order and see the in Qsys block/Inst Template changes.