Browse Prior Art Database

Circuit to Implement 16-Bit Checksum Using an 8-Bit Data Path

IP.com Disclosure Number: IPCOM000006603D
Publication Date: 2002-Jan-16
Document File: 2 page(s) / 24K

Publishing Venue

The IP.com Prior Art Database

Abstract

Disclosed is a circuit that implements the User Datagram Protocol standard (UDP) 16-bit checksum using an 8-bit path and 8-bit adder. This reduces the amount of logic gates necessary to implement the checksum. Because it is implemented directly in the hardware, the circuit takes the processing burden off of software.

This text was extracted from a Microsoft Word document.
This is the abbreviated version, containing approximately 50% of the total text.

Circuit to Implement 16-Bit Checksum Using an 8-Bit Data Path

Disclosed is a circuit that implements the User Datagram Protocol standard (UDP) 16-bit checksum using an 8-bit path and 8-bit adder.  This reduces the amount of logic gates necessary to implement the checksum. Because it is implemented directly in the hardware, the circuit takes the processing burden off of software.

                    The UDP checksum is a 16-bit hardware checksum required in the UDP protocol.  A checksum is required across a pseudo-header of the internet protocol (IP) data, all of the UDP header, and all of the UDP data.  The checksum is defined as a 1's complement 16-bit checksum.

                    The disclosed circuit implements the 16-bit UDP checksum with 8-bit data paths, as shown in FIG. 1.  All wide arrows indicate an 8-bit bus.  The DATAIN path indicates an 8-bit data path useful for integration of the 16-bit UDP checksum into an 8-bit data path architecture.  Note that the adder only requires an 8-bit implementation (plus carry out and carry in).  The checksum is stored in 16 bits of registered data and an extra flip-flop is required to hold the last carry state.

                    The circuit operates on the premise of several assumptions:

•           Each subsequent addition must switch to the other byte in the checksum.  This means that the sequence must alternate between high byte and low byte.  The correct checksum cannot be generated by adding several high bytes sequentially or several low bytes sequentially.  An alternation of high byte and low byte is required to generate the proper checksum.

•   Upon completion of adding data from the 8-bi...