电子说
随着半导体工艺的不断发展,器件特征尺寸逐渐减少,激发单粒子翻转(Single Event Upset, SEU)效应所需的能量阈值呈几何级下降趋势。例如,65 nm工艺下器件发生电平翻转需6500个电荷,16 nm工艺下器件电平翻转仅需1000个电荷 。
虽然电平错误翻转引发的软错误不会对电路造成永久性的破坏,但是由于发生的能量阈值较低,所以在所有单粒子效应造成集成电路工作失效的事件中,电平错误翻转效应引起的事件占有比例最高,为40%。
由此可见,软错误已经成为先进工艺下大规模数字集成电路在辐射环境中最为主要的失效模式,这极大地限制了集成电路在一些可靠性较高的领域尤其是富含高通量低能粒子的航天航空场景中的应用。为促进航空航天事业的快速发展,需要对集成电路功能软错误的敏感性进行充分的研究和评估。
在所有的评估手段中,空间环境实测的方式获得的数据最为准确,但航天器的发射次数和载荷都是有限的,实验机会少且价格昂贵。因此,更多的评估手段被开发出来,主要有辐照测试,软件仿真和现场可编程门阵列(Field Programmable Gate Array, FPGA)模拟等技术路线 。
辐照测试可以精确控制辐射强度和时间,相比空间试验有着良好的可控性和灵活性。但是搭建辐照测试环境的开销依然非常庞大,具备辐照测试条件的单位也极少。此外,辐照测试需要批量测试,在测试过程中也极可能损伤芯片,且芯片出错后也很难定位敏感节点,故一般只用于成品芯片的性能测试和最终测试。
软件仿真通过数学分析方法,将真实情况下单粒子效应对电路造成的影响转化为故障产生概率,故障持续时间和故障节点位置等故障模型参数,最后将故障注入到电路中 。
软件仿真的优势在于模拟单粒子效应的灵活性,可从工艺级、器件级、晶体管级、门级和行为级各个层次对单粒子效应进行建模、仿真和分析。但随着电路规模的增加,软件仿真计算过程的时间开销也在显著增加,诸如开关级模拟的时间爆炸问题 。
相对于软件仿真技术,FPGA模拟单粒子翻转效应的实现成本更低,评估速度更快,更适合用于快速评估集成电路对单粒子翻转效应的敏感程度。具体实现方式主要有FPGA重配置注入故障,扫描链注入故障和旁路电路注入故障3种。
FPGA重配置注入故障是基于FPGA的重配置功能,在运行过程中,动态修改FPGA的配置信息以实现注入故障。扫描链注入故障是复用可测性设计的扫描链结构,将故障写至扫描链的入口,控制扫描链的数据进行串行移动,将故障准确写入待评估的寄存器中。旁路电路注入故障的实现原理和扫描链注入故障的实现原理类似,也是在原有的电路结构上添加附加电路,然后对电路注入故障以模拟单粒子翻转效应,但是消除了扫描链注入故障速度慢的缺点。
FPGA重配置注入故障、扫描链注入故障和旁路电路注入故障由于实现方式不一样,在评估速度、敏感点定位精度和使用电路规模等性能上也各有优劣。本文总结了FPGA重配置注入故障技术,讨论了扫描链注入故障技术,描述了旁路电路注入故障技术,对比了3种注入故障技术并对各类技术的发展方向进行了展望。
2
** FPGA重配置注入故障**
FPGA的配置信息包含了各类逻辑资源的配置状况、电压标准、连线情况和用户设计的使用情况 ^[14]^ 。借助配置控制指令,即可通过专用的配置读写接口(Internal Configuration Access Port,ICAP)访问FPGA的配置信息 ^[15]^ ;同时也能将其中某一位数据进行翻转(如0到1或1到0),再把修改后的配置信息写回FPGA以实现故障注入;最后持续读取配置信息还可监控故障注入后对电路造成的影响。
基于重配置的故障注入流程如图1所示,按照配置范围的大小,FPGA重配置技术可以进一步分为全局重配置和部分重配置 ^[16-17]^ 。全局重配置对整个FPGA芯片进行重新配置。在配置过程中,FPGA由于原始配置信息被清除而处于非正常工作状态,直到配置信息重新完整写入,FPGA才能正确工作。因此,从时间轴上看,FPGA工作是不连续的。全局重配置的优势在于配置过程的实现十分简单,不需要分析待测电路所使用的硬件资源,同时其电路评估速度比软件仿真要快几个数量级。
全局重配置的方式也存在重大缺陷,由于每次故障注入时都需要重新配置全部信息,会引入一定的时间开销,而且时间开销和配置信息的大小成正比。以Xilinx Zynq 7020为例,配置文件的大小为32.5 Mbit,在工作频率为100 MHz时,单次配置全部配置信息所需时间为32 ms ;如果对32.5 Mbit里每个比特位均进行一次故障注入测试,总计时间为284 h。
部分重配置则克服了以上缺陷,可选择部分配置信息进行重配置,未重配置的电路不受影响,对应的功能仍然可以正常运作。由于部分重配置大幅减少了读写的配置信息,可显著缩短重配置时间。
文献[19]使用Xilinx Virtex系列FPGA作为测试平台,当以全局重配置模式对电路注入故障时,完成单次配置需要169.738 ms。而如果只修改和待测电路相关的8 frame配置信息,仅需0.424 ms。此外,对于FPGA设计的电路,FPGA的利用率一般不会达到100%,未使用的空闲配置位无需被注入故障,这可以进一步减少时间开销 ^[20]^ 。
基于重配置的故障注入技术的主要优势是基于FPGA的内部功能实现,因此不会对待测电路造成影响,不会产生额外的硬件资源开销,实现成本极低,可适用于大规模电路,且电路评估速度也较为理想。但也存在不足之处,主要体现在3个方面。
其一是待评估的FPGA必须具备重配置功能,限制了FPGA硬件的选择范围。其二是每次执行故障注入时,需要访问、修改和重写配置信息,使得上位机和待评估FPGA之间会进行大量的数据交互,相对于FPGA电路的运行时间,交互过程产生的时间开销要高的多。以Xilinx Virtex系列FPGA为例,理论上配置全部比特位所需时间为9.9 ms,但实际通过计算机并口传输配置数据的过程需要20 s 。
部分重配置减少了信息交互的数据量,提高了评估效率,但整体测试的时间开销中数据交互过程仍占有较大比例。其三是主流FPGA的配置信息是加密的,虽然FPGA重配置技术能够在电路中注入故障,但是电路出现故障后,由于无法解析主流FPGA的配置信息,所以很难定位到具体的电路节点,给加固设计带来了困难。
3
扫描链注入故障
扫描链源于可测性设计。在可测性设计中,首先将寄存器替换为扫描寄存器,然后将多个扫描寄存器相连以形成扫描链结构,最后以移位寄存器的工作方式将测试激励写入扫描链的首端,或者将测试响应从扫描链的末端读出 。
可视作在普通寄存器结构上添加了一个2选1数据选择器。扫描寄存器有两个工作模式,工作模式的切换由信号Scan_en决定。当Scan_en不使能时,扫描寄存器为正常工作模式,此时功能等同于常规的D寄存器,采样输入端D的电平并输出。当Scan_en使能时,寄存器切换为扫描模式,此时可通过Scan_in输入故障数据以模拟单粒子翻转效应 。
将当前扫描寄存器的输出端Q和下一级扫描寄存器输入端Scan_in连接起来,就构成了扫描链。扫描链结构如图3所示,基于扫描寄存器的结构和工作原理可推导出,Scan_en不使能时,电路正常工作。Scan_en使能时,可以通过移位将故障数据串行输入到任意寄存器的Scan_in端,最终实现对任意寄存器注入故障以模拟单粒子翻转效应。
在实现扫描链注入故障电路时,扫描链的结构不是固定的,不同的扫描链电路产生的资源开销和故障注入速度也不同。文献[23]设计了3种不同的扫描链电路来实现故障注入,其中开销最大的电路和开销最小的电路资源开销相差近3倍,但单次故障注入时间减少了数微秒,虽然速度区别不大,但在大规模电路测试中能节约的时间开销极为可观。因此测试人员可根据测试平台提供资源(寄存器和数据选择器等)的大小和实际可达到的注入速度权衡使用合适的扫描链电路。
扫描链技术的优势在于可适用于任意规模电路的测试,也可用于ASIC电路的评估,同时不受FPGA测试平台的限制。故障注入速度最快可达到微秒级别,相对于重配置技术有了进一步的提高。由于扫描链的插入对象可以是任意触发器,因此故障注入后电路敏感节点的定位精度也较高。其最主要的缺陷是会产生额外的资源开销,且额外开销会随着电路规模的增大而增加。此外,为了能够正确定位电路对单粒子翻转效应的敏感区域,串行移位时钟的频率还不能较高,这样使得扫描链串行移位的时间开销显得颇为可观,需要在扫描链长度和评估速度上做出折衷。
最后,值得指出的是,扫描链技术在故障数据传输过程中存在和重配置技术一样的问题。文献[24]中提到所设计扫描链的单次故障注入速度为1 µs左右,但受串口传输的限制,每次故障激励数据的下发需要3.84 ms,因此接口的传输速率成为制约速度的主要因素。文献[22]中每次注入故障时需要主机和FPGA进行故障数据交互过程,频繁地通信导致故障注入速度偏慢。文献[23]针对数据通信过程进行了优化,将测试电路所需的故障激励数据一次性全部发送到FPGA的存储区,随后FPGA内部自动执行全部测试过程,主机和FPGA只需在起始阶段通信一次,减小了数据通信的时间开销,故障注入速度相对于文献[22]提高了2个数量级。
全部0条评论
快来发表一下你的评论吧 !