← Back to Patent Explorer
US6668365B2 Expired / Lapsed US ⏱️ 0.0 years remaining

Quadratic programming method for eliminating cell overlap and routing congestion in an IC layout

Assignee: Cadence Design Systems Inc
•
Filing: 2002-08-20
•
Granted: 2003-12-23
•
Expires: 2022-08-20
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract To help eliminate overlapping cell placements or to reduce routing congestion in an IC layout wherein cells are integer multiples of a standard size cell unit, the layout is organized into an array of rectangular blocks, each having capacity to accommodate several cell units. A separate equation is established for each block relating a sum of a set of flow variables to an “overflow factor”. Each flow variable of the equation for each block corresponds to a separate one of that block's neighboring blocks and represents an estimated number of cell units that must be moved to or received from the corresponding neighboring block to eliminate overlapping cell placements or routing congestion within the block. The overflow factor for each block represents an estimated total number of cell units the block must pass into its neighboring blocks or an estimated maximum number of cell units it may receive from its neighboring blocks in order to eliminate cell overlap or routing congestion in all blocks. A solution to the set of equations is then selected to obtain values of flow variables which, when subsequently used to guide cell relocation, substantially reduces likelihood of cell overlap or routing congestion while substantially minimizing disturbance to the layout.

Inventors

  • 👤 Ywh-Pyng Harn

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 12:13
CPC Classifications
G; G06; G06F; G06F30/00; G06F30/30; G06F30/39; G06F30/392

Claims Analysis

Total Claims: 40
Claim 1
Independent Claim 244 words
A method for modifying an integrated circuit (IC) layout for an IC design describing the IC as being formed by cells interconnected by nets, wherein each cell is an integer number of cell units in area, and wherein the layout specifies a position for each cell within a semiconductor substrate upon which the IC is to be formed, the method comprising the steps of: a. organizing the layout into an array rows and columns of blocks, such that each block B i,j residing at the intersection of an ith column and the jth row has at least one neighboring block, wherein each block B i,j is sufficiently large in area to hold a plurality of cells; b. computing a separate overflow factor F i,j corresponding to each block B i,j ; c. establishing a plurality of equations, wherein each block B i,j corresponds to a separate one of the equations, wherein the equation corresponding to each block B i,j relates a plurality of flow variables to the overflow factor F i,j corresponding to that block B i,j , wherein each flow variable of the equation corresponding to each block B i,j corresponds to a separate one of that block's neighboring blocks and represents a direction and number of cell units that are to flow between the block and the corresponding neighboring block as layout is altered; and d. selecting a simultaneous solution to the plurality of equations that establishes values of their flow variables.
Claim 2
Independent Claim 244 words
A method for modifying an integrated circuit (IC) layout for an IC design describing the IC as being formed by cells interconnected by nets, wherein each cell is an integer number of cell units in area, and wherein the layout specifies a position for each cell within a semiconductor substrate upon which the IC is to be formed, the method comprising the steps of: a. organizing the layout into an array rows and columns of blocks, such that each block B i,j residing at the intersection of an ith column and the jth row has at least one neighboring block, wherein each block B i,j is sufficiently large in area to hold a plurality of cells; b. computing a separate overflow factor F i,j corresponding to each block B i,j ; c. establishing a plurality of equations, wherein each block B i,j corresponds to a separate one of the equations, wherein the equation corresponding to each block B i,j relates a plurality of flow variables to the overflow factor F i,j corresponding to that block B i,j , wherein each flow variable of the equation corresponding to each block B i,j corresponds to a separate one of that block's neighboring blocks and represents a direction and number of cell units that are to flow between the block and the corresponding neighboring block as layout is altered; and d. selecting a simultaneous solution to the plurality of equations that establishes values of their flow variables.
Claim 3
Dependent Claim 41 words
The method in accordance with claim 1 further comprising the step of: e. modifying the layout to move a number of cell units between neighboring blocks as indicated by the flow variable values established by the solution selected at step d.
Claim 4
Dependent Claim 202 words
The method in accordance with claim 1 wherein for each block B i,j having four neighboring blocks and for which overflow factor F i,j >=0, the equation established at step c is consistent with the relationship X i,j −X i−1,j +Y i,j −Y i,j−1 =F i,j and wherein for each block B i,j having four neighboring blocks for which overflow factor F i,j <0, the equation established at step c is consistent with the relationship X i 1,j −X i,j +Y i,j 1 −Y i,j 21 =−F i,j wherein X i−1,j , is a flow variable representing a number of cell units that are to flow between blocks B 1,j and B i−1,j , wherein X i,j , is a flow variable representing a number of cell units that are to flow between block B i,j and its neighboring block B i−1,j , wherein Y i,j−1 , is a flow variable representing a number of cell units that are to flow between block B i,j and its neighboring black B i,j+1 , and wherein Y i,j , is a flow variable representing a number of cell units that are to flow between block B i,j and its neighboring block B i,j+1 .
Claim 5
Dependent Claim 36 words
The method in accordance with claim 3 further comprising the step of: c. modifying the layout to move a number of cell units between neighboring blocks indicated by each flow variable value established at step d.
Claim 6
Dependent Claim 90 words
The method in accordance with claim 1 wherein overflow factors F i,j computed at step b for some of blocks B i,j represent an estimated number of cell units that must flow out of their corresponding blocks B i,j to eliminate cell overlap in the corresponding blocks, and wherein overflow factors F i,j computed at step b for others of block B i,j represent an estimated number of cell units that may flow into their corresponding blocks B i,j without causing cell overlap in their corresponding blocks B i,j .
Claim 7
Dependent Claim 77 words
The method in accordance with claim 1 wherein the overflow factor F i,j corresponding to each block B i,j is computed at step c in accordance with the relation: F i,j =N i,j −W i,j *A i,j wherein N i,j is a number of cell units included in cells residing in block B i,j , wherein A i,j represents a cell unit capacity of block B i,j and wherein W i,j has any value 1>=W i,j >0.
Claim 8
Dependent Claim 99 words
The method in accordance with claim 1 wherein overflow factors F i,j computed at step b for some of blocks B i,j indicate an estimated number of cell units that must flow out of their corresponding blocks B i,j to eliminate routing congestion of nets within the corresponding blocks B i,j , and wherein the overflow factors F i,j computed at step b for others of blocks B i,j indicate an estimated number of cell units that may flow into their corresponding blocks B i,j without causing routing congestion of nets within in their corresponding blocks B i,j .
Claim 9
Dependent Claim 104 words
The method in accordance with claim 7 wherein the overflow factor F i,j corresponding to each block B i,j is computed at step c in accordance with the relation: F i,j =( D i,j −W i,j *S i,j )( N i,j /D i,j ) wherein D i,j represents an estimated demand for area within block B i,j for routing nets, wherein S i,j represents an available area within block B i,j for routing nets, wherein N i,j represents a total number of cell units of cells residing within the corresponding block, and wherein W i,j is a constant having any value 1>=W i,j >0.
Claim 10
Dependent Claim 34 words
The method in accordance with claim 8 further comprising the step of: e. modifying the layout to move cell units between neighboring blocks as indicated by the flow variable values established at step d.
Claim 11
Dependent Claim 41 words
The method in accordance with claim 1 wherein the solution selected at step d is selected from among a plurality of solutions because it optimizes a function of values of the flow variables included in the equations corresponding to the blocks.
Claim 12
Dependent Claim 43 words
The method in accordance with claim 1 wherein the solution selected at step d is selected from among a plurality of solutions because it minimizes a sum of squares of values of the flow variables included in the equations corresponding to the blocks.
Claim 13
Dependent Claim 44 words
The method in accordance with claim 1 wherein the solution selected at step d is selected from among a plurality of solutions because it minimizes a weighted sum of squares of values of the flow variables included in the equations corresponding to the blocks.
Claim 14
Independent Claim 323 words
A method for generating an integrated circuit (IC) layout for an IC design describing the IC as being formed by cells interconnected by nets, wherein each cell is an integer number of cell units in size, wherein a cell unit is a unit of area, wherein the IC layout specifies a position for each cell within a semiconductor substrate upon which the IC is to be formed, the method comprising the steps of: a. generating a layout specifying a position of each cell described by the IC design; b. dividing the layout into a plurality of partitions; c. relocating cells between the partitions to reduce a number of nets that must pass between the partitions; d. computing a plurality of overflow factors, each corresponding to a separate one of the partitions, wherein some of the overflow factors indicate an estimated number of cell units that must be removed from their corresponding partitions to eliminate routing congestion of nets within the corresponding blocks, and wherein others of the overflow factors indicate an estimated additional number of cell units that may be placed in their corresponding partitions without causing routing congestion of nets within in their corresponding partitions; e. establishing a plurality of equations, wherein each partition corresponds to a separate one of the equations, wherein the equation corresponding to each partition relates a plurality of flow variables to the overflow factor corresponding to that partition, wherein each flow variable of the equation corresponding to each partition corresponds to a separate one of that partition's neighboring partitions and represents a direction and number of cell units that are to be moved between the partition and the corresponding neighboring partition; f. selecting a simultaneous solution to the plurality of equations establishing values of their flow variables; and g. modifying the layout to move a number of cell units between neighboring partitions as indicated by the flow variable values established by the solution selected at step f.
Claim 15
Independent Claim 323 words
A method for generating an integrated circuit (IC) layout for an IC design describing the IC as being formed by cells interconnected by nets, wherein each cell is an integer number of cell units in size, wherein a cell unit is a unit of area, wherein the IC layout specifies a position for each cell within a semiconductor substrate upon which the IC is to be formed, the method comprising the steps of: a. generating a layout specifying a position of each cell described by the IC design; b. dividing the layout into a plurality of partitions; c. relocating cells between the partitions to reduce a number of nets that must pass between the partitions; d. computing a plurality of overflow factors, each corresponding to a separate one of the partitions, wherein some of the overflow factors indicate an estimated number of cell units that must be removed from their corresponding partitions to eliminate routing congestion of nets within the corresponding blocks, and wherein others of the overflow factors indicate an estimated additional number of cell units that may be placed in their corresponding partitions without causing routing congestion of nets within in their corresponding partitions; e. establishing a plurality of equations, wherein each partition corresponds to a separate one of the equations, wherein the equation corresponding to each partition relates a plurality of flow variables to the overflow factor corresponding to that partition, wherein each flow variable of the equation corresponding to each partition corresponds to a separate one of that partition's neighboring partitions and represents a direction and number of cell units that are to be moved between the partition and the corresponding neighboring partition; f. selecting a simultaneous solution to the plurality of equations establishing values of their flow variables; and g. modifying the layout to move a number of cell units between neighboring partitions as indicated by the flow variable values established by the solution selected at step f.
Claim 16
Dependent Claim 29 words
The method in accordance with claim 13 further comprising the step of subdividing the partitions into smaller partitions and then repeating steps c-e with respect to the smaller partitions.
Claim 17
Dependent Claim 82 words
The method in accordance with claim 13 wherein the overflow factor F corresponding to each partition is computed at step d in accordance with the relation: F =( D−W*S )( N/D ) wherein D represents an estimated demand for area within the corresponding partition for routing nets, wherein S represents an available area within the corresponding partition for routing nets, wherein N represents a total number of cell units of cells residing within the partition, and wherein W has any value 1>=W>0.
Claim 18
Dependent Claim 41 words
The method in accordance with claim 13 wherein the solution selected at step f is selected from among a plurality of solutions because it optimizes a function of values of the flow variables included in the equations corresponding to the partitions.
Claim 19
Dependent Claim 43 words
The method in accordance with claim 13 wherein the solution selected at step f is selected from among a plurality of solutions because it minimizes a sum of squares of values of the flow variables included in the equations corresponding to the partitions.
Claim 20
Dependent Claim 44 words
The method in accordance with claim 13 wherein the solution selected at step f is selected from among a plurality of solutions because it minimizes a weighted sum of squares of values of the flow variables included in the equations corresponding to the blocks.
Claim 21
Dependent Claim 256 words
Computer readable media storing software which when executed by a computer causes the computer to carry out a method for modifying an integrated circuit (IC) layout for an IC design describing the IC as being formed by cells interconnected by nets, wherein each cell is an integer number of cell units in size, wherein the IC layout specifies a position for each cell within a semiconductor substrate upon which the IC is to be formed, wherein the method comprises the steps of: a. organizing the layout into an array rows and columns of blocks, such that each block B i,j residing at the intersection of an ith column and the jth row has at least one neighboring block, and wherein each block B i,j has capacity to hold a plurality of cells; b. computing a separate overflow factor F i,j corresponding to each block B i,j ; c. establishing a plurality of equations, wherein each block B i,j corresponds to a separate one of the equations, wherein the equation corresponding to each block relates a plurality of flow variables to the overflow factor F i,j corresponding to that block B i,j , wherein each flow variable of the equation corresponding to each block B i,j corresponds to a separate one of that block's neighboring blocks and represents a direction and number of cell units that are to flow between the block B i,j and the corresponding neighboring block; and d. selecting a simultaneous solution to the plurality of equations that establishes values of their flow variables.
Claim 22
Dependent Claim 256 words
Computer readable media storing software which when executed by a computer causes the computer to carry out a method for modifying an integrated circuit (IC) layout for an IC design describing the IC as being formed by cells interconnected by nets, wherein each cell is an integer number of cell units in size, wherein the IC layout specifies a position for each cell within a semiconductor substrate upon which the IC is to be formed, wherein the method comprises the steps of: a. organizing the layout into an array rows and columns of blocks, such that each block B i,j residing at the intersection of an ith column and the jth row has at least one neighboring block, and wherein each block B i,j has capacity to hold a plurality of cells; b. computing a separate overflow factor F i,j corresponding to each block B i,j ; c. establishing a plurality of equations, wherein each block B i,j corresponds to a separate one of the equations, wherein the equation corresponding to each block relates a plurality of flow variables to the overflow factor F i,j corresponding to that block B i,j , wherein each flow variable of the equation corresponding to each block B i,j corresponds to a separate one of that block's neighboring blocks and represents a direction and number of cell units that are to flow between the block B i,j and the corresponding neighboring block; and d. selecting a simultaneous solution to the plurality of equations that establishes values of their flow variables.
Claim 23
Dependent Claim 48 words
The computer readable media in accordance with claim 19 wherein the method further comprises the step of: e. modifying the layout to move a number of cell units between neighboring pairs of blocks as indicated by the flow variable values established by the solution selected at step d.
Claim 24
Dependent Claim 203 words
The computer readable media in accordance with claim 19 wherein for each block B i,j having four neighboring blocks and for which overflow factor F i,j >=0, the equation established at step c is consistent with the relationship X i,j −X i−1,j +Y i,j −Y i,j−1 =F i,j and wherein for each block B i,j having four neighboring blocks for which overflow factor F i,j <0, the equation established at step c is consistent with the relationship X i−1,j −X i,j +Y i,j 1 −Y i,j <=−F i,j wherein X i−1,j , is a flow variable representing a number of cell units that are to flow between blocks B i,j and B i 1,j , wherein X i,j , is a flow variable representing a number of cell units that are to flow between block B i,j and its neighboring block B i+1,j , wherein Y i,j−1 , is a flow variable representing a number of cell units that are to flow between block B i,j and its neighboring block B i,j−1 , and wherein Y i,j , is a flow variable representing a number of cell units that are to flow between block B i,j and its neighboring block B i,j+1 .
Claim 25
Dependent Claim 39 words
The computer readable media in accordance with claim 21 wherein the method further comprises the step of: e. modifying the layout to move cell units between neighboring blocks as indicated by the flow variable values established at step d.
Claim 26
Dependent Claim 94 words
The computer readable media in accordance with claim 19 wherein overflow factors F i,j computed at step b corresponding to some of blocks B i,j represent an estimated number of cell units that must flow out of their corresponding blocks B i,j to eliminate cell overlap in the corresponding blocks, and wherein overflow factors F i,j computed at step b corresponding to others of blocks B i,j represent an estimated number of cell units that may flow into their corresponding blocks B i,j without causing cell overlap in their corresponding blocks B i,j .
Claim 27
Dependent Claim 83 words
The computer readable media in accordance with claim 19 wherein the overflow factor F i,j corresponding to each block B i,j is computed at step c consistent with the relation: F i,j =N i,j −W i,j *A i,j , wherein N i,j is a number of cell units included in cells residing in block B i,j , wherein A i,j represents a cell unit capacity of block B i,j , and wherein W i,j is a constant having any value 1>=W i,j >0.
Claim 28
Dependent Claim 99 words
The computer readable media in accordance with claim 19 wherein overflow factors F i,j computed at step b corresponding to some of blocks B i,j indicate an estimated number of cell units that must flow out of their corresponding blocks B i,j to eliminate routing congestion of nets within the corresponding blocks, and wherein overflow factors F i,j computed as step b corresponding to others of blocks B i,j indicate an estimated number of cell units that may flow into their corresponding blocks B i,j without causing routing congestion of nets within in their corresponding blocks B i,j .
Claim 29
Dependent Claim 104 words
computer readable media in accordance with claim 25 wherein the overflow factor F i,j corresponding to each block B i,j is computed at step c consistent with the relation: F i,j =( D i,j =W i,j *S i,j )( N i,j /D i,j ) wherein D i,j represents an estimated demand for area within block B i,j for routing nets, wherein S i,j represents an available area within block B i,j for routing nets, wherein N i,j represents a total number of cell units of cells residing within the corresponding block, and wherein W i,j is a constant having any value 1>=W i,j >0.
Claim 30
Dependent Claim 41 words
The computer readable media in accordance with claim 26 wherein the method further comprises the step of: e. modifying the layout to move cell units between neighboring pairs of blocks as indicated by the flow variable values established at step d.
Claim 31
Dependent Claim 43 words
The computer readable media in accordance with claim 19 wherein the solution selected at step d is selected from among a plurality of solutions because it optimizes a function of values of the flow variables included in the equations corresponding to the blocks.
Claim 32
Dependent Claim 45 words
The computer readable media in accordance with claim 19 wherein the solution selected at step d is selected from among a plurality of solutions because it minimizes a sum of squares of values of the flow variables included in the equations corresponding to the blocks.
Claim 33
Dependent Claim 46 words
The computer readable media in accordance with claim 19 wherein the solution selected at step d is selected from among a plurality of solutions because it minimizes a weighted sum of squares of values of the flow variables included in the equations corresponding to the blocks.
Claim 34
Dependent Claim 341 words
Computer readable media storing software which when executed by a computer causes the computer to carry out a method for generating an integrated circuit (IC) layout for an IC design describing the IC as being formed by cells interconnected by nets, wherein each cell is an integer number of cell units in size, wherein a cell unit is a unit of area, wherein the IC layout specifies a position for each cell within a semiconductor substrate upon which the IC is to be formed, wherein the method comprises the steps of: a. generating a layout specifying a position of each cell described by the IC design; b. dividing the layout into a plurality of partitions; c. relocating cells between the partitions to reduce a number of nets that must pass between the partitions; d. computing a plurality of overflow factors, each corresponding to a separate one of the partitions, wherein some of the overflow factors indicate an estimated number of cell units that must be removed from their corresponding partitions to eliminate routing congestion of nets within the corresponding blocks, and wherein others of the overflow factors indicate an estimated additional number of cell units that may be placed in their corresponding partitions without causing routing congestion of nets within in their corresponding partitions, e. establishing a plurality of equations, wherein each partition corresponds to a separate one of the equations, wherein the equation corresponding to each partition relates a plurality of flow variables to the overflow factor corresponding to that partition, wherein each flow variable of the equation corresponding to each partition corresponds to a separate one of that partition's neighboring partitions and represents a direction and number of cell units that are to be moved between the partition and the corresponding neighboring partition; f. selecting a simultaneous solution to the plurality of equations establishing values of their flow variables; and g. modifying the layout to move a number of cell units between neighboring partitions as indicated by the flow variable values established by the solution selected at step f.
Claim 35
Dependent Claim 341 words
Computer readable media storing software which when executed by a computer causes the computer to carry out a method for generating an integrated circuit (IC) layout for an IC design describing the IC as being formed by cells interconnected by nets, wherein each cell is an integer number of cell units in size, wherein a cell unit is a unit of area, wherein the IC layout specifies a position for each cell within a semiconductor substrate upon which the IC is to be formed, wherein the method comprises the steps of: a. generating a layout specifying a position of each cell described by the IC design; b. dividing the layout into a plurality of partitions; c. relocating cells between the partitions to reduce a number of nets that must pass between the partitions; d. computing a plurality of overflow factors, each corresponding to a separate one of the partitions, wherein some of the overflow factors indicate an estimated number of cell units that must be removed from their corresponding partitions to eliminate routing congestion of nets within the corresponding blocks, and wherein others of the overflow factors indicate an estimated additional number of cell units that may be placed in their corresponding partitions without causing routing congestion of nets within in their corresponding partitions, e. establishing a plurality of equations, wherein each partition corresponds to a separate one of the equations, wherein the equation corresponding to each partition relates a plurality of flow variables to the overflow factor corresponding to that partition, wherein each flow variable of the equation corresponding to each partition corresponds to a separate one of that partition's neighboring partitions and represents a direction and number of cell units that are to be moved between the partition and the corresponding neighboring partition; f. selecting a simultaneous solution to the plurality of equations establishing values of their flow variables; and g. modifying the layout to move a number of cell units between neighboring partitions as indicated by the flow variable values established by the solution selected at step f.
Claim 36
Dependent Claim 33 words
The computer-readable media in accordance with claim 31 wherein the method further comprises the step of subdividing the partitions into smaller partitions and then repeating steps c-e with respect to the smaller partitions.
Claim 37
Dependent Claim 83 words
The computer-readable media in accordance with claim 31 wherein the overflow factor F corresponding to each partition is computed at step d in accordance with the relation: F =( D−W*S )( N/D ) wherein D represents an estimated demand for area within the corresponding partition for routing nets, wherein S represents an available area within the corresponding partition for routing nets, wherein N represents a total number of cell units of cells residing within the partition, and wherein W has any value 1>=W>0.
Claim 38
Dependent Claim 42 words
The computer-readable media in accordance with claim 31 wherein the solution selected at step f is selected from among a plurality of solutions because it optimizes a function of values of the flow variables included in the equations corresponding to the partitions.
Claim 39
Dependent Claim 44 words
The computer-readable media in accordance with claim 31 wherein the solution selected at step f is selected from among a plurality of solutions because it minimizes a sum of squares of values of the flow variables included in the equations corresponding to the partitions.
Claim 40
Dependent Claim 45 words
The computer-readable media in accordance with claim 31 wherein the solution selected at step f is selected from among a plurality of solutions because it minimizes a weighted sum of squares of values of the flow variables included in the equations corresponding to the blocks.

References Cited (Backward Citations)

US6155725A Cited
US6223332B1 Cited
US6249902B1 Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2006-12-22 2007-06-23 2007-12-23 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2010-12-22 2011-06-23 2011-12-23 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2014-12-22 2015-06-23 2015-12-23 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag