cse 242a integrated circuit layout automation lecture: floorplanning winter 2009 chung-kuan cheng
Post on 21-Dec-2015
220 Views
Preview:
TRANSCRIPT
Outlines Introduction Representations and Approaches
Constraint Graph Triangulation Tutte’s Duality Slicing Flooplanning Nonslicing ...
Block Handling Research Directions
Introduction Input A set of blocks with constraints on
area, shapes, relative positions, Constraints on chip area and aspect ratio, Netlist. Output Shapes, Locations, Pin positions of the
blocks Objective Functions Performance, chip area, and wire length
Representations
Constraint Graph
Theorem: A V or H constraint graph is planar and acyclic.
i j
ijd
i
j
ijd
horizontal edge
vertical edge
j i ij
j i ij
x x d
y y d
Constraint Graph Generation
Scan from left to right at cur_x;Update scaline: list of blocks crossing scanline.For blocks T strating at cur_x;
Insert T into scanline list…R->T->S …
Generate edgesR->T and T->S
End
Constraint Graph Generation 2
Scan from left to right at cur_x;Update scanline: list of blocks crossing scanline.For blocks T starting at cur_x;
Insert T into scanline list: …R->T->S …Generate list:T.top=R, R.bot=T, T.bot=S, S.top=T
EndFor block T ending at cur_x;
if T.top is list in scanline, generate edge T.top->T;if T.bot is list in scanline, generate edge T->T.bot
EndEnd
Triangulation
For floorplan with zero dead space, H & V constraint graphs are dual.
H & V Every face is a triangle All internal nodes have a degree >= 4 All cycles that are not faces have length >= 4
Routing Region Definition & Ordering
Straight ChannelL Shaped
a
1
2
b
3
c
a 2 1
b
c
Non-Feasible Order Feasible Order
Given n components, there are n-1 operators Polish Exp has 2n-1 length
Polish Exp is legal iff # operators <= # comps – 1 For any prefix substring
2 1 H5 7 V 4 3 H 6 V H V
2 1 5 H 7 V 4 3 H 6 V H V
2 1 5 H V H V 7 4 3 6 H V
Redundancy of Polish Exp
1 2 3
V
V
1 2 3
V
V
2 31
1 2 V 3 V1 2 3 V V
No consecutive operators of the same type
Neighborhood Structure
OP. Chain: VHVHV… or HVHV… 2 3 V 1 4 H 5 V 6 H V V M1: Swap adjacent components M2: Complement a chain M3: Move an operator under the prefix
constraint of “# operators <= # comps – 1”
5
3
1 24
5
4
1 23
3 5
4
1 2
34
5
1 2
45
3
1 2
4 53
21
2
1
3 5
4
1 2 V 3 H4 V 5 H
1 2 V 4 H 3 V 5 H
1 2 V 4 H 3 5 V H
1 2 V 4 3 H 5 V H
1 2 V 4 3 5 H V H
1 2 H 4 3 5 H V H
1 2 H 4 3 5 V H V
Sequence Pair
1
2
ab ba ab ba
ab ab ba ba
ab
b
a
a
bb a
Eg. c a e b d
a b c d e
ec
a b d#combinations 2( !)n
Twin Binary Trees
Definition of Twin Binary TreesTransformations between Floorplan and
Twin Binary Trees
Twin Binary Trees T T T T
00 900 1800 2700
C+-neighbor: 00 T-junction, block on right 2700 T-junction, block on top
C--neighbor: 900 T-junction, block on top 1800 T-junction, block on left
A B
00
A
B2700
A
B900
AB
1800
AB C
DE
F
C
B
A
E
D
FX 1
1
0
0 1
X X X
0
1
0
10
F
A
D
B
C
E
Twin Binary Trees
(1)=11001
(2)=00110
order(1)=order(2)=ABCDFE
Twin Binary Trees and Mosaic Floorplan
Twin Binary Tree Mosaic Floorplan: one to one mapping
Transformation between twin binary trees andmosaic floorplan takes linear complexity
#twin binary trees = Baxter number
Corner Block List
Corner Block List Mosaic Floorplan A permutation and two 0-1 lists
e.g. S=(fcegbad), L=(001100), T=(001010010)
Corner Block List
S=(fcegbad), L=(001100),
T=(001010010) S is the reversed sequence of removed
blocks L[i] is the removing direction of block i Number of ‘0’s before ith ‘1’ in T is the
number of blocks covered by S[i] when it is removed
Corner Block List
Redundancy (L and T are not independent) Solution space size O(n!23n-3/n1.5) Can be reduced to O(n!23n-3/n4), no
redundancy
Floorplan Optimization Flow Simulated annealing (SA) in the
representation solution spaces := s0; e := E(s) // Initial state, energy.sb := s; eb := e // Initial "best" solutionk := 0 // Energy evaluation count.while k < kmax and e > emax // While time remains & not good enough: sn := neighbour(s) // Pick some neighbour. en := E(sn) // Compute its energy. if en < eb then // Is this a new best? sb := sn; eb := en // Yes, save it. if P(e, en, temp(k/kmax)) > random() then // Should we move to it? s := sn; e := en // Yes, change state. k := k + 1 // One more evaluation donereturn sb // Return the
E() is the objective function neighbour(s) comes from perturbation on s
top related