Method and System for Performing Global Routing on an Integrated Circuit Design

Information

  • Patent Application
  • 20090031275
  • Publication Number
    20090031275
  • Date Filed
    July 23, 2007
    17 years ago
  • Date Published
    January 29, 2009
    15 years ago
Abstract
A method for performing global routing on an integrated circuit design is disclosed. The integrated circuit design is initially divided into multiple G-cells. The G-cells are interconnected by a set of nets. The set of nets is then decomposed into corresponding wires. The wires are prerouted to interconnect the G-cells. BoxRouting is performed on the wires until all the wires are routed. Finally, postrouting is performed on the wires.
Description
BACKGROUND OF THE INVENTION

1. Technical Field


The present invention relates to circuit routing in general, and, in particular, to a method and system for performing global routing on an integrated circuit design.


2. Description of Related Art


Routing is a key stage within a very-large scale integrated circuit (VLSI) design process. Since routing directly affects interconnect properties (such as wire length, routability, etc.), routing plays a critical role in the overall performance of a VLSI design. With nanometer interconnects, the manufacturability and variability issues, such as antenna effect, copper chemical-mechanical polishing (CMP), subwavelength printability, and yield loss due to random defects, are becoming a growing concern for VLSI designers. Hence, routing also plays a major role in terms of manufacturing closure.


Global routing, as its name implies, is the stage of routing that plans the approximate routing path of each net within a VLSI design in order to reduce the complexity of routing task that is eventually performed by a detailed router. Thus, global routing has significant impacts on wire length, routability and timing. Optimizing the wire density distribution during global routing can improve overall manufacturability such as less post-CMP topography variation, less copper erosion/dishing, and less optical interference for better printability. In addition, with faster global routing, more accurate interconnect information (such as wirelength and congestion) can be fed back to placement or other early physical synthesis engines for achieving better design convergence.


Consequently, it would be desirable to provide an improved method and system for performing global routing on a VLSI design.


SUMMARY OF THE INVENTION

In accordance with a preferred embodiment of the present invention, an integrated circuit design is divided into multiple G-cells. The G-cells are interconnected by a set of nets. The set of nets is then decomposed into corresponding wires. The wires are prerouted to interconnect the G-cells. BoxRouting is performed on the wires until all the wires are routed. Finally, postrouting is performed on the wires.


All features and advantages of the present invention will become apparent in the following detailed written description.





BRIEF DESCRIPTION OF THE DRAWINGS

The invention itself, as well as a preferred mode of use, further objects, and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:



FIGS. 1
a-1b show a method of abstracting grid graphs from an integrated circuit design;



FIGS. 2
a-2b show the basic concepts of BoxRouting;



FIG. 3 is a high-level logic flow diagram of a method for performing global routing using BoxRouting, in accordance with a preferred embodiment of the present invention;



FIGS. 4
a-4b show a net decomposed into two-pin wires with Rectilinear Minimum Seiner Tree;



FIGS. 5
a-5f graphically depicts an example of global routing using BoxRouting, in accordance with a preferred embodiment of the present invention; and



FIG. 6 is a block diagram of a computer system in which a preferred embodiment of the present invention is incorporated.





DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT

The notations utilized in the present disclosure are defined as follows:

    • vi=vertex/global routing cell i
    • eij=edge between vi and vj
    • mij=maximum routing resource of eij
    • cij=available routing resource of eij


For a very-large scale integrated circuit (VLSI) design, the global routing problem can be modelled as a grid graph G(V,E), also known as a global routing cell (G-cell), where each vertex vi represents a rectangular region of the VLSI design, and an edge eij represents the boundary between vi and vj with a given maximum routing resource mij.


With reference now to the drawings and in particular to FIGS. 1a-1b, there are depicted a method of abstracting grid graphs from a VLSI design. Figure la shows a VLSI design having multiple G-cells such as G-cells 11a-11d. The objective of global routing is to find the paths that connect the pins inside the G-cells through G(V,E) for every net. The key task of a global router is to maximize the routability for successful detailed routing. Routability can be estimated by the number of overflows that serves to indicate that routing demand locally exceeds the available routing capacity. In FIG. 1b, the number of overflows between vA and vB is one because there are four routed nets and mAB=3.


Other than routing, wire length is also an important metric for placement. But wire length is less of a concern for global routing because routing all wires with a shortest path algorithm will result in minimum or near-minimum wire length. However, there can be a huge difference between solutions of the same wire length in terms of routability. Runtime is fairly significant in global routing because global routing links placement and detailed routing, and parasitic information needs to be fed to higher level of design flow for design convergence.


In accordance with a preferred embodiment of the present invention, a new global routing technique known as “BoxRouting” is utilized to perform global routing. Based on congestion-initiated box expansion, BoxRouting progressively expands a box that initially covers the most congested region only, but finally covers an entire VLSI design. After each box expansion, a circuit is divided into two sections, namely, inside the box and outside the box. BoxRouting then uses different routing strategies for each of the two sections in order to maximize routability and minimize wire length.


With reference now to FIGS. 2a and 2b, there are depicted the basic concepts of BoxRouting, in accordance with a preferred embodiment of the present invention. In FIG. 2a, wires a and b are located inside a box 20, and wires c and d are located outside box 20. The routing resource inside box 20 is more precious to wires a and b than to wires c and d for the following two reasons:

    • i. if wire a or b is not routed within box 20, wire length will be increased due to detour; and
    • ii. wires c and d may have another viable routing path outside box 20 that does not require the routing resource inside box 20.


      Therefore, BoxRouting first routes as many wires inside box 20 as possible by utilizing progressive integer linear programming (ILP) routing by maximally utilizing the routing resource inside box 20. Then, for the wires within box 20 that cannot be routed by progressive ILP (due to insufficient routing resources), BoxRouting detours them by adaptive maze routing with the following two strategies:
    • i. inside box 20: use the routing resources generously (as much as possible), as the wires inside box 20 have priority over the wires outside box 20; and
    • ii. outside box 20: use the routing resources conservatively, as the wires outside box 20 may need them later for their routing paths.


      Those two strategies, as shown in FIG. 2b, make the wire density of an integrated circuit design and help the wires detour in the more congested region in order to maximize the routability with minimum detour.


Referring now to FIG. 3, there is illustrated a high-level logic flow diagram of a method for performing global routing via BoxRouting, in accordance with a preferred embodiment of the present invention. Initially, preprocessing for BoxRouting is performed. Preprocessing for BoxRouting includes the performance of Net Decomposition, as shown in block 31, and the performance of Pre-routing and Initial Box, as depicted in block 32.


Net Decomposition can be preformed by utilizing any fast and accurate Steiner Tree algorithm that is well-known in the art. During Net Decomposition, a net can be decomposed into two pin wires with Rectilinear Minimum Seiner Tree, as shown in FIGS. 4a-4b. A special wire that does not need a bend is called a flat wire. For example, in FIG. 4b, wire a-e, wire e-d, wire e-f and wire b-f are flat wires.


The purpose of Pre-routing is for congestion estimation and for speeding up the routing process. Pre-routing simply routes as many flat wires as possible via the shortest path without creating any overflow. As the bulk of a net can be routed in simple patterns (L-shape or Z-shape), Pre-routing can improve runtime without degrading the final solution. Importantly, if there are enough wires that can be routed by Pre-routing, the global congestion view can be obtained. On an average, approximately 60% of the final wire length can be routed by Pre-routing with a very small computational overhead.


Next, BoxRouting is performed on the net. BoxRouting preferably includes three steps, namely, progressive ILP routing, as shown in block 33, adaptive maze routing, as depicted in block 34, and box expansion, as shown in block 35. The steps in blocks 33-35 are to be repeated until an expanded box covers an entire circuit.


Assuming a box is expanded from the most congested region within a VLSI design, as shown in FIG. 5a, then after an ith expansion (i.e., box i), wires within the box are represented by squares b, f and h, and other wires are represented by circles, as shown in FIG. 5b. The already routed wires, either by PreRouting or by previous BoxRouting, are depicted as solid lines in FIG. 5b. Some flat wires in FIG. 5b, such as wires f, i and k, remain to be not routed until BoxRouting when PreRouting gives up routing a wire due to any overflow or new Steiner points introduced by adaptive maze routine convert a non-flat wire into a flat wire.


As mentioned previously, only wires within the box are routed by progressive ILP and adaptive maze routing for efficient routing. In FIG. 5c, the wires within the box are shown with G-cells (i.e., vA, vB, vC and vD), and the corresponding progressive ILP formulation for maximum routability is shown as follows:





max: Xb1+Xb2+Xf1+Xf2+Xh1+Xh2





s.t: Xb1, Xb2, Xf1, Xf2, Xh1, Xh2 ε {0,1}






X
b1
+X
b2≦1






X
f1≦1, Xf20






X
h1
+X
h2≦1






X
b1
+X
f1
+X
h1
≦C
AB






X
b1
+X
h1
≦C
BD






X
b2
+X
h2
≦C
AC






X
b2
+X
h2
≦C
CD


To minimize the number of vias, two L-shape routings (xb1, xb2 and xh1, xh2) are considered for each wire in the ILP formulation, but only one routing (xf1 and xf2=0) is considered for flat wires. General progressive ILP formulation is shown as follows:



















max:
Σ{xi1 + xi2}
∀i ∈ Wbox



s.t:
xi1,xi2 ∈ {0,1}
∀i ∈ Wbox




xi1 + xi2 ≦ 1
∀i ∈ Wbox




xi2 = 0
∀i ∈ Wbox ∩ Wflat




Σe∈xi,j xij ≦ ce
∀e ∈ Wbox











where Wbox is a set of unrouted wires within the current box, and Wflat is a set of flat wires.


The present ILP approach progressively routes a part of the circuit, which is covered by each expanding box. Also, as the solution from Box i is reflected in the next routing problem of Box i+1 (Box i+1 always encompasses Box i), the progressive ILP approach provides a seamless and incremental routing. Even though the last box can cover the entire circuit, the ILP size remains tractable because ILP is performed on the wires between two boxes like between Box i and Box i+1, as shown in FIG. 5e.


However, due to the limited routing resource of each edge, some wires may not be routed with progressive ILP. For example, assuming mCD=2, wire b cannot be routed with the ILP (xb1=xb2=0) because two pre-routed wires on eCD consume all the routing resources. In this case, wire b is routed by adaptive maze routing, as shown in FIG. 5d, with the cost from an Algorithm 1 listed in Table I.












TABLE I









Input:
G-Cell X, Y, Box B



 1:
Cost C = mXY − CXY



 2:
if eXY is inside B and cXY > 0 then



 3:
  C = 1



 4:
end if



Output:
C











Algorithm 1 returns a unit cost as long as eXY is inside a box and still has available routing resource (lines 2, 3). Otherwise, it returns a cost inversely proportional to the available routing resources (line 1). This cost function makes adaptive maze routing find the shortest path inside the box for wirelength minimization, but the most idle path outside the box for routability maximization. The resource outside the box should be used conservatively because the wires outside the current box may need them later. If too big of a detour is required in order to avoid small overflows, adaptive maze routing that looks for the minimum cost path may return a routing path with overflows.


After all the wires inside the box are routed either by progressive ILP or adaptive maze routing, Box i will be expanded to Box i+1, and new wires c, d and k are encompassed by Box i+1, as shown in FIG. 5e. The result after applying BoxRouting (progressive ILP and adaptive maze routing) again, as shown in FIG. 5f. The amount of increment during box expansion significantly affects the routing solution. As the box grows larger for every expansion with bigger increment, the runtime increases exponentially due to larger ILP problem size (more wires are added into the formulation due to larger expansion). However, the smaller overflow can be obtained because the routing is performed more globally.


By each iteration of BoxRouting, all the wires in the more congested region (within the box) are routed first by progressive ILP, then by adaptive maze routing. This makes the wires outside the box detour the box because there is a lower chance of being routed through the box. Such wire detouring works like diffusing wires to the low congested area, which can improve routability at the expense of wire length.


After all wires have been routed (the box becomes large enough to cover the entire circuit), PostRouting (re-route without rip-up) is subsequently preformed, as shown in block 37 of FIG. 3.


PostRouting reroutes wires to remove unnecessary overhead with box expansion initiated from the most congested region, as done in BoxRouting. Specifically, a wire in the more congested region is rerouted first, and such rerouted wire can release the routing resource, as it may find the better routing path. Then, the surrounding wires can be rerouted with the released routing resource, potentially reducing detour and overflow again. Such a chain reaction propagates from the most congested region to less congested regions along the box expansion.


Maze routing is used for PostRouting, but with a different routing cost function via an Algorithm 2 as listed in Table II, where parameter K is introduced. The parameter K controls the tradeoffs between wirelength and routability (overflow) by setting the cost of each overflow as K. Thus, a higher K discourages overflow at a cost of wirelength increase (more detours), but a lower K suppresses detour at a cost of overflows.












TABLE II









Input:
G-Cell X, Y, Parameter K



 1:
Cost C = K



 2:
if eXY > 0 then



 3:
  C = 1



 4:
end if



Output:
C










After global routing has been completed, layer assignment can be utilized to distribute wires across various layers. Layer assignment generally affects several design objectives, such as timing, noise, and manufacturability, but the present embodiment of layer assignment mainly focuses on via minimization without altering routing topology. The present via-aware layer assignment inherently differs from the prior art layer assignment, such as constrained via minimization (CVM), in two aspects. First, multiple wires can be overlapped where there are enough routing capacities between G-cells (CVM does not allow wire overlapping due to DRC). Second, wires can be split into multiple pieces to avoid blockages (CVM cannot).


An ILP for via-aware layer assignment is shown as follows:


















max:
ΣiΣs∈P(i)(Tis − Bis)












s.t:
(a)
zijk ∈ {0,1}
∀i,j,k




(b)
Σkzijk = 1
∀i,j,k




(c)
Σk k·zijk = 1ij
∀i,j,k




(d)
Bis ≦ 1ij ≦ Tis
∀(i,j) ∈ W(i,s)




(e)
Bs = M1
∀s ∈ N(i)




(f)
Σ(i,j,k)∈C(e) zijk ≦ re
∀e











where
    • W(i,s)=a set of wires of a net i passing a point s (including pins)
    • P(i)=a set of points in a net i
    • N(i)=a set of pins in a net i (N(i)P(i))
    • C(e)=a set of wires crossing an edge e
    • re=available routing capacity of an edge e
    • zijk=a binary variable set to 1 if a wire j of a net i is assigned k layer
    • lij=layer assigned to a wire j of a net i
    • Tis=top layer assigned to any wire on a point s ε P(i)
    • Bis=bottom layer assigned to any wire on a point s ε P(i)


The objective of via-aware layer assignment is to minimize the difference between a top layer and a bottom layer used by wires of each net for each point. The constraint (b) is to assign a wire j of a net i to one of the layers. lij of the constraint (c) is computed by the combination of zijk. Then, Tis and Bis are captured by the constraint (d). If there is a pin on s, the Bis is set as M1 in the constraint (e). Finally, all the layer assignment cannot violate the capacities of all the edges by the constraint (f). Although the ILP formulation can optimally minimize the number of vias during layer assignment, it has two drawbacks:

    • i. depending on blockage locations, the formulation can be infeasible, and
    • ii. ILP inherently cannot be applied for large designs.


Since the exact layer information on blockages is diluted in a two-dimensional (2D) global routing, the layer assignment based on the 2D routing result may not be feasible. The infeasible issue can be addressed by chopping wires, wherever a blockage exits, but this may result in not only unnecessary vias but also too many variables in ILP. Therefore, it is better to break a wire only if needed.


ILP is computationally expensive, as most solvers use branch-and-bound algorithm. Thus, in order to apply ILP to industrial designs, the problem size should be tractable, while maintaining he global view. Box expansion and progressive ILP formulation can be applied to layer assignment. The core idea of progressive ILP is to start with a minimal box covering the most congested region. Then, the problem inside the box (i.e., layer assignment) is solved by ILP. But, since the current problem encloses the previous problem (which has been solved), the actual problem is limited down to routing only the wires between two consecutive boxes, which in turn makes problem size tractable.


With reference now to FIG. 6, there is depicted a block diagram of a computer system 60 in which a preferred embodiment of the present invention is incorporated. As shown, a processor 62, a read-only memory (ROM) 63, and a random access memory (RAM) 64 are connected to a system bus 61. Processor 62, ROM 63, and RAM 64 are also coupled to a peripheral component interconnect (PCI) bus 70 of computer system 60 through a PCI host bridge 66.


In addition, an audio adapter 73 and a graphics adapter 71 may be attached to PCI bus 70. Graphics adapter 71 controls visual output through a video monitor 72 and audio adapter 70 controls audio output through a speaker 74. Also attached to PCI bus 70 is a communications adapter 65 and a small computer system interface (SCSI) 68. Communications adapter 65 connects computer system 60 to a local-area network (LAN) 67. SCSI 68 is utilized to control a high-speed SCSI disk drive 69. Expansion bus bridge 79, such as a PCI-to-ISA bus bridge, may be utilized for coupling an industry standard architecture (ISA) bus 75 to PCI bus 70. As shown, a keyboard 76 and a mouse 78 are attached to ISA bus 75 for performing certain basic I/O functions.


As has been described, the present invention provides a method and system for performing global routing of a VLSI design.


It is also important to note that although the present invention has been described in the context of a fully functional computer system, those skilled in the art will appreciate that the mechanisms of the present invention are capable of being distributed as a program product in a variety of forms, and that the present invention applies equally regardless of the particular type of signal bearing media utilized to actually carry out the distribution. Examples of signal bearing media include, without limitation, recordable type media such as compact disks and transmission type media such as analog or digital communications links.


While the invention has been particularly shown and described with reference to a preferred embodiment, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention.

Claims
  • 1. A method for performing global routing on an integrated circuit design, said method comprising: dividing said integrated circuit design into a plurality of G-cells, wherein said plurality of G-cells are interconnected by a plurality of nets;decomposing said plurality of nets into a plurality of corresponding wires;prerouting said wires to connect said plurality of G-cells;performing BoxRouting on said wires until all wires are routed; andperforming postrouting on said wires.
  • 2. The method of claim 1, wherein said BoxRouting includes progressive ILP routing, adaptive maze routing, and box expansion.
  • 3. The method of claim 1, wherein said BoxRouting progressively expands a box that initially covers the most congested region of said integrated circuit design to eventually covers entire said integrated circuit design.
  • 4. The method of claim 2, wherein said method further includes dividing a circuit into two sections after each of said box expansion, namely, inside box and outside box;routing as many wires inside box as possible via progressive integer linear programming (ILP) routing; anddetouring wires within box that cannot be routed by progressive ILP via adaptive maze routing.
  • 5. The method of claim 4, wherein said adaptive maze routing further includes utilizing the routing resources generously inside box as the wires inside box have priority over wires outside box; andutilizing routing resources conservatively outside box as the wires outside box.
  • 6. The method of claim 1, wherein said Net Decomposition is preformed by utilizing a Steiner Tree algorithm.
  • 7. The method of claim 1, wherein said Net Decomposition decomposes a net into two pin wires with Rectilinear Minimum Seiner Tree.
  • 8. A computer usable medium having a computer program product for performing global routing on an integrated circuit design, said computer usable medium comprising: program product code for dividing said integrated circuit design into a plurality of G-cells, wherein said plurality of G-cells are interconnected by a plurality of nets;program product code for decomposing said plurality of nets into a plurality of corresponding wires;program product code for prerouting said wires to connect said plurality of G-cells;program product code for performing BoxRouting on said wires until all wires are routed; andprogram product code for performing postrouting on said wires.
  • 9. The computer usable medium of claim 8, wherein said BoxRouting includes progressive ILP routing, adaptive maze routing, and box expansion.
  • 10. The computer usable medium of claim 8, wherein said BoxRouting progressively expands a box that initially covers the most congested region of said integrated circuit design to eventually covers entire said integrated circuit design.
  • 11. The computer usable medium of claim 9, wherein said computer usable medium further includes program product code for dividing a circuit into two sections after each of said box expansion, namely, inside box and outside box;program product code for routing as many wires inside box as possible via progressive integer linear programming (ILP) routing; andprogram product code for detouring wires within box that cannot be routed by progressive ILP via adaptive maze routing.
  • 12. The computer usable medium of claim 11, wherein said program product code for adaptive maze routing further includes program product code for utilizing the routing resources generously inside box as the wires inside box have priority over wires outside box; andprogram product code for utilizing routing resources conservatively outside box as the wires outside box.
  • 13. The computer usable medium of claim 8, wherein said Net Decomposition is preformed by utilizing a Steiner Tree algorithm.
  • 14. The computer usable medium of claim 8, wherein said Net Decomposition decomposes a net into two pin wires with Rectilinear Minimum Seiner Tree.