Forum Discussion
Altera_Forum
Honored Contributor
16 years agoHi,
--- Quote Start --- That is, of course, if the TSE does not already implement it in hardware. --- Quote End --- Altera's TSE has hardware CRC generators. Please check the datasheet. http://www.altera.co.jp/support/ip/interface-protocols/ips-inp-tse.html Almost all MAC have hardware CRC generators, because they need real-time CRC generation. Ethernet has CSMA/CD functions, so when the collision occurs, the MAC must add 'JAM' data which does'nt match the CRC. In ancient period, this task was too hard for those CPUs, so MAC has its CRC generator by historical reasons. About IP or UDP, they also have their checksum, but those are 16bit one's complement sum, not CRC. This is done by software, and in uClinux, the code is '/home/***/nios2-linux/linux-2.6/include/asm-nios2/checksum.h'. For IP packets, these checksum are done only for their headers. For UDP packets, the checksum is applied for whole data include their headers, and this eats CPU power, but it is optional. For the question of ' Ethernet performance using TSE in uClinux', please see the directory of '/home/***/nios2-linux/linux-2.6/net/ipv4', and feel how many things Nios CPU must do to send only 'ONE' UDP packet. Kazu