Patent US5619418A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5619418A Expired / Lapsed US ⏱️ 0.0 years remaining

Logic gate size optimization process for an integrated circuit whereby circuit speed is improved while circuit area is optimized

Assignee: Apple Inc
•
Filing: 1995-02-16
•
Granted: 1997-04-08
•
Expires: 2015-02-16
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An integrated circuit, when designed, must adhere to timing constraints while attempting to minimize circuit area. In order to adhere to timing specifications while arriving at a near-optimal circuit surface area, an iterative process is used which selectively increases logic gates sizes by accessing logic gates from a memory stored logic gate library. A circuit representation is read along with timing constraints for circuit paths. Each circuit path in the circuit is processed to find it's actual circuit path delay. A most out-of-specification circuit path (in terms of speed) is chosen in the circuit and a sensitivity calculation is performed for each logic gate in the most out-of-specification circuit path. The logic gate in the circuit path with the maximized sensitivity (sensitivity= DELTA speed/ DELTA area) is increased in size by accessing a larger gate in the library in order to improve speed at the expense of area. The above process continues iteratively until no out-of-specification circuit paths are found.

Inventors

  • 👤 David T. Blaauw
  • 👤 Joseph W. Norton
  • 👤 Larry G. Jones
  • 👤 Susanta Misra
  • 👤 R. Iris Bahar

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 00:22
CPC Classifications
G; G06; G06F; G06F30/00; G06F30/30; G06F30/32; G06F30/327

Claims Analysis

Total Claims: 37
Claim 1
Independent Claim 231 words
A method for setting gate strengths within a circuit, the method comprising the steps of: receiving a circuit description file describing the circuit in terms of at least one input, at least one output, and at least one circuit path between the at least one input and the at least one output, the at least one circuit path comprising a plurality of gates, the strength of each gate in the plurality of gates being set to an initial strength; receiving predetermined timing data which indicates required circuit speeds of the at least one circuit path; determining the circuit speed of one path within the at least one circuit path and performing step (*) when the circuit speed of the one path is not in accordance with the required circuit speeds of the at least one circuit path; (*) determining for every gate affecting the one path, when the circuit speed of the one path is not in accordance with the required circuit speeds of the at least one circuit path, an amount of reduction in circuit path delay (ΔS) in response to an amount of increase in gate area (ΔA) via ΔS/ΔA and increasing the size of one gate which has a largest ΔS/ΔA ratio and affects the one path; and repeating the steps of determining until the at least one circuit path is in accordance with the predetermined timing data.
Claim 2
Independent Claim 231 words
A method for setting gate strengths within a circuit, the method comprising the steps of: receiving a circuit description file describing the circuit in terms of at least one input, at least one output, and at least one circuit path between the at least one input and the at least one output, the at least one circuit path comprising a plurality of gates, the strength of each gate in the plurality of gates being set to an initial strength; receiving predetermined timing data which indicates required circuit speeds of the at least one circuit path; determining the circuit speed of one path within the at least one circuit path and performing step (*) when the circuit speed of the one path is not in accordance with the required circuit speeds of the at least one circuit path; (*) determining for every gate affecting the one path, when the circuit speed of the one path is not in accordance with the required circuit speeds of the at least one circuit path, an amount of reduction in circuit path delay (ΔS) in response to an amount of increase in gate area (ΔA) via ΔS/ΔA and increasing the size of one gate which has a largest ΔS/ΔA ratio and affects the one path; and repeating the steps of determining until the at least one circuit path is in accordance with the predetermined timing data.
Claim 3
Dependent Claim 79 words
The method of claim 1 wherein the increasing of the size of the one gate which has the largest ΔS/ΔA ratio and affects the one path comprises: storing a plurality of gates in memory wherein each gate in the plurality of gates stored in memory has a different physical size; and increasing the size of the one gate by selecting a gate from memory which has the same logic function as the one gate but has a larger size.
Claim 4
Dependent Claim 65 words
The method of claim 2 wherein the step of increasing the size of the one gate comprises: selecting a gate from memory which has a same logic function as the one gate but has larger transistor widths so that a drive strength of the gate from memory is greater than a drive strength of the one gate where a greater drive strength improves circuit speed.
Claim 5
Dependent Claim 29 words
The method of claim 1 wherein the step of determining for every gate comprises: calculating ΔA by choosing a gate from memory which has a larger transistor gate width.
Claim 6
Dependent Claim 54 words
The method of claim 1 wherein the step of receiving a circuit description file comprises: receiving a plurality of circuit paths and selectively optimizing each of the circuit paths in the plurality of circuit paths until all circuit paths in the plurality of circuit paths are in accordance with their respective predetermined timing data.
Claim 7
Dependent Claim 41 words
The method of claim 1 wherein the step of determining the circuit speed of one path comprises: choosing the one path by determining which path in the at least one circuit path has a largest deviation from the predetermined timing data.
Claim 8
Dependent Claim 45 words
The method of claim 1 further comprising the step of: creating an output file after the at least one circuit path is in accordance with the predetermined timing data, the output file describing the circuit which is now in accordance with the predetermined timing data.
Claim 9
Dependent Claim 35 words
The method of claim 7 further comprising the step of: creating integrated circuit masks from the output file wherein the integrated circuit masks are used to form a plurality of integrated circuits via lithographic techniques.
Claim 10
Dependent Claim 29 words
The method of claim 7 further comprising the step of: using the output file to form a plurality of integrated circuits which are in accordance with predetermined timing data.
Claim 11
Independent Claim 187 words
A method for increasing a circuit speed of a circuit path while minimizing circuit area increase along the circuit path, the circuit path being an interconnection of logic gates through a circuit, the method comprising the steps of: (a) receiving a timing constraint value for the circuit path; (b) initially setting all sizes of the logic gates in the circuit path to a minimal size; (c) selecting the circuit path out of a plurality of circuit paths; (d) determining a speed of the circuit path; (e) determining, when the speed of the circuit path is not within the timing constraint value, which logic gate in the circuit path is to be replaced by a stronger logic gate from memory where this the logic gate to be replaced is determined by finding the logic gate that maximizes S/A for the circuit path where S is a change in the speed of the circuit path and A is a change in a logic gate area of the logic gate; and (f) repeating steps (c) through (e) until the speed of the circuit path is within the timing constraint value.
Claim 12
Independent Claim 187 words
A method for increasing a circuit speed of a circuit path while minimizing circuit area increase along the circuit path, the circuit path being an interconnection of logic gates through a circuit, the method comprising the steps of: (a) receiving a timing constraint value for the circuit path; (b) initially setting all sizes of the logic gates in the circuit path to a minimal size; (c) selecting the circuit path out of a plurality of circuit paths; (d) determining a speed of the circuit path; (e) determining, when the speed of the circuit path is not within the timing constraint value, which logic gate in the circuit path is to be replaced by a stronger logic gate from memory where this the logic gate to be replaced is determined by finding the logic gate that maximizes S/A for the circuit path where S is a change in the speed of the circuit path and A is a change in a logic gate area of the logic gate; and (f) repeating steps (c) through (e) until the speed of the circuit path is within the timing constraint value.
Claim 13
Dependent Claim 38 words
The method of claim 10 wherein the step (c) comprises: selecting the circuit path out of the plurality of circuit paths that has a worst-case difference between actual speed and the timing constraint value for the circuit path.
Claim 14
Dependent Claim 43 words
The method of claim 10 further comprising the step of: making integrated circuit masks in accordance with the circuit so that integrated circuits, that operate in a manner substantially similar to the circuit, can be formed on at least one integrated circuit substrate.
Claim 15
Dependent Claim 25 words
The method of claim 10 further comprising the step of: making a plurality of integrated circuits in accordance with the circuit optimized via steps (a)-(f).
Claim 16
Dependent Claim 32 words
The method of claim 10 further comprising the step of: writing an output file containing the circuit wherein the circuit now conforms to the timing constraint value due to the steps (a)-(f).
Claim 17
Dependent Claim 47 words
The method of claim 10 wherein the step (e) comprises: determining which logic gate in the circuit path can be increased in size by summing a plurality of sensitivity values calculated for multiple transistors where the multiple transistors comprise at least a portion of the logic gate.
Claim 18
Independent Claim 157 words
A method for designing a circuit, the method comprising the steps of: providing a circuit description wherein the circuit described by the circuit description has a plurality of inputs, a plurality of outputs, and a plurality of circuit paths coupling the plurality of inputs to the plurality of outputs through a plurality of logic gates; setting every logic gate in the circuit to a minimal area; receiving predetermined timing requirements for the circuit paths; determining, for each circuit path, a speed of the circuit path; selecting one circuit path within the plurality of circuit paths which has a worst speed; increasing a drive strength of one logic gate in the one circuit path to improve the speed of the one circuit path at an expense of circuit area along the one circuit path; and performing the steps of determining through increasing until all circuit paths in the plurality of circuit paths are within the predetermined timing requirements.
Claim 19
Independent Claim 157 words
A method for designing a circuit, the method comprising the steps of: providing a circuit description wherein the circuit described by the circuit description has a plurality of inputs, a plurality of outputs, and a plurality of circuit paths coupling the plurality of inputs to the plurality of outputs through a plurality of logic gates; setting every logic gate in the circuit to a minimal area; receiving predetermined timing requirements for the circuit paths; determining, for each circuit path, a speed of the circuit path; selecting one circuit path within the plurality of circuit paths which has a worst speed; increasing a drive strength of one logic gate in the one circuit path to improve the speed of the one circuit path at an expense of circuit area along the one circuit path; and performing the steps of determining through increasing until all circuit paths in the plurality of circuit paths are within the predetermined timing requirements.
Claim 20
Dependent Claim 54 words
The method of claim 16 wherein the step of selecting one circuit path having a worst speed comprises: performing a subtraction to find difference values between the timing requirements and the speeds of the circuit paths and choosing the circuit path with a greatest difference value as the circuit path with the worst speed.
Claim 21
Dependent Claim 68 words
The method of claim 16 wherein the step of increasing the drive strength comprises: identifying a best logic gate in the circuit path with the worst speed wherein the best logic gate is a logic gate in the circuit path with the worst speed which has a greatest sensitivity; and replacing the best logic gate with a new logic gate selected from a gate library stored in memory.
Claim 22
Dependent Claim 59 words
The method of claim 18 wherein the step of identifying comprises: finding the greatest sensitivity by finding a sensitivity of each logic gate in the circuit path, each gate in the circuit path comprising a plurality of transistors wherein the sensitivity of each logic gate is a sum of a TILOS sensitivity of each transistor in the logic gate.
Claim 23
Dependent Claim 35 words
The method of claim 18 wherein the step of replacing the best logic gate comprises: replacing the best logic gate with a logic gate having a same logical operation but having a smaller propagation delay.
Claim 24
Dependent Claim 51 words
The method of claim 20 wherein the step of replacing the best logic gate comprises: replacing the best logic gate with the new logic gate such that the replacing results in a plurality of transistors being increased in size when changing from the best logic gate to the new logic gate.
Claim 25
Dependent Claim 48 words
The method of claim 16 wherein the step of increasing the drive strength comprises: replacing the one logic gate in the one circuit path with a logically-equivalent logic gate from a logic gate library, the logically-equivalent logic gate having a greater drive strength than the one logic gate.
Claim 26
Dependent Claim 28 words
The method of claim 16 further comprising: writing circuit information to memory when all circuit paths in the plurality of circuit paths are within the predetermined timing requirements.
Claim 27
Dependent Claim 24 words
The method of claim 23 further comprising: using the circuit information to manufacture a plurality of integrated circuit containing the plurality of circuit paths.
Claim 28
Dependent Claim 183 words
A logic gate sizer comprising: means for receiving a plurality of circuit paths from a circuit description; means for finding a propagation time for each circuit path in the plurality of circuit paths; means for receiving timing constraints for each circuit path in the plurality of circuit paths; means for choosing one circuit path from the plurality of circuit paths which has a largest discrepancy between the propagation time of the one circuit path and the timing constraint for the one circuit path; means for replacing the one logic gate in the one circuit path with a library-read logic gate having a greater strength than the one logic gate, the library-read logic gate replacing the one logic gate to reduce the propagation time of the one circuit path to a numerical value less than or closer to the timing constraint for the one circuit path; and means for repeatedly performing the choosing and increasing performed respectively via the means for choosing and the means for increasing until all circuit paths in the plurality of circuit paths are in accordance with the timing constraints.
Claim 29
Dependent Claim 183 words
A logic gate sizer comprising: means for receiving a plurality of circuit paths from a circuit description; means for finding a propagation time for each circuit path in the plurality of circuit paths; means for receiving timing constraints for each circuit path in the plurality of circuit paths; means for choosing one circuit path from the plurality of circuit paths which has a largest discrepancy between the propagation time of the one circuit path and the timing constraint for the one circuit path; means for replacing the one logic gate in the one circuit path with a library-read logic gate having a greater strength than the one logic gate, the library-read logic gate replacing the one logic gate to reduce the propagation time of the one circuit path to a numerical value less than or closer to the timing constraint for the one circuit path; and means for repeatedly performing the choosing and increasing performed respectively via the means for choosing and the means for increasing until all circuit paths in the plurality of circuit paths are in accordance with the timing constraints.
Claim 30
Dependent Claim 226 words
A logic gate sizing processor comprising: a central processing unit (CPU) for executing computer instructions; and a memory unit coupled to the CPU for storing the computer instructions, the computer instructions comprising: computer instructions for receiving a plurality of circuit paths from a circuit description; computer instructions for finding a propagation time for each circuit path in the plurality of circuit paths; computer instructions for receiving timing constraints for each circuit path in the plurality of circuit paths; computer instructions for choosing one circuit path from the plurality of circuit paths which has a largest discrepancy between the propagation time of the one circuit path and the timing constraint for the one circuit path; computer instructions for replacing the one logic gate in the one circuit path with a library-read logic gate having a greater strength than the one logic gate, the library-read logic gate replacing the one logic gate to reduce the propagation time to a numerical value less than or closer to the timing constraint for the one circuit path; and computer instructions for repeatedly performing the choosing and increasing accomplished respectively via the computer instructions for choosing and the computer instructions for increasing until all circuit paths in the plurality of circuit paths are in accordance with the timing constraints; where the computer instructions are read from memory and executed by the CPU.
Claim 31
Dependent Claim 226 words
A logic gate sizing processor comprising: a central processing unit (CPU) for executing computer instructions; and a memory unit coupled to the CPU for storing the computer instructions, the computer instructions comprising: computer instructions for receiving a plurality of circuit paths from a circuit description; computer instructions for finding a propagation time for each circuit path in the plurality of circuit paths; computer instructions for receiving timing constraints for each circuit path in the plurality of circuit paths; computer instructions for choosing one circuit path from the plurality of circuit paths which has a largest discrepancy between the propagation time of the one circuit path and the timing constraint for the one circuit path; computer instructions for replacing the one logic gate in the one circuit path with a library-read logic gate having a greater strength than the one logic gate, the library-read logic gate replacing the one logic gate to reduce the propagation time to a numerical value less than or closer to the timing constraint for the one circuit path; and computer instructions for repeatedly performing the choosing and increasing accomplished respectively via the computer instructions for choosing and the computer instructions for increasing until all circuit paths in the plurality of circuit paths are in accordance with the timing constraints; where the computer instructions are read from memory and executed by the CPU.
Claim 32
Dependent Claim 215 words
Storage media for storing a logic gate sizer, the storage media comprising: a plurality of binary values for receiving a plurality of circuit paths from a circuit description; a plurality of binary values for finding a propagation time for each circuit path in the plurality of circuit paths; a plurality of binary values for receiving timing constraints for each circuit path in the plurality of circuit paths; a plurality of binary values for choosing one circuit path from the plurality of circuit paths which has a largest discrepancy between the propagation time of the one circuit path and the timing constraint for the one circuit path; a plurality of binary values for replacing the one logic gate in the one circuit path with a library-read logic gate having a greater strength than the one logic gate, the library-read logic gate replacing the one logic gate to reduce the propagation time to a numerical value less than or closer to the timing constraint for the one circuit path; and a plurality of binary values for repeatedly performing the choosing and increasing accomplished respectively via the plurality of binary values for choosing and the plurality of binary values for increasing until all circuit paths in the plurality of circuit paths are in accordance with the timing constraints.
Claim 33
Dependent Claim 215 words
Storage media for storing a logic gate sizer, the storage media comprising: a plurality of binary values for receiving a plurality of circuit paths from a circuit description; a plurality of binary values for finding a propagation time for each circuit path in the plurality of circuit paths; a plurality of binary values for receiving timing constraints for each circuit path in the plurality of circuit paths; a plurality of binary values for choosing one circuit path from the plurality of circuit paths which has a largest discrepancy between the propagation time of the one circuit path and the timing constraint for the one circuit path; a plurality of binary values for replacing the one logic gate in the one circuit path with a library-read logic gate having a greater strength than the one logic gate, the library-read logic gate replacing the one logic gate to reduce the propagation time to a numerical value less than or closer to the timing constraint for the one circuit path; and a plurality of binary values for repeatedly performing the choosing and increasing accomplished respectively via the plurality of binary values for choosing and the plurality of binary values for increasing until all circuit paths in the plurality of circuit paths are in accordance with the timing constraints.
Claim 34
Independent Claim 278 words
A method for manufacturing an integrated circuit, the method comprising the steps of: providing a library of logic cells in computer memory, the library containing logic cells which range in size from small sizes to larger sizes; providing a computer file which contains a plurality of logic gates interconnected by circuit paths such that the computer file defines a design of the integrated circuit; providing speed-of-operation constraints for the circuit paths; generating a layout-computer file wherein the logic cells from the library are selected as the logic gates of the computer file, the logic cells being spatially placed across a substrate surface defined in the layout-computer file and interconnected in accordance with the circuit paths, the logic cells selected from the library being of small sizes in order to minimize a total area of the substrate surface area consumed by logic cells in the layout-computer file; determining if the circuit paths within the layout-computer file are within the speed-of-operation constraints; changing the size of one or more logic cells used the layout-computer file from the smaller size to a larger size when one or more circuit paths within the layout-computer file are outside of the speed-of-operation constraints, the one or more logic cells being selected for change when: (1) the logic cell affects an operational speed of the one or more circuit paths within the layout-computer file; and (2) the logic cell improves circuit speed while minimizing the increase in total area of the substrate area of the layout-computer file; and manufacturing a plurality of integrated circuit in accordance with the layout-computer file after one or more logic cells in the layout-computer file have been increased in size.
Claim 35
Independent Claim 278 words
A method for manufacturing an integrated circuit, the method comprising the steps of: providing a library of logic cells in computer memory, the library containing logic cells which range in size from small sizes to larger sizes; providing a computer file which contains a plurality of logic gates interconnected by circuit paths such that the computer file defines a design of the integrated circuit; providing speed-of-operation constraints for the circuit paths; generating a layout-computer file wherein the logic cells from the library are selected as the logic gates of the computer file, the logic cells being spatially placed across a substrate surface defined in the layout-computer file and interconnected in accordance with the circuit paths, the logic cells selected from the library being of small sizes in order to minimize a total area of the substrate surface area consumed by logic cells in the layout-computer file; determining if the circuit paths within the layout-computer file are within the speed-of-operation constraints; changing the size of one or more logic cells used the layout-computer file from the smaller size to a larger size when one or more circuit paths within the layout-computer file are outside of the speed-of-operation constraints, the one or more logic cells being selected for change when: (1) the logic cell affects an operational speed of the one or more circuit paths within the layout-computer file; and (2) the logic cell improves circuit speed while minimizing the increase in total area of the substrate area of the layout-computer file; and manufacturing a plurality of integrated circuit in accordance with the layout-computer file after one or more logic cells in the layout-computer file have been increased in size.
Claim 36
Independent Claim 132 words
A method for manufacturing an integrated circuit, the method comprising the steps of: (a) providing a design file, the design file containing a circuit path containing a plurality of logic gates; (b) providing a delay time limit for the circuit path; (c) determining if the circuit path is within the delay time limit; and (d) finding a selected gate among the plurality of logic gates wherein the selected gate has an optimal speed improvement versus area increase value over all the other plurality of logic gates; (e) increasing a size of the selected gate; (f) iteratively performing steps (d) through (f) until the circuit path is within the delay time limit; and (g) manufacturing a plurality of integrated circuits, each integrated circuit in the plurality of integrated circuits having the circuit path.
Claim 37
Independent Claim 132 words
A method for manufacturing an integrated circuit, the method comprising the steps of: (a) providing a design file, the design file containing a circuit path containing a plurality of logic gates; (b) providing a delay time limit for the circuit path; (c) determining if the circuit path is within the delay time limit; and (d) finding a selected gate among the plurality of logic gates wherein the selected gate has an optimal speed improvement versus area increase value over all the other plurality of logic gates; (e) increasing a size of the selected gate; (f) iteratively performing steps (d) through (f) until the circuit path is within the delay time limit; and (g) manufacturing a plurality of integrated circuits, each integrated circuit in the plurality of integrated circuits having the circuit path.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-04-07 2000-10-07 2001-04-08 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-04-07 2004-10-07 2005-04-08 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-04-07 2008-10-07 2009-04-08 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag