Dynamic Programming Track Assignment for Circuit Routing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional track assignment methods in electronic design automation (EDA) often result in suboptimal routing patterns and increased runtime due to inefficient handling of design rule constraints, leading to potential blockage violations and wire overlap issues.
Innovation Solution
The implementation of dynamic programming for track assignment, which identifies candidate breaking points and assigns sub-wires to tracks, optimizing the routing process by integrating cost considerations and reducing wire overlap through a connected set of track-assigned sub-wires.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional track assignment methods are used, then the routing process is simpler to implement, but the routing patterns become suboptimal and runtime increases
Solution Approach 1:
The patent segments the track assignment problem into discrete candidate breaking points and sub-wires, allowing dynamic programming to evaluate and optimize each segment independently while maintaining overall routing coherence. This segmentation enables the system to handle complex routing scenarios more efficiently than traditional monolithic approaches.
Solution Approach 2:
The patent performs preliminary identification of candidate breaking points and candidate track assignments before finalizing the routing decision. By pre-processing and evaluating multiple potential assignments in advance, the system reduces runtime during the actual routing execution while maintaining optimal routing patterns.
2Reliability
If traditional track assignment methods are used, then the implementation is less complex, but blockage violations and wire overlap issues increase
Solution Approach 1:
The patent incorporates feedback mechanisms where the dynamic programming algorithm evaluates the consequences of each candidate track assignment against design rules and constraints. This feedback loop allows the system to identify and eliminate assignments that would cause blockage violations or wire overlaps, ensuring high compliance with design rules while managing complexity through systematic evaluation.
Solution Approach 2:
The patent employs dynamic programming to adaptively select track assignments based on the specific characteristics of each routing segment and its interactions with other segments. This dynamic approach allows the system to respond to complex design rule constraints by adjusting assignments in real-time, improving reliability without requiring overly complex static pre-definition of all possible scenarios.
3Manufacturing precision
If dynamic programming is implemented for track assignment, then optimal track assignments are achieved and wire overlap is minimized, but the computational complexity increases
Solution Approach 1:
By segmenting the routing into discrete breaking points and sub-wires, the patent enables dynamic programming to evaluate track assignments in manageable increments. This segmentation reduces the computational burden compared to evaluating entire routing paths at once, while still achieving optimal precision in track assignment by considering all candidate assignments for each segment.
Solution Approach 2:
The patent evaluates candidate track assignments for breaking points along the routing path, considering more options than strictly necessary for simple cases. This partial or excessive evaluation ensures optimal precision by examining multiple potential assignments, while the dynamic programming structure efficiently prunes suboptimal choices to manage computational complexity.
Data Source
AI summary
Various embodiments described herein provide for track assignment of wires of a network of a circuit design by dynamic programming. In particular, various embodiments use a dynamic programming process to determine a set of breaking points for a routing wire of a global-routed and layer-assigned circuit design, and to determine track assignments for each of the sub-wires (sub-routes) formed by applying the set of selected breaking points to the routing wire. This results in a set of track-assigned sub-wires (or track-assigned sub-routes), which various embodiments can connect together to generate a connected set of track-assigned sub-wires that can be used in place of the routing wire.


