Asynchronous FIFO Buffer Using Johnson Code Write Pointer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional asynchronous data transfer systems in integrated circuits are not suitable for low latency and high bandwidth applications due to their inability to handle variable-sized data transfers across asynchronous clock domains, leading to increased latency and complexity when using binary gray code encoders.

Innovation Solution

The implementation of an asynchronous data transfer system that uses a write address generator, write pointer encoder, write pointer synchronizer, write pointer validator, read address generator, and an asynchronous FIFO buffer, which employs Johnson codes to manage write and read pointers across asynchronous clock domains, allowing for efficient transfer of variable-sized data without the need for additional auxiliary FIFO buffers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If binary gray code encoder is used for pointer synchronization, then pointer transfer across clock domains is achieved, but latency increases and bandwidth decreases for variable-sized data transfers

Engineering Contradiction:
Improvepointer transfer reliabilityVSAvoidtransfer latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent changes the encoding parameter from binary gray code to Johnson code. This parameter change allows the system to maintain pointer transfer reliability across clock domains while enabling more efficient handling of variable-sized data transfers, thereby reducing latency and increasing bandwidth without sacrificing synchronization accuracy.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent implements dynamic pointer validation and overflow detection mechanisms that adapt to variable-sized data transfers. The system dynamically adjusts its operation based on the actual data size being transferred, allowing it to optimize performance for each transfer scenario while maintaining reliability through validation checks.

Inventive Principle:
Principle #15Dynamics

2Reliability

If binary gray code encoder is used, then pointer synchronization is maintained, but system complexity increases for variable-sized data handling

Engineering Contradiction:
Improvesynchronization accuracyVSAvoidencoder complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent replaces the binary gray code encoding parameter with Johnson code encoding. This change simplifies the encoder design while maintaining the essential property of single-bit transitions between consecutive values, thereby reducing device complexity without compromising synchronization accuracy across asynchronous clock domains.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent extracts and eliminates the need for complex auxiliary FIFO buffers that were required in binary gray code systems. By using Johnson code with its inherent single-bit transition property, the system removes unnecessary buffering complexity while maintaining reliable pointer synchronization.

Inventive Principle:
Principle #2Taking out (Extraction)

3Adaptability or versatility

If auxiliary FIFO buffers are added to handle variable-sized data, then data transfer flexibility improves, but area requirements and complexity increase

Engineering Contradiction:
Improvedata transfer flexibilityVSAvoidFIFO buffer area
Core Design Contradiction:
Adaptability or versatilityVSArea of stationary object

Solution Approach 1:

The patent removes the requirement for auxiliary FIFO buffers by leveraging the properties of Johnson code encoding. The single-bit transition characteristic of Johnson code allows the system to handle variable-sized data transfers directly without needing additional buffering infrastructure, thereby reducing area requirements while maintaining transfer flexibility.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The Johnson code encoder serves multiple functions simultaneously: it provides pointer synchronization, enables variable-sized data transfer handling, and eliminates the need for auxiliary buffers. This multi-functionality achieves data transfer flexibility without the area overhead of additional buffering components.

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

Data Source

PatentUS9710415B2Asynchronous FIFO buffer with Johnson code write pointer
Publication Date: 2017.07.18 NXP USA INC
  • US9710415B2 patent drawing
  • US9710415B2 patent drawing
  • US9710415B2 patent drawing

AI summary

An asynchronous data transfer system includes a bus interface unit (BIU), a FIFO write logic module, a write pointer synchronizer, a write pointer validator, a FIFO read logic module, and an asynchronous FIFO buffer. The FIFO buffer receives a variable size data from the BIU and stores the variable size data at a write address. The FIFO write logic module generates a write pointer by encoding the write address using a Johnson code. The FIFO read logic module receives a synchronized write pointer at the asynchronous clock domain and generates a read address signal when the synchronized write pointer is a valid Johnson code format. The FIFO buffer transfers the variable size data to a processor based on the read address signal.