Hello i need to implement gigabit ethernet in FPGA.. now all is almost done (MAC in FPGA , PHY), and need to implement a simple protocol that will ensure proper delivery of all data from digital camera (1 picture = 128MB). I thought about IP/UDP and own protocols with handshake and retransmition of lost packets, but maybe there exists something simpler - already used and implemented protocols - i just need to make programmer's life easier at the other end of cable:) Regards Greg
FPGA+ggiabit ethernet and protocols
Oct 01, 2004
3 Replies
Followup to: By author: "greg" In newsgroup: comp.arch.fpga
At that point you might as well use TCP... implementing TCP is not that hard if you don't care about super-high performance across very long distances.
See for example uIP or lwIP for small TCP/IP stacks that can be run on a small microcontroller which can easily be synthesized in an FPGA.
If you want to use UDP or raw Ethernet packets you probably want to do something like TFTP.
-hpa
simple
camera (1
handshake
The problem is, that i need to have transfer about 70MB/s I thought about TCP/IP and it really doesn't look so bad..The CRC calculation can be done in hardware on fly and the rest implemented using
8bit microcontroller,that i already have in design or NIOS.Thanks, i will have a look for it.
Followup to: By author: "greg" In newsgroup: comp.arch.fpga
If so, you really want to either:
a) Just to full-blown TCP, using your microcontroller or NIOS (Altera has a fairly nice low-overhead TCP/IP library for NIOS, too.)
b) Use a "windowed spew" protocol; effectively TCP without the congestion control. Just spew a bunch of sequenced-number packets out the wire, and expect to get an ACK back clearing all packets up to the packet specified. The big issue with ANY of these protocols is how much buffer memory do you devote to it: you want to have enough buffer memory that you can send at least ~2 roundtrips worth of data before you have to stall until your ACK gets back.
Using a ping/pong protocol like TFTP would be an absolute performance killer in your application.
-hpa
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required