chapter 6 –detailed routing - university of...
TRANSCRIPT
![Page 1: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/1.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 1
©KLMH
Lienig
Chapter 6 – Detailed Routing
Original Authors:
Andrew B. Kahng, Jens Lienig, Igor L. Markov, Jin Hu
VLSI Physical Design: From Graph Partitioning to Timing Closure
![Page 2: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/2.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 2
©KLMH
Lienig
Chapter 6 – Detailed Routing
6.1 Terminology
6.2 Horizontal and Vertical Constraint Graphs
6.2.1 Horizontal Constraint Graphs
6.2.2 Vertical Constraint Graphs
6.3 Channel Routing Algorithms
6.3.1 Left-Edge Algorithm
6.3.2 Dogleg Routing
6.4 Switchbox Routing
6.4.1 Terminology
6.4.2 Switchbox Routing Algorithms
6.5 Over-the-Cell Routing Algorithms
6.5.1 OTC Routing Methodology
6.5.2 OTC Routing Algorithms
6.6 Modern Challenges in Detailed Routing
![Page 3: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/3.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 3
©KLMH
Lienig
ENTITY test isport a: in bit;
end ENTITY test;
DRC
LVSERC
Circuit Design
Functional Design
and Logic Design
Physical Design
Physical Verification
and Signoff
Fabrication
System Specification
Architectural Design
Chip
Packaging and Testing
Chip Planning
Placement
Signal Routing
Partitioning
Timing Closure
Clock Tree Synthesis
6 Detailed Routing
![Page 4: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/4.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 4
©KLMH
Lienig
Timing-Driven
Routing
Global
Routing
Detailed
Routing
Large Single-
Net Routing
Coarse-grain
assignment of
routes to
routing regions
(Chap. 5)
Fine-grain
assignment
of routes to
routing tracks
(Chap. 6)
Net topology
optimization
and resource
allocation to
critical nets
(Chap. 8)
Power (VDD)
and Ground
(GND)
routing
(Chap. 3)
Routing
Geometric
Techniques
Non-Manhattan
and
clock routing
(Chap. 7)
Multi-Stage Routing
of Signal Nets
6 Detailed Routing
![Page 5: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/5.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 5
©KLMH
Lienig
• The objective of detailed routing is to assign route segments of signal nets
to specific routing tracks, vias, and metal layers in a manner
consistent with given global routes of those nets
• Similar to global routing
− Use physical wires to do connections
− Estimating the wire resistance and capacitance, which determines
whether the design meets timing requirements
• Detailed routing techniques are applied within routing regions, such as
− channels (Sec. 6.3), switchboxes (Sec. 6.4) , and global routing cells (Sec. 6.5)
• Detailed routers must account for manufacturing rules and the impact
of manufacturing faults (Sec. 6.6)
6 Detailed Routing
![Page 6: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/6.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 6
©KLMH
Lienig6
• Detailed Routing Stages
− Assign routing tracks
− Perform entire routing – no open connection left
− Search and repair – resolving all the physical design rules
− Perform optimizations, e.g. add redundant vias (reduce resistivity, better yield)
6 Detailed Routing
![Page 7: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/7.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 7
©KLMH
Lienig
N3
N3
N1 N2N1
N3
N1N2
N3
N3
N1 N2N1
N3
N1N2
Horizontal
SegmentVia
Vertical
Segment
Detailed RoutingGlobal Routing
6 Detailed Routing
![Page 8: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/8.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 8
©KLMH
Lienig
6.1 Terminology
Channel and Switchbox Routing
A A
B B
B
B
BC
C
C
CD
D
B
BE
E
Vertical Channel Tracks
Horizontal
ChannelTracks
E
B
D
B
![Page 9: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/9.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 9
©KLMH
Lienig
Power
Rail
Channel
External
Pad
Channel Routing
Standard Cell Row
6.1 Terminology
![Page 10: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/10.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 10
©KLMH
Lienig
Cell Area
A A
B B
B
B
BC
C
C
CD
Three-Layer OTC Routing
OTC: Over the cell
A A
B B
B
B
BC
C
C
CD
Two-Layer Channel Routing
Cell Area
Metal3
Via
Metal1
Metal2
6.1 Terminology
©2011 Springer Verlag
![Page 11: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/11.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 11
©KLMH
Lienig
Columns
Tracks
Channel
Height
A A
B B
B
B
BC
C
C
CD
a b c d e f g
1
2
3
Pin Locations
Horizontal Segment
(Trunk)
Vertical Segment
(Branch)
6.1 Terminology
0
0
©2011 Springer Verlag
![Page 12: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/12.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 12
©KLMH
Lienig
Horizontal Constraint
• Assumption: one layer for horizontal routing
• A horizontal constraint exists between two nets
if their horizontal segments overlap
6.1 Terminology
A
A
B
BC
C
Horizontally unconstrained
Horizontally
constrained
©2011 Springer Verlag
![Page 13: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/13.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 13
©KLMH
Lienig
Vertical Constraint
6.1 Terminology
• A vertical constraint exists between two nets if they have pins
in the same column
⇒ The vertical segment coming from the top must “stop” before overlapping
with the vertical segment coming from the bottom in the same column
Vertically constrained
with a vertical conflict
Vertically constrained
without conflict
B A
A B
B A
A BB
AB
A
©2011 Springer Verlag
![Page 14: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/14.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 14
©KLMH
Lienig
6.2 Horizontal and Vertical Constraint Graphs
6.1 Terminology
6.2 Horizontal and Vertical Constraint Graphs
6.2.1 Horizontal Constraint Graphs
6.2.2 Vertical Constraint Graphs
6.3 Channel Routing Algorithms
6.3.1 Left-Edge Algorithm
6.3.2 Dogleg Routing
6.4 Switchbox Routing
6.4.1 Terminology
6.4.2 Switchbox Routing Algorithms
6.5 Over-the-Cell Routing Algorithms
6.5.1 OTC Routing Methodology
6.5.2 OTC Routing Algorithms
6.6 Modern Challenges in Detailed Routing
![Page 15: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/15.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 15
©KLMH
Lienig
6.2 Horizontal and Vertical Constraint Graphs
• The relative positions of nets in a channel routing instance can be modeled
by horizontal and vertical constraint graphs
• These graphs are used to
− initially predict the minimum number of tracks that are required
− detect potential routing conflicts
![Page 16: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/16.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 16
©KLMH
Lienig
• Let S(col) denote the set of nets that pass through column col
• S(col) contains all nets that either (1) are connected to a pin in column col
or (2) have pin connections to both the left and right of col
• Since horizontal segments cannot overlap, each net in S(col) must be assigned
to a different track in column col
• S(col) represents the lower bound on the number of tracks in colum col;
lower bound of the channel height is given by maximum cardinality of any S(col)
A C E C E A F H H G0
0 B D E B GF 0 D 0 0
Column a b c d e f g h i j k
S(b) = {A, B, C}
6.3.1 Horizontal Constraint Graphs
![Page 17: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/17.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 17
©KLMH
Lienig
BA
CD
EF
GH
A C E C E A F H H G0
0 B D E B GF 0 D 0 0
Column a b c d e f g h i j k
A C E C E A F H H G0
0 B D E B GF 0 D 0 0
6.3.1 Horizontal Constraint Graphs
![Page 18: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/18.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 18
©KLMH
Lienig
BA
CD
EF
GH
A C E C E A F H H G0
0 B D E B GF 0 D 0 0
Column a b c d e f g h i j k
A C E C E A F H H G0
0 B D E B GF 0 D 0 0
6.3.1 Horizontal Constraint Graphs
S(c) S(f)S(g) S(i)S(a)S(b) S(d)S(e) S(h) S(j)S(k)S(a) = {A}
S(b) = {A,B,C}
S(c) = {A,B,C,D,E}
S(d) = {A,B,C,D,E}
S(e) = {A,B,D,E}
S(f) = {A,D,F}
S(g) = {D,F}
S(h) = {D,G,H}
S(i) = {D,G,H}
S(j) = {G,H}
S(k) = {G}
![Page 19: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/19.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 19
©KLMH
Lienig
S(c) S(f)S(g) S(i)
0 B D E B GF 0 D 0 0
S(a)S(b) S(d)S(e) S(h) S(j)S(k)
0 B D E B GF 0 D 0 0
Column a b c d e f g h i j k
A C E C E A F H H G0
A C E C E A F H H G0
BA
CD
EF
GH
6.3.1 Horizontal Constraint Graphs
S(a) = {A}
S(b) = {A,B,C}
S(c) = {A,B,C,D,E}
S(d) = {A,B,C,D,E}
S(e) = {A,B,D,E}
S(f) = {A,D,F}
S(g) = {D,F}
S(h) = {D,G,H}
S(i) = {D,G,H}
S(j) = {G,H}
S(k) = {G}
![Page 20: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/20.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 20
©KLMH
Lienig
S(c) S(f)S(g) S(i)
S(c) S(f) S(g)S(i)
A
B
C
D
F
G
H
E
0 B D E B GF 0 D 0 0
Column a b c d e f g h i j k
A C E C E A F H H G0
0 B D E B GF 0 D 0 0
A C E C E A F H H G0
BA
CD
EF
GH
6.3.1 Horizontal Constraint Graphs
![Page 21: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/21.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 21
©KLMH
Lienig
Lower bound on the number of tracks = 5
0 B D E B GF 0 D 0 0
Column a b c d e f g h i j k
A C E C E A F H H G0
S(c) S(f) S(g)S(i)
A
B
C
D
F
G
H
E
6.3.1 Horizontal Constraint Graphs
![Page 22: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/22.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 22
©KLMH
Lienig
0 B D E B GF 0 D 0 0
Column a b c d e f g h i j k
A C E C E A F H H G0
S(c) S(f) S(g)S(i)
A
B
C
D
F
G
H
E
F
G
H CE
B
A
D
6.3.1 Horizontal Constraint Graphs
Graphical Representation
![Page 23: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/23.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 23
©KLMH
Lienig
• A directed edge e(i,j) ∈ E connects nodes i and j
if the horizontal segment of net i must be located above net j
B
A
A
B
6.3.2 Vertical Constraint Graphs
![Page 24: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/24.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 24
©KLMH
Lienig24
A
6.3.2 Vertical Constraint Graphs
0 B D E B GF 0 D 0 0
A C E C E A F H H G0
![Page 25: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/25.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 25
©KLMH
Lienig25
B
C
A
6.3.2 Vertical Constraint Graphs
0 B D E B GF 0 D 0 0
A C E C E A F H H G0
![Page 26: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/26.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 26
©KLMH
Lienig26
E
D
A
6.3.2 Vertical Constraint Graphs
0 B D E B GF 0 D 0 0
A C E C E A F H H G0
B
C
![Page 27: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/27.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 27
©KLMH
Lienig27
6.3.2 Vertical Constraint Graphs
0 B D E B GF 0 D 0 0
A C E C E A F H H G0
E
D
A
B
C
![Page 28: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/28.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 28
©KLMH
Lienig28
Vertical Constraint Graph (VCG)
6.3.2 Vertical Constraint Graphs
0 B D E B GF 0 D 0 0
A C E C E A F H H G0
Note: an edge that can be derived
by transitivity is not included,
such as edge (B,C) E
D
A
B
C
![Page 29: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/29.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 29
©KLMH
Lienig29
6.3.2 Vertical Constraint Graphs
0 B D E B GF 0 D 0 0
A C E C E A F H H G0
FE
D
A
B
C
![Page 30: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/30.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 30
©KLMH
Lienig30
6.3.2 Vertical Constraint Graphs
0 B D E B GF 0 D 0 0
A C E C E A F H H G0
G
FE
D
A
B
C
![Page 31: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/31.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 31
©KLMH
Lienig31
6.3.2 Vertical Constraint Graphs
0 B D E B GF 0 D 0 0
A C E C E A F H H G0
H
G
FE
D
A
B
C
![Page 32: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/32.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 32
©KLMH
Lienig
B
E
C
D
A
F
G
H
6.3.2 Vertical Constraint Graphs
0 B D E B GF 0 D 0 0
A C E C E A F H H G0
![Page 33: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/33.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 33
©KLMH
Lienig
A B B
B 0 A
A
B
B A
A B B
Cyclic conflict
Net splitting
6.3.2 Vertical Constraint Graphs
![Page 34: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/34.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 34
©KLMH
Lienig
6.3 Channel Routing Algorithms
6.1 Terminology
6.2 Horizontal and Vertical Constraint Graphs
6.2.1 Horizontal Constraint Graphs
6.2.2 Vertical Constraint Graphs
6.3 Channel Routing Algorithms
6.3.1 Left-Edge Algorithm
6.3.2 Dogleg Routing
6.4 Switchbox Routing
6.4.1 Terminology
6.4.2 Switchbox Routing Algorithms
6.5 Over-the-Cell Routing Algorithms
6.5.1 OTC Routing Methodology
6.5.2 OTC Routing Algorithms
6.6 Modern Challenges in Detailed Routing
![Page 35: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/35.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 35
©KLMH
Lienig
6.3.1 Left-Edge Algorithm
• Based on the VCG and the zone representation,
greedily maximizes the usage of each track
− VCG: assignment order of nets to tracks
− Zone representation: determines which nets may share the same track
• Each net uses only one horizontal segment (trunk)
![Page 36: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/36.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 36
©KLMH
Lienig
Input: channel routing instance CR
Output: track assignments for each net
curr_track = 1 // start with topmost track
nets_unassigned = Netlist
while (nets_unassigned != Ø) // while nets still unassigned
VCG = VCG(CR) // generate VCG and zone
ZR = ZONE_REP(CR) // representation
SORT(nets_unassigned,start column) // find left-to-right ordering
// of all unassigned nets
for (i =1 to |nets_unassigned|)
curr_net = nets_unassigned[i]
if (PARENTS(curr_net) == Ø && // if curr_net has no parent
(TRY_ASSIGN(curr_net,curr_track)) // and does not cause
// conflicts on curr_track,
ASSIGN(curr_net,curr_track) // assign curr-_net
REMOVE(nets_unassigned,curr_net)
curr_track = curr_track + 1 // consider next track
6.3.1 Left-Edge Algorithm
©2011 Springer Verlag
![Page 37: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/37.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 37
©KLMH
Lienig
0 A D E A GF 0 D I J J
B C E C E B F H I H G I
6.3.1 Left-Edge Algorithm – Example
![Page 38: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/38.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 38
©KLMH
Lienig
1. Generate VCG and zone representation
A
E
C
JD
B
F
G
H
I
A G
B H
C I
D J
E F
0 A D E A GF 0 D I J J
B C E C E B F H I H G I
6.3.1 Left-Edge Algorithm – Example
![Page 39: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/39.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 39
©KLMH
Lienig
A G
B H
C I
D J
E F
2. Consider next track
3. Find left-to-right ordering of all unassigned netsIf curr_net has no parents and does not cause conflicts on curr_trackassign curr_net
curr_track = 1: Net JNet A
E
C
D
B
F
G
H
I
JA
4. Delete placed nets (A, J ) in VCG and zone represenation
6.3.1 Left-Edge Algorithm – Example
![Page 40: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/40.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 40
©KLMH
Lienig40
B C E C E B F H I H G I
curr_track = 1
2
3
4
5
0 A D E A GF 0 D I J J
6.3.1 Left-Edge Algorithm – Example
©2011 Springer Verlag
![Page 41: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/41.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 41
©KLMH
Lienig
curr_track = 2:
E
C
B
F
G
H
I
G
H
C I
D
E F
Net D
4. Delete placed nets (D ) in VCG and zone representation
B
2. Consider next track
3. Find left-to-right ordering of all unassigned netsIf curr_net has no parents and does not cause conflicts on curr_trackassign curr_net
D
6.3.1 Left-Edge Algorithm – Example
![Page 42: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/42.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 42
©KLMH
Lienig42
B C E C E B F H I H G I
1
curr_track = 2
3
4
5
0 A D E A GF 0 D I J J
6.3.1 Left-Edge Algorithm – Example
©2011 Springer Verlag
![Page 43: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/43.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 43
©KLMH
Lienig
curr_track = 3:
E
C
B
F
G
H
I
G
H
C I
E F
Net E Net G
4. Delete placed nets (E, G ) in VCG and zone representation
B
2. Consider next track
3. Find left-to-right ordering of all unassigned netsIf curr_net has no parents and does not cause conflicts on curr_trackassign curr_net
6.3.1 Left-Edge Algorithm – Example
![Page 44: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/44.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 44
©KLMH
Lienig44
B C E C E B F H I H G I
1
2
curr_track = 3
4
5
0 A D E A GF 0 D I J J
6.3.1 Left-Edge Algorithm – Example
©2011 Springer Verlag
![Page 45: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/45.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 45
©KLMH
Lienig
curr_track = 4:
C
B
FH
I
H
C I
F
Net C Net F Net I
4. Delete placed nets (C, F, I ) in VCG and zone representation
B
2. Consider next track
3. Find left-to-right ordering of all unassigned netsIf curr_net has no parents and does not cause conflicts on curr_trackassign curr_net
6.3.1 Left-Edge Algorithm – Example
![Page 46: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/46.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 46
©KLMH
Lienig46
B C E C E B F H I H G I
1
2
3
curr_track = 4
5
0 A D E A GF 0 D I J J
6.3.1 Left-Edge Algorithm – Example
©2011 Springer Verlag
![Page 47: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/47.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 47
©KLMH
Lienig
curr_track = 5:
B
H
B H
Net B Net H
4. Delete placed nets (B, H ) in VCG and zone representation
2. Consider next track
3. Find left-to-right ordering of all unassigned netsIf curr_net has no parents and does not cause conflicts on curr_trackassign curr_net
6.3.1 Left-Edge Algorithm – Example
![Page 48: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/48.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 48
©KLMH
Lienig48
B C E C E B F H I H G I
1
2
3
4
curr_track = 5
Routing result
0 A D E A GF 0 D I J J
6.3.1 Left-Edge Algorithm – Example
©2011 Springer Verlag
![Page 49: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/49.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 49
©KLMH
Lienig
• Improving left-edge algorithm by net splitting
• Two advantages:
− Alleviates conflicts in VCG
− Number of tracks can often be reduced
A B B
B 0 A
Net splitting
Dogleg
6.3.2 Dogleg Routing
![Page 50: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/50.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 50
©KLMH
Lienig
A
B
A B B
B 0 A
B A
A B B
Conflict alleviation using a dogleg
6.3.2 Dogleg Routing
©2011 Springer Verlag
![Page 51: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/51.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 51
©KLMH
Lienig
A A B
0 B 0
B 0
C C
A A B
0 B 0
B 0
C C
Track reduction using a dogleg
6.3.2 Dogleg Routing
![Page 52: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/52.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 52
©KLMH
Lienig
• Splitting p-pin nets (p > 2) into p − 1 horizontal segments
• Net splitting occurs only in columns that contain a pin of the given net
• After net splitting, the algorithm follows the left-edge algorithm
B1 B2
Net splittingA A B
0 B 0
B 0
C C
A
C
6.3.2 Dogleg Routing
![Page 53: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/53.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 53
©KLMH
Lienig
Net splitting
B2B1
C
A
A A B B 0
B 0 C C0
6.3.2 Dogleg Routing
Channel routing problem
A A B B 0
B 0 C C0
VCG without net splitting Channel routing solution
A
B
C
A A B B 0
B 0 C C0
VCG with net splitting
A
B1
B2
C
Channel routing solution
A A B B 0
B 0 C C0
©2011 Springer Verlag
![Page 54: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/54.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 54
©KLMH
Lienig
6.1 Terminology
6.2 Horizontal and Vertical Constraint Graphs
6.2.1 Horizontal Constraint Graphs
6.2.2 Vertical Constraint Graphs
6.3 Channel Routing Algorithms
6.3.1 Left-Edge Algorithm
6.3.2 Dogleg Routing
6.4 Switchbox Routing
6.4.1 Terminology
6.4.2 Switchbox Routing Algorithms
6.5 Over-the-Cell Routing Algorithms
6.5.1 OTC Routing Methodology
6.5.2 OTC Routing Algorithms
6.6 Modern Challenges in Detailed Routing
6.4 Switchbox Routing
![Page 55: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/55.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 55
©KLMH
Lienig
D
B
BE
E
E
B
D
B
• Fixed dimensions and pin connections on all four sides
• Defined by four vectors TOP, BOT, LEFT, RIGHT
• Switchbox routing algorithms are usually derived from (greedy) channel routing
algorithms
6.4 Switchbox Routing
![Page 56: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/56.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 56
©KLMH
Lienig
R = {0, 1, 2, …, 8} x {0, 1, 2, … , 7} TOP = (1, 2, … , 7) = [0, D, F, H, E, C, C]
BOT = (1, 2, … , 7) = [0, 0, G, H, B, B, H]
LEFT = (1, 2, … , 6) = [A, 0, D, F, G, 0]
RIGHT = (1, 2, … , 6) = [B, H, A, C, E, C]
H
A
C
E
D F H E C C
G0
0
D
F
G
H B B H0
0
0
A B
C
?
6.4 Switchbox Routing
b c d e f ga
Column
D F H E C C0
0
D
F
G
0
A
6
5
4
3
2
1
Track
H
A
C
E
B
C
G0 H B B H0
![Page 57: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/57.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 57
©KLMH
Lienig
TOP = (1, 2, … , 7) = [0, D, F, H, E, C, C]
BOT = (1, 2, … , 7) = [0, 0, G, H, B, B, H]
LEFT = (1, 2, … , 6) = [A, 0, D, F, G, 0]
RIGHT = (1, 2, … , 6) = [B, H, A, C, E, C]
b c d e f ga
Column
D F H E C C0
0
D
F
G
0
A
6
5
4
3
2
1
Track
H
A
C
E
B
C
G0 H B B H0
6.4 Switchbox Routing – Example
![Page 58: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/58.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 58
©KLMH
Lienig
b c d e f ga
Column
D F H E C C0
0
D
F
G
0
A
H
A
C
E
D F H E C C
G0
0
D
F
G
H B B H0
0
0
A B
C
TOP = (1, 2, … , 7) = [0, D, F, H, E, C, C]
BOT = (1, 2, … , 7) = [0, 0, G, H, B, B, H]
LEFT = (1, 2, … , 6) = [A, 0, D, F, G, 0]
RIGHT = (1, 2, … , 6) = [B, H, A, C, E, C]
6
5
4
3
2
1
Track
H
A
C
E
B
C
G0 H B B H0
6.4 Switchbox Routing – Example
![Page 59: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/59.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 59
©KLMH
Lienig
6.1 Terminology
6.2 Horizontal and Vertical Constraint Graphs
6.2.1 Horizontal Constraint Graphs
6.2.2 Vertical Constraint Graphs
6.3 Channel Routing Algorithms
6.3.1 Left-Edge Algorithm
6.3.2 Dogleg Routing
6.4 Switchbox Routing
6.4.1 Terminology
6.4.2 Switchbox Routing Algorithms
6.5 Over-the-Cell Routing Algorithms
6.5.1 OTC Routing Methodology
6.5.2 OTC Routing Algorithms
6.6 Modern Challenges in Detailed Routing
6.5 Over-the-Cell Routing Algorithms
![Page 60: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/60.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 60
©KLMH
Lienig
• Standard cells are placed back-to-back or without routing channels
• Metal layers are usually represented by a coarse routing grid
made up of global routing cells (gcells)
6.5 Over-the-Cell Routing Algorithms
Without routing channelsBack to back
![Page 61: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/61.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 61
©KLMH
Lienig
• Standard cells are placed back-to-back or without routing channels
• Metal layers are usually represented by a coarse routing grid
made up of global routing cells (gcells)
Metal1
(Cells: Back to back)
Metal3
Metal4 etc.Metal2 (Cell ports)
gcells
6.5 Over-the-Cell Routing Algorithms
![Page 62: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/62.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 62
©KLMH
Lienig
• Standard cells are placed back-to-back or without routing channels
• Metal layers are usually represented by a coarse routing grid
made up of global routing cells (gcells)
Metal1
(Without routing channels)
Metal3
Metal4 etc.
gcells
Metal2 (Cell ports)
6.5 Over-the-Cell Routing Algorithms
![Page 63: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/63.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 63
©KLMH
Lienig
• Standard cells are placed back-to-back or without routing channels
• Metal layers are usually represented by a coarse routing grid
made up of global routing cells (gcells)
• Layers that are not obstructed by standard cells
are typically used for over-the-cell (OTC) routing
• Nets are globally routed using gcells and then detail-routed
6.5 Over-the-Cell Routing Algorithms
![Page 64: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/64.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 64
©KLMH
Lienig
Three-layer approach
• Metal3 is used for over-the-cell (OTC) routing
Metal1
(Cells)
Metal2
(Ports)
Metal3
6.5 Over-the-Cell Routing Algorithms
![Page 65: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/65.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 65
©KLMH
Lienig
Metal3Cell Area
B B
B
B
BC C
CD
Cell Area
Metal1
A A
CMetal2
6.5 Over-the-Cell Routing Algorithms
Three-layer approach
• Metal3 is used for over-the-cell (OTC) routing
![Page 66: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/66.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 66
©KLMH
Lienig
Metal1
Metal2
Metal3
Channel
routing in
Metal1,
Metal2
and
Metal3
OTC routing
in Metal3
Ports in Metal2
GND
Standard cell
(only ports shown)
Channel
©2011 Springer Verlag
![Page 67: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/67.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 67
©KLMH
Lienig
6.1 Terminology
6.2 Horizontal and Vertical Constraint Graphs
6.2.1 Horizontal Constraint Graphs
6.2.2 Vertical Constraint Graphs
6.3 Channel Routing Algorithms
6.3.1 Left-Edge Algorithm
6.3.2 Dogleg Routing
6.4 Switchbox Routing
6.4.1 Terminology
6.4.2 Switchbox Routing Algorithms
6.5 Over-the-Cell Routing Algorithms
6.5.1 OTC Routing Methodology
6.5.2 OTC Routing Algorithms
6.6 Modern Challenges in Detailed Routing
6.6 Modern Challenges in Detailed Routing
![Page 68: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/68.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 68
©KLMH
Lienig
• Manufacturers today use different configurations of metal layers and widths
to accommodate high-performance designs
• Detailed routing is becoming more challenging, for example:
− Vias connecting wires of different widths inevitably block additional routing
resources on the layer with the smaller wire pitch
− Advanced lithography techniques used in manufacturing require
stricter enforcement of preferred routing direction on each layer
6.6 Modern Challenges in Detailed Routing
![Page 69: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/69.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 69
©KLMH
Lienig
6.6 Modern Challenges in Detailed Routing
130 nm 90 nm 65 nm 45 nm 32 nm
M1
M2M3
M4
M5
B1
B2
M1
M2M3
M4
B1
B2
B3
E1
E2
M1
M2M3
M4
B1
B2
C1
C2
B3
E1
U1
U2
M1
M2M3
M4
B1
B2
B3
E1
E2
M5
W1
W2
M1
M2
M4
M5
M6
M3
Representative layer stacks for 130 nm - 32 nm
technology nodes
©2011 Springer Verlag
![Page 70: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/70.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 70
©KLMH
Lienig
• Semiconductor manufacturing yield is a key concern in detailed routing
− Redundant vias and wiring segments as backups
(via doubling and non-tree routing)
− Manufacturability constraints (design rules) become more restrictive
− Forbidden pitch rules prohibit routing wires at certain distances apart,
but allows smaller or greater spacings
• Detailed routers must account for manufacturing rules and the impact
of manufacturing faults
− Via defects: via doubling during or after detailed routing
− Interconnect defects: add redundant wires to already routed nets
− Antenna-induced defects: detailed routers limit the ratio of metal to gate area
on each metal layer
6.6 Modern Challenges in Detailed Routing
![Page 71: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/71.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 71
©KLMH
Lienig
6.6 Modern Challenges in Detailed Routing
71
Antenna Effect
Source: http://en.wikipedia.org/wiki/Antenna_effect
![Page 72: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/72.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 72
©KLMH
Lienig
6.6 Modern Challenges in Detailed Routing
72
Antenna Effect Fix
Source: http://en.wikipedia.org/wiki/Antenna_effect
![Page 73: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/73.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 73
©KLMH
Lienig
• Detailed routing is invoked after global routing
• Usually takes about as much time as global routing
− For heavily congested designs can take much longer
• Generates specific track assignments for each connection
− Tries to follow "suggestions" made by global routing,
but may alter them if necessary
− A small number of failed global routed (disconnected, overcapacity)
can be tolerated
• More affected by technology & manufacturing constraints than global routing
− Must satisfy design rules
Summary of Chapter 6 – Context
![Page 74: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/74.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 74
©KLMH
Lienig
• Breaks down the layout area into regions
− Channels have net terminals (pins) on two sides
− Switch-boxes have terminals on four sides
− Channels are joined at switchboxes
• When the number of metal layers is >3, use over-the-cell (OTC) routing
− Divide the layout region into a grid of global routing cells (gcells)
− OTC routing makes the locations of cells, obstacles and pins less important
− Channel and switchbox routing can be used during OTC routing
when upper metal layers are blocked (by wide buses, other wires, etc.)
• The capacity of a region is limited by the number of tracks it contains
− Channels, switchboxes, gcells
Summary of Chapter 6 – Routing Regions
![Page 75: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/75.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 75
©KLMH
Lienig
• Horizontal and vertical constraint graphs capture constraints
that must be satisfied by valid routes
• Simplest algorithms for detailed routing are greedy
− Every step satisfies immediate constraints with minimal routing cost
− Use as few bends as possible (doglegs are used when additional bends
are needed)
− Very fast, do a surprisingly good job in many cases
− Insufficient for congested designs
• Switchbox routing algorithms are usually derived from channel routing algorithms
• Strategy 1: Do not create congested designs and rely on greedy algorithms
• Strategy 2: Accommodate congested designs and develop stronger algorithms
Summary of Chapter 6 – Algorithms and Data Structures
![Page 76: Chapter 6 –Detailed Routing - University of Michiganvlsicad.eecs.umich.edu/KLMH/downloads/book/chapter6/chap6-11120… · VLSI Physical Design: From Graph Partitioning to Timing](https://reader033.vdocument.in/reader033/viewer/2022042600/5a79d55b7f8b9ab83f8b99a1/html5/thumbnails/76.jpg)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 76
©KLMH
Lienig
• Variable-pitch wire stacks
− Not addressed in the literature until 2008
• Satisfying more complex design rules
− Min spacing between wires and devices
− Forbidden pitch rules
− Antenna rules
• Soft rules
− Do not need to be satisfied
− Can improve yield by decreasing the probability of defects
• Redundant vias
− In case some vias are poorly manufactured
• Redundant wires
− In case some wires get disconnected
Summary of Chapter 6 – Modern Challenges