Three-Port FPGA RAM Blocks for Register File Read-Write Access

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 reading and writing operations.

Innovation Solution

A three-port random access memory circuit block is introduced, comprising two read-only ports and a synchronous write-only port, allowing for flexible timing options and minimizing circuit area and terminal count, enabling efficient use in FPGA arrays for register file applications.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional FPGA memory blocks are used for register file applications, then the device can perform memory operations, but the area efficiency is poor and simultaneous read-write operations cannot be performed

Engineering Contradiction:
Improveregister file operation efficiencyVSAvoidFPGA resource usage
Core Design Contradiction:
ProductivityVSArea of stationary object

Solution Approach 1:

The memory block is segmented into three independent ports: two read-only ports (A and B) and one write port (C). This segmentation allows simultaneous read operations from both ports A and B while a write operation occurs through port C, enabling efficient register file operations without requiring separate memory blocks for each function.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The three-port memory block provides multi-functionality by supporting both traditional memory operations and register file operations within a single device. The ability to perform simultaneous reads from two ports and writes from a third port makes it universally applicable to various processor architectures and memory configurations.

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

2Adaptability or versatility

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

Engineering Contradiction:
Improvetiming flexibilityVSAvoidmemory block structure
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The memory block supports dynamic timing configurations where ports A and B can operate with different timing requirements. Each read port can be independently configured for synchronous or asynchronous operation, allowing the device to adapt to various timing scenarios while maintaining a unified memory structure.

Inventive Principle:
Principle #15Dynamics

3Ease of operation

If conventional two-port memory blocks are used, then the structure is simpler, but the ability to perform simultaneous read and write operations is limited

Engineering Contradiction:
Improvesimultaneous read-write capabilityVSAvoidport configuration
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The memory block is segmented into three independent ports: two read-only ports (A and B) and one write port (C). This segmentation allows simultaneous read operations from both ports A and B while a write operation occurs through port C, enabling efficient register file operations without requiring separate memory blocks for each function.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10020811B2FPGA RAM blocks optimized for use as register files
Publication Date: 2018.07.10 MICROSEMI SOC CORP
  • US10020811B2 patent drawing
  • US10020811B2 patent drawing
  • US10020811B2 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.