US6807660B1 - Vectorless instantaneous current estimation - Google Patents

Vectorless instantaneous current estimation Download PDF

Info

Publication number
US6807660B1
US6807660B1 US10/262,914 US26291402A US6807660B1 US 6807660 B1 US6807660 B1 US 6807660B1 US 26291402 A US26291402 A US 26291402A US 6807660 B1 US6807660 B1 US 6807660B1
Authority
US
United States
Prior art keywords
current
switching events
circuit
events
clock
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime, expires
Application number
US10/262,914
Inventor
Gerald L. Frenkil
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ansys Inc
Original Assignee
Sequence Design Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sequence Design Inc filed Critical Sequence Design Inc
Priority to US10/262,914 priority Critical patent/US6807660B1/en
Assigned to SEQUENCE DESIGN, INC. reassignment SEQUENCE DESIGN, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: FRENKIL, GERALD L.
Priority to US10/926,660 priority patent/US7185300B2/en
Application granted granted Critical
Publication of US6807660B1 publication Critical patent/US6807660B1/en
Assigned to SILICON VALLEY BANK reassignment SILICON VALLEY BANK SECURITY AGREEMENT Assignors: SEQUENCE DESIGN, INC.
Assigned to FOCUS VENTURES II, LP reassignment FOCUS VENTURES II, LP INTELLECTUAL PROPERTY SECURITY AGREEMENT Assignors: SEQUENCE DESIGN, INC.
Assigned to FOCUS VENTURES II, LP reassignment FOCUS VENTURES II, LP SECURITY AGREEMENT Assignors: SEQUENCE DESIGN, INC.
Assigned to SEQUENCE DESIGN, INC. reassignment SEQUENCE DESIGN, INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: FOCUS VENTURES II, LP
Assigned to SEQUENCE DESIGN, INC. reassignment SEQUENCE DESIGN, INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: FOCUS VENTURES II, LP
Assigned to SEQUENCE DESIGN, INC. reassignment SEQUENCE DESIGN, INC. RELEASE Assignors: SILICON VALLEY BANK
Assigned to APACHE DESIGN SOLUTIONS, INC. reassignment APACHE DESIGN SOLUTIONS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SEQUENCE DESIGN, INC.
Assigned to APACHE DESIGN, INC. reassignment APACHE DESIGN, INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: APACHE DESIGN SOLUTIONS, INC.
Assigned to ANSYS, INC. reassignment ANSYS, INC. MERGER (SEE DOCUMENT FOR DETAILS). Assignors: APACHE DESIGN, INC.
Adjusted expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation

Definitions

  • the present invention relates to electronic design automation (EDA) for integrated circuits.
  • EDA electronic design automation
  • the present invention relates to an EDA tool for estimation of currents or voltages based on a circuit description of a given level of abstraction.
  • Average Current typically used to determine operating temperatures and battery life; average current is typically measured over a relatively long time period, such as over tens, hundreds or thousands of clock cycles.
  • RMS Current typically used for estimating long term reliability effects (e.g., electromigration); RMS current, like average current, is typically measured over a relatively long time period, such as tens, hundreds or thousands of clock cycles.
  • Peak Sustained Current measures the maximum average current sustained over a period of time (e.g., hundreds or thousands of clock cycles).
  • Instantaneous Current typically used to determine the maximum voltage excursions on power supply lines; instantaneous current refers to a current drawn over a short time interval (e.g., a time interval that is equal to or less than the smallest signal transition duration).
  • the abstraction levels at which these calculations are performed are transistor level, logic or gate level, and register-transfer level (RTL).
  • the calculation methods are dynamic and vectorless. Dynamic methods utilize, for example, time- or cycle-based simulators to generate representative activities in the circuit, which can then be used for power or current calculations.
  • vectorless methods also known as static methods
  • the current measurement types include average current, peak sustained current, and instantaneous current, which are already briefly described above.
  • both static and dynamic methods are applicable at the logic or gate level, and all current measurement types can be estimated at the gate level.
  • all current measurement types can be estimated at the gate level.
  • not all current measurement types can be estimated in practice using static and dynamic methods. While the circuit at the gate level contains less circuit elements than the corresponding circuit at the transistor level, the computational complexity still renders dynamic methods impractical. Similarly, vectorless methods at the gate level also suffer the same deficiencies as vectorless methods at the transistor level.
  • worst-case instantaneous power or, more specifically, instantaneous current flow
  • most power tools can calculate only an average power consumption or an average current flow.
  • An instantaneous current is determined from circuit elements that switch at the instant the current is measured, while average power (hence, average current) is determined from all elements that switch in aggregate over some period of time.
  • average current aggregates over a lengthy period of time (e.g., over a few milliseconds to a few seconds).
  • a worst-case instantaneous current for a given simulation or stimulus is determined by taking the maximum current flowing at any point in time over the length of a particular simulation vector set.
  • the term “worst case” refers to the worst operating condition for the integrated circuit that can arise. For example, a worst-case peak instantaneous current for a given circuit may be 1 ampere. Often, however, this worst-case condition may not be known until after the integrated circuit is fabricated. Thus, an ability to estimate this peak instantaneous value prior to committing the integrated circuit to silicon is of great importance. However, different estimation methods can yield different values for the estimated worse case. One technique may estimate the worst case current to be 1.2 amperes while another method estimates it to be 3 amperes. Clearly, even though both estimates are “worst-case” estimates, there are differences in accuracy and efficacy.
  • the present invention provides an integrated circuit (IC) power analysis tool, which receives an integrated circuit represented at a given level of abstraction, such as the register-transfer level (RTL), the gate level or the transistor level, to accurately calculate the worst-case instantaneous current waveform of an IC using a vectorless technique.
  • IC integrated circuit
  • RTL register-transfer level
  • the present invention allows a current waveform to be accurately estimated (relative to an actual worst-case current) without requiring an extensive dynamic simulation of the circuit.
  • the shape of the current waveform, a peak value of the current waveform, and a maximum value of the derivative of the current waveform with respect to time can be estimated.
  • a method according to the present invention takes advantage of the facts: (a) a clock edge generates significant signal activity, and hence a large number of current-consuming events, and (b) the transitions of clock signals are necessarily highly correlated to worst-case current consumption.
  • a device under test is pre-conditioned to a state such that when a clock signal transitions, the resulting switching in the combinational logic produce a worst-case current waveform for the device.
  • a schedule of the state changes resulting from the clock edge is estimated.
  • the schedule represents a sequence of current-consuming events—each cell in the device has associated with it a start time, an end time, and a current waveform.
  • the start and end time times represent when the current-consuming event begins and ends, and the estimated current waveform between these times represents the estimated current for the cell during the current-consuming event.
  • the current waveform estimate is based on information from a static timing analysis (STA) and each individual cell's timing and power models.
  • the STA timing information indicates when nodes in each cell would switch.
  • the power model defines power events during which nodes in the cell would switch, and the current associated with each event.
  • a worst-case peak of the current waveform is determined primarily from the activity in the clock network and the activity in all the storage elements.
  • the present invention provides a much higher accuracy over methods in the prior art.
  • a method of the present invention reliably estimates worst-case instantaneous current to correctly validate power grids even in circuits with large peak currents and small noise margins typical of high power consumption, low supply voltage integrated circuits.
  • the worst-case instantaneous current estimate is accomplished without using simulation at the gate level as a source of activity data.
  • FIG. 1 shows selected current waveforms derived from a typical operation of an integrated circuit.
  • FIG. 2 illustrates generally a method for vectorless calculation of instantaneous currents, in accordance with one embodiment of the present invention.
  • FIG. 3 illustrates observations that allow vectorless worst-case instantaneous current estimation to be performed, in accordance with one embodiment of the present invention.
  • FIG. 4 illustrates circuit 400 having registers 401 and 402 that cannot switch in the same direction in response to a clock transition.
  • FIG. 5 shows circuit 500 , which is another example in which a register can be reclassified.
  • FIG. 6 shows method 600 (presented in pseudo-code form) for reclassifying registers, in accordance with one embodiment of the present invention.
  • FIG. 7 shows method 700 for reclassifying registers based, for example, on circuit topology and identified or imposed circuit states.
  • the present invention provides a vectorless instantaneous current estimation capability at the gate level or at the transistor level that does not require the design to be simulated, and calculates an actual worst-case or reasonable worst-case value for instantaneous current by determining each register's response to a clock edge under worst-case switching conditions.
  • FIG. 1 shows selected current waveforms derived from a typical operation of an integrated circuit.
  • FIG. 1 shows instantaneous current waveform 101 occurring over 3 cycles or periods of clock signal 104 .
  • Waveforms 103 and 104 are, respectively, the per-cycle average current and the average current over the three periods of clock signal 104 derived from instantaneous current waveform 101 .
  • FIG. 2 illustrates generally a method for vectorless calculation of instantaneous currents, in accordance with the present invention.
  • step 201 receives an input logic circuit and performs register classification steps 201 a and logic classification step 201 b .
  • Register classification step 201 a classifies each register according to the register's response to a rising or falling edge of an associated “root” clock signal.
  • Logic classification step 201 b classifies each combinatorial logic cell according to the logic cell's response to a logic transition on one or more of its input terminals.
  • Event scheduling step 202 then schedules each logic cell a time point (“arrival time”), relative to a relevant edge of its associated root clock signal, at which the logic cell is expected to have a signal transition.
  • the total schedule (“event log”) is then used, at current waveform computation step 203 , to aggregate the currents of all registers and logic cells associated with each root clock signal to provide a current waveform representing the instantaneous “peak” current for the root clock domain.
  • the instantaneous peak current represents a reasonable worst-case current waveform.
  • current peak alignment step 204 the instantaneous peak currents from each clock domain are aligned with each other so as to create a multi-clock domain instantaneous peak current. This technique is particularly advantageous when some or all of the clock domains are asynchronous to each other.
  • Event scheduling step 202 and current waveform computation step 203 can be provided using conventional static timing analysis (STA) techniques.
  • Current peak alignment step 204 shifts the time of all events for all secondary clocks such that their instantaneous peak currents align with the instantaneous peak current of the primary clock.
  • a primary clock is a clock signal selected by the user as a time domain reference for all other clocks, which are referred to as secondary clocks.
  • the shifting in time of the events can be implemented by changing the initial arrival time of each event at a root clock node.
  • a root clock node is a point in the circuit at which the root clock signal is inserted into the circuit. The arrival times of all other downstream events are relative to a root clock node transition.
  • logic circuit 300 associated with the clock domain of the root clock signal at terminal 301 is “levelized” for illustrative purpose.
  • the data output values of registers 303 are input to combinational logic circuit 304 .
  • the probability of switching for elements in the circuit level and the expected current in the current level are plotted in graphs 320 and 330 , respectively.
  • a clock network such as the clock network of buffers 302
  • a simulation such as an event driven simulation, of gate or transistor level activity.
  • Such analysis is possible because no state information is typically necessary to propagate signal transitions through buffers and inverters. (One possible exception is gated clock signals, which require some state information to properly analyze).
  • a heuristic can be used that assumes initially that each registered element changes state at a transition of the clock signal it receives. Based on this initial assumption, the list of registers that can change state together is culled using one or more classification algorithms that determine a register's response to a particular edge of an associated clock signal. As explained in further detail below, these classification algorithms search for logical conditions and topologies that would prevent certain registers from switching at the same time as others.
  • the probability of a node following a registered element switching is less than 1.
  • the amount of potentially switching current is high at logic cells receiving data values from registers directly from registers 303 and is likely to decrease at successive levels of logic cells. This high confidence in predicting switching in logic cells that contain the largest amount of potentially switchable current enables us to confidently predict the peak currents resulting from a clock event.
  • each register is associated with parameters that specify (1) its clock domain, (2) its clock sense (i.e., a rising edge, a falling edge, or indeterminate) with respect to the root clock, (3) its data sense (i.e., true, false, or indeterminate) with respect to an upstream register, and (4) its enable sense (true, false, or unknown), when a data enable signal is received.
  • Each register may be classified according to how their data input and clock input terminals are configured. In one embodiment of the present invention, each register is classified according to one of the following expected responses:
  • registers are classified as having their output values change 0 ⁇ 1 when a rising clock edge is received.
  • a register is reclassified if it is determined that its assigned response would not occur. For example, a register is reclassified when there is no logic inversion in the data path from the registers immediately upstream. The absence of a logic inversion ensures that two “back-to-back”, or cascaded, registers cannot switch simultaneously in the same direction.
  • FIG. 4 illustrates such a configuration in circuit 400 . Consequently, the downstream register is reclassified to change output state from 1 ⁇ 0 at the rising clock edge. In registers with both inverting and non-inverting paths feeding their D inputs, no reclassification due to logic inversion considerations is performed. An example of such a configuration is shown in FIG. 4 .
  • Circuit 500 of FIG. 5 illustrates another example in which a register can be reclassified.
  • register 501 receives at its D input terminal an output value of multiplexor 502 , thus forming a recirculating data path. Whether or not register 501 changes state in this configuration in response to a clock signal transition depends on the logic value at multiplexor 502 's select line, which can be determined by propagating forward an initial state of each upstream register's output value through the intervening combinatorial logic circuit. If register 501 is found to be inhibited from changing states due to the recirculating data, register 501 is reclassified to have the response “clock rises (or falls), no output change.”
  • a register can be reclassified if the clock path to the register's clock input includes a gating element (i.e., the register is clocked by a gated clock signal). If the register is clocked by a gated clock signal, the state of the gating element (enabled or disabled) can be determined by forward propagating the initial state of the output value at each register upstream to the gating element, as described above with respect to multiplexors.
  • the test to determine whether or not the register should be reclassified can be complex, as conditions may exist in which all gating elements are enabled. Such a condition can be identified either automatically or by the user. In one embodiment, the default condition assumes all clock gating elements to be enabled.
  • FIG. 6 shows method 600 (presented in pseudo-code form) for reclassifying registers, in accordance with the present invention.
  • method 600 is iterated for each clock domain and each clock edge transition (i.e., 0 ⁇ 1 and 1 ⁇ 0 transitions).
  • register reclassification begins from a reclassification root point.
  • two reclassification phases 602 and 603 are shown, although any number of phases can be provided within the scope of the present invention.
  • reclassification phase 602 sets the root points to be the lowest level registers in a levelized netlist. From each root point, reclassification traverses forward through the netlist until all registers are considered.
  • Reclassification phase 601 considers the maximum instantaneous current of the circuit as a whole.
  • Reclassification phase 603 traverses over the netlist again, using a different, physically oriented reclassification root point.
  • Reclassification phase 603 allows maximum instantaneous currents to be calculated subsequently for a group of physically related logic cells, such as logic cells on a given row or in a given module.
  • the registers on a given row of cells are used as the starting points for reclassification, rather than the lowest level registers, as used in reclassification phase 602 .
  • all downstream registers to the registers at the root points are reclassified, but not registers upstream to the root points.
  • Reclassification phase 603 is repeated once for each row or module until the entire netlist is traversed.
  • FIG. 7 shows such a method 700 , also presented in pseudo-code form. Concurrently, combinatorial logic elements are classified, based on the state of their input values, which are driven by the register output values determined from the previous steps.
  • Reclassification phase 603 enables worst-case instantaneous currents to be estimated at different levels of granularity (i.e., entire design, single module, or single row) within the context of the entire design. This granularity level can be specified by default (e.g., per row or per module or per power/ground segment), or by the user.
  • Genetic algorithms can be used to implement method 600 .
  • a user interface allows a user to specify the states of internal, input and output control signals in an expected worst-case condition for a circuit to be analyzed.
  • Input and output control signals include reset and JTAG control signals, for example.
  • JTAG which stands for “Joint Test Action Group”, is the name referred by the industry for the IEEE 1149.1 Standard for Test Access Port and Boundary-Scan Architecture.
  • Examples of internal control signals include register enable signals and clock gating control signals.
  • the user can specify operational values pertaining to each clock signal (e.g., clock period, duty cycle, phase relationship with respect to any other clock signal). The user can also specify the states of selected registers.
  • the states can be specified completely (e.g., as scan test vectors), or incompletely (e.g., specifying only the states of a subset of the full set of registers in the design). In this embodiment, if the states are specified incompletely, states that are not specified are derived using a variety of methods, such as those described above, to complete the specification. Alternatively, the user can also specify “exclusion break points” which are directives to the software system specifying portions of the circuit that will not exhibit any switching activity in response to clock signal transitions during the analysis. Thus, these excluded sections of the design are not evaluated for switching.
  • an interface can be provided to other power analysis tools (e.g., power and timing models, expressed in any one of numerous formats known in the art), or to allow the user to initiate the power analysis.
  • placement information can be taken into account in estimating worst-case instantaneous currents.
  • the present embodiment accepts placement information in any one of numerous formats known in the art (e.g., a DEF file).
  • an “event log” of the events that are predicted to occur during a cycle of the clock is provided as output.
  • the event log if multiple clock signals drive the circuit under analysis, the event log is presented relative to the clock signal with the longest period or the clock signal driving the largest capacitive load.
  • the event log lists the instance name, the ALF vector that would be triggered (or the amount of current triggered by that particular ALF vector), and the time at which the trigger would be initiated.
  • ALF Advanced Library Format—vector, which is known to those skilled in the art, expresses dynamic behavior of a logic cell; ALF typically specifies a circuit behavior that can be carried from RTL stage to post-layout stage).
  • This event log can be utilized by other electronic design automation (EDA) tools, such as a waveform displayer to display the current over time, or a voltage-calculating tool to calculate the voltages of each logic cell instance.
  • EDA electronic design automation
  • the event log is determined from a static timing analysis.
  • the states of sequential elements of the circuit are set according to a pre-determined circuit state and switching or power events in combinational logic elements that respond to the sequential logic elements are selected. From the selected switching events, corresponding current or voltage waveforms in the combinational logic elements are calculated.
  • the selected switching events are switching events, for example, within a predetermined percentile (80 percentile) among all possible switching events, or those switching events that result in peak currents or voltages exceeding certain pre-determined values.
  • the selection of switching or power events can be achieved by creating an aggregate current or voltage waveform from all the possible switching events, finding the largest current or voltage spike from the aggregate current waveform, selecting from the switching events those switching events that contribute to the largest current or voltage spike, and ranking the contributing switching events in the order of peak currents or voltages.
  • mutually exclusive events should not be included in the same selection.
  • events that are mutually exclusive with the switching event yielding the largest peak current or voltage are eliminated.
  • the analysis can be repeated for the events yielding the second largest peak current or voltage and, subsequently, for events yielding successively lesser peak currents or voltages, until the entire set of switching events have been considered and culled.
  • a “SPICE deck” that defines one or more current sources for each logic cell instance is provided as output.
  • Multiple current sources are defined for each logic cell connected to more than one power supply voltage source.
  • a SPICE deck is an input file in an industry standard format to the circuit simulator “SPICE”.
  • each current source can be defined using a piece-wise linear (PWL) model to describe the shape, magnitude, and start and stop times of a current waveform for the current source.
  • PWL piece-wise linear
  • the worst-case current waveform for one cycle of the primary clock for each power supply and ground voltage source is generated from the event log and displayed on a graphical display.
  • an ASCII report file listing the worst-case instantaneous peak current value for each power supply and ground reference can be provided.
  • clock skews can be intentionally introduced into the clocking network to minimize the peak of the current waveform. These clock skews reduce the maximum amount of noise (i.e., improves noise margins) and may improve the overall transient performance of the logic cells experiencing the noise spikes.
  • the clock skewing capability of the present invention is particularly useful when incorporated into an EDA tool having knowledge of timing slack in data paths. Such an EDA tool can provide an appropriate amount of clock skew without introducing timing problems.
  • the present invention can be used to determine a worst-case instantaneous voltage drop, based on geographic information (e.g., placement information) and the worst-case instantaneous current, since the voltage drop resulting from a given instantaneous current depends on the locations of the sources of the instantaneous currents.
  • geographic information e.g., placement information
  • physically proximate registers such as registers in a given block, can be used as reclassification root points from which other registers can be reclassified.
  • a dc analysis of the power network is performed, prior to calculating the instantaneous currents.
  • the dc analysis determines the segments of the power network at which the highest effective resistance with respect to the external chip grounds are located. Once these segments have been identified, reclassification for registers in these segments can be carried out using, for example, the reclassification procedure described above with respect to reclassification phase 603 .
  • the present invention can be used also for designs at the RTL, where the RTL models calculate power due to single edge events, to take timing into consideration, and to use an actual synthesized clock tree, instead of the lumped, symbolic approach typical of existing RTL models.
  • Such enhancements can be implemented in, for example, models expressed in the Structural Functional description Language (SFL), which are known to those skilled in the art.
  • SFL Structural Functional description Language

Abstract

A current waveform for an electronic circuit is calculated from a description of the circuit at a given level of abstraction without requiring a detailed simulation. In one embodiment, the waveform is estimated without using test vectors, and uses an analysis time step or “granularity” that is much shorter than a clock cycle. The method is applicable for calculating worst-case instantaneous current.

Description

BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to electronic design automation (EDA) for integrated circuits. In particular, the present invention relates to an EDA tool for estimation of currents or voltages based on a circuit description of a given level of abstraction.
2. Description of the Related Art
Current flow characteristics are important design considerations in an integrated circuit (IC). Thus, the ability to accurately estimate current flow characteristics is very valuable. During the design phase, several current measuring types are typically applied. These measuring types include, for example:
Average Current—typically used to determine operating temperatures and battery life; average current is typically measured over a relatively long time period, such as over tens, hundreds or thousands of clock cycles.
RMS Current—typically used for estimating long term reliability effects (e.g., electromigration); RMS current, like average current, is typically measured over a relatively long time period, such as tens, hundreds or thousands of clock cycles.
Peak Sustained Current—measures the maximum average current sustained over a period of time (e.g., hundreds or thousands of clock cycles).
Instantaneous Current—typically used to determine the maximum voltage excursions on power supply lines; instantaneous current refers to a current drawn over a short time interval (e.g., a time interval that is equal to or less than the smallest signal transition duration).
Worst Case Instantaneous Current—measures the maximum instantaneous current that can flow at any given time.
While numerous methods exist for measuring the current flow characteristics of a fabricated integrated circuit, few predictive methods are available to be used during the design phase. The paucity of predictive methods is partly due to the size of the data set required for accurate calculations.
Existing methods for current calculations can be classified according to design abstraction level, calculation method, and measurement type. The abstraction levels at which these calculations are performed are transistor level, logic or gate level, and register-transfer level (RTL). The calculation methods are dynamic and vectorless. Dynamic methods utilize, for example, time- or cycle-based simulators to generate representative activities in the circuit, which can then be used for power or current calculations. In contrast, vectorless methods (also known as static methods) may utilize, for example, probabilistic methods to calculate expected values of power or current. The current measurement types include average current, peak sustained current, and instantaneous current, which are already briefly described above.
Both static and dynamic methods are applicable at the transistor level, and all current measurement types can be estimated at the transistor level. However, not all current measurement types can be estimated in practice using static and dynamic methods. On one hand, due to the computational complexity resulting from the size of state-of-the-art integrated circuits, dynamic methods have become impractical. On the other hand, existing vectorless methods grossly over-estimate, resulting in unrealistic worst case results. For these and other reasons, transistor level methods are not effectively or efficiently used for estimation on an entire integrated circuit.
As in the transistor level, both static and dynamic methods are applicable at the logic or gate level, and all current measurement types can be estimated at the gate level. At the gate level also, not all current measurement types can be estimated in practice using static and dynamic methods. While the circuit at the gate level contains less circuit elements than the corresponding circuit at the transistor level, the computational complexity still renders dynamic methods impractical. Similarly, vectorless methods at the gate level also suffer the same deficiencies as vectorless methods at the transistor level.
At the RTL, as at the transistor level and the gate level, both static and dynamic techniques are available and all current measurement types can be estimated. At the RTL, in practice, accurate dynamic simulations are possible for estimating some current measurement types (e.g., average current), but not for other current measurement types (e.g., instantaneous current). Vectorless methods at the RTL also suffer the same deficiencies as its counterparts at the transistor and the logic gate levels.
In a power grid analysis of an integrated circuit, an estimation of worst-case instantaneous power (or, more specifically, instantaneous current flow) is desirable. In the prior art, however, most power tools can calculate only an average power consumption or an average current flow. An instantaneous current is determined from circuit elements that switch at the instant the current is measured, while average power (hence, average current) is determined from all elements that switch in aggregate over some period of time. Typically, an average current aggregates over a lengthy period of time (e.g., over a few milliseconds to a few seconds). A worst-case instantaneous current for a given simulation or stimulus, however, is determined by taking the maximum current flowing at any point in time over the length of a particular simulation vector set. The calculation of this value is straightforward (i.e., Idd=Max(Itimestep n) over all timesteps). However, this worst-case instantaneous current is not necessarily the actual worst case because the simulation vector set may not have exercised the worst-case situation.
In integrated circuit design, the term “worst case” refers to the worst operating condition for the integrated circuit that can arise. For example, a worst-case peak instantaneous current for a given circuit may be 1 ampere. Often, however, this worst-case condition may not be known until after the integrated circuit is fabricated. Thus, an ability to estimate this peak instantaneous value prior to committing the integrated circuit to silicon is of great importance. However, different estimation methods can yield different values for the estimated worse case. One technique may estimate the worst case current to be 1.2 amperes while another method estimates it to be 3 amperes. Clearly, even though both estimates are “worst-case” estimates, there are differences in accuracy and efficacy. It would be valuable to be able to classify the 3-ampere estimate as an “Overly Conservative Worst Case” estimate, if the value is so far beyond the actual worst case as to be unrealistic (hence, of little or no value), and to be able to classify the 1.2-ampere estimate as a “Reasonable Worst Case” estimate, if the estimate is a reasonable approximation to the actual worst case.
SUMMARY OF THE INVENTION
The present invention provides an integrated circuit (IC) power analysis tool, which receives an integrated circuit represented at a given level of abstraction, such as the register-transfer level (RTL), the gate level or the transistor level, to accurately calculate the worst-case instantaneous current waveform of an IC using a vectorless technique. The present invention allows a current waveform to be accurately estimated (relative to an actual worst-case current) without requiring an extensive dynamic simulation of the circuit.
In one embodiment, the shape of the current waveform, a peak value of the current waveform, and a maximum value of the derivative of the current waveform with respect to time can be estimated. A method according to the present invention takes advantage of the facts: (a) a clock edge generates significant signal activity, and hence a large number of current-consuming events, and (b) the transitions of clock signals are necessarily highly correlated to worst-case current consumption.
According to one embodiment of the present invention, a device under test (DUT) is pre-conditioned to a state such that when a clock signal transitions, the resulting switching in the combinational logic produce a worst-case current waveform for the device. In that embodiment, a schedule of the state changes resulting from the clock edge is estimated. The schedule represents a sequence of current-consuming events—each cell in the device has associated with it a start time, an end time, and a current waveform. The start and end time times represent when the current-consuming event begins and ends, and the estimated current waveform between these times represents the estimated current for the cell during the current-consuming event. The current waveform estimate is based on information from a static timing analysis (STA) and each individual cell's timing and power models. The STA timing information indicates when nodes in each cell would switch. The power model defines power events during which nodes in the cell would switch, and the current associated with each event.
For instantaneous current calculations, a worst-case peak of the current waveform is determined primarily from the activity in the clock network and the activity in all the storage elements.
The present invention provides a much higher accuracy over methods in the prior art.
A method of the present invention reliably estimates worst-case instantaneous current to correctly validate power grids even in circuits with large peak currents and small noise margins typical of high power consumption, low supply voltage integrated circuits. The worst-case instantaneous current estimate is accomplished without using simulation at the gate level as a source of activity data.
The present invention is better understood upon consideration of the detailed description below and the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows selected current waveforms derived from a typical operation of an integrated circuit.
FIG. 2 illustrates generally a method for vectorless calculation of instantaneous currents, in accordance with one embodiment of the present invention.
FIG. 3 illustrates observations that allow vectorless worst-case instantaneous current estimation to be performed, in accordance with one embodiment of the present invention.
FIG. 4 illustrates circuit 400 having registers 401 and 402 that cannot switch in the same direction in response to a clock transition.
FIG. 5 shows circuit 500, which is another example in which a register can be reclassified.
FIG. 6 shows method 600 (presented in pseudo-code form) for reclassifying registers, in accordance with one embodiment of the present invention.
FIG. 7 shows method 700 for reclassifying registers based, for example, on circuit topology and identified or imposed circuit states.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
The present invention provides a vectorless instantaneous current estimation capability at the gate level or at the transistor level that does not require the design to be simulated, and calculates an actual worst-case or reasonable worst-case value for instantaneous current by determining each register's response to a clock edge under worst-case switching conditions.
FIG. 1 shows selected current waveforms derived from a typical operation of an integrated circuit. FIG. 1 shows instantaneous current waveform 101 occurring over 3 cycles or periods of clock signal 104. Waveforms 103 and 104 are, respectively, the per-cycle average current and the average current over the three periods of clock signal 104 derived from instantaneous current waveform 101.
FIG. 2 illustrates generally a method for vectorless calculation of instantaneous currents, in accordance with the present invention. As shown in FIG. 2, step 201 receives an input logic circuit and performs register classification steps 201 a and logic classification step 201 b. Register classification step 201 a classifies each register according to the register's response to a rising or falling edge of an associated “root” clock signal. Logic classification step 201 b classifies each combinatorial logic cell according to the logic cell's response to a logic transition on one or more of its input terminals. Event scheduling step 202 then schedules each logic cell a time point (“arrival time”), relative to a relevant edge of its associated root clock signal, at which the logic cell is expected to have a signal transition. The total schedule (“event log”) is then used, at current waveform computation step 203, to aggregate the currents of all registers and logic cells associated with each root clock signal to provide a current waveform representing the instantaneous “peak” current for the root clock domain. The instantaneous peak current represents a reasonable worst-case current waveform. Finally, at current peak alignment step 204, the instantaneous peak currents from each clock domain are aligned with each other so as to create a multi-clock domain instantaneous peak current. This technique is particularly advantageous when some or all of the clock domains are asynchronous to each other.
Event scheduling step 202 and current waveform computation step 203 can be provided using conventional static timing analysis (STA) techniques. Current peak alignment step 204 shifts the time of all events for all secondary clocks such that their instantaneous peak currents align with the instantaneous peak current of the primary clock. (A primary clock is a clock signal selected by the user as a time domain reference for all other clocks, which are referred to as secondary clocks). The shifting in time of the events can be implemented by changing the initial arrival time of each event at a root clock node. A root clock node is a point in the circuit at which the root clock signal is inserted into the circuit. The arrival times of all other downstream events are relative to a root clock node transition.
The present invention achieves vectorless worst-case instantaneous current estimation based on the following observations regarding dynamic current flow. These observations are illustrated in conjunction with FIG. 3. In FIG. 3, logic circuit 300 associated with the clock domain of the root clock signal at terminal 301 is “levelized” for illustrative purpose. As is typical of many logic circuits, two or more levels of inverting buffers 302 (“clock tree”) buffer the root clock signal at terminal 301 before the clock signal is distributed to clock registers 303. The data output values of registers 303 are input to combinational logic circuit 304. Corresponding to each circuit level, the probability of switching for elements in the circuit level and the expected current in the current level are plotted in graphs 320 and 330, respectively.
First, it is observed that the highest peak of a current waveform occurs immediately after a clock signal transition. This highest peak results from the near-simultaneous switching of all the buffers in the clock tree (i.e., buffers 302), the local clock buffering within each of register 303, and registers 303 themselves. As shown in FIG. 3, the probability of a node in the clock tree switching is equal to 1. Thus, a clock network, such as the clock network of buffers 302, can be accurately analyzed for power consumption in a vectorless manner (i.e., without a simulation, such as an event driven simulation, of gate or transistor level activity). Such analysis is possible because no state information is typically necessary to propagate signal transitions through buffers and inverters. (One possible exception is gated clock signals, which require some state information to properly analyze).
To achieve the current waveforms for registers, a heuristic can be used that assumes initially that each registered element changes state at a transition of the clock signal it receives. Based on this initial assumption, the list of registers that can change state together is culled using one or more classification algorithms that determine a register's response to a particular edge of an associated clock signal. As explained in further detail below, these classification algorithms search for logical conditions and topologies that would prevent certain registers from switching at the same time as others.
Second, as shown in graph 330 of FIG. 3, it is observed that the probability of a node following a registered element switching is less than 1. In fact, the amount of potentially switching current is high at logic cells receiving data values from registers directly from registers 303 and is likely to decrease at successive levels of logic cells. This high confidence in predicting switching in logic cells that contain the largest amount of potentially switchable current enables us to confidently predict the peak currents resulting from a clock event.
Conventional static timing analysis can determine to an acceptable precision the times at which buffers, registers or logic cells transition. (Lesser peaks, of course, may occur subsequent to this highest peak between clock signal transitions. However, such lesser peaks are of less significance in the worst-case instantaneous current analysis.)
To allow register classification, each register is associated with parameters that specify (1) its clock domain, (2) its clock sense (i.e., a rising edge, a falling edge, or indeterminate) with respect to the root clock, (3) its data sense (i.e., true, false, or indeterminate) with respect to an upstream register, and (4) its enable sense (true, false, or unknown), when a data enable signal is received. Each register may be classified according to how their data input and clock input terminals are configured. In one embodiment of the present invention, each register is classified according to one of the following expected responses:
(a) clock rises, output changes 0→1;
(b) clock rises, output changes 1→0;
(c) clock rises, no change on output;
(d) clock falls, output changes 1→0;
(e) clock falls, output changes 0→1;
(f) clock falls, no change on output; and
(g) no clock received
Initially, all registers are classified as having their output values change 0→1 when a rising clock edge is received. A register is reclassified if it is determined that its assigned response would not occur. For example, a register is reclassified when there is no logic inversion in the data path from the registers immediately upstream. The absence of a logic inversion ensures that two “back-to-back”, or cascaded, registers cannot switch simultaneously in the same direction. FIG. 4 illustrates such a configuration in circuit 400. Consequently, the downstream register is reclassified to change output state from 1→0 at the rising clock edge. In registers with both inverting and non-inverting paths feeding their D inputs, no reclassification due to logic inversion considerations is performed. An example of such a configuration is shown in FIG. 4.
Circuit 500 of FIG. 5 illustrates another example in which a register can be reclassified. As shown in FIG. 5, register 501 receives at its D input terminal an output value of multiplexor 502, thus forming a recirculating data path. Whether or not register 501 changes state in this configuration in response to a clock signal transition depends on the logic value at multiplexor 502's select line, which can be determined by propagating forward an initial state of each upstream register's output value through the intervening combinatorial logic circuit. If register 501 is found to be inhibited from changing states due to the recirculating data, register 501 is reclassified to have the response “clock rises (or falls), no output change.”
As another example, a register can be reclassified if the clock path to the register's clock input includes a gating element (i.e., the register is clocked by a gated clock signal). If the register is clocked by a gated clock signal, the state of the gating element (enabled or disabled) can be determined by forward propagating the initial state of the output value at each register upstream to the gating element, as described above with respect to multiplexors. The test to determine whether or not the register should be reclassified can be complex, as conditions may exist in which all gating elements are enabled. Such a condition can be identified either automatically or by the user. In one embodiment, the default condition assumes all clock gating elements to be enabled.
Other reclassification conditions can be identified, upon further detailed analysis of the logic circuit between registers.
FIG. 6 shows method 600 (presented in pseudo-code form) for reclassifying registers, in accordance with the present invention. As shown in FIG. 6, method 600 is iterated for each clock domain and each clock edge transition (i.e., 0→1 and 1→0 transitions). At iteration 601, register reclassification begins from a reclassification root point. In this embodiment, two reclassification phases 602 and 603 are shown, although any number of phases can be provided within the scope of the present invention. As shown in FIG. 6, reclassification phase 602 sets the root points to be the lowest level registers in a levelized netlist. From each root point, reclassification traverses forward through the netlist until all registers are considered. Reclassification phase 601 considers the maximum instantaneous current of the circuit as a whole.
Reclassification phase 603 traverses over the netlist again, using a different, physically oriented reclassification root point. Reclassification phase 603 allows maximum instantaneous currents to be calculated subsequently for a group of physically related logic cells, such as logic cells on a given row or in a given module. Thus, in reclassification phase 603, the registers on a given row of cells are used as the starting points for reclassification, rather than the lowest level registers, as used in reclassification phase 602. During reclassification phase 603, all downstream registers to the registers at the root points are reclassified, but not registers upstream to the root points. Reclassification phase 603 is repeated once for each row or module until the entire netlist is traversed.
As described above, within each of reclassification phases 602 and 603, the reclassification schemes based on circuit topology and identified or imposed circuit states can be carried out, for example. FIG. 7 shows such a method 700, also presented in pseudo-code form. Concurrently, combinatorial logic elements are classified, based on the state of their input values, which are driven by the register output values determined from the previous steps.
Upon completion of reclassification phases 602 and 603, data is available for estimating both the worst-case instantaneous current for the entire netlist and the worst-case instantaneous current for each row or module individually. Reclassification phase 603 enables worst-case instantaneous currents to be estimated at different levels of granularity (i.e., entire design, single module, or single row) within the context of the entire design. This granularity level can be specified by default (e.g., per row or per module or per power/ground segment), or by the user.
Genetic algorithms can be used to implement method 600.
In one embodiment of the present invention, a user interface is provided that allows a user to specify the states of internal, input and output control signals in an expected worst-case condition for a circuit to be analyzed. Input and output control signals include reset and JTAG control signals, for example. (JTAG, which stands for “Joint Test Action Group”, is the name referred by the industry for the IEEE 1149.1 Standard for Test Access Port and Boundary-Scan Architecture.) Examples of internal control signals include register enable signals and clock gating control signals. In addition, the user can specify operational values pertaining to each clock signal (e.g., clock period, duty cycle, phase relationship with respect to any other clock signal). The user can also specify the states of selected registers. The states can be specified completely (e.g., as scan test vectors), or incompletely (e.g., specifying only the states of a subset of the full set of registers in the design). In this embodiment, if the states are specified incompletely, states that are not specified are derived using a variety of methods, such as those described above, to complete the specification. Alternatively, the user can also specify “exclusion break points” which are directives to the software system specifying portions of the circuit that will not exhibit any switching activity in response to clock signal transitions during the analysis. Thus, these excluded sections of the design are not evaluated for switching.
Furthermore, an interface can be provided to other power analysis tools (e.g., power and timing models, expressed in any one of numerous formats known in the art), or to allow the user to initiate the power analysis. As explained below, placement information can be taken into account in estimating worst-case instantaneous currents. Thus, the present embodiment accepts placement information in any one of numerous formats known in the art (e.g., a DEF file).
In one embodiment of the present invention, an “event log” of the events that are predicted to occur during a cycle of the clock is provided as output. In that embodiment, if multiple clock signals drive the circuit under analysis, the event log is presented relative to the clock signal with the longest period or the clock signal driving the largest capacitive load. The event log lists the instance name, the ALF vector that would be triggered (or the amount of current triggered by that particular ALF vector), and the time at which the trigger would be initiated. (An ALF—Advanced Library Format—vector, which is known to those skilled in the art, expresses dynamic behavior of a logic cell; ALF typically specifies a circuit behavior that can be carried from RTL stage to post-layout stage). This event log can be utilized by other electronic design automation (EDA) tools, such as a waveform displayer to display the current over time, or a voltage-calculating tool to calculate the voltages of each logic cell instance.
In one embodiment, the event log is determined from a static timing analysis. Under one method, the states of sequential elements of the circuit are set according to a pre-determined circuit state and switching or power events in combinational logic elements that respond to the sequential logic elements are selected. From the selected switching events, corresponding current or voltage waveforms in the combinational logic elements are calculated. In one embodiment, the selected switching events are switching events, for example, within a predetermined percentile (80 percentile) among all possible switching events, or those switching events that result in peak currents or voltages exceeding certain pre-determined values. The selection of switching or power events can be achieved by creating an aggregate current or voltage waveform from all the possible switching events, finding the largest current or voltage spike from the aggregate current waveform, selecting from the switching events those switching events that contribute to the largest current or voltage spike, and ranking the contributing switching events in the order of peak currents or voltages. In selecting the pertinent events, mutually exclusive events should not be included in the same selection. In one embodiment, events that are mutually exclusive with the switching event yielding the largest peak current or voltage are eliminated. The analysis can be repeated for the events yielding the second largest peak current or voltage and, subsequently, for events yielding successively lesser peak currents or voltages, until the entire set of switching events have been considered and culled.
In one embodiment, a “SPICE deck” that defines one or more current sources for each logic cell instance is provided as output. (Multiple current sources are defined for each logic cell connected to more than one power supply voltage source). A SPICE deck, as known to those skilled in the art, is an input file in an industry standard format to the circuit simulator “SPICE”. In a SPICE deck, each current source can be defined using a piece-wise linear (PWL) model to describe the shape, magnitude, and start and stop times of a current waveform for the current source. The SPICE deck provides an interface to a wide variety of circuit analysis tools.
In another embodiment, the worst-case current waveform for one cycle of the primary clock for each power supply and ground voltage source is generated from the event log and displayed on a graphical display. Alternatively, an ASCII report file listing the worst-case instantaneous peak current value for each power supply and ground reference can be provided.
In one embodiment of the present invention, based on worst-case instantaneous currents estimated from the event log, clock skews can be intentionally introduced into the clocking network to minimize the peak of the current waveform. These clock skews reduce the maximum amount of noise (i.e., improves noise margins) and may improve the overall transient performance of the logic cells experiencing the noise spikes. The clock skewing capability of the present invention is particularly useful when incorporated into an EDA tool having knowledge of timing slack in data paths. Such an EDA tool can provide an appropriate amount of clock skew without introducing timing problems.
The present invention can be used to determine a worst-case instantaneous voltage drop, based on geographic information (e.g., placement information) and the worst-case instantaneous current, since the voltage drop resulting from a given instantaneous current depends on the locations of the sources of the instantaneous currents. In one embodiment, physically proximate registers, such as registers in a given block, can be used as reclassification root points from which other registers can be reclassified.
In another embodiment, a dc analysis of the power network is performed, prior to calculating the instantaneous currents. The dc analysis determines the segments of the power network at which the highest effective resistance with respect to the external chip grounds are located. Once these segments have been identified, reclassification for registers in these segments can be carried out using, for example, the reclassification procedure described above with respect to reclassification phase 603.
The present invention can be used also for designs at the RTL, where the RTL models calculate power due to single edge events, to take timing into consideration, and to use an actual synthesized clock tree, instead of the lumped, symbolic approach typical of existing RTL models. Such enhancements can be implemented in, for example, models expressed in the Structural Functional description Language (SFL), which are known to those skilled in the art.
The above detailed description is provided to illustrate specific embodiments of the present invention and is not intended to be limiting. Numerous modifications and variations within the scope of the present invention are possible. The present invention is set forth in the following claims.

Claims (11)

I claim:
1. A method for accurately calculating a current waveform of a circuit having one or more clock networks and multiple register and logic elements, using a circuit description of the circuit, comprising:
performing an analysis of the circuit for each of the clock signals in said circuit, wherein the analysis comprises:
setting states of sequential elements of the circuit according to a pre-determined circuit state;
selecting a plurality of switching events in combinational logic elements that respond to the sequential logic elements; and
calculating waveforms in the combinational logic elements resulting from the selected switching events; and
constructing current waveforms based on the switching characteristics of the register and logic elements relative to transitions in the clock networks.
2. A method as in claim 1, wherein the selected switching events are switching events within a predetermined percentile among all possible switching events.
3. A method as in claim 2, wherein the selecting comprises determining the switching events based on a static timing analysis.
4. A method as in claim 3, further comprising
creating an aggregate current waveform from the set of all switching events;
finding a largest current spike from the aggregate current waveform;
selecting from the switching events contributing switching events to the largest current spike; and
ranking the contributing switching events in the order of peak currents.
5. A method as in claim 3, further comprising
creating an aggregate voltage waveform from the set of all switching events;
finding a largest voltage spike from the aggregate current waveform;
selecting from the switching events contributing switching events to the largest voltage spike; and
ranking the contributing switching events in the order of peak voltages.
6. The method as in claim 4, further comprising:
selecting an event, among the contributing switching events, that corresponds to the largest peak current; and
eliminating from the set of contributing switching events those switching events that are mutually exclusive with the selected event.
7. The method of claim 4, further comprising the method for successively lesser current spikes.
8. The method as in claim 6, further comprising repeating the steps of selecting switching events and calculating waveforms using an event that corresponds to the second largest peak current.
9. The method as in claim 5, further comprising:
selecting an event, among the contributing switching events, that corresponds to the largest peak voltage; and
eliminating from the set of contributing switching events those power events that are mutually exclusive with the selected event.
10. The method as in claim 9, further comprising repeating the steps of selecting switching events and calculating waveforms using an event that corresponds to the second largest peak voltage.
11. The method of claim 10, further comprising the method for successively lesser voltage spikes.
US10/262,914 2002-10-01 2002-10-01 Vectorless instantaneous current estimation Expired - Lifetime US6807660B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US10/262,914 US6807660B1 (en) 2002-10-01 2002-10-01 Vectorless instantaneous current estimation
US10/926,660 US7185300B2 (en) 2002-10-01 2004-08-25 Vectorless instantaneous current estimation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/262,914 US6807660B1 (en) 2002-10-01 2002-10-01 Vectorless instantaneous current estimation

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US10/926,660 Division US7185300B2 (en) 2002-10-01 2004-08-25 Vectorless instantaneous current estimation

Publications (1)

Publication Number Publication Date
US6807660B1 true US6807660B1 (en) 2004-10-19

Family

ID=33130127

Family Applications (2)

Application Number Title Priority Date Filing Date
US10/262,914 Expired - Lifetime US6807660B1 (en) 2002-10-01 2002-10-01 Vectorless instantaneous current estimation
US10/926,660 Expired - Lifetime US7185300B2 (en) 2002-10-01 2004-08-25 Vectorless instantaneous current estimation

Family Applications After (1)

Application Number Title Priority Date Filing Date
US10/926,660 Expired - Lifetime US7185300B2 (en) 2002-10-01 2004-08-25 Vectorless instantaneous current estimation

Country Status (1)

Country Link
US (2) US6807660B1 (en)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040177328A1 (en) * 2003-03-06 2004-09-09 Sun Microsystems, Inc. Method and apparatus for power consumption analysis in global nets
US20040230919A1 (en) * 2003-05-14 2004-11-18 Balamurugan Balasubramanian Advanced design format library for integrated circuit design synthesis and floorplanning tools
US20050091623A1 (en) * 2003-08-22 2005-04-28 Infineon Technologies Ag Method and apparatus for computer-aided creation of a clock tree structure file, a method for computer-aided creation of a layout for a semiconductor circuit, and a computer-readable storage media
US20060108871A1 (en) * 2004-11-09 2006-05-25 Abb Technology Ag Simulating voltages and currents of high or medium voltage power networks or switchyards
US7233189B1 (en) * 2004-11-24 2007-06-19 Altera Corporation Signal propagation circuitry for use on integrated circuits
WO2008115243A3 (en) * 2007-03-20 2008-11-20 Tabula Inc Configurable ic having a routing fabric with storage elements
US7679401B1 (en) 2005-12-01 2010-03-16 Tabula, Inc. User registers implemented with routing circuits in a configurable IC
US7844438B1 (en) * 2003-05-29 2010-11-30 Cadence Design Systems, Inc. Method to analyze and correct dynamic power grid variations in ICs
US7971172B1 (en) 2005-11-07 2011-06-28 Tabula, Inc. IC that efficiently replicates a function to save logic and routing resources
US20110221471A1 (en) * 2008-09-17 2011-09-15 Jason Redgrave Controllable storage elements for an ic
US8166435B2 (en) 2008-06-26 2012-04-24 Tabula, Inc. Timing operations in an IC with configurable circuits
US8181130B1 (en) * 2009-09-22 2012-05-15 Altera Corporation Method for jitter reduction by shifting current consumption
US8664974B2 (en) 2004-12-01 2014-03-04 Tabula, Inc. Operational time extension
US8843872B1 (en) * 2013-03-15 2014-09-23 Synopsys, Inc. Automatic clock tree synthesis exceptions generation
US8863067B1 (en) 2008-02-06 2014-10-14 Tabula, Inc. Sequential delay analysis by placement engines
US8984464B1 (en) 2011-11-21 2015-03-17 Tabula, Inc. Detailed placement with search and repair
US20150120268A1 (en) * 2013-10-31 2015-04-30 International Business Machines Corporation Method and apparatus for simulating a digital circuit
US9501602B2 (en) * 2014-04-17 2016-11-22 Taiwan Semiconductor Manufacturing Company Ltd. Electromigration-aware layout generation
US9881112B1 (en) * 2015-04-02 2018-01-30 Xilinx, Inc. Vectorless dynamic power estimation for sequential circuits

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1817595B1 (en) * 2004-11-22 2009-03-04 Freescale Semiconductor Inc. Integrated circuit and a method for secure testing
US7882464B1 (en) 2005-02-14 2011-02-01 Cadence Design Systems, Inc. Method and system for power distribution analysis
US7574344B2 (en) * 2005-09-29 2009-08-11 Sun Microsystems, Inc. Static timing based IR drop analysis
US8250500B1 (en) 2005-10-17 2012-08-21 Altera Corporation Method and apparatus for deriving signal activities for power analysis and optimization
US7917882B2 (en) * 2007-10-26 2011-03-29 Mips Technologies, Inc. Automated digital circuit design tool that reduces or eliminates adverse timing constraints due to an inherent clock signal skew, and applications thereof
US20100169035A1 (en) 2008-12-29 2010-07-01 Medtronic Minimed, Inc. Methods and systems for observing sensor parameters
US8516423B2 (en) * 2009-09-29 2013-08-20 Nanotropic S.A. System and method for determining simulated response extrema for integrated circuit power supply networks
US8413102B2 (en) * 2011-08-03 2013-04-02 Apple Inc. Vectorless IVD analysis prior to tapeout to prevent scan test failure due to voltage drop

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010010090A1 (en) * 1998-02-11 2001-07-26 Boyle Douglas B. Method for design optimization using logical and physical information
US20020045995A1 (en) * 2000-03-08 2002-04-18 Kenji Shimazaki Electromagnetic interference analysis method and apparatus
US20020147555A1 (en) * 2001-02-02 2002-10-10 Semiconductor Technology Academic Research Center Method and apparatus for analyzing a source current waveform in a semiconductor integrated circuit
US20020190760A1 (en) * 2002-03-25 2002-12-19 Carley Adam L. Arbitrary waveform synthesizer using a free-running ring oscillator
US6499129B1 (en) * 1998-07-22 2002-12-24 Circuit Semantics, Inc. Method of estimating performance of integrated circuit designs

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835380A (en) * 1996-06-11 1998-11-10 Lsi Logic Corporation Simulation based extractor of expected waveforms for gate-level power analysis tool
US6275969B1 (en) * 1999-06-09 2001-08-14 Nec Usa, Inc. Common case optimized circuit structure for high-performance and low-power VLSI designs
JP2001084287A (en) * 1999-09-14 2001-03-30 Toshiba Corp Gated clock circuit and device and method for supporting gated clock circuit design

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010010090A1 (en) * 1998-02-11 2001-07-26 Boyle Douglas B. Method for design optimization using logical and physical information
US6557145B2 (en) * 1998-02-11 2003-04-29 Monterey Design Systems, Inc. Method for design optimization using logical and physical information
US6499129B1 (en) * 1998-07-22 2002-12-24 Circuit Semantics, Inc. Method of estimating performance of integrated circuit designs
US20020045995A1 (en) * 2000-03-08 2002-04-18 Kenji Shimazaki Electromagnetic interference analysis method and apparatus
US20020147555A1 (en) * 2001-02-02 2002-10-10 Semiconductor Technology Academic Research Center Method and apparatus for analyzing a source current waveform in a semiconductor integrated circuit
US20020190760A1 (en) * 2002-03-25 2002-12-19 Carley Adam L. Arbitrary waveform synthesizer using a free-running ring oscillator

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Chen, H.H. et al., "Interconnect and circuit modeling techniques for full-chip power supply noise analysis", Components, Packaging, and Manufacturing Technology, Part B: Advanced Packaging, IEEE vol. 21, Issue: 3, Aug. 1998 pp.: 209-215. *
Zhao, S. et al., "Frequency domain analysis of switching noise on power supply network", Computer Aided Design, 2000. ICCAD 2000. IEEE/ACM International Confeence on, Nov. 5-9. 2000 pp.: 487-492.* *

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7007256B2 (en) * 2003-03-06 2006-02-28 Sun Microsystems, Inc. Method and apparatus for power consumption analysis in global nets
US20040177328A1 (en) * 2003-03-06 2004-09-09 Sun Microsystems, Inc. Method and apparatus for power consumption analysis in global nets
US20040230919A1 (en) * 2003-05-14 2004-11-18 Balamurugan Balasubramanian Advanced design format library for integrated circuit design synthesis and floorplanning tools
US6990651B2 (en) * 2003-05-14 2006-01-24 Lsi Logic Corporation Advanced design format library for integrated circuit design synthesis and floorplanning tools
US7844438B1 (en) * 2003-05-29 2010-11-30 Cadence Design Systems, Inc. Method to analyze and correct dynamic power grid variations in ICs
US20050091623A1 (en) * 2003-08-22 2005-04-28 Infineon Technologies Ag Method and apparatus for computer-aided creation of a clock tree structure file, a method for computer-aided creation of a layout for a semiconductor circuit, and a computer-readable storage media
US20060108871A1 (en) * 2004-11-09 2006-05-25 Abb Technology Ag Simulating voltages and currents of high or medium voltage power networks or switchyards
US7233189B1 (en) * 2004-11-24 2007-06-19 Altera Corporation Signal propagation circuitry for use on integrated circuits
US8664974B2 (en) 2004-12-01 2014-03-04 Tabula, Inc. Operational time extension
US7971172B1 (en) 2005-11-07 2011-06-28 Tabula, Inc. IC that efficiently replicates a function to save logic and routing resources
US7679401B1 (en) 2005-12-01 2010-03-16 Tabula, Inc. User registers implemented with routing circuits in a configurable IC
US8089300B2 (en) 2005-12-01 2012-01-03 Tabula, Inc. Users registers implemented with routing circuits in a configurable IC
US8674723B2 (en) 2005-12-01 2014-03-18 Tabula, Inc. User registers implemented with routing circuits in a configurable IC
US8093922B2 (en) 2007-03-20 2012-01-10 Tabula, Inc. Configurable IC having a routing fabric with storage elements
WO2008115243A3 (en) * 2007-03-20 2008-11-20 Tabula Inc Configurable ic having a routing fabric with storage elements
US8723549B2 (en) 2007-03-20 2014-05-13 Tabula, Inc. Configurable IC having a routing fabric with storage elements
US8863067B1 (en) 2008-02-06 2014-10-14 Tabula, Inc. Sequential delay analysis by placement engines
US8166435B2 (en) 2008-06-26 2012-04-24 Tabula, Inc. Timing operations in an IC with configurable circuits
US8756547B2 (en) 2008-06-26 2014-06-17 Tabula, Inc. Timing operations in an IC with configurable circuits
US8674721B2 (en) 2008-09-17 2014-03-18 Tabula, Inc. Controllable storage elements for an IC
US8456190B2 (en) 2008-09-17 2013-06-04 Tabula, Inc. Controllable storage elements for an IC
US20110221471A1 (en) * 2008-09-17 2011-09-15 Jason Redgrave Controllable storage elements for an ic
US8928352B2 (en) 2008-09-17 2015-01-06 Tabula, Inc. Controllable storage elements for an IC
US8181130B1 (en) * 2009-09-22 2012-05-15 Altera Corporation Method for jitter reduction by shifting current consumption
US8984464B1 (en) 2011-11-21 2015-03-17 Tabula, Inc. Detailed placement with search and repair
US8843872B1 (en) * 2013-03-15 2014-09-23 Synopsys, Inc. Automatic clock tree synthesis exceptions generation
US20150120268A1 (en) * 2013-10-31 2015-04-30 International Business Machines Corporation Method and apparatus for simulating a digital circuit
US10146895B2 (en) * 2013-10-31 2018-12-04 Globalfoundries Inc. Method and apparatus for simulating a digital circuit
US9501602B2 (en) * 2014-04-17 2016-11-22 Taiwan Semiconductor Manufacturing Company Ltd. Electromigration-aware layout generation
US9881112B1 (en) * 2015-04-02 2018-01-30 Xilinx, Inc. Vectorless dynamic power estimation for sequential circuits

Also Published As

Publication number Publication date
US7185300B2 (en) 2007-02-27
US20050028119A1 (en) 2005-02-03

Similar Documents

Publication Publication Date Title
US6807660B1 (en) Vectorless instantaneous current estimation
US8453086B2 (en) System and method for analyzing power consumption of electronic design undergoing emulation or hardware based simulation acceleration
US5748497A (en) System and method for improving fault coverage of an electric circuit
US8108194B2 (en) Peak power detection in digital designs using emulation systems
KR100485915B1 (en) An apparatus and method for simulating lsi timing degradation
Ding et al. Gate-level power estimation using tagged probabilistic simulation
US20080092092A1 (en) Method and Processor for Power Analysis in Digital Circuits
Liou et al. Modeling, testing, and analysis for delay defects and noise effects in deep submicron devices
US5946475A (en) Method for performing transistor-level static timing analysis of a logic circuit
US6795951B2 (en) Method and system for fault-tolerant static timing analysis
Shojaei et al. Trace signal selection to enhance timing and logic visibility in post-silicon validation
Liou et al. Path selection for delay testing of deep sub-micron devices using statistical performance sensitivity analysis
Zhao et al. A genetic algorithm based remaining lifetime prediction for a VLIW processor employing path delay and IDDX testing
CN101395484A (en) Efficient calculation of a number of transitions and estimation of power dissipation in sequential scan tests
Iyengar et al. Variation-aware performance verification using at-speed structural test and statistical timing
US6820243B1 (en) Hybrid system of static analysis and dynamic simulation for circuit design
JP2001092860A (en) Method for evaluating noise and electric power of integrated circuit
US10540464B1 (en) Critical path aware voltage drop analysis of an integrated circuit
Gunes et al. A survey and comparison of digital logic simulators
Bogliolo et al. Gate-level current waveform simulation of CMOS integrated circuits
JP3243434B2 (en) LSI timing degradation simulation apparatus and simulation method
Holst et al. Timing-accurate estimation of IR-drop impact on logic-and clock-paths during at-speed scan test
Lin et al. Speed binning with high-quality structural patterns from functional timing analysis (FTA)
JP4066399B2 (en) Method for simulating hot carrier effect in integrated circuits
Lennard et al. An estimation technique to guide low power resynthesis algorithms

Legal Events

Date Code Title Description
AS Assignment

Owner name: SEQUENCE DESIGN, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:FRENKIL, GERALD L.;REEL/FRAME:013360/0924

Effective date: 20020927

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: SILICON VALLEY BANK, CALIFORNIA

Free format text: SECURITY AGREEMENT;ASSIGNOR:SEQUENCE DESIGN, INC.;REEL/FRAME:016087/0906

Effective date: 20041124

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: FOCUS VENTURES II, LP, CALIFORNIA

Free format text: INTELLECTUAL PROPERTY SECURITY AGREEMENT;ASSIGNOR:SEQUENCE DESIGN, INC.;REEL/FRAME:021194/0156

Effective date: 20080617

AS Assignment

Owner name: FOCUS VENTURES II, LP, CALIFORNIA

Free format text: SECURITY AGREEMENT;ASSIGNOR:SEQUENCE DESIGN, INC.;REEL/FRAME:022416/0026

Effective date: 20090211

AS Assignment

Owner name: SEQUENCE DESIGN, INC., CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:FOCUS VENTURES II, LP;REEL/FRAME:023196/0907

Effective date: 20090904

Owner name: SEQUENCE DESIGN, INC., CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:FOCUS VENTURES II, LP;REEL/FRAME:023196/0932

Effective date: 20090904

AS Assignment

Owner name: SEQUENCE DESIGN, INC., CALIFORNIA

Free format text: RELEASE;ASSIGNOR:SILICON VALLEY BANK;REEL/FRAME:023263/0476

Effective date: 20090917

AS Assignment

Owner name: APACHE DESIGN SOLUTIONS, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SEQUENCE DESIGN, INC.;REEL/FRAME:026015/0111

Effective date: 20090819

FEPP Fee payment procedure

Free format text: PAT HOLDER NO LONGER CLAIMS SMALL ENTITY STATUS, ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: STOL); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 8

AS Assignment

Owner name: APACHE DESIGN, INC., CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:APACHE DESIGN SOLUTIONS, INC.;REEL/FRAME:027500/0127

Effective date: 20110801

FPAY Fee payment

Year of fee payment: 12

AS Assignment

Owner name: ANSYS, INC., PENNSYLVANIA

Free format text: MERGER;ASSIGNOR:APACHE DESIGN, INC.;REEL/FRAME:053674/0176

Effective date: 20141231