Asynchronous FIFO Buffering via Idle Block Removal

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional asynchronous FIFOs in integrated circuits face complexity in synchronizing and decoding independently clocked ports, requiring additional circuitry and engineering effort to manage variations in clock signals, and often result in inefficiencies in data transfer between different clock domains.

Innovation Solution

A circuit and method that removes idle data blocks from a first clock domain stream, inserts idle blocks in the second clock domain stream to maintain a continuous data flow, and employs near-empty signals to prevent memory depletion, allowing asynchronous data transfer without the need for additional decoding.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If conventional asynchronous FIFO implementation is used with two independently clocked ports, then data transfer between different clock domains is enabled, but device complexity increases significantly due to additional circuitry for synchronizing and decoding the two ports

Engineering Contradiction:
Improveasynchronous data transfer capabilityVSAvoidcircuit complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent extracts and removes idle data blocks from the data stream before writing to the FIFO memory. By eliminating idle blocks at the source (write side), the system reduces the burden on the read side and eliminates the need for complex idle block insertion circuitry, thereby reducing overall device complexity while maintaining asynchronous transfer capability

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of inserting idle blocks at the read side to maintain continuous output (conventional approach), the patent inverts the approach by removing idle blocks at the write side before storage. This reversal of the idle block handling approach simplifies the read side circuitry and reduces the need for additional synchronization mechanisms

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

2Productivity

If idle data blocks are removed or inserted based on FIFO fullness or emptiness, then data flow continuity is maintained, but device complexity increases due to variable increment address counters and additional control circuitry

Engineering Contradiction:
Improvedata transfer efficiencyVSAvoidcontrol circuit complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent performs preliminary action by removing idle data blocks at the write side before data is stored in the FIFO. This advance handling of idle blocks eliminates the need for complex variable increment address counters and idle block insertion circuitry at the read side, reducing control circuit complexity while maintaining efficient data transfer

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The write side circuit autonomously identifies and removes idle data blocks without requiring feedback or coordination from the read side. This self-service approach eliminates the need for complex inter-side communication and control circuitry, reducing overall device complexity while maintaining productivity

Inventive Principle:
Principle #25Self-service

3Reliability

If the read side circuit knows the status of the write side circuit to prevent memory from becoming empty, then data integrity is maintained, but device complexity increases due to additional status monitoring and coordination requirements

Engineering Contradiction:
Improvedata integrityVSAvoidstatus monitoring complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

By extracting and removing idle data blocks at the write side before storage, the patent ensures that only valid data is written to the FIFO. This eliminates the need for the read side to monitor write side status to prevent empty conditions, thereby maintaining data integrity while reducing status monitoring complexity

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS7366803B1Integrated circuit for buffering data by removing idle blocks to create a modified data stream when memory device is not near empty
Publication Date: 2008.04.29 XILINX INC
  • US7366803B1 patent drawing
  • US7366803B1 patent drawing
  • US7366803B1 patent drawing

AI summary

A circuit for buffering data is disclosed. The circuit comprises a first circuit which is coupled to receive a stream of data blocks using a first clock signal. The first circuit removes data blocks, such as idle data blocks or a sequence ordered set of a pair of consecutive sequence ordered sets, from the stream of data blocks to create a first modified data stream which is coupled to a memory device. Finally, a second circuit coupled to the memory device generates a second modified data stream using a second clock signal. The second modified data stream preferably comprises the data blocks of the first modified data stream and idle data blocks inserted among the data blocks of the first modified data stream. Methods of buffering data received in a first clock domain and output in a second clock domain are also disclosed.