Sub-problem extraction method for wiring localized congestion areas in VLSI wiring design
First Claim
1. A computer implementable method for wiring congested areas in a VLSI design following a failed global wiring attempt, comprising the steps ofdetecting a congested area containing one or more identified invalid net segments in the VLSI design using the output of a global wiring program which has produced the failed global wiring attempt and which output contains a listing of said one or more identified invalid net segments;
- determining a bounding area for the congested area which is larger in size than said congested area;
fixing perimeter attachment points at locations where wires cross the bounding area;
extracting the bounding area and the perimeter attachment points as a sub-problem extraction area from the VLSI design;
associating wiring parameters with the sub-problem extraction area;
setting wire weights for the wiring parameters;
wiring the sub-problem extraction area to derive a wired solution by;
(a) attempting to wire the sub-problem extraction area in accordance with the wire weights,(b) in response to the wiring attempt completing unsuccessfully, changing at least one of the wire weights,(c) repeating sub-steps (a) and (b) until a wiring attempt completes successfully; and
placing the wired solution for the sub-problem extraction area back into the VLSI design.
0 Assignments
0 Petitions
Accused Products
Abstract
A computer-implementable method for wiring congested areas in a VLSI design detects overflows indicating an area of congestion in the VLSI design and defines a bounding area around the area of congestion. Attachment points are created at locations where wires cross the bounding area and the entire bounding area, with the attachment points, is extracted from the VLSI design as a sub-design. Initial wire weights are assigned to wiring parameters associated with the sub-design. Thereafter, an iterative process is commenced to derive a wiring solution for the sub-design. In a first step of the iterative process, an attempt is made to wire the sub-design with the assigned wire weights. In subsequent steps, at least one wire weight is changed and a new attempt is made to wire the sub-design using the new wire weight values. The process continues in this manner until a wiring attempt completes successfully. The wired solution for the sub-design is then placed back into the VLSI design.
-
Citations
21 Claims
-
1. A computer implementable method for wiring congested areas in a VLSI design following a failed global wiring attempt, comprising the steps of
detecting a congested area containing one or more identified invalid net segments in the VLSI design using the output of a global wiring program which has produced the failed global wiring attempt and which output contains a listing of said one or more identified invalid net segments; -
determining a bounding area for the congested area which is larger in size than said congested area; fixing perimeter attachment points at locations where wires cross the bounding area; extracting the bounding area and the perimeter attachment points as a sub-problem extraction area from the VLSI design; associating wiring parameters with the sub-problem extraction area; setting wire weights for the wiring parameters; wiring the sub-problem extraction area to derive a wired solution by; (a) attempting to wire the sub-problem extraction area in accordance with the wire weights, (b) in response to the wiring attempt completing unsuccessfully, changing at least one of the wire weights, (c) repeating sub-steps (a) and (b) until a wiring attempt completes successfully; and placing the wired solution for the sub-problem extraction area back into the VLSI design. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer-implementable method for wiring congested areas in a VLSI design following a failed global wiring attempt, comprising the steps of:
-
detecting a congested area containing one or more identified invalid net segments in the VLSI design using the output of a global wiring program which has produced the failed global wiring attempt and which output contains a listing of said one or more identified invalid net segments; determining a bounding area for the congested area which is larger in size than said congested area; fixing perimeter attachment points at locations where wires cross the bounding area; extracting from said VLSI design the bounding area and the perimeter attachment points as a sub-problem extraction area; associating wiring parameters with the sub-problem extraction area; generating initial weight values for the wiring parameters including a maximum total weight value associated with the sub-problem extraction area; setting wire weight iteration range values; modifying in a series of iterative nested loops the maximum total weight followed by selected other wire weight values, and during each wire weight modification iteration, performing the following steps; (a) running said global wiring program based on the modified wire weight values; (b) testing for a zero overflow solution; (c) if a zero overflow solution is found, outputting one or more attributes associated with the zero overflow solution; and (d) if a zero overflow solution is not found, repeating sub-steps (a)-(d) using a next modified wire weight parameter. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A computer-implementable method for wiring congested areas in a VLSI design following a failed global wiring attempt, comprising the steps of:
-
detecting a congested area containing one or more identified invalid net segments in the VLSI design using the output of a global wiring program which has produced the failed global wiring attempt and which output contains a listing of said one or more identified invalid net segments, said congested area having a plurality of net pairs of varying length; determining a bounding area for the congested area which is larger in size than said congested area; fixing perimeter attachment points at locations where wires cross the bounding area; extracting the bounding area and the perimeter attachment points as a sub-problem extraction area from the VLSI design; associating wiring parameters with the sub-problem extraction area; setting empirically determined, starting wire weight values for the wiring parameters; commencing a sub-problem extraction area wiring attempt by executing said global wiring program using said starting wire weight values as input; if said sub-problem extraction area remains congested, adjusting said wire weights by swapping selected net pairs in said sub-problem extraction area with a same length and rewiring the sub-problem extraction area until all net pairs of each length have been tested; and if said sub-problem extraction area still remains congested, iteratively adjusting other wire weight values over a range of values above and below the starting weight values in a series of nested loops until a zero overflow solution is found.
-
Specification