PD RO The NG Lecture-9-Routing
PD RO The NG Lecture-9-Routing
Lecture 9:
Routing
Semester A, 2018-19
Lecturer: Dr. Adam Teman
Disclaimer: This course was prepared, in its entirety, by Adam Teman. Many materials were copied from sources freely available on the internet. When possible, these sources have been cited;
however, some references may have been cited incorrectly or overlooked. If you feel that a picture, graph, or code example has been copied from you and either needs to be cited or removed,
please feel free to email [email protected] and I will address this as soon as possible.
Routing: The Problem
• Scale
• Millions of wires
• MUST connect them all
• Geometric Complexity
• Basic starting point – grid representation.
• But at nanoscale – Geometry rules are complex!
• Also, many routing layers with different “costs”.
• Electrical Complexity
• It’s not enough to just connect all the wires.
• You also have to:
• Ensure that the delays through the wires are small.
• Ensure that wire-to-wire interactions (crosstalk)
doesn’t mess up behavior.
2
© Adam Teman, 2018
Problem Definition
• Problem:
• Given a placement, and a fixed number of metal layers, find a valid pattern
of horizontal and vertical wires that connect the terminals of the nets.
• Input: • Objective
• Cell locations, netlist • 100% connectivity of a system
• Minimum area, wirelength
• Output:
• Geometric layout of each net • Constraints
connecting various standard cells • Number of routing layers
• Design rules
• Two-step process • Timing (delay)
• Global routing • Crosstalk
• Detailed routing • Process variations
3
© Adam Teman, 2018
Lecture Contents
Routing Algorithms
5 4 5 T
6
6 5 6
8
© Adam Teman, 2018
Maze Routing: Backtrace & Cleanup
• Backtrace: 3 2 3 4 5 6
• Follow the path lengths backwards in
descending order.
• This will mark a shortest-path to the target.
2 S1 2 3 4 5
4 T
11
© Adam Teman, 2018
Multi-Point Nets
• How do we go about routing a net with 4 3 3 2 3
multiple targets?
• Actually, pretty straightforward.
• Start with our regular maze routing
3 2 2 S1 2 3
13
© Adam Teman, 2018
Multi-Layer Routing
3 2 3 4 5 6
2 S1 2 3 4 5 8
3 2 3 5 6 8 7 6 7 8
4 3 V
4 6 7 7 6 V
5 6 7 8
5 4 5 7 V
8 8 7 6 7 T8 V
6 5 6 7 8 8 7 8
14
Metal 1 Metal 2 © Adam Teman, 2018
Non-Uniform Grid Costs
• But we know that vias have (relatively) high resistance.
• Shouldn’t we prefer to stay on the same metal layer?
• We also prefer Manhattan Routing
• Each layer is only routed in one direction.
• A “turn” requires going through a via or a “jog” should be penalized.
• Is there a way to prefer routing in a certain layer/direction?
• Yes.
• Let’s introduce non-uniform grid costs.
15
© Adam Teman, 2018
Multi-Layer Routing
Cost of Via = 10
11 12 13 14 15 16
S1 2 V
3 4 5 6 23 V
13
15 16 24 14
T
26 V
25 26 25 26 25 V
15
35 35 26 16
Cost of wrong
way route = 10 27 17 27
Vertical
16
Horizontal Metal 1 Metal 2 © Adam Teman, 2018
How do we implement this?
• Grids are huge.
• Assume 1cm X 1cm chip. All of this is hard!
• Assume 100 nm track
• Assume 10 routing layers
• That is 1010 (100 billion) grid cells!
• We need a low cost representation
• Only store the wavefront. Use many different heuristics:
• Remember which cells have been
• Which net to route first
reached, at what cost, and from
which direction. • Bias towards the right direction
• Use Dijkstra’s algorithm to find the • How to go about fixing problems
cheapest cell first. • etc., etc., etc.
17 • Store data in a heap. © Adam Teman, 2018
Divide and Conquer: Global Routing
• To deal with a big chip, we make our problem smaller
• Divide the chip into big, course regions
• e.g., 200 X 200 tracks each.
• These are called GBOXes.
• Now Maze Route through the GBOXes
18
© Adam Teman, 2018
Divide and Conquer: Global Routing
• Global routing takes care of basic congestion.
• Balances supply vs. demand of routing resources.
• Generates regions of confinement for the wires.
• Detailed routing decides on the exact path.
GBOXes have a
dynamic cost
according to how
congested they are!
19
© Adam Teman, 2018
2 2
1
Routing Routing in
Intro
Algorithms Practice
Routing in practice
20
Layer Stacks
• Metal stacks are changing W2
(and growing)
U2 W1 Intel 45nm 8 metal stack
Representative layer stacks for
130 nm - 32 nm technology
U1
nodes E2
E2 E1 E1
B3
E1 B3
B2
B2 B3 B1 B2
M6 B1 B2 C2 B1
UMC 6 metal stack
M5 M5 B1 C1 M5
M4 M4 M4 M4 M4
M3 M3 M3 M3 M3
M2 M2 M2 M2 M2
M1 M1 M1 M1 M1
130 nm 90 nm 65 nm 45 nm 32 nm
• Minimize wire-length Y
• Balance Congestion
Horizontal routing
• Timing-driven capacity = 9
tracks
• Noise/SI-driven
• Keep buses together X
22
© Adam Teman, 2018
Congestion map
Congestion Map
• Use congestion map and report to
examine design routability
Congestion Report
# Routing #Avail #Track #Total %Gcell
# Layer Direction Track Blocked Gcell Blocked
# --------------------------------------------------------------
# Metal 1 H 7607 9692 1336335 62.57%
# Metal 2 H 7507 9792 1336335 55.84%
# Metal 3 V 7636 9663 1336335 59.51%
# Metal 4 H 8609 8691 1336335 52.02%
# Metal 5 V 5747 11551 1336335 56.39%
# Metal 6 H 5400 11899 1336335 55.09%
# Metal 7 V 1831 2486 1336335 55.30%
# Metal 8 H 2415 1903 1336335 43.85%
# --------------------------------------------------------------
# Total 46753 56.99% 10690680 55.07%
#
# 589 nets (0.47%) with 1 preferred extra spacing.
23
© Adam Teman, 2018
Detailed Route Detailed Route Boxes Solve
shorts
• Using global route plan,
within each global route cell
Notch
• Assign nets to tracks Spacing
• Lay down wires
• Connect pins to nets Notch
• Solve DRC violations Spacing
• Reduce cross couple cap
• Apply special routing rules
Thin&Fat
• Flow: Spacing
24
© Adam Teman, 2018
Timing-Driven Routing
• Optimize critical paths
• Route some nets first
• Most routing freedom at start
• Use shortest paths possible
• Net weights
• Order of routing (priorities: e.g., Default : Clocks 50, others 2)
• Wire widening
• Reduce resistance
• If you have a congested design you may need to set the timing
driven effort to “low”
• Beware when changing default options
© Adam Teman, 2018
Signal Integrity (SI)
• Signal Integrity during routing is synonymous with Crosstalk.
• A switching signal may affect a neighboring net.
• The switching net is called the Aggressor.
• The affected net is called the Victim.
• Two major effects:
net 1 Aggressor
• Signal slow down
• When the aggressor and victim
switch in opposite directions. net 2 Victim
• Signal speed up
• When the aggressor and victim
switch in the same direction.
Speed Up Delay
26
© Adam Teman, 2018
SI Multi-Aggressor Timing Analysis
• Infinite Window Analysis
• An infinite noise window Net X
aggressor
applies the maximum delay
Net Y
due to crosstalk during timing analysis. aggressor
• This model was sufficient for older (pre-90nm)
technologies, but became too severe with the Noise bumps on net C
Shielding
Same layer (H)
Spacing Wire Spreading Adjacent layers (V)
28
© Adam Teman, 2018
Net Ordering
Design For Manufacturing
• During route, apply additional
design for manufacturing (DFM)
and/or design for yield (DFY) rules:
• Via reduction
• Redundant via insertion
Wire straightening (reduce jogs)
• Wire straightening
• Wire spreading
Avoid
asymmetrical
contacts
29
© Adam Teman, 2018
DFM: Via Optimization
• Post-Route Via Optimization, includes:
• Incremental routing for the minimization of vias.
• Replacement of single vias with multi-cut vias.
• These operations are required for:
• Reliability:
• The ability to create reliable vias decreases with each process
node. If a single via fails, it creates an open and the circuit is extra vias
useless. added
• Electromigration:
• Electromigration hazards are even more significant in vias,
which are essentially long, narrow conductors.
30
© Adam Teman, 2018
DFM: Wire Spreading • High-density
critical area
• High probability of
yield-killing defect
• Wire spreading achieves:
• Lower capacitance and better signal integrity.
• Lower susceptibility to shorts or opens due to
random particle defects.
• Density reduced,
yield risk reduced
• No timing impact!
Center of conductive defects within Center of non-conductive defects within
critical area – causing shorts critical area – causing opens
Metal 3
+ +
+ + + +
+ +
Center of conductive defects Critical Areas Center of non-conductive defects
outside critical area – no shorts outside critical area – no opens
31
© Adam Teman, 2018
Routing in Innovus/Encounter
• The detailed routing engine used by Innovus/Encounter is called “NanoRoute”
• NanoRoute provides concurrent timing-driven and SI-driven routing.
• In addition, it can perform multi-cut via insertion, wire widening and spacing.
• The commands for running a route with NanoRoute are:
set_db route_design_with_timing_driven true
set_db route_design_with_si_driven true
route_design
35
© Adam Teman, 2018