ConstrainedFloorplanning UsingNetwork Flows
Teng Wang
twang@ecs.umass.edu
05/04/2004
Outline
Constrained Modern FloorplanningProblem (CMFP)
Bound-feasibility check
BFS/IBFS/CBFS Algorithm
Postprocessing
Experimental Results
Modern Floorplanning Problem
Classic Floorplanning Problem:
A set of modules (height, width)
A connectivity matrix
Objective: minimize area, wire length, etc.
Modern Floorplanning Problem – Kahng, 2000
Bounding rectangle is fixed
Modules can be rectilinear
“Round” blocks are preferred
Constrained Modern Floorplanning Problem(CMFP):
Approximate relative positions of the modules areknown
Design Flow
Steps:
1.Bound-feasibility check
2.Floorplanning algorithm
3.Postprocessing
4.Connectivity check
CMFP
Inputs
H x bounding box
A set of modules
             center point
                 bounds
          required area
Theroem1: CMFP isNP-hard
Outputs
For each     , assign
units of area
Bound-Feasibility
Bound-Feasibility: N is the set of modules, forany subset T of N
 
Bound-Feasibility Check
Theorem2: If the max flow of G is equalto         , then the input is bound-feasible
Theorem3: The complexity of thealgorithm is O(n2logn) and O(n5logn) inworst case
G
Min-Cost Max-Flow Algorithm
Problem: A module could be assigned toregions that are not adjacent.
Solution: A min-cost max-flow algorithm
Maintaining maximum flow of G,
Minimize           , where ce is the cost assigned tothe edge             of G, fe is the flow of e. Thisencourages assigning the connected regions to amodule.
BFS
BFS: assign an integer cost toeach edge
Complexity: O(n2log2n) andO(n6logn) in the worst case
Problem: two modules competefor a region in the same priority
0
2
1
1
2
1
RG: Region Graph
IBFS – Improved BFS
IBFS: assign a fractional cost to eachedge
Complexity: the same as BFS
CBFS – Compromise BFS
CBFS: a region splits into several subregions, onesubregion for each module that competes for this region.
Assign different cost for different subregions
Complexity: O(n2log2n) and O(n8logn) in the worst case
Postprocessing
Postprocessing: makemodules connected and assignan area to each module
A module has a subgraph ofRG, with vertices thatcorrespond to regionsassigned to m
Module is connected if andonly if its subgraph isconnected
A floorplan is connected =>each module is connected
Graph connectivity doesn’timply geometric connectivity
Experiments
Implementations: Java and C++
Benchmarks: ami33, ami49 and n300a
An initial step to obtain initial modulepositions
Experimental Results - I
ID
I1
I2
I3
I4
I5
I6
I7
I8
I9
I10
BM
ami33
ami33
ami33
ami33
ami33
ami49
ami49
ami49
ami49
ami49
Ratio
1.4
1.5
1.6
1.7
1.8
1.4
1.5
1.6
1.7
1.8
Regions
298
338
393
414
426
448
469
508
542
564
Benchmarks
ID
I1
I2
I3
I4
I5
I6
I7
I8
I9
I10
MaxFlow
32
50
58
70
67
20
34
38
48
46
BFS
9
2
13
5
5
6
6
13
5
11
IBFS
7
9
3
11
2
9
3
5
4
5
CBFS
0
0
0
0
0
0
0
0
0
0
Number of disconnected regions
Experimental Results - II
ID
I1
I2
I3
I4
I5
I6
I7
I8
I9
I10
BFS
3(8)
3(5)
3(2)
3(4)
3(9)
3(7)
4(1)
3(7)
4(1)
3(7)
IBFS
3(3)
3(1)
3(2)
3(2)
3(1)
3(4)
3(3)
3(2)
3(2)
3(4)
CBFS
7(4)
8(1)
8(3)
8(3)
8(4)
8(5)
8(2)
8(1)
8(3)
8(3)
Max number of modules assigned to a region (number of such regions)
ID
I1
I2
I3
I4
I5
I6
I7
I8
I9
I10
Avg No of Sides
12.5
13.5
14.6
15.3
16.1
14
14.5
14.9
15.3
15.8
Average Number of the sides of modules (IBFS)
ami33
ami49
Sweep Plane
5.113
5.337
Min-Cost Max-Flow
0.1
0.11
Postprocessing
0.446
0.495
Total
5.69
5.843
Breakdown of runtime (s)
No of modules
33
66
132
264
166
431
1674
7284
Runtime vs Input size(s)
ENDThank you!