介绍一种低成本的抗辐照解决方案。该方案从外置高可靠存储器中读取配置数据,通过定时刷新结合三模冗余的方式消除单粒子影响,提高系统的鲁棒性。
1.总体设计
SRAM型FPGA的刷新方式有两种,一是通过反熔丝FPGA进行回读刷新控制,二是通过专用的ASIC芯片进行回读刷新控制。这里采用方式一进行抗SEU设计,该方案可以兼容多种XILINXVIRTEX系列FPGA,可通过跳线进行FPGA选型配置。结构如图所示。XC5VFX130T芯片实现高速数字信号处理,AX500反熔丝芯片完成对V5FPGA的配置、监控及刷新,NorFlash用于存放配置程序。
系统工作时,反熔丝FPGA会读取三片NorFLASH中存储的配置文件,采用表决通过的数据作为正确配置信息对XILINXV5系列FPGA进行加载,然后通过SelectMap接口实现对Virtex5FPGA的定时刷新。
2.软件设计
对XILINXV5系列FPGA的刷新控制由AX500反熔丝FPGA完成, FPGA刷新模块的工作流程如图所示。
(1)FPGA初始化。FPGA上电稳定期间,将PROG_B信号拉低3ms进行初始化复位,复位过程中INIT_B信号将保持低电平。等待Tpo时间后若INITB拉高则表示FPGA配置区内存已清除,可以执行下一步流程;若INIT_B一直为低,则不断检测该信号,直至拉高为止。
(2)配置FPGA。初始化结束后,开始配置FPGA,FPGA管脚M2~M0设为110,FPGA将在INITB拉高期间设置pin脚,加载模式为SelectMap方式。随后反熔丝FPGA将按指定时序从NorFlash中读取配置数据进行表决,表决通过的配置数据沿CCLK送至SelectMap接口。然后模块将持续监测DONE信号查看是否加载成功,若超过预设的配置时间仍未拉高,则产生PROGB低电平脉冲对XilinxFPGA进行重载,重载8次仍不成功则回到初始化状态对FPGA进行复位。反熔丝FPGA与NorFlash接口信号时序图如图。
(3)定时刷新。监测到DONE信号拉高,说明XilinxFPGA加载成功。随后按10MHz的工作频率执行定时刷新操作并对写读FAR寄存器进行SEFI检测,检测到单粒子翻转则进行FPGA重载。根据用户手册,XC5VFX130FPGA的配置数据共有1065221字(25981帧*41字/帧)。FPGA刷新时序图如图所示。
3.应用验证
使用Modelsim对设计的RTL电路进行了仿真,下图所示为刷新控制模块的仿真验证波形。可以看出,控制模块将读取的配置数据通过SelectMap接口对FPGA进行定时刷新,刷新时序符合FPGA芯片手册的要求。随后通过模拟故障注人的方式对单粒子翻转进行了模拟,禁止刷新功能,并且经JTAG调试接口对XILINX FPGA加载错误的bit文件;注人错误的配置文件后单机遥测存在异常,打开刷新功能后单机功能恢复正常。
上述验证方案表明该设计能够及时纠正单粒子错误。