Method and apparatus for parallel Steiner tree routing
First Claim
Patent Images
1. A method for routing connections between pins in a net, said method comprising the steps of:
- A. identifying elementary pairs of pins in the net, an elementary pair being a pair for which no other pin is within or on a bounding box defined by said pair, and specifying a line between each said elementary pair so as to form a graph;
B. eliminating lines from said graph such that a planar graph is formed;
C. eliminating further lines from said planar graph such that a spanning tree is formed, said spanning tree connecting each pin in the net;
D. identifying basic elements, each basic element forming a portion of said spanning tree;
E. constructing a connected cover for said net, said connected cover comprising a plurality of said basic elements; and
F. routing connections between pins in the net based on said connected cover.
10 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides for a method and apparatus to partition high fanout nets into smaller subnets. Said method includes the steps of identifying elementary pairs of pins in the net, each such elementary pair defining a line; eliminating lines such that a planar graph is formed; eliminating further lines such that a spanning tree is formed, said spanning tree connecting each pin in the net; identifying basic elements, each basic element forming a portion of said spanning tree; and constructing a connected cover for said net, said connected cover comprising a plurality of said basic elements.
147 Citations
82 Claims
-
1. A method for routing connections between pins in a net, said method comprising the steps of:
-
A. identifying elementary pairs of pins in the net, an elementary pair being a pair for which no other pin is within or on a bounding box defined by said pair, and specifying a line between each said elementary pair so as to form a graph;
B. eliminating lines from said graph such that a planar graph is formed;
C. eliminating further lines from said planar graph such that a spanning tree is formed, said spanning tree connecting each pin in the net;
D. identifying basic elements, each basic element forming a portion of said spanning tree;
E. constructing a connected cover for said net, said connected cover comprising a plurality of said basic elements; and
F. routing connections between pins in the net based on said connected cover. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. An apparatus for routing connections between pins in a net, said apparatus comprising:
-
A. means for identifying elementary pairs of pins in the net, an elementary pair being a pair for which no other pin is within or on a bounding box defined by said pair, and for specifying a line between each said elementary pair so as to form a graph;
B. means for eliminating lines from said graph such that a planar graph is formed;
C. means for eliminating further lines from said planar graph such that a spanning tree is formed, said spanning tree connecting each pin in the net;
D. means for identifying basic elements, each basic element forming a portion of said spanning tree;
E. means for constructing a connected cover for said net, said connected cover comprising a plurality of said basic elements; and
F. means for routing connections between pins in the net based on said connected cover. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A machine-readable storage medium containing instructions for a processor, said instructions being the steps for the processor, comprising:
-
A. encoded computer means for identifying elementary pairs of pins in the net, an elementary pair being a pair for which no other pin is within or on a bounding box defined by said pair, and for specifying a line between each said elementary pair so as to form a graph;
B. encoded computer means for eliminating lines from said graph such that a planar graph is formed;
C. encoded computer means for eliminating further lines from said planar graph such that a spanning tree is formed, said spanning tree connecting each pin in the net;
D. encoded computer means for identifying basic elements, each basic element forming a portion of said spanning tree;
E. encoded computer means for constructing a connected cover for said net, said connected cover comprising a plurality of said basic elements; and
F. encoded computer means for routing connections between pins in the net based on said connected cover. - View Dependent Claims (27)
-
-
28. An apparatus for routing connections between pins in a net, said apparatus comprising:
-
A. means for iteratively compressing the net by reducing (x,y) coordinates for each pin during said iterations and combining pins when their (x,y) coordinates match to form combined pins;
B. means for iteratively expanding the net by retrieving pins that were combined to form said combined pins;
C. means for identifying elementary pairs at expansion iterations, an elementary pair being a pair for which no other pin is within or on a bounding box defined by said pair; and
D. means for routing connections between pins in the net based on said elementary pairs. - View Dependent Claims (29, 30, 31, 32, 33)
E. means for identifying quasi-elementary pairs of pins at at least one expansion iteration.
-
-
30. The apparatus of claim 28 wherein said means for iteratively compressing the net alternates between compressing the net in the x- and y-directions.
-
31. The apparatus of claim 30 wherein the pins of the net are located on a grid based upon relative x- and y- coordinates and after each x-direction compression iteration the relative x-coordinate of each pin is the absolute value of half the pin'"'"'s previous relative x-coordinate and after each y-direction compression iteration the relative y-coordinate of each pin is the absolute value of half the pin'"'"'s previous relative y-coordinate.
-
32. The apparatus of claim 28 wherein said means for iteratively expanding the net alternates between expanding the net in the x- and y-directions.
-
33. The apparatus of claim 28 wherein said means for iteratively expanding the net executes the same number of expansion iterations as the number of compression iterations executed by the means for iteratively compressing the net.
-
34. A method for routing connections between pins in a net, said method comprising the following steps:
-
A. iteratively compressing the net by reducing (x,y) coordinates for each pin during said iterations and combining pins when their (x,y) coordinates match to form combined pins;
B. iteratively expanding the net by retrieving pins that were combined to form said combined pins;
C. identifying elementary pairs at expansion iterations, an elementary pair being a pair for which no other pin is within or on a bounding box defined by said pair; and
D. routing connections between pins in the net based on said elementary pairs. - View Dependent Claims (35, 36, 37, 38, 39, 40, 41)
E. identifying quasi-elementary pairs of pins at at least one expansion iteration.
-
-
36. The method of claim 34 wherein said step of iteratively compressing the net alternates between compressing the net in the x- and y-directions.
-
37. The method of claim 36 wherein the pins of the net are located on a grid based upon relative x- and y- coordinates and after each x-direction compression iteration the relative x-coordinate of each pin is the absolute value of half the pin'"'"'s previous relative x-coordinate and after each y-direction compression iteration the relative y-coordinate of each pin is the absolute value of half the pin'"'"'s previous relative y-coordinate.
-
38. The method of claim 34 wherein said step of iteratively expanding the net alternates between expanding the net in the x- and y-directions.
-
39. The method of claim 34 wherein said step of iteratively expanding the net comprises executing the same number of expansion iterations as the number of compression iterations executed in the iteratively compressing step.
-
40. The method according to claim 34 wherein at each expansion iteration each elementary and quasi-elementary pair of pins from the previous iteration is checked for elementary pairs of pins.
-
41. The method according to claim 40 wherein at least one expansion iteration each elementary and quasi-elementary pair of pins from the previous iteration is checked for both elementary and quasi-elementary pairs of pins.
-
42. A method for routing connections between pins in a net, said method comprising the steps of:
-
A. identifying elementary pairs of pins in the net, an elementary pair being a pair for which no other pin is within or on a bounding box defined by said pair, and specifying a line between each said elementary pair so as to form a graph;
B. eliminating lines from said graph such that a planar graph is formed;
C. eliminating further lines from said planar graph such that a spanning tree is formed, said spanning tree connecting each pin in the net; and
D. routing connections between pins in the net based on said spanning tree. - View Dependent Claims (43, 44, 45)
-
-
46. An apparatus for routing connections between pins in a net, said apparatus comprising:
-
A. means for identifying elementary pairs of pins in the net, an elementary pair being a pair for which no other pin is within or on a bounding box defined by said pair, and for specifying a line between each said elementary pair so as to form a graph;
B. means for eliminating lines from said graph such that a planar graph is formed;
C. means for eliminating further lines from said planar graph such that a spanning tree is formed, said spanning tree connecting each pin in the net; and
D. means for routing connections between pins in the net based on said spanning tree. - View Dependent Claims (47, 48, 49)
-
-
50. A method for routing connections between pins in a net, said method comprising the steps of:
-
A. identifying elementary pairs of pins in the net, an elementary pair being a pair for which no other pin is within or on a bounding box defined by said pair, and specifying a line between each said elementary pair so as to form a graph;
B. eliminating lines from said graph such that a planar graph is formed;
C. eliminating further lines from said planar graph such that a spanning tree is formed, said spanning tree connecting each pin in the net;
D. dividing said spanning tree into subtrees collectively forming a connected cover for the net; and
E. routing connections between pins in the net based on said connected cover. - View Dependent Claims (51, 52, 53, 54, 55, 56, 57, 58, 59)
-
-
60. An apparatus for routing connections between pins in a net, said apparatus comprising:
-
A. means for identifying elementary pairs of pins in the net, an elementary pair being a pair for which no other pin is within or on a bounding box defined by said pair, and for specifying a line between each said elementary pair so as to form a graph;
B. means for eliminating lines from said graph such that a planar graph is formed;
C. means for eliminating further lines from said planar graph such that a spanning tree is formed, said spanning tree connecting each pin in the net;
D. means for dividing said spanning tree into subtrees which collectively form a connected cover for said net; and
E. means for routing connections between pins in the net based on said connected cover. - View Dependent Claims (61)
-
-
62. A machine-readable storage medium containing instructions for a processor, said instructions being the steps for the processor, comprising:
-
A. encoded computer means for identifying elementary pairs of pins in the net, an elementary pair being a pair for which no other pin is within or on a bounding box defined by said pair, and for specifying a line between each said elementary pair so as to form a graph;
B. encoded computer means for eliminating lines from said graph such that a planar graph is formed;
C. encoded computer means for eliminating further lines from said planar graph such that a spanning tree is formed, said spanning tree connecting each pin in the net; and
D. encoded computer means for routing connections between pins in the net based on said spanning tree. - View Dependent Claims (63)
-
-
64. A method for routing connections between pins in a net, said method comprising the steps of:
-
A. supplying a spanning tree, said spanning tree connecting each pin in the net;
B. identifying basic elements in said spanning tree, with each basic element comprising a subtree that forms a portion of said spanning tree, with at least one basic element formed for each pin in the net, and with plural basic elements formed for at least some pins in the net;
C. constructing a connected cover for said net, said connected cover comprising a plurality of said basic elements; and
D. routing connections between pins in the net based on said connected cover. - View Dependent Claims (65, 66, 67, 68, 69, 70, 71)
-
-
72. An apparatus for routing connections between pins in a net, said apparatus comprising:
-
A. means for providing a spanning tree, said spanning tree connecting each pin in the net;
B. means for identifying basic elements in said spanning tree, with each basic element comprising a subtree that forms a portion of said spanning tree, with at least one basic element formed for each pin in the net, and with plural basic elements formed for at least some pins in the net;
C. means for constructing a connected cover for said net, said connected cover comprising a plurality of said basic elements; and
D. means for routing connections between pins in the net based on said connected cover. - View Dependent Claims (73, 74, 75, 76, 77, 78)
-
-
79. A machine-readable storage medium containing instructions for a processor, said instructions being the steps for the processor, comprising:
-
A. encoded computer means providing a spanning tree, said spanning tree connecting each pin in a net;
B. encoded computer means for identifying basic elements in said spanning tree, with each basic element comprising a subtree that forms a portion of said spanning tree, with at least one basic element formed for each pin in the net, and with plural basic elements formed for at least some pins in the net;
C. encoded computer means for constructing a connected cover for said net, said connected cover comprising a plurality of said basic elements; and
D. encoded computer means for routing connections between pins in the net based on said connected cover. - View Dependent Claims (80, 81, 82)
-
Specification