Allocating Multiple RAMs to FPGA Block RAM

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In FPGA-based development, the cost of circuit design is significantly influenced by the price of FPGA devices, particularly due to the limited number of block RAMs, which often requires the use of higher-grade devices or external RAMs, leading to increased costs and design complexities.

Innovation Solution

A design apparatus that allocates multiple RAMs to a single FPGA block RAM in either the word or bit direction, generating control circuits in hardware description language to allow each RAM to be accessed as a single unit, optimizing RAM usage and reducing the need for additional resources.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If a higher-grade FPGA device with more block RAMs is used, then the RAM capacity is improved, but the device cost increases

Engineering Contradiction:
Improveblock RAM capacityVSAvoiddevice cost
Core Design Contradiction:
Quantity of substanceVSEase of manufacture

Solution Approach 1:

The patent merges multiple small-capacity block RAMs into a single large-capacity logical RAM by implementing a RAM pool management mechanism. The CAD tool automatically partitions and maps multiple physical block RAMs to form a unified address space, allowing the design to achieve large RAM capacity without using a higher-grade FPGA device.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent creates a universal RAM pool that can be dynamically allocated to multiple design entities. The block RAMs are transformed into a multi-functional resource pool that serves various memory requirements within the same FPGA device, maximizing resource utilization efficiency.

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

2Quantity of substance

If external RAMs are added to increase RAM capacity, then the RAM capacity is improved, but the device complexity and development cost increase

Engineering Contradiction:
ImproveRAM capacityVSAvoidsystem complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent combines multiple internal block RAMs into a unified RAM pool, eliminating the need for external RAM connections. This merging approach maintains all memory resources within the FPGA device boundaries, avoiding additional PCB complexity and external interface requirements.

Inventive Principle:
Principle #5Merging (Combining)

3Productivity

If multiple RAMs are mapped to a single block RAM, then the RAM utilization efficiency is improved, but the control circuit complexity increases

Engineering Contradiction:
ImproveRAM utilization efficiencyVSAvoidcontrol circuit complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements self-service mechanisms where the CAD tool automatically generates the control circuit logic for RAM pool management. The tool performs automatic address mapping, port selection, and control signal generation, eliminating the need for manual control circuit design and reducing the burden on designers.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent performs preliminary analysis and optimization of RAM allocation during the CAD stage. The tool pre-calculates the optimal mapping configuration and generates the necessary control logic before implementation, allowing the control circuit to operate efficiently without requiring complex runtime decision-making.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9971860B2Allocating plurality of RAMs to FPGA block RAM
Publication Date: 2018.05.15 FUJITSU LTD
  • US9971860B2 patent drawing
  • US9971860B2 patent drawing
  • US9971860B2 patent drawing

AI summary

A design apparatus includes a processing unit configured to allocate a plurality of RAMs to a FPGA block RAM in at least one of a word direction and a bit direction thereof, and to generate a description, in a hardware description language, of a control circuit that controls input and output signals of each of the plurality of RAMs so as to allow each of the plurality of RAMs to be accessed as a single RAM.