QL: quadratic function when demand is smaller than supply; linear function when demand is greater than supply Figure 22.10e S WL a b Number of nets crossing Number of nets crossing Numbe
Trang 1TABLE 22.1 Netweighting for RISA Routability Model
Pin Count Netweight q Pin Count Netweight q
22.5.2 OVERFLOW WITHLOOK-AHEAD
Wang et al tried a number of cost functions that cover both congestion and wirelength objectives [38] Let WL be the total wirelength and OF be the total overflow of the current placement The total overflow is the sum of overflow for all the placement bins The overflow is the difference between routing demand and routing supply of the bin, if demand is larger The following seven cost functions are proposed (Figure 22.10):
1 WL: total HPWL (Figure 22.10a)
2 OF: total overflow (Figure 22.10b)
3 Hybrid:(1 − α)WL + αOF, 0 ≤ α ≤ 1 (Figure 22.10c)
4 TimeHybrid: (1 − αT)WL + αTOF, α is changing during the placement process
(Figure 22.10d)
5 QL: quadratic function when demand is smaller than supply; linear function when demand
is greater than supply (Figure 22.10e)
S
WL
(a) (b)
Number of nets crossing
Number of nets crossing
Number of nets crossing
Number of nets crossing
Number of nets crossing
S Number of
nets crossing
S
(c)
d
(d)
Cost Cost Cost
LQ
(e)
QL
(f)
(1 − )WL + aOF
Cost Cost
Cost
OF
LkAhd
S
-FIGURE 22.10 Cost function versus number of crossing nets on each global bin.
Trang 26 LQ: linear function when demand is smaller than supply; quadratic function when demand
is greater than supply (Figure 22.10f)
7 Look-Ahead: start considering congestion cost when demand is close enough to supply All these cost functions are experimented in both global placement and detailed placement stages The authors found that during global placement, none of the objectives works well except total wirelength However, in detailed placement stage, several cost functions are reasonably good and LookAhead gives the best result in terms of congestion
22.5.3 A-TREEROUTER
Chang et al integrate a fast A-tree router into a multilevel simulated-annealing global-placement engine called mPG [8] mPG is inspired by the recent success of the multilevel methods in efficiently handling bipartitioning problem [18] It consists of three stages: coarsening by clustering, initial placement on the top level, and uncoarsening with refinement The A-tree router is based on a fast, congestion avoidance two-bend router (LZ-router) The rational behind that is the dominance of LZ-shaped routes in the actual layout Multipin nets are decomposed to two-pin nets An incremental A-tree algorithm is developed to efficiently update the routing topology for any pin location change This A-tree router can be used in conjunction with HPWL at any level of refinement In practice, the authors find that it is most effective to consider routing cost at the finest level This is consistent with the conclusion in Ref [38] that minimizing congestion cost early in the placement flow may have negative effect
The cost function for congestion-driven mPG is the quadratic sum of the wire usages of all the bins The wire usage for each bin is the sum of the routed wirelength of the nets that pass through, start from, or end at this bin Unlike the overflow method, there is no threshold for routing supply in the cost function This cost function encourages the simulated annealing moves that can lead shorter
routed length and less congestion If the wire usage of a bin increases from W to W +d, the congestion cost change is d2+ 2Wd For a long wire-segment crossing multiple bins, the delta congestion cost
can be quickly computed using the sum of the current wire usages of the involved bins
22.5.4 SPARSEPARAMETER
Hu and Marek-Sadowska [16] proposed a congestion cost function named sparse parameter With this cost function, the congestion-driven placement does not follow the traditional estimate-and-eliminate strategy Instead, it tries to reduce the excessive usage of routing resources caused by local nets so that more routing resources are available for the uncertain global nets
The idea of sparse-parameter cost function originates from two facts First, the local nets that coming in/out a region vastly determine the congestion situation of the region This is verified with empirical data Second, minimizing the number of local nets alone could be wrong, because the cost is often the longer wirelength and the congestion caused by global nets The authors derive the following function as the wire cost WS(b) for a placement bin b:
i ∈LC(b)
w iBB(i)
d (i)
where
LC(b) is all the nets that enter or leave the region b
w i is the weights to translate half-perimeter length to estimated routed length for net i
BB(i) is the HPWL for net i
d (i) is the degree of net i
Once WS(b) is computed for all the bins, a mapping function is used to convert WS(b) to the sparse
parameter P (b):
Trang 3WS(b)
WSmax
WSave
WSmin
Pmin
Pave
Pmax
I II
FIGURE 22.11 Sparse function WS(b) to P(b).
P (b) = aWS(b) + b where a and b are constants obtained from three points: (WSmin, Pmin), (WSave, Pave), and (WSmax, Pmax) WSmin, WSave, and WSmax are minimum, average, and maximum WS(b) over all the
bins, respectively Pmin, Pave, and Pminare user defined values The curve of this conversion indicates
a sharper slope from WSaveto WSmax, meaning higher cost when the congestion of a region is above the average (Figure 22.11)
The above function works well when integrated in simulated annealing algorithm Particularly, the wirelength increase is negligible compared to pure half-perimeter optimization The runtime with the sparse parameter is about 2.5 or 3 times slower
Because of lack of access to real industry router, there is no detailed routing step in the experi-mental flow Consequently, the internal routes within the bin are not modeled in the cost function, because they do not contribute to the global routing results (the global router used in Ref [19] works
on bin level and ignore the internal nets) The authors suggest to use some sort of pin-density metric
to adjust the sparse parameter
22.6 CONCLUSION
In this chapter, we reviewed various techniques for reducing congestion and achieving routable designs Placement-independent techniques use information from netlist connectivity to guide logic synthesis or placement Addressing congestion in the early design has deep impact on the final design routability In global-placement stage, congestion modeling is paramount for achieving the appropri-ate distribution Pin density and fast routing estimation can be used to guide the placement engine Detailed placement stage has more accurate routing information Cell spreading, cell moving, or swapping should consider routing congestion and are very effective for allieviating local congestion
In summary, placement is the most important stage to achieve routable design Many studies have shown that congestion problem can be and should be solved in placement stage by applying the right techniques at the right place
REFERENCES
1 S N Adya, S Chaturvedi, J A Roy, D Papa, and I L Markov, Unification of partitioning, floorplanning
and placement, International Conference of Computer Aided Design (ICCAD), San Jose, CA, 2004,
pp 550–557
2 S N Adya and I L Markov, On whitespace and stability in mixed-size placement and physical synthesis,
International Conference on Computer Aided Design (ICCAD), San Jose, CA, 2003, pp 311–318.
Trang 43 S N Adya, I L Markov, and P G Villarrubia, On whitespace and stability in physical synthesis, Integration: The VLSI Journal, 39(4): 340–362, 2006.
4 C J Alpert, G -J Nam, and P G Villarrubia, Free space management for cut-based placement, Proceed-ings of the 2002 IEEE/ACM International Conference on Computer-Aided Design, San Jose, CA, 2002,
pp 746–751
5 K.D Boese, A.B Kahng, and G Robins, High-performance routing trees with identified critical sinks,
DAC, Proceedings of the 30th International Conference on Design Automation Conference (DAC), Dallas,
TX, pp 182–187, 1993
6 U Brenner and A Rohe, An effective congestion driven placement framework, Proceedings of the 2002 International Symposium on Physical Design (ISPD), San Diego, CA, pp 6–11, 2002.
7 A E Caldwell, A B Kahng, and I L Markov, Can recursive bisection alone produce routable placements?
Proceedings of the 37th Conference on Design Automation Conference (DAC) Los Angeles, CA, pp 477–
482, 2000
8 C -C Chang, J Cong, Z Pan, and X Yuan, Multi-level global placement with congestion control, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems (TCAD), 22(4):395–409, 2003.
9 T -C Chen, Y -W Chang, and S -C Lin, IMF: Interconnect-driven multilevel floorplanning for large-scale
building-module designs, Proceedings of the 2005 IEEE/ACM International Conference on Computer-Aided Design (ICCAD), San Jose, CA, pp 159–164, 2005.
10 C L Cheng, RISA: Accurate and efficient placement routability modeling, Proceedings of the
1994 IEEE/ACM International Conference on Computer-Aided Design (ICCAD), San Jose, California,
pp 690–695, 1994
11 C C N Chu FLUTE: Fast lookup table based wirelength estimation technique, Proceedings of the 2004 IEEE/ACM International Conference on Computer-Aided Design (ICCAD), San Jose, CA, pp 696–701,
2004
12 E Detjens, G Gannot, R Rudell, A Sangiovanni-Vincentelli, and A Wang, Technology mapping in MIS,
ICCAD, 1987, pp 116–119.
13 A E Dunlop and B W Kernighan, A procedure for placement of standard cell VLSI circuits, IEEE Transactions on Computer-Aided Design of Integrated Circuits, 4(1): pp 92–98, January 1985.
14 P Gopalkrishnan, A Odabasioglu, L T Pilleggi, and S Raje, Overcoming wireleoad model uncertainity
during physical design, Proceedings of the 2001 International Symposium of Physical Design (ISPD)
Sonoma, CA, pp 182–189, 2001
15 S Hojat and P Villarrubbia, An integrated placement and synthesis approach for timing closure of power
PC microprocessors, ICCD, 1997, pp 206–210.
16 B Hu and M Marek-Sadowska, Congestion minimization during placement without estimation, Proceed-ings of the 2002 IEEE/ACM International Conference on Computer-Aided Design (ICCAD), San Jose, CA,
pp 739–745, 2002
17 D Jariwala and J Lillis, On interactions between routing and detailed placement, Proceedings of the 2004 IEEE/ACM International Conference on Computer-Aided Design (ICCAD), San Jose, CA, pp 387–393,
2004
18 G Karypis, R Aggarwal, V Kumar, and S Shekhar, Multilevel hypergraph partitioning: Applications in
VLSI domain, Proceedings of the 34th Annual Conference on Design Automation (DAC) Anaheim, CA,
pp 526–529, 1997 Available at http://glaros.dtc.umn.edu/gkhome/metis/hmetis/overview
19 R Kastner, E Bozorgzadeh, and M Sarrafzadeh, Predictable routing, Proceedings of the 2000 IEEE/ACM International Conference on Computer-Aided Design (ICCAD), San Jose, CA, pp 110–114, 2000 Available
at http://www.ece.ucsb.edu/kastner/labyrinth/
20 A B Kahng and G Robins, A new class of iterative Steiner tree heuristics with good performance, IEEE Transactions on Computer-Aided Design, 11(7): 893–902, 1992.
21 A B Kahng, I I Mandoiu, and A Zelikovsky Highly scalable algorithms for rectilinear and octilinear
Steiner trees, Proceedings of the 2003 Conference on Asia South Pacific Design Automation Conference
(ASPDAC), Kitakyushu, Japan, pp 827–833, 2003
22 A Kahng and S Reda, Placement feedback: A concept and method for better min-cut placement, Proceedings
of the 41st Annual Conference on Design Automation (DAC) San Diego, CA, pp 357–362, 2004.
23 J M Kleinhans, G Sigl, F.M Johannes, and K.J Antreich, VLSI placement by quadratic programming and
slicing optimization, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,
10(3): 356–361, 1991
Trang 524 K Keutzer, DAGON: Technology binding and local optimization by DAG matching, Proceedings of the 24th ACM/IEEE Conference on Design Automation Conference (DAC) Miami Beach, FL, pp 341–347,
1987
25 S Kirkpatrick, C D Gelatt, and M P Vecchi, Optimization by simulated annealing, Science, 220 (4598):
671–680, May 1983
26 P Kudva and A Dougherty, Metrics for structural logic synthesis, Proceedings of the 2002 IEEE/ACM International Conference on Computer-Aided Design (ICCAD) San Jose, CA, pp 551–556, 2002.
27 J Lou, S Krishnamoorthy, and H S Sheng, Estimating routing congestion using probabilistic analysis,
Proceedings of the 2001 International Symposium on Physical Design (ISPD) Sonoma, CA, pp 112–117,
2001
28 C Li, M Xie, C -K Koh, J Cong, and P H Madden, Routability-driven placement and white space
alloca-tion, Proceedings of the 2004 IEEE/ACM International Conference on Computer-Aided Design (ICCAD),
pp 394–401, 2004
29 P N Parakh, R B Brown, and K A Sakallah, Congestion driven quadratic placement, Proceedings of the 35th Annual Conference on Design Automation Conference (DAC) San Francisco, CA, pp 275–278, 1998.
30 J A Roy, J F Lu, and I L Markov, Seeing the forest and the trees: Steiner wire-length optimization
in placement, Proceedings of the 2006 International Symposium on Physical Design (ISPD), San Jose, CA,
pp 78–85, 2006
31 D Pandini, L T Pileggi, and A J Strojwas, Congestion-aware logic synthesis, Proceedings of the Conference on Design, Automation and Test in Europe (DATE), p 664, 2002.
32 C Sechen, The TimberWolf3.2 standard cell placement and global routing program, User’s Guide for Version 3.2, Release 2.
33 C Sechen, Chip-planning, placement, and global routing macro/custom cell integrated circuits using
simu-lated annealing, Proceedings of the 25th ACM/IEEE Conference on Design Automation Conference (DAC),
Atlantic City, NJ, pp 73–80, 1998
34 N Selvakkumaran, P Parakh, and G Karypis, Perimeter-degree: A priori metric for directly measuring and
homogenizing interconnection complexity in multilevel placement, Proceedings of the 2003 International Workshop on System-Level Interconnect Prediction (SLIP), Monterey, CA, pp 53–59, 2003.
35 N Selvakkumaran and G Karypis, Theto-A fast, scalable and high quality partitioning driven placement tool, Technical report, University of Minnesota, 2004
36 K Takahashi, K Terai, M Nakajima, and K Sato, Min-cut placement with global objective functions for
large scale sea-of-gates arrays, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 14(4): 434–446, 1995.
37 J Vygen, Algorithms for large-scale flat placement, Proceedings of the 34th Annual Conference on Design Automation Conference (DAC), Anaheim, CA, pp 746–751, 1997.
38 M Wang, X Yang, and M Sarrafzadeh, Congestion minimization during placement, IEEE Transactions
on Computer-Aided Design of Integrated Circuits and Systems, 19(10): 1140–1148, 2000.
39 J Westra, C Bartels, and P Groeneveld, Probabilistic congestion prediction, Proceedings of the 2004 International Symposium Physical Design (ISPD), Phoenix, A2, pp 204–209, 2004.
40 X Yang, B -K Choi, and M Sarrafzadeh, Routability driven white space allocation for fixed-die
standard-cell placement, Proceedings of the 2002 International Symposium on Physical Design (ISPD) San Diego,
CA, pp 42–47, 2002
41 X Yang, B -K Choi, and M Sarrafzadeh, Routability driven white space allocation for fixed-die
standard-cell placement, IEEE Transactions on CAD, 22(4): 410–419, April 2003.
42 X Yang, R Kastner, and M Sarrafzadeh, Congestion reduction during placement based on integer
programming, Proceedings of the 2001 IEEE/ACM International Conference on Computer-Aided Design
(ISPD), San Jose, CA pp 573–576, 2001
43 X Yang, M Wang, R Kastner, S Ghiasi, and M Sarrafzadeh, Congestion reduction during placement
with provably good approximation bound, ACM Transactions on Design Automation of Electronic Systems
(TODAES), 8(3): 316–333, 2003
44 K Zhong and S Dutt, Algorithms for simultaneous satisfaction of multiple constraints and objective
opti-mization in a placement flow with application to congestion control, Proceedings of the 39th Conference
on Design Automation Conference (DAC), New Orleans, Louisiana, pp 854–859, 2002.
Trang 6Part V
Net Layout and Optimization
Trang 823 Global Routing Formulation
and Maze Routing
Muhammet Mustafa Ozdal and Martin D F Wong
CONTENTS
23.1 Introduction 469
23.2 Grid Model 470
23.2.1 Channel-Based Graph Model 470
23.2.2 Tile-Based Graph Model 471
23.3 Capacity Computation 472
23.4 Routing Metrics 473
23.4.1 Congestion 473
23.4.2 Bend Count 474
23.4.3 Wirelength 474
23.4.4 Timing 475
23.4.5 Coupling 475
23.5 Single Net Routing 475
23.5.1 Lee’s Maze Routing Algorithm 476
23.5.2 Maze-Routing Enhancements 477
23.5.3 Line-Search Algorithms 479
23.5.4 Pattern Routing 481
23.5.5 Routing Nets with Multiple Terminals 481
23.6 Routing Multiple Nets 482
23.6.1 Sequential Routing 482
23.6.2 Concurrent Routing 484
23.7 Conclusions 484
References 484
23.1 INTRODUCTION
Global routing is an important step in the physical design process Because of the complexity of the overall routing problem, it is typically solved in two steps: global routing and detailed routing During global routing, nets are routed on a coarse-grain grid structure with the objective of determining the regions within which each net will be routed After an approximate routing solution is determined for each net, the second step is to perform detailed routing to find the exact routes of all nets Because detailed routing is performed based on the global routes, the quality of the final interconnects depends largely on the quality of the global routing solutions
Typically, detailed routing grids are much larger than the coarse-grain grids of global routing, and the solution space for individual nets is much larger because of the fine-grain modeling of routing resources On the other hand, the resource model used in global routing is simplified, and the complexity of global routing one net is typically much smaller than the corresponding complexity of
469
Trang 9detailed routing Hence, global routing helps detailed routing in two ways First, the complexity of detailed routing can be reduced by confining its search space to the regions identified by the global routes Second, it is usually prohibitive to use expensive sophisticated algorithms during detailed routing because of the high problem complexity Furthermore, the order in which nets are routed can significantly impact the routing quality Hence, it is the objective of global routing to find a solution such that several metrics (such as routability, wirelength, timing) can be optimized for all nets
In this chapter, we discuss the basics of global routing formulation, and a high-level overview
of global routing algorithms The rest of the chapter is organized as follows Section 23.2 presents a global routing grid model, and Section 23.3 describes how to set the edge capacities in such a model The common objectives of global routing algorithms are discussed in Section 23.4 Section 23.5 describes algorithms to route a single net, with a particular focus on maze routing and its extensions Finally, Section 23.6 provides a high-level overview of algorithms to route multiple nets
23.2 GRID MODEL
Global routing is typically represented as a graph problem to capture the adjacencies and capacities of the routing region A channel-based global routing model has been used for many years This model
is appropriate for circuits with limited number of routing layers, where standard cells or macroblocks occupy most of the routing space However, as the number of routing layers is increasing, aggressive over-the-cell routing has become more popular in the recent years In this model, the global routing problem is represented as a grid graph In the following subsections, we describe these models in more detail
23.2.1 CHANNEL-BASEDGRAPHMODEL
A typical layout contains a set of cells or macroblocks of which terminals need to be routed to each other If the number of routing layers is small, the routing space is limited to the channels between these cells or macroblocks Figure 23.1a illustrates a set of macroblocks and the available routing resources between them The most natural representation of this routing model is a channel
intersection graph, G, where there exists a vertex v i in G corresponding to each channel intersection i, and an edge exists between vertices v i and v jif and only if there exists a channel between intersections
i and j In other words, each edge in graph G corresponds to a channel in the routing area Figure 23.1b
illustrates the graph model corresponding to the macroblocks given in Figure 23.1a
In this model, each channel c is defined to have channel capacity and channel length The
channel capacity indicates the number of nets that can use this channel without overflow, and the channel length indicates the amount of wirelength necessary to pass through this channel The global routers using this graph model include Refs [1–4] A related problem here is the assignment of feedthrough space between channels of standard cell rows with the objective of wirelength and
FIGURE 23.1 (a) Set of macroblocks and the channels between them and (b) its corresponding channel
intersection graph
Trang 10(a) (b)
FIGURE 23.2 Net with terminals on three standard cell rows The best topology of this net is illustrated
(a) without feedthroughs and (b) with feedthroughs The dark circles represent the net terminals, and the hollow circles represent the feedthrough terminals created
congestion minimization [5,6] This concept is illustrated in Figure 23.2 After the global routing is completed, detailed routing within each channel is done using a channel routing algorithm [7–12]
or a river routing algorithm [13–17]
23.2.2 TILE-BASEDGRAPHMODEL
As the number of available routing layers is increasing in the current technology, over-the-cell routing model is becoming more and more popular In this model, the lower layers that contain the cells or macroblocks are used as escape-only layers, and routing between terminals is accomplished mainly
on the upper layers Because the routing resources in the upper layers are not restricted to channels,
the layout is partitioned into rectangular regions, and a grid graph G is created as illustrated in Figure 23.3 Here, there exists a vertex in G corresponding to each rectangular tie, and edges exist
FIGURE 23.3 Circuit is partitioned into rectangular tiles (solid lines), and a grid graph is created The dark
circles and dashed lines represent the vertices and the edges of the grid graph, respectively