US5682320A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Method for electronic memory management during estimation of average power consumption of an electronic circuit
Assignee: Synopsys Inc
•
Filing: 1995-06-02
•
Granted: 1997-10-28
•
Expires: 2015-06-02
Abstract
Abstract This is a method of quickly computing the power dissipated by a digital circuit using information available at the gate library level. It estimates the short-circuit power by modeling the energy dissipated by the cell per input transition as a function of the transition time or edge rate, and multiplying that value by the number of transitions per second for that input.
Inventors
- 👤 Adel Khouja
- 👤 Shankar Krishnamoorthy
- 👤 Frederic G. Mailhot
- 👤 Stephen F. Meier
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-04 19:38
CPC Classifications
G; G06; G06F; G06F30/00; G06F30/30; G06F30/32; G06F30/33; G06F2119/00; G06F2119/06
Claims Analysis
Total Claims: 30
Claim 1
Independent Claim
216 words
In a computer system, a computer implemented improved method for managing the use of electronic memory in the course of estimating average power consumption of an electronic circuit represented as a netlist comprising the computer implemented steps of: (a) ranking, in the electronic memory, primary outputs of the netlist with respect to each other in an order that depends upon the number of logic levels between respective primary outputs and respective primary inputs that feed into circuitry which generates said respective primary outputs; and (b) performing a depth-first traversal of the netlist, in the electronic memory, that follows the primary output ranking order, wherein said step (b) comprises the steps of: (b1) constructing, in the electronic memory, a respective binary decision diagram (BDD) for each respective netlist node that feeds a first primary output of the netlist by constructing a respective BDD for each respective deeper logic level netlist node feeding such first primary output prior to constructing a respective BDD for a respective shallower logic level netlist node feeding such first primary output; (b2) computing a respective switching activity value for each respective constructed BDD; and (b3) releasing a respective BDD from the electronic memory when a respective BDD has been constructed for every respective fanout of the netlist node with such respective released BDD.
Claim 2
Dependent Claim
216 words
In a computer system, a computer implemented improved method for managing the use of electronic memory in the course of estimating average power consumption of an electronic circuit represented as a netlist comprising the computer implemented steps of: (a) ranking, in the electronic memory, primary outputs of the netlist with respect to each other in an order that depends upon the number of logic levels between respective primary outputs and respective primary inputs that feed into circuitry which generates said respective primary outputs; and (b) performing a depth-first traversal of the netlist, in the electronic memory, that follows the primary output ranking order, wherein said step (b) comprises the steps of: (b1) constructing, in the electronic memory, a respective binary decision diagram (BDD) for each respective netlist node that feeds a first primary output of the netlist by constructing a respective BDD for each respective deeper logic level netlist node feeding such first primary output prior to constructing a respective BDD for a respective shallower logic level netlist node feeding such first primary output; (b2) computing a respective switching activity value for each respective constructed BDD; and (b3) releasing a respective BDD from the electronic memory when a respective BDD has been constructed for every respective fanout of the netlist node with such respective released BDD.
Claim 3
Dependent Claim
46 words
The method of claim 1, wherein the step of constructing produces in the electronic memory at least one respective BDD for a deeper level netlist node that serves as a basis for construction of at least one respective BDD for a shallower logic level netlist node.
Claim 4
Dependent Claim
94 words
The method of claim 1, wherein the step of constructing produces in the electronic memory a first BDD for a deeper level netlist node that both serves as a basis for construction of a second BDD for a second shallower logic level netlist node and also serves as a basis for construction of a third BDD for a third shallower logic level netlist node; wherein the step of releasing includes releasing the first constructed BDD from the electronic memory when the second BDD and the third BDD have been constructed in the electronic memory.
Claim 5
Dependent Claim
130 words
The method of claim 1, wherein the step of constructing produces in the electronic memory a first BDD for a deeper level netlist node that both serves as a basis for construction of a second BDD for a second shallower logic level netlist node and also serves as a basis for construction of a third BDD for a third shallower logic level netlist node; and further including the steps of: storing in the electronic memory a fanout status for the first deeper logic level netlist node; and in the course of performing the depth-first traversal, adjusting the fanout status when the second BDD and the third BDD are constructed; wherein the step of releasing includes releasing the first constructed BDD from the electronic memory when the fanout status is adjusted.
Claim 6
Dependent Claim
140 words
The method of claim 1, wherein the step of constructing produces in the electronic memory a first BDD for a deeper logic level netlist node that both serves as a basis for construction of a second BDD for a second shallower logic level netlist node and also serves as a basis for construction of a third BDD for a third shallower logic level netlist node; and further including the step of: storing in the electronic memory a fanout count for the first deeper logic level netlist node; and in the course of performing the depth-first traversal, decrementing the fanout count when the second BDD is constructed; and decrementing the fanout count when the third BDD is constructed; wherein the step of releasing includes releasing the first constructed BDD from the electronic memory when the fanout count has been twice decremented.
Claim 7
Dependent Claim
110 words
The method of claim 1, wherein the step of constructing produces in the electronic memory a first BDD for a deeper logic level netlist node that both serves as a basis for construction of n BDDs for n shallower logic level netlist nodes; and further including the steps of: storing in the electronic memory a fanout count for the first deeper logic level netlist node; and in the course of performing the depth-first traversal, decrementing the fanout count each time one of the n BDDs is constructed; wherein the step of releasing includes releasing the first BDD from the electronic memory when the fanout count has been decremented n times.
Claim 8
Dependent Claim
74 words
The method of claim 1 including the steps of: in the course of performing the depth-first traversal, constructing in the electronic memory a respective BDD for each respective netlist node that feeds a second primary output of the netlist by constructing a respective BDD for each deeper logic level netlist node feeding such second primary output prior to constructing a respective BDD for a shallower logic level netlist node feeding such second primary output.
Claim 9
Dependent Claim
116 words
The method of claim 1 including the steps of: in the course of performing the depth-first traversal, constructing in the electronic memory a respective BDD for each respective netlist node that feeds a second primary output of the netlist by constructing a respective BDD for each deeper logic level netlist node feeding such second primary output prior to constructing a respective BDD for a shallower logic level netlist node feeding such second primary output, wherein a respective BDD constructed for a deeper logic level netlist node that feeds the second primary output may serve as a basis for construction of a respective BDD for a shallower logic level netlist node that feeds the second primary output.
Claim 10
Dependent Claim
132 words
The method of claim 1 including the steps of: in the course of performing the depth-first traversal, constructing in the electronic memory a respective BDD for each respective netlist node that feeds a second primary output of the netlist by constructing a respective BDD for each deeper logic level netlist node feeding such second primary output prior to constructing a respective BDD for a shallower logic level netlist node feeding such second primary output; and constructing in the electronic memory a respective BDD for each respective netlist node that feeds a third primary output of the netlist by constructing a respective BDD for each deeper logic level netlist node feeding such third primary output prior to constructing a respective BDD for a shallower logic level netlist node feeding such third primary output.
Claim 11
Dependent Claim
216 words
The method of claim 1 including the steps of: in the course of performing the depth-first traversal, constructing in the electronic memory a respective BDD for each respective netlist node that feeds a second primary output of the netlist by constructing a respective BDD for each deeper logic level netlist node feeding such second primary output prior to constructing a respective BDD for a shallower logic level netlist node feeding such second primary output, wherein a respective BDD constructed for a deeper logic level netlist node that feeds the second primary output may serve as a basis for construction of a respective BDD for a shallower logic level netlist node that feeds the second primary output; and constructing in the electronic memory a respective BDD for each respective netlist node that feeds a third primary output of the netlist by constructing a respective BDD for each deeper logic level netlist node feeding such third primary output prior to constructing a respective BDD for a shallower logic level netlist node feeding such third primary output, wherein a respective BDD constructed for a deeper logic level netlist node that feeds the third primary output may serve as a basis for construction of a respective BDD for a shallower logic level netlist node that feeds the third primary output.
Claim 12
Dependent Claim
140 words
The method of claim 1 including the step of: constructing in the electronic memory a respective BDD for each respective netlist node that feeds a second primary output of the netlist by constructing a respective BDD for each deeper logic level netlist node feeding such second primary output prior to constructing a respective BDD for a shallower logic level netlist node feeding such second primary output; wherein the steps of constructing produce in the electronic memory a first constructed BDD for a deeper level netlist node that both feeds the first primary input and that also feeds the second primary input and that both serves as a basis for a shallower logic level netlist node that feeds the first primary input and also serves as a basis for a shallower logic level netlist node that feeds the second primary input.
Claim 13
Dependent Claim
183 words
The method of claim 1 including the step of: constructing in the electronic memory a respective BDD for each respective netlist node that feeds a second primary output of the netlist by constructing a respective BDD for each deeper logic level netlist node feeding such second primary output prior to constructing a respective BDD for a shallower logic level netlist node feeding such second primary output; wherein the steps of constructing produce in the electronic memory a first BDD for a deeper level netlist node that both feeds the first primary input and that also feeds the second primary input and that both serves as a basis for construction of a second BDD for a shallower logic level netlist node that feeds the first primary input and also serves as a basis for construction of a third BDD for a shallower logic level netlist node that feeds the second primary input; and wherein the step of releasing includes releasing the first constructed BDD from the electronic memory when both the second BDD and the third BDD have been constructed in the electronic memory.
Claim 14
Dependent Claim
26 words
The method of claim 1 wherein the step of computing involves computing a respective static probability and a respective toggle rate for each respective constructed BDD.
Claim 15
Dependent Claim
275 words
In a computer system, a computer implemented improved method for managing the use of computer readable memory in the course of estimating average power consumption of an electronic circuit represented as a netlist comprising the computer implemented steps of: (a) ranking, in the computer readable memory, primary outputs of the netlist with respect to each other in an order that depends upon the number of logic levels between respective primary outputs and respective primary inputs that feed into such respective primary outputs; and (b) performing a depth-first traversal of the netlist, in the computer readable memory, that follows the primary output ranking order, wherein said step (b) comprises the steps of: (b1) constructing, in the computer readable memory, a respective binary decision diagram (BDD) for each respective netlist node that feeds a first primary output of the netlist by constructing a respective BDD for each respective deeper logic level netlist node feeding such first primary output prior to constructing a respective BDD for a respective shallower logic level netlist node feeding such first primary output; (b2) releasing each respective deeper logic level BDD from the computer readable memory for which a respective shallow logic level BDD has been constructed for each respective fanout of a respective netlist node associated with such respective released BDD; (b3) storing in the computer readable memory identification of the respective frontier BDD which are nonreleased BDDs produced in the computer readable memory; (b4) determining when the amount of computer readable memory used exceeds a defined limit; and (b5) releasing from the computer readable memory a first frontier BDD when the amount of computer readable memory used exceeds the defined limit.
Claim 16
Dependent Claim
275 words
In a computer system, a computer implemented improved method for managing the use of computer readable memory in the course of estimating average power consumption of an electronic circuit represented as a netlist comprising the computer implemented steps of: (a) ranking, in the computer readable memory, primary outputs of the netlist with respect to each other in an order that depends upon the number of logic levels between respective primary outputs and respective primary inputs that feed into such respective primary outputs; and (b) performing a depth-first traversal of the netlist, in the computer readable memory, that follows the primary output ranking order, wherein said step (b) comprises the steps of: (b1) constructing, in the computer readable memory, a respective binary decision diagram (BDD) for each respective netlist node that feeds a first primary output of the netlist by constructing a respective BDD for each respective deeper logic level netlist node feeding such first primary output prior to constructing a respective BDD for a respective shallower logic level netlist node feeding such first primary output; (b2) releasing each respective deeper logic level BDD from the computer readable memory for which a respective shallow logic level BDD has been constructed for each respective fanout of a respective netlist node associated with such respective released BDD; (b3) storing in the computer readable memory identification of the respective frontier BDD which are nonreleased BDDs produced in the computer readable memory; (b4) determining when the amount of computer readable memory used exceeds a defined limit; and (b5) releasing from the computer readable memory a first frontier BDD when the amount of computer readable memory used exceeds the defined limit.
Claim 17
Dependent Claim
30 words
The method of claim 14 wherein said step (b) comprises the further step of: substituting a first pseudo-primary input for the first frontier BDD released from the computer readable memory.
Claim 18
Dependent Claim
25 words
The method of claim 14 wherein said step (b) comprises the further step of: computing a respective switching activity value for each respective constructed BDD.
Claim 19
Dependent Claim
29 words
The method of claim 14 wherein said step (b) comprises the further step of: computing a respective toggle rate and a respective static probability for each respective constructed BDD.
Claim 20
Dependent Claim
39 words
The method of claim 14 wherein the step of (b4) determining when the amount of computer readable memory used exceeds a defined limit involves determining when the amount of computer readable memory occupied by BDDs exceeds the defined limit.
Claim 21
Dependent Claim
237 words
A computer readable memory containing instructions that when executed causing a computer system to implement a method for managing the use of computer readable memory in the course of estimating average power consumption of an electronic circuit represented as a netlist, said instructions comprising: (a) first code for ranking, in the computer readable memory, primary outputs of the netlist with respect to each other in an order based on the number of logic levels between respective primary outputs and respective primary inputs that feed into circuitry which generates said respective primary outputs; and (b) second code for performing a depth-first traversal of the netlist, in the computer readable memory, that follows the primary output ranking order, wherein said second code comprises: (b1) third code for constructing, in the computer readable memory, a respective binary decision diagram (BDD) for each respective netlist node that feeds a first primary output of the netlist by constructing a respective BDD for each respective deeper logic level netlist node feeding such first primary output prior to constructing a respective BDD for a respective shallower logic level netlist node feeding such first primary output; (b2) fourth code for computing a respective switching activity value for each respective constructed BDD; and (b3) fifth code for releasing a respective BDD from the computer readable memory when a respective BDD has been constructed for every respective fanout of the netlist node with such respective released BDD.
Claim 22
Dependent Claim
237 words
A computer readable memory containing instructions that when executed causing a computer system to implement a method for managing the use of computer readable memory in the course of estimating average power consumption of an electronic circuit represented as a netlist, said instructions comprising: (a) first code for ranking, in the computer readable memory, primary outputs of the netlist with respect to each other in an order based on the number of logic levels between respective primary outputs and respective primary inputs that feed into circuitry which generates said respective primary outputs; and (b) second code for performing a depth-first traversal of the netlist, in the computer readable memory, that follows the primary output ranking order, wherein said second code comprises: (b1) third code for constructing, in the computer readable memory, a respective binary decision diagram (BDD) for each respective netlist node that feeds a first primary output of the netlist by constructing a respective BDD for each respective deeper logic level netlist node feeding such first primary output prior to constructing a respective BDD for a respective shallower logic level netlist node feeding such first primary output; (b2) fourth code for computing a respective switching activity value for each respective constructed BDD; and (b3) fifth code for releasing a respective BDD from the computer readable memory when a respective BDD has been constructed for every respective fanout of the netlist node with such respective released BDD.
Claim 23
Dependent Claim
30 words
The computer readable memory of claim 19 wherein said second code comprises code for substituting a first pseudo-primary input for said first frontier BDD released from said computer readable memory.
Claim 24
Dependent Claim
25 words
The computer readable memory of claim 19 wherein said second code comprises code for computing a respective switching activity value for each respective constructed BDD.
Claim 25
Dependent Claim
29 words
The computer readable memory of claim 19 wherein said second code comprises code for computing a respective toggle rate and a respective static probability for each respective constructed BDD.
Claim 26
Dependent Claim
239 words
A computer readable memory containing instructions that when executed causing a computer system to implement a method for managing the use of said computer readable memory in the course of estimating average power consumption of a computer readable circuit represented as a netlist, said instructions comprising: (a) first code for ranking, in the computer readable memory, primary outputs of the netlist with respect to each other in an order based on the number of logic levels between respective primary outputs and respective primary inputs that feed into circuitry which generates said respective primary outputs; and (b) second code for performing a depth-first traversal of the netlist, in the computer readable memory, that follows the primary output ranking order, wherein said second code comprises: (b1) third code for constructing, in the computer readable memory, a respective binary decision diagram (BDD) for each respective netlist node that feeds a first primary output of the netlist by constructing a respective BDD for each respective deeper logic level netlist node feeding such first primary output prior to constructing a respective BDD for a respective shallower logic level netlist node feeding such first primary output; (b2) fourth code for computing a respective switching activity value for each respective constructed BDD; and (b3) fifth code for releasing a respective BDD from the computer readable memory when a respective BDD has been constructed for every respective fanout of the netlist node with such respective released BDD.
Claim 27
Dependent Claim
239 words
A computer readable memory containing instructions that when executed causing a computer system to implement a method for managing the use of said computer readable memory in the course of estimating average power consumption of a computer readable circuit represented as a netlist, said instructions comprising: (a) first code for ranking, in the computer readable memory, primary outputs of the netlist with respect to each other in an order based on the number of logic levels between respective primary outputs and respective primary inputs that feed into circuitry which generates said respective primary outputs; and (b) second code for performing a depth-first traversal of the netlist, in the computer readable memory, that follows the primary output ranking order, wherein said second code comprises: (b1) third code for constructing, in the computer readable memory, a respective binary decision diagram (BDD) for each respective netlist node that feeds a first primary output of the netlist by constructing a respective BDD for each respective deeper logic level netlist node feeding such first primary output prior to constructing a respective BDD for a respective shallower logic level netlist node feeding such first primary output; (b2) fourth code for computing a respective switching activity value for each respective constructed BDD; and (b3) fifth code for releasing a respective BDD from the computer readable memory when a respective BDD has been constructed for every respective fanout of the netlist node with such respective released BDD.
Claim 28
Dependent Claim
31 words
A computer readable memory as described in claim 23 wherein said second code comprises code for computing a respective static probability and a respective toggle rate for each respective constructed BDD.
Claim 29
Dependent Claim
270 words
In a computer system, a method for managing the use of a computer readable memory in the course of estimating average power consumption of an computer readable circuit represented as a netlist comprising the computer implemented steps of: (a) ranking, in the computer readable memory, primary outputs of the netlist with respect to each other in an order based on the number of logic levels between respective primary outputs and respective primary inputs that feed into circuitry which generates said respective primary outputs; and (b) performing a depth-first traversal of the netlist, in the computer readable memory, that follows the primary output ranking order, wherein said step (b) comprises the steps of: (b1) constructing, in the computer readable memory, a respective binary decision diagram (BDD) for each respective netlist node that feeds a first primary output of the netlist by constructing a respective BDD for each respective deeper logic level netlist node feeding such first primary output prior to constructing a respective BDD for a respective shallower logic level netlist node feeding such first primary output; (b2) computing a respective switching activity value for each respective constructed BDD, wherein said step of computing involves computing a respective static probability and a respective toggle rate for each respective BDD and wherein further said step (b2) of computing a respective static probability comprises the steps of: (i) grouping all Boolean difference of each BDD; and (ii) computing all static probabilities simultaneously; and (b3) releasing a respective BDD from the computer readable memory when a respective BDD has been constructed for every respective fanout of the netlist node with such respective released BDD.
Claim 30
Dependent Claim
270 words
In a computer system, a method for managing the use of a computer readable memory in the course of estimating average power consumption of an computer readable circuit represented as a netlist comprising the computer implemented steps of: (a) ranking, in the computer readable memory, primary outputs of the netlist with respect to each other in an order based on the number of logic levels between respective primary outputs and respective primary inputs that feed into circuitry which generates said respective primary outputs; and (b) performing a depth-first traversal of the netlist, in the computer readable memory, that follows the primary output ranking order, wherein said step (b) comprises the steps of: (b1) constructing, in the computer readable memory, a respective binary decision diagram (BDD) for each respective netlist node that feeds a first primary output of the netlist by constructing a respective BDD for each respective deeper logic level netlist node feeding such first primary output prior to constructing a respective BDD for a respective shallower logic level netlist node feeding such first primary output; (b2) computing a respective switching activity value for each respective constructed BDD, wherein said step of computing involves computing a respective static probability and a respective toggle rate for each respective BDD and wherein further said step (b2) of computing a respective static probability comprises the steps of: (i) grouping all Boolean difference of each BDD; and (ii) computing all static probabilities simultaneously; and (b3) releasing a respective BDD from the computer readable memory when a respective BDD has been constructed for every respective fanout of the netlist node with such respective released BDD.
References Cited (Backward Citations)
US4698760A
Cited
US5557531A
Cited
US5459673A
Cited
US5331568A
Cited
EP0582918A2
Cited
US5481469A
Cited
US5469367A
Cited
US5731683A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2000-10-27 | 2001-04-28 | 2001-10-28 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2004-10-27 | 2005-04-28 | 2005-10-28 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2008-10-27 | 2009-04-28 | 2009-10-28 | $7700.00 | Window Closed / Lapsed |