Open LyceanEM opened 3 months ago
Hello,
The latest commit to this repo should fix the issues you're having. There is a separate notebook rfsoc_offload_board_gr.ipynb
that starts an XMLRPC server needed to remotely control the board.
Simultaneous bi-directional streaming to/from board/GNU Radio is definitely possible with design modifications as the netlayer
IP supports reception of UDP packets.
The main issue I had was achieving sufficiently high real-time sample rate on the PC to prevent spectrum anomalies. If you can, I would suggest pre-generating your signal to be transmitted and stream from file or directly from the board.
You might find some useful information in my paper .
Feel free to contact me with any further questions.
Cheers, Marius
Thank you Marius
I will pull the latest commit and try again. Can multiple ADC be initialized and synchronized with this overlay? I have been looking at the codebase and while I have not tried adding a multi tile sync call, I don't seem to have access to all four channels. When I try to access other tiles or blocks, I get errors from either XRFdc_DynamicPLLConfig (for any tile but 2), and for tile 2 and any block but 0 I get an error call from XRFdc_SetNyquistZone, stating that the block is not available. From the RFSoC book I was under the impression that the avaliable ADC blocks are the 0 indexed blocks from each tile, is this not correct, or do I need to generate a derivative overlay to access the other tiles?
Many Thanks
Tim
Hello Marius
I have been trying to adapt the bitstream file to allow for the simultaneous and coherent streaming from each of the four channels, however the switch approach seems limited to only a single channel at a time. Can you recommend an approach to streaming all channels at once, ideally which each channel streaming to a different port so I can use seperate UDP ports at the receiving side?
Many Thanks
Tim
Hi Tim,
According to the netlayer IP docs the S_AXIS_sk2nl_dest signal can be used to supply the destination socket. Together with modifications to the socket table from PS side should allow you to achieve sending data to multiple different sockets on the receiving side. This will still require some form of hardware switch/packet scheduler to merge the IQ data from multiple channels into a single stream of packetised data.
Hope this helps.
Cheers,
Marius.
Hi Marius
We have been working on this but there isn't clear documentation on how the socket table on the python overlay side interfaces with the packet switch IP in Vivado. Can you give a bit more information on how this should be routed?
Many Thanks
Tim
Hi Tim,
Sadly I'm not familiar with this myself, as I have not yet tryed to implement a multi socket system. It might be a good idea to ask the folks at xup_vitis_network_example for specifics.
Cheers, Marius
Trying the gnuradio demo and trying to change the decimation or sample rate crashes the flowgraph with the error message "Connection Refused".
I am interested in streaming multiple channels to the client computer, and ideally using gnuradio to generate the transmit signals and stream them to the RFSoC, while streaming the receive channels back to the client. Can you give any advice on how to set this up based on using QSFP offload?
Many thanks