0% found this document useful (0 votes)
24 views37 pages

Routing

Routing algorithms can be categorized as global or detailed. Global routing determines the routing regions for each net at a higher level of abstraction to minimize area and approximate timing. Detailed routing takes the routing regions from global routing and determines the exact routes and layers to meet timing constraints while minimizing area and other objectives. Common global routing approaches include maze routing on a grid graph, Steiner tree algorithms to route multi-terminal nets, and combinations of different algorithms.

Uploaded by

Dr Kavita Khare
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views37 pages

Routing

Routing algorithms can be categorized as global or detailed. Global routing determines the routing regions for each net at a higher level of abstraction to minimize area and approximate timing. Detailed routing takes the routing regions from global routing and determines the exact routes and layers to meet timing constraints while minimizing area and other objectives. Common global routing approaches include maze routing on a grid graph, Steiner tree algorithms to route multi-terminal nets, and combinations of different algorithms.

Uploaded by

Dr Kavita Khare
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 37

Routing

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.
References and Copyright (cont.)
• 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/
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:
o Global routing
o Detailed routing
• Objectives
 Cost components:
o Area (channel width) – min congestion in prev levels helped
o Wire delays – timing minimization in previous levels
o Number of layers (fewer layers  less expensive)
o Additional cost components: number of bends, vias
Routing Anatomy
3D
Top view
view
Layout
Symbolic

Metal layer 3
Via
Note: Colors used
Metal layer 2 in this slide are not
Metal layer 1 standard
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]
Routing Environment
• Routing regions 1 1 4 5 4

 Channel
o Fixed height ? 1,3 4,5
( fixed number of tracks)
o Fixed terminals on top and bottom
o More constrained problem: switchbox. 3 2 2 3 5
Terminals on four sides fixed
 Area routing
o 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
Routing Environment
• Chip architecture
 Full-custom: Feedthroughs
o No constraint on routing regions
 Standard cell: Channel Failed net
o Variable channel height?
o Feed-through cells connect
channels
 FPGA: Tracks
o Fixed channel height
o Limited switchbox connections
o Prefabricated wire segments
have different weights Failed connection

Figs. [©Sherwani]
Taxonomy of VLSI Routers
Routers

Global Detailed Specialized

Graph Search General Power/Gnd


Restricted
Purpose
Steiner Clock
River Maze
Iterative
Switchbox Line Probe
Maze
Channel Line Expansion

Hierarchical Greedy Left-Edge


[©Keutzer]
Global Routing
[©Sarrafzadeh]
• Stages
 Routing region definition
M2
 Routing region ordering M1
 Steiner-tree / area routing
• Grid
 Tiles super-imposed on placement M3
 Regular or irregular
 Smaller problem to solve,
higher level of abstraction
 Terminals at center of grid tiles
• Edge capacity
 Number of nets that can pass a
certain grid edge (aka congestion)
 On edge E ,
ij
Capacity(Eij)  Congestion(Eij)
Grid Graph
• Course 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 t1 t2 t3
t4 t4

1 1 1

t1 t2 t3 2 2 1 1
t4 1 1 1
[©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
Global Routing – Maze Routing
• Similar to breadth-first search 5
 Very simple algorithm 5 4 5
 Works on grid graph 4 3 t5 4 5
 Time complexity: grid size (NxN) 3 2 3 4 5
• Algorithm 2 1 s 1 2 3 4 5
 Propagate a “wave” from source 3 2 1 2 3 4 5
until hit the sink
(implemented using a queue)
 Trace back to find the path
• 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
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:
o First use DFS, when get to an obstacle, use BFS to get around
o No guarantee to find the shortest path
Multiple Terminal Nets: Steiner Tree
• Steiner tree (aka Rectilinear Steiner Tree – RST):
 A tree connecting multiple terminals
o Original points: “demand points” – set D
o 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)
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) Steiner tree (len=13)

[©Sherwani]
Steiner Tree Routing
• Can apply different costs to different regions
(or horizontal/vertical preference)
• Order of the nets
 Sequential
o Use # of terminals, criticality, etc. to determine order
 Parallel
o 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
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

[©Keutzer]
Taxonomy of VLSI Routers
Routers

Global Detailed Specialized

Graph Search General Power/Gnd


Restricted
Purpose
Steiner Clock
River Maze
Iterative
Switchbox Line Probe
Maze
Channel Line Expansion

Hierarchical Greedy Left-Edge


[©Keutzer]
Detailed Routing: Channel vs. Switchbox
a) Channels have no conflicts
b) Conflicting channels
c) Conflict resolved using L-shaped channels
• Order matters
d) Switchbox used to resolve the conflict
• Order matters
• Harder problem (compared to channel routing)

Switch-
1 3
box
3 1 1
4 2
2 2 2
1
(c) (d)
(a) (b) [©Sherwani]
Channel Routing Problem
• Input
 Fixed terminal locations on the top and bottom
 Possibly floating terminals on the left and right
 Possibly fixed channel capacity constraint
Grid-based
(capacity = max # of horizontal wires between
the top and bottom boundaries of the channel)
 Either gridless (aka area-based) or grid-based
• In the algorithms we consider
 Constraints:
o Grid structure
o Two routing layers (one for H, another for V) Gridless
Still relevant?
 Minimize
o # tracks (channel height)
o Total wire length
o # vias [©Sherwani]
[©Keutzer]
Channel Routing Algorithms and Terminology
• General case is NP-Complete
• Algorithms
 Simple case: left-edge algorithm (P)
 General case: NP  heuristics
o Problem defined using horizontal constraints graph
and vertical constraints graph
o Either graph-based algorithms or
greedy algorithms are used
nets
• Terminology 2 2 branch 1 1
via

tracks
trunk pins

[©Keutzer]
2 1
Channel Routing Example
• Problem instance:
1 4 5 1 6 7 4 9 10 10

2 3 5 3 5 2 6 8 9 8 7 9
• Solution:
1 4 5 1 6 7 4 9 10 10

2 3 5 3 5 2 6 8 9 8 7 9 [©Keutzer]
Vertical Constraint Graph
• Represents the relative vertical positions of
different net trunks (tracks) 1 4 5

 Node: represents a net


 Edge (x, y): if at the same column,
x has a terminal on the upper edge and 2 3 5 3
y has a terminal on the lower edge 2 1 4
 (a,b) means that net “a” has to be
above “b” – why? 3 5

• Lower bound:
b a
 # tracks  longest path in VCG
? a
• VCG may have a cycle!
 What shall we do?? b
a b
Horizontal / Vertical Constraint Graphs
• Channel routing problem 1 4 5 1 6 7 4 9 1010
can be completely
characterized by VCG and
HCG
2 3 5 3 5 2 6 8 9 8 7 9

1 4 10 1
3 2

5 9 7 5 6
4
6 7
3 8
8
2 9 10
Vertical constraint graph (VCG) Horizontal constraint graph (HCG)
[©Keutzer]
Channel Density
• A net extends from its leftmost 1 4 5 1 6 7
terminal to its rightmost one
• Local density at column C
 ld (C) = # nets split by column C
2 3 5 3 5 2 6 8
• Channel density
 d = max ld(c) over all C 1
• Relationship to HCG? 3 2
 Local density  clique in HCG 5 6
 d  size of maximum clique in HCG 4
7
• Lower bound: 8
 # tracks  d
[©Keutzer]
Left-edge Channel Routing Algorithm
• Used when no VCG edges
• Finds the optimal solution (# tracks = d)
• Nets are sorted according to their left endpoints

• Algorithm:
Create an initial track t
For all nets ni in the order of their left endpoints
if feasible to place the net on an existing track tj,
assign net ni to track tj.
else create a new track tnew and assign ni to it.

• Time complexity: O(n log n)


Doglegs
• Doglegs can reduce the longest path in VCG
a a b c a a a b c a c2
c2
b
c1 b d
c
a b c d d c1
a b c d d d

• Doglegs break cycles in VCG


b a b a b1
a b1
?
a
b2
b
a b a b b2

[©Keutzer]
Greedy Channel Router
• Many greedy algorithms for channel routing exist
• Example: Rivest and Fiduccia DAC’82
 Simple, linear algorithm
 Guarantees routing of all nets
 Uses doglegs (both restricted and unrestricted)
 BUT may extend to right hand side of the channel
• Other techniques
 Hierarchical: divide the channel into two smaller
channels, route each small channel, merge
 VCG reduction: nets that can be placed on the same
track merged into one VCG node to reduce VCG size
Greedy Router: Rivest and Fiduccia

• Proceed column by column (left to right)


• Make connections to all pins in that column
• Free up tracks by collapsing as many tracks as possible to
collapse nets
• Shrink range of rows occupied by a net by using doglegs
• If a pin cannot enter a channel, add a track
• O(pins) time
[©Keutzer]
Rivest and Fiduccia: Example
• Example output:

• Observations:
 Always succeeds
(even if cyclic conflict
is present)
 Allows unrestricted
doglegs
 Allows a net to occupy
more than 1 track at a
given column
 May use a few
columns off the edge [©Keutzer]
Switchbox Routing
• Much harder problem than channel routing
 Two-dimensional problem
(channel routing was in a way one dimensional)
 Need to solve in a hierarchical flow
(split a channel
into two, route one
first, and route the
second as a
switchbox)
• A number of
complex heuristic
algorithms exist

[©Sarrafzadeh]
FPGA Architecture - Layout
• Island FPGAs
 Array of functional units
 Horizontal and vertical routing
channels connecting the
functional units
 Versatile switch boxes
 Example: Xilinx, Altera
• Row-based FPGAs
 Like standard cell design
 Rows of logic blocks
 Routing channels (fixed width)
between rows of logic
 Example: Actel FPGAs
FPGA Programmable Switch Elements
• Used in connecting:
 The I/O of functional units
to the wires

 A horizontal wire to a
vertical wire

 Two wire segments to


form a longer wire
segment
FPGA Routing Channels Architecture
• Note: fixed channel widths (tracks)
• Should “predict” all possible connectivity
requirements when designing the FPGA chip
• Channel -> track -> segment
segment

track channel

• Segment length?
 Long: carry the signal longer,
less “concatenation” switches, but might waste track
 Short: local connections, slow for longer connections
FPGA Switch Boxes
• Ideally, provide switches
for all possible connections

• Trade-off:
 Too many switches:
o Large area
o Complex to program
 Too few switches:
o Cannot route signals

One possible
solution
Xilinx 4000
FPGA Routing
• Routing resources pre-fabricated
 100% routability using existing channels
 If fail to route all nets, redo placement
• FPGA architectural issues
 Careful balance between number of logic blocks and
routing resources (100% logic area utilization?)
 Designing flexible switchboxes and channels
(conflicts with high clock speeds)
• FPGA routing algorithms
 Graph search algorithms
o Convert the wire segments to graph nodes, and switch
elements to edges
 Bin packing heuristics (nets as objects, tracks as bins)
 Combination of maze routing and graph search
algorithms

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy