Steiner Routing
ECE6133 Physical Design Automation of VLSI Systems
- Prof. Sung Kyu Lim
Steiner Routing ECE6133 Physical Design Automation of VLSI Systems - - PowerPoint PPT Presentation
Steiner Routing ECE6133 Physical Design Automation of VLSI Systems Prof. Sung Kyu Lim School of Electrical and Computer Engineering Georgia Institute of Technology ARM A53 Placement 1/11 TSMC 28nm BEOL Spec 2/11 Width Pitch R C Dir.
1/11
2/11
Width (um) Pitch (um) Dir. M1 0.05 0.135 V M2 0.05 0.100 H M3 0.05 0.100 V M4 0.05 0.100 H M5 0.05 0.100 V M6 0.05 0.100 H R (ohm/um) C (fF/um) M1 7.24 0.172 M2 9.05 0.175 M3 9.06 0.181 M4 9.05 0.177 M5 9.06 0.180 M6 9.05 0.177
3/11
M1 M2 M3
4/11
M4 M5 M6
5/11
yellow: signal
6/11
yellow: signal magenta: clock, red: power/ground
7/11
yellow: signal magenta: clock
8/11
yellow: signal magenta: clock
9/11
yellow: signal magenta: clock, red: power/ground
10/11
yellow: signal cyan: power/ground
11/11
magenta: power/ground
placement Generates a "loose" route for each net. Assigns a list of routing regions to each net without specifying the actual layout of wires. global routing compaction Finds the actual geometric layout of each net within the assigned routing regions. detailed routing
Global routing Detailed routing
– Placement constraint: usually based on fixed placement – Number of routing layers – Geometrical constraints: must satisfy design rules – Timing constraints (performance-driven routing): must satisfy delay constraints – Crosstalk? – Process variations?
Two−layer routing
w s
Geometrical constraint
to each other.
are as clear circles.
a b c d a b c d
vertices.
channel intersection graph extended channel intersection graph
Steiner tree Ti for each net Ni, 1 ≤ i ≤ n, such that U(ej) ≤ c(ej), ∀ej ∈ E and n
i=1 L(Ti) is minimized,
where – c(ej): capacity of edge ej; – xij = 1 if ej is in Ti; xij = 0 otherwise; – U(ej) = n
i=1 xij: # of wires that pass through the channel corre-
sponding to edge ej; – L(Ti): total wirelength of Steiner tree Ti.
i=1 L(Ti)) is mini-
mized (or the longest path between two points in Ti is minimized).
based on its priority (net ordering?).
plexity?)
global−routing algorithm sequential approach two−terminal multi−terminal line−search maze Steiner−tree based Lee Hadlock Soukup concurrent approach hierarchical integer programming
Demand Point B C D F J H
7 7 5 4 9 5 6 12 8 6 5 5 2 3 5 6 6 6
A I E G
(a) (b)
Hanan's Thm (69'): There exists an optimal RST with all Steiner points (set S) chosen from the intersection points of horizontal and vertical lines drawn from points of D.
(a) (b) (c) (d) (e)
Hwang's Thm (76'): The ratio of the cost of a rectilinear MST to that of an optimal RST is no greater than 3/2.
Routing Practical Problems in VLSI Physical CAD 1-Steiner Algorithms
Definition
Routing Practical Problems in VLSI Physical CAD 1-Steiner Algorithms
Can Reduce Wirelength
Routing Practical Problems in VLSI Physical CAD 1-Steiner Algorithms
Iterative 1-Steiner Insertion Algorithm
Keep adding 1-Steiner point one-by-one until no more gain
Naïve implementation: O(n2 × n log n × n) Sophisticated implementation: O(n3)
Practical Problems in VLSI Physical Design 1-Steiner Algorithm (1/17)
Perform 1-Steiner Routing by Kahng/Robins
Practical Problems in VLSI Physical Design 1-Steiner Algorithm (2/17)
There are six 1-Steiner points
before insertion
Practical Problems in VLSI Physical Design 1-Steiner Algorithm (3/17)
before insertion
Practical Problems in VLSI Physical Design 1-Steiner Algorithm (4/17)
Need to break tie again
before insertion
Practical Problems in VLSI Physical Design 1-Steiner Algorithm (5/17)
Tree completed: all edges are rectilinearized
before insertion
Routing Practical Problems in VLSI Physical CAD 1-Steiner Algorithms
Interesting Observation
Routing Practical Problems in VLSI Physical CAD 1-Steiner Algorithms
Things to do Thus, the gain is
Routing Practical Problems in VLSI Physical CAD 1-Steiner Algorithms
Multi-pass Heuristic
Entire algorithm can be repeated
Practical Problems in VLSI Physical Design 1-Steiner Algorithm (6/17)
Perform a single pass of Borah/Owens/Irwin
Practical Problems in VLSI Physical Design 1-Steiner Algorithm (7/17)
Practical Problems in VLSI Physical Design 1-Steiner Algorithm (8/17)
Three nodes can pair up with (b,c)
l(a,c) − l(p,a) = 4 − 2
Practical Problems in VLSI Physical Design 1-Steiner Algorithm (9/17)
All three pairs have the same gain
l(b,d) − l(p,d) = 5 − 4 l(c,e) − l(p,e) = 4 − 3
Practical Problems in VLSI Physical Design 1-Steiner Algorithm (10/17)
Two nodes can pair up with (b,d)
l(b,c) − l(p,c) = 4 − 3 l(b,c) − l(p,e) = 4 − 3
Practical Problems in VLSI Physical Design 1-Steiner Algorithm (11/17)
Three nodes can pair up with (c,e)
l(b,c) − l(p,b) = 4 − 3 l(b,d) − l(p,d) = 5 − 4
Practical Problems in VLSI Physical Design 1-Steiner Algorithm (12/17)
l(e,f) − l(p,f) = 3 − 2
Practical Problems in VLSI Physical Design 1-Steiner Algorithm (13/17)
Can merge with c only
l(c,e) − l(p,c) = 4 − 3
Practical Problems in VLSI Physical Design 1-Steiner Algorithm (14/17)
Max-gain pair table
Practical Problems in VLSI Physical Design 1-Steiner Algorithm (15/17)
Choose {b, (a,c)} (max-gain pair)
Practical Problems in VLSI Physical Design 1-Steiner Algorithm (16/17)
Choose {c, (e,f)} (last one remaining)
Routing Practical Problems in VLSI Physical CAD 1-Steiner Algorithms
Kahng/Robins vs Borah/Owens/Irwin
Kahng/Robins tends to give better results Borah/Owens/Irwin runs much faster: O(n4 log n) vs O(n2)
Routing Practical Problems in VLSI Physical CAD BRBC Algorithm
Why Radius?
Longest source-sink path length among all sinks Smaller path resistance: better performance
Both Radius and Cost?
Cost = wirelength Radius (= R) and wirelength (= C) are both important for RC-
Bounded PRIM vs Bounded Radius/Cost
Routing Practical Problems in VLSI Physical CAD BRBC Algorithm
Practical Problems in VLSI Physical Design Bounded Radius Routing (9/16)
Radius bound = ∞ = regular PRIM
Practical Problems in VLSI Physical Design Bounded Radius Routing (10/16)
Routing Practical Problems in VLSI Physical CAD BRBC Algorithm
Variation of PRIM’s MST algorithm
Routing Practical Problems in VLSI Physical CAD BRBC Algorithm
Comparison (e = 0, 0.5, infinity)
Radius bound/value increase Wirelength decreases
Practical Problems in VLSI Physical Design Bounded Radius Routing (1/16)
Perform bounded PRIM algorithm
Practical Problems in VLSI Physical Design Bounded Radius Routing (2/16)
Example
Practical Problems in VLSI Physical Design Bounded Radius Routing (3/16)
Radius bound = 12
edges connecting to nearest neighbors s-to-y path length along T ties broken lexicographically should be ≤ 12;
appropriate used first feasible appr-edge
Practical Problems in VLSI Physical Design Bounded Radius Routing (4/16)
Practical Problems in VLSI Physical Design Bounded Radius Routing (5/16)
Practical Problems in VLSI Physical Design Bounded Radius Routing (6/16)
Radius bound = 18
edges connecting to nearest neighbors s-to-y path length along T ties broken lexicographically should be ≤ 18;
appropriate used first feasible appr-edge should be ≤ 12
Practical Problems in VLSI Physical Design Bounded Radius Routing (7/16)
Practical Problems in VLSI Physical Design Bounded Radius Routing (8/16)
Practical Problems in VLSI Physical Design Bounded Radius Routing (11/16)
As the bound increases (12 → 18 → ∞)
Routing Practical Problems in VLSI Physical CAD BRBC Algorithm
“Shallow Light” Algorithm
Routing Practical Problems in VLSI Physical CAD BRBC Algorithm
Bounded-radius Spanning Tree Construction
Augmentation of Q: added edges shown in dotted lines Final BR-MST is SPT on Q
Routing Practical Problems in VLSI Physical CAD BRBC Algorithm
Routing Practical Problems in VLSI Physical CAD BRBC Algorithm
Practical Problems in VLSI Physical Design Bounded Radius Routing (12/16)
Perform BRBC under ε = 0.5
Practical Problems in VLSI Physical Design Bounded Radius Routing (13/16)
Example: visit a via (s,a)
Practical Problems in VLSI Physical Design Bounded Radius Routing (14/16)
dotted edges are added visit nodes based on L
Practical Problems in VLSI Physical Design Bounded Radius Routing (15/16)
Compute rooted shortest path tree on augmented Q
Practical Problems in VLSI Physical Design Bounded Radius Routing (16/16)
Under the same ε = 0.5