NuCAD 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 (2) Floorplan • A floorplan contains non-overlapping modules. a c e b d (3) Constraint Graph • Horizontal graph represents “left to” relation. a c e d b (4) Constraint Graph • Vertical graph represents “below” relation. a b c e d (5) Constraint Graph • There is at least one relation between any pair of modules. a c e d b (6) Redundancy in constraint graphs. • Transitive edges. a c e d b (7) Redundancy in constraint graphs. • Over-specification: more than one relation between two modules. a c e d b (8) 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. The remaining edges form a total order! b a d c e (9) 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? • • 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. a a b c HVV 1 k+1 2 k+2 ... ... ... k+2 k k+2 2k b c ... d d VHH (10) ACG-Adjacent Constraint Graph • Observation: in VHH cross, either ‘a’ is below ‘d’ or ‘c’ is below ‘b’. Has similar result for HVV cross. a • b c d a c b d Definitions of ACG Constraint graph. Exactly one relation between every pair of modules. No transitive edges. No cross. b a d c e (11) 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. a c a e b c e d d b (12) 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. b a d c e (13) 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. (14) Append • Step 1: add edges with the same type. Always follow the first edge of the other type to determine the next new edge. new a b c • Step 2: add the first edge of the other type. Still follow the first edge of the other type. new a b c d (15) 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. new a b c d e f • Stop when we cannot proceed with step 3. (16) Swap a b c d e • 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. • Step 2: change the edge type. Need to change the edge direction too, i.e., from b->c to c->b. a c b d e (17) Swap • Step 3: remove transitive edges. Check c’s outgoing V neighbors and b’s incoming V neighbors. a c b d e (18) Swap • Step 3: remove transitive edges. Check c’s outgoing V neighbors and b’s incoming V neighbors. a c b d e • 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. a c b d e (19) 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 FASTSP, TCG, TCG-S, and Parquet-2 on area optimization. • Running on a Sun Ultra 10, running time is in seconds. (20) 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. (21) 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. (22) 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)? (23) Thanks! (24)
© Copyright 2026 Paperzz