Parallel Signal Routing for Deterministic IC Netlist Design
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current programmable integrated circuit (IC) routing tools face challenges in achieving deterministic results due to race conditions and non-deterministic outcomes when routing nets in parallel, leading to inconsistent performance and increased computational resources required to achieve satisfactory results.
Innovation Solution
The method involves grouping nets into sub-netlists and routing each sub-netlist independently with local congestion data, updating a global congestion history after routing, and rerouting conflicting nets to avoid race conditions and ensure deterministic results, utilizing multiple processors for parallel routing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If nets are routed in parallel using multiple processors, then routing speed and productivity are improved, but race conditions and non-deterministic outcomes occur leading to inconsistent results
Solution Approach 1:
The patent divides the netlist into multiple sub-netlists that can be routed independently and in parallel by different processors. Each sub-netlist is routed separately with its own congestion data, eliminating race conditions while maintaining parallel processing benefits. This segmentation allows deterministic results because each processor works on isolated data without interfering with others.
Solution Approach 2:
The patent introduces a congestion history data structure as an intermediary that mediates between parallel routing operations. This intermediary collects congestion information from all sub-netlists and uses it to resolve conflicts deterministically, ensuring that parallel routing produces consistent results without race conditions.
2Reliability
If congestion data is shared globally during parallel routing, then routing consistency is improved, but computational overhead and processing time increase
Solution Approach 1:
The patent segments congestion data into sub-netlist-specific congestion data rather than maintaining a single global congestion data structure. Each sub-netlist has its own congestion information, which reduces the computational overhead of accessing and updating global congestion data while maintaining routing consistency through the segmented approach.
Solution Approach 2:
The patent performs preliminary routing of sub-netlists independently before final conflict resolution. This preliminary action allows each sub-netlist to be routed with its own congestion data without the overhead of continuous global coordination, and only conflicts are resolved in a second pass using the congestion history.
3Productivity
If sub-netlists are routed independently without considering global congestion, then routing efficiency is improved, but conflicts between sub-netlists increase requiring rerouting
Solution Approach 1:
The patent implements feedback by collecting congestion information from all sub-netlists into a congestion history data structure. This feedback mechanism allows the system to identify conflicts between sub-netlists and resolve them systematically, balancing the benefits of independent sub-netlist routing with the need to manage inter-sub-netlist conflicts.
Solution Approach 2:
The patent extracts conflicting nets from their original sub-netlists and creates separate conflict resolution processes. By taking out the problematic interactions between sub-netlists and handling them separately through the congestion history, the system maintains the efficiency of independent sub-netlist routing while reducing overall conflict complexity.
Data Source
AI summary
A method is provided for routing a circuit design netlist. Nets of the netlist are grouped into a plurality of sub-netlists. For each sub-netlist, nets of the sub-netlist are routed as a function of congestion between nets of the sub-netlist. Congestion between nets of other sub-netlists in the plurality of sub-netlists is not taken into account. If two or more nets of the netlist are routed through the same routing resource, a global congestion history data set is updated to describe congestion between all nets in the netlist, and the two or more nets of the netlist are unrouted. The two or more nets are each rerouted as a function of the global congestion history data set and congestion between nets of the same sub-netlist as the net.


