Rectlinear Block Packing Using the Otree Representation Yingxin
Rectlinear Block Packing Using the O-tree Representation Yingxin Pang Koen Lampaert Mindspeed Technologies Chung-Kuan Cheng University of California, San Diego Weize Xie Hewlett-Packard Research Laboratories
Motivation l Recent advance of sub-micron technology makes it possible to realize a big system on a single chip. l Designing such a huge VLSI layout is hard and design reuse has been attracting much interest l The integrated circuit components are not limited to rectangular blocks l Traditional algorithms designed primarily for placing rectangle blocks are no longer effective
Basic Strategy l Partition each rectilinear block into sub-rectangle blocks l Treat each sub-rectangle blocks as a unit block l The relationship of the sub-blocks of a rectilinear module are represented in a encoding or in additional constraints
Properties of Our Solution l Compactness: ¤ for each feasible compact placement, there is a feasible O-tree corresponding to it l Efficiency: ¤ the transformation form a feasible O-tree to a feasible placement takes a linear time
O-tree Representation An O-tree is an ordered tree, which can be encoded by l is a 2 n-bit string which identifies the structure of the tree l is a permutation of n nodes An Example: 00110100011011, abcdefg
O-tree to Placement g d c a e f b
O-tree’s Advantages l Configurations ¤ Binary tree ¤ Sequence pair ¤ O-tree l Storage needed for individual configuration ¤ Binary tree ¤ Sequence pair ¤ O-tree l Transformation to a placement ¤ Binary tree ¤ Sequence pair ¤ O-tree
L-shaped blocks l Type II L-shaped blocks
L-admissible O-tree l If L(Bi, Bj) is type I L-shaped block, Bi and Bj are adjacent siblings B 6 B 4 B 11 B 10 B 3 B 5 B 2 B 9 B 8 B 1 B 7 Type I L-shaped blocks: L(B 1, B 2), L(B 3, B 4), L(B 7, B 8)
L-admissible O-tree l If L(Bi, Bj) is a type II L-shaped block ¤ If Bi has no child ¢ No block between them in interval overlapping with ¢ B 6 B 4 has horizontal spanning B 11 B 10 B 3 B 5 B 2 B 9 B 8 B 1 B 7 Type II L-shaped blocks: L(B 5, B 6)
L-admissible O-tree ¤ If Bj has no child ¢ No block between them in interval overlapping with ¢ ¤ has horizontal spanning If ¢ No block between them in interval overlapping with has horizontal spanning
L-admissible O-tree l Theorem If an O-tree is L-admissible, a minimum area placement satisfying both horizontal positioning constraints and L-shaped constraints can be built in O(n) time
L-admissible O-tree to Placement l X-coordinate l For every type II L-shaped block L(Bi, Bj) l Place the blocks by the depth first search order, place blocks as down as possible with xcoordinates fixed l For every L-shaped block L(Bi, Bj)
L-admissible O-tree to Placement B 6 B 4 B 11 B 10 B 3 B 5 B 9 B 2 B 8 B 1 B 7 B 6 B 4 B 3 B 11 B 10 B 5 B 2 B 9 B 8 B 1 B 7
Sufficiency of the L-admissible O-tree l Theorem Any compact placement containing L-shaped blocks can be encoded with an L-admissible Otree.
Placement to L-admissible O-tree l Partition all L-shaped blocks l Construct a horizontal constraint graph B 6 B 4 B 3 B 11 B 10 B 5 B 2 B 9 B 8 B 1 B 7
Placement to L-admissible O-tree l Generate the shortest path tree B 6 B 4 B 3 B 11 B 10 B 5 B 2 B 9 B 8 B 1 B 7
Placement to L-admissible O-tree l For each type I L-shaped block L(Bi, Bj) ¤ ¤ Delete the tree edge to Bi Add an edge to Bi from parent of Bj B 6 B 4 B 3 B 11 B 10 B 5 B 2 B 9 B 8 B 1 B 7
Placement to L-admissible O-tree l For each type II L-shaped block L(Bi, Bj) ¤ ¤ if Bi is compact to the left move Bj’s children to be Bi’s children else move Bi’s children to be Bj’s children B 6 B 4 B 3 B 11 B 10 B 5 B 2 B 9 B 8 B 1 B 7
Properties of the L-admissible O-tree l The width of the placement has not be changed after the alignment operation l The height of the placement has not be changed after the abutment operation l The non L-admissible O-tree is redundant l No extra post process is needed
Rectilinear Block Packing l L-partition the rectilinear blocks ¤ A rectilinear block can be represented by a set of adjacent sub-L-shaped blocks l Admissible O-tree ¤ O-tree is admissible if it is L-admissible for all sub-Lshaped blocks l Extend our approach to handle rectilinear blocks
L-partition l Two adjacent sub-rectangle form L-shaped B 1 B 2 B 3 l -rectangle insertion B 1 B 2 B 3 B 12
Expandable Rectilinear Block
Rectilinear Block Packing l Transitivity property for alignment ¤ If a O-tree is L-admissible to two adjacent sub-Lshaped blocks {Bi-1, Bi} and {Bi, Bi+1}, the alignment property for {Bi-1, Bi+1} can be restored by applying the moving and expanding operation l Transitivity property for abutment ¤ If a O-tree is L-admissible to two adjacent sub-Lshaped blocks {Bi-1, Bi} and {Bi, Bi+1}, the abutment property for {Bi-1, Bi+1} can be restored by applying the lifting and expanding operation
The Heuristic Optimization Algorithm l Delete a block from the O-tree ¤ if it is a sub-block of an L-shaped block, delete the other sub-block l Operate the tree rotation and insert the deleted blocks at the best insertion position in each O-tree l Choose the best one according to the cost function
O-tree Rotation f c e b d c f b a e b d a f c g d g e g a f c b a g e d
An O-tree to Its Orthogonal O-tree
L-shaped Block Packing
Rectilinear Block Packing
Conclusions l Develop a simple technique to handle rectilinear block packing problem l Transforming an admissible O-tree to a placement can be realized in linear time l No post-process needed to recover the original rectilinear shape
- Slides: 30