I am having trouble sending a data stream over Ethernet on my Arria II GX board. I have been able to create a Simple Socket Server using Nios II template and an example TSE Quartus design, but have not been able to connect the 12bit signal from the HSMC connector over ethernet. My understanding is that I would need to use FIFO On-Chip Memory to capture the 12bit signal then read that value at the given memory address and send that value over the ethernet. I have looked at the UDP Offload Example, but I haven't been able to port that over to my device successfully.Is using a FIFO memory module a decent approach or is there a better way to accomplish what I am trying to do? Any help / tips are greatly appreciated.
A FIFO makes perfect sense unless you need to be able to re-transmit data that is lost in transit. UDP does not support re-sending lost data which is what makes it so much simpler to use than TCP. With UDP the re-sending of lost data would have to be handled at a higher level. I'm guessing this is not a concern for you, in which case a FIFO should work great.If the Nios is creating your UDP packets then you just need to give the Nios the ability to read from the FIFO and monitor the FIFO level. You may also need a mechanism to backpressure the FMC data source to make sure your FIFO does not overflow. Depending on the nature of the data (data rate, burst vs. constant rate, etc) you may not need to worry about backpressure. UDP is easy to implement in hardware if you would prefer to live without the Nios. Having a canned Nios example design to get a simple socket server running is great, but if you don't have the knowledge of how to modify that design to add your FMC interface then it's not much help in the end.