IP Library Granted Patent US 9,558,313
Granted Patent B1
US 9,558,313 · App. 14/847,750 · Granted Jan 31, 2017

Method and system for providing a game theory based global routing

Inventors: Umair Farooq Siddiqi (Dhahran, SA); Sadiq M. Sait (Dhahran, SA)
Assignee: King Fahd University of Petroleum and Minerals
G06F17/5077
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,558,313
App. No.
14/847,750
Granted
Jan 31, 2017
Kind
B1
Abstract

A system and method for global routing that includes receiving nets that need to be routed and capacity constraints, ordering, using processing circuitry, the nets, routing, using the processing circuitry, the nets based on a maze routing with framing method, determining, using the processing circuitry, whether the routing is congestion free, selecting, using the processing circuitry, a subset of the nets based on a game theory method when the routing is not congestion free, applying a rip-up and re-route process on the subset of the nets, and repeating the selecting and applying steps until the routing is congestion free.

Claims (47)

1. A method for global routing, the method comprising:

receiving nets that need to be routed and capacity constraints of global routing cells;

ordering, using processing circuitry, the nets as a function of an area bounded by pins of each net;

routing, using the processing circuitry, the ordered nets by applying maze routing within a frame having a size as a function of the pins of a net and a first predetermined parameter;

determining, using the processing circuitry, whether the routing is congestion free based on the capacity constraints of the global routing cells;

selecting, using the processing circuitry, a subset of the nets based on a game theory method based on a probability of attempting to improve the spanning tree of the net when the routing is not congestion free, the probability being calculated as a function of a plurality of factors;

applying, using the processing circuitry, a rip-up and re-route process on the subset of the nets;

repeating the selecting and applying steps until the routing is congestion free; and

implementing, using processing circuitry, a circuit based on the routing.

2. The method of claim 1 , wherein the determining step comprises calculating a total overflow based on the overflow of all edges.

3. The method of claim 1 , wherein the rip-up and re-route process is iteratively applied to the subset of nets.

4. The method of claim 3 , wherein the rip-up and re-route process rip-up and re-route one or two nets at each iteration.

5. The method of claim 3 , further comprising:

copying an existing spanning tree of the net to a temporary variable;

deleting the existing spanning tree;

creating a second spanning tree by applying maze routing within the frame, the frame having a size as a function of the pins of the net and the first predetermined parameter;

comparing the existing spanning tree stored in the temporary variable with the second spanning tree as a function of the overflow of the existing spanning tree stored in the temporary variable, the second spanning tree, the number of edges having a demand equal to the capacity in the existing spanning tree and the second spanning tree, and a third predetermined parameter;

storing, in a memory, the second spanning tree or the temporary variable based on the comparison; and

interleaving the copying, deleting, creating, comparing, and storing steps between the two nets when the rip-up and re-route process is for two nets.

6. The method of claim 1 , wherein the routing step further comprises determining a cost based on an edge capacity, an edge demand, and a cost of a preceding cell.

7. The method of claim 6 , wherein determining the cost includes applying

cost( v j )=1+ e u ij −(c ij -β) +cost( v i )

where v j is a cell with a preceding cell v i , u ij is the demand of an edge e ij , c ij is a capacity of the edge e ij wherein the edge e ij represents the edge between v j and v i , and β is a predetermined parameter.

8. The method of claim 1 , wherein the probability is a function of the area enclosed by the pins of the net when the value of a second predetermined parameter is zero and the overflow of the net is greater than zero.

9. The method of claim 1 , wherein the probability is a function of an overflow of the net, the number of edges whose demand is equal to capacity in the spanning tree of the net, the number of iterations since the net was ripped-up and re-routed, and the number of pins of the net when the value of a second predetermined parameter is equal to one.

10. A system for global routing, the system comprising:

processing circuitry configured to

receive nets that need to be routed and capacity constraints of global routing cells,

order the nets as a function of an area bounded by pins of each net,

route the ordered nets by applying maze routing within a frame having a size as a function of the pins of a net and a first predetermined parameter,

determine whether the routing is congestion free based on the capacity constraints of the global routing cells,

select a subset of the nets based on a game theory method based on a probability of attempting to improve the spanning tree of a net when the routing is not congestion free, the probability being calculated as a function of a plurality of factors,

apply a rip-up and re-route process on the subset of the nets, and

repeat the selecting and applying steps until the routing is congestion free, and

implement a circuit based on the routing.

11. The system of claim 10 , wherein the processing circuitry is further configured to calculate a total overflow based on the overflow of all edges.

12. The system of claim 10 , wherein the rip-up and re-route process is iteratively applied to the subset of nets.

13. The system of claim 12 , wherein the rip-up and re-route process rip-up and re-route one or two nets at each iteration.

14. The system of claim 13 , wherein the processing circuitry is further configured to:

copy an existing spanning tree of the net to a temporary variable;

delete the existing spanning tree;

create a second spanning tree by applying maze routing within the frame, the frame having a size as a function of the pins of the net and the first predetermined parameter;

compare the existing spanning tree stored in the temporary variable with the second spanning tree as a function of the overflow of the existing spanning tree stored in the temporary variable, the second spanning tree, the number of edges having a demand equal to the capacity in the existing spanning tree and the second spanning tree, and a third predetermined parameter;

store, in a memory, the second spanning tree or the temporary variable based on the comparison; and

interleave the copying, deleting, creating, comparing, and storing steps between the two nets when the rip-up and re-route process is for two nets.

15. The system of claim 10 , wherein the probability is a function of the area enclosed by the pins of the net when the value of a second predetermined parameter is zero and the overflow of the net is greater than zero.

16. The system of claim 10 , wherein the probability is a function of an overflow of the net, the number of edges whose demand is equal to capacity in the spanning tree of the net, the number of iterations since the net was ripped-up and re-routed, and the number of pins of the net when the value of a second predetermined parameter is equal to one.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 8, 2015
From: SIDDIQI, UMAIR FAROOQ; SAIT, SADIQ M.
To: KING FAHD UNIVERSITY OF PETROLEUM AND MINERALS
Reel/Frame 036512/0424 →