US 7149903 B1
A system and method for slack determination in a logic integrated circuit. A launch pulse is input to a circular delay loop circuit. The leading edge of the launch pulse causes a pulse to circulate around the circular delay loop. The number of passes made through the loop by the circulating pulse is counted by a latch/counter circuit. A sample pulse is input to the latch/counter circuit to latch the number of pulse circulations at the leading edge of the sample pulse. The pulse circulation count provides delay information in the circuit that may subsequently be used to adjust a supply voltage in the integrated circuit.
1. A system for signal delay in an adaptive voltage scaling slack detector comprising:
an adjustable voltage supply;
a resetable delay loop circuit comprising a launch input and a first reset input, said launch input for receiving a launch pulse waveform, wherein said resetable delay loop circuit circulates a pulse in response to receiving said launch pulse waveform; and
a resetable counter/latch circuit comprising a second reset input, an output, an input coupled to an output of said resetable delay loop circuit, and a sample input, said counter/latch circuit for counting the number of times said pulse circulates in said resetable delay loop circuit, said sample input for receiving a sample pulse waveform, wherein said sample pulse waveform causes said resetable counter/latch to latch a pulse circulation count, wherein said adjustable voltage supply is adjusted based on said pulse circulation count.
2. The system of
3. The system of
a resetable delay element comprising a delay input, a reset input, and a delay output;
an XOR gate comprising a first input coupled to said launch input, a second input coupled to said delay output, and an output coupled to said delay input.
4. The system of
an edge detector/pulse generator coupled to said launch input and to said first reset input;
a delay element coupled to said launch input;
a first multiplexer comprising a first switched input coupled to an output of said edge detector/pulse generator, and a control input coupled to an output of said delay element;
a pulse regenerator coupled to said first reset input and to a second switched input of said first multiplexer; and
a resetable delay element coupled to said first reset input, to an output of said first multiplexer, and to said pulse regenerator.
5. The system of
an inverter coupled to said launch input;
a second multiplexer coupled to said inverter and to said launch input; and
a flip-flop coupled to a control input of said second multiplexer, and to an output of said second multiplexer.
6. The system of
7. The system of
8. A logic integrated circuit comprising:
an adjustable voltage supply;
an adjustable timing clock;
control logic for adjusting said adjustable voltage supply and said adjustable timing clock;
a delay loop circuit for circulating a pulse in response to receiving a launch pulse waveform; and
a counting and latching circuit coupled to said control logic and an output of said delay loop circuit, said counting and latching circuit for counting the number of times said pulse circulates in said delay loop circuit, wherein said counting and latching circuit latches a pulse circulation count upon receiving a sample pulse waveform, wherein said control logic adjusts said adjustable voltage supply based on said pulse circulation count.
9. The logic integrated circuit of
10. The logic integrated circuit of
11. The logic integrated circuit of
12. The logic integrated circuit of
13. The logic integrated circuit of
14. The logic integrated circuit of
15. A method for adaptive voltage scaling in an integrated circuit comprising an adjustable voltage supply with a value VDD in response to a frequency change of a master clock, comprising:
applying a launch pulse waveform to a circular delay loop circuit, thereby causing a pulse to circulate in said delay loop circuit;
counting the number of times said pulse circulates in said delay loop circuit with a counter/latch circuit;
applying a sample pulse waveform to said counter/latch circuit to latch a pulse circulation count in said counter/latch circuit; and
adjusting said adjustable voltage supply based on said pulse circulation count.
16. The method of
17. The method of
18. The method of
19. The method of
20. The method of
This patent application is related to U.S. application Ser. No. 10/053,828, filed Jan. 19, 2002, titled “SYSTEM FOR ADJUSTING A POWER SUPPLY LEVEL OF A DIGITAL PROCESSING COMPONENT AND METHOD OF OPERATING THE SAME.” The above application is commonly assigned to the assignee of the present invention, and is incorporated in its entirety herein by reference.
Embodiments of the present invention relate to the field of power management for integrated circuits (ICs). More particularly, embodiments of the present invention relate to a slack detector for adaptive voltage scaling.
Advances in fabrication technology have resulted in high transistor counts and a high degree of integration of functions in ICs. However, this increased computational capability has an associated increase in capability for power consumption.
For mobile devices that are battery operated, such as cell phones, it is desirable to minimize power consumption in order to extend battery life. Control of power dissipation is also desirable in devices with high density ICs, mobility notwithstanding, in order to avoid operational instability and thermal damage.
For purposes of power consumption analysis, a logic IC may be viewed as a network of resistances and capacitances as a first approximation. The power dissipation in a logic IC is proportional to the product of the capacitance (C), square of the operating voltage (V2), and the operating frequency (f): P∝CV2f.
Since the capacitance associated with in IC is largely fixed by the design and fabrication process, the operating voltage and operating frequency are typically the focus for power management.
The time needed for the propagation of a signal within an IC varies with the signal path, and the time required for propagation along the slowest path typically places an upper limit on the operating frequency of an IC at a given voltage. Also, the maximum operating frequency is directly proportional to the operating voltage since an increase in voltage results in faster switching of the transistors in the IC.
In order to provide reliable operation, the operating frequency and operating voltage are typically selected so that signal will propagate along a critical path in a time that is shorter than the maximum allowable time. The difference between the actual operational propagation time and the maximum allowable for proper operation is referred to as “slack”. The slack in a circuit or subcircuit is dependent upon the operating frequency and voltage.
Typically, slack may be determined a priori by modeling techniques, and a table of safe operating frequency and voltage combinations may be developed for power management. However, since the frequency and voltage combinations are based upon a model, and must allow for model errors and fabrication process variations, the voltage reduction that is associated a given frequency reduction does not provide an optimal reduction in power consumption.
What is needed is a method for accurate determination of slack in an integrated circuit that accommodate fabrication process variations and avoids modeling errors. It is also desirable that the system be efficient and require a minimum amount of substrate area for implementation.
Accordingly, embodiments of the present invention provide a circuit and method for slack detection in a logic integrated circuit. Embodiments of the present invention provide a compact circuit that accurately maintains the appropriate slack in a circuit or subcircuit for a particular operating frequency by adjusting the supply voltage.
A system and method for slack determination in a logic integrated circuit is disclosed. A launch pulse is input to a circular delay loop circuit. The launch pulse causes a pulse to circulate around the circular delay loop. The number of passes made through the loop by the circulating pulse is counted by a counter/latch circuit. A sample pulse is input to the counter/latch circuit to latch the number of pulse circulations at the leading edge of the sample pulse. The pulse circulation count provides delay information in the circuit that may subsequently be used to adjust a supply voltage in the integrated circuit.
In an embodiment of the present invention, an edge detector/pulse generator circuit has an input for receiving a launch pulse, and an output coupled to a first input of a multiplexer. The launch pulse input is also coupled to a delay element having an input coupled to a control input of the multiplexer. The output of the multiplexer is coupled to the input of a delay element having an output coupled to the input of a counter/latch circuit and to the input of a pulse regenerator circuit having an output coupled to the second input of the multiplexer.
In another embodiment of the present invention, a two input XOR gate has a first input for receiving a launch pulse, and an output coupled to a delay element. An output of the delay element is coupled to the second input of the XOR gate and to an input to a counter/latch circuit. The delay element may be constructed from standard cells used in the overall integrated circuit design so that the delay characteristics closely track the delay in the integrated circuit as a whole.
These and other objects and advantages of the present invention will no doubt become obvious to those of ordinary skill in the art after having read the following detailed description of the preferred embodiments which are illustrated in the various drawing figures.
In the following detailed description of the present invention, a system and method for signal delay in an adaptive voltage scaling slack detector; numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be obvious to one skilled in the art that the present invention may be practiced without these specific details. In other instances well known methods involving well-known circuits, components, interfaces, etc., have not been described in detail so as not to unnecessarily obscure aspects of the present invention.
The delay line is driven by the same clock and voltage supply as the IC (or portion thereof) for which it is being used to determine slack. In response to a change in clock frequency, the signal propagation behavior of the delay line may be examined in order to adjust the voltage supply. Typically, program execution in a logic IC is suspended while the frequency and voltage adjustments are being made by the system.
When implemented in a logic IC, the delay line of
The value of Δt is a function of the phase shift between the launch and sample pulse waveforms, and frequency of the waveforms. The launch and sample waveforms are slaved to a master clock that drives the circuit or subcircuit for which the delay line is designed. Adjustments to the master clock frequency are reflected in the frequency of the launch and sample waveforms. The edge of the sample pulse latches the inputs to FF1–FF32, providing a “snapshot” of the slack in the circuit.
The number of delay elements and the value of each delay element are selected so that under optimum slack conditions in the integrated circuit (or portion thereof), the launch edge will propagate through half of the delay elements (e.g., DE16). When the circuit operating under optimum slack conditions and the clock frequency is changed, propagation distance through the delay line will change.
In order to restore optimum slack conditions after a change in the clock frequency, a series of adjustments may be made to the supply voltage for the integrated circuit (or portion thereof). For example, if the clock frequency is reduced, Δt will increase and the launch edge will propagate through a delay element (e.g. DE18) past the optimum DE16 and this will be reflected in the values stored in FF1–FF32. The magnitude and direction of the delay shift may then be used to adjust the supply voltage (in this example, down) in order to restore the desired slack value (FF16). The process may be performed iteratively in order to precisely set the slack value.
The counter/latch 215 a counts the number of times that the pulse circulates in the loop 210 a, and in response to a sample pulse at sample input 225, latches the current value for the number of pulses that have passed (pulse circulation count).
As shown in
The circulating delay loop of
The present invention replaces the chain of delay elements of
The circulating delay loop of the present invention as shown in
The efficiency of the circulating delay loop increases exponentially when compared to the linear delay chain. A doubling of dynamic range or resolution requires a doubling of delay elements or taps in the linear delay chain, whereas the resolution or dynamic range may be doubled by increasing the counter/latch width by 1 bit.
In order to enhance the stability of operation, the signal to input to the reset of the circular delay loop 210 b may be delayed with respect to the reset signal input to the counter/latch 215 b. This delay may be provided internally, or may be added to the signal path between the sample input 225 and the reset input to the circular delay loop 210 b.
The OR gate 230 provides a reset signal to the circular delay loop 210 b whenever the sample input or reset input is high. For cases in which the launch input and sample input are continuous waveforms, the external reset allows the reset and enable functions to be decoupled from the combined launch and sample inputs.
In a conventional linear delay line, the flip-flops associated with the taps (shown in
The synchronization circuit 290 synchronizes the sample pulse applied at input 225 with the output of the circular delay loop 210 b before sending it to the counter/latch 215 b to latch in the count value. The synchronization is achieved by utilizing the output pulses of the circular delay loop 210 b as clock pulses that are applied to flip-flops 292, 294, 296, and 298. The output of the synchronization circuit 290 is provided by the AND gate 292.
In the synchronization scheme shown in
The structure of counters and latches enable the implementation of self test for the configuration of
In general, a resetable delay element may comprise a chain of several gates of varying types. The selection of the gate types is made so that a reset signal applied to the delay element fixes the output, while the absence of the reset signal allows an alternating signal at the input to appear at the output. The overall delay value may be varied by adding or subtracting gates from the chain. A delay element is preferably designed from standard cells used in the design of the IC.
The edge detector/pulse generator 310 detects the edge of an input pulse at launch input 305 and applies a pulse to the first input (0) of multiplexer 315, which passes the pulse to the resetable delay element 320. The delay element 330 also receives the pulse from the launch input 305. Shortly after the multiplexer receives the pulse from the edge detector/pulse generator 310, the control input of the multiplexer 315 receives the delayed launch input pulse and switches the multiplexer to the second input (1).
The pulse input to the resetable delay element 320 appears at the input to the counter/latch 325 after a finite delay and is counted. The delayed pulse also appears at the input to the pulse regenerator 340. The pulse regenerator 340 applies a pulse to the second input (1) of the multiplexer 315, which passes the pulse to the resetable delay element 320. After a finite delay, the regenerated pulse appears at the input of the counter/latch 325 and the pulse generator 340. The process of pulse counting and regeneration continues until the edge of a sample input pulse is received by the counter/latch 325, at which time the count value is latched. The sample input pulse also causes the resetable delay element to be reset.
The pulse regenerator provides a consistent pulse input to the multiplexer 315, and prevents distortion of the pulse waveform from accumulating during multiple passes through the resetable delay element 320. The latched pulse circulation count value is made available to the slack detector so that evaluation of the slack can be made and the supply voltage adjusted in the IC.
After the supply voltage in the IC has been adjusted, the process described above may be repeated until the pulse circulation count value meets a desired value, or falls within a desired range of values.
A control logic/slack detector circuit 620 is coupled to the application logic 605. Since application program execution may be suspended during the adjustment of operating voltage, status information 75 (e.g., completion of voltage adjustment) may be passed to the application logic. The application logic may pass status information and/or commands 71 to the control logic/slack detector 620. For example, the application logic may inform the control logic/slack detector when program execution is complete prior to initiating voltage adjustment.
The adjustable voltage supply 615 provides the operating voltage to both the circulating delay loop 625 and the application logic 605. The circulating delay loop 625 operates at the same frequency f, and supply voltage VDD as the application logic 605. The circulating delay loop 625 receives control input 72 from the control logic/slack detector 620. The control input 72 may include launch, sample, and reset signals. The circulating delay loop 625 provides delay information 73, comprising a pulse circulation count.
In step 710, a launch signal is applied to the circulating delay loop 625. The launch signal causes a pulse to circulate in the circulating delay loop 625. An example of a circulating delay loop is shown in
In step 715, the number of pulse circulations is counted. The circulation count comprise the number of times that a single pulse passes through the loop, or it may be comprise the number of passes made by an initial pulse and regenerated pulses.
In step 720, a sample signal is applied to latch the pulse circulation count (e.g., on the sample signal edge). In step 725, the change in voltage that is to be made in response to the frequency change is determined. This may be done by comparing pulse circulation count to a threshold value or desired range. If the pulse circulation count exceeds the threshold value or desired range, the voltage may be decreased. If the pulse circulation count is less than the desired threshold value or desired range, the voltage may be increased. If the pulse circulation count is at the threshold value or in the desired range, the voltage is left unchanged. In step 730, the voltage supply is adjusted.
The foregoing descriptions of specific embodiments of the present invention have been presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed, and obviously many modifications and variations are possible in light of the above teaching. The embodiments were chosen and described in order to best explain the principles of the invention and its practical application, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the Claims appended hereto and their equivalents.