Professional Documents
Culture Documents
CSE 242A Integrated Circuit Layout Automation: Lecture: Floorplanning Winter 2009 Chung-Kuan Cheng
CSE 242A Integrated Circuit Layout Automation: Lecture: Floorplanning Winter 2009 Chung-Kuan Cheng
Outlines
Introduction
Representations and Approaches
Constraint Graph
Triangulation
Tuttes 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.
d ij
i
dij
i
horizontal edge
x j xi dij
vertical edge
y j yi dij
Floorplan Triangulation
Triangulation
H&V
Every face is a triangle
All internal nodes have a degree >= 4
All cycles that are not faces have length >= 4
Triangulation 2
c
e
3
d
4
5
6
g
7
10
Tuttes Duality
s
c
a
c
a
d
b
b
d
t
H
2
V
1
5
4
Nonslicing
Straight Channel
1
a
L Shaped
3
2
Non-Feasible Order
b
a
1
c
c
Feasible Order
Polish Expression
v
3
4
H
2
7
2
V
1
21H57V43H6VHV
H
7
V
V
V
V
1
1
12V3V
3
123VV
Neighborhood Structure
5
3
1 2 V 3 H4 V 5 H
1
2
5
5
4
12V4H3V5H
3
1
12H435HVH
5
12H435VHV
2
5
3
2
1
3
4
12V4H35VH
12V43H5VH
12V435HVH
5
4
2
H
1
1
Hi
2
Hj
H ij ( w) H i ( w) H j ( w)
Hierarchy Floorplan
K=2
K=3
K=4
b
d
c
e
a1
a3
a4
a2 a5 a6
a11
a12
a13
a14
b1
b3 b4
b2
b5
Sequence Pair
1 ab ba ab ba
2 ab ab ba ba
b
Eg. c a e b d
abcde
c
e
#combinations
(n !) 2
c
x
a
1
l
3
Bounded-Sliceline Grid
900
00
B
1800
1800
2700
2700
C
E
A
D
F
D 0 X
X X
E
X
(1)=11001
0
0
(2)=00110
order(1)=order(2)=ABCDFE
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 0s before ith 1 in T is the
number of blocks covered by S[i] when it is
removed
s := s0; e := E(s)
sb := s; eb := e
k := 0
while k < kmax and e > emax
sn := neighbour(s)
en := E(sn)
if en < eb then
sb := sn; eb := en
if P(e, en, temp(k/kmax)) > random() then
s := sn; e := en
k := k + 1
return sb
//
//
//
//
//
//
//
//
//
//
//
//