I'm working on my first FPGA design and hope to get some suggestions. The Avalon bus spec is fairly clear to me, and I've used QSys to create and connect custom components. Higher-level design patterns are where my awareness is lacking.
The component to acquire each channel of data is done and works fine in simulation and hardware. I now need to multiplex 50 components' data output into a processing component. The processing component will then expose an Avalon-ST source for downstream components to consume its data. I'm unclear/undecided on a reasonable approach to do this.
High level guidance / suggestions are appreciated. I can see either programming a mux / arbiter in HDL, or trying to use QSys to do it at a higher level. For the QSys route is it even feasible?
How would you typically approach getting many channels of data serialized onto the Avalon bus?
This is a proof of concept and performance / resource efficiency are not important at this stage. Simplicity of understanding, design, and testing is a better target.
This could all be done in Platform Designer (formerly known as Qsys). The inputs can be physical and/or logical (using the channel signal) Avalon-ST channels. Platform Designer includes Avalon-ST components, including mux/demux, for routing data.