Clock Domain Crossing Circuit Using Asynchronous FIFO and Gray Code

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing digital circuit designs face challenges in efficiently transferring signals across different clock and power domains without requiring coordinated power-up or power-down sequences, clock synchronization, or additional system assumptions, especially when one domain is inactive or resetting independently.

Innovation Solution

The implementation of a domain-crossing circuit with transmit-side and receive-side circuitry using asynchronous First-In First-Out (FIFO) buffers and non-volatile elements like Flip-Flops coupled with latch isolators to retain and transfer read and write pointer values across domains, allowing independent management of power and clock states without clock signal transfer.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional clock-domain crossing techniques are used, then data transfer between clock domains is enabled, but coordinated reset sequences and clock synchronization are required, increasing system complexity

Engineering Contradiction:
Improvedata transfer reliabilityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The circuit is divided into independent transmit-side and receive-side domains with no shared clock signals. Each domain operates autonomously with its own clock, eliminating the need for clock synchronization and coordinated reset sequences between domains.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

An asynchronous FIFO buffer is introduced as an intermediary data structure between the transmit and receive domains. The FIFO uses gray-coded pointers (read pointer and write pointer) that can be safely transferred between clock domains without synchronization, enabling reliable data transfer while maintaining domain independence.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Use of energy by moving object

If power domains are partitioned for independent power management, then power efficiency is improved, but data transfer between power domains becomes challenging when one domain is inactive

Engineering Contradiction:
Improvepower efficiencyVSAvoiddata transfer reliability
Core Design Contradiction:
Use of energy by moving objectVSReliability

Solution Approach 1:

The transmit side prepares data and increments the write pointer in advance, storing data in the FIFO buffer before the receive side is ready. This allows the transmit domain to operate independently without waiting for the receive domain's readiness, enabling power-efficient independent domain operation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The receive pointer value is transferred from the receive domain to the transmit domain, providing feedback about the FIFO buffer's readout position. This feedback mechanism enables the transmit side to verify buffer status and continue operation independently, even when the receive domain is powered down or resetting.

Inventive Principle:
Principle #23Feedback

3Stability of the object's composition

If clock signals are transferred between domains, then synchronized operation is achieved, but clock synchronization requirements increase system complexity and reduce flexibility

Engineering Contradiction:
Improveoperational stabilityVSAvoidclock synchronization complexity
Core Design Contradiction:
Stability of the object's compositionVSDevice complexity

Solution Approach 1:

Clock signal transfer between domains is completely removed from the system. Each domain maintains its own independent clock, and data transfer is achieved through the asynchronous FIFO mechanism using gray-coded pointers that do not require clock synchronization.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The pointer values are encoded in gray code instead of binary, allowing safe transfer between clock domains. The gray-coded representation ensures that only one bit changes between consecutive values, preventing metastability and enabling reliable asynchronous operation without clock synchronization.

Inventive Principle:
Principle #35Parameter changes

4Adaptability or versatility

If one domain resets independently without coordination, then domain independence is improved, but data integrity during reset transitions becomes problematic

Engineering Contradiction:
Improvedomain independenceVSAvoiddata integrity
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The FIFO buffer provides a cushioning mechanism that can absorb reset transitions in one domain without affecting the other. Data is buffered in the FIFO, and the gray-coded pointers ensure that reset transitions do not cause data corruption or loss, allowing independent reset operation while maintaining data integrity.

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

Data Source

PatentUS10048893B2Clock/power-domain crossing circuit with asynchronous FIFO and independent transmitter and receiver sides
Publication Date: 2018.08.14 APPLE INC
  • US10048893B2 patent drawing
  • US10048893B2 patent drawing
  • US10048893B2 patent drawing

AI summary

An electronic circuit includes transmit-side circuitry and receive-side circuitry. The transmit-side circuitry belongs to a first domain of the circuit and is configured to transmit a data signal from the first domain to a second domain of the circuit. The receive-side circuitry belongs to the second domain and is configured to receive the transmitted data signal. The receive-side circuitry is configured to transfer to the transmit-side circuitry a read pointer value indicative of a readout position in a buffer memory that buffers the data signal, and to retain the read pointer value in a non-volatile element that is accessible to the transmit-side circuitry.