240 likes | 327 Views
ACG - Adjacent Constraint Graph for General Floorplans. Hai Zhou and Jia Wang ICCD 2004, San Jose October 11-13, 2004. Outline. Floorplan and Constraint Graph Adjacent Constraint Graph Data Structure and Operations Experimental Result Summary. Floorplan.
E N D
ACG - Adjacent Constraint Graph for General Floorplans Hai Zhou and Jia Wang ICCD 2004, San Jose October 11-13, 2004
Outline • Floorplan and Constraint Graph • Adjacent Constraint Graph • Data Structure and Operations • Experimental Result • Summary
Floorplan • A floorplan contains non-overlapping modules.
Constraint Graph • Horizontal graph represents “left to” relation.
Constraint Graph • Vertical graph represents “below” relation.
Constraint Graph • There is at least one relation between any pair of modules.
Redundancy in constraint graphs. • Transitive edges.
Redundancy in constraint graphs. • Over-specification: more than one relation between two modules.
The remaining edges form a total order! Reduce the redundancy. • Less edges means less running time and less storage requirement. • Allow exactly one relation between any pair of modules. • Remove all the transitive edges. • Combine horizontal graph and vertical graph together. • Two types of edges: H and V.
No. In the graph to the right, we have more than k2 edges where there are only 2k modules. • The basic structure could be identified as crosses in the graph. H V V V H H Cross • There are totally O(n2) edges in the two constraint graphs where n is the number of modules. • Can we get rid of that quadratic boundary by the previous steps?
ACG-Adjacent Constraint Graph • Observation: in VHH cross, either ‘a’ is below ‘d’ or ‘c’ is below ‘b’. • Has similar result for HVV cross. • Definitions of ACG • Constraint graph. • Exactly one relation between every pair of modules. • No transitive edges. • No cross.
Properties • Symmetry • Still an ACG when edge directions reversed. • Still an ACG when edge types exchanged (H vs V). • Constraint graph • Packing is as simple as longest path computations. • Number of edges • Conjecture: O(n). • Experimental result: < 10n up to n = 10000. • Close to adjacency graph • Preserve geometrical adjacency information.
Data structure • Vertices representing modules are linked as the total order. • Every vertex maintains 4 lists of edges. • Correspond to 4 geometrical relationships (left/right, below/above). • Every edge keeps its two end vertices. • Every edge belongs to 2 lists (incoming/outgoing). • Edges from one list have a common end vertex. • An edge with a closer end vertex to the common vertex comes first.
Operations • Guideline • Maintain a valid ACG through operations to control the number of edges. • Operation cost (time/space) should be linear to the edges added/deleted. • Append • We could construct an ACG by appending vertices. • Swap • Will introduce crosses into the graph. • Swapping is complete when we allow crosses in ACG.
Step 2: add the first edge of the other type. • Still follow the first edge of the other type. Append • Step 1: add edges with the same type. • Always follow the first edge of the other type to determine the next new edge.
Append • Step 3: add edges whose types alternating. • Follow the edge after the edge connecting the other end points of the two previous added edges. • Stop when we cannot proceed with step 3.
Step 2: change the edge type. • Need to change the edge direction too, i.e., from b->c to c->b. Swap • Step 1: exchange the positions of the two vertices. • This won’t affect the edge lists. • Suppose we are going to swap b and c.
Swap • Step 3: remove transitive edges. • Check c’s outgoing V neighbors and b’s incoming V neighbors.
Step 4: add edges to keep original relations. • Connect c to b’s incoming H neighbors. • Connect b to c’s outgoing H neighbors. • Refer to Lemma 4 for exceptions. Swap • Step 3: remove transitive edges. • Check c’s outgoing V neighbors and b’s incoming V neighbors.
Experiment Setup • MCNC benchmarks: apte, hp, xerox, ami33, ami49. • GSRC benchmarks: n100, n200, n300. • Create ACG with appending operations. • Employ the simulated annealing algorithm. • Adopt an annealing scheme similar to TCG-S. • Perturbations • Change the orientation of a module. • Exchange two modules. • Swapping two adjacent vertices. • Allow crosses in ACG during perturbations. • Compare running time as well as solution quality to FAST-SP, TCG, TCG-S, and Parquet-2 on area optimization. • Running on a Sun Ultra 10, running time is in seconds.
Experimental Result • Compare to FAST-SP, TCG, and TCG-S on all the benchmarks. • Compare to Parquet-2 on the GSRC benchmarks. • We cut the number of perturbations by half in our SA.
Experimental Result (Cont.) • Number of edges. • Min/max edge give the minimal/maximal number of edges in the graph during SA. • Even we allow crosses, the number keeps small during SA. • Floorplan for xerox with ACG edges. • Most edges are between adjacent modules.
Summary • ACG is a constraint graph. • ACG is like an adjacency graph due to the fact that the redundancies in the traditional H/V constraint graphs are reduced. • We have a neat data structure plus efficient operations. • Future directions. • Enforce the no-cross rule in operations. • Interconnect estimation and planning (ASP-DAC 2005). • Is the number of edges really O(n)?