Floorplanning. Obtained by subdividing a given rectangle into smaller rectangles. Each smaller...
-
date post
22-Dec-2015 -
Category
Documents
-
view
220 -
download
4
Transcript of Floorplanning. Obtained by subdividing a given rectangle into smaller rectangles. Each smaller...
Floorplanning
Obtained by subdividing a given rectangle into smaller rectangles.
Each smaller rectangle corresponds to a module.
Slicing Floorplan
Slicing Floorplan
A slicing floorplan can be obtained by repeatedly subdividing rectangles horizontally or vertically.
Slicing Floorplan and Slicing Graph
Slicing Floorplan
Non-slicing Floorplan
Slicing Floorplan and Slicing Graph
Slicing Floorplan Slicing Graph
corner
Not a Slicing Floorplan Not a Slicing Graph
Slicing Tree
Slicing Tree
P1
Slicing Tree
P1
P : V1
root
Slicing Tree
P1
P : V1
Right subgraph becomes right subtree
Left subgraph becomes left subtree
root
Slicing Tree
P2
P : V1
root
Slicing Tree
P2
P : V1
P : V2
root
Slicing Tree
P3
P : V1
P : V2
root
Slicing Tree
P3
P : V1
P : V2
P : H3
root
Slicing Tree
P3
P : V1
P : V2
P : H3
Upper subgraph becomes right subtree
Lower subgraph becomes left subtree
root
Slicing Tree
f
f
ff
f
ff
ff
1
2
34
5
6
7
8
9
10f
P : V1
P : V2
P : H4
P : H3P : H7P : H9
P : H8
P : V5
P : H6
f9f10
f8
f6f7
f4
f3 f2
f5
f1
root
Graph representation of Floorplan
Polar graphsAdjacency graphsChannel Intersection GraphsChannel position graphs
Polar Graphs
Vertical polar graph
Horizontal polar graph
sourcesink
source
sink
Polar Graphs
Vertical polar graph
Horizontal polar graph
sourcesink
source
sink
Used to determine the area of the smallest floorplan.
Adjacency Graphs
A D
B
C
E
F
G
H
A
B
C
D
E
FH
G
source
sink
Horizontal adjacency graphsource
sink
A
B
C
D
EF
G
H Vertical adjacency graph
Channel Intersection Graphs
A
C
B
D
Channel Position Graphs
A
C
B
D
A B
C D
A B
C D
Horizontal channel Position graph
Vertical channel position graph
Given circuit modules (or cells) and their connections, determine the approximate location of circuit elements
Cost functions for floorplanning
Minimize areaMinimize wirelengthMaximize routabilityMinimize delays
EA
B
C
F
G
D
AB
EC
F
G
D
VLSI Floorplanning with adjacency requrementsVLSI Floorplanning with adjacency requrements
Interconnection graph VLSI floorplan
EA
B
C
F
G
D
AB
EC
F
G
D
VLSI FloorplanningVLSI Floorplanning
Interconnection graph VLSI floorplan
EA
B
C
F
G
D
AB
EC
F
G
D
VLSI FloorplanningVLSI Floorplanning
Interconnection graph VLSI floorplan
EA
B
C
F
G
D
AB
EC
F
G
D
VLSI FloorplanningVLSI Floorplanning
AB
E
C
F
G
D
Interconnection graph VLSI floorplan
Dual-like graph
EA
B
C
F
G
D
AB
EC
F
G
D
VLSI FloorplanningVLSI Floorplanning
AB
E
C
F
G
D
AB
E
C
F
G
D
Interconnection graph VLSI floorplan
Dual-like graph Add four corners
EA
B
C
F
G
D
AB
EC
F
G
D
VLSI FloorplanningVLSI Floorplanning
AB
E
C
F
G
D
AB
E
C
F
G
D
Interconnection graph VLSI floorplan
Dual-like graph Add four corners
Rectangular drawing
EA
B
C
F
G
D
AB
EC
F
G
D
VLSI FloorplanningVLSI Floorplanning
Interconnection graph VLSI floorplan
Rectangular drawing
EA
B
C
F
G
D
AB
EC
F
G
D
VLSI FloorplanningVLSI Floorplanning
Interconnection graph VLSI floorplan
Rectangular drawing
Unwanted adjacency
Not desirable for MCM floorplanning andfor some architectural floorplanning.
A
B
E C
F
G
D
MCM FloorplanningMCM Floorplanning SherwaniSherwani
Architectural FloorplanningArchitectural Floorplanning Munemoto, Katoh, ImamuraMunemoto, Katoh, Imamura
EA
B
C
F
G
D
Interconnection graph
A
B
E C
F
G
D
MCM FloorplanningMCM FloorplanningArchitectural FloorplanningArchitectural Floorplanning
EA
B
C
F
G
D
Interconnection graph
MCM FloorplanningMCM FloorplanningArchitectural FloorplanningArchitectural Floorplanning
A
E
B
FG
CD
EA
B
C
F
G
D
Interconnection graph
Dual-like graph
A
B
E C
F
G
D
MCM FloorplanningMCM FloorplanningArchitectural FloorplanningArchitectural Floorplanning
A
E
B
FG
CD
EA
B
C
F
G
D
Interconnection graph
Dual-like graph
A
B
E C
F
G
D
MCM FloorplanningMCM FloorplanningArchitectural FloorplanningArchitectural Floorplanning
A
E
B
FG
CD
EA
B
C
F
G
D
A
E
B
FG
CD
Interconnection graph
Dual-like graph
A
B
E C
F
G
D
MCM FloorplanningMCM FloorplanningArchitectural FloorplanningArchitectural Floorplanning
A
E
B
FG
CD
EA
B
C
F
G
D
A
E
B
FG
CD
Box-Rectangular drawing
Interconnection graph
Dual-like graph
A
B
E C
F
G
D
dead space
Floorplanning with Area Requirements
Octagonal Drawing
Prescribed-Area Octagonal Drawing
InputPlane graph
K 27
G 19A 46
C 11
J 14
I 12
B 65
D 56
E 23
F 8
H 37
Prescribed-Area Octagonal Drawing
InputPlane graph
A real number for each inner face
K 27
G 19A 46
C 11
J 14
I 12
B 65
D 56
E 23
F 8
H 37
A 46
B 65
C 11D 56
E
23
F 8
H 37
G 19
I 12 J 14
K 27
Prescribed-Area Octagonal Drawing
Input Output
Plane graph Prescribed-area octagonal drawingA real number for each inner face
K 27
G 19A 46
C 11
J 14
I 12
B 65
D 56
E 23
F 8
H 37
A 46
B 65
C 11D 56
E
23
F 8
H 37
G 19
I 12 J 14
K 27
Prescribed-Area Octagonal Drawing
Input Output
Each inner face is drawn as a rectilinear polygon of at most eight corners.The outer face is drawn as a rectangle.
Each face has its prescribed area.
K 27
G 19A 46
C 11
J 14
I 12
B 65
D 56
E 23
F 8
H 37
A 46
B 65
C 11D 56
E
23
F 8
H 37
G 19
I 12 J 14
K 27
Prescribed-Area Octagonal Drawing
Input Output
Each inner face is drawn as a rectilinear polygon of at most eight corners.The outer face is drawn as a rectangle.
Each face has its prescribed area.
2
1
1
2
Area requirements cannot be satisfied if each module is allowed to be only a rectangle.
2
1
1
2
Area requirements can be satisfied if each module is allowed to be a simple rectilinear polygon.
1
1
2
2
ApplicationsVLSI Floorplanning
It is desirable to keep the shape of each rectilinear polygon as simple as possible.
Our Results
G: a good slicing graph
O(n) time algorithm.
Slicing Tree
Slicing Tree
f
f
ff
f
ff
ff
1
2
34
5
6
7
8
9
10f
P : V1
P : V2
P : H4
P : H3P : H7P : H9
P : H8
P : V5
P : H6
f9f10
f8
f6f7
f4
f3 f2
f5
f1
root
Good Slicing Graph
A slicing tree is good if each horizontal slice is a face path.
P
E
P P P
PP
P
P
P
P
f
f
ff
f
ff
ff
1 23
5
4
67
8
9
1
2
34
5
6
7
8
9
10f
P
P
N
S
W
P : V1
P : V2
P : H4
P : H3P : H7P : H9
P : H8
P : V5
P : H6
f9f10
f8
f6f7
f4
f3 f2
f5
f1
P
Three face paths
On a boundary of a single face
Not a face path
Good Slicing Graph
A slicing tree is good if each horizontal slice is a face path.
P P P
PP
P
P
P
P
f
f
ff
f
ff
ff
1 23
5
4
67
8
9
1
2
34
5
6
7
8
9
10f
P : V1
P : V2
P : H4
P : H3P : H7P : H9
P : H8
P : V5
P : H6
f9f10
f8
f6f7
f4
f3 f2
f5
f1
Good Slicing Graph
A slicing tree is good if each horizontal slice is a face path.
P P P
PP
P
P
P
P
f
f
ff
f
ff
ff
1 23
5
4
67
8
9
1
2
34
5
6
7
8
9
10f
P : V1
P : V2
P : H4
P : H3P : H7P : H9
P : H8
P : V5
P : H6
f9f10
f8
f6f7
f4
f3 f2
f5
f1
We call a graph a good slicing graphif it has a good slicing tree.
Good Slicing Graph
For a horizontal slice, at least one of the upper subgraphand the lower subgraph cannot be vertically sliced.
Cannot be vertically sliced
Can be vertically sliced
Not every slicing graph is a good slicing graph.
Input
P P P
PP
P
P
P
P
f
f
ff
f
ff
ff
1 23
5
4
67
8
9
1
2
34
5
6
7
8
9
10f
P : V1
P : V2
P : H4
P : H3P : H7P : H9
P : H8
P : V5
P : H6
f9f10
f8
f6f7
f4
f3 f2
f5
f1
A Good Slicing Graph
A Good Slicing Tree
Output
Prescribed-areaOctagonal drawing
Each inner face is drawn as a rectilinear polygon with at most eight corners.
Particularly, each inner face is drawn as a rectilinear polygon of the following nine shapes.
A 46
B 65
C 11D 56
E
23
F 8
H 37
G 19
I 12 J 14
K 27
Octagons8 corners
6 corners 4 corners
OctagonsA 46
B 65
C 11D 56
E
23
F 8
H 37
G 19
I 12 J 14
K 27
Do not appear
Feasible Octagons
Octagons of nine shapes must satisfy some conditions on size
P : V1
P : V2
P : H4
P : H3P : H7P : H9
P : H8
P : V5
P : H6
f9f10
f8
f6f7
f4
f3 f2
f5
f1
First traverse root
Algorithm
Then traverse the right subtree
Finally, traverse the left subtree
Depth-first search
P : V1
P : V2
P : H4
P : H3P : H7P : H9
P : H8
P : V5
P : H6
f9f10
f8
f6f7
f4
f3 f2
f5
f1
Algorithm
f
f
ff
f
ff
ff
1
2
34
5
6
7
8
9
10f
P1
P : V1
P : V2
P : H4
P : H3P : H7P : H9
P : H8
P : V5
P : H6
f9f10
f8
f6f7
f4
f3 f2
f5
f1
Algorithm
f
f
ff
f
ff
ff
1
2
34
5
6
7
8
9
10f
P1
P : V1
P : V2
P : H4
P : H3P : H7P : H9
P : H8
P : V5
P : H6
f9f10
f8
f6f7
f4
f3 f2
f5
f1
Algorithm
f
f
ff
f
ff
ff
1
2
34
5
6
7
8
9
10f
P2
P : V1
P : V2
P : H4
P : H3P : H7P : H9
P : H8
P : V5
P : H6
f9f10
f8
f6f7
f4
f3 f2
f5
f1
Algorithm
f
f
ff
f
ff
ff
1
2
34
5
6
7
8
9
10f
P3
P : V1
P : V2
P : H4
P : H3P : H7P : H9
P : H8
P : V5
P : H6
f9f10
f8
f6f7
f4
f3 f2
f5
f1
Algorithm
f
f
ff
f
ff
ff
1
2
34
5
6
7
8
9
10f
P3
P : V1
P : V2
P : H4
P : H3P : H7P : H9
P : H8
P : V5
P : H6
f9f10
f8
f6f7
f4
f3 f2
f5
f1
Algorithm
f
f
ff
f
ff
ff
1
2
34
5
6
7
8
9
10f
P4
P : V1
P : V2
P : H4
P : H3P : H7P : H9
P : H8
P : V5
P : H6
f9f10
f8
f6f7
f4
f3 f2
f5
f1
Algorithm
f
f
ff
f
ff
ff
1
2
34
5
6
7
8
9
10f
P : V1
P : V2
P : H4
P : H3P : H7P : H9
P : H8
P : V5
P : H6
f9f10
f8
f6f7
f4
f3 f2
f5
f1
Algorithm
f
f
ff
f
ff
ff
1
2
34
5
6
7
8
9
10f
P : V1
P : V2
P : H4
P : H3P : H7P : H9
P : H8
P : V5
P : H6
f9f10
f8
f6f7
f4
f3 f2
f5
f1
Algorithm
f
f
ff
f
ff
ff
1
2
34
5
6
7
8
9
10f
P : V1
P : V2
P : H4
P : H3P : H7P : H9
P : H8
P : V5
P : H6
f9f10
f8
f6f7
f4
f3 f2
f5
f1
Algorithm
f
f
ff
f
ff
ff
1
2
34
5
6
7
8
9
10f
Algorithm
Initialization at root
Algorithm
Initialization at rootDraw the outer cycle as an arbitrary rectangle of area A(G).
A(G): sum of the prescribed areas of all inner faces in G.
Algorithm
Initialization at rootDraw the outer cycle as an arbitrary rectangle of area A(G).
A(G): sum of the prescribed areas of all inner faces in G.
Algorithm
Initialization at rootDraw the outer cycle as an arbitrary rectangle of area A(G).
A(G): sum of the prescribed areas of all inner faces in G.
59
15
8
46081595)( GA
Algorithm
Initialization at rootDraw the outer cycle as an arbitrary rectangle of area A(G).
A(G): sum of the prescribed areas of all inner faces in G.
59
15
8
W = 23
H = 20
46081595)( GA 2023
Algorithm
Initialization at rootDraw the outer cycle as an arbitrary rectangle of area A(G).
A(G): sum of the prescribed areas of all inner faces in G.
Fix arbitrarily the position of vertices on the right side of the rectangle preserving their relative positions.
Root : vertical sliceOperation at root
Algorithm
A(G)
Pr : V
Pv : VPw : V
r
vw
A(Gv)A(Gw)
Pr
A(Gw) A(Gv)
Root : vertical sliceOperation at root
Algorithm Pr : V
Pv : VPw : V
r
vw
Root : vertical sliceOperation at root
Algorithm Pr : V
Pv : VPw : V
r
vw
Root : vertical sliceOperation at root
Algorithm Pr : V
Pv : VPw : V
r
vw
Root : vertical sliceOperation at root
Algorithm Pr : V
Pv : VPw : V
r
vw
Root : vertical sliceOperation at root
Algorithm Pr : V
Pv : VPw : V
r
vw
Root : horizontal sliceOperation at root
AlgorithmPr : H
Pv : VPw : V
r
vw
RA(Gv)
A(Gw)
Root : horizontal sliceOperation at root
AlgorithmPr : H
Pv : VPw : V
r
vw
A(Gw)
A(Gv) R
Case 1: A(Gv) = A(R)
A(Gv)
A(Gw)
Root : horizontal sliceOperation at root
Algorithm
A(Gw)
A(Gv)
Case 2: A(Gv) > A(R)
RA(Gv)
A(Gw)
Root : horizontal sliceOperation at root
Algorithm Case 3: A(Gv) < A(R)
Case 2: A(Gv) > A(R)
A(Gw)
A(Gv)A(Gv)
A(Gw)
Root : horizontal sliceOperation at root
Algorithm
6 corners A(Gw)
A(Gv)
Case 3: A(Gv) < A(R)
Case 2: A(Gv) > A(R)
A(Gw)
A(Gv)A(Gv)
A(Gw)
Polygon of exactly 8 corners may appearwhen a horizontal slice is embedded insidea polygon of 6 corners.
6 corners
8 corners
Pu : V
Pv : VPw : V
u
vw
General computation at an internal node
Feasible Octagon
Ru
Vertical slice
Pr : V
Pv : VPw : V
u
vw
General computation at an internal node
Feasible Octagon
Ru
Vertical slice Fixed
Pr : V
Pv : VPw : V
u
vw
General computation at an internal node
Feasible Octagon
Ru
Vertical slice FixedFace
Pr : V
Pv : VPw : V
u
vw
General computation at an internal node
Feasible Octagon
Ru
Embed the slicing path in Ru
Vertical slice
Pr : V
Pv : VPw : V
u
vw
General computation at an internal node
Feasible Octagon
Ru
Vertical slice
Feasible Octagon
Rv
Feasible Octaon
Rw
A(Gv )
A(Gw)
A(Gv) A(Gv)
A(Gw)
Large
10 corners
Horizontal slice
very small foot-lenght
Ru
Pu
fA(Gv)
10 corners
very small foot-lenght
Ru
Pu
f
Hf
Aminf number of inner faces in G
very small foot-lenght
Ru
Pu
f
Hf
Aminf number of inner faces in G
K 27
G 19A 46
C 11
J
14
I 12
B 65
D 56
E 23
F 8H 37
Input
Amin
Amin = 8
very small foot-lenght
Ru
Pu
f
Hf
Aminf number of inner faces in G
H height of initial rectangle Rr
Input at root Rr
A(R ) = A(G)r
H=20
very small foot-lenght
Ru
Pu
f
Hf
Aminf number of inner faces in G
K 27
G 19A 46
C 11
J
14
I 12
B 65
D 56
E 23
F 8H 37
Input
Amin
Amin = 82015
8
A(R ) = A(G)r
H=20
very small foot-lenght
Ru
Pu
f
Hf
Aminf number of inner faces in G
very small foot-lenght
Ru f
large enough
East side
very small foot-lenght
Ru f
large enoughEf
East side
Ef The number of inner faces each of which has an edge on the east side.
Computation at a leaf node
PE
PW
PS
NP
PE
PW
PS
NP
Time Complexity
Overall time complexity is linear.
Conclusion
We have presented a linear algorithm for prescribed area octagonal drawings of good slicing graphs.
Obtaining such an algorithm for larger classes of graphs is our future work.
We also give a sufficient condition for a graph of maximum degree 3 to be a good slicing graph and give a linear-time algorithm to find a good slicing tree of such graphs.