Guide Power
Guide Power
Document Contents
Introduction General Steps Static Power Dynamic and Average Power Peak Power Energy Measuring Power using Voltage and Current
Introduction
This document describes how to use the spectre simulator and Cadence tools to measure various power metrics for a circuit design. It is a reference, not a tutorial; therefore, you can apply these steps to any circuit (schematic or extracted layout) that you wish.
General Steps
These are steps common to all the types of power measurements. Before following any of these steps, find the section corresponding type of power measurement you want to make, and refer to these steps when instructed. 1. In the Analog Design Environment (ADE), set up your simulation stimulus file location, and other relevant simulation parameters that must be assigned. This includes setting up simulation for an extracted cell if necessary, as described in Tutorial C. 2. In the ADE, Select Outputs Save All. A Save Options window will appear. See Figure 1.
3. In the Save Options window, For Select power signals to output (pwr), click on the appropriate checkboxes, depending on what power signals are of interest. Click OK to apply the changes. a. Total will save the waveform of the total power consumption of the design. b. Devices will save the waveforms of power for each component (e.g. transistor, resistor, etc.) c. Subckts will save the waveforms of power for each instance and level in a hierarchical design d. All will save all available power waveforms. This option uses the most memory and may slow simulation; however, for small circuits, it is not noticeable. 4. Run the simulation. If you have selected an output to be plotted, the waveform window will appear. If you dont wish to plot any outputs, you can open the Waveform Window from ADE by selecting Tools Waveform 5. In the Waveform Window, select Tools Results Browser A Browse Project Hierarchy window will appear (see Figure 2). Click OK to accept the default path (or enter the path of previously-saved results). The Results Browser should now appear.
Figure 2: The Browse Project Hierarchy window, left to default 6. At the very left side of the Results Browser, click on the name of the cell view from which you are simulating. Note that multiple cell views may appear depending on past simulations you have conducted on the cell. 7. Click PSF. In the next level of the tree that appears are the runs of the simulation. If you have done parametric sweep, there would be a single run corresponding to each value of the swept variable. If you have done a single transient simulation, there is only one run, which is selected for you automatically. 8. Assuming you are doing transient analysis, click tran-tran. See Figure 2.
Static Power
Case 1: You are simulating from a transistor-level schematic or you are simulating from a general schematic and want to know the static power consumption of the whole design. 1. Define a stimulus file where all inputs are DC voltage sources. This ensures that no switching activity is happening in the circuit. 2. Follow General Steps for power measurement. 3. In the Results Browser, there should be a yellow box named pwr. If you want to plot it, right-click on this box. This will display the instantaneous power waveform for your circuit in the Waveform Window. 4. Since there was no switching activity in the circuit, the power waveform should be a straight line. Place your mouse cursor on the line and read the y value. This is the static power consumption of your circuit. See Figure 3.
Figure 4: Waveform window after plotting the static power (inverter) Case 2: You are simulating from schematic that uses instances of other cells and you want to know the static power consumption of those cells. 1. Define a stimulus file that ensures that no switching activity is happening in the circuit. Depending on the circuit, you may need to disable clock signals or any part of the circuit that generates switching automatically. 2. Follow General Steps for power measurement. Make sure that you select either subckts or all when selecting power signals to save. 3. In the Results Browser, there should now be a branch corresponding to each instance in your top-level schematic. If you do not name the instances manually, then Cadence gives the instances names such as I10. If you have left the automatic instance label in the symbol for each instanced cell (i.e. [@instanceName]), then you can easily identify its red instance number right next to the instance symbol in the schematic. Find the name of the instance that you want to measure power for, or that contains the instance you want to measure power for, and left click on its branch name in the Results Browser. This should expand the tree by one level.
4. If you are at the desired level, right click on the yellow pwr box to get the power consumption of that instance and all of its constituent instances. You can descend further into the hierarchy by recursively following step 3. 5. This will display the instantaneous power waveform for your circuit in the Waveform Window. Place your mouse cursor on the line and read the y value to determine the static power consumption.
dynamic power is approximately equal to average power, and the accuracy of static power measurement has little significance on dynamic power measurement.
Figure 5: The Calculator Window, after selecting pwr from Results Browser Case 2: You are simulating from schematic that uses instances of other cells and you want to know the dynamic or average power consumption of those cells. 1. Refer to steps 1-3 of Dynamic and Average Power, case 1 2. Refer to step 3 of Static Power measurement, case 2, in order to find the appropriate power signal in the results tree. 3. Refer to steps 4-7 of Dynamic and Average Power, case 1.
Peak Power
1. Define an appropriate stimulus file and simulation length. Since peak power is an instantaneous value, the length of the simulation and the frequency at which inputs switch (assuming the circuit can still function normally) are not critical to this measurement for CMOS circuits. 2. Follow General Steps for power measurement. 3. Select the appropriate power signal from the results browser and open it into the Calculator by left clicking on it. 4. Click and hold the Special Functions button on the Calculator. A menu of functions should appear. Click on ymax. 5. Click the check box next to Evaluate Buffer. This calculates the most positive value of the selected waveform; in this case, peak power. 6. Alternatively, you may also plot the power waveform, find the point where it is at its greatest value, and read the instantaneous power at that point.
Energy Consumption
1. Define an appropriate stimulus file and simulation length. Since energy consumption is an integral of a power waveform that is generally positive in magnitude, energy gradually increases with an increasing number of simulated switching events.
2. Follow General Steps for power measurement. 3. Select the appropriate power signal of instance you wish to measure energy consumption for, from the results browser and open it into the Calculator by left clicking on it. 4. If you want to determine the total energy consumed over the entire simulation: a. Click and hold the Special Functions button on the Calculator. A menu of functions should appear. Click on integ. b. Click the check box next to Evaluate Buffer. This calculates the definite integral of the selected waveform for its entire length; in this case, its the energy consumed over the entire simulation. 5. If you want to determine the amount of energy consumed within some interval of time: a. Click and hold the Special Functions button on the Calculator. A menu of functions should appear. Click on iinteg. b. Click the plot button on the Calculator. This plots the instantaneous (indefinite) integral of the selected waveform for its entire length; in this case, its the total energy consumed at each instant in time over the entire simulation. Note that no units are placed on the Yaxis; you can assume that the units are given in Joules (J). See Figure 6. c. Use markers A and B. Place one marker at the beginning of the interval of interest on the energy waveform, and one at the end. The difference in Y value corresponds to the energy consumed during the interval. d. This method can also be used to measure the energy consumption from time 0 to time t simply by reading the Y-value with your cursor placed at time t. This value at the very end of the waveform should be equal to the definite integral of the waveform over the simulation length, the same as measured in step 4.
Figure 7: Simulator Options Window, after modifying gmin 4. Follow General Steps 4-8. 5. In the Results Browser, there should be a yellow box named vdd:p. This corresponds to the current supplied from the positive terminal of the voltage source named vdd. If you want to plot it, right-click on this box. This will display the instantaneous current waveform drawn by the circuit in the Waveform Window. 6. Spectre uses the convention that currents leaving a node have a negative magnitude, and currents entering are positive. Therefore, most of the data in the supply current waveform is reported to be negative. If you want to invert the waveform, you can do the following: a. Open a Calculator Window by selecting Tools Calculator from the Waveform Window.
b. Click the wave button on the Calculator. Select the supply current waveform from the Waveform Window its name should then appear in the Calculator display. Press the enter button on the Calculator. This enters the waveform into the stack (which can be displayed by clicking on the checkbox next to Display Stack). c. Press the 1 (one) button on the calculator. Press +/- to change it to negative 1. d. Press the * (multiply) button on the calculator. The text of the waveform followed by *1 should now appear in the display. e. Click the plot button. The inverted waveform should appear on the plot. f. You can delete the old supply current by first hitting Esc (deactivate waveform selection), clicking on the waveform, and pressing Del. 7. At this point, the current needs to be multiplied by Vdd. a. If Vdd is fixed (not time-varying), this is a simple multiplication by a constant. Follow step 6, and enter the voltage value of Vdd instead of -1. To save a step, you could combine this step and the last step by multiplying by negative voltage value of Vdd. b. If Vdd is time-varying: i. Make sure the Calculator is open. ii. Enter the waveform for vdd waveform in the Calculator display. This can be done by first left clicking the yellow box named vdd! in the Results Browser. Alternatively, you can plot it by right clicking the box, pressing wave on the Calculator and clicking on its waveform. iii. Enter the waveform (either the original or the inverted) for the supply current in the Calculator display. This can be done by pressing wave on the Calculator and clicking on its waveform. iv. Press the * (multiply) button on the Calculator. The display should now show that two waveforms are being multiplied. Press the plot button to plot the result in the Waveform Window. 8. You should now have the instantaneous power waveform for the simulation. If you have not multiplied the current by -1, then the waveform is inverted. While the waveform will not exactly match the pwr waveform as described in previous sections, they should be fairly close, especially for small values of gmin. 9. At this point, you may perform average, peak, or integral functions on it by using the various Calculator functions. Notes It is possible for the power consumption to be reported negative at brief intervals. This happens most frequently near input switching boundaries because of gate-to-drain capacitive coupling and/or inductive effects that can raise node voltages past Vdd (or below GND), and force current back into the supply (or draw from GND). However, the net power for a circuit must always be non-negative, and it is erroneous to assume it is generating power during these intervals. It is possible for current to be drawn from other sources than Vdd, due to such effects as gate or substrate leakage. Typically, their magnitudes are insignificant compared to sub-threshold leakage and have little effect on overall static power; however, their contribution becomes more significant as process sizes decrease. It is possible to measure the current and power due to these sources in Cadence through spectre simulations and observing specific device currents; however, the task is beyond the scope of this document.