Forum Discussion
Altera_Forum
Honored Contributor
9 years agoSolved!
After further investigation, I think I finally understand (it only took about four days of debugging...) Bottom line is that if the channel signal is used, the maxChannel parameter must be set. Using the Component Editor, the parameter is stored in a signed 32-bit integer, so the maximum supported maxChannel is 2^31-1, which corresponds to a maximum channel width of 31 bits. I was having trouble because the Avalon-ST Multiplexer sink was setting it's maxChannel value, and my connecting Avalon-ST source did not match maxChannel. If the Avalon-ST Multiplexer sink channel width is set to 20 bits, maxChannel is set to 2^20-1. If the source and sink maxChannel values do not exactly match, Qsys inserts a channel adapter. The problem is that the inserted Avalon-ST adapter has a maximum channel width of 8, which will throw an error of the attached source with a channel size greater than 8 bits. If any component uses greater than an 8-bit channel width, maxChannel must be set to match exactly to prevent a channel adpater from being inserted. What I don't understand, however is that the maxChannel parameter in Component Editor seems to be a signed 32-bit integer. This means that the maximum max channel is 2^31-1, or 31 bits wide. For custom components, this limits channel usage to 31 bits, where the Avalon ST Interface Specifications allow for a channel size of up to 128 bits. I haven't yet explored manually editing the TCL file maxChannel to take advantage of the full 1-128 bits specified in the Avalon Interface user guide, as I only need a 20-bit channel. So, for now, my question is answered.