FPGA BRAM ECC Testing Using Ring-Connected Memory Blocks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for testing the Error Correcting Code (ECC) function of Field Programmable Gate Array (FPGA) on-chip block random access memory (BRAM) require a large number of test stimuli and frequent interactions with the upper computer port, making the process inefficient, especially when dealing with a large number of BRAMs.

Innovation Solution

A system and method that utilizes the internal logic of the FPGA and data preset in the BRAM to test the ECC function, reducing the need for test stimuli and interactions with the upper computer port by connecting BRAMs in a ring structure and using parity bit comparison modules to verify parity bits.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If existing techniques are used to test BRAM with ECC function, then the ECC function can be tested, but a large number of test stimuli and frequent interactions with the upper computer port are required, making the test very inefficient

Engineering Contradiction:
ImproveECC function testing reliabilityVSAvoidtest efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent combines multiple BRAM modules into a ring-structured test system where data flows sequentially through each module. This merging approach allows simultaneous testing of multiple BRAM units with a single test stimulus sequence, eliminating the need for separate testing of each module and significantly improving test efficiency while maintaining comprehensive ECC function verification.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent implements preliminary action by pre-loading test data into the first BRAM module before the test sequence begins. The ring structure is pre-configured with the necessary control logic and data paths, allowing the test to proceed automatically through all modules without requiring real-time external intervention or stimulus generation for each module.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If a large number of BRAMs are tested using existing methods, then comprehensive coverage is achieved, but the number of test stimuli and interactions with the upper computer port increases significantly

Engineering Contradiction:
Improvetesting coverageVSAvoidtest system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the test system into a ring-structured configuration where BRAM modules are arranged in sequence. Each module processes a portion of the test data independently but contributes to the overall test coverage. This segmentation allows comprehensive testing of multiple modules while using a unified, simplified control approach that reduces the complexity of test stimulus generation and management.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The ring-structured test system implements universality by using a single test data flow that serves multiple BRAM modules simultaneously. The same test stimulus sequence can verify ECC functions across all modules in the ring, making the test system multi-functional and capable of testing any number of BRAM units without proportionally increasing test complexity.

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

Data Source

PatentUS12388466B2Method and apparatus for testing error correcting code (ECC) function of FPGA on-chip block random access memory (BRAM)
Publication Date: 2025.08.12 GOWIN SEMICON CORP LTD
  • US12388466B2 patent drawing
  • US12388466B2 patent drawing
  • US12388466B2 patent drawing

AI summary

A system and method for testing Error Correcting Code (“ECC”) function of Field Programmable Gate Array (“FPGA”) on-chip block random access memory (“BRAM”) includes control modules, at least two BRAMs with ECC function and sequentially connected to form a ring, and parity bit comparison modules corresponding to each BRAM. Each parity bit comparison module is connected to its corresponding BRAM and the next adjacent BRAM. The control module is used to send data read and write test instructions to each BRAM. Each BRAM is used to read test data sequentially, write test data into next adjacent BRAM whenever the test data is read, and send the first parity bit generated during reading to the corresponding parity bit comparison module. Each parity bit comparison module is used to compare the first and second parity bits, where the second parity bit is generated during the writing of test data. The embodiments of the present invention reduce the required test stimuli and the interactions with upper computer ports, which enhances the test efficiency.