by support »
Hello,
Had it not been up 512 channels, but something like 16 or so, I would have suggested assigning separate Xillybus streams for each filter.
In your case, it seems like you need to implement a demultiplexer (demux for short). it doesn't make much sense to try changing the FIFO connected to the Xillybus core. Rather, the application logic should read data from the FIFO, and pass it on to each of the filters in a round robin manner. So yes, there is a counter (which I would zero when the *_open signal is low), but it keeps track on which of the filters should get the data next.
My description is rather vague, because what to implement depends on how the filters expect to receive the data. Googling for "demux" along with "Verilog" or "VHDL" or "FPGA" or something similar will probably bring you to some helpful examples.
Regards,
Eli
Hello,
Had it not been up 512 channels, but something like 16 or so, I would have suggested assigning separate Xillybus streams for each filter.
In your case, it seems like you need to implement a demultiplexer (demux for short). it doesn't make much sense to try changing the FIFO connected to the Xillybus core. Rather, the application logic should read data from the FIFO, and pass it on to each of the filters in a round robin manner. So yes, there is a counter (which I would zero when the *_open signal is low), but it keeps track on which of the filters should get the data next.
My description is rather vague, because what to implement depends on how the filters expect to receive the data. Googling for "demux" along with "Verilog" or "VHDL" or "FPGA" or something similar will probably bring you to some helpful examples.
Regards,
Eli