Claims Analysis
Total Claims: 19
Claim 1
Independent Claim
441 words
A grid-based method for routing wire connections through a routing channel area between nodes by an automated computer design system, the method comprising the steps of: extracting from an externally supplied netlist specification a set of wire connection information that relates to a particular semiconductor integrated circuit design, wherein nodes that are described to be interconnected in pin-nets are decomposed into a plurality of mapped segments each comprising two-pin subnets, and wherein said mapped segments are each directly vectored between a pair of pins in a two-pin subnet; building a channel grid map comprised of a plurality of metal layers interconnectable by a plurality of vias, wherein each metal layer defines a system of horizontal tracks or vertical tracks with one system of horizontal tracks or vertical tracks being preferred over another in particular metal layers, and such systems of horizontal tracks and vertical tracks in all said metal layers together defining an orthogonally overlapping grid within a channel routing area, and wherein individual said vias are used to connect a track of one metal layer to a criss-crossing track of another metal layer; earmarking any existing wires and vias on said channel grid map; building a vertical constraint graph (VCG) that identifies which portions of each vertical track in each of a corresponding said plurality of metal layers have already been earmarked for use by previously routed mapped segments, wherein a mapped segment currently being routed is constrained from using any already-earmarked portions of said vertical tracks in said plurality of metal layers; computing a plurality of track assignments by first breaking cycles and longpaths between said nodes to reduce the number of interconnections with said channel routing area to complete a particular pin net according to said netlist specification, then by assigning a feasible set of wires and vias for each track to achieve a particular result; controlling a layer assignment process through the use of a selected set of weighting functions chosen for each said metal layer to balance a plurality of objectives in a final design, and that provides a mechanism for an intelligent trade-off between computer run time and design-result quality; completing all of a requisite routing within a minimal channel routing area on a row-by-row basis wherein a zigzag chain of individual feasible horizontal and vertical wire segment links with ideal zero line widths are assembled according to said layer assignment process and that attempt to approximate a direct vector of each said mapped segment; and physically realizing each of said zigzag chains of individual feasible horizontal and vertical wire segment links with ideal zero line widths by assigning a finite line width to each.
Claim 2
Dependent Claim
441 words
A grid-based method for routing wire connections through a routing channel area between nodes by an automated computer design system, the method comprising the steps of: extracting from an externally supplied netlist specification a set of wire connection information that relates to a particular semiconductor integrated circuit design, wherein nodes that are described to be interconnected in pin-nets are decomposed into a plurality of mapped segments each comprising two-pin subnets, and wherein said mapped segments are each directly vectored between a pair of pins in a two-pin subnet; building a channel grid map comprised of a plurality of metal layers interconnectable by a plurality of vias, wherein each metal layer defines a system of horizontal tracks or vertical tracks with one system of horizontal tracks or vertical tracks being preferred over another in particular metal layers, and such systems of horizontal tracks and vertical tracks in all said metal layers together defining an orthogonally overlapping grid within a channel routing area, and wherein individual said vias are used to connect a track of one metal layer to a criss-crossing track of another metal layer; earmarking any existing wires and vias on said channel grid map; building a vertical constraint graph (VCG) that identifies which portions of each vertical track in each of a corresponding said plurality of metal layers have already been earmarked for use by previously routed mapped segments, wherein a mapped segment currently being routed is constrained from using any already-earmarked portions of said vertical tracks in said plurality of metal layers; computing a plurality of track assignments by first breaking cycles and longpaths between said nodes to reduce the number of interconnections with said channel routing area to complete a particular pin net according to said netlist specification, then by assigning a feasible set of wires and vias for each track to achieve a particular result; controlling a layer assignment process through the use of a selected set of weighting functions chosen for each said metal layer to balance a plurality of objectives in a final design, and that provides a mechanism for an intelligent trade-off between computer run time and design-result quality; completing all of a requisite routing within a minimal channel routing area on a row-by-row basis wherein a zigzag chain of individual feasible horizontal and vertical wire segment links with ideal zero line widths are assembled according to said layer assignment process and that attempt to approximate a direct vector of each said mapped segment; and physically realizing each of said zigzag chains of individual feasible horizontal and vertical wire segment links with ideal zero line widths by assigning a finite line width to each.
Claim 3
Dependent Claim
14 words
The method of claim 1, wherein: the weighting function is used to minimize congestion.
Claim 4
Dependent Claim
27 words
The method of claim 1, wherein: the weighting function is used to minimize channel density, wherein the channel is comprised of a routing area of the layout.
Claim 5
Dependent Claim
15 words
The method of claim 1, wherein: the weighting function is used to minimize wire lengths.
Claim 6
Dependent Claim
17 words
The method of claim 1, wherein: the weighting function is used to minimize a number of vias.
Claim 7
Dependent Claim
15 words
The method of claim 1, wherein: the weighting function is used to optimize vertical constraints.
Claim 8
Dependent Claim
30 words
The method of claim 1, further comprising the steps of: assigning a combination of a plurality of weighting functions; selecting optimal feasible links according to the combination of weighting functions.
Claim 9
Dependent Claim
25 words
The method of claim 1 further comprising the step of: limiting a number of feasible links to characterize run time and quality of the layout.
Claim 10
Dependent Claim
25 words
The method of claim 1, further comprising the steps of: selecting and implementing a set of unpreferred layer wires by using a dynamic programming approach.
Claim 11
Dependent Claim
193 words
In a computer implemented channel router for designing a circuit, a method of assigning a set of wires and vias for a plurality of tracks of a channel routing area, comprising the steps of: a) breaking cycles and long paths associated with mapped segments which define interconnections of the circuit; b) determining a plurality of feasible links corresponding to the mapped segments for a current track; c) applying one or more weighting functions to the feasible links, wherein the weighting functions measure a merit of realizing a particular feasible link onto the current track; d) selecting an optimal set of feasible links according to the weighting functions; e) realizing the optimal set of feasible links; f) repeating steps a-e until each connection of the circuit has been routed; and g) determining a set of preferred layer wires and a set of unpreferred layer wires by using dynamic programming, wherein an unpreferred layer wire shares a same track as a preferred layer wire; wherein, the weighting functions include a combination of criteria for minimizing channel density, minimizing wire length, minimizing a number of vias, optimizing vertical constraints, and discouraging selection of unfavorable feasible links.
Claim 12
Dependent Claim
193 words
In a computer implemented channel router for designing a circuit, a method of assigning a set of wires and vias for a plurality of tracks of a channel routing area, comprising the steps of: a) breaking cycles and long paths associated with mapped segments which define interconnections of the circuit; b) determining a plurality of feasible links corresponding to the mapped segments for a current track; c) applying one or more weighting functions to the feasible links, wherein the weighting functions measure a merit of realizing a particular feasible link onto the current track; d) selecting an optimal set of feasible links according to the weighting functions; e) realizing the optimal set of feasible links; f) repeating steps a-e until each connection of the circuit has been routed; and g) determining a set of preferred layer wires and a set of unpreferred layer wires by using dynamic programming, wherein an unpreferred layer wire shares a same track as a preferred layer wire; wherein, the weighting functions include a combination of criteria for minimizing channel density, minimizing wire length, minimizing a number of vias, optimizing vertical constraints, and discouraging selection of unfavorable feasible links.
Claim 13
Dependent Claim
59 words
The method of claim 10 further comprising the steps of: extracting interconnection information from a global routing result; building a channel grid map according to mapped segments derived from the interconnection information; marking the channel grid map with vias and wires; maintaining relative positions of the mapped segments inside the channel routing area; and determining a first routing track.
Claim 14
Dependent Claim
23 words
The method of claim 11, wherein: the channel grid map is comprised of a plurality of layers having horizontal and vertical straight lines.
Claim 15
Dependent Claim
20 words
The method of claim 10 further comprising the step of: limiting a number of feasible links to control run time.
Claim 16
Dependent Claim
33 words
The method of claim 10 further comprising the step of: controlling a wiring pattern corresponding to critical nets based on the feasible links and choice of weighting functions applied to the feasible links.
Claim 17
Dependent Claim
187 words
A computer-readable memory encoded with data representing a computer program that causes a computer to perform a method for assigning tracks in a grid-based channel router used to design circuits, wherein the method is comprised of the steps of: decomposing a pin net into a plurality of mapped segments; constructing a channel grid map comprised of horizontal and vertical lines coupled by a plurality of vias; maintaining relative positions of the mapped segments; determining a set of feasible links representing connections corresponding to the mapped segments; assigning a weight to the feasible links; selecting the feasible links as a function of the weight by using a dynamic programming approach; converting the feasible links into representations of physical wires and vias with non-zero dimensions; and determining a set of preferred layer wires and a set of unpreferred layer wires by using dynamic programming, wherein an unpreferred layer wire share a track with a preferred layer wire; wherein, the weight is comprised of a combination of criteria including minimizing channel density, minimizing wire length, minimizing a number of vias, optimizing vertical constraints, and discouraging selection of unfavorable feasible links.
Claim 18
Dependent Claim
187 words
A computer-readable memory encoded with data representing a computer program that causes a computer to perform a method for assigning tracks in a grid-based channel router used to design circuits, wherein the method is comprised of the steps of: decomposing a pin net into a plurality of mapped segments; constructing a channel grid map comprised of horizontal and vertical lines coupled by a plurality of vias; maintaining relative positions of the mapped segments; determining a set of feasible links representing connections corresponding to the mapped segments; assigning a weight to the feasible links; selecting the feasible links as a function of the weight by using a dynamic programming approach; converting the feasible links into representations of physical wires and vias with non-zero dimensions; and determining a set of preferred layer wires and a set of unpreferred layer wires by using dynamic programming, wherein an unpreferred layer wire share a track with a preferred layer wire; wherein, the weight is comprised of a combination of criteria including minimizing channel density, minimizing wire length, minimizing a number of vias, optimizing vertical constraints, and discouraging selection of unfavorable feasible links.
Claim 19
Dependent Claim
32 words
The method of claim 15 further comprising the step of: controlling a wiring pattern corresponding to critical nets based on the feasible links and choice of weights applied to the feasible links.