Characterization of power delivery network in field programmable gate arrays or digital integrated circuits
11018668 · 2021-05-25
Assignee
- ZHAO; Shuze (Toronto, CA)
- TRESCASES; Olivier (Toronto, CA)
- AHMED; Ibrahim (Toronto, CA)
- BETZ; Vaughn (Toronto, CA)
- The Governing Council Of The University Of Toronto (Toronto, Ontario, CA)
Inventors
- Shuze Zhao (Toronto, CA)
- Olivier Trescases (Toronto, CA)
- Ibrahim Ahmed (Toronto, CA)
- Vaughn Betz (Toronto, CA)
Cpc classification
H03K19/003
ELECTRICITY
International classification
Abstract
Modern FPGAs operate at a core voltage around 1V and therefore even small voltage fluctuations can lead to timing violations and logic errors. The Power Delivery Network (PDN) between a power supply and the FPGA core must be carefully designed to achieve a low output impedance over a broad range of frequencies. The present disclosure describes two techniques for characterization of the PDN: 1) to extract the DC resistance in the power delivery path, and 2) to identify the high impedance frequency band(s) in the PDN. An embedded impedance extraction tool is synthesized within the FPGA load, in coordination with a mixed-signal current-mode dc-dc converter. A self-calibrated Carry-Chain based ADC (CC-ADC) is used for high-speed sampling of the core voltage. By modifying the PDN based on the extracted results, the voltage operating range and reliability of a crossbar application may be greatly extended.
Claims
1. A method of determining an impedance of a Power Delivery Network (PDN) of a Field-Programmable Gate Array (FPGA), comprising: performing a calibration of a Carry-Chain Analog-to-Digital Converter (CC-ADC) to calibrate an output of the CC-ADC to correspond with a core voltage of the FPGA; controlling one or more programmable loads on the FPGA such that a current draw in the CC-ADC is approximately sinusoidal at a first frequency; recording a minimum and a maximum output of the CC-ADC at the first frequency; determining a minimum and a maximum core voltage based on the minimum and the maximum output of the CC-ADC in accordance with the calibration; and calculating a voltage ripple based on the difference between the maximum core voltage and the minimum core voltage, wherein the voltage ripple approximates the impedance of the PDN at the first frequency.
2. The method of claim 1, further comprising outputting the voltage ripple at the first frequency.
3. The method of claim 1, further comprising: controlling the one or more programmable loads such that the current draw in the FPGA is approximately sinusoidal at one or more additional frequencies, each of the additional frequencies greater than the first frequency and less than or equal to a predetermined maximum frequency; and at each respective frequency of the one or more additional frequencies, the method further comprises: recording a minimum and a maximum output of the CC-ADC at the respective frequency; determining a minimum and a maximum core voltage at the respective frequency based on the minimum and the maximum output of the CC-ADC in accordance with the calibration; and determining a voltage ripple at the respective frequency based on the difference between the maximum core voltage and the minimum core voltage.
4. The method of claim 3, further comprising: outputting the voltage ripple at each of the one or more additional frequencies.
5. The method of claim 3, wherein the sampling frequency of the CC-ADC is at least 8 to 10 times of the predetermined maximum frequency.
6. The method of claim 1, wherein the calibration of the CC-ADC is performed using a bandgap reference of an external voltage sensing.
7. The method of claim 1, wherein the output of the CC-ADC is in binary.
8. The method of claim 7, wherein the CC-ADC comprises an encoder to encode a thermometer code output into binary.
9. A system for determining an impedance of a Power Delivery Network (PDN) of a Field-Programmable Gate Array (FPGA), comprising: a Carry-Chain Analog-to-Digital Converter (CC-ADC), comprising: a plurality of carry-chain adders configured to receive a modulating input; and an encoder configured to encode an output of the carry-chain adders into binary; one or more programmable loads; and a frequency generator configured to control the one or more programmable loads so that a current draw of the CC-ADC is sinusoidal at a plurality of frequencies.
10. The system of claim 9, wherein the CC-ADC and the one or more programmable loads are disposed on the FPGA during testing.
11. The system of claim 10, wherein the CC-ADC is implemented as a line of logical elements on the FPGA.
12. The system of claim 10, wherein the one or more programmable loads are disposed around the CC-ADC.
13. The system of claim 9, wherein the CC-ADC comprises 256 adders.
14. The system of claim 9, wherein the CC-ADC comprises an encoder to encode a thermometer code output into binary.
15. The system of claim 9, wherein the one or more programmable loads each comprise three inverter chains, each inverter chain configured to be controlled with an enable signal from the frequency generator.
16. The method of claim 2, further comprising: controlling the one or more programmable loads such that the current draw in the FPGA is approximately sinusoidal at one or more additional frequencies, each of the additional frequencies greater than the first frequency and less than or equal to a predetermined maximum frequency; and at each respective frequency of the one or more additional frequencies, the method further comprises: recording a minimum and a maximum output of the CC-ADC at the respective frequency; determining a minimum and a maximum core voltage at the respective frequency based on the minimum and the maximum output of the CC-ADC in accordance with the calibration; and determining a voltage ripple at the respective frequency based on the difference between the maximum core voltage and the minimum core voltage.
17. The method of claim 4, wherein the sampling frequency of the CC-ADC is at least 8 to 10 times of the predetermined maximum frequency.
18. The method of claim 2, wherein the calibration of the CC-ADC is performed using a bandgap reference of an external voltage sensing.
19. The system of claim 11, wherein the one or more programmable loads are disposed around the CC-ADC.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) Further features and advantages of the present disclosure will become apparent from the following detailed description, taken in combination with the appended drawings, in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
(23)
(24)
(25) It will be noted that throughout the appended drawings, like features are identified by like reference numerals.
SUMMARY
(26) A method of determining an impedance of a Power Delivery Network (PDN) of a Field-Programmable Gate Array (FPGA) is disclosed. The method comprises performing a calibration of a Carry-Chain Analog-to-Digital Converter (CC-ADC) to calibrate an output of the CC-ADC to correspond with a core voltage of the FPGA; controlling one or more programmable loads on the FPGA such that a current draw in the CC-ADC is approximately sinusoidal at a first frequency; recording a minimum and a maximum output of the CC-ADC at the first frequency; determining a minimum and a maximum core voltage based on the minimum and the maximum output of the CC-ADC in accordance with the calibration; and calculating a voltage ripple based on the difference between the maximum core voltage and the minimum core voltage, wherein the voltage ripple approximates the impedance of the PDN at the first frequency.
(27) The method may further comprise outputting the voltage ripple at the first frequency.
(28) The method may further comprise controlling the one or more programmable loads such that the current draw in the CC-ADC is approximately sinusoidal at one or more additional frequencies, each of the additional frequencies greater than the first frequency and less than or equal to a predetermined maximum frequency; and at each respective frequency of the one or more additional frequencies, the method further comprises: recording a minimum and a maximum output of the CC-ADC at the respective frequency; determining a minimum and a maximum core voltage at the respective frequency based on the minimum and the maximum output of the CC-ADC in accordance with the calibration; and determining a voltage ripple at the respective frequency based on the difference between the maximum core voltage and the minimum core voltage.
(29) The method may further comprise outputting the voltage ripple at each of the one or more additional frequencies.
(30) In the method, the sampling frequency of the CC-ADC may be at least 8 to 10 times of the predetermined maximum frequency.
(31) In the method, the calibration of the CC-ADC may be performed using a bandgap reference of an external voltage sensing.
(32) In the method, the output of the CC-ADC may be in binary.
(33) In the method, the CC-ADC may comprise an encoder to encode a thermometer code output into binary.
(34) A system for determining an impedance of a Power Delivery Network (PDN) of a Field-Programmable Gate Array (FPGA) is disclosed. The system comprises a Carry-Chain Analog-to-Digital Converter (CC-ADC), comprising: a plurality of carry-chain adders configured to receive a modulating input; and an encoder configured to encode an output of the carry-chain adders into binary; one or more programmable loads; and a frequency generator configured to control the one or more programmable loads so that a current draw of the CC-ADC is sinusoidal at a plurality of frequencies.
(35) In the system, the CC-ADC and the one or more programmable loads may be disposed on the FPGA during testing.
(36) In the system, the CC-ADC may be implemented as a line of logical elements on the FPGA.
(37) In the system, the one or more programmable loads may be disposed around the CC-ADC.
(38) In the system, the CC-ADC may comprise 256 adders.
(39) In the system, the CC-ADC may comprise an encoder to encode a thermometer code output into binary.
(40) In the system, the one or more programmable loads may each comprise three inverter chains, each inverter chain configured to be controlled with an enable signal from the frequency generator.
(41) The foregoing presents a simplified summary of the invention in order to provide a basic understanding of some aspects of the invention. This summary is not an exhaustive overview of the invention. It is not intended to identify essential, key or critical elements of the invention or to delineate the scope of the invention. Its sole purpose is to present some concepts in a simplified form as a prelude to the more detailed description that is discussed later. Other aspects of the invention are described below in relation to the accompanying drawings.
DETAILED DESCRIPTION
(42) The present disclosure describes two stand-alone in-situ methods for characterizing the PDN DC resistance and AC impedance of an FPGA board, respectively. The proposed schemes are highly automated and require minimal user effort. The proposed schemes take advantage of the programmable logic in the FPGA and only require a programmable dc-dc power-stage to assist the measurement. Both methods are intended to run on the FPGA board production-line for quality control, or in the field for end-users to evaluate the PCB operation. The proposed methods can extract R.sub.PDN, the DC resistance in the power delivery path, and also indicate frequency band(s) with high impedance due to a poor PDN (Z.sub.out). These results provide insights on the PDN: high R.sub.PDN indicates poor power path layout on the PCB or soldering imperfection at the power pins; high impedance peak(s) indicates poor decoupling network design at certain frequencies, component failures or soldering imperfection. Manufacturers and end-users can use the information to correct their simulation model, detect damaged components or soldering imperfections and optimize the PCB design, thereby improving the product yield and system reliability.
(43) As will be further described herein, one of the features of the present disclosure includes a new Carry-Chain based ADC (CC-ADC) that is introduced for the on-chip voltage measurement, which has significantly improved sampling frequency that is critical for high-frequency voltage measurements. Another feature includes a self-measurement scheme is proposed that can leverage the improved on-chip ADC to automatically characterize the PDN across a range of frequencies. The measurements are compared with the simulation results to demonstrate the effectiveness of the proposed scheme. In addition, a common application, a crossbar switch, is used to demonstrate logic failure due to a poor PDN design. The board-level PDN improvements extend the safe operation zone for the application. These and other features will be described herein.
(44) Embodiments are described below, by way of example only, with reference to
(45)
(46)
(47) Due to the voltage-dependent delay, the propagation depth, in terms of the number of logic elements, of the input clock pulse can be used to measure the supply voltage. The thermometer code output of the delay-line is encoded into binary, such that DL_ADC[n] is a digital representation of V.sub.core.
(48)
(49) A DL-ADC self-calibration step is used to calibrate the DL-ADC, and to build a one-to-one relationship between the core voltage, V.sub.core, and DL_ADC[n], which is inherently non-linear. Non-relevant circuits are turned off to reduce the on-chip current draw (hence V.sub.core≈V.sub.O, where V.sub.O is the converter output voltage), and a full sweep of V.sub.O begins. For example, in
(50) A second step comprises a step for extraction of the DC resistance of the PDN. The FPGA then records the two peak current commands I.sub.ref1[n], I.sub.ref2[n], and two DL-ADC readings DL_ADC.sub.1[n], DL_ADC.sub.2[n], when the programmable loads are turned off and on, respectively, at V.sub.O=1.2 V. The programmable loads are essentially arrays of generic logic gates clocked at a high-frequency to consume current. Referring to the self-calibration results, DL_ADC.sub.1[n], DL_ADC.sub.2[n] corresponds to V.sub.core1 and V.sub.core2, while I.sub.1 and I.sub.2 correspond to I.sub.ref1[n] and I.sub.ref2[n], respectively. The resistance of the PDN may then be calculated as given by equation (1).
(51)
(52) The ADC calibration and resistance extraction process is completed within tens of microseconds, limited only by the dc-dc converter dynamics. The die temperature is considered constant within the resistance extraction process and therefore does not affect the accuracy of the DL-ADC.
(53) Since R.sub.PDN dictates the resistive voltage drop (IR-drop) from the voltage sensing point to the FPGA die, causing the on-chip supply voltage to shift with the load current, it can be used in the real-time IR-drop compensation for the Dynamic Voltage Scaling (DVS) operation as well. The IR-drop, V.sub.IR, may be calculated in accordance with equation (2).
V.sub.IR=I.sub.ref×R.sub.PDN (2)
(54) A compensation voltage, V.sub.comp=V.sub.IR, can thus be implemented in the power-stage controller to build an IR-drop-aware power supply. This functionality is further described with reference to
(55)
(56) The carry-chain hardware on the FPGA is used in the implementation of the ADC due to its optimized low propagation delay, which allows a much faster sampling rate at 75 MHz, compared to 10 MHz for the DL-ADC at a similar resolution of 4 mV/bit. Note that the effect of the on-chip portion of the PDN is typically observed beyond a hundred MHz, well beyond the sampling frequency band of the CC-ADC. There is a trade-off between the sampling frequency and the resolution for both DL-ADC and CC-ADC; therefore the sampling frequencies are compared at the predefined 4 mV/bit resolution. The use of the CC-ADC architecture constrains its location on chip, since the carry-chain has to be implemented using logic elements in a straight line to utilize the fast dedicated routing path. This is not a limitation when used for off-chip PDN characterization, as in the AC impedance characterization. However, for the DC resistance extraction, DL-ADC is the better candidate since it can be flexibly placed in any location on chip to measure the location specific resistance.
(57)
(58) A CC-ADC self-calibration step is used to calibrate the CC-ADC, and to build a one-to-one relationship between the core voltage, V.sub.core, and CC_ADC[n], such that CC_ADC[n] can be used to accurately represent V.sub.core. The on-chip voltage sensing may be calibrated using the bandgap reference of the external voltage sensing, which is commonly integrated within a power management IC.
(59) A second step comprises a step for characterization of the PDN impedance. The frequency generator controls the programmable loads such that the resulting current draw is nearly sinusoidal, with a modulation frequency of f.sub.load. The modulation frequency f.sub.load starts from a low frequency, f.sub.0. The FPGA then records the minimum and maximum CC-ADC readings, CC_ADC.sub.min[n] and CC_ADC.sub.max[n], respectively, that result from this current perturbation. The CC-ADC readings CC_ADC.sub.min[n] and CC_ADC.sub.max[n] corresponds to the minimum and maximum core voltage, V.sub.core_min and V.sub.core_max, and the delta voltage, ΔV.sub.core=V.sub.core_max−V.sub.core_min, indicates the on-chip voltage ripple. The voltage ripple indicated by ΔV.sub.core is thus proportional to the amplitude of the complex impedance, /Z.sub.PDN/, at f.sub.0. The frequency generator then increases f.sub.load to f.sub.1 and the measurement is repeated, until reaching f.sub.n. The maximum frequency, f.sub.n, is constrained by the sampling frequency of the CC-ADC; the CC-ADC sampling frequency should be at least 8 to 10 times higher than f.sub.n to ensure the voltage peaks are recorded.
(60)
(61) The detailed programmable load circuitry is shown in
(62) Experimental results obtained from the DC resistance extraction and AC impedance characterization schemes are described below. The FPGA platform in the experimental results is based on a DE2-115 evaluation board with a customized power-stage.
(63)
(64)
(65)
(66) The extracted R.sub.PDN in all the nine modules at 50° C. is also shown in
(67)
(68) As seen in
(69)
(70)
(71)
(72) Due to a limited sampling rate of 75 MHz for the CC-ADC, the maximum frequency of the measurement is f.sub.load=10 MHz. The starting point of the measurement is set at f.sub.load=100 kHz, since at lower frequencies the test would interact with the compensator within the VR.
(73)
(74) As seen in
(75) A crossbar switch, which is commonly used in telecom applications for routing digital signals, is used to verify the impedance characterization results. The application occupies 24% of the total LEs on chip and operates at 150 MHz. The crossbar switch draws near constant power during normal operation, and a clock gating signal is added such that it operates with a gating frequency f.sub.clk gating. The clock gating signal simulates repetitive reset or a periodic input data stream in the system. The application is tested under different V.sub.O, f.sub.clk gating and PDN component scenarios.
(76)
(77) Instead of adding voltage headroom for reliable operation like the IR-drop compensation described above, it may be preferable to modify the set of passive components within the PDN to compensate the PDN to damp the impedance peak(s). In
(78)
(79) The programmable loads are turned off (1804). This takes place at a nominal voltage, such as V.sub.O=1.2 V. The current and the DL-ADC output are recorded (1806) when the programmable loads are turned off. The programmable loads are also turned on (1808) and the current and the DL-ADC output are recorded (1810) when the programmable loads are turned on. A core voltage at the respective times when the programmable loads are turned off and on is determined (1812) based on the recorded data and the results of the self-calibration. The PDN resistance is calculated (1814), for example, using equation (1).
(80)
(81) The programmable loads are controlled so that the FPGA draws a sinusoidal current at a first frequency (1904). The minimum and maximum output readings of the CC-ADC are recorded (1906). From the self-calibration, the minimum and maximum core voltage is determined that corresponds to the minimum and maximum output readings of the CC-ADC (1908). A voltage ripple is determined (1910), corresponding to a difference between the maximum and the minimum core voltage. This voltage ripple approximates an impedance of the PDN at the frequency.
(82) A determination is made if the frequency of the current being drawn by the CC-ADC is greater than a predetermined threshold frequency (1912). As previously described, the predetermined threshold frequency may be 8 to 10 times the sampling frequency of the CC-ADC. If the frequency is not greater than the predetermined threshold frequency (NO at 1912), the frequency is increased (1914) and the recording of the minimum and maximum CC-ADC outputs (1906), determination of minimum and maximum core voltage (1908), and determination of the voltage ripple (1910), are performed again at the increased frequency. Once the frequency is greater than the predetermined threshold frequency (YES at 1912), the method ends and the voltage ripple measured at each of the induced frequencies may be output (1916).
(83) In another embodiment of this invention, the novel techniques described above may be applied to perform PDN characterization of a CPU or other digital integrated circuit (IC).
(84)
(85)
(86)
(87) Each element in the embodiments of the present disclosure may be implemented as hardware, software/program, or any combination thereof. Software codes, either in its entirety or a part thereof, may be stored in a computer readable medium or memory (e.g., as a ROM, for example a non-volatile memory such as flash memory, CD ROM, DVD ROM, Blu-Ray™, a semiconductor ROM, USB, or a magnetic recording medium, for example a hard disk). The program may be in the form of source code, object code, a code intermediate source and object code such as partially compiled form, or in any other form.
(88) For the purposes of interpreting this specification, when referring to elements of various embodiments of the present invention, the articles “a”, “an”, “the” and “said” are intended to mean that there are one or more of the elements. The terms “comprising”, “including”, “having”, “entailing” and “involving”, and verb tense variants thereof, are intended to be inclusive and open-ended by which it is meant that there may be additional elements other than the listed elements.
(89) This invention has been described in terms of specific implementations and configurations which are intended to be exemplary only. Persons of ordinary skill in the art will appreciate that many obvious variations, refinements and modifications may be made without departing from the inventive concepts presented in this application. The scope of the exclusive right sought by the Applicant(s) is therefore intended to be limited solely by the appended claims. It would be appreciated by one of ordinary skill in the art that the system and components shown in the figures may include components not shown in the drawings. It will be apparent to persons skilled in the art that a number of variations and modifications can be made without departing from the scope of the invention as defined in the claims.