FPG内监测系统的设计

时间:2022-10-30 11:45:57

FPG内监测系统的设计

摘 要:文中设计了Xilinx FPGA kintex7系列芯片中的XADC控制模块,实现了在FPGA工作过程中对其内部温度、内核电压和片上供电电压的实时监测。同时读取了其内部的平均温度、平均内核电压、平均辅助电压、最大温度、最大内核电压、最大辅助电压、最小温度、最小内核电压、最小辅助电压数值。当FPGA内部的温度、内核电压、辅助电压偏离所设定的范围时,XADC就会产生对应的报警输出。报警信号被FPGA中的I/O引脚输出到总线,通过CPCI接口传送到主机,从而对FPGA芯片的健康状况进行监控,同时采取相应措施确保系统稳定、安全的工作。该设计方案已经成功应用到工程中,经过仿真、验证、调试,此系统能够在设备中稳定工作,因此具有一定的工程指导意义。

关键词:可编程逻辑门阵列;XADC;系统监测;仿真

中图分类号:TN311;TP20 文献标识码:A 文章编号:2095-1302(2017)02-00-04

0 引 言

热设计[1]是采用适当可靠的方法控制产品内部所有电子元器件的温度,使其在所处的工作环境条件下不超过稳定运行要求的最高温度,以保证产品正常运行的安全性和长期运行的可靠性。由于热设计的复杂性和高要求,目前许多客户不具备条件或者做不出准确的设计。因此当芯片在没有经过热设计分析的板子上工作时,极有可能超出所能承受的最大工作范围。Xilinx公司的7系列FPGA所有产品都含有XADC,巧妙设计XADC可以解决热设计不当带来的问题。赛灵思模数转换器(XADC)是一种精确混合测量系统。该模块主要包括双12位1 MSPS模拟/数字转换(ADC),高达17个灵活的用户可配置逻辑输入,可选片内或者片外参考电压,片内温度和电压传感器。在没有热设计的板子上,由于温度导致芯片工作异常的可能性很高,如果芯片工作异常,XADC的片内温度监测功能将派上用场,可以快速确定Xilinx芯片的工作温度是否正常。本文通过设计XADC的控制方式来准确输出芯片内部的各种参数。首先用Matlab模拟一组外界温度、电压等参数,再用ISIM仿真出结果,与预期效果一致,然后将主程序下载到芯片中,芯片在250 M时钟下高速工作,从上位机中可以观察到准确的结果。通过另一种方式,使温度、电压等参数通过JTAG链传输到上位机,发现通过两种方式获取的结果一致。让FPGA工作在一个良好的状态,以实时监测FPGA内部环境的变化,对于利用FPGA实现的设备具有重要价值。此举可以防止芯片损坏,延长芯片寿命,保证系统的完整性[2] 并节约成本。

1 XADC的工作原理

1.1 XADC的结构组成

7系列FPGA 中XADC模块包含两个采样率为1 MSPS,输出为12位的双端口ADC芯片和片上传感器。这两个ADC为各种应用开发设计提供了通用的和高精度的模拟接口。XADC的结构原理图[3]如图1所示。

该结构主要由温度传感器、电压传感器、多路选择器、ADC、控制寄存器、状态寄存器、可重配置动态端口(DRP)组成。

1.2 温度传感器

温度传感器的传输函数如图2(a)所示。图中温度传感器工作在单极性模式下,ADC的量程编码范围为000h~FFFh,输入的电压范围为0~1 V。电压的LSB为1V/212=224 μV,对应的温度LSB约为0.123°C。

1.3 电压传感器

7系列FPGA芯片中XADC内部的电压传感器可以采集FPGA的VCCINT,VCCAUX,VCCBRAM。电压传感器的传输函数[5]可参考公式(3),理想状态下其传输函数如图2(b)所示。ADC的量程编码范围为000h~FFFh,对应的输入电压值范围为0~3 V,在实际应用中,这个范围超出了供电电压的范围,但FPGA可以提供映射到这个范围内的测量方法。因此内核电压值为1 V时,其对应的输出编码值为1/3×4 096=1 635=555 h,电压的LSB为0.732 mV。

2 XADC的配置方法

XADC通过DRP与外界进行数据交换,外界可通过两种模式[6]访问DRP,即FPGA逻辑端口和JTAG TAP,本设计方案中采用FPGA端口模式配置XADC。XADC中包含一个64×16 b的只读状态寄存器和一个64×16 b的读写控制寄存器。DRP允许用户通过地址线DADDR[6:0](00h~7Fh)来访问这128个寄存器。其中,前64个地址即00h~3Fh用于访问状态寄存器,后64个地址即40h~7Fh用于L问控制寄存器。

状态寄存器存储了传感器和外部模拟通道经过ADC转换后的数据,所有的传感器和外部通道输入的数据都有一个唯一的通道地址,每一个通道的转换结果被存储在固定位置,和DRP共用相同的地址。由于状态寄存器存储的数据为16 b,而ADC转换的数据为12 b,因此传感器的转换结果被XADC修正为16位后存储在对应的地址中,其中ADC的转换结果被存储在高12位,低4位为修正后的数据。XADC有一个内置的修正功能,通过例化相应的转换通道如08h,09h,30h,31h,可自动计算这些修正系数。在默认模式下,XADC能自动运行此功能,在其他模式下需要通过配置寄存器41h开启。

控制寄存器可以用于配置XADC的工作模式,其所有功能均由这些寄存器控制。控制寄存器可以根据XADC的属性例化,即XADC可以在一个预定义的模式下启动。本设计中主要配置地址为40h,41h,42h的控制寄存器,分别为R0,R1,R2。当XADC工作时,这些寄存器可以通过软处理器或状态机修改其中的参数,从而随时改变XADC的工作模式。图3所示为配置寄存器R0,R1,R2的位域。

3 监测系统的实现

3.1 XADC的I/O端口说明

本方案中的监测系统主要通过控制XADC模块来实现所需的功能[7]。XADC模块的原理框图如4所示。DI[15:0]表示DRP输入数据,DO[15:0]表示DRP输出数据,DADDR[6:0]表示DRP输入数据地址,DEN表示DRP输入使能信号,DWE表示DRP输入写使能信号,DCLK表示DRP输入数据时钟,DRDY表示DRP输出数据准备信号,RESET表示XADC异步复位信号,RESET将被同步拉高到DCLK或者内部配置的时钟(当DCLK停止时),CONVST表示ADC转换开始,此信号仅用在突发采样模式,CONVSTCLK表示ADC转换时钟,配合CONVST信号工作。VP、VN表示专用的模拟输入差分信号,在设计中不用这对信号时应将引脚接地。VAUXP[15:0]、VAUXN[15:0]表示16对模拟输入差分信号,可以通过JTAG端口进行预配置,ALM[0]~ALM[3]分别表示温度报警信号输出,内核电压报警信号输出,辅助电压报警信号输出,块存储器电压报警信号输出。ALM[4]~ALM[6]表示其他电压报警信号输出,仅支持Zynq-7000 AP SoC系列器件,ALM[7]表示前六个报警信号的“或”,OT表示超高温报警信号输出,MUXADDR[4:0]表示将要被转换的序列的下一通道地址,工作在外部多路输入模式下,CHANNEL[4:0]表示当ADC转换结束后当前转换结果输出的通道,EOC表示ADC转换结束,高电平有效;EOS表示在自动通道序列模式下,来自最后一个通道的转换结果被写入状态寄存器,高电平有效;BUSY表示ADC处于转换状态,高电平有效;JTAGLOCED表示DRP工作在JTAG模式,此时为高电平,JTAGMODIFIED表示JTAG向DRP写数据,此时为高电平,JTAGBUSY表示JTAG与DRP正在发生数据交换,此时为高电平。

3.2 系y状态机的设计

本方案包括对XADC的例化和状态机设计[8],状态机设计的目的是产生XADC工作的状态时序,是设计中最关键的部分,针对本设计状态机完成的功能产生相应的DEN_IN和DADDR_IN信号。针对本设计,状态机产生的地址信号分别为00h、01h、02h、20h、21h、22h、24h、25h、26h,分别表示对状态寄存器中平均温度、平均内核电压、平均辅助电压、最大温度、最大内核电压、最大辅助电压、最小温度、最小内核电压、最小辅助电压数值的访问,并且在适当时机使DRP端口的信号有效,即DEN_IN=1。

状态机的实现方案如图5所示。首先状态机等待触发信号EOS_OUT,当触发信号EOS_OUT的上升沿到来时,DRP通过DADDR_IN向XADC写入平均温度的地址00h,同时DEN_IN保持一个时钟的高电平,然后状态转移到读取平均温度的值,如果DRDY_OUT为高电平,则状态转移到下一状态写最大温度的地址,否则状态保持为读平均温度的值;当状态机进入写最大温度的地址时,DRP写入地址20h,同时DEN_IN保持高电平,然后状态转移到下一状态读最大温度的值,如果DRDY_OUT为高电平,则状态转移到下一状态写最小温度的地址,否则保持当前状态,状态机依照此规律依次进行状态转移,将需要的数据依次读取出来,待读完最小辅助电压这一数据后,状态机进入等待状态,直到下一个触发信号EOS_OUT上升沿的到来才启动下一次循环。XADC状态转移图如图5所示。

3.3 监测系统的实现

编写完代码,经ISE14.7综合后,系统的RTL图如图6所示。可以通过Xilinx公司的ISIM软件[9]进行功能仿真,仿真的目的在于对状态的时序进行验证,确保功能正确。仿真结果如图7所示。在仿真过程中模拟了FPGA内部的温度、电压值,图中数据均为无符号数,比如地址33对应21h,存储的相应数据为最大温度49 173,转化为实际温度为105℃=(49 173×503.975)/65 536 C 273.15(℃)(为修正值),此时的温度已超过了预定的温度值85℃,因此输出的USER_TEMP_ALARM_OUT为高电平,总告警信号 ALARM_OUT也为高电平。

4 结 语

将综合、布局布线后生成的配置文件下载到FPGA中,运行设备,用ChipScope进行在线测试,系统运行后即可观察到FPGA内部的温度、电压值等,关闭设备的散热风扇,当设备运行了大约2个小时后,系统发出告警信号,同时在主机上可以观察到相应的信号。其中通过FPGA端口和JTAG两种方式读取的2组温度电压参数如表1所列。经过长时间的测试,此系统可以稳定工作,同时找出整个设备在工作过程中存在的问题,使工程顺利完工,达到工程中所要求的性能和指标。

参考文献

[1] Yeoh Y.J.,Jaafar H,Hassan W.Z.W.3-level automotive safety warning and alert system using FPGA [C].2015 IEEE International Circuits and Systems Symposium,2015:125-129.

[2]李纪云.数据采集系统数字基带转换固件和监控系统的实现[D].上海:上海应用技术学院,2015.

[3] LogiCORE IP AXI XADC v1.00a Product Guide.[EB/OL](2012-11-16)[2016-4-15].http:///support/documentation/ip_documentation/axi_xadc/v1_00_a/pg019_axi_xadc.pdf.

[4] AminA.Jarrah,MohsinM.Jamali.FPGA based architecture of Extensive Cancellation Algorithm (ECA) for Passive Bistatic Radar (PBR)[J]. Microprocessors and Microsystems ,2016,3(41) :56-66.

[5] 7 Series FPGAs and Zynq-7000 All Programmable SoC XADC Dual 12-Bit 1 MSPS Analog-to-Digital Converter User Guide.[EB/OL](2015-5-19)[2016-4-15]. http:///support/documentation/user_guides/ug480_7Series_XADC.pdf.

[6] 7 Series FPGAs Configuration User Guide.[EB/OL](2015-7-24)[2016-4-15].http:///support/documentation/user_guides/ug470_7Series_Config.pdf.

[7] XADC Layout Guidelines.[EB/OL](2013-12-13)[2016-4-15]. http:///support/documentation/application_notes/xapp554-xadc-layout-guidelines.pdf.

[8] Prashanth,B.U.V.Design and Implementation of Radar Cross-Section Models On a Virtex-6 FPGA[J].Journal of Engineering,2014,489(765):10.

[9] LIU Weibin,Zhu Mingri,Zheng Danpeng.Design of ultra-wideband radar control system based on FPGA[J].Computer Measurement & Control,2015(12):1-6.

上一篇:养殖螺旋藻提高夏季虾池水体氮磷比试验 下一篇:石景山区如何打造国际组织中心