Memory Controller Read-Back for FPGA Instruction Verification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional memory devices face challenges in verifying and debugging instruction data stored in on-chip memory, particularly in programmable logic devices like FPGAs, due to difficulties in reading back and validating instruction contents efficiently, leading to potential corruption and functional issues.

Innovation Solution

A circuit and method that utilize a memory controller with bidirectional buses to write and read instruction data, enabling the read-back of instruction data from memory, allowing for validation and integration with software debugging tools, thereby facilitating accurate data verification and debugging.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional memory devices use traditional instruction fetch mechanisms, then instructions can be loaded into memory, but the ability to read back and verify instruction contents is limited or non-existent

Engineering Contradiction:
Improveinstruction data verificationVSAvoidmemory access mechanism
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The memory controller is designed to handle multiple types of operations through a unified interface. The same controller that manages instruction fetch operations also manages read-back operations for verification and debugging. This multi-functionality allows the system to verify instruction contents without adding separate dedicated hardware for reading back instructions, thus improving reliability while controlling complexity.

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

Solution Approach 2:

The patent introduces an intermediary mechanism between the memory and the verification system. The memory controller acts as this intermediary, facilitating the read-back of instruction contents to external verification systems or debugging tools. This intermediary approach enables verification capabilities without requiring direct access paths that would significantly increase device complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If soft FPGA IP based techniques are used to read memory contents, then instruction data can be accessed, but performance decreases and area overhead increases

Engineering Contradiction:
Improvesoftware debugging capabilityVSAvoiddebugging performance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The memory controller is designed to serve the verification and debugging needs of the system itself. By incorporating read-back functionality directly into the memory controller, the system can perform self-verification of instruction contents without relying on external soft FPGA IP cores. This self-service approach eliminates the performance penalties and area overheads associated with using soft IP-based solutions while maintaining ease of software debugging.

Inventive Principle:
Principle #25Self-service

3Reliability

If bitstream read back mechanism is used, then instruction data can be read from memory, but it cannot be used with software debugging tools

Engineering Contradiction:
Improveinstruction data validationVSAvoidcompatibility with software debugging tools
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The memory controller is designed with universal functionality that supports both hardware-based bitstream read-back mechanisms and software-based debugging operations. The same controller interface and control logic can facilitate read-back operations for validation purposes as well as integration with software debugging tools, thereby achieving both reliability in instruction data validation and adaptability with different debugging methodologies.

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

Data Source

PatentUS7401258B1Circuit for and method of accessing instruction data written to a memory
Publication Date: 2008.07.15 XILINX INC
  • US7401258B1 patent drawing
  • US7401258B1 patent drawing
  • US7401258B1 patent drawing

AI summary

According to one embodiment of the invention, a method of accessing instruction data from a memory comprises steps of specifying a predetermined address of a memory for storing instruction data; writing instruction data to the predetermined address in the memory; reading the instruction data from the predetermined address after the step of writing instruction data; and determining whether the instruction data is valid. According to another embodiment of the invention, a method describes a method of accessing instruction data from a memory by way of first and second data buses. According to a further embodiment, instruction data read back from the memory is multiplexed to a memory controller. A circuit for accessing instruction data written to a memory is also described.