一种FPGA加载偶发故障的分析

(整期优先)网络出版时间:2023-11-24
/ 2

一种FPGA加载偶发故障的分析

田妍 杜琦 程佳

航空工业西安航空计算技术研究所 陕西西安 710065

摘要:FPGA是一种数字电路为主的集成芯片,属于可编程逻辑器件。随着集成电路的高速发展,FPGA广泛应用于通信、数据处理和航空航天等领域。在实际工程应用中,FPGA加载异常的故障较为常见,本文以XILINX FPGA芯片XC3042偶发加载异常为例,分析了FPGA加载异常的原因,提高了FPGA在工程应用中的可靠性。

关键字:FPGA;可编程逻辑器件;逻辑加载

1.引言

机载计算机主要嵌入在各种航空器的机载设备中,完成各种信息的采集、处理,具有高性能的数据传输网络[1]。近年来,随着机载计算机的复杂度与综合度不断提高,FPGA由于其丰富的IP核,极高的集成度与复杂度,在机载计算机中的应用范围逐渐扩大[2]。在机载计算机的工作过程中,FPGA加载异常的故障较为常见,本文以一种典型的FPGA偶发加载异常故障为例,分析了FPGA偶发加载异常的原因,给出了FPGA能够正常工作所需的基本条件,为FPGA硬件设计提供了重要参考指标。

2. MBI模块功能及基本实现

MBI模块实现航电系统之间的GJB289A 总线通信功能,在航空电子通信系统中MBI主要完成传输层、数据链路层和物理层的功能,通过1553B总线实现与航电总线的互联。MBI模块的设计采用80C186处理器结合FPGA架构的方式,其中FPGA电路由XILINX公司的XC3042及国微公司的配置PROM芯片SM1701组成。

图1 MBI结构示意图

3FPGA加载故障

3.1 故障现象

在MBI模块工作过程中出现了偶发无法正常启动的故障。故障时测量MBI模块上FPGA逻辑电路XC3042和SM1701的加载时钟CLK信号一直输出未结束,加载结束标志LDC信号常低,输出数据DATA为常高无信号输出,表明MBI模块逻辑加载存在异常。正常在FPGA加载过程中,DATA信号会输出加载数据,加载结束后LDC信号从低电平变为高电平。

3.2 故障分析

此故障为FPGA电路加载异常,无法从配置PROM芯片SM1701中加载数据。

SM1701芯片是一款一次可编程PROM存储器,存储容量为1M×1Bit,内部地址计数器通过CLK端口上升沿进行计数,共有1M个地址,数据端口为1bits,读取速度≤80ns,工作电压为5V±10%,数据输出由CE和RESET/OE进行控制。

图2 SM1701 引出端俯视图

SM1701芯片读取架构如下图3所示(地址计数器可以通过RESET/OE和上电复位两种方式进行清零)。

图3 SM1701器件读取架构

SM1701芯片电源正常上电时,内部地址计数器复位:OE/RESET_N为高,输出有效;CE_N信号由FPGA给出,拉低处理,SM1701片选有效。此时,内部地址计数器通过CLK端口上升沿进行计数,共有1M个地址和数据通过DATA端口输出。1M个数据全部输出完成后,CEO信号输出低电平,表示器件已经读取所有地址。

图4 上电复位电路(POR)

经测量当系统加电时,该故障MBI模块供电系统存在异常,VCC信号是从0.9V开始爬升至5V,并非从0V起始。此异常可能导致FPGA电路配置PROM芯片SM1701内部复位电路故障,其上电复位电路(POR)如上图4所示。当电源VCC从0V开始上电爬升至5V时,PMOS1和NMOS1导通,等效为一个充电电阻R,因此在Q点等效为RC充电。

当电源从0V上电时,刚上电时Q点未充满电时,维持一个相对低电平,经过逻辑信号输出POR为高电平,直到Q点被充电至高电平,POR输出低电平。波形示意图如下所示:

图5 电源正常上电POR波形示意图

该POR高电平脉冲,送至地址计数器,地址计数器锁存结构如下图所示,由于POR为高电平,因此会将B点初始化为0,A点为1,此时所有地址计数器均为0,即初始化地址计数器从0开始计数。上电完成复位后,地址计数器通过输入CLK时钟,可以正常进行地址计数,并读取内部数据。

图6 地址计数器锁存结构

根据上电复位结构可知,当VCC存在0.9V左右浮电压时,通过PMOS1和NMOS1导通,等效为一个充电电阻R,该电阻对Q点充电至接近浮电压0.9V,由于Q点后级连接的NMOS2器件阈值约为0.75V左右,Q点电压可能会使得NMOS2处于导通状态。理论上分析,当浮电压大于0.75V时,可能存在NMOS2一直处于导通状态。因此从浮电压0.9V重新上电后引起复位脉冲不产生,或者复位脉冲宽度不够、复位电压不够,如下图所示,从而使得后续的地址计数器不能正常复位。

图7 浮电压电源上电POR为低电平示意图

图8 浮电压电源上电POR电压不够和宽度不够示意图

因此,系统5V加电时存在的浮电压,可能导致SM1701芯片内部POR复位信号异常,从而导致FPGA无法正常加载。

3.3 故障原因

由于系统加电时,模块供电系统异常,存在0.9V浮电压,VCC信号并非从0V开始爬升至5V,而是从0.9V开始爬升至5V。SM1701芯片其输入高电平电压V

IH为2.0-VCC,输入低电平电压VIL为0-0.8V,芯片内部复位电路阈值电压为0.75V。因此当系统中存在约0.9V浮电压时,SM1701芯片无法正确识别输入电平,导致芯片内部复位不充分,影响上电复位电路无法正常输出复位信号,加载PROM数据错误,PFGA配置失败。因此在硬件电路设计过程中,应避免系统中存在异常电压从而影响FPGA的正常加载。

4结束语

本文针对实际工程应用中一种FPGA加载偶发故障,分析了其故障原因,并给出了FPGA能够正常加载所需的工作条件,可作为硬件电路设计的重要指标。在实际工程应用中,FPGA工作异常的原因较多,本文所涉及的问题作为FPGA能够正常工作的基本条件,在FPGA硬件电路设计中至关重要。

参考文献:

[1] 牛文生.机载计算机技术发展的现状与趋势[J].计算机科学,2006(7):231-269.

[2] 揭应平.FPGA芯片设计及其应用分析[J].集成电路应用,2017(12):37-41.