# Patent

## Title
Optimal simultaneous design and floorplanning of integrated circuit

## Abstract

A method is described for optimal simultaneous design and floorplanning of integrated circuits. The method is based on formulating the problem as a geometric program, which then can be solved numerically with great efficiency. Prior work discloses the design of many different analog circuit cells such as operational amplifiers, spiral inductors, and LC oscillators which can be cast as geometric programs. The present disclosure adds to this layout floorplanning constraints in posynomial form that can be mixed with design constraints for different analog circuits. This allows the simultaneous design and floorplanning of numerous analog circuits using geometric programming. Thus, the design and floorplanning can be performed optimally in a single step.

## Background
BACKGROUND
The invention relates to computer aided design of integrated circuits, particularly the simultaneous determination for circuit parameters which include boundaries for floorplan layout.
PRIOR ART
One computer aided design (CAD) technique for designing integrated circuits, particularly analog circuits, relies upon geometric programming. In general, posynomial expressions of circuit parameters for a plurality of performance specifications are first developed. These expressions are constrained, typically by optimization values for a selected one or more of the performance specifications. The expressions are then solved using geometric programming. This solution provides a globally optimal design. Among the specified performance criteria are layout area, gate overdrive, minimum power, unity gain bandwith, etc. . . . Dimensional constraints such as symmetry and matching, limits on device size and total area are used. For a discussion of this technology, see System And Method For Designing Circuits, Ser. No. 09/123,129, filed Jul. 27, 1998.
The present invention is an extension of this technology which provides simultaneously with the above computation, specific boundaries in the floorplan of the circuit elements in the integrated circuit.
SUMMARY OF THE INVENTION
The present invention is a method for designing an integrated circuit where design parameters for performance specifications are represented by posynomial expressions with constraints and then solved with geometric programming. The present invention provides an improvement where simultaneous determination of the boundaries for circuit elements in a floorplan result. The floorplan is represented as posynomial expressions with constraint on the size of each of the circuit elements. These posynomial expressions are solved using geometric programming thereby providing the boundaries within the floorplan simultaneously with determining the circuit parameters for the performance specifications.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a flow diagram showing the steps of the present invention.
FIG. 2 is a flow diagram showing the method for obtaining the posynomial expressions for each of the circuit element using a slicing technique.
FIG. 3 is a circuit diagram of an integrated circuit.
FIG. 4 is a floorplan layout for the circuit of FIG. 3.
FIG. 5 is a slicing diagram for the floorplan of FIG. 4.
FIG. 6 is a floorplan layout for another integrated circuit.
FIG. 7 is a slicing diagram for the floorplan of FIG. 6.



DETAILED DESCRIPTION
A method is described for providing the boundaries forming a floorplan for a circuit. In the following description, numerous specific details are set forth, such as specific circuits to provide a thorough understanding of the present invention. It will be apparent to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well known prior art technique such as solving posynomial expressions using geometric program is not set forth in detail in order not to unnecessarily obscure the present invention.
In the following description, the word “posynomial” expression or equation is used. This term is used to include a monomial expression or equation.
In the prior art, it is known that the design of many different analog circuit cells such as operational amplifiers (op-amps), spiral inductors, and LC oscillators, as well as more complicated analog and mixed circuits, such as phase-lock loops, analog-to-digital and digital-to-analog converters and switched-capacitor filters can be cast as geometric programs. These designs presupposes the active devices are operating in their saturation regions. In this patent, this prior art technology is built upon in that the layout floorplanning constraints for a circuit are set forth in posynomial and hence, can be mixed with design constraints. This allows for the simultaneous design and floorplanning of analog circuits using geometric programming. Consequently, the design and floorplanning can be performed optimally in a single step.
In co-pending application Ser. No. 09/123,129; filed Jul. 27, 1998; entitled System and Method for Designing Integrated Circuits, now U.S. Pat. No. 6,269,277, the design techniques for designing for instance, an op-amp is described. In summary, this prior art computer aided design (CAD) system provides for the design and in optimizing of integrating circuits. It results in the automated synthesis of globally optimal circuit designs for a give circuit topology resulting directly from a user defined specification. Generally, the CAD system includes a library of integrated circuit topologies. The performance specifications for the integrated circuit topologies are described as posynomial functions of the design parameters. The performance specifications are combined with user defined design objectives and constraints to form a geometric program. One embodiment reformulates geometric programs as convox optimization problems, i.e. the problem of minimizing a convex function subject to convex inequalities constraints and linear equality constraints. This facilitates globally and efficiently solving geometric programs. New variables y1=log x1 are defined, the logarithm of a polynomial f is taken to get. 



  
    h
    ⁢
    
      (
      y
      )
    
  
  =
  
    
      log
      ⁡
      
        (
        
          f
          ⁡
          
            (
            
              
                e
                y1
              
              ,
              ...
              ⁢
              
                 
              
              ,
              
                e
                yn
              
            
            )
          
        
        )
      
    
    =
    
      log
      ⁢
      
        (
        
          
            ∑
            k
            t
          
          ⁢
          
            e
            
              
                
                  a
                  k
                  T
                
                ⁢
                y
              
              +
              
                b
                k
              
            
          
        
        )
      
    
  




where αkT=[αlk . . . αnk] and bk=log ck. It can be shown that h is a convex function of the new variable y: for all y,z ε Rn and 0≦λ≦1 which yields

h(λy+(1−λ)z)≦λh(y)+(1−λ)h(z).

The geometric program is then expressed as convex program as follows: 



  
    
      
        minimize
        ⁢
        
          
             
          
          ⁢
          
        
        ⁢
        log
        ⁢
        
           
        
        ⁢
        
          
            f
            0
          
          ⁡
          
            (
            
              
                e
                y1
              
              ,
              ...
              ⁢
              
                 
              
              ,
              
                e
                yn
              
            
            )
          
        
      
    
  
  
    
      
        
          
            subject
            ⁢
            
               
            
            ⁢
            to
            ⁢
            
              
                 
              
              ⁢
              
            
            ⁢
            log
            ⁢
            
               
            
            ⁢
            
              
                f
                i
              
              ⁡
              
                (
                
                  
                    e
                    y1
                  
                  ,
                  ...
                  ⁢
                  
                     
                  
                  ,
                  
                    e
                    yn
                  
                
                )
              
            
          
          ≤
          0
        
        ,
        
          i
          =
          1
        
        ,
        ...
        ⁢
        
           
        
        ,
        m
      
    
  
  
    
      
          
        ⁢
        
          
            
              log
              ⁢
              
                 
              
              ⁢
              
                
                  g
                  i
                
                ⁡
                
                  (
                  
                    
                      e
                      y1
                    
                    ,
                    ...
                    ⁢
                    
                       
                    
                    ,
                    
                      e
                      yn
                    
                  
                  )
                
              
            
            =
            0
          
          ,
          
            i
            =
            1
          
          ,
          ...
          ⁢
          
             
          
          ,
          
            p
            .
          
        
      
    
  




This is the so-called exponential form of the geometric program. The convexity of the exponential form geometric program has several important implications including that efficient interior-point methods can be used to solve such geometric programs, and there is a complete and useful duality, or sensitivity theory for them. The efficient procedures for solving geometric programs typically provide the globally optimal results in a matter of seconds in a digital computer. The present invention therefore yields automated synthesis of globally optimal circuit designs for a given circuit topology library, directly from specifications.
With the present invention, the first step includes representing a circuit such as an op-amp as posynomial constraints as is described in the above referenced patent. Step 10 shows this in FIG. 1 under the step “represent circuit design parameters by posynomial constraints.”
Unlike the prior art, however, the present invention now represents the floorplan of the circuit such as an op-amp, as polynomial constraints of circuit element size. In effect, the boundaries of the circuit elements forming the circuit such as the transistors in an op-amp, are represented as posynomial expressions with constraints, as will be described.
Next, the expressions both for the floorplan and the performance specifications of the circuit represented by design parameters are solved with a geometric program yielding both the circuit parameters and the boundaries of the circuit elements in the floorplan. This is shown in FIG. 1 as step 12. This can be done generally using a modern workstation in a matter of minutes. Such computation without a modern digital computer could take a lifetime to compete manually.
The results of step 12 are represented in a format which preferably can be readily used by a designer in the layout of the circuit for fabrication as an integrated circuit as shown by step 13. For instance, a computer readable format is provided on a specified grid identifying the circuit elements and their parameters such as the length and width of channels of MOS transistors. In other instances, it may be more desirable to provide a hard copy with the fabrication information. In any event, the solution resulting from the geometric program enables the fabrication of an optimal circuit. In one embodiment, the circuit fabrication data is sent over the Internet to a designer that incorporates the design into an overall chip design. Then the chip incorporating the circuit designed in accordance with the present invention can be fabricated using known processes.
Consider first the op-amp of FIG. 3. It is fabricated with n-channel, MOS transistors and a passive capacitor 34. The input devices M1 and M2 (transistors 30 and 31) are connected in series with their respective loads M3 and M4 (transistors 32 and 33). The two resultant legs are coupled to M5 (transistor 37). A biasing potential is developed from the constant current source 35 which is coupled to the gate of M5 through M6 (transistor 36). The output capacitor CC is coupled to the common node between M2 and M4.
A suggested floorplan for this op-amp is shown in FIG. 4. The active loads M3 and M4 of the op-amp are laid out in the upper left hand corner of the floorplan. The compensation capacitor CC is laid out on the right side of the floorplan. The input transistors M1 and M2 are shown laid out directly below M3 and M4. Finally, M5 and M6 are laid out along side each other in the lower left hand corner of the floorplan. Although the relative location of the different cells (e.g., M3, M4) are fixed in FIG. 4, the exact location of the boundary between the different cells is not fixed. That is, the location of lines 40, 41, 42, and 43 is not fixed within the overall circuit layout.
Given the generic floorplan of the op-amp as shown in FIG. 4, the circuit topology, and required objective parameters and specifications, the goal is to design the circuit (e.g., size the transistors) so that all specifications are met. These objectives and specifications include electrical specification such as gain and bandwidth for op-amps, as well as specifications such as the aspect area of the layout. Minimizing the layout area results in a design with optimal cell packing.
In one embodiment, the floorplan is represented as posynomial constraints of circuit element size using a slicing tree. Referring to FIG. 4, assume that for a first slice, a vertical slice is taken along line 40. The cell on the right (sibling node) is the capacitor CC and the cell on the left (other sibling node) contains the cells M3, M4; M1, M2; M5; and M6. Referring to FIG. 5, this initial slice is shown beginning at node 0 by the lines 51 and 52. The “V” on these lines indicate a vertical slice. Line 51 is shown ending in the capacitor, whereas line 52 lead to the point for the next slice.
Now, a horizontal slice is made beginning at node 1 along line 41. As shown by line 53, this results in the sibling node, cell M3, M4. Line 54 leads to node 2 where the next slice occurs.
From node 2, an additional horizontal slice is made along line 42 as shown by lines 55 and 56 of FIG. 5. Line 55 ends in the sibling node comprising the transistors M1, M2.
Line 56 includes the two nodes, M5 and M6. Now, an additional vertical slice is made along line 43 as shown by lines 57 and 58 resulting in the sibling nodes, cells M5 and M6.
Suppose that (xi, yi) are the horizontal dimension (width) and vertical dimension (height) respectively of the ith cell corresponding to the ith node of the slicing tree shown in FIG. 5. Given the slicing tree, one can write the inequality constraints relating to the (xi, yi). For example, at node 0 



  
    
      
        
          
            
              χ
              1
            
            +
            
              
                χ
                cap
              
              ⁡
              
                (
                
                  C
                  c
                
                )
              
            
          
          ≤
          
            χ
            0
          
        
        ,
        
          

        
        ⁢
        
          
            y
            1
          
          ≤
          
            y
            0
          
        
        ,
        
          

        
        ⁢
        
          
            
              y
              
                
                   
                
                ⁢
                cap
              
            
            ⁡
            
              (
              
                C
                c
              
              )
            
          
          ≤
          
            y
            0
          
        
        ,
      
    
    
      
        (
        1
        )
      
    
  




where χcap(CC) and ycap(CC) are the width and the height of the capacitor CC respectively. Or at node 1: 



  
    
      
        
          
            
              χ
              mir
            
            ⁡
            
              (
              
                
                  M
                  3
                
                ,
                
                  M
                  4
                
              
              )
            
          
          ≤
          
            χ
            1
          
        
        ,
        
          

        
        ⁢
        
          
            χ
            2
          
          ≤
          
            χ
            1
          
        
        ,
        
          

        
        ⁢
        
          
            
              
                y
                mir
              
              ⁡
              
                (
                
                  
                    M
                    3
                  
                  ,
                  
                    M
                    4
                  
                
                )
              
            
            +
            
              y
              2
            
          
          ≤
          
            y
            1
          
        
        ,
      
    
    
      
        (
        2
        )
      
    
  




This is summarized in FIG. 2 beginning with block 20. For vertical slices as shown by block 22, the sum of the widths of the sibling nodes are equal to or less than the parent node, while the heights of the sibling nodes are each equal to or less than the parent node. In contrast, for the horizontal slice of block 21, the sum of the heights of the sibling nodes is equal to or less than the parent node, while the widths of the sibling nodes are each equal to or less than the parent node.
As indicated by the lines 23 and 24, slicing continues until the entire circuit is sliced into individual cells for which the boundaries are to be determined. When this is done as shown by block 25, the circuit elements such as the MOS transistors and the capacitor for the op-amp, are represented as a function of boundaries and other element parameters as will be described.
As can be seen, constraints such as shown by equations (1) and (2) are posynomial constraints in cell sizes of the variables (xi, yi). There are also posynomial expressions in circuit variables (e.g., W, L of transistors, size of CC, etc. . . . ) because the functions χi+χcap(CC), ycap(CC), χmir(M3, M4), and ymir(M3, M4) are all posynomial in the circuit variables as will be discussed later.
A constraint on the total area of the circuit to be less than Aspec, is simply given by:

χ0y0≦Aspect,   (3)

which is a monomial inequality in the variables (χ0 y0). Optimal packing of the cells is achieved by minimizing χ0 y0 which is a posynomial function of the variables.

A constraint on the aspect ratio of the circuit to be less than κspec is given by:

χ0/y0≦κ1spec, y0/χ0≦κ2spect  (4) 

The smallest aspect ratio can be found by minimizing max (X0 y0, y0 X0), which can then be converted into a geometric program (by introducing a slack variable).
Hence, by mixing the layout constraints which are posynomials, such as expressions (1), (2), (3), and (4) with the circuit constraints (as given in the above referenced patent), it is possible to optimally design the circuit and floorplan in one step.
FIGS. 6 and 7 illustrate another example of a circuit floorplan and slicing tree. In FIG. 6, the circuit consists of transistors M1, M2, M3, M4, and M5 with the illustrated topology.
Beginning with node 0, a horizontal slice along line 60 is made as shown by lines 71 and 72 of FIG. 7. Line 72 ends in the cell M5. Line 71 ends in the sibling nodes comprising M1, M2, M3, and M4. Next, at node 1, a horizontal slice along line 61 is made resulting in two sibling nodes: one at line 74 comprising transistors M3 and M4, and the other at line 73 comprising transistors M1 and M2. Now, a vertical slice is made along line 62 from node 2 resulting in cells M1 and M2 shown at the ends of lines 75 and 76 in FIG. 7. Lastly, a horizontal slice is made along line 63 from node 3 resulting in the cells M3 and M4 shown at the ends of lines 77 and 78 of FIG. 7.
Again, with each of the slices, the algorithm of FIG. 2 is used. Specifically, for the vertical slices the sum of the widths of the sibling nodes is equal to or less than the parent node and the heights of the sibling nodes is equal to or less than the parent node. For the horizontal slices, the sum of the heights of the sibling nodes is equal to or less than the parent node and the widths of the sibling nodes are each equal to or less than the parent node. From this, the posynomial expressions for each of the cell sizes can be written.
As mentioned earlier, the constraints represented by equations (1) and (2) above are posynomial constraints in the cell sizes in variables χi, yi. For each of the cells, posynomial expressions are used to represent the cell size in terms of the circuit element variables. For instance, in the case of a transistor, the width and length of the transistor.
Consider a MOS transistor M. A first approximation for the width and heights of the MOS is given by:

χnmos(M)=mXL, ymos(M)=myW,

which are monomial expressions in the circuit variables L, W, mx, and my. Here L and W typically are the critical dimension in a fabrication process and m the number of counts for this dimension. These expressions only consider the active part of the MOS, and, for example, neglect the area of the contacts.

A better expression for the width and heights of M (NMOS in this case) is given by the posynomial equations: 


  
    
      
         
        mos
        x
      
      ⁢
      
        (
        M
        )
      
    
    =
    
      
        
          (
          
            
              drainW
              2
            
            +
            
              sourceW
              2
            
            +
            L
          
          )
        
        ⁢
        
          m
          x
        
      
      +
      
        2
        ⁢
        subSp
        ⁢
        
           
        
        ⁢
        χ
      
      +
      
        2
        ⁢
        subW
      
      +
      metalW
    
  




  
    
      
         
        mos
        y
      
      ⁢
      
        (
        M
        )
      
    
    =
    
      
        
          m
          x
        
        ⁢
        W
      
      +
      
        
          
            m
            y
          
          2
        
        ⁢
        
          displ
          1
        
      
      +
      
        
          
            
              m
              y
            
            -
            1
          
          2
        
        ⁢
        
          displ
          2
        
      
      +
      
        2
        ⁢
        subSpY
      
      +
      
        2
        ⁢
        subW
      
    
  



where

    
    
        drain W is the width of the drain
        source W is the width of the source
        metalW is the width of the metal lines around the transistor
        subW is the width of the substrate contacts
        subSpX is the horizontal distance form the transistor to the substrate contacts
        subSpY is the vertical distance from the transistor to the substrate contacts
        displ1 is the distance from a line of fingers to the next, when a source connection is in between
        displ2 is the distance from a line of fingers to the next, when no source connection is in between
    
    


For other circuit elements such as differential pairs and current mirrors the equation are similar except that mx is multiplied by 2.
For example, the expression for a spiral inductor is described in “Optimization of Inductor Circuits Via Geometric Programming” Design Automation Conference, 1999 proceedings, 36, pps. 994-998 by M. Del Mar Hershenson, et al.
Thus, a method has been described for determining the boundaries in the floorplan of a circuit while simultaneously determining other design parameters using geometric programming.

## Claims

1. In a method for designing a circuit where design parameters for performance specifications are represented by posynomial expressions with constraints and solved with geometric programming, an improvement for simultaneously determining the boundaries for circuit elements in the floorplan of the circuit comprising:
representing the boundaries for circuit elements in the floorplan of the circuit as posynomial expressions with constraints on circuit size; 
simultaneously solving the posynomial expressions for the design parameters and solving the posynomial expressions for the floorplan boundaries on a computer using geometric programming; and 
outputting the results of the solving in a format that allows the results to be used to layout the circuit.

2. The method defined by claim 1 wherein the representation of the floorplan of the circuit includes the slicing of the circuit along the boundaries of the circuit elements.

3. The method defined by claim 1 including using layout constraints for the floorplan.

4. The method defined by claim 3 wherein one of said layout constraints is a limitation on the circuit area.

5. The method defined by claim 4 wherein another of said layout constraints is a limitation on the aspect ratio of the circuit layout.

6. In a method for designing an analog integrated circuit having active circuit elements where design parameters for performance specifications are represented by posynomial expressions with constraints and then solved with geometric programming, an improvement for simultaneously determining the boundaries for the active circuit elements in a floorplan for the integrated circuit, comprising:
representing the floorplan as posynomial constraints of vertical and horizontal dimensions for regions where the active circuit elements are placed; 
simultaneously solving the posynomial expressions for the design parameters and the posynomial constraints for the vertical and horizontal dimensions; and 
outputting the results of the solving in a format usable to layout the integrated circuit.

7. The method defined by claim 6 wherein the integrated circuit is sliced vertically and horizontally along the boundaries of the circuit elements.

8. The method defined by claim 7 wherein for a vertical slice, the resulting first sibling nodes are represented by a sum of horizontal dimensions of the first sibling nodes being equal to or less than a first parent node and which dimensions of the first sibling nodes each being equal to or less then a vertical dimension of the first parent node.

9. The method defined by claim 8 wherein for each horizontal slice, the resulting second sibling nodes are represented by the sum of the vertical dimensions of the second sibling nodes being equal to or less than a second parent node, and the horizontal dimensions of second sibling nodes each being equal to or less than a vertical height of the second parent node.

10. The method defined by claim 9 wherein the circuit elements include MOS transistors where the vertical dimension and horizontal dimension of each of the MOS transistors is represented by a posynomial expression.

11. The method defined by claim 10 wherein the posynomial expression for the vertical and horizontal dimensions of the MOS transistors include process dependant parameters.

12. The method defined by claim defined by claim 11 wherein the design of the analog circuit presupposes that the active circuit elements are operating in their saturation regions.

13. A machine readable medium having stored thereon instructions which when executed by a processor cause the processor to perform in a method for designing a circuit where design parameters for performance specifications are represented by posynomial expressions with constraints and solved with geometric programming and for simultaneously determining the boundaries for circuit elements in the floorplan of the circuit, the method, comprising:
simultaneously solving the posynomial expressions for the design parameters of the circuit and solving posynomial expressions for the floorplan boundaries of the circuit elements using geometric programming, the posynomial expressions for the floorplan boundaries represented as constraints on circuit size; and 
outputting the results of the solving in a format that allows the results to be used to layout the circuit.

14. The machine readable medium defined by claim 13 wherein the representation of the floorplan of the circuit includes the slicing of the circuit along the boundaries of the circuit elements.

15. The machine readable medium defined by claim 13 including using layout constraints for the floorplan.

16. The machine readable medium defined by claim 15 wherein one of said layout constraints is a limitation on the circuit area.

17. The machine readable medium defined by claim 16 wherein another of said layout constraints is a limitation on the aspect ratio of the circuit layout.

18. A machine readable medium having stored thereon instructions which when executed by a processor cause the processor to perform a method for designing an analog integrated circuit having active circuit elements where design parameters for performance specifications are represented by posynomial expressions with constraints and then solved with geometric programming, and for simultaneously determining the boundaries for the active circuit elements in a floorplan for the integrated circuit, the method comprising:
representing the floorplan as posynomial constraints of vertical and horizontal dimensions for regions where the active circuit elements are placed; 
simultaneously solving the posynomial expressions for the design parameters and the posynomial constraints for the vertical and horizontal dimensions; and, 
outputting the results of the solving in a format usable to layout the integrated circuit.

19. The machine readable medium defined by claim 18 wherein the integrated circuit is sliced vertically and horizontally along the boundaries of the circuit elements.

20. The machine readable medium defined by claim 19 wherein for a vertical slice, the resulting first sibling nodes are represented by a sum of horizontal dimensions of the first sibling nodes being equal to or less than a first parent node and which dimensions of the first sibling nodes each being equal to or less than a vertical dimension of the first parent node.

21. The machine readable medium defined by claim 20 wherein for each horizontal slice, the resulting second sibling nodes are represented by the sum of the vertical dimensions of the second sibling nodes being equal to or less than a second parent node, and the horizontal dimensions of second sibling nodes each being equal to or less than a vertical height of the second parent node.

22. The machine readable medium defined by claim 18 wherein the circuit elements include MOS transistors where the vertical dimension and horizontal dimension of each of the MOS transistors is represented by a posynomial expression.

23. The machine readable medium defined by claim 22 wherein the posynomial expression for the vertical and horizontal dimensions of the MOS transistors include process dependant parameters.

24. The machine readable medium defined by claim 23 wherein the design of the analog circuit presupposes that the active circuit elements are operating in their saturation regions.