Xilinx FPGA 超温关机保护

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

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

Over Temperature是用于执行自动关机时所用设置。User Temperature是用于执行用户自定义的热管理程序,例如控制风扇转速。当设备温度超过温度上限控制寄存器限制(53H/50H)时,报警信号OT/ALM[0]为高。OT/ALM[0]保持高电平状态,直至温度低于下限控制寄存器(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上限后,芯片自动关机。重新上电配置即可恢复正常。

相关推荐
沐欣工作室_lvyiyi8 天前
基于物联网的智能蔬菜仓库设计(论文+源码)
人工智能·stm32·单片机·嵌入式硬件·物联网·fpga
RunningCamel9 天前
[Vivado报错] [Runs 36-527] DCP does not exist
verilog·fpga·vivado报错
北城笑笑13 天前
FPGA 28 ,基于 Vivado Verilog 的呼吸灯效果设计与实现( 使用 Vivado Verilog 实现呼吸灯效果 )
fpga开发·fpga
涛tao讲道18 天前
FPGA的IP核接口引脚含义-快解
接口·fpga·vivado·xilinx·ip核·涛tao讲道·抗单粒子翻转
鹏展-penggeon22 天前
verilog 编写猫狗过河实验
fpga
乘风~&1 个月前
fpga学习入门 串口rs232回环
fpga
迎风打盹儿1 个月前
VIVADO ILA IP进阶使用之任意设置ILA的采样频率
ip·vivado·vio·采样频率·ila·在线调试
迎风打盹儿1 个月前
VIVADO FIFO (同步和异步) IP 核详细使用配置步骤
ip·verilog·fpga·vivado·fifo
Ruoyo1761 个月前
关于编写测试用例的细枝末节
测试用例·fpga
北城笑笑1 个月前
FPGA 21 ,深入理解 Verilog 中的基数,以及二进制数与十进制数之间的关系( Verilog中的基数 )
fpga开发·fpga