Synchronous FIFO with Segmented Head and Tail Registers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Synchronous FIFO memories face limitations in operating speed due to large setup time requirements and signal propagation delays, which restrict the time available for external circuitry to supply and capture data, leading to undesirable low circuit operating speeds.

Innovation Solution

A novel synchronous FIFO design that includes a push signal input lead, pop signal input lead, full signal output lead, valid signal output lead, input data leads, output data leads, a tail register, a head register, and a control circuit that controls the head and internal registers, allowing direct writing into the head or tail register, simultaneous pushing and popping, and efficient data propagation without the need for output multiplexing or large fanout circuitry.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If conventional synchronous FIFO design is used with multiple internal registers and output multiplexing, then data storage capacity is improved, but signal propagation delays and setup time requirements increase

Engineering Contradiction:
Improvedata storage capacityVSAvoidsignal propagation delay
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The FIFO is segmented into distinct functional regions: a head register for output, a tail register for input, and multiple internal registers for storage. This segmentation allows data to flow through dedicated paths, reducing propagation delay while maintaining storage capacity. The head register directly connects to output data leads, and the tail register directly connects to input data leads, eliminating multiplexing delays.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The head register and tail register act as intermediary elements between the external circuitry and the internal storage registers. The head register mediates the output path by directly driving output data leads without multiplexing, while the tail register mediates the input path by directly receiving input data. This intermediary structure reduces setup time requirements for external circuitry.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If conventional synchronous FIFO design with large fanout circuitry is used, then reliability is improved, but device complexity increases

Engineering Contradiction:
Improvecircuit reliabilityVSAvoidfanout circuitry complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The complex output multiplexing circuitry and large fanout structures are extracted and replaced with a simplified architecture. The head register directly drives the output data leads without requiring multiplexers, and the tail register directly receives input data without complex fanout. This extraction of unnecessary complexity maintains reliability while significantly reducing device complexity.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of using a single central register that multiplexes data to multiple outputs (conventional approach), the patent inverts the architecture by having multiple internal registers feed into dedicated head and tail registers that directly drive inputs and outputs. This inverted structure eliminates the need for complex multiplexing and fanout circuitry.

Inventive Principle:
Principle #13The other way round (Inversion)

3Reliability

If push setup time requirements are large, then data integrity is improved, but circuit operating speed decreases

Engineering Contradiction:
Improvedata integrityVSAvoidcircuit operating speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The tail register is prepared in advance to directly receive input data from the input data leads on the clock edge. By having the tail register positioned and configured beforehand to directly accept data, the setup time requirement for external circuitry is minimized while ensuring data integrity through the registered interface.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The tail register creates a copied interface to the input data leads, providing a registered copy of the input data that can be captured on the clock edge. This copying mechanism ensures data integrity through proper synchronization while reducing setup time requirements for the external circuitry that drives the input data leads.

Inventive Principle:
Principle #26Copying

4Reliability

If pop setup time requirements are large, then data capture reliability is improved, but circuit operating speed decreases

Engineering Contradiction:
Improvedata capture reliabilityVSAvoidcircuit operating speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The head register is prepared in advance to directly drive the output data leads on the clock edge. By having the head register positioned and configured beforehand to directly output data, the setup time requirement for external circuitry to capture the data is minimized while ensuring reliable data capture through the registered interface.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The head register creates a copied interface to the internal storage registers, providing a registered copy of the oldest data value that can be captured on the clock edge. This copying mechanism ensures data capture reliability through proper synchronization while reducing setup time requirements for the external circuitry that captures the output data.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9940097B1Registered FIFO
Publication Date: 2018.04.10 NETRONOME SYSTEMS INC
  • US9940097B1 patent drawing
  • US9940097B1 patent drawing
  • US9940097B1 patent drawing

AI summary

A registered synchronous FIFO has a tail register, internal registers, and a head register. The FIFO cannot be pushed if it is full and cannot be popped if it is empty, but otherwise can be pushed and/or popped. Within the FIFO, the internal signal fanout of incoming data circuitry and push control circuitry and is minimized and remains essentially constant regardless of the number of registers of the FIFO. The output delay of the output data also is essentially constant regardless of the number of registers of the FIFO. An incoming data value can only be written into the head or tail. If a data value is in the tail and one of the internal registers is empty, and if no push or pop is to be performed in a clock cycle, then nevertheless the data value in the tail is moved into the empty internal register in the cycle.