Unified FIFO Checksum Insertion for UDP Data Block Transmission

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional circuits implementing the UDP standard require separate FIFOs for checksum calculation and insertion, leading to inefficient use of logic resources due to the need for additional RAM and state machines, especially in programmable logic devices where efficient logic use is crucial.

Innovation Solution

A circuit and method utilizing a combined FIFO/RAM memory array with a direct memory access circuit and an error detection circuit, allowing the checksum to be calculated and inserted at any location within the data stream without the need for separate FIFOs, by using a partitioned memory with a write address controller and selection circuit to replace dummy values with error detection values.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If separate FIFOs are used for checksum calculation and data transmission, then the checksum can be inserted at the beginning of the packet, but the circuitry required increases due to additional RAM and state machines

Engineering Contradiction:
Improvechecksum insertion capabilityVSAvoidcircuitry required
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent combines the data FIFO and checksum FIFO into a single unified FIFO structure. The memory array serves both purposes by storing data at sequential addresses while allowing direct writing of the checksum to a predetermined address (address 0). This eliminates the need for separate FIFOs and reduces the overall circuitry required.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The unified FIFO structure serves multiple functions: it stores data from the data source, stores the checksum from the error detection circuit, and enables retrieval of both in the correct sequence. The same memory array and control logic handle both data and checksum operations, making the system more efficient.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Reliability

If a separate FIFO is used to hold the checksum, then the checksum can be transmitted at the correct time, but the logic resources are used inefficiently requiring additional RAM and state machines

Engineering Contradiction:
Improvechecksum transmission timingVSAvoidlogic resources
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges the checksum storage function into the main data FIFO structure. By using a unified memory array with address 0 reserved for the checksum, the system achieves reliable checksum transmission timing without requiring separate RAM and state machines, thus reducing logic resource usage.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The checksum is calculated and written to address 0 of the unified FIFO in advance, before the data transmission begins. This preliminary action ensures the checksum is ready at the correct time for transmission at the beginning of the packet, maintaining reliable timing without additional complex control logic.

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If the checksum is calculated before the packet is transmitted, then the checksum can be placed in the header, but the data in the checksum location will have already been sent

Engineering Contradiction:
Improvechecksum placementVSAvoiddata in checksum location
Core Design Contradiction:
Ease of operationVSLoss of information

Solution Approach 1:

The system performs preliminary action by writing a dummy value to address 0 (the checksum location) before data transmission begins. This dummy value temporarily occupies the location but will be replaced by the actual checksum once calculated, preventing data loss while enabling early checksum placement in the header.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Instead of the conventional approach where data is written sequentially starting from address 0, the patent inverts the approach by reserving address 0 for the checksum and writing data starting from address 1. This allows the checksum to be placed in the header position while data is transmitted in the correct sequence without overwriting the checksum.

Inventive Principle:
Principle #13The other way round (Inversion)

Data Source

PatentUS7539923B1Circuit and method of transmitting a block of data
Publication Date: 2009.05.26 XILINX INC
  • US7539923B1 patent drawing
  • US7539923B1 patent drawing
  • US7539923B1 patent drawing

AI summary

A circuit for transmitting a block of data is disclosed. The circuit comprises a memory array having a plurality of memory locations coupled to receive data; a first data source coupled to the memory array, wherein data from the first data source is stored at sequential addressable memory locations of the plurality of memory locations on a first in, first out basis; a second data source coupled to the memory array, the second data source providing data to be stored in a predetermined memory location of the sequential addressable memory locations storing data from the second data source; and a selection circuit coupled to the first data source and the second data source for selecting data to be stored in the plurality of memory locations.