A design structure is embodied in a machine readable medium for designing, manufacturing, or testing integrated circuitry. The design structure includes first hardware for executing first software in response to macros that describe the integrated circuitry, and for generating a set of constants in response to the execution of the first software. second hardware is for receiving the set of constants from the first hardware, and for executing second software in response to the macros and the set of constants, and for estimating a power consumption of the integrated circuitry in response to the execution of the second software.
|
1. A design structure in a machine readable storage medium for designing, manufacturing, or testing integrated circuitry, the design structure comprising:
first hardware for executing first software in response to a plurality of macros that describe the integrated circuitry, and for generating a set of constants in response to the execution of the first software; and
second hardware, coupled to the first hardware, for receiving the set of constants from the first hardware, and for executing second software in response to the macros and the set of constants, and for estimating a power consumption of the integrated circuitry in response to the execution of the second software.
23. A method in a computer-aided design system for generating a functional design model of integrated circuitry, the method comprising:
generating a functional computer-simulated representation of first hardware for executing first software in response to a plurality of macros that describe the integrated circuitry, and for generating a set of constants in response to the execution of the first software; and
generating a functional computer-simulated representation of second hardware, coupled to the first hardware, for receiving the set of constants from the first hardware, and for executing second software in response to the macros and the set of constants, and for estimating a power consumption of the integrated circuitry in response to the execution of the second software.
13. A hardware description language (“HDL”) design structure encoded on a machine-readable data storage medium, the HDL design structure comprising elements that when processed in a computer-aided design system, generate a machine-executable representation of integrated circuitry, wherein the HDL design structure comprises:
a first element processed to generate a functional computer-simulated representation of first hardware for executing first software in response to a plurality of macros that describe the integrated circuitry, and for generating a set of constants in response to the execution of the first software; and
a second element processed to generate a functional computer-simulated representation of second hardware, coupled to the first hardware, for receiving the set of constants from the first hardware, and for executing second software in response to the macros and the set of constants, and for estimating a power consumption of the integrated circuitry in response to the execution of the second software.
2. The design structure of
3. The design structure of
4. The design structure of
5. The design structure of
6. The design structure of
7. The design structure of
8. The design structure of
9. The design structure of
10. The design structure of
12. The design structure of
14. The HDL design structure of
15. The HDL design structure of
16. The HDL design structure of
17. The HDL design structure of
18. The HDL design structure of
19. The HDL design structure of
20. The HDL design structure of
21. The HDL design structure of
22. The HDL design structure of
24. The method of
25. The method of
26. The method of
27. The method of
28. The method of
29. The method of
30. The method of
31. The method of
32. The method of
|
This application claims priority to and is a continuation-in-part of co-owned co-pending U.S. patent application Ser. No. 11/530,100, filed Sep. 8, 2006, by Chaudhry et al., entitled METHOD AND SYSTEM FOR ESTIMATING POWER CONSUMPTION OF INTEGRATED CIRCUITRY, which is incorporated herein by reference in its entirety.
The disclosures herein relate in general to a design structure, and in particular to a design structure for estimating power consumption of integrated circuitry.
In very large scale integration (“VLSI”) designs of integrated circuitry, power consumption is a significant factor. For example, power consumption has a direct impact on battery life, heat dissipation, packaging requirements, and other design criteria for systems that include such integrated circuitry. Generally, a lower power consumption is desirable. Accordingly, previous techniques have been developed for modeling designs of integrated circuitry, including previous techniques for estimating power consumption of such integrated circuitry.
Nevertheless, a need has arisen for a design structure for estimating power consumption of integrated circuitry, in which various shortcomings of previous techniques are overcome. For example, a need has arisen for a design structure for estimating power consumption of integrated circuitry, in which power consumption is estimated with higher efficiency and accuracy.
A design structure is embodied in a machine readable medium for designing, manufacturing, or testing integrated circuitry. The design structure includes first hardware for executing first software in response to macros that describe the integrated circuitry, and for generating a set of constants in response to the execution of the first software. Second hardware is for receiving the set of constants from the first hardware, and for executing second software in response to the macros and the set of constants, and for estimating a power consumption of the integrated circuitry in response to the execution of the second software.
A principal advantage of this embodiment is that various shortcomings of previous techniques are overcome. For example, a principal advantage of this embodiment is that power consumption is estimated with higher efficiency and accuracy.
For example, the computer 104 includes: (a) a network interface (e.g., circuitry) for communicating between the computer 104 and a network (e.g., outputting information to, and receiving information from, the network), such as by transferring information (e.g. instructions, data, signals) between the computer 104 and the network; and (b) a memory device (e.g., random access memory (“RAM”) device and/or read only memory (“ROM”) device) for storing information (e.g., instructions of software executed by the computer 104, and data processed by the computer 104 in response to such instructions). Accordingly, in the example of
In response to signals from the computer 104, the display device 108 displays visual images, which represent information, and the user 102 views such visual images. Moreover, the user 102 operates the input devices 106 to output information to the computer 104, and the computer 104 receives such information from the input devices 106. Also, in response to signals from the computer 104, the print device 110 prints visual images on paper, and the user 102 views such visual images.
The input devices 106 include, for example, a conventional electronic keyboard (or keypad) and a pointing device, such as a conventional electronic “mouse,” rollerball or light pen. The user 102 operates the keyboard (or keypad) to output alphanumeric text information to the computer 104, which receives such alphanumeric text information. The user 102 operates the pointing device to output cursor-control information to the computer 104, and the computer 104 receives such cursor-control information. The input devices 106 also include, for example, touch-sensitive circuitry of a liquid crystal display (“LCD”) device.
In the illustrative embodiment, the macro 202 is RTL of a relatively small portion (e.g., an integrated circuitry latch) of larger integrated circuitry (e.g., a microprocessor). Accordingly, the macro 202 is a representative example of numerous macros, which together form RTL of the larger integrated circuitry. Accordingly, the macro 202 is figuratively connected to one or more of the numerous macros, through the data inputs 204, the control inputs 206, and the outputs 208. The IHS 100 executes software for simulating operations (which are described by the numerous macros) of the integrated circuitry, in response to the numerous macros.
For the integrated circuitry that is described by the example macro 202, a switching factor (per clock cycle of the integrated circuitry's operation) is a percentage of signals (e.g., as simulated from the data inputs 204 and from the control inputs 206) that toggle after an immediately preceding clock cycle of the integrated circuitry's operation. For example, if one-half of the signals toggle, then the switching factor is fifty percent (50%). Generally, if switching factor increases, then power consumption increases.
Moreover, if clock activity increases, then power consumption increases. For example, if all clock drivers in the integrated circuitry are active during a clock cycle of the integrated circuitry's operation, then clock activity is 100% during such clock cycle. By comparison, if no clock drivers in the integrated circuitry are active during a clock cycle of the integrated circuitry's operation, then clock activity is 0% during such clock cycle. Similarly, if m of N clock drivers in the integrated circuitry are active during a clock cycle of the integrated circuitry's operation, then clock activity is (m/N 100)% during such clock cycle, where N is a total number (e.g., a total weighted number) of clock drivers in the integrated circuitry. Accordingly, clock activity (per clock cycle of the integrated circuitry's operation) is a measure of capacitive load that is driven in the integrated circuitry during such clock cycle.
Per macro (and, accordingly, for the integrated circuitry that is described by such macro), general purpose processor (“GPP”) hardware of the computer 104 generates a respective energy model. In such generation, the computer 104 executes first software (e.g., simulation program with integrated circuit emphasis, a/k/a “SPICE”) for estimating a power consumption P (of the integrated circuitry that is described by such macro) at various representative combinations of switching factor SF and clock activity CLK (e.g., at representative switching factors of 0%, 50% and 100%, and at representative clock activities of 0% and 100%), in multiple clock cycles of the integrated circuitry's simulated operation. Such estimates (at the representative combinations of switching factor SF and clock activity CLK) together form such macro's respective sample energy information. In one embodiment, the computer 104 selects the representative combinations of switching factor SF and clock activity CLK in response to estimates by the computer 104 of the integrated circuitry's average switching factor, average clock activity, and average power consumption.
For example, the computer 104 executes the first software for estimating such power consumption P(C): (a) at SF=0% and CLK=0%, in a first clock cycle C=1 of the integrated circuitry's simulated operation; (b) at SF=0% and CLK=100%, in a second clock cycle C=2 of the integrated circuitry's simulated operation; (c) at SF=50% and CLK=0%, in a third clock cycle C=3 of the integrated circuitry's simulated operation; (d) at SF=50% and CLK=100%, in a fourth clock cycle C=4 of the integrated circuitry's simulated operation; (e) at SF=100% and CLK=0%, in a fifth clock cycle C=5 of the integrated circuitry's simulated operation; and (f) at SF=100% and CLK=100%, in a sixth clock cycle C=6 of the integrated circuitry's simulated operation.
Subsequently, the special purpose emulator hardware 116 (e.g., a hardware acceleration emulator board) executes second software for estimating the power consumption (of the integrated circuitry that is described by such macro) at other combinations of switching factor and clock activity (e.g., other than the representative combinations of switching factor and clock activity), by interpolation and/or extrapolation in response to such macro's respective sample energy information (e.g., according to a variety of linear and/or non-linear interpolation and/or extrapolation techniques, such a least square fitting and splines). Such macro's respective sample energy information, along with such interpolation and/or extrapolation techniques for such macro, together form such macro's respective energy model. Relative to execution of the first software, such execution of the second software is less complex, less time-consuming and less computationally intensive.
Even if the integrated circuitry's design is adjusted (e.g., by a human designer and/or by the IHS 100 executing automated design software), the example macro 202 is likewise adjustable, so that the example macro 202 continues to describe the integrated circuitry's adjusted design. In that manner, the special purpose emulator hardware 116 estimates the power consumption (of the integrated circuitry that is described by such macro) with more accuracy under a variety of conditions (e.g., adjusted designs of the integrated circuitry), so that: (a) the estimated power consumption under such variety of conditions is subject to comparison with more accuracy; and (b) in response to such comparison, one or more of such conditions are selectable (e.g., by a human designer and/or by the IHS 100 executing automated design software) to achieve a reduction of such power consumption, earlier in the integrated circuitry's development, thereby increasing a level of efficiency and accuracy in such development (e.g., fewer iterations, and shorter development time).
Per macro (and, accordingly, for the integrated circuitry that is described by such macro), the special purpose emulator hardware 116 executes the second software for estimating power consumption P(C) as a linear function of switching factor SF and clock activity CLK, where P(C) is power consumption (of the integrated circuitry that is described by such macro) in a clock cycle C of the integrated circuitry's simulated operation, such that P(C)=Pclk0(SF)+(Pclk100(SF)−Pclk0(SF))•CLK, where:
(a) Pclk0(SF) is the estimated power consumption at switching factor SF when clock activity CLK=0%; and
(b) Pclk100(SF) is the estimated power consumption at switching factor SF when clock activity CLK=100%.
In the illustrative embodiment, the special purpose emulator hardware 116 executes the second software for estimating Pclk0(SF) and Pclk100(SF) by linear interpolation and/or linear extrapolation of such macro's respective sample energy information (which was previously estimated by the computer 104 executing the first software, as discussed further hereinabove). In an alternative embodiment, the special purpose emulator hardware 116 executes the second software for estimating Pclk0(SF) and Pclk100(SF) by non-linear interpolation and/or non-linear extrapolation techniques, in response to such macro's respective sample energy information.
Pclk0max=Pclk0(100)=Pclk0(SF) at SF=1.0 (which is a decimal representation of 100%).
Pclk100min=Pclk100(0)=Pclk100(SF) at SF=0.0 (which is a decimal representation of 0%).
Pclk100max=Pclk100(100)=Pclk100(SF) at SF=1.0.
If Pclk0(SF) is a linear function of switching factor SF, then Pclk0(SF)=Pclk0max•SF, where SF is a decimal representation of the switching factor in a clock cycle of the integrated circuitry's simulated operation.
Similarly, if Pclk100(SF) is a linear function of switching factor SF, then Pclk100(SF)=Pclk100min+Pclk100max•SF, where SF is a decimal representation of the switching factor in a clock cycle of the integrated circuitry's simulated operation.
By substitution, P(C)=Pclk0(SF)+(Pclk100(SF)−Pclk0(SF))•CLK is rewritten as P(C)=Pclk0max•SF+(Pclk100min+Pclk100max•SF−Pclk0max•SF)•CLK, which is rearranged as:
P(C)=Pclk0max•SF+CLK•(Pclk100min+(Pclk100max−Pclk0max)•SF).
For the integrated circuitry that is described by the example macro 202: (a) a value NUMSF (per clock cycle of the integrated circuitry's operation) is a number of signals (e.g., as simulated from the data inputs 204 and from the control inputs 206) that toggle after an immediately preceding clock cycle of the integrated circuitry's operation; and (b) a value TOTSF is a total number of all signals from the data inputs 204 and from the control inputs 206, irrespective of whether such signals toggle after an immediately preceding clock cycle of the integrated circuitry's operation. Accordingly, SF=NUMSF/TOTSF.
Similarly, for the integrated circuitry that is described by the example macro 202: (a) a value NUMCLK (per clock cycle of the integrated circuitry's operation) is a number (e.g., a total weighted number) of clock drivers in the integrated circuitry that are active during such clock cycle; and (b) a value TOTCLK is a total number (e.g., a total weighted number) of all clock drivers in the integrated circuitry, irrespective of whether such clock drivers are active during such clock cycle. Accordingly, CLK=NUMCLK/TOTCLK.
In one embodiment, such numbers of signals from the data inputs 204 and from the control inputs 206 are weighted, so that the special purpose emulator hardware 116 selectively attributes different weights to one or more of such signals, in order to more accurately model the respective effects of such signals on the values of NUMSF and TOTSF. Similarly, in one embodiment, such numbers of clock drivers in the integrated circuitry are weighted, so that the special purpose emulator hardware 116 selectively attributes different weights to one or more of such clock drivers, in order to more accurately model the respective effects of such clock drivers on the values of NUMCLK and TOTCLK.
By substitution, P(C)=Pclk0max•SF+CLK•(Pclk100min+(Pclk100max−Pclk0max)•SF) is rewritten as:
P(C)=Pclk0max•(NUMSF/TOTSF)+(NUMCLK/TOTCLK)•(Pclk100min+[(Pclk100max−Pclk0max)•(NUMSF/TOTSF)]).
In such estimation of P(C) for the integrated circuitry that is described per macro (e.g., macro 202): (a) the variables (per clock cycle of the integrated circuitry's simulated operation) are NUMSF and NUMCLK; and (b) the other values are constant per macro. Accordingly, the following values are constant per macro:
ConstA=(Pclk0max/TOTSF);
ConstB=(Pclk100max−Pclk0max)/(TOTCLK•TOTSF); and
ConstC=(Pclk100min/TOTCLK).
By substitution, P(C)=Pclk0max•(NUMSF/TOTSF)+(NUMCLK/TOTCLK)•(Pclk100min+[(Pclk100max−Pclk0max)•(NUMSF/TOTSF)]) is rewritten as:
P(C)=ConstA•NUMSF+NUMCLK•(ConstB•NUMSF+ConstC).
Accordingly, per macro (e.g., macro 202), the IHS 100 generates (e.g., precalculates) such macro's respective ConstA, ConstB and ConstC, with GPP hardware of the computer 104, which outputs such macro's respective ConstA, ConstB and ConstC to the special purpose emulator hardware 116. The special purpose emulator hardware 116 is a special purpose computational resource that is coupled to the computer 104, as discussed further hereinbelow in connection with
Per macro, and per clock cycle C of the integrated circuitry's simulated operation, the special purpose emulator hardware 116 (in response to its execution of the second software): (a) simulates such operation of the integrated circuitry as described by such macro and, in response thereto, generates NUMSF and NUMCLK of such clock cycle C for such macro; and (b) calculates P(C) in response to (i) such macro's respective ConstA, ConstB and ConstC, and (ii) such clock cycle C's NUMSF and NUMCLK for such macro. The special purpose emulator hardware 116 performs such calculation according to P(C)=ConstA•NUMSF+NUMCLK•(ConstB•NUMSF+ConstC). Accordingly, the special purpose emulator hardware 116 performs such calculation without division, so that the special purpose emulator hardware 116 performs such calculation at higher speed with fixed point adders and multipliers.
Moreover, the special purpose emulator hardware 116 performs such operations and calculation: (a) with increased speed, relative to an alternative in which such operations and calculation are performed by execution of higher-level software (e.g., higher-level RTL simulator software) with a general purpose computational resource (e.g., the GPP hardware of the computer 104); and (b) without sacrificing accuracy, relative to such alternative. Accordingly, with the special purpose emulator hardware 116, the IHS 100 performs such operations and calculation, while allocating a smaller amount of general purpose computational resource for such performance. With the increased speed, the IHS 100 estimates power consumption with more efficiency for: (a) computationally intensive simulations of realistic workloads (e.g., simulations of booting an operating system, and simulations of multi-chip system-level applications); and (b) formal verification of the numerous macros for which power consumption is estimated (e.g., formal verification to solve formal proofs of estimated power consumption thresholds, such as peak estimated power consumption or change in estimated power consumption).
In the illustrative embodiment, the macro 202 is RTL of a relatively small portion (e.g., an integrated circuitry latch) of larger integrated circuitry (e.g., a microprocessor). Accordingly, the macro 202 is a representative example of numerous macros, which together form RTL of the larger integrated circuitry. Also, in the illustrative embodiment, the operations (e.g., generation of NUMSF and NUMCLK, and calculation of P(C) in response thereto) and interconnection structures of the second software (which is executed by the special purpose emulator hardware 116) are described by a hardware description language (“HDL”), such as RTL, which is: (a) combined (e.g., linked and/or integrated) together with the numerous macros; and (b) executed by the special purpose emulator hardware 116 to perform (i) such operations and (ii) the operations of the numerous macros. In that manner, operations of the second software are more readily enhanced to include additional functions, such as: (a) thermal hot-spot detection of specific macros whose estimated power consumption is especially high; (b) calculation of peak estimated power consumption for specified partitions of the numerous macros and/or for all of the numerous macros aggregately; and (c) calculation of average estimated power consumption for specified partitions of the numerous macros and/or for all of the numerous macros aggregately.
As shown by a Storage element in
Per clock cycle C (as indicated by logic states of the clock input Clk) of the integrated circuitry's simulated operation, the special purpose emulator hardware 116 (in response to its execution of the second software):
(a) simulates operations of the integrated circuitry as described by the macro, in response to then-current logic states of the multiple ports (e.g., then-current logic states of the data inputs 204 and the control inputs 206);
(b) in response thereto, modifies then-current logic states of the outputs (e.g., then-current logic states of the outputs 208);
(c) with Change Detect logic, generates NUMSF, in response to: (i) then-current logic states of the multiple ports; and (ii) the logic states of such ports in a previous clock cycle C-1 of the integrated circuitry's simulated operation;
(d) with Clock State Detect logic, generates NUMCLK, in response to a number of clock drivers (in the simulated operation of the integrated circuitry as described by the macro) that are active during clock cycle C;
(e) with the MPCB, calculates P(C)=ConstA•NUMSF+NUMCLK. (ConstB•NUMSF+ConstC) by: (i) as shown by a first fixed point multiplier in
(f) as shown by the Storage element in
In a next clock cycle C+1 of the integrated circuitry's simulated operation, then-current logic states of the outputs (e.g., then-current logic states of the outputs 208) serve as then-current logic states of other ports to one or more of the other numerous macros. The Change Detect logic, Clock State Detect logic, MPCB and Storage element operate in response to logic states of the clock input Clk, although for clarity
(a) per port, performs a respective exclusive-OR (“XOR”) operation, in response to: (i) such port's then-current logic state; and (ii) such port's logic state in a previous clock cycle C-1 of the integrated circuitry's simulated operation, as stored by such port's respective Previous State Latch;
(b) as shown by such port's respective Previous State Latch in
(c) as shown by a fixed point adder in
In such clock cycle C, the fixed point adder's resulting sum is NUMSF for the macro, as shown in
(a) per clock driver, as shown by such clock driver's respective multiplexer in
(b) as shown by a fixed point adder in
In such clock cycle C, the fixed point adder's resulting sum is NUMCLK for the macro, as shown in
The special purpose emulator hardware 116 implements the interconnection structure of
In a cycle 0 of Calc Clk within clock cycle C, a counter of the Interconnect Block0 has a value of 0, which specifies that the special purpose emulator hardware 116 (in response to its execution of the second software):
(a) as shown by a switch of the Interconnect Block0, multiplexes: (i) the respective NUMSF of the Macro00 to the MPCB of the Interconnect Block0; (ii) the respective NUMCLK of the Macro00 to the MPCB of the Interconnect Block0; and (iii) the respective ConstA, ConstB and ConstC of the Macro00 to the MPCB of the Interconnect Block0; and
(b) as shown by a Storage element of the Interconnect Block0, multiplexes: (i) the respective stored total estimated power consumption for the Macro00 to the MPCB of the Interconnect Block0; and (ii) the second fixed point adder's resulting sum (discussed hereinabove in connection with
Similarly, in a cycle q of Calc Clk (where q is a macro's respective number, ranging from 0 through a within the Interconnect Block0) within clock cycle C, a counter of the Interconnect Block0 has a value of q, which specifies that the special purpose emulator hardware 116 (in response to its execution of the second software):
(a) as shown by a switch of the Interconnect Block0, multiplexes: (i) the respective NUMSF of the Macro0q to the MPCB of the Interconnect Block0; (ii) the respective NUMCLK of the Macro0q to the MPCB of the Interconnect Block0; and (iii) the respective ConstA, ConstB and ConstC of the Macro0q to the MPCB of the Interconnect Block0; and
(b) as shown by a Storage element of the Interconnect Block0, multiplexes: (i) the respective stored total estimated power consumption for the Macro0q to the MPCB of the Interconnect Block0; and (ii) the second fixed point adder's resulting sum (discussed hereinabove in connection with
After a cycle a of Calc Clk (for the Interconnect Block0) within clock cycle C, the counter operation repeats, starting with a cycle 0 of Calc Clk within a next clock cycle C+1.
As shown in the example of
For example, even if the respective MPCB of the Interconnect Block1 is dedicated to a+1 macros, the respective MPCB of the Interconnect Block1 is dedicated to b+1 macros, where a and b are potentially different numbers. In such a situation: (a) a respective clock input Calc Clk (for the Interconnect Block1) has a signal whose frequency is b+1 times greater than a frequency of Clk's signal; (b) accordingly, per clock cycle C (as indicated by logic states of the clock input Clk) of the integrated circuitry's simulated operation, Calc Clk (for the Interconnect Block1) has b+1 cycles; and (c) after a cycle b of Calc Clk (for the Interconnect Block1) within clock cycle C, the counter operation repeats, starting with a cycle 0 of Calc Clk within a next clock cycle C+1. The clock input Clk is distinguished from Calc Clk, in that the frequency and logic states of the clock input Clk are the same for all of the interconnect blocks in
In one example, the special purpose emulator hardware 116 was implemented as a single ET4×4 accelerator board with a VHDL description of approximately 5,000 MPCBs that were respectively dedicated to approximately 5,000 macros. If such a scale is maintained for the special purpose emulator hardware 116 to estimate power consumption of a microprocessor that is described by approximately 32,000 macros, the special purpose emulator hardware 116 would be implemented as: (a) seven ET4×4 accelerator boards, without the interconnection blocks of
Referring again to
Within such functional descriptive material, data structures define structural and functional interrelationships between such data structures and the computer-readable medium 114 (and other aspects of the computer 104 and the IHS 100). Such interrelationships permit the data structures' functionality to be realized. Also, within such functional descriptive material, software (also referred to as computer programs or applications) defines structural and functional interrelationships between such software and the computer-readable medium 114 (and other aspects of the computer 104 and the IHS 100). Such interrelationships permit the software's functionality to be realized.
For example, the computer 104 reads (or accesses, or copies) such functional descriptive material from the computer-readable medium 114 into the memory device of the computer 104, and the computer 104 performs its operations (as described elsewhere herein) in response to such material, which is stored in the memory device of the computer 104. More particularly, the computer 104 performs the operation of processing software (which is stored, encoded, recorded or embodied on a computer-readable medium) for causing the computer 104 to perform additional operations (as described elsewhere herein). Accordingly, such functional descriptive material exhibits a functional interrelationship with the way in which the computer 104 executes its processes and performs its operations.
Further, the computer-readable media of the IHS 100 are apparatus from which the software is accessible by the computer 104, and the software is processable by the computer 104 for causing the computer 104 to perform such additional operations. In addition to reading such functional descriptive material from the computer-readable medium 114, the computer 104 is capable of reading such functional descriptive material from (or through) a network, which is also a computer-readable medium (or apparatus) of the IHS 100. Moreover, the memory device of the computer 104 is itself a computer-readable medium (or apparatus) of the IHS 100.
Design process 810 preferably employs and incorporates hardware and/or software modules for synthesizing, translating, or otherwise processing a design/simulation functional equivalent of the components, circuits, devices, or logic structures shown in
In one example, design process 810 includes hardware and software modules for processing a variety of input data structure types, including netlist 880. In one example, such data structure types reside within library elements 830 and include a set of commonly used elements, circuits, and devices, including models, layouts, and symbolic representations, for a given manufacturing technology (e.g., different technology nodes, 32 nm, 45 nm, 90 nm, and the like). In another example, the data structure types further include design specifications 840, characterization data 850, verification data 860, design rules 870, and test data files 885, which are suitable for including input test patterns, output test results, and other testing information. In another example, design process 810 further includes modules for performing standard circuit design processes such as timing analysis, verification, design rule checking, place and route operations, and the like.
Design process 810 employs and incorporates well-known logic and physical design tools, such as HDL compilers and simulation model build tools to process design structure 820, together with some or all of the depicted supporting data structures to generate a second design structure 890. Similar to design structure 820, design structure 890 preferably includes one or more files, data structures, or other computer-encoded data or instructions that reside on transmission or data storage media and that when processed by an ECAD system, generate a logically or otherwise functionally equivalent form of one or more of the embodiments shown in
In one example, design structure 890 employs a data format for the exchange of layout data of integrated circuits and/or symbolic data format (e.g. information stored in a GDSII (“GDS2”), GL1, OASIS, map files, or any other suitable format for storing such design data structures). In a further example, design structure 890 includes information, such as symbolic data, map files, test data files, design content files, manufacturing data, layout parameters, wires, levels of metal, vias, shapes, data for routing through the manufacturing line, and any other data processed by semiconductor manufacturing tools to fabricate embodiments as shown in
Although illustrative embodiments have been shown and described, a wide range of modification, change and substitution is contemplated in the foregoing disclosure and, in some instances, some features of the embodiments may be employed without a corresponding use of other features. Accordingly, it is appropriate that the appended claims be construed broadly and in a manner consistent with the scope of the embodiments disclosed herein.
Swanson, Todd, Chaudhry, Rajat, Gloekler, Tilman, Stasiak, Daniel L.
Patent | Priority | Assignee | Title |
8370780, | Sep 08 2006 | GLOBALFOUNDRIES Inc | Method and system for estimating power consumption of integrated circuitry |
8452581, | May 05 2009 | Oracle America, Inc | Technique using power macromodeling for register transfer level power estimation |
Patent | Priority | Assignee | Title |
5625803, | Dec 14 1994 | VLSI Technology, Inc | Slew rate based power usage simulation and method |
6125334, | May 02 1997 | Texas Instruments Incorporated | Module-configurable full-chip power profiler |
6397170, | Aug 18 1998 | GLOBALFOUNDRIES Inc | Simulation based power optimization |
6598209, | Feb 28 2001 | ANSYS, Inc | RTL power analysis using gate-level cell power models |
6782499, | Sep 25 1998 | Renesas Electronics Corporation | Semiconductor integrated circuit device, method of manufacturing the device, and computer readable medium |
6810482, | Jan 26 2001 | Synopsys, Inc. | System and method for estimating power consumption of a circuit thourgh the use of an energy macro table |
7093143, | May 10 2002 | Renesas Electronics Corporation; NEC Electronics Corporation | Semiconductor integrated circuit |
7134100, | Jul 29 2002 | NEC Corporation | Method and apparatus for efficient register-transfer level (RTL) power estimation |
7141883, | Oct 15 2002 | SILICON LABORATORIES, INC | Integrated circuit package configuration incorporating shielded circuit element structure |
7161828, | Jul 14 2003 | Intel Corporation | Asynchronous static random access memory |
20040019859, | |||
20040236559, | |||
20050050494, | |||
20050204316, | |||
20050278664, | |||
20060071691, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
May 21 2008 | GLOEKLER, TILMAN | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 021345 | /0872 | |
May 29 2008 | SWANSON, TODD | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 021345 | /0872 | |
May 30 2008 | International Business Machines Corporation | (assignment on the face of the patent) | / | |||
Jun 24 2008 | STASIAK, DANIEL L | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 021345 | /0872 | |
Jul 24 2008 | CHAUDHRY, RAJAT | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 021345 | /0872 | |
Jun 29 2015 | International Business Machines Corporation | GLOBALFOUNDRIES U S 2 LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 036550 | /0001 | |
Sep 10 2015 | GLOBALFOUNDRIES U S INC | GLOBALFOUNDRIES Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 036779 | /0001 | |
Sep 10 2015 | GLOBALFOUNDRIES U S 2 LLC | GLOBALFOUNDRIES Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 036779 | /0001 | |
Nov 27 2018 | GLOBALFOUNDRIES Inc | WILMINGTON TRUST, NATIONAL ASSOCIATION | SECURITY AGREEMENT | 049490 | /0001 | |
Nov 17 2020 | WILMINGTON TRUST, NATIONAL ASSOCIATION | GLOBALFOUNDRIES Inc | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 054636 | /0001 | |
Nov 17 2020 | WILMINGTON TRUST, NATIONAL ASSOCIATION | GLOBALFOUNDRIES U S INC | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 056987 | /0001 |
Date | Maintenance Fee Events |
Oct 31 2014 | REM: Maintenance Fee Reminder Mailed. |
Feb 26 2015 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Feb 26 2015 | M1554: Surcharge for Late Payment, Large Entity. |
Nov 12 2018 | REM: Maintenance Fee Reminder Mailed. |
Apr 29 2019 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Mar 22 2014 | 4 years fee payment window open |
Sep 22 2014 | 6 months grace period start (w surcharge) |
Mar 22 2015 | patent expiry (for year 4) |
Mar 22 2017 | 2 years to revive unintentionally abandoned end. (for year 4) |
Mar 22 2018 | 8 years fee payment window open |
Sep 22 2018 | 6 months grace period start (w surcharge) |
Mar 22 2019 | patent expiry (for year 8) |
Mar 22 2021 | 2 years to revive unintentionally abandoned end. (for year 8) |
Mar 22 2022 | 12 years fee payment window open |
Sep 22 2022 | 6 months grace period start (w surcharge) |
Mar 22 2023 | patent expiry (for year 12) |
Mar 22 2025 | 2 years to revive unintentionally abandoned end. (for year 12) |