Asynchronous FIFO Circuit Using Segmented Pointer Comparison

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional asynchronous FIFO circuits face reduced throughput and operating frequency due to the increased size of comparators with larger data memory depth, leading to metastability issues when the read and write clocks are close in frequency, which affects data transfer rates and synchronization.

Innovation Solution

The proposed asynchronous FIFO circuit eliminates the need for comparators by using a control circuit with a set-clear register bank, multiplexers, and flip-flops to generate memory full and empty signals, allowing asynchronous operation and minimizing metastability, thus maintaining high throughput and frequency stability even with increased data memory size.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If the data memory depth is increased to provide larger buffering capacity, then the FIFO circuit can handle greater data rate differences between transmitter and receiver, but the comparator size increases proportionally causing reduced operating frequency and throughput

Engineering Contradiction:
Improvedata memory depthVSAvoidthroughput
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent segments the pointer comparison function into multiple independent stages. Instead of using a single large comparator to compare all pointer bits simultaneously, the comparison is divided into multiple smaller comparators that operate in sequence or parallel on different portions of the pointers. This segmentation reduces the critical path delay and allows the circuit to maintain high operating frequencies even with deep memory buffers.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a time dimension to the comparison process by using multi-cycle comparison operations or pipelined comparison stages. Rather than completing the entire pointer comparison in a single clock cycle, the comparison is spread across multiple cycles or stages, effectively trading time for speed in each individual comparison operation. This allows deep memory buffers to be managed without proportionally increasing comparator complexity.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Quantity of substance

If the data memory depth is increased to provide larger buffering capacity, then the FIFO circuit can handle greater data rate differences, but the comparator size increases causing reduced operating frequency

Engineering Contradiction:
Improvedata memory depthVSAvoidoperating frequency
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

The patent segments the pointer comparison function into multiple independent stages. Instead of using a single large comparator to compare all pointer bits simultaneously, the comparison is divided into multiple smaller comparators that operate in sequence or parallel on different portions of the pointers. This segmentation reduces the critical path delay and allows the circuit to maintain high operating frequencies even with deep memory buffers.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary processing of the pointer values before comparison, such as pre-calculation of pointer differences or pre-synchronization of pointers from different clock domains. This preliminary action prepares the data in advance so that the actual comparison operation can be completed quickly, maintaining high operating frequencies regardless of memory depth.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If conventional comparators are used to compare read and write pointers, then the FIFO circuit can track memory occupancy, but the circuit is susceptible to metastability conditions when read and write clocks are close in frequency

Engineering Contradiction:
Improvepointer synchronizationVSAvoidmetastability
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent introduces intermediary synchronization stages and metastability resolution circuits between the read and write pointer domains. These intermediaries include multi-stage synchronizers, Gray code converters, and metastability detection circuits that safely bridge the asynchronous clock domains. The intermediary structures provide controlled paths for pointer synchronization that prevent direct metastability propagation to the comparison logic.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent implements preliminary synchronization and validation stages that detect and resolve potential metastability conditions before they can affect the main comparison operation. This cushioning approach uses advance detection of clock domain crossing issues and provides buffered, validated pointer values to the comparison logic, preventing metastability from propagating through the system.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

Data Source

PatentUS9275704B2Method and apparatus for asynchronous FIFO circuit
Publication Date: 2016.03.01 TEXAS INSTRUMENTS INC
  • US9275704B2 patent drawing
  • US9275704B2 patent drawing
  • US9275704B2 patent drawing

AI summary

The disclosure provides an asynchronous FIFO circuit that includes a data memory which is coupled to a write data path and a read data path. The data memory receives a write clock and a read clock. A FIFO write pointer counter receives a write enable signal and the write clock. The FIFO write pointer counter provides a FIFO write pointer signal to the data memory. A FIFO read pointer counter receives a read enable signal and the read clock. The FIFO read pointer counter provides a FIFO read pointer signal to the data memory. A control circuit receives the write enable signal, the read enable signal, the FIFO write pointer signal, the FIFO read pointer signal, the write clock and the read clock. The control circuit generates a memory full signal when the data memory is full and a memory empty signal when the data memory is empty.