Xilinx FPGA 超温关机保护

在UG480文档,有关于FPGA芯片热管理的介绍。

首先需要理解XADC中的 Over Temperature(OT)和User Temperature的关系。片上温度测量用于关键温度警告,也支持自动关机,以防止设备被永久损坏。片上温度测量在预配置和自动关机期间连续记录结温。

Over Temperature是用于执行自动关机时所用设置。User Temperature是用于执行用户自定义的热管理程序,例如控制风扇转速。当设备温度超过温度上限控制寄存器限制(53H/50H)时,报警信号OT/ALM0为高。OT/ALM0保持高电平状态,直至温度低于下限控制寄存器(57H/54H)。一个典型的报警信号变化如下图所示。

使能FPGA芯片过温自动关机功能,需要将OT upper alarm register(53h)中的低4位设置为0011b,同时在xdc文件中添加如下语句。

cpp 复制代码
set_property BITSTREAM.CONFIG.OVERTEMPPOWERDOWN ENABLE [current_design]

当芯片温度超过OT上限阈值(或默认125℃)时,超温告警逻辑输出激活,10 ms后设备启动关机程序。当自动关机启动时,设备被禁用,GHIGH被断言以防止任何争用。当OT解除时,GHIGH也解除,启动启动顺序,释放全局资源。当器件关闭时,XADC自动使用内部时钟振荡器,但其他方面保持不变。自动关机功能是为了防止对设备造成永久性损坏。当温度降到OT下限以下,OT解除后,需要重新配置设备。

如果XADC被实例化,自动关机功能可以通过在Config Reg 1 (41h) High中设置OT信号来禁用,或者通过在xdc文件中添加以下约束来禁用。

cpp 复制代码
set_property BITSTREAM.CONFIG.OVERTEMPPOWERDOWN DISABLE [current_design]

下面进行测试,为了加快测试速度,将XADC IP核中的两个温度阈值,设低一点。

检查一下生成的IP核V文件,可以看到OT上限阈值寄存器(53H)的低4位默认是3h,也就是0011b。同时在xdc文件中添加前面所说的语句以使能过温关机功能。

在顶层文件中例化xadc_wiz_0,本次测试只需要给IP核接上时钟和复位信号即可。为了观察输出,再将user_temp_alarm_out信号和ot_out信号引出接到开发板上的两个LED上。

生成并下载Bitstream,打开XADC数据面板。下图为温度数据,可以看到在未到达OT上限温度时,芯片温度一直处于上升状态,当芯片温度超过OT上限温度50度,芯片自动关机,此时芯片温度开始下降。从开发板上的LED状态可以验证芯片确实关机了。

在测试中发现,芯片温度不需要下降到OT下限以下,也可以重新下载程序。

将程序固化到板载Flash中后,在芯片温度达到OT上限后,芯片自动关机。重新上电配置即可恢复正常。

相关推荐
FPGA小迷弟13 小时前
Vivado中高速收发器GTX/GTH的配置与调试实战
fpga开发·fpga·硬件开发
FPGA小迷弟13 小时前
Vivado ILA与VIO调试工具实战指南:从入门到精通
fpga开发·fpga·硬件开发
FPGA小迷弟19 小时前
FPGA状态机设计详解:从Moore到Mealy的完整指南
fpga开发·fpga
我爱C编程3 天前
基于FPGA的DSB调制解调系统verilog开发
fpga开发·verilog·fpga·dsb
学习FPGA的电气小兴兴5 天前
基于FPGA的DDS信号发生器设计,生成频率可调的正弦波、三角波、锯齿波和方波
fpga开发·数字信号处理·fpga·vivado·dsp·dds·diy
jz_ddk7 天前
[学习] 深入理解 USB 通信与 FPGA 实现:从协议到逻辑设计
学习·fpga开发·xilinx·usb2.0
Hi2024021710 天前
Vortex 3.0 + xcvu19p CMD_MEM_WRITE 调试
fpga·rtl·vortex
Hi2024021717 天前
Cortex-A53 + GIC700 + Boot BRAM Vivado 全流程复现
arm·fpga·vivado
Eloudy17 天前
Holoscan Sensor Bridge 入门指南(Getting Started)
gpu·fpga·rdma
Eloudy19 天前
RFSoC-PYNQ → RK-XCKU5P-F 移植记录
fpga