Three-Port FPGA RAM Blocks With Flexible Timing for Register Files

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional FPGA memory blocks are poorly suited for use as register files due to their large size, synchronous operation, and lack of support for three ports, making it inefficient to construct register files for soft processors, which requires simultaneous read and write operations.

Innovation Solution

A three-port random access memory circuit block is designed with two read-only ports and a synchronous write-only port to minimize circuitry and terminal count, offering flexible timing options and efficient interfacing with FPGA routing interconnects, allowing for optimized register file implementation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If conventional FPGA memory blocks are used, then memory capacity is available, but the memory block size is large and not optimized for register file applications

Engineering Contradiction:
Improvememory capacityVSAvoidmemory block size
Core Design Contradiction:
Quantity of substanceVSArea of stationary object

Solution Approach 1:

The memory block is segmented into three independent ports with distinct functions: two read-only ports and one write-only port. This segmentation allows each port to be optimized for its specific function, reducing overall circuit complexity while maintaining memory capacity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The memory block is designed to serve multiple functions: it can operate as a traditional memory block, as a register file with simultaneous read/write operations, or as a multi-port memory structure. This multi-functionality allows the same hardware structure to adapt to different application requirements without wasting resources.

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

2Ease of operation

If conventional synchronous memory blocks are used, then timing control is simplified, but flexibility in timing options is limited

Engineering Contradiction:
Improvetiming controlVSAvoidtiming flexibility
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The memory block incorporates dynamic timing control where the write port can operate synchronously with configurable clock phases relative to the read ports. This dynamic configuration allows the system to adapt timing relationships based on specific application requirements while maintaining ease of operation through programmable control.

Inventive Principle:
Principle #15Dynamics

3Device complexity

If conventional two-port memory blocks are used, then circuit complexity is reduced, but support for simultaneous read and write operations is insufficient

Engineering Contradiction:
Improvecircuit complexityVSAvoidsimultaneous read/write capability
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The memory block is segmented into three independent ports with distinct functions: two read-only ports and one write-only port. This segmentation allows each port to be optimized for its specific function, reducing overall circuit complexity while maintaining memory capacity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

By making the read ports read-only and the write port write-only, the design creates an 'inert' environment where read and write operations cannot conflict. This eliminates the need for complex arbitration logic and timing synchronization mechanisms, thereby reducing circuit complexity while enabling simultaneous operations.

Inventive Principle:
Principle #39Inert atmosphere (Inert environment)

4Adaptability or versatility

If memory blocks with full read-write capability on all ports are used, then operational flexibility is maximized, but terminal count and circuitry area increase

Engineering Contradiction:
Improveoperational flexibilityVSAvoidterminal count and circuitry area
Core Design Contradiction:
Adaptability or versatilityVSWeight of stationary object

Solution Approach 1:

Each port is assigned a specific quality characteristic: read ports are optimized for read operations with appropriate control signals, while the write port is optimized for write operations. This local optimization allows each port to have minimal necessary terminals and circuitry for its specific function, reducing overall terminal count and area while maintaining operational flexibility.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS8446170B2FPGA RAM blocks optimized for use as register files
Publication Date: 2013.05.21 ACTEL CORP
  • US8446170B2 patent drawing
  • US8446170B2 patent drawing
  • US8446170B2 patent drawing

AI summary

A random access memory circuit adapted for use in a field programmable gate array integrated circuit device is disclosed. The FPGA has a programmable array with logic modules and routing interconnects programmably coupleable to the logic modules and the RAM circuit. The RAM circuit has three ports: a first readable port, a second readable port, and a writeable port. The read ports may be programmably synchronous or asynchronous and have a programmably bypassable output pipeline register. The RAM circuit is especially well adapted for implementing register files. A novel interconnect method is also described.