RAM Register Retiming with Backward State Initialization
Find Innovative SolutionsGenerate 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
Engineering 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
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.
2Adaptability or versatility
If registers are moved backwards through initialized RAM, then retiming flexibility is improved, but manufacturing precision requirements increase
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.
3Productivity
If retiming is performed on designs with initialized RAM, then productivity is improved, but loss of information increases without proper accounting
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.
Data Source
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.


