Self-stuffing FIFO Memory Eliminates Synchronizers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional asynchronous FIFO designs require synchronization circuits to manage clock domain differences, leading to increased latency and complexity due to the need for synchronizing multi-bit pointers and ensuring reliable full/empty status signals, which complicates data transfer between differently clocked components.

Innovation Solution

The proposed FIFO memory device eliminates the need for synchronization circuits by introducing an extra bit per register to indicate the insertion of a 'bubble,' ensuring the FIFO is never completely empty, allowing data transfer without synchronization between read and write devices, even when clock speeds differ.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If synchronization circuits are used to manage clock domain differences, then reliability of data transfer is improved, but latency increases and device complexity increases

Engineering Contradiction:
Improvereliability of data transferVSAvoidlatency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent extracts and eliminates the synchronization circuitry from the FIFO design by using Gray code pointers that are inherently self-synchronizing across clock domains. The Gray code encoding scheme allows the write and read pointers to be compared directly without requiring external synchronizers, thereby removing the latency and complexity introduced by synchronization circuits while maintaining reliable data transfer between different clock domains.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent changes the parameter representation from binary encoding to Gray code encoding for the FIFO pointers. This parameter change enables the pointers to be compared directly across clock domains without synchronization, as Gray code transitions only change one bit at a time, eliminating metastability issues and removing the need for synchronization circuits, thus reducing latency while maintaining reliability.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If synchronization circuits are used to manage clock domain differences, then reliability of data transfer is improved, but device complexity increases

Engineering Contradiction:
Improvereliability of data transferVSAvoidcomplexity of FIFO design
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts and eliminates the synchronization circuitry from the FIFO design by using Gray code pointers that are inherently self-synchronizing across clock domains. The Gray code encoding scheme allows the write and read pointers to be compared directly without requiring external synchronizers, thereby removing the latency and complexity introduced by synchronization circuits while maintaining reliable data transfer between different clock domains.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent changes the parameter representation from binary encoding to Gray code encoding for the FIFO pointers. This parameter change enables the pointers to be compared directly across clock domains without synchronization, as Gray code transitions only change one bit at a time, eliminating metastability issues and removing the need for synchronization circuits, thus reducing latency while maintaining reliability.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If multi-bit synchronizers are used to synchronize pointers, then reliability of status signals is improved, but latency increases due to multiple flip-flop stages

Engineering Contradiction:
Improvereliability of status signalsVSAvoidsynchronization latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent changes the parameter representation from binary encoding to Gray code encoding for the FIFO pointers. This parameter change enables the pointers to be compared directly across clock domains without synchronization, as Gray code transitions only change one bit at a time, eliminating metastability issues and removing the need for synchronization circuits, thus reducing latency while maintaining reliability.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent extracts and eliminates the synchronization circuitry from the FIFO design by using Gray code pointers that are inherently self-synchronizing across clock domains. The Gray code encoding scheme allows the write and read pointers to be compared directly without requiring external synchronizers, thereby removing the latency and complexity introduced by synchronization circuits while maintaining reliable data transfer between different clock domains.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentEP3067894B1Self-stuffing FIFO requiring no synchronizers
Publication Date: 2018.08.29 ALTERA CORP
  • EP3067894B1 patent drawingFigure 1
  • EP3067894B1 patent drawingFigure 2
  • EP3067894B1 patent drawingFigure 3A~3B

AI summary

An asynchronous first in first out memory device eliminating the need for synchronizers is disclosed. The device includes pipeline of data registers. The data registers include a first register to accept data writes of data and a last register data reads. Each register has an enable input to indicate a full condition allowing a read and an empty condition allowing a write. A bubble inserter circuit inserts a bubble in the first register to prevent a completely empty condition for all registers. The device includes further a plurality of bubble bit registers, each bubble bit register indicating whether a bubble is stored in the corresponding data register. Controllers are associated with each register to allow the bubble or written data to be passed from the first register to the last register. A near empty detect circuit is coupled to the registers to determine a nearly empty condition of the pipeline. An arbiter determines whether a data write proceeds or a bubble insertion proceeds for the first register when the plurality of registers is near empty.