Mesochronous Clock-Domain FIFO for Collision-Free Data Transfer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Error-free data transfer across clock domain boundaries is challenging when dealing with mesochronous clock domains, where the phase relationship between synchronizing clocks is arbitrary, leading to potential bit errors.

Innovation Solution

Implementing a FIFO register structure with coordinated write and read operations, where write operations are synchronized with the source clock domain and read operations with the destination clock domain, using state machines and pointers to ensure that data is not read from a register while it is being written, thereby preventing collisions and ensuring error-free data transfer.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data is transferred directly between mesochronous clock domains with arbitrary phase relationships, then device complexity is reduced, but data transfer reliability deteriorates due to potential bit errors from timing violations

Engineering Contradiction:
Improvedata transfer reliabilityVSAvoiddata transfer mechanism complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

A FIFO buffer is introduced as an intermediary data storage element between the sending and receiving clock domains. The FIFO buffer is controlled by state machines that coordinate read and write operations to ensure data is transferred reliably across clock domain boundaries with arbitrary phase relationships, preventing read/write collisions while maintaining data integrity

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The data transfer mechanism is segmented into separate write and read operations controlled by independent state machines. The write operation is controlled by a write state machine synchronized with the source clock domain, while the read operation is controlled by a read state machine synchronized with the destination clock domain, allowing independent optimization of each operation

Inventive Principle:
Principle #1Segmentation

2Reliability

If a FIFO register structure with coordinated state machines is used, then data transfer reliability is improved, but device complexity increases due to additional control logic

Engineering Contradiction:
Improvedata transfer reliabilityVSAvoidcontrol logic complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The write state machine and read state machine are merged into a single coordinated control system that manages the FIFO buffer. Both state machines execute the same state sequence but are synchronized to different clock domains, allowing them to coordinate their operations and prevent collisions while reducing overall control logic complexity

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The state machines serve multiple functions: they control both write and read operations, manage FIFO buffer pointers, detect full/empty conditions, and coordinate timing across clock domains. This multi-functionality reduces the need for separate dedicated control circuits for each operation

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

Data Source

PatentUS7668272B1Method and apparatus for data transfer between mesochronous clock domains
Publication Date: 2010.02.23 NAT SEMICON CORP
  • US7668272B1 patent drawing
  • US7668272B1 patent drawing
  • US7668272B1 patent drawing

AI summary

Error-free data transfer between mesochronous clock domains can be accomplished by writing data to and reading data from a plurality of data storage elements in coordinated fashion. Write operations are controlled by execution of a state sequence synchronously with the source clock domain, and read operations are controlled by execution of the same state sequence synchronously with the destination clock domain. The states respectively correspond to the data storage elements, and the read and write executions of the state sequence do not simultaneously assume the same state.