Placement
ECE6133 Physical Design Automation of VLSI Systems
- Prof. Sung Kyu Lim
Placement ECE6133 Physical Design Automation of VLSI Systems Prof. - - PowerPoint PPT Presentation
Placement ECE6133 Physical Design Automation of VLSI Systems Prof. Sung Kyu Lim School of Electrical and Computer Engineering Georgia Institute of Technology Placement The process of arranging the circuit components on a layout surface.
appropriate cost functions. – Considerations: routability/channel density, wirelength, cut size, performance, thermal issues, I/O pads.
1 2 3 4 5 6 7 8
1 7 5 8 2 3 6 4 1 2 3 4 5 6 8 7 wirelength = 10 wirelength = 12 A Density = 2 (2 tracks required) D B C E F G H A Shorter wirelength, 3 tracks required. B C D E F G H
that encloses all the pins of the net to be connected. Most widely used approximation!
2
) is n
2× #
n
and then to the next closest, etc.
4 4 3 3 3 3 3 3 3 4 4 7 semi−perimeter len = 11 10 7 8 8 complete graph len * 2/n = 17.5 chain len = 14 10 source−to−sink len = 17 8 Steiner tree len = 12 7 Spanning tree len = 13
– Cluster growth algorithm – Force-directed method – Algorithm by Goto – Min-cut based method
– Pairwise exchange – Simulated annealing: Timberwolf – Genetic algorithm
– Gordian, Gordian-L
3a 1 3b 4a 2 4b 3a 2a 3b 1 3c 2b 3d 6a5a6b 4 6c 5b6d
n/2 n/2
1 2 3 4 5 6 7 10a 9a10b8 10c 9b 10d
quadrature
bisection slice/bisection
n/4 n/4
n/2 n/2 n/2 n/4 n/4
C1 C2
C1 C2
n/k n/k (k−2)n/k C2
n/k (k−1)n/k C1
Algorithm: Min Cut Placement(N, n, C) /* N: the layout surface */ /* n: # of cells to be placed */ /* n0: # of cells in a slot */ /* C: the connectivity matrix */ 1 begin 2 if (n ≤ n0) then PlaceCells(N, n, C); 3 else 4 (N1, N2) ← CutSurface(N); 5 (n1, C1), (n2, C2) ← Partition(n, C); 6 Call Min Cut Placement(N1, n1, C1); 7 Call Min Cut Placement(N2, n2, C2); 8 end
etc.
P Q R
Q1 Q2 Q3
1 2 3 4 5 6 7 8 9 11 10 12 13 14 15 16
C1
C2
2,4,5,7 8,12,13,14 1,3,6,9 10,11,15,16 1 2 3 4 5 6
8
9
13 14 15 16
7
12 10 11
P
C4a C2
Q C4b R
O1
C4a C2
O2 C4b O3
C1 C3b C3a
circuits,” IEEE TCAD, Jan. 1985.
Does not consider the positions of terminal pins that enter a region. – What happens if we swap {1, 3, 6, 9} and {2, 4, 5, 7} in the previous example?
L1 L2
R
S L1 L2 S
prefer to have them in R1
R1 R2
L1 L2
R1 R2
L1 L2
R1 R2
center
p p
dummy cell Lower cost higher cost
P will stay in R1 for the rest of partitioning!
s
s
h/3
p
h
Use p! p
h/3
h
Don’t use p to bias the solution in either direction! R
L
p1 p2 p3 G minimum rectilinear Steiner tree
d
b
a
c
S
a
b
c d S
R
L
C1
a b c
d
C1
b
c
d
a p1
L1 L2
R1 R2
c
a
d
C1
L1
L2
R1
R2
b
R
L
C1
a b c
d
without terminal propagation with terminal propagation
unbiased partition
– Choose α and β preferably to balance row to balance row length (during re-arrangement )
C1 C2 C3 Row 1 Row 2 Row 3 Row 4
cells in C1→ row1 cells in C3→ row1 cells in C2 C2
α β α + β = 1
Row 1 Row 2
– Partitioning of circuit into 32 groups – Each group is either assigned to a single row or divided into 2 rows
1 1 1 1,2 1,2 1,2 1,2 2 2 2,3 2,3 2,3 2,3 3 3 3 3,4 3,4 3,4 3,4 4 4 4 4 5 5 5 5 5 5 4,5 4,5
a four-row standard cell design
– track density=147; feedthroughs=184
– without terminal propagation: t.d.=313; f.t.=591 – (t.d. reduced to 235 by iterative interchanges) – with terminal propagation: t.d.=186; f.t.=182 – (t.d. reduced to 152 by iterative interchanges) – Iterative Interchange Refinement is helpful
– Solutions within 10% of the best hand layout
– Much faster but solutions appeared to be not as good as K-L
– Much slower. If restricted to a reasonable CPU time, solutions are
– Terminal propagation is the bottleneck of CPU time
Practical Problems in VLSI Physical Design Mincut Placement (1/12)
Perform quadrature mincut onto 4 × 4 grid
undirected graph model w/ k-clique weighting thin edges = weight 0.5, thick edges = weight 1
Practical Problems in VLSI Physical Design Mincut Placement (2/12)
First cut has min-cutsize of 3 (not unique)
Practical Problems in VLSI Physical Design Mincut Placement (3/12)
Each cut minimizes cutsize
Practical Problems in VLSI Physical Design Mincut Placement (4/12)
16 partitions generated by 6 cuts
Practical Problems in VLSI Physical Design Mincut Placement (5/12)
Start with vertical cut
Practical Problems in VLSI Physical Design Mincut Placement (6/12)
Two terminals are propagated and are “pulling” nodes
Practical Problems in VLSI Physical Design Mincut Placement (7/12)
One terminal propagated
Practical Problems in VLSI Physical Design Mincut Placement (8/12)
Three terminals propagated
Practical Problems in VLSI Physical Design Mincut Placement (9/12)
One terminal propagated
Practical Problems in VLSI Physical Design Mincut Placement (10/12)
Three terminals propagated
Practical Problems in VLSI Physical Design Mincut Placement (11/12)
16 partitions generated by 15 cuts
Practical Problems in VLSI Physical Design Mincut Placement (12/12)
Quadrature vs recursive bisection + terminal propagation
– GORDIAN: Gordian: VLSI Placement by Quadratic Programming and slicing Optimization: J. M. Kleinhans, G.Sigl, F.M. Johannes, K.J. Antreich, IEEE TCAD, 1991 – GORDIAN-L: Analytical Placement: A Linear or a Quadratic Objective Function?: G. Sigl, K. Doll, F.M. Johannes, DAC91
– Global optimization: solves a sequence of quadratic programming problems – Partitioning: enforces the non-overlap constraints
Procedure Gordian l:=1; global-optimize(l); while (there exists |Ml|>k) for each r є R(l) partition(r, r’, r”); l++; setup-constraints(l); global-optimize(l); repartition(l); final-placement(l); endprocedure
module u
x y connection to
Squared wire length of net v pin vu (xuv, yuv) net node v (avu, bvu) = offset from center of u (xu, yu) (xv, yv) lvu
vu u uv vu u uv v uv M u v uv v
v
∈
2 2
X d CX X x Y d CY Y X d CX X y x w L
T T T y T T x T v N v v
+ = + + + = = ∑
∈
) ( ) , ( 2 1 φ φ φ
∈ = = =
∈ ∈ ∈
if / , : constraint
p M i i i iu l l M u u p u M u u
M i F F a u X A F u x F
p p p
– At level l, chip is divided into q (≤ 2l ) regions – For region p, the center coordinates: (up, vp) – Mp: set of modules in region p – Matrix from for all regions
D E F A B C
= M L L M M M M M M M M M M M M M M M * * * * * * '
) (
ρ ρ
l
A G F E D C B A
(uρ, vρ) (uρ’, vρ’)
} that such ) ( { min : LQP problem g Programmin Quadratic d constraine Linearly
l l T T R x
u X A X d CX X x
m
= + = Φ
∈
1 1 1 1 ) (
variable t independen is variable dependent is where , ] [ ] [ x ZX u D X I B D X u D BX D X X X u X X DB B D A
i i d i d i d q m q q q m q
+ = + − = + − = = =
− − − − − × × ×
– Solved by Conjugate-Gradient method d CX C X C CZX Z X x
T i T T T i i R x
q m i
+ = + = Ψ
−
∈
where , } ) ( { min : UQP
(Bowl):
(Trough):
values
Hessian Matrix
derivatives
Laplacian
Laplacian
– to resolve module overlap in global placement – global placement problem will be solved again with two additional center_of_gravity constraints
0.0 0.25 0.5 0.75 1.0 40 30 20 10
Cp(a)
∈ ∈ ∈
= ≈ = ∈ ∈ ≤ →
C p p
N v v p M u u M u u p p u u p p p
w C F F M u M u x x M M M ) ( : value cut 5 . / ' ' and ' ) , (
'
' ' ' ' ' ' ' ' ' '
α α
– terminal propagation using global placement positions
– to ‘undo’ the mistake made at the previous level: Procedure repartition(l) if overlap exists for each r∈R(l-1) merge-regions(r, r’, r’’); partition(r, r’, r’’); setup-constraints(l); global-optimize(l); endif
Global Optimization minimization of wire length Final Placement adoption of style dependent constraints module coordinates position constraints module coordinates Regions with ≤ k modules
Complexity: space = O(m), time = O(m1.5 log2m) Final placement: standard cell, macro-cell & SOG
Partitioning of module set and dissection of placement region
Circuit scb1 scb2 scb3 scb4 scb5 scb6 scb7 scb8 scb9 CPU-time scb8 CPU-time scb9 ratio GORDIAN 2.7 5.8 15.7 14.0 10.6 11.3 16.4 51.7 54.0 120s 135s 1 Min-Cut 3.1 5.3 25.6 16.9 11.3 12.7 20.2 89.2 98.6 366s 440s :3 Annealing 2.6 5.0 9.1 13.2 10.9 12.8 19.8 59.5 80.0 39851s 34709s :300 Area After Routing/mm2 Comparison of Results for Standard Cell Blocks
Practical Problems in VLSI Physical Design GORDIAN Placement (1/21)
Perform GORDIAN placement
Practical Problems in VLSI Physical Design GORDIAN Placement (2/21)
Necessary for GORDIAN to work
Practical Problems in VLSI Physical Design GORDIAN Placement (3/21)
Shows connections among movable nodes
Practical Problems in VLSI Physical Design GORDIAN Placement (4/21)
Shows connections between movable nodes and IO
Practical Problems in VLSI Physical Design GORDIAN Placement (5/21)
Based on both adjacency and pin connection matrices
Practical Problems in VLSI Physical Design GORDIAN Placement (6/21)
Degree matrix minus adjacency matrix
Practical Problems in VLSI Physical Design GORDIAN Placement (7/21)
Based on pin connection matrix and IO location
Practical Problems in VLSI Physical Design GORDIAN Placement (8/21)
Practical Problems in VLSI Physical Design GORDIAN Placement (9/21)
Practical Problems in VLSI Physical Design GORDIAN Placement (10/21)
No constraint necessary
Practical Problems in VLSI Physical Design GORDIAN Placement (11/21)
Cells with real dimension will overlap
Practical Problems in VLSI Physical Design GORDIAN Placement (12/21)
Perform level 1 partitioning
Practical Problems in VLSI Physical Design GORDIAN Placement (13/21)
Practical Problems in VLSI Physical Design GORDIAN Placement (14/21)
Practical Problems in VLSI Physical Design GORDIAN Placement (15/21)
Practical Problems in VLSI Physical Design GORDIAN Placement (16/21)
Verify that the constraints are satisfied in the left partition
Practical Problems in VLSI Physical Design GORDIAN Placement (17/21)
Add two more cut-lines
Practical Problems in VLSI Physical Design GORDIAN Placement (18/21)
Practical Problems in VLSI Physical Design GORDIAN Placement (19/21)
Practical Problems in VLSI Physical Design GORDIAN Placement (20/21)
Clique-based wiring is shown
Practical Problems in VLSI Physical Design GORDIAN Placement (21/21)
Center-of-gravity constraint
A B C
fixed movable fixed a b g
Quadratic objective function A B C
fixed fixed movable g
Linear objective function
γ β α γ β α γ γ γ γ γ γ β α
φ φ φ l l l l l l l l l l l l l l l l l l
l q q
+ + = = = = = → = + − − = + − = + + = , 2 3 1 3 2 2 ) ( 4 ) ( 2
' 2 2 2 2 2
– tends to make very long net shorter than linear objective function – lets short nets become slightly longer
row1 row2 row3 row4 row1 row2 row3 row4 A B A B
Linear objective function Quadratic objective function
function
linear function
quadratic ) (
2
→ − = → − =
∈ ∈ ∈ ∈ N v M u v uv l N v M u v uv q
v v
x x x x φ φ
– use quadratic programming to minimize linear objective function
∈ ∈ ∈ ∈ ∈
v v v
M u v uv v v uv uv N v M u uv v uv N v M u v uv v uv l
2 2
100 200 300 400 2 4 6 8 1 1 2 1 4 1 7 Gordian GordianL
wire length /mm circuit primary 2 number of pins of a net Figure: Sum of wire lengths versus #pins
Quadratic objective function Linear objective function (a) Global placement with 1 region
Quadratic objective function Linear objective function (b) Global placement with 4 regions
Quadratic objective function Linear objective function (c) Final placements