RAM Register Retiming with Backward State Initialization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing configuration methods for programmable integrated circuit devices, particularly those with random access memories (RAMs), fail to properly account for retiming designs by moving registers, especially when initializing RAMs, which complicates the process, especially when registers need to be moved backwards through the RAM.

Innovation Solution

The method involves retiming a circuit with a RAM by pushing register values and initialization values backward through the RAM, adjusting read and write address paths to restore the pre-retiming state on the next clock cycle, allowing for efficient reconfiguration and operation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If configuration methods account for retiming by moving registers, then clock speed can be improved, but device complexity increases when dealing with initialized RAM

Engineering Contradiction:
Improveclock speedVSAvoidconfiguration complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-calculating and storing the required initial values for RAM in the configuration data before the device operates. This allows the retiming operation to proceed without complex runtime calculations, as the initialization values are prepared in advance and automatically applied when the configuration is loaded, resolving the contradiction between enabling retiming for speed improvement and avoiding configuration complexity.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If registers are moved backwards through initialized RAM, then retiming flexibility is improved, but manufacturing precision requirements increase

Engineering Contradiction:
Improveretiming flexibilityVSAvoidconfiguration precision
Core Design Contradiction:
Adaptability or versatilityVSManufacturing precision

Solution Approach 1:

The patent implements feedback by having the retiming tool analyze the circuit design, determine the optimal register positions, calculate the required RAM initial values based on the new configuration, and then verify that the calculated values will produce the correct pre-retiming state. This closed-loop approach ensures that even with backward register movement through RAM, the configuration achieves precise control over the circuit's initial state, maintaining manufacturing precision while improving retiming flexibility.

Inventive Principle:
Principle #23Feedback

3Productivity

If retiming is performed on designs with initialized RAM, then productivity is improved, but loss of information increases without proper accounting

Engineering Contradiction:
Improvereconfiguration efficiencyVSAvoidinitialization state information
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent applies copying by creating a computational model of the RAM's initial state and using this model to calculate what values must be pre-loaded into the RAM to achieve the desired pre-retiming configuration state. Instead of losing information about the initialization requirements during retiming, the tool copies the necessary state information into the configuration data structure, ensuring that when the device is configured, the RAM is initialized with the correct values to maintain the intended circuit behavior.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9251876B1Retiming programmable devices incorporating random access memories
Publication Date: 2016.02.02 ALTERA CORP
  • US9251876B1 patent drawing
  • US9251876B1 patent drawing
  • US9251876B1 patent drawing

AI summary

A method of retiming a circuit that includes a RAM having data stored therein, a register following the RAM, and registers preceding the RAM for registering input, address and enable signals of the RAM includes pushing a value in the register following the RAM back into a memory location in the RAM, pushing back data stored in the RAM and initial values in the registers preceding the RAM to accommodate the value pushed back from the register following the RAM, and setting new values in the registers preceding the RAM so that, on a first clock cycle after retiming, the circuit assumes a condition before retiming. The method also may be used to configure a programmable logic device with a user logic design.