Static Timing Analysis Checkpointing with Phase Tags
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current checkpoint/restart techniques for static timing analysis of IC chips are limited by the requirement for identical boundary conditions in the checkpoint and restart environments, making it difficult to efficiently recalculate timing values when boundary conditions change, especially in cases where individual levels of hierarchy are analyzed out of context.
Innovation Solution
A system and method that assigns unique phase tags to input ports during checkpointing, allowing for efficient adjustment and recalculation of timing values in the restart environment, including local updates and global recalculation based on slack change thresholds to detect new timing failures.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If checkpoint/restart techniques are used to save and restore timing analysis data, then productivity is improved by avoiding full recalculations, but adaptability deteriorates because the technique requires identical boundary conditions between checkpoint and restart environments
Solution Approach 1:
The patent applies preliminary action by pre-tagging all input ports with unique identifiers during the checkpoint phase. This preliminary tagging enables the restart process to efficiently identify and update only those timing values affected by boundary condition changes, rather than requiring full recalibration or identical environments. The pre-established tagging system allows for rapid adaptation to new boundary conditions.
Solution Approach 2:
The patent implements feedback by using the tagged input port information to guide the restart process. The system feedbacks on which specific input ports have changed boundary conditions and uses this information to selectively update only the affected timing values in the restart environment, improving both adaptability and efficiency.
2Reliability
If full recalculation is performed when boundary conditions change, then reliability is improved by ensuring accurate timing values, but productivity deteriorates due to the time-consuming nature of complete recalculations
Solution Approach 1:
The patent applies segmentation by dividing the timing analysis into discrete, taggable segments corresponding to individual input ports. When boundary conditions change, only the segmented portions affected by those changes are updated, rather than performing full recalculations. This maintains reliability for changed portions while improving overall productivity.
Solution Approach 2:
The patent implements local quality by applying updates only to the specific local regions (input ports and their dependent timing values) that are affected by boundary condition changes. The tagging system enables identification of these local regions, allowing accurate updates where needed while preserving unchanged timing values elsewhere, thus balancing reliability and productivity.
3Device complexity
If checkpointing is performed without unique input port identification, then device complexity is reduced, but measurement precision deteriorates because it becomes difficult to track which timing values depend on which boundary conditions
Solution Approach 1:
The patent introduces unique tags as intermediary elements that connect input ports to their dependent timing values. These tags act as mediators that enable precise tracking of dependencies without significantly increasing overall system complexity. The tags serve as a simple yet effective mechanism for maintaining measurement precision in the checkpoint/restart process.
Data Source
AI summary
A method for loading checkpoint timing in an environment where the boundary arrival times, slews, required arrival times, or loads differ from the checkpoint run. A timing checkpoint file generated for one or more hierarchical modules, during which each input is assigned a unique phase tag. The association of unique phase tags allows subsequent restart analyses to efficiently adjust the checkpoint timing in relation to the restart timing environment. In the restart run, one or more such checkpoint files is read, during which an initial propagation of arrival, required arrivals and slew times are performed, followed by a local re-update based on adjusted arrival times and the required arrival times. Finally, if multiple hierarchical modules are updated, a global recalculation of timing values is performed based on a slack change threshold in order to determine whether any new timing failures have been introduced.


