- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I just started my internship and I haven't really worked with FPGA's before. I have a borad with Stratix chip on it and the board has the ability to communicate to a PC via ethernet. My question was whether if there is a standard protocol used for data transmission between the board and the PC using the ethernet.
I read something about the 10 Gigabit Ethernet (XSBI) high speed protocol, but I don't know much about that either. Thank you very much.Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- originally posted by ajs52@Oct 18 2005, 03:39 PM i just started my internship and i haven't really worked with fpga's before. i have a borad with stratix chip on it and the board has the ability to communicate to a pc via ethernet. my question was whether if there is a standard protocol used for data transmission between the board and the pc using the ethernet.
i read something about the 10 gigabit ethernet (xsbi) high speed protocol, but i don't know much about that either.
thank you very much.
<div align='right'><{post_snapback}> (index.php?act=findpost&pid=10432)
--- quote end ---
--- Quote End --- Well...there's TCP/IP, which is the protocol typically used to communicate over ethernet. You might check out the simple socket server example application. Or am I misunderstanding the question?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
if you use the nios dev/eval kit then starting out with either the simple socket server or webserver example is a good idea, also i recommend using a good packet sniffer to monitor network traffic
as for the protocolls normally used, UDP and TCP are most commonly used for data transfer between PC and the nios board- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
for that some rtos is needed to be running on the processor right? correct me if i am wrong. thanks and regards prasad- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
well, there is a stand alone LWIP stack implementation, but i have 0 experience with that, since i just use the micro/OS which comes with the nios Dev kit
all things considered though, the LWIP stack could do with some good looking over, ive just been looking at the checksum routines in inet.c and ive taken out some rather stupid pieces of code basicly doing nothing or being totally inefficient didnt give me much more speed though, but clean logical code is a good thing anyway- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
so which protocol would be the best for continuously streaming data to a pc from the board.
Thank you all again for your help.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- originally posted by ajs52@Oct 20 2005, 08:00 AM so lets say i have a lot of data coming in to the board and i want to stream it all to pc after it gets processed, via the ethernet...would that work? --- Quote End --- Define "a lot of data". Typically, people are seeing about 400-700 kbytes/second data transfer rates with Nios2 and the LAN91C111 chip. There are some options that could speed things up a little, but they cost a bunch.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
well, for high throughput UDP is arguably the fastest, since it requires much less overhead then TCP, the main problem however is that UDP is prone to packet loss, so if every packete contains valuable data you will either need to use TCP or build in data controll on a higher level yourself
im working with the webserver example using TCP for data transfer, best i had up to now is 10 mbit grose, so that includes all overhead from TCP, in terms of pure data transmitted its 9 mbit tops and that is with a nios2/f clocked at 125 mhz, to give you an idea, i would have clocked it faster, but at 150 mhz it no longer works... and anywhere over 140 mhz requires the SD-ram on my board to run asynchronous anyway so if you are using TCP with the standard Lwip stack, expect 10 mbit tops, you can squeeze out a lot more, but that will take work im working on the same thing right now, im doing an internship, and the assignment is to get this transfer rate as close to 100mbit as we can, but i seriously doubt being able to go over 50- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- originally posted by thomsonbro@Oct 21 2005, 02:15 AM well, for high throughput udp is arguably the fastest, since it requires much less overhead then tcp, the main problem however is that udp is prone to packet loss, so if every packete contains valuable data you will either need to use tcp or build in data controll on a higher level yourself
im working with the webserver example using tcp for data transfer, best i had up to now is 10 mbit grose, so that includes all overhead from tcp, in terms of pure data transmitted its 9 mbit tops
and that is with a nios2/f clocked at 125 mhz, to give you an idea, i would have clocked it faster, but at 150 mhz it no longer works... and anywhere over 140 mhz requires the sd-ram on my board to run asynchronous anyway
so if you are using tcp with the standard lwip stack, expect 10 mbit tops, you can squeeze out a lot more, but that will take work
im working on the same thing right now, im doing an internship, and the assignment is to get this transfer rate as close to 100mbit as we can, but i seriously doubt being able to go over 50
<div align='right'><{post_snapback}> (index.php?act=findpost&pid=10496)
--- quote end ---
--- Quote End --- According to Revolt it's possible to get over 60 Mbit/s and that's what we are looking for now..... We need to send 8 MB in less than 1 sec over our ethernetconnection. I think it's possible with udp, but when I am trying to listen on a port, my function socket( ) won't work. Does anyone know how it works? I see enough examples on Visual C/C++ but hardly any on the NIOS IDE. Cheers, Danny
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- originally posted by dannyjacobs@Nov 1 2005, 09:20 AM according to revolt it's possible to get over 60 mbit/s and that's what we are looking for now..... we need to send 8 mb in less than 1 sec over our ethernetconnection. --- Quote End --- Revolt is using a highly modified setup, though, with checksumming in hardware and custom drivers. I don't think he's posted the actual modifications he's used, though; I don't remember seeing them. It may not be IP he's willing or able to release.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page