FPGA, SoC, And CPLD Boards And Kits
FPGA Evaluation and Development Kits
5922 Discussions

Stream data from CIII kit using UDP over 1000 Ethernet

Altera_Forum
Honored Contributor II
994 Views

I have a CIII kit (EP3C120F780). My ultimate goal is to use my CIII kit to connect an ADC board to my laptop. I want to stream data from my ADC board through the HSMC header and out to my laptop over a direct connection gigabit Ethernet using UDP. I plan to process the data in real-time on my laptop using Matlab. My ADC sample rate is 7MHz. Therefore, my data needs to be streamed out at 7MHz x 16-bits = 112Mbps. I have connected the ADC board (16-bit LVDS) already and have gotten data into the kit with ALTLVDS. My connections are short and direct (2 inch cable to the HSMC, 2 inch Ethernet cable to Laptop). I think UDP is the best choice to simply/effectively stream this amount of data. I’m okay with occasional data loss. It’s more important to keep piping the data at 112Mbps. I'm considering using megafunction FIFO to buffer the data then build a UDP header and stream it out through the Ethernet port. I don't want to redesign the wheel here though. Are there better ways to stream UDP over Ethernet? It looks like SOPC Builder has Ethernet blocks, though some appear to only support 10/100 and I need 1000. It appears there are multiple ways to build this code. Can anyone advise on what the easiest method with the best chance for success is? Thanks

0 Kudos
2 Replies
Altera_Forum
Honored Contributor II
315 Views

You can use the Altera triple speed ethernet MAC and feed it with the UDP packets that you build with some custom hardware. Have a look at the nios ii udp offload example (http://www.alterawiki.com/wiki/nios_ii_udp_offload_example). 

As an alternative you could try a software solution with a Nios CPU and a UDP/IP stack but I don't think it would manage to reach 112MBps, or at least not easily.
0 Kudos
Altera_Forum
Honored Contributor II
315 Views

I have a problems with UDP offload example. The Avolon st is 32-bit, but my source data is in byte, the payload count may be 491 or other number which can't be divided by 4. Does anybody have a good ideas to deal with the problems. Pading zero can't solve the problems!!!I think so. Give my best wishes to you

0 Kudos
Reply