Remote Temperature Sensors — How do I Monitor FPGA Temperature?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Remote Temperature Sensors--How do I Monitor FPGA Temperature?
In high performance FPGA applications, overheating is a common limiting factor when it comes to processing performance. Many FPGAs are only rated up to 85 °C before irreversible damage or reliability issues can occur. To keep the FPGA below that limit, the performance is usually throttled by reducing clock speed based on an internal diode junction (measured externally) or an external discrete temperature sensor measurement. The accuracy and response time of the temperature measurement in this application are key design details which need to be accounted for to avoid degradation of performance or damage to the FPGA based system. This means, the more accurate and faster the temperature measurement can be made in an FPGA system, the more processing performance and longer system life can be obtained.
Unfortunately, getting accurate and quick temperature measurements can be challenging. Temperature accuracy depends on many factors such as sensor accuracy, placement, and packaging. As shown in Figure 1, temperature accuracy of the sensor directly influences the amount of safety margin that needs to be built-in to the system. To account for this error, the performance of the FPGA needs to be throttled sooner. Location of the temperature sensor is another important factor for accurate temperature measuring. Thermal gradients and other heat sources can cause uncertainties in the temperature measurements. Ideally, the temperature sensor should be placed as close to the FPGA as possible and away from other heat sources.
Figure 1: Performance Margins due to Inaccuracy
Thermal Response Time:
Thermal response time of a temperature sensor also needs to be considered. Thermal response depends on location and thermal mass of the temperature sensor. Typically, the farther away the sensor is from the FPGA, the more thermal resistance will be between the parts causing a longer response time. Since the temperature of the FPGA can change quickly this delay needs to be accounted for in the safety margin. Figure 2, compares the thermal response of an external temperature sensor with that of an internal thermal diode — typically a Bipolar Junction Transistor (BJT) — of a FPGA read by a remote temperature sensor.
Figure 2: Response Time: Internal Thermal Diode vs. External BJT
Using Remote Temperature Sensors to Measure FPGA Temperature
Many FPGAs have a thermal diode available that allows for accurate junction temperature monitoring using remote temperature sensors. Monitoring the thermal diode directly allows for fast and accurate temperature sensing. Figure 3 shows a typical application schematic of a remote temperature sensor monitoring an FPGA.
Figure 3: Typical Application Schematic
The two most important parameters to factor into a remote temperature sensor application are ideality factor (η-factor) and the current gain (β) of a BJT. The η-factor of a BJT can be considered to be the measure of how closely a BJT follows the ideal equation:
Most remote temperature sensors default to a η-factor of 1.008, but this is mostly likely not the case when using an FPGA. Many FPGA manufacturers specify the FPGA’s η-factor. This difference means that η-factor correction is necessary.
The second parameter is the β of the BJT. . If β is low, a temperature error can occur. Some remote temperature sensors have “automatic β compensation” to adjust for low β junctions.
If the η-factor value is unknown or “automatic β compensation” is not available then both can be calibrated for using the Texas Instruments’ Remote Calibration Tool.
Figure 4 shows data using the TMP468 measuring the internal diode of a Xilinx Zynq UltraScale+ MPSOC FPGA. According to Xilinx’s documentation, the η-factor of the FPGA is 1.026. Three temperature sweeps were measured: two using different η-factor settings and one using optimized settings from the Remote Calibration Tool. Without accounting for the η-factor (η-factor=1.008) and other system errors the temperature error is significant.
Figure 4: Error vs Temperature Set-point
The below video is a demo using the TMP468 to measure the temperature of the FPGA’s internal thermal diode and the temperature of an external BJT. The TMP468 is an 8-channel remote temperature sensor, but there are also 4-channel (TMP464), and single-channel (TMP461) versions.