Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Quick placement with geometric constraints

Proceedings of CICC 97 - Custom Integrated Circuits Conference, 1997
...Read more
orientation processor QP-based force-dir. optimizer Set correct orientations Spread components over available area Find best placement Optimize area usage Minimize wire length Remove overlaps FM-based min-cut < N iterations
10um x vert. align [symmetry] symmetry A B C D
Quick Placement with Geometric Constraints Enrico Malavasi, Joseph L. Ganley and Edoardo Charbon Cadence Design Systems, Inc. - San Jose, CA, 95134 Abstract In this paper an original constraint-driven placement tool targeted for full-custom mixed-signal design is described. One of its main objectives is to quickly obtain feasible layout con gurations, and explore eciently the e ect of di erent sets of constraints in an interactive environment. By using direct-approach algorithms, all feasible constraints are met by construction. Overconstraints are detected, and quick feedback is given to the user about infeasible requirements. Good results have been obtained on a signi cant set of industrial-strength test cases. orientation processor Find best placement QP−based force−dir. <N iterations 1. Introduction Most of the existing approaches to performance-driven layout design, in particular in the mixed-signal and analog domain, have focused on full automation of the design process. In particular the fundamental work done at Berkeley [1] and at Carnegie Mellon [2] has contributed to an understanding of the issues related to constraint management and enforcement in layout. However, as the circuit complexity and the number of constraints grow, the quality and density of automatic solutions are still often inadequate. With high-performance mixed-signal full-custom designs, a combination of manual and automatic design must be used. The role of automatic tools is to provide a fast exploration of the solution space, to be followed by manual ne tuning. In particular in the case of constraint-driven placement, the most common approach used is simulated annealing [3, 4]. The time it requires to achieve a significant result is often in the order of several minutes to a few hours, which is often unacceptable in an interactive environment. On the other hand, the existing direct approaches, such as force-directed placement [5, 6], take into account few or no geometric constraints on the layout. In this paper a new constraint-driven placement tool for fullcustom design called Device-Level Placer (DLP) is described. One of the main targets in its implementation was to provide the user with a quick way to obtain feasible layout con gurations, and explore eciently the e ect of applying di erent sets of constraints. Hence, a placement of all components that is consistent with a complex set of geometric constraints and oor-plan requirements must be found within a reasonable amount of time. Our target was to obtain a solution within a few seconds for simple cells of 10 to 50 components, and no more than a few minutes for circuits with a few hundred components. DLP has been implemented using a direct approach based on a force-directedplacement augmented by a min-cut partitioner, modi ed to guarantee the enforcement of geometric constraints. The algorithms used, Quadratic Programming (QP) [7] for the forcedirected placement, and the Fiduccia-Mattheyses (FM) [8] algorithm for min-cut, have been combined in the past for placement [5, 6]. In our approach an entire set of geometric constraints is taken into account and enforced. Infeasible con gurations, due to overconstraints, are detected, and quick feedback is given to the user about the infeasibleconstraints. We are not aware of any other approach to placement, using direct-approach algorithms, which is able to guarantee to meet such a large set of geometric constraints. The results obtained on a signi cant set of industrial-strength test cases show that this approach produces good quality placement even with a large number of simultaneous constraints. optimizer Set correct orientations Spread FM−based components over min−cut available area Optimize area usage Minimize wire length Remove overlaps Fig. 1. Structure of DLP. The loop involving QP and FM has at most N iteration, where N is the number of components. This paper is organized as follows. Section 2 provides an overview of the Device-Level Placer structure. In Section 3 the geometric constraint categories are analyzed, and the corresponding enforcement techniques are described. Implementation and results are shown in Section 4. Conclusions are presented in Section 5. 2. DLP The Device-LevelPlacer (DLP) is an automaticconstraint-driven placement tool, targeted for mixed-signal device- and block-level design. The structure of DLP is illustrated in Figure 1. It is made of three phases: In the rst phase, an orientation processor sets correct orientations on all components, consistent with the entire set of geometric constraints. Orientation overconstraints are detected in this phase, and feedback is provided to the user about infeasible constraints, which will be ignored during placement. The second phase iterates between two algorithms: (a) a QP-based force-directed placement algorithm, which places all components minimizing the length of interconnections; (b) a min-cut partitioner based on the FM algorithm, which optimizes the result obtained in (a), spreading as uniformly as possible the components over the area available for placement. The number of iterations is never greater than N, which is the total number of components in the layout. Both algorithms enforce all constraints on the relative and absolute positions of the components. The techniques used are described in Section 3. This phase does not change the component orientations. The third phase is an iterative optimizer, trying to minimize the wire length, to further optimize the area usage, and to remove any remaining overlaps. In principle this can be seen as a low-temperature simulated annealing algorithm. The set of moves maintains all components within short distance from their initial placement, and no constraint violations are allowed. Notice that the rst two phases enforce all geometric constraints, [symmetry] 10um B x A vert. align D C symmetry Fig. 2. Overconstraint generated by the combination of a symmetry constraint, alignment and minimum spacing. respectively on orientation and position. In the third phase, on the contrary, the optimizer expects all constraints to be already enforced by the previous phases, and therefore it preserves the constraints, rather than enforcing them. The second phase replicates the approach proposed for quick placement in [5, 6]. However, original modi cations have been added to the original algorithm to enforce position constraints. Moreover, the combination of all three phases is necessary to enforce the full set of geometric constraints, as described in detail in Section 3. Overconstraints An overconstraint is a con ict between a set of two or more incompatible constraints, hence the entire set of constraints cannot be simultaneously enforced. As an example, consider the case where four components A, B, C, D are de ned, and the following four constraints are speci ed:  A and B must be symmetric with respect to a vertical axis x.  C and D must be symmetric with respect to the same axis x.  A and C must be aligned along the vertical direction (same X coordinate)  The horizontal spacing between B and D must be no less than 10m. In this situation, illustrated in Figure 2, no con guration exists for the four components, that satis es all constraints. For instance, the con guration shown in Figure 2 violates the symmetry constraint between A and B, and satis es the other three constraints. Overconstraints may be dicult to detect before placement, in particular when they are due to the combination of more than two constraints. A policy to deal with overconstraints must be part of all constraint-driventools. In DLP, all constraints are given numerical priorities. DLP enforces a maximum set of constraints using the following strategy: only the constraints with lowest priority are violated, and the user is promptly noti ed when violations occur, and about which constraints are not enforced. Priorities are dened by default based on the constraint category, and the user can override the default by assigning di erent priorities to individual constraints. Setting constraint priorities is a critical design choice, because in case of overconstraints the constraints with lowest priority will not be met. Often this choice is not simple, and a trial-and-error approach is necessary. In this situation, a fast automatic constraintdriven placement tool becomes an invaluable help to explore different scenarios and get feedback about the feasibility of di erent constraint sets. 3. Geometric Constraints Geometric constraints are de ned as restrictions on the absolute and relative position and orientation of layout components. Coordinates can be those of the center or edges of the component bounding box, or of edges of its layers. In what follows we will ignore the speci c reference, since at least in principle all references are equivalent to one another, plus a component-speci co set. Geometric constraints are required to accomplish the following tasks: 1. To drive automatic tools toward a prede ned oor-plan, or to limit the search space during placement, in a trial and error approach. 2. To specify correlations between components, for instance in order to minimize mismatch or thermal noise. 3. To implement high-level speci cations. Geometric constraints may be generated indirectly through automatic constraint translation based on high-level design performance speci cations [9, 10]. In DLP, geometric constraints are classi ed into six categories: Fixed X/Y/, Spacing, Firm Groups, Relative Orientation, Alignment, and Symmetries. These categories cover most of the geometric requirements in a layout system. More complex constraints can be built as combinations of those categories. As an example, consider a matching constraint on a set of components. As shown in [11], matching can be enforced by requiring the components to be within a max distance from each other (max spacing constraint) and to have the same orientation (Relative Orientation constraint). Optional requirements might include alignment between the components, or rm-grouping if their relative position has been determined by some module generator. In what follows, for each category we describe the constraint semantic and the enforcement technique implemented in DLP. Fixed X/Y/ A Fixed constraint applies to one component. It speci es the exact value of the position of the component, and its absolute orientation with respect to the reference coordinate system. It is represented by two coordinates X and Y, and an orientation . Any of these three parameters can be left unde ned, although at least one of the three must be de ned for the constraint to be meaningful. The enforcement of Fixed constraints is straightforward:  The orientation  is set by the orientation processor, and never modi ed afterwards.  The coordinates X and Y, if xed, are constants for the QP solver, that is the row and column of the corresponding components are removed from the system.  The partitioner treats the xed X/Y components as unmovable within the side each of them happens to fall in when the cut is drawn.  The optimizer does not modify any of the xed component's coordinates or orientation. Spacing The spacing between components is de ned as the range between the minimum and maximum distance allowed between their reference points, in either orthogonal direction. A minimum distance d between components means that they cannot be placed at a distance less than d. A maximum distance D instead means that they cannot be placed at a distance greater than D. If the minimum spacing is not speci ed it defaults to zero, while the default for the maximum is in nity. Di erent spacing may be required in the X or Y direction respectively. Spacing constraints are enforced by the partitioner and by the optimizer:  The partitioner applies the following rule: components with a minimum distance requirement d can be placed within the same partition only if its size is at least d. Analogously, components with a maximum distance constraint D must be placed within the same partition of a cut, unless the max distance between components in opposite sides of the cut is no more than D.  The optimizer always keeps components spaced by values within their spacing constraint range. Firm Groups Move in opposite directions A Firm Group is a constraint involving two or more components. The relative position and orientation of the components cannot be changed, although the group as a whole can move and rotate in the layout space. A Firm Group behaves like one component from the perspective of the placement tool. The enforcement of this constraint is in principle straightforward: all the components in the group are substituted by one equivalent component in all phases of the placement. Although simple in principle, the implementation can be quite complex, because it involves a translation of all the constraints involving the original components of the group (in particular alignments, symmetry etc.) into suitable constraints on the equivalent component for DLP. Slide together along symm. axis Rotate in opposite directions Relative Orientation The Relative Orientation constraint applies to sets of two or more components, and as the name indicates it corresponds to a requirement on the relative orientation between them. It can be any of the following:  All components have the same orientation  Each two components on the set have either the same orientation, or mirrored orientations.  The components in the set are exactly two, and their orientations must be mirrored with respect to each other. Since the QP and the partitioner do not modify the components' orientation, this constraint is enforced through the orientation processor and the optimizer only:  The orientation processor determines an orientation for all components, which is compatible with their relative orientation requirement.  The optimizer can modify the components' orientations, individually and as a group, to optimize area occupation and remove overlaps, while correctly preserving their relative orientation. Alignment Alignment constraints apply to sets of two or more components. The constraint implies that all components keep their reference point either on the same X coordinate (vertical alignment) or on the same Y coordinate (horizontal alignment). The enforcement of alignment is complex and involves several phases of the placement:  The matrix used by the QP algorithm is simpli ed by substituting the X coordinate (if vertical alignment) or the Y coordinate (with horizontal alignment) of all components with the coordinate of one of them chosen arbitrarily.  In the partitioner, when a cut is drawn parallel to the alignment direction, all the aligned components must be kept on the same side of the cut. If the cut is in the opposite direction, the partition must keep track of the aligned components, and guarantee that further cuts will maintain them aligned.  Alignment is preserved by the optimizer via composite moves. When an aligned component is moved in a direction orthogonal to alignment, all the other components aligned with it must be moved in the same direction, and by the same amount. Symmetries In a symmetry constraint, we de ne an axis (vertical or horizontal), self-symmetric components, and component pairs. The position of the axis can be xed or variable. Self-symmetric components are required to keep one coordinate of the center of their bounding box, X for a vertical axis, Y for a horizontal axis, on the axis itself. Notice that if the position of the axis is xed, this is equivalent to a Fixed X or Fixed Y constraint on the component respectively. The two components in a pair are required to:  Keep the same distance from the symmetry axis  Keep on opposite sides of the axis  Be aligned in the direction orthogonal to the axis A C Slide along symm. axis B Fig. 3. Structure of a symmetry constraint with a vertical axis, one self-symmetric component, and one pair. Have mirrored relative orientation across the axis Symmetries are probably the most complexgeometric constraints to deal with. Figure 3 shows the structure of a symmetry constraint with a vertical axis, one self-symmetric component B, and one pair (A,C). The enforcement of symmetries in DLP is done with the following procedure:  The orientation processor sets mirrored orientations on the components of each pair.  The axis is added to the system as a new component. If the axis position is xed, a Fixed X/Y constraint is added to the system for the axis itself.  The partitioner draws rst a cut along each of the symmetry axes. Following cuts are executed in parallel on each side of the symmetry axis, for each partition containing one of the symmetric components.  The optimizer does not disrupt symmetric objects, although it can change their position and their orientations. Symmetry is preserved through composite moves, illustrated by the arrows shown in Figure 3. Components in a pair can slide parallel to the axis, or move simultaneously in opposite directions orthogonal to it. They can only rotate simultaneously by mirrored angles. Self-symmetriccomponentscan only slide along the axis direction. The entire set of symmetric components for the same axis can move together (like in a Firm Group) if the axis position is not xed.  4. Experimental Results DLP is a new product in the Device-LevelEditor (DLE) environment, within the VirtuosoTM Layout System. It has been tested on a large set of full-custom cells, some of which were provided by customers with their original speci cations. Table 1 summarizes the performance of DLP on a sample of mixed-signal circuits. For each circuit we have reported the size, the CPU time, and the categories of constraints applied. The initial area assigned to each circuit was assigned by the circuit designer. The optimizer was run for the minimum amount necessary to ensure the removal of all overlaps. In no instance was it necessary to run the optimizer for more than 5 seconds. The CPU time seems to be loosely correlated with the number and type of constraints. The optimizer's Vdd Vdd Vpb P1 R21 R22 P2 P1 P2 Q8 In Out N3 N2 Vpb In N6 Vnb R21 R22 N2 C13 Vqb Vnb Vqb N6 Q9 R11 Q10 N3 N7 Out Q8 Q9 N7 Q10 C13 R12 R12 R11 Gnd Fig. 4. Schematic of circuit \follower". Fig. 5. Placement for circuit \follower", obtained by DLP. time depends almost only on the amount of space allocated to the circuit. As an example, consider circuit \follower", a two-stage singleended di erential biCmos ampli er, shown in Figure 4. A symmetry constraint is de ned with a non- xed vertical axis, with pairs (P1,P2), (N2,N3), (R21,R22), and self-symmetric components N6, Q9 and R11. N6 and N7 must be aligned and have the same relative orientation, and so do Q9 and Q10, as well as R11 and R12. A Max distance constraint is required between R11 and R12, between R21 and R22, and between N2 and N3. Finally, input, bias and supply pins are xed on the left edge of the cell bounding box, while the output pin is xed on the right edge of the cell. DLP produced a placement satisfying all these constraints, shown in Figure 5, in about 8 seconds. If all constraints are turned o , no signi cant di erence in the CPU time can be observed. ment and achieves the goal of a quick placement consistent with all feasible constraints. When overconstraints are detected, the placer provides information about the infeasible ones, and ignores low-priority constraints to enforce correctly the high priority ones. Work is in progress to re ne the use mode for a constraint-correct interactive editing environment, where the user is either prevented from violating geometric constraints, or immediately noti ed when a violation occurs. The starting point for this approach is the on-line interactive DRC check available in some advanced editing environments. 5. Conclusions A new constraint-driven placement tool for full-custom design called DLP has been described in this paper. Through a combination of force-directedplacement, min-cut partitioning, and iterative optimization, it is able to perform the placement of full-custom layout cells subject to large sets of geometric constraints. The six categories of geometric constraints we consider have been de ned, and the techniques used to enforce each of them have been described. The results obtained on a signi cant set of industrial-strength test cases show that this approach produces good quality placeCircuit typea N. comp. CPUb aoi21 D 14 8 amp A 15 4 di Amp A 16 3 fbAmp A 21 9 follower A 21 8 latch D 24 19 xor2 D 15 3 muxes D 35 32 opamp A 17 5 multi D 56 60 Table 1. DLP performance on a sample of M/S circuits. (a) D: Digital cell - A: Analog cell { (b) In sec. on a SUN SPARCstation-5 with 64 MB RAM. References [1] E. Malavasi, E. Charbon, E. Felt and A. Sangiovanni-Vincentelli, \Automation of IC Layout with Analog Constraints", IEEE Trans. on CAD, vol. 15, n. 8, pp. 923{942, August 1996. [2] J. M. Cohn, D. J. Garrod, R. A. Rutenbar and L. R. Carley, Analog Device-Level Layout Automation, Kluwer Academic Publ., Boston, MA, 1994. [3] J. M. Cohn, D. J. Garrod, R. A. Rutenbar and L. R. Carley, \KOAN/ANAGRAM II: New Tools for Device-Level Analog Placement and Routing", IEEE Journal of Solid State Circuits, vol. 26, n. 3, pp. 330{342, March 1991. [4] E. Charbon, E. Malavasi, U. Choudhury, A. Casotto and A. Sangiovanni-Vincentelli, \A Constraint-Driven Placement Methodology for Analog Integrated Circuits", in Proc. IEEE CICC, pp. 2821{2824, May 1992. [5] J. M. Kleinhans, G. Sigl, F. M. Johannes and K. J. Antreich, \GORDIAN: VLSI placement by quadratic programming and slicing optimization", IEEE Trans. on CAD, vol. 10, pp. 356{365, 1991. [6] T. H. Altho and F. Johannes, \PLACEBO: Analog Placement",  Hirzel-Verlag, Stuttgart, vol. 49, n. 2, pp. 55{63, 1995. AEU, [7] M. Hanan and J. M. Kurtzberg, \Placement Techniques", in Design Automation of Digital Systems, M. A. Breuer Editor, pp. 213{282, Prentice-Hall Inc., Englewood Cli s, NJ, 1972. [8] C. M. Fiduccia and R. M. Mattheyses, \A Linear Time Heuristic for Improving Network Partitions", in Proc. IEEE/ACM DAC, pp. 175{181, 1982. [9] H. Chang et al., A Top-Down, Constraint-Driven Design Methodology for Analog Integrated Circuits, Kluwer Academic Publ., Boston, MA, 1996. [10] S. Sutanthavibul and Shragowitz, \An Adaptive Timing-Driven Layout for High Speed VLSI", in Proc. IEEE/ACM DAC, pp. 90{95, June 1990. [11] M. J. M. Pelgrom, A. C. J. Duinmaijer and A. P. G. Welbers, \Matching Properties of MOS Transistors", IEEE Journal of Solid State Circuits, vol. 24, pp. 1433{1440, October 1989.