LP method and apparatus for identifying routes
First Claim
1. A method of routing nets within a particular region of a design layout, each net having a set of pins, the method comprising:
- a) partitioning the design region into a first set of sub-regions, wherein a plurality of inter-sub-region edges exist between the sub-regions, and wherein a plurality of the inter-sub-region edges are diagonal;
b) for each particular net, identifying a set of routes, wherein each route in the route set identified for a particular net traverses a set of sub-regions containing the particular net'"'"'s pins, wherein each route includes a set of route edges, and each route edge connects two sub-regions, and wherein routes are defined with respect to the inter-sub-region edges;
c) formulating a linear-programming (“
LP”
) problem based on the identified routes, wherein formulating an LP problem includes using the identified routes to specify an objective function to optimize; and
d) solving the LP problem to identify one route for each net.
2 Assignments
0 Petitions
Accused Products
Abstract
Some embodiments provide an LP method that identities routes. In some embodiments, this method is used by a router that defines routes for nets within a region of a design layout. Each net has a set of pins in the region. The method partitions the region into a set or sub-regions. For each particular net, the method identifies a set or route. Each route for a net traverses the sub-regions that contain the net'"'"'s pins. Each route includes a set of route edge, and each route edge connects two sub-regions. Also, some of the identified routes have route edges that are at least partially diagonal. The method formulates a linear-programming (“LP”) problem based on the identified sets of routes for the nets. The method then solves the LP problem to identify one route for each net. In some embodiments, the formulated LP problem is an integer-linear-programming (“ILP”) problem, and solving the ILP problem returns integer solutions that specify one route for each net. In other embodiments, solving the LP problem returns real-numbered solutions. In some of these embodiments, the method converts the real-number solutions into integer solutions that specify one route for each net.
134 Citations
21 Claims
-
1. A method of routing nets within a particular region of a design layout, each net having a set of pins, the method comprising:
-
a) partitioning the design region into a first set of sub-regions, wherein a plurality of inter-sub-region edges exist between the sub-regions, and wherein a plurality of the inter-sub-region edges are diagonal;
b) for each particular net, identifying a set of routes, wherein each route in the route set identified for a particular net traverses a set of sub-regions containing the particular net'"'"'s pins, wherein each route includes a set of route edges, and each route edge connects two sub-regions, and wherein routes are defined with respect to the inter-sub-region edges;
c) formulating a linear-programming (“
LP”
) problem based on the identified routes, wherein formulating an LP problem includes using the identified routes to specify an objective function to optimize; and
d) solving the LP problem to identify one route for each net. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer readable medium comprising a computer program having executable code, the computer program for routing a net within a particular region of a design layout, the net having a plurality of pins, the computer program comprising:
-
a) a first set of instructions for partitioning the design region into a first set of sub-regions, wherein a plurality of paths exist between the sub-regions, and wherein a plurality of the paths are diagonal paths, and wherein some of the paths share common regions with other paths;
b) a second set of instructions for identifying, for each particular net, a set of routes, wherein each route in the route set identified for a particular net traverses a set of sub-regions containing the particular net'"'"'s pins, wherein each route includes a set of route edges, and each route edge connects two sub-regions, and wherein the routes are defined with respect to the paths between sub-regions;
c) a third set of instructions formulating a linear-programming (“
LP”
) problem based on the identified routes, wherein the third set of instructions includes a fifth set of instructions for using the identified routes to specify an objective function to optimize, and wherein the third set of instructions further includes a sixth set of instructions for specifying that the capacity of common regions be properly shared among paths; and
d) a fourth set of instructions solving the LP problem to identify one route for each net. - View Dependent Claims (10, 11)
-
-
12. A method of routing nets within a particular region of a design layout, each net having a set of pins, the method comprising:
-
a) partitioning the design region into a first set of sub-regions, wherein a plurality of paths exist between the sub-regions, and wherein a plurality of the paths are diagonal paths;
b) for each particular net, identifying a set of routes, wherein each route in the route set identified for a particular net traverses a set of sub-regions containing the particular net'"'"'s pins, wherein each route includes a set of route edges, and each route edge connects two sub-regions, and wherein the routes are defined with respect to the paths between the sub-regions;
c) formulating a linear-programming (“
LP”
) problem based on the identified routes, wherein formulating an LP problem includes using the identified routes to specify an objective function to optimize; and
d) solving the LP problem to identify one route for each net. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A computer readable medium comprising a computer program having executable code, the computer program for routing a net within a particular region of a design layout, the net having a plurality of pins, the computer program comprising:
-
a) a first set of instructions for partitioning the design region into a first set of sub-regions, wherein a plurality of inter-sub-region edges exist between the sub-regions, and wherein a plurality of the inter-sub-region edges are diagonal;
b) a second set of instructions for identifying, for each particular net, a set of routes, wherein each route in the route set identified for a particular net traverses a set of sub-regions containing the particular net'"'"'s pins, wherein each route includes a set of route edges, and each route edge connects two sub-regions, and wherein the routes are defined with respect to the inter-sub-region edges;
c) a third set of instructions formulating a linear-programming (“
LP”
) problem based on the identified routes, wherein the third set of instructions includes a fifth set of instructions for using the identified routes to specify an objective function to optimize; and
d) a fourth set of instructions solving the LP problem to identify one route for each net. - View Dependent Claims (19, 20, 21)
-
Specification