In this model, edge capacities are set based on the number of routing tracks available passing through the tile boundaries, as will be discussed with more detail in Section 23.3.. A comm
Trang 1(a) (b)
FIGURE 23.4 (a) Three-dimensional grid model for a three-layer circuit and (b) its corresponding grid graph,
where solid lines represent intralayer connections and dashed lines represent interlayer connections
in G between vertices that correspond to neighboring ties Here, each terminal is assumed to lie at
the center of the grid cell that contains the terminal
In this model, edge capacities are set based on the number of routing tracks available passing through the tile boundaries, as will be discussed with more detail in Section 23.3 If a two-dimensional grid model is used (as in Figure 23.3), the routing tracks on every layer are lumped together to compute edge capacities On the other hand, a three-dimensional grid graph can capture the characteristics
of different layers more accurately For example, there can be routing blockages on specific layers, and different layers can have different wire width and spacing requirements based on the technology being used Although the three-dimensional grid model can capture the capacity differences in different layers, it requires layer assignment to be performed during global routing Figure 23.4 illustrates a three-dimensional grid graph, where each layer has either horizontal or vertical preferred orientation Observe here that there are only horizontal edges on a horizontal layer, and only vertical edges on a vertical layer The global routing algorithms using tile-based graph model include Refs [18–25]
23.3 CAPACITY COMPUTATION
As discussed earlier, a graph model G is used for global routing to capture the adjacencies and the capacities of the routing regions Let u and v represent two vertices in G, corresponding to two adjacent routing regions The capacity of the edge e ∈ G between u and v is set so as to reflect the
available routing resources between the corresponding routing regions A common capacity metric
for edge e is the number of available routing tracks between the routing regions corresponding to u and v In other words, capacity of e reflects the number of nets that can be routed between u and v.
It is also possible to extend this simple track-based capacity metric to consider specific locations
of blockages, pins, and preroutes Furthermore, for the three-dimensional graph model described
in Section 23.2.2, the routing resources consumed by the utilized vias can be modeled as well For example, in Refs [26,27], three types of edge capacities are defined: wiring capacity, through capacity, and interlayer capacity The wiring capacity is computed by dividing the routing tile into slices based on the available routing resources, as shown in Figure 23.5 Then, the width(W i ) and
the depth(D i ) of each slice i is computed Based on these, the wiring capacity is simply defined
as i (W i × D i )/D, where D is the depth of the tile Similarly, the through capacity is based on the
number of nets that can pass straight through the tile It is computed as the sum of(W i × D i ) values for each slice i that spans the entire tile (i.e., D = D) Finally, interlayer capacitance corresponds to
Trang 2D1
D3
D4
D5
D
W1
W2
W3
W4
W5
FIGURE 23.5 Capacity estimation model Here, Wi and Di represent the width and depth of slice i in the given tile (From Cong, J., Fang, J., and Khoo, K -Y., IEEE Trans Comput.-Aided Des Integr Circuits Syst.,
20, 633, 2001; Cong, J., Fang, J., Xie, M., and Zhang, J., IEEE Trans Comput.-Aided Des Integr Circuits Syst., 24, 382, 2005.)
the number of vias that can be created within the tile, and is computed as the sum of empty spaces
in the tile
In practice, high-precision capacity estimation can be complex, especially in the presence of arbitrary preroutes, varying wire pitches, and complex design rules Furthermore, it can also be necessary to model the effect of interlayer connections (i.e., vias) on the horizontal/vertical wire capacities during global routing In general, considering different factors during capacity estimation can lead to better correlation between global routing and detailed routing in the expense of increased algorithmic complexity
23.4 ROUTING METRICS
The key objective of global routing is to maximize routability in the consequent detailed routing step, while satisfying various routability constraints In this section, we give an overview of the commonly used global routing metrics
23.4.1 CONGESTION
As described in Section 23.3, each global routing tile has a specific capacity If the total resource usage of the nets assigned to a tile is more than its capacity, then the tile is defined to be congested Clearly, the detailed router will not be able to route all the nets assigned to a congested tile because
of lack of routing resources However, in practice, detailed routers typically can tolerate some degree
of congestion by spreading the wires to nearby not congested tiles, if any
A good congestion metric needs to consider not only the edge capacities, but also through capacities, as described in Section 23.3 Furthermore, an even spread of congestion throughout the routing region usually leads to better detailed routing solutions
Typically, global routers assign higher costs for congested-routing resources to discourage nets using these resources For an even spreading of congestion throughout the routing region, some
Trang 3Demand Capacity 1
Demand Capacity 1
FIGURE 23.6 (a) Congestion cost function that penalizes congested resources only and (b) congestion cost
function that promotes an even spreading of congestion
routers use cost functions that are linear functions of resource usage [20,28,29] These cost functions are reported [20] to give better results than step functions, which only penalize congested resources Figure 23.6 illustrates sample cost functions corresponding to these two types
23.4.2 BENDCOUNT
As described in Section 23.2, each interconnect layer is used for either horizontal or vertical connections If a routing path makes a change in its direction (e.g., from horizontal to vertical), this necessitates a layer change, as illustrated in Figure 23.7 So, each bend in a routing path indicates the need for the usage of a via, which connects adjacent interconnect layers Typically, vias are unde-sirable because of their negative effects on signal integrity, delay, routing area, and manufacturing yields Hence, a good global router needs to minimize the number of bends in the routing paths
23.4.3 WIRELENGTH
Another important metric for global routing is wirelength minimization Increased wirelengths typ-ically imply larger power consumption and larger delays Although routing nets with the minimum wirelengths are desirable, a global router may need to introduce detours to avoid blockages or congested regions
Inherently, congestion minimization metrics can conflict with the wirelength and bend-count minimization metrics, as illustrated in Figure 23.8 So, the trade-off between these metrics should
be carefully tuned based on the requirements of the global router
FIGURE 23.7 (a) Bend in a routing path is illustrated in the two-dimensional grid model and (b) the via
corresponding to the bend is illustrated in the three-dimensional grid model
Trang 4(a) (b)
Low-congestion area High-congestion area
FIGURE 23.8 Two possible configurations for a routing segment: (a) minimum wirelength, increased
con-gestion and (b) increased wirelength, minimum concon-gestion
23.4.4 TIMING
Timing optimization can be another important metric for high-speed designs Typically, the critical nets are identified, and certain timing bounds are imposed on critical connections These connections are then prioritized so that they can use faster resources, and scarce resources in the congested areas Furthermore, some restrictions can be imposed on the maximum detours introduced while routing the critical connections
23.4.5 COUPLING
Because of the scaling down of device geometry and increasing clock frequencies, detrimental effects
of coupling capacitances are becoming more significant Coupling capacitance between two wires
is proportional to the amount of parallel overlap between them, and inversely proportional to the distance between them Avoiding coupling during global routing can be important for coupling management in general Figure 23.9 [22] illustrates two configurations of a set of connections with and without coupling Zhou and Wong [30] propose a Lagrangian relaxation-based methodology to minimize coupling during global routing
23.5 SINGLE NET ROUTING
In this section, we focus on the problem of global routing of a single net Given a global routing grid with possible blockages, the objective is to find the best routing solution for one net In Section 23.5.1,
(b) (a)
FIGURE 23.9 (a) Layout with coupling owing to long parallel wires and (b) layout with no coupling.
Trang 5designs, several enhancements have been proposed in the literature, as discussed in Section 23.5.2 Inherently, maze routing algorithms are based on searching a path as a sequence of grid points Another class of routing algorithms represent the paths as a sequence of line segments for the purpose
of efficient execution These line-search algorithms are described in Section 23.5.3 Another class of algorithms simplify the routing solution space to certain patterns such as I-, L-, and Z-shaped routes for the purpose of further speedup, as discussed in Section 23.5.4 For simplicity of the presentation, these algorithms are described in the context of nets with two terminals In Section 23.5.5, we outline typical approaches to handle nets with multiple terminals
23.5.1 LEE’SMAZEROUTINGALGORITHM
Lee’s algorithm [31] is one of the earliest routing algorithms proposed for automated wire routing
It is basically an extension of Moore’s shortest path algorithm [32] to a uniform grid structure The
basic algorithm operates on a single two-terminal net n, and a uniform grid G, which can have some
of its cells specified as blockages It is guaranteed to find a path between the terminals of the nets, and this path is guaranteed to be the shortest possible
The algorithm consists of two main phases In the first phase, a wavefront is expanded from one
of the terminals, as illustrated in Figure 23.10a As the first step, the immediate neighboring cells
of the terminal are marked with label 1 Then, at every step i (i > 1), the unmarked neighbors of the cells that were marked with label L at step i − 1 are marked with label L + 1 This process continues
until the wavefront reaches the target terminal Once the target terminal is found, the shortest path
is constructed by backtracking in the second phase of the algorithm, as shown in Figure 23.10b The backtracking operation starts with the target cell, and continues iteratively until the source cell
(a)
S
T
1
1
1
1
2
2
2
2
2
2
2
2 3
3
3
3
3
3
3 3 3 3
3
3
4
4
4
4
4
4
4
4
4
4 4 4 4 4 4
5
5
5
5
5
5
5
5
5
5 5 5 5 5 5 5 5
6
6
6
6
6
6 6 6 6 6 6 6 6
6
6
6
6
6
7
7
7
7
7 7 7 7 7 7 7 7 7
7
7
7
7
7
8
8
8 8 8 8
8 8 8 8 8
8
8
8
8
8
8
9 9
9
9
9
9
9
9
9 9 9 9 9 9 9 9 9
10 10 10 10 10 10
10 10 10
10
10
10
10
10
10 10
11 11
11 11 11
11 11
11 11 11 11 11
11
11
11
11
11
12 12 12 12 12
12
12 12
12 12 12 12
12
12
12
12
13 13 13 13
13
13 13 13 13 13 13 13
13
13
14 14 14
14 14
14 14 14 14 14 14 14
15 15 15 15 15 15 15
15 15
1
1 1 1 2 2
2 2 2
2 2
2 3
3
3 3 3 3 3 3 3 3
3 3
4 4 4 4
4 4 4 4 4 4 4 4 4 4 4
5 5 5 5
5 5 5 5 5 5 5 5 5 5 5 5 5
6 6 6 6
6 6 6 6 6 6 6 6 6
6 6 6 6 6
7 7 7
7 7 7 7 7 7 7 7 7 7
7 7 7 7 7
8 8
8 8 8 8
8 8 8 8 8
8 8 8 8 8
8
9 9
9 9 9 9 9 9
9 9 9 9 9 9 9 9 9
10 10 10 10 10 10
10 10 10
10 10 10 10 10 10 10
11 11
11 11 11
11 11
11 11 11 11 11 11 11 11 11
11
12 12 12 12 12
12
12 12
12 12 12 12 12 12 12
12
13 13 13 13
13
13 13 13 13 13 13 13
13 13
14 14 14
14 14
14 14 14 14 14 14 14
15 15 15 15 15 15
15 15 15
S
T
(b)
FIGURE 23.10 Two phases of maze routing algorithm are illustrated: (a) wave expansion and (b) backtracking.
The source and target terminals are marked as S and T , respectively.
Trang 6is reached At one step, if the current cell c has label L, then backtracking continues with one of the neighbors of c that has label L− 1 If there are multiple neighbors with the same label, then a practical guideline for tie-breaking is to select the neighbor that will cause no change in the direction
of the path (if any) This heuristic tends to choose the shortest paths with reduced bend counts
23.5.2 MAZE-ROUTING ENHANCEMENTS
The worst-case time complexity of the original maze routing algorithm is O (N × M), where N and
M are the height and width of the grid, respectively Several enhancements have been proposed in the
literature to reduce the practical runtime and memory requirements of this algorithm Furthermore, some generalizations of the problem formulation have been proposed to extend its application areas Some straightforward speedup techniques have been proposed [33] to reduce the runtime of the original algorithm with only small modifications One of them is the selection of the starting point
of the wave propagation If we start expanding the wavefront from the terminal that is closer to the circuit boundary, then the area of wave propagation will tend to be smaller Another technique is
to expand the wavefront from both terminals simultaneously until two wavefronts meet each other This also reduces the number of grid points visited during wave propagation Another heuristic is to define an artificial bounding box on the search region, and to allow wavefront expansion only within this bounding box
For the purpose of reducing the memory requirements of maze routing, Akers [34] proposed
some coding schemes for cell labeling In the original algorithm, k bits are necessary to represent a cell label, where k = lg(N × M), because the maximum label can be as large as N × M However,
it is possible to make the following observation During backtracking, path computation is done
by iteratively visiting the predecessor of each cell, starting from the target cell Hence, it is only
necessary to distinguish two types of neighbors for each cell C: the predecessors and the successors
of C As long as the predecessors of C can be distinguished from the successors of C, we do not
need to store the labels of the cells In the coding scheme proposed by Akers, the following sequence
is used to label the cells during wavefront expansion phase: 1, 1, 2, 2, 1, 1, 2, 2, ., as illustrated in Figure 23.11a Observe that the predecessor of each cell C is labeled different from the successor of cell C During backtracking, the same sequence is used to construct the path from target to source,
as illustrated in Figure 23.11b In this coding scheme, only two bits need to be stored for each cell, representing four states: empty, blocked, 1, and 2 This can reduce the memory requirements of the algorithm significantly especially for large circuits
Some other heuristics involve manipulation of the direction of the wavefront propagation
Hadlock’s minimum detour algorithm [35] uses a variant of A∗ search algorithm [36] to reduce
the size of the search space It is straightforward to show that the length of path P between nodes
A and B is equal to M (A, B) + 2d(P), where M(A, B) is the Manhattan distance between A and B, and d (P) is the detour number for path P (i.e., the number of cells directed away from target B).
S
T
1 1 1 1
1 1
1
2 2
2 2
2
2 1
1 1 1
1 1
1
1
1
1
S
T
1 1 1 1
1 1
1
2 2
2
2 1
1
1 1
1
1
1 1
(b) (a)
FIGURE 23.11 Coding scheme proposed by Akers is illustrated: (a) wavefront expansion and (b) backtracking.
Trang 7Based on this observation, Hadlock’s minimum detour algorithm uses the detour numbers as the cell labels, and the cells with smaller detour numbers are expanded before the cells with higher detour numbers Wavefront expansion phase of this algorithm is illustrated in Figure 23.12a with an example The worst-case time complexity of this algorithm is the same as the original maze-routing algorithm; however, it is significantly faster in practice Also, it is guaranteed to find the shortest path if one exists
Another algorithm that improves the runtime of the original maze-routing algorithm is Soukup’s fast maze algorithm [37] In this algorithm, search is conducted iteratively in two different phases
In the first phase, wavefront expansion is done toward the target without changing direction until an obstacle is reached Once an obstacle is reached, the second phase begins In this phase, the same wavefront expansion methodology as the original maze-routing algorithm is used to search around the obstacle Once a cell in the direction of the target is found, the first phase begins again for a directed search toward the target Basically, this algorithm combines depth-first search (first phase) and breadth-first search (second phase) as an effective heuristic for wavefront propagation Wavefront expansion phase of this algorithm is illustrated in Figure 23.12b with an example, where the edges expanded in the first phase are highlighted This algorithm is guaranteed to find a path from source
to target if one exists; however, the path found is not guaranteed to be the shortest one Although the worst-case running time of this algorithm is still the same as the original algorithm, significant reduction of runtimes can be obtained in practice The reason can be observed by comparing the sizes of the search spaces in Figures 23.10 and 23.12
Maze routing algorithms can also be generalized to multilayer problems in a straightforward way The basic idea is to model the routing resources as a three-dimensional grid (as in Section 23.2.2),
(a)
S
T
0
0
0
0
0
0 0 0 0 0
0
0 0 0
0
0
0
0
0
1
1
1
1
1
1
1
1 1 1
1
2 2 2 2
2
2
2
2
2
2
2
2
2
2
2 2 2
2 2
2 2 2
2 2
2 2
(b)
S
T
FIGURE 23.12 Wavefront expansion phases of (a) Hadlock’s minimum detour algorithm and (b) Soukup’s
fast maze algorithm are illustrated from source S to target T
Trang 8T
1
7
0
6 4
0
1 1
2
2 3
8
4 4
9 10
5
5 5
10
6 6
11 7
10
7 3
6
7
8 8 8 12 9
9
9
FIGURE 23.13 (a) Routing grid with different weights assigned to each cell, (b) wave expansion from source
S reaches target T the first time with cost 11, and (c) further expansion of the wavefront reduces the cost of the target cell T from 11 to 9.
and to perform wave expansion in all three dimensions at each step Note here that an edge in the third dimension corresponds to layer change, and can be assigned a higher cost to discourage via usage As mentioned in Section 23.2.2, typically each layer is assigned one of the horizontal or vertical orientations for routing For such designs, wave expansion on each layer can be limited to either horizontal or vertical orientations at each step
It is also possible to perform weighted path computations using maze routing algorithms As discussed in Section 23.4, some paths can be more preferable than others because of various rout-ing metrics, such as congestion minimization For the purpose of incorporatrout-ing different routrout-ing objectives into path computations, different edges in the routing graph can be assigned different costs For instance, an edge passing through a congested region can be assigned a higher cost In its original form, the maze routing algorithm does not guarantee to find the path with the minimum cost, because it is possible that a longer path can have smaller total cost An example is illustrated
in Figure 23.13 In Figure 23.13a, different weights are assigned to each grid cell based on a given metric In Figure 23.13b, the wave expanded from the source reaches the target cell the first time Note here that, if wave expansion is stopped as soon as the target is reached, then the path found will have a total cost of 11 However, if wave expansion is allowed to continue as in Figure 23.13c, then the path found will have a total cost of 9 In the original maze-routing algorithm, each cell is labeled
at most once during wave expansion In case of weighted routing edges, cells can be labeled multiple
times, and the original worst time complexity of O (N × M) is not guaranteed anymore for an N × M
grid An efficient methodology to handle this issue is to prioritize cells during wave expansion based
on their labels Typically, a priority queue is used to expand the cells with the smallest labels at each step This approach is actually a special case of Dijsktra’s shortest path algorithm [38], and
its worst-case time complexity is O [N × M log(N × M)] In practice, the well-known A∗heuristic methodology [36] can further reduce the average runtime requirements of this algorithm
23.5.3 LINE-SEARCH ALGORITHMS
The main idea behind the line-search algorithms is to represent the routing search space as a set of line segments instead of grid points This feature makes it possible to reduce memory and runtime requirements, compared to the maze routing algorithms, which typically need to allocate memory for each grid point The first line-search algorithms were independently proposed by Mikami–Tabuchi [39] and Hightower [40] with small variations
An example illustrating Mikami–Tabuchi algorithm is given in Figure 23.14a The algorithm starts with expanding one horizontal and one vertical line segment from each of the source and target points After that, line expansion continues iteratively until one of the line segments originating from
Trang 9S
T
S
T
(b)
FIGURE 23.14 Illustration of the line-search algorithms proposed by (a) Mikami–Tabuchi and (b) Hightower.
The dark circles represent the originating points of the line segments created The path computed between source
S and target T is highlighted.
the source point intersects with one of the line segments originating from the target point In each iteration, potential expansion points (represented as dark circles in Figure 23.14a) are identified on the most recently expanded line segments; then perpendicular line segments are created originating from these points Once a line segment originating from the source intersects with a line segment originating from the target, the path is constructed by backtracking from the intersection point to the source and the target points It is shown that this algorithm is guaranteed to find a path if one exists, and the path found is guaranteed to have the minimum possible number of bends
Observe that each grid point on a line segment created in Mikami–Tabuchi algorithm is a potential expansion point for new line segments Hightower algorithm [40] differs from Mikami–Tabuchi algorithm in the way it chooses potential expansion points for the line segments Instead of expanding
a new line segment on each candidate point, Hightower algorithm identifies escape lines on the most recently created line segments based on the positions of the blockages This algorithm is illustrated
in Figure 23.14b Observe that only the line segments that are extendable beyond the obstacle that blocked the previous line segment are considered as candidates in this algorithm Compared to Mikami–Tabuchi algorithm, fewer line segments are generated However, Hightower algorithm does not guarantee to find a path even if it exists, because the solution space is not explored completely Typically, line-search algorithms are effective in minimizing the number of bends, and they do not guarantee shortest paths The main assumption behind these algorithms is that routing can be accomplished with relatively few bends (hence few line segments) so that memory and runtime requirements are small This is especially true for problems with low congestion and few number of blockages However, if the routing problem is complicated, line-search algorithms run slower, and typically require more memory and runtime than maze routing algorithms Furthermore, some class
of line-search algorithms (e.g., Hightower algorithm [40]) do not guarantee to find a feasible path even if one exists Because of their nature, line-search algorithms are more preferable early in the routing process when there are relatively fewer blockages in the design
Trang 10FIGURE 23.15 Some routing patterns with 0, 1, and 2 bends are illustrated.
23.5.4 PATTERN ROUTING
As discussed in Section 23.5.3, representing the routing solution space as a set of line segments can potentially reduce memory and runtime requirements A more aggressive approach is to restrict the solution space to routes with predefined patterns, such as I-, L-, Z-, and U-shaped patterns In general, routing patterns can be defined based on the number of bends on them Figure 23.15 illustrates some patterns with 0, 1, and 2 bends
Because the objective of global routing is to generate rough routing solutions for the nets, pattern routing can be effectively used in global routing to reduce the runtime requirements For example,
in the experiments of Ref [24], it is reported that on average about 2 percent of the nets are routed with maze routing, while the rest of the nets are routed with pattern routing Yet, about 48 percent
of the total runtime is spent on maze routing In general, it is an effective heuristic to use pattern routing for the nets that have feasible few-bend solutions, and maze routing for the nets that require larger number of bends
23.5.5 ROUTING NETS WITH MULTIPLE TERMINALS
In the previous subsections, we mainly focused on routing algorithms for two terminal nets However,
it is possible to use these algorithms in the context of routing nets with multiple terminals Note that the problem of finding the optimal route for a multiterminal net is an NP-complete problem However, there are several heuristic-based algorithms that are used frequently in practice, as will be described
in more detail in Chapter 24 A typical approach to route a multiterminal net N consists of two main steps: (1) generate a Steiner topology T for the terminals of net N and (2) perform point-to-point routing between the terminals and Steiner points of topology T This two-step approach is illustrated
in Figure 23.16 with an example
Another practical approach is to apply maze routing algorithm iteratively between terminal pairs
of the net Typically, wave expansion starts from the driver terminal Td until a receiver terminal Tr
is reached Then, the route between Td and Tr is implemented by backtracking, as in the original
maze-routing algorithm After that, the route between Td and Tr is regarded as the new source of
C
A
C
A
S
S
FIGURE 23.16 (a) Steiner topology is generated for a net with three terminals: A, B, and C, where S is a
Steiner point and (b) final routing solution is obtained by point-to-point routing between A–S, S–B, and S–C.