Constrained Floorplanning Using Network Flows Teng Wang 05/04/2004
Outline Constrained Modern Floorplanning Problem (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 are known
Design Flow Steps: 1.Bound-feasibility check 2.Floorplanning algorithm 3.Postprocessing 4.Connectivity check
CMFP Inputs A H x W bounding box A set of modules center point bounds required area Theroem1: CMFP is NP-hard Outputs For each, assign units of area
Bound-Feasibility Bound-Feasibility: N is the set of modules, for any subset T of N
Bound-Feasibility Check Theorem2: If the max flow of G is equal to, then the input is bound-feasible Theorem3: The complexity of the algorithm is O(n 2 logn) and O(n 5 logn) in worst case G
Min-Cost Max-Flow Algorithm Problem: A module could be assigned to regions that are not adjacent. Solution: A min-cost max-flow algorithm Maintaining maximum flow of G, Minimize, where c e is the cost assigned to the edge of G, f e is the flow of e. This encourages assigning the connected regions to a module.
BFS BFS: assign an integer cost to each edge Complexity: O(n 2 log 2 n) and O(n 6 logn) in the worst case Problem: two modules compete for a region in the same priority RG: Region Graph
IBFS – Improved BFS IBFS: assign a fractional cost to each edge Complexity: the same as BFS
CBFS – Compromise BFS CBFS: a region splits into several subregions, one subregion for each module that competes for this region. Assign different cost for different subregions Complexity: O(n 2 log 2 n) and O(n 8 logn) in the worst case
Postprocessing Postprocessing: make modules connected and assign an area to each module A module m has a subgraph of RG, with vertices that correspond to regions assigned to m Module m is connected if and only if its subgraph is connected A floorplan is connected => each module is connected Graph connectivity doesn’t imply geometric connectivity
Experiments Implementations: Java and C++ Benchmarks: ami33, ami49 and n300a An initial step to obtain initial module positions
Experimental Results - I IDI1I1 I2I2 I3I3 I4I4 I5I5 I6I6 I7I7 I8I8 I9I9 I 10 BMami33 ami49 Ratio Regions Benchmarks ID I1I1 I2I2 I3I3 I4I4 I5I5 I6I6 I7I7 I8I8 I9I9 I 10 MaxFlow BFS IBFS CBFS Number of disconnected regions
Experimental Results - II ID I1I1 I2I2 I3I3 I4I4 I5I5 I6I6 I7I7 I8I8 I9I9 I 10 BFS3(8)3(5)3(2)3(4)3(9)3(7)4(1)3(7)4(1)3(7) IBFS3(3)3(1)3(2) 3(1)3(4)3(3)3(2) 3(4) CBFS7(4)8(1)8(3) 8(4)8(5)8(2)8(1)8(3) Max number of modules assigned to a region (number of such regions) ID I1I1 I2I2 I3I3 I4I4 I5I5 I6I6 I7I7 I8I8 I9I9 I 10 Avg No of Sides Average Number of the sides of modules (IBFS) ami33ami49 Sweep Plane Min-Cost Max-Flow Postprocessing Total Breakdown of runtime (s) No of modules Runtime vs Input size(s)
END Thank you!