1 / 30

Modern floorplanning with boundary clustering constraint

Modern floorplanning with boundary clustering constraint. L.Li, Y.Ma, N.Xu, Y.Wang, X.Hong WuHan University of Technology, WuHan, China Tsinghua University, Beijing, China. ISVLSI 2009. Outline. Introduction Problem formulation B*-tree representation

genero
Download Presentation

Modern floorplanning with boundary clustering constraint

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Modern floorplanning with boundary clustering constraint L.Li, Y.Ma, N.Xu, Y.Wang, X.Hong WuHan University of Technology, WuHan, China Tsinghua University, Beijing, China ISVLSI 2009

  2. Outline • Introduction • Problem formulation • B*-tree representation • Feasible conditions for the boundary clustering constraint • SA-based optimization flow • Experimental results • Conclusion

  3. Floorplanning • Inputs to the floorplanning problem: • A set of modules, hard or soft. • Pin location of hard modules • A netlist. • Objectives: minimize area, reduce wirelength, maximize routability.

  4. Introduction • Classical floorplanning formulation determines the layout of a given set of modules: • No modules overlap. • The enclosing layout region has minimum area and interconnection. • With the development of SOC designs, modern floorplanning typically needs to provide extra options to meet the different emerging requirements: • Boundary constraint for I/O connection. • Clustering constraint for performance and reliability.

  5. Introduction • For instance, in mixed mode placement, the macros are always packed on the boundaries or clustered to the boundaries first. • Define the boundary clustering constraint which requires constrained modules being on the boundaries or clustering to the boundaries.

  6. Introduction • In mixed-size placement, the macro modules are first packed along or clustered to the boundaries which satisfy the boundary clustering constraint. • Some small macros are not along the boundaries, but clustered near to the big macros which are along the boundaries.

  7. Problem Formulation • Boundary clustering constraint • The boundary clustering constraint means that the constrained modules must be placed along or clustered to the boundaries in the final placement.

  8. Problem Formulation • Problem Definition • Input: • Let B={b1, b2, … , bn} be a set of n rectangular modules with width, height and area are denoted by Wi, Hi and Ai, 1<=i<=n. • Let (xi, yi) denote the coordinate of the bottom-left corner of module bi. • Output: • An assignment of the coordinate (xi, yi) for each bi, 1<=i<=n, such that no two modules overlap and the constrained modules meet the boundary clustering constraint. • The goal of floorplanning is to optimize a predefined cost metric, such as the area and wirelength.

  9. B*-tree Representation • [1] Y.C. Chang, Y.W. Chang, G.M. Wu, and S.W. Wu, “B*-trees: A new representation for non-slicing floorplans,” Proc. DAC, 2000, pp. 458-463. • B*-trees are an ordered binary tree for modeling a compacted floorplan. • Given an admissible placement (no module can move left or bottom), we can represent it by a unique B*-tree. • The root of B*-tree corresponds to the block on the bottom-left corner. • Left child: the lowest module on the right. • Right child: the module above, with the same left-side coordinate.

  10. B*-tree Representation

  11. B*-tree Representation • Based on the definition, the x- and y-coordinates of the block associated with the root = (0, 0). • If node nj is the left child of node ni, block bj is placed on the right-hand side and adjacent to block bi; xj=xi+wi. • If node nj is the right child of ni, block bj is placed above block bi; xj=xi.

  12. Feasible conditions for the boundary clustering constraint • Bottom boundary clustering condition: • The nodes corresponding to the bottom clustering blocks must be on the leftmost branch of a B*-tree and their children. • Left boundary clustering condition: • The nodes corresponding to the left clustering modules must be on the rightmost branch of a B*-tree and their children.

  13. Feasible conditions for the boundary clustering constraint • Right boundary clustering condition: • The nodes corresponding to the right clustering modules must be on the bottom-left branch of a B*-tree which left children are moved. • Top boundary clustering condition: • The nodes corresponding to the top clustering modules must be on the bottom-right branch of a B*-tree which right children are moved.

  14. Feasible conditions for the boundary clustering constraint • It means that the placement is legal if sufficient conditions are satisfied. • The sufficient conditions may help us search the feasible solutions efficiently.

  15. Repair an infeasible B*-tree • Based on the proposed conditions, we can transform an infeasible B*-tree into feasible one. • Three kinds of operations are devised to change the violated nodes to meet the boundary clustering constraint. • Op1: Swap with a free node in leftmost (rightmost) branch or bottom-left (bottom-right) branch of a B*-tree which is not constrained. • Op2: Insert into leftmost (rightmost) branch or bottom-left (bottom-right) branch of a B*-tree. • Op3: Choose a constrained node in leftmost or rightmost branch or a child of a node which satisfies the constrained as parent.

  16. Repair an infeasible B*-tree • Suppose the boundary clustering constrained modules are n0, n1, n2 and n4. • n4 is a violated node. 9 8 7 4 6 0 1 5 2

  17. Repair an infeasible B*-tree • Doing Op1, choose n5 which is a free boundary node to swap with. 9 8 7 5 6 0 4 1 2

  18. Repair an infeasible B*-tree • Doing Op2, insert n4 into the rightmost branch of B*-tree. 8 9 4 7 6 0 1 5 2

  19. Repair an infeasible B*-tree • Doing Op3, choose the n1 as the parent and let n4 be the right child of it. 9 8 7 6 4 0 1 5 2

  20. Simulated annealing • An initial solution • No zero probability for “up-hill” moves. • Probability depends on • C = cost(S’) – cost(S) • T: control parameter (temperature) • Ti = rTi-1, r<1

  21. SA-based optimization flow

  22. Perturbation in SA • Apply the following three operations to perturb a B*-tree: • Op1: Rotate a module. • Op2: Swap two modules. • Op3: Move a module to another place in B*-tree. • Op1 only exchanges the width and height of module without changing a B*-tree while Op2 and Op3 do. • The topology of a B*-tree is changed for Op3 since we need to delete and insert nodes into B*-tree.

  23. Perturbation in SA • For node deletion, three types of nodes must be considered: leaf nodes, nodes with one child, and nodes with two children. • For a leaf node, it can be removed directly without affecting other nodes. • For a node with one child, it is replaced by its child.

  24. Perturbation in SA • To delete a node with two children, one of its children is chosen to replace the target node. • Move a child of the node to the position of the chosen node.

  25. Maintaining a feasible B*-tree • The feasible condition of a B*-tree may be destroyed after perturbation. • For example, it is obvious that rotating modules do not change the validity and we needn’t recheck the B*-tree. • To guarantee a feasible B*-tree during perturbation, we do not move nodes to left (right) children of the nodes in the bottom-left (bottom-right) branch.

  26. Experimental results

  27. Experimental results

  28. Experimental results

  29. Experimental results

  30. Conclusion • This paper proposed an efficient algorithm to transform an infeasible solution into a feasible one if the boundary constraint is violated. • Unlike most previous works, their algorithm can repair infeasible solutions rather than directly rejecting them during optimization process.

More Related