Forum Discussion
You can also use UDP with no checksum at all. For local networks (usually how UDP will be used) there are not packet errors to worry about but more total packet loss (dropped packets) to deal with. UDP without implementing it in hardware can be very efficient IF you don't use the Altera TSE or SGDMA libraries - they are horribly inefficient. With an improved TSE driver (plus adopted for lwIP), efficient UDP packet generators and our own SGDMA driver we can do over 940MbS UDP without hardware acceleration (that's with UDP checksums off). Packet loss on the PC was incredible - we only wanted to prove what the Cyclone III was capable of putting on the wire. None of this was easy - I have put over 3 months into optimizing Ethernet and UDP on the Cyclone III.
Like Jens, we use TCP for control and UDP for large data movement (from the Cyclone III to PC). lwIP is smaller, faster, and IMO better written. It's open source (free) and has decent user-community support. But Interniche with your own UDP protocol would work fine too as long as the TSE/SGDMA driver inefficiencies are resolved. It's entirely possible in NIOS II 9.x that they have been - we're using 8.1. Bill