ICS 252- Introduction to Computer Design

advertisement
ICS 252
Introduction to Computer Design
Lecture 14-Routing
Winter 2005
Eli Bozorgzadeh
Computer Science Department-UCI
References and Copyright
• Textbooks referred (none required)
– [Mic94] G. De Micheli
“Synthesis and Optimization of Digital Circuits”
McGraw-Hill, 1994.
– [CLR90] T. H. Cormen, C. E. Leiserson, R. L. Rivest
“Introduction to Algorithms”
MIT Press, 1990.
– [Sar96] M. Sarrafzadeh, C. K. Wong
“An Introduction to VLSI Physical Design”
McGraw-Hill, 1996.
– [She99] N. Sherwani
“Algorithms For VLSI Physical Design Automation”
Kluwer Academic Publishers, 3rd edition, 1999.
Winter 2005
ICS 252-Intro to Computer Design
2
References and Copyright (cont.)
• Slides:
http://www.ece.umn.edu/users/kia/Courses/EE5301/
– Slides used: (Modified by Kia when necessary)
• [©Sarrafzadeh] © Majid Sarrafzadeh, 2001;
Department of Computer Science, UCLA
• [©Sherwani] © Naveed A. Sherwani, 1992
(companion slides to [She99])
• [©Keutzer] © Kurt Keutzer, Dept. of EECS,
UC-Berekeley
http://www-cad.eecs.berkeley.edu/~niraj/ee244/index.htm
• [©Gupta] © Rajesh Gupta
UC-Irvine
http://www.ics.uci.edu/~rgupta/ics280.html
• [©Kang] © Steve Kang
UIUC
http://www.ece.uiuc.edu/ece482/
Winter 2005
ICS 252-Intro to Computer Design
3
Routing
• 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
– Levels of abstraction:
• Global routing
• Detailed routing
• Objectives
– Cost components:
• Area (channel width) – min congestion in prev levels
helped
• Wire delays – timing minimization in previous levels
• Number of layers (less layers  less expensive)
• Additional cost components: number of bends, vias
Winter 2005
ICS 252-Intro to Computer Design
4
Routing Anatomy
Top
view
Symbolic
Layout
Winter 2005
3D
view
Metal layer 3
Via
Metal layer 2
Metal layer 1
ICS 252-Intro to Computer Design
Note: Colors used
in this slide are not
standard
5
Global vs. Detailed Routing
• Global routing
– Input: detailed placement, with exact
terminal locations
– Determine “channel” (routing region) for
each net
– Objective: minimize area (congestion), and
timing (approximate)
• Detailed routing
– Input: channels and approximate routing
from the global routing phase
– Determine the exact route and layers for
each net
– Objective: valid routing, minimize area
(congestion), meet timing constraints
– Additional objectives: min via, power
Figs. [©Sherwani]
Winter 2005
ICS 252-Intro to Computer Design
6
Routing Environment
• Routing regions
1
1 4 5 4
– Channel
• Fixed height ?
1,3
( fixed number of tracks)
• Fixed terminals on top and bottom
3 2 2 3
• More constrained problem: switchbox.
Terminals on four sides fixed
4,5
5
– Area routing
• Wires can pass through any region not occupied by cells
(exception: over-the-cell routing)
• Routing layers
– Could be pre-assigned (e.g., M1 horizontal, M2 vert.)
– Different weights might be assigned to layers
Winter 2005
ICS 252-Intro to Computer Design
7
Routing Environment
• Chip architecture
– Full-custom:
Feedthroughs
• No constraint on routing regions
– Standard cell:
• Variable channel height?
Channel
Failed net
• Feed-through cells connect
channels
– FPGA:
• Fixed channel height
Tracks
• Limited switchbox connections
• Prefabricated wire segments have
different weights
Failed connection
Figs. [©Sherwani]
Winter 2005
ICS 252-Intro to Computer Design
8
Taxonomy of VLSI Routers
Routers
Global
Graph Search
Detailed
Restricted
Steiner
Iterative
Maze
Hierarchical
Winter 2005
Specialized
General
Purpose
River
Maze
Switchbox
Line Probe
Channel
Line Expansion
Greedy
Left-Edge
ICS 252-Intro to Computer Design
Power/Gnd
Clock
[©Keutzer]
9
Global Routing
[©Sarrafzadeh]
• Stages
– Routing region definition
– Routing region ordering
– Steiner-tree / area routing
• Grid
– Tiles super-imposed on placement
– Regular or irregular
– Smaller problem to solve,
higher level of abstraction
– Terminals at center of grid tiles
M2
M1
M3
• Edge capacity
– Number of nets that can pass a certain
grid edge (aka congestion)
– On edge Eij,
–
Winter 2005
Capacity(Eij)  Congestion(Eij)
ICS 252-Intro to Computer Design
10
Grid Graph
• Coarse or fine-grain
• Vertices: routing regions, edges: route exists?
• Weights on edges
– How costly is to use that edge
– Could vary during the routing (e.g., for congestion)
– Horizontal / vertical might have different weights
t1 t2
t3
t4
t1 t2
1
t1 t2
Winter 2005
t3
2
t4
1
t3
t4
1
2
1
1
1
1
1
ICS 252-Intro to Computer Design
11
[©Sherwani]
Global Routing – Graph Search
•
•
•
•
•
Good for two-terminal nets
Build grid graph (Coarse? Fine?)
Use graph search algorithms, e.g., Dijkstra
Iterative: route nets one by one
How to handle:
– Congestion?
– Critical nets?
• Order of the nets to route?
– Net criticality
– Half-perimeter of the bounding box
– Number of terminals
Winter 2005
ICS 252-Intro to Computer Design
12
Global Routing – Maze Routing
• Similar to breadth-first search
– Very simple algorithm
– Works on grid graph
– Time complexity: grid size (NxN)
• Algorithm
– Propagate a “wave” from source
until hit the sink
(implemented using a queue)
– Trace back to find the path
5
5
4
5
4
3
3
2
2
1
s
3
2
1
t5
4
5
3
4
5
1
2
3
4
2
3
4
5
• Guaranteed to find the optimal solution
– Usually multiple optimal solutions exist
• More than two terminals?
– For the third terminal, use the path between the first two as the
source of the wave
Winter 2005
ICS 252-Intro to Computer Design
13
5
Maze Routing
• Key to popularity:
– Simplicity
– Guaranteed to find the optimal solution
– Can realize more complex cost functions too
(e.g., number of bends in a path)
• Weakness:
– Multiple terminals not handled efficiently
– Dependent on grid, a two dimensional data structure
• Different variations exist
– Soukup’s alg:
• First use DFS, when get to an obstacle, use BFS to get around
• No guarantee to find the shortest path
Winter 2005
ICS 252-Intro to Computer Design
14
Multiple Terminal Nets: Steiner
Tree
• Steiner tree (aka Rectilinear Steiner Tree – RST):
– A tree connecting multiple terminals
• Original points: “demand points” – set D
• Added points: “Steiner points” – set S
– Edges horizontal or vertical only
• Steiner Minimum Tree (SMT)
– Similar to minimum spanning tree (MST)
– But finding SMT is NP-complete
– Many good heuristics introduced to find SMT
• Algorithm
– Find MST
– Pass horizontal and vertical lines from each terminal to get
the Hannan grid (optimal solution is on this grid)
– Convert each edge of the MST to an L-shaped route
on Hannan grid (add a Steiner point at the corner of L)
Winter 2005
ICS 252-Intro to Computer Design
15
Steiner Tree
• Hannan grid reduces solution space (smaller grid)
– For min length RST, Steiner points always on Hannan grid
• Convert MST to rectilinear paths
– Length bounded by 1.5 times optimal SMT length
• Use alternate “L” routes to find the minimum tree
Steiner
point
MSP (length=11)
Winter 2005
Steiner tree (len=13)
ICS 252-Intro to Computer Design
16
[©Sherwani]
Steiner Tree Routing
• Can apply different costs to different regions
(or horizontal/vertical preference)
• Order of the nets
– Sequential
• Use # of terminals, criticality, etc. to determine order
– Parallel
• Divide the chip into large regions, perform the routing in parallel
• Key to popularity
– Fast (not theoretically, but practically)
– Bounded solution quality
• Shortcomings
– Difficult to predict or avoid congestion
Winter 2005
ICS 252-Intro to Computer Design
17
Global Routing Approaches
• A combination of different approaches
might be used in chip-level routing
– Route simple nets (2-3 pins in local area) directly
(e.g., L-shaped or Z-shaped)
– Use a “close to optimal” Steiner Tree algorithms to
route nets of intermediate length
– Route remaining “big” nets using a maze router
• Ordering
– Some ordering is chosen, if can route all, then
done,
otherwise:
– Rip-up and Re-route
Winter 2005
ICS 252-Intro to Computer Design
[©Keutzer
]
18
Download