Download presentation
Presentation is loading. Please wait.
Published byIsaac King Modified over 8 years ago
1
6/5/2016 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Detailed Routing (III)
2
2 6/5/2016 Channel/Switch Box Routing Algorithm aGraph theory based algorithm Yoshimura and Kuh aGreedy algorithm Rivest and Fiduccia aMaze routing and its variations Lee, Robin, Soukup, Ohtsuki aHierarchical wire routing Burstein and Pelavin Channel routing Channel / switchbox and general area routing
3
3 6/5/2016 Over-the-Cell Routing Channel width can be reduced if some nets can be routed outside the channel. The metal layers available over the cell rows can be used for routing. (It is possible due to the limited use of the M2 metal layer within the cells.) Commonly used in standard-cell design.
4
6/5/2016 4 Two-Layer Over-the-Cell Router “Over-the-Cell Channel Routing”, J. Cong and C. L. Liu, TCAD, pages 408-418, 1990.
5
5 6/5/2016 Boundary Terminal Model (BTM) Terminal Rows VDD GND
6
6 6/5/2016 The Routing Problem Boundary Terminal Model (BTM) Two routing layers in the channel. One routing layer for over-the-cell routing, so the routing must be planar. 2 1525434351 1 4153656332
7
7 6/5/2016 Hyper-terminal A Hyper-terminal is a set of terminals connected by over- the-cell wires. 21 52 5 4 3435 1 14153656332 A Hyper-terminals: {L}, {M,O}, {N}, {P}, {Q,U,V}, {R,T}, {S} BCDEFGHIJK MNOPQRSTUVL Hyper-terminals: {A,C}, {B}, {D,F,K}, {E}, {G,I}, {H}, {J}
8
8 6/5/2016 Three Steps of the Algorithm Routing over the cells. Select a net segment from each multi-terminal net to be connected in the channel. Routing in the channel.
9
9 6/5/2016 Routing Over the Cells Reduced to a Multi-Terminal Single-Layer One-Sided Routing Problem (MSOP). Solved by dynamic programming.
10
10 6/5/2016 MSOP The fewer the number of hyper-terminals resulted, the simpler the subsequent channel routing problem. Routing a row of terminals using a single routing layer on one side of the row such that the number of hyper- terminals is minimized. 2 1525434351 ? Can you give a solution for this instance?
11
11 6/5/2016 MSOP Can be solved by dynamic programming. Consider the sub-problem from column i to j. Let M(i, j) be the maximum reduction in the number of hyper- terminals from i to j. i i+1 j No nets at i or the net is not connected to [i,j] i i+1 j Net p p1p1p1p1 p2p2p2p2 Case 1: M(i, j) = ??? Case 2: M(i, j) = ???
12
12 6/5/2016 MSOP i i+1 j No nets at i or the net is not connected to [i, j] i i+1 j Net p p1p1p1p1 p2p2p2p2 Case 1: M(i, j) = ??? Case 2: M(i, j) = ??? Putting the two cases together: M(i, j) = ???
13
13 6/5/2016 MSOP Algorithm Let n be the total number of pins on the row. MSOP algorithm: For i = 1 to n M(i, i) = 0; For j = ?? to ?? For i = ?? to ?? Compute M(i, i+j) Return M(1, n)
14
14 6/5/2016 Runtime of MSOP Let n be the total number of columns. For each (i, j), M(i, j) can be found in O(?) time. There are O(n 2 ) pairs of (i, j). So: Total time = O(?)
15
15 6/5/2016 Selection of Net Segment Need to determine which terminal within a hyper- terminal to be used in the subsequent channel routing. Can be transformed to a special spanning forest problem. 11 1 1 Pick one out of four
16
16 6/5/2016 Connectivity Graph A weighted multi-graph. Each hyper-terminal is represented by a vertex and each net is re-presented by a connected component.[8,10] [6,8] [8,10] [8,11] [6,10] [10,10] [10,11] 31313131 32323232 33333333 a connected component 2 15254343 5 1 1 4153656332 2 345678910111 Take net 3 as an example: column
17
17 6/5/2016 Minimum Density Spanning Forest Problem (MDSFP) Want to connect hyper-terminals of the same net together. That is, finding a spanning tree for each connected component, or finding a spanning forest for the whole connectivity graph. The goal is to minimize the channel density. This problem is NP-Complete. Efficient heuristic is proposed.
18
18 6/5/2016 Heuristic for MDSFP For each edge e, let r(e) = d(e)/D, where d(e) is the density of the interval associated with edge e and D is density of the whole channel. r(e) measures the relative degree of congestion over the interval associated with e. The heuristics repeatedly removes edges of high r() from the connectivity graph until a spanning forest is obtained. The value of r(e) for each edge e is updated after each removal.
19
19 6/5/2016 Via Minimization In VLSI fabrication, the yield is inversely related to the number of vias. Every via has an associated resistance that affects the circuit performance. The size of a via is usually larger than the width of a wire. As a result, more vias will lead to more routing space.
20
20 6/5/2016 Two Different Problems Constrained Via Minimization (CVM) Unconstrained Via Minimization (UVM)
21
21 6/5/2016 Constrained Via Minimization (CVM) Given a detailed routing solution, minimize the number of vias by assigning wire segments to different layers. Vias occur only at the turning points. Also called the Layer Assignment Problem.23454001 2 100035023454001 2 1000350
22
22 6/5/2016 Unconstrained Via Minimization (UVM) Minimize the number of vias during routing. Vias can occur anywhere as needed. Consider an unreserved layer model for routing (both vertical and horizontal wires can be routed on the same layer in each region).
23
23 6/5/2016 Topological Routing UVM is also known as Topological Routing. Topological Routing Geometric Mapping
24
24 6/5/2016 CVM and UVM UVM is less popular than CVM since via minimization is usually considered secondary. Minimization of channel width, completion of routing, and minimization of total wirelength are considered more important. Note: modern routers usually will follow “preferred” layers. So via minimization essentially is to minimize the number of “bends”. We will show CVM just to illustrate some algorithmic aspects of via minimization.
25
6/5/2016 25 CVM by Reduction to Maximum Cut Problem “Optimal Layer Assignment for Interconnect”, R. Y. Pinter, IEEE Int’l Conf. Circuits and Computers, pages 398-401, Sept. 1982.
26
26 6/5/2016 Overview For two routing layers. Partition the routing region into clusters such that no “ junction ” is of degree more than 3. The problem can be transformed to finding a maximum cut in a graph.
27
27 6/5/2016 Cluster Graph Representation 2 3454001 2 1000350 S6S6S6S6 S2S2S2S2 S3S3S3S3 S4S4S4S4 S5S5S5S5 S7S7S7S7 S1S1S1S1Cluster2 3454001 2 1000350 h1h1h1h1 h2h2h2h2 h3h3h3h3 h4h4h4h4 h5h5h5h5 h6h6h6h6 h7h7h7h7 h8h8h8h8 Via S1S1S1S1 S2S2S2S2 S6S6S6S6 S3S3S3S3 S4S4S4S4 S5S5S5S5 S7S7S7S7 h1h1h1h1 h2h2h2h2 h3h3h3h3 h5h5h5h5 h7h7h7h7 h8h8h8h8 ClusterGraph
28
28 6/5/2016 Layer Assignment In every cluster, there are only two possible ways to assign layers. Class C 1 : Horizontal wires on layer 1 Vertical wires on layer 2 Class C 2 : Horizontal wires on layer 2 Vertical wires on layer 1
29
29 6/5/2016 Assign Clusters to C 1 and C 2 If two adjacent clusters are in the same class, the via candidates joining them are needed. If two adjacent clusters are in different classes, the vias candidates joining them are not needed. Same Class Different Classes C2C2C2C2 C2C2C2C2 C2C2C2C2 C1C1C1C1
30
30 6/5/2016 Example of Class Assignment Cluster Graph S1S1S1S1 S2S2S2S2 S6S6S6S6 S3S3S3S3 S4S4S4S4 S5S5S5S5 S7S7S7S7 h1h1h1h1 h2h2h2h2 h3h3h3h3 h5h5h5h5 h7h7h7h7 h8h8h8h8 C1C1C1C1 C1C1C1C1 C2C2C2C2 C1C1C1C1 C1C1C1C1 C2C2C2C2 C1C1C1C1 2 3454001 2 1000350 S6S6S6S6 h1h1h1h1 h2h2h2h2 h3h3h3h3 h4h4h4h4 h5h5h5h5 h6h6h6h6 h7h7h7h7 h8h8h8h8 S1S1S1S1 S2S2S2S2 S3S3S3S3 S4S4S4S4 S5S5S5S5 S7S7S7S7 Original: 8 vias 8 vias This solution: 4 vias 4 vias
31
31 6/5/2016 Example of Class Assignment A better solution: S1S1S1S1 S2S2S2S2 S6S6S6S6 S3S3S3S3 S4S4S4S4 S5S5S5S5 S7S7S7S7 h1h1h1h1 h2h2h2h2 h3h3h3h3 h5h5h5h5 h7h7h7h7 h8h8h8h8 C1C1C1C1 C2C2C2C2 C1C1C1C1 C1C1C1C1 C2C2C2C2 C1C1C1C1 C2C2C2C223454001 2 1000350 S6S6S6S6 h1h1h1h1 h2h2h2h2 h3h3h3h3 h4h4h4h4 h5h5h5h5 h6h6h6h6 h7h7h7h7 h8h8h8h8 S1S1S1S1 S2S2S2S2 S3S3S3S3 S4S4S4S4 S5S5S5S5 S7S7S7S7 Optimal Solution: 2 vias 2 vias
32
32 6/5/2016 Class Assignment Problem No. of vias = No. of via candidates – No. of edges connecting a vertex in C 1 and a vertex in C 2 S1S1S1S1 S2S2S2S2 S6S6S6S6 S3S3S3S3 S4S4S4S4 S5S5S5S5 S7S7S7S7 C1C1C1C1 C2C2C2C2 Optimal Solution S1S1S1S1 S2S2S2S2 S6S6S6S6 S3S3S3S3 S4S4S4S4 S5S5S5S5 S7S7S7S7 C1C1C1C1 C2C2C2C2 No. of edges here = no. of vias that can be eliminated can be eliminated
33
33 6/5/2016 Maximum Cut Problem The layer assignment problem is equivalent to the Maximum Cut Problem of a graph. The Maximum Cut Problem is –NP-Complete for general graphs. –Solvable in polynomial time for planar graphs. [Hadlock 1975, SIAM Journal on Computing] Cluster graphs are planar. A cut Maximum cut = A cut with the maxi- mum no. of edges mum no. of edges
34
34 6/5/2016 Other Routing Issues Gridless Routing Multi-level routing DSM effects
35
35 6/5/2016 Gridless Detailed Routing Gridless Routing –More flexible –Longer runtime due to complex data structure Gridless Detailed Routing Algorithms –Shape (Tile) based routing [Sato, et al., ISCS87, Margarino, et al., TCAD87, Dion, et al., WRL Research Report 95/3, Liu, et al., ISPD98] –Graph-based routing [Wu, et al., TC87, Ohtsuki, ICCAS85, Cong, et al., Zheng, et al., TCAD96, ICCAD ’ 99] –Subgrid routing [US Patent, 6,507,941 B1, Jan. 2003]
36
36 6/5/2016 Multilevel Routing Framework (MARS [TCAD05]) Fine routing tile generation Detailed routing G1G1 Coarsening G0G0 Refinement Initial routing GkGk G0G0 G1G1 Multicommodity flow based algorithm History-based iterative refinement Implicit graph gridless routing [Courtesy Prof. Jason Cong]
37
37 6/5/2016 DSM Considerations Antenna effects Crosstalk noise Interconnect optimization & planning Manufacturability …… Will be covered in EE382V, Optimization Issues in VLSI CAD
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.