Robust Layer Assignment for Via Optimization in Multi-layer Global Routing
Tsung-Hsien Lee
- Inst. of Information Science
Academia Sinica Ting-Chi Wang
- Dept. of Computer Science
National Tsing Hua University
1
Robust Layer Assignment for Via Optimization in Multi-layer Global - - PowerPoint PPT Presentation
Robust Layer Assignment for Via Optimization in Multi-layer Global Routing Tsung-Hsien Lee Ting-Chi Wang Inst. of Information Science Dept. of Computer Science Academia Sinica National Tsing Hua University 1 Outline Introduction
Tsung-Hsien Lee
Academia Sinica Ting-Chi Wang
National Tsing Hua University
1
Introduction Motivation Algorithm Experimental results Conclusions Problem Formulation
2
Layer assignment is a major step in multi-layer global routing
3
Projection Projection 2D Routing 2D Routing Layer Layer Assignment Assignment
p1 p3 p2 p1 ′ p2 ′ p3 ′ p1 ′ p2 ′ p3 ′ p1 p3 p2
Projection Projection 2D Routing 2D Routing Layer Layer Assignment Assignment
p1 p3 p2 p1 ′ p1 ′ p2 ′ p2 ′ p3 ′ p3 ′ p1 ′ p1 ′ p2 ′ p2 ′ p3 ′ p3 ′ p1 p3 p2
Layer assignment determines the final routing result
⎯ A bad layer assignment devastates all the previous
efforts
B a d B a d L a y e r L a y e r A s s i g n m e n t A s s i g n m e n t Additional wire overflow longer wirelength
p1 p3 p2 p1 ′ p2 ′ p3 ′
4
Layer assignment determines the final routing result
⎯ A good layer assignment keeps all the previous efforts
G
G
L a y e r L a y e r A s s i g n m e n t A s s i g n m e n t p3 p2 p1 No additional wire overflow Minimal wirelength
p1 ′ p2 ′ p3 ′
5
ISPD’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 !
Allowable in the contest Still allowable in the contest
6
A better layer assignment should take the via capacity into account
B e t t e r B e t t e r L a y e r L a y e r A s s i g n m e n t A s s i g n m e n t G
G
L a y e r L a y e r A s s i g n m e n t A s s i g n m e n t
Via overflow
net A net B
7
[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
Obstacles and Pre-routed wires
Didn’t specify in the benchmarks
8
“Congestion is modeled by including capacity
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-routed wire
tile width tile height capacity Transform Transform
9
Via capacity of a tile
= (tile_area – preoccupied_area) / via_area = (capacity × tile_width) / via_area
routing track routing track routing track tile width
pre-routed wire
tile width tile height capacity Transform Transform
10
Given 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
Layer Layer Assignment Assignment p3 p2 p1 No additional wire overflow Minimal via overflow Minimal wirelength
p1 ′ p2 ′ p3 ′
11
Our algorithm contains 3 steps Single-net Layer Assignment
12
Net Order
Refinement
Net Order
Net Order Determination
Due to the limited routing resources, a net processed earlier has larger solution space
# nets processed Routing resources # nets processed Solution space for a net
Net order should maximize resource utilization
13
For 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
A net with longer length will occupy more routing resources
⎯ Length(T) ↑, Score(T) ↓
net A net B
net A net B
15
The 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
Changing 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
Score(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
[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 COLA COLA
p3 p2 p1
p2 ′
19
Via count
p1 ′ p3 ′
[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
Extends from COLA, our algorithm can deal with via
Extended Extended COLA COLA
p3 p1 p2
20
Via count Via overflow
p2 ′ p1 ′ p3 ′
DP-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 b z
Assign a
a b
Assign b
Vias are placed after edges are assigned
⎯ Vias are determined by edges and pins
Since vias on different tiles are independent, the via
independently
22
a b
I II III IV
Memorize the minimum via overflow one on each stage and propagate it to the next stage
23
a b
I II III IV
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
24
Optimal result
net A net B
Can’t pass
2D view 3D view
Refinement can improve the via overflow of the
⎯ Rip-up and re-layer assignment for each net
Enhance the net order
25
Net 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
If net A chooses improperly, net B will generate via
⎯ It is impossible for net A to know how to choose before net
B is assigned
Via overflow
27
Net B Net B’ ’s s Layer Layer Assignment Assignment
With 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 A Net A’ ’s s re re-
layer Assignment Assignment
29
2D routing results
3D routing results
Compression
Layer Assignment 3D results
Without 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”
With refinement, our algorithm induced 5~15% via
COLA [1]
31
[1] Lee et al., TCAD’08, “Congestion-Constrained Layer Assignment for Via Minimization in Global Routing”
Develop a layer assignment algorithm considering via overflow and via count Future work: a more effective net order and layer assignment method
32
33