![Page 1: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/1.jpg)
Robust Layer Assignment for Via Optimization in Multi-layer Global Routing
Tsung-Hsien LeeInst. of Information Science
Academia Sinica
Ting-Chi WangDept. of Computer Science
National Tsing Hua University
1
![Page 2: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/2.jpg)
OutlineIntroduction
Motivation
Algorithm
Experimental results
Conclusions
Problem Formulation
2
![Page 3: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/3.jpg)
Introduction to Layer AssignmentLayer assignment is a major step in multi-layer global routing
3
ProjectionProjection
2D Routing
2D Routing
LayerLayerAssignmentAssignment
p1
p3
p2
p1′ p2′
p3′
p1′ p2′
p3′
p1
p3
p2
ProjectionProjection
2D Routing
2D Routing
LayerLayerAssignmentAssignment
p1
p3
p2
p1′p1′ p2′p2′
p3′p3′
p1′p1′ p2′p2′
p3′p3′
p1
p3
p2
![Page 4: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/4.jpg)
Introduction to Layer AssignmentLayer assignment determines the final routing result⎯ A bad layer assignment devastates all the previous
efforts
BadBad Layer
Layer
Assignment
Assignment
Additional wire overflowlonger wirelength
p1
p3
p2
p1′ p2′
p3′
4
![Page 5: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/5.jpg)
Introduction to Layer AssignmentLayer assignment determines the final routing result⎯ A good layer assignment keeps all the previous efforts
GoodGood Layer
Layer
Assignment
Assignment
p3
p2
p1
No additional wire overflowMinimal wirelengthp1′ p2′
p3′
5
![Page 6: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/6.jpg)
MotivationISPD’07 and ISPD’08 Global Routing Contest did not limit # of vias placed in a tile
Routing result without considering via capacity is not practical !
Allowablein the contest
Still allowablein the contest
6
![Page 7: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/7.jpg)
MotivationA better layer assignment should take the via capacity into account
Better
Better LayerLayer
Assignment
Assignment
GoodGood Layer
Layer
Assignment
Assignment
Via overflow
net A
net B
7
![Page 8: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/8.jpg)
Previous Work for Via Capacity[Hsu et al., ICCAD’08]“Multi-layer Global Routing Considering Via and Wire Capacities”⎯ Considering via capacity for each tile⎯ No detailed information of its layer assignment step
Via capacity of a tile= remaining_area / via_area= (tile_area – preoccupied_area) / via_area
Obstaclesand
Pre-routed wiresDidn’t specify
in the benchmarks8
![Page 9: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/9.jpg)
Problem Formulation“Congestion is modeled by including capacity adjustments. In the global routing benchmarks, there may be obstacles, or pre-routed wires.” -quoted from “details of file formats” of ISPD’08 Global Routing Contest rules
routing track
routing track
routing track
tile width
pre-routedwire obstacle
tile width
tile
heig
ht capacity
TransformTransform
9
![Page 10: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/10.jpg)
Problem FormulationVia capacity of a tile= (tile_area – preoccupied_area) / via_area= (capacity × tile_width) / via_area
routing track
routing track
routing track
tile width
pre-routedwire obstacle
tile width
tile
heig
ht capacity
TransformTransform
10
![Page 11: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/11.jpg)
Problem FormulationGiven a 2D routing result, finds a 3D counterpart through layer assignment⎯ Minimize via overflow, and wirelength⎯ Keep the same wire overflow from 2D routing result
LayerLayerAssignmentAssignment
p3
p2
p1
No additional wire overflowMinimal via overflowMinimal wirelength
p1′ p2′
p3′
11
![Page 12: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/12.jpg)
AlgorithmOur algorithm contains 3 steps
Single-net Layer Assignment
12
Net O
rder
Refinement
Net O
rderNet Order
Determination
![Page 13: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/13.jpg)
Net Order DeterminationDue to the limited routing resources, a net processed earlier has larger solution space
# nets processed
Routingresources
# nets processed
Solutionspace for a net
Net order should maximize resource utilization
13
![Page 14: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/14.jpg)
Net Order DeterminationFor each 2D net T, we use 3 parameters to determine its order - Score(T)⎯ Length(T) : # of edges in T⎯ PinNum(T) : # of pins in T⎯ Bends(T) : # of bends in T
Net Order derived from sorting Score(T) for each net T decreasingly
14
net B
net A A has 4 edges, 3 pins, and 1 bend
B has 2 edges, 2 pins, and 0 bend
net A
net B
net A
net B
net B
net A A has 4 edges, 3 pins, and 1 bend
B has 2 edges, 2 pins, and 0 bend
net A
net B
net A
net B
net A
net B
net A
net B
![Page 15: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/15.jpg)
Net Order Determination — LengthA net with longer length will occupy more routing resources⎯ Length(T) ↑, Score(T) ↓
net A
net B
net A
net B
15
![Page 16: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/16.jpg)
Net Order Determination — PinNumThe role of pin in global routing, just like the role of checkpoints in race⎯ PinNum(T) ↑, Score(T) ↑
net A
net B
3 pins = 3 checkpoints
2 pins = 2 checkpoints
net A
net B
16
![Page 17: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/17.jpg)
Net Order Determination — BendsChanging routing direction needs vias, so bend is similar to pin⎯ Bends(T) ↑, Score(T) ↑
net A
net B
1 bend at least needs an via
0 bend may not need vias
net A
net B
17
![Page 18: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/18.jpg)
Net Order DeterminationScore(T)’s relationships with Length(T), PinNum(T), and Bends(T).⎯ Length(T) ↑, Score(T) ↓⎯ PinNum(T) ↑, Score(T) ↑⎯ Bends(T) ↑, Score(T) ↑
Score(T)= (α× Bends(T) +β× PinNum(T)) / Length(T)
18
![Page 19: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/19.jpg)
Single-net Layer Assignment[Lee et al., TCAD’08]“Congestion-Constrained Layer Assignment for Via Minimization in Global Routing”⎯ COLA finds a layer assignment result with minimum via
count for a 2D net
COLACOLA
p3
p2
p1
p2′
19
Via countp1′
p3′
![Page 20: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/20.jpg)
Single-net Layer Assignment[Lee et al., TCAD’08]“Congestion-Constrained Layer Assignment for Via Minimization in Global Routing”⎯ COLA finds a layer assignment result with minimum via
count for a 2D netExtends from COLA, our algorithm can deal with via overflow and via count
ExtendedExtendedCOLACOLA
p3
p1
p2
20
Via count
Via overflow
p2′p1′
p3′
![Page 21: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/21.jpg)
Single-net Layer AssignmentDP-based layer assignment method⎯ Minimize increase on via overflow, and via count
For a net, assign one edge at a time
21
2D view
3D view
a bz
Assign a
a bA
ssign b
![Page 22: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/22.jpg)
Single-net Layer AssignmentVias are placed after edges are assigned⎯ Vias are determined by edges and pins
Since vias on different tiles are independent, the via overflow increase on each tile can be calculated independently
22
a b
I II III IV
![Page 23: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/23.jpg)
Single-net Layer AssignmentMemorize the minimum via overflow one on each stage and propagate it to the next stage
23
a b
I II III IV
![Page 24: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/24.jpg)
In the end, the optimal result is the one with minimum total via overflow increase
If there is a tie on via overflow increase, choose the one with minimum via count
Single-net Layer Assignment
24
Optimal result
![Page 25: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/25.jpg)
Refinement
net A
net B
Can’t pass2D view 3D view
Refinement can improve the via overflow of the original layer assignment result⎯ Rip-up and re-layer assignment for each net
Enhance the net order
25
![Page 26: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/26.jpg)
RefinementNet A assigned first, and net B assigned second⎯ Net A has 2 choices with the same via overflow increase
and via count
I II
26
![Page 27: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/27.jpg)
RefinementIf net A chooses improperly, net B will generate via overflow inevitably⎯ It is impossible for net A to know how to choose before net
B is assigned
Via overflow
27
Net BNet B’’ss LayerLayerAssignmentAssignment
![Page 28: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/28.jpg)
RefinementWith refinement, the via overflow will be improved by the re-layer assignment of net A⎯ The re-layer assignment will not generate worse result
than pervious
Via overflow No via overflow
28
Net ANet A’’s s rere--layerlayerAssignmentAssignment
![Page 29: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/29.jpg)
Experiment Flow
29
2D routing results
COLA
3D routing results
Compression
Ours
Layer Assignment3D results
![Page 30: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/30.jpg)
Experimental Results without RefinementWithout refinement, our algorithm induced 23~35%via overflow with 1~3% WL increase compared with COLA [1]
30
[1] Lee et al., TCAD’08, “Congestion-Constrained Layer Assignment for Via Minimization in Global Routing”
![Page 31: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/31.jpg)
Experimental Results with RefinementWith refinement, our algorithm induced 5~15% via overflow with 4~6% WL increase compared with COLA [1]
31
[1] Lee et al., TCAD’08, “Congestion-Constrained Layer Assignment for Via Minimization in Global Routing”
![Page 32: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/32.jpg)
ConclusionsDevelop a layer assignment algorithm considering via overflow and via countFuture work: a more effective net order and layer assignment method
32
![Page 33: p2-ISPD2009 Robust Layer Assignment for Via Optimization ... · # nets processed Routing ... ⎯COLA finds a layer assignment result with minimum via count for a 2D net Extends from](https://reader035.vdocument.in/reader035/viewer/2022070109/6043e9fa19387875d329c6f0/html5/thumbnails/33.jpg)
Q & A
Thank You!and
33