Multi-threaded Global Routing for Circuit Design
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional routing techniques for large circuit designs are inefficient, taking several days to route metal wires due to high semiconductor integration densities, leading to significant challenges in designing circuits effectively.
Innovation Solution
The system employs a multi-threaded approach by partitioning the circuit design into hierarchical sets, associating nets with partitions based on bounding boxes, and routing in non-overlapping partitions in parallel, while adjusting bounding boxes to alleviate congestion and optimize routing resources.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional routing techniques are used for large circuit designs, then routing can be performed using traditional sequential methods, but routing time increases to several days
Solution Approach 1:
The circuit design is divided into multiple non-overlapping partitions, each containing a subset of nets. This segmentation allows the routing problem to be broken down into smaller, independent sub-problems that can be solved in parallel, dramatically reducing overall routing time while maintaining routing correctness through systematic partitioning strategies.
Solution Approach 2:
Nets are pre-associated with partitions based on their bounding boxes before the routing process begins. This preliminary association establishes a structured framework that enables parallel processing while ensuring that each net is routed within its designated partition, maintaining routing correctness without requiring extensive coordination during the actual routing phase.
2Productivity
If nets are routed in parallel using partitions, then routing time is reduced, but congestion may occur in certain regions
Solution Approach 1:
The system employs iterative routing where congestion information from previous iterations feeds into subsequent routing passes. Congested regions are identified and re-routed in later iterations, with the process repeating until congestion is eliminated. This feedback mechanism allows parallel routing to achieve both high productivity and congestion-free solutions.
Solution Approach 2:
The partitioning and routing process is dynamic and adaptive. Partitions can be re-associated with nets in subsequent iterations based on updated bounding boxes, allowing the system to adapt to congestion patterns that emerge during parallel routing. This dynamic adjustment enables the system to resolve congestion while maintaining high routing speed.
3Adaptability or versatility
If bounding boxes are expanded to provide additional routing resources, then routing flexibility improves, but partition associations may change requiring re-routing
Solution Approach 1:
The system performs periodic re-evaluation of net-partition associations at the beginning of each iteration. Bounding boxes are updated and re-associated with partitions in a systematic, periodic manner rather than continuously, which provides routing flexibility when needed while avoiding unnecessary re-routing operations that would increase complexity.
Data Source
AI summary
Some embodiments provide techniques and systems for routing nets in a circuit design in parallel. Specifically, some embodiments perform global routing using an iterative approach. During operation, the system determines bounding boxes for nets, and associates nets with partitions, wherein a partition associated with a net encloses the net's bounding box. Then, the system routes nets in non-overlapping partitions in parallel. Next, the system adjusts bounding boxes of nets which need to be routed again, and routes these nets in the next iteration. In some embodiments, the system may use a cost function to guide the routing process. The system may adjust the weights of one or more terms of the cost function as the routing process progresses. Specifically, the system may increase the importance of a congestion term as the routing process progresses.


