一种用于sram型fpga的快速可靠性评估方法
【技术领域】
[0001] 本发明属于电路可靠性评估技术领域,特别涉及SRAM型FPGA的可靠性评估方法, 具体是一种用于SRAM型FPGA的快速可靠性评估方法。
【背景技术】
[0002] SRAM型FPGA是目前市场上主流的FPGA电路结构,它在航天、医疗、汽车等领域均 得到广泛的应用。但是,SRAM型FPGA在高能粒子的轰击下,容易发生软错误,软错误主要 表现为:FPGA的电路配置比特,即SRAM单元发生改变,造成电路拓扑逻辑错误;FPGA触发 器存储的逻辑值发生改变,导致电路运行状态错误。随着芯片制造工艺的不断进步,芯片特 征尺寸越来越小,FPGA发生软错误所需要的高能粒子轰击能量随之降低,导致SRAM型FPGA 的软错误发生率越来越大。因此,在设计过程中,通常要对SRAM型FPGA进行可靠性评估, 进而指导可靠性优化。
[0003] SRAM型FPGA的可靠性评估方法主要分为两类:基于硬件模拟的可靠性评估方法 和基于软件的可靠性评估方法。基于硬件模拟的可靠性评估方法需要辐照等硬件实验设 备,将SRAM型FPGA芯片放置于辐照环境中,模拟SRAM型FPGA芯片的实际工作环境,观察 并分析SRAM型FPGA芯片受到高能粒子轰击后的故障发生情况,从而评估SRAM型FPGA芯 片的可靠性。但是,基于硬件模拟的可靠性评估方法需要价格高昂的设备,而且一般用于在 电路设计后期评估可靠性,无法在电路设计前期指导电路可靠性的优化。一般情况下,基于 硬件模拟的可靠性评估方法仅用于对SRAM型FPGA芯片进行芯片特性分析。
[0004] 基于软件模拟的可靠性评估方法仅通过软件程序模拟SRAM型FPGA电路发生故障 的情况,无需搭建硬件辐照平台,且在电路网表生成后即可进行可靠性评估,在电路设计初 期即为可靠性优化提供有效的指导。因此,SRAM型FPGA可靠性评估主要使用基于软件模 拟的方法。
[0005] 目前,基于软件模拟的可靠性评估方法采用的指标是软错误率SER (Soft Error Rate)。SRAM型FPGA的软错误率SER的计算方法可分为两类,分别是:基于蒙特卡洛的可 靠性评估方法(下文中简称为蒙特卡洛法)和基于概率分析的可靠性评估方法(下文中简 称为概率分析法)。蒙特卡洛法需要遍历所有待评估故障和输入向量。首先选取一个待评 估故障F,然后遍历所有可能的输入向量,对于每个输入向量P,分析该输入向量P下故障F 是否使电路失效,具体的分析方法是计算输入向量P下电路正常的输出结果,以及故障F下 向量P输出电路后所得的输出结果,如结果不同则判断电路失效。待遍历所有输入向量和 所有待评估故障后,即可得出SRAM型FPGA的软错误率SER。
[0006] 蒙特卡洛法具有非常高的计算精度。然而,它需要对电路所有可能的输入向量进 行分析。对于N个输入的电路,每个待评估故障都需要分析2N个输入向量。随着电路规模 的增加,输入向量的数目呈指数增加,电路中待评估故障的数目也随之增加,因此,计算故 障传播概率需要非常长的时间。例如,对于一个一万门的电路,采用蒙特卡洛法计算故障传 播概率需要整整一年的时间。
[0007] 概率分析法同样需要遍历所有待评估故障,但与蒙特卡洛法不同,它不需要遍历 所有输入向量,因此可以有效的减少计算时间。概率分析法计算软错误率SER的计算公式 如下:
[0008] SER^YjNERiXEPPi /:1
[0009] 其中,Nf表示电路中待评估的故障节点总数。一般而言,SRAM型FPGA电路中的每 一条连线,每一个查找表(LUT,L 〇〇k Up Table)都可能发生故障。如果查找表LUT发生了故 障,那么这个查找表的输出线上就会出现故障值,可以认为连线上发生故障。因此,可以通 过分析连线的故障来分析SRAM型FPGA的可靠性,即SRAM型FPGA电路中的每条连线都为 一个故障节点。节点故障概率NER i (Node Error Rate)表示第i个故障发生的概率,它主要 由辐照强度和故障位置对应的配置比特数目决定。辐照强度越大,即高能粒子越多、能量越 大,则SRAM型FPGA受高能粒子轰击后发生故障的可能性越大。另一方面,故障位置对应的 配置比特数目越多,故障发生的可能性也越大。例如,SRAM型FPGA电路中的连线由多个配 置比特决定,任意一个配置比特受高能粒子轰击而发生翻转,都可能导致该连线发生故障。 故障传播概率EPP i (Error Propagation Probability)表示第i个故障使电路失效的概率, 它主要由电路拓扑逻辑决定。计算故障传播概率EPPi时,首先假设每个输入取逻辑值0和 1的概率各为〇. 5,然后通过定义逻辑运算和故障传播两种概率计算规则,得到各个故障传 播到输出、使电路失效的概率。
[0010] 具体地,逻辑运算的概率计算规则定义了:已知一个查找表的各个输入为〇或为1 的概率,如何计算该查找表输出为0或为1的概率。例如,对于一个"与"功能的二输入查 找表,其输出为〇的概率等于任意查找表输入为〇的概率,而其输出为1的概率等于所有查 找表输入同时为1的概率;对于一个"或"功能的二输入查找表,其输出为1的概率等于任 意查找表输入为1的概率,而其输出为0的概率等于所有查找表输入同时为0的概率。故 障传播的概率计算规则定义了:已知故障传播到一个查找表LUT某些输入的概率和查找表 其它输入为0或为1的概率,如何计算故障传播到该查找表输出的概率。例如,假设故障只 传播到查找表的一个输入,对于一个"与"功能的查找表,故障传播到查找表输出的概率等 于故障传播到查找表一个输入且同时另一个输入为1的概率;对于一个"或"功能的查找 表,故障传播到查找表输出的概率等于故障传播到查找表一个输入且同时另一个输入为0 的概率。
[0011] 因此,概率分析法不需要分析具体输入向量,就可以计算得到SRAM型FPGA的软错 误率SER,减少了大量计算时间。然而,上述定义的逻辑运算和故障传播两种概率计算规则 均假设电路中每个查找表的各个输入之间不存在逻辑值的相关性,即假设一个查找表的任 意一个输入的逻辑值与该查找表的其它输入的逻辑值之间不存在相关性。该假设在实际电 路中并不总是成立的,因而概率分析法的精度远不如蒙特卡洛法。
[0012] 由此可见,蒙特卡洛法拥有计算精度高的优点,但其计算时间长,而概率分析法拥 有计算时间短的优点,但其计算精度不足。因此,迫切需要找到一种更好的可靠性评估方 法,它能够在保证计算精度的同时,尽可能的减少计算时间,实现对SRAM型FPGA电路快速 准确的可靠性评估。
【发明内容】
[0013] 本发明的目的是克服上述现有技术的缺点,提供一种既能够保证计算精度,又可 以减少计算时间的适用于SRAM型FPGA的快速可靠性评估解决方法。
[0014] 为实现上述目的,本发明提供了一种适用于SRAM型FPGA的快速可靠性评估方法, 包括如下步骤:
[0015] (1)根据VHDL硬件语言的设计规则,确定模块划分准则,并将待处理的VHD源程序 按照模块划分准则划分成L个模块;
[0016] (2)结合硬件设计工具ISE,对划分后的L个模块依次进行综合、映射、布局布线以 及生成XDL文件操作;
[0017] (3)利用概率分析法对L个模块的XDL文件进行分析,粗算得到各模块的软错误 率SER并将其添加到粗算集合C 1,即C1= {SER i,SER2, ...,SERJ,其中,SERi表示粗算得到 的第i个模块的软错误率;
[0018] (4)对粗算集合(^采用最大类间方差算法OSTU选取阈值δ ;若第i个模块的软 错误率大于阈值S,即SERiS δ,1彡i彡L,则认为该模块需进行软错误率SER的精确计 算,将其添加到细算集合C2中;
[0019] (5)对细算集合(:2中各模块分别采用蒙特卡洛法进行软错误率SER的精确计算, 并将计算结果按照从大到小保存于防护集合S中;防护集合S用于指导可靠性优化。
[0020] 上述步骤⑴中所述的模块划分准则具体如下:
[0021] 2. 1)若该段VHDL代码为进程语句,则将其作为一个模块;
[0022] 2. 2)若该段VHDL代码为元件例化语句,则将其作为一个模块;
[0023] 2. 3)若该段VHDL代码为生成语句,则将其作为一个模块;
[0024] 2. 4)若该段VHDL代码为块语句,则将其作为一个模块;
[0025] 2. 5)若该段VHDL代码为函数语句,则将其作为一个模块;
[0026] 2. 6)若该段VHDL代码为过程语句,则将其作为一个模块。
[0027] 上述步骤(2)中对所述模块的具体操作处理如下:
[0028] 3. 1)读取模块的独立、可综合映射的VHD文件;
[0029] 3. 2)对该模块的VHD文件,依次调用ISE软件中的命令,综合过程使用XST命令, 映射过程使用MAP命令,布局布线过程使用PAR和TRCE命令,XDL文件的生成过程使用XDL 命令;
[0030] 3. 3)若还有未进行上述操作的模块,则返回步骤3. 1)对未处理的模块进行处理; 直至所述L个模块全部处理完毕。
[0031] 上述步骤(3)中的单个模块的具体粗算步骤如下:
[0032] 4. 1)通过模块的XDL文件获得模块中每个节点的节点错误概率NERi,节点错误概 率NERi通过以下式〈1>得到,
[0033] NERi= RpXNseam <1>
[0034] 其中,Rp为每个SRAM单元的原始错误率,通过查找具体的SRAM型FPGA芯片的单 粒子实验手册获得;N skm为节点位置对应的配置比特数目,每个节点位置对应的配置比特 数目通过分析模块的XDL文件获取;
[0035] 4. 2)通过模块的XDL文件,获得模块中每个节点的故障传播概率EPPi。
[0036] 上述步骤(4)的具体操作步骤如下:
[0037] 5. 1)对粗算集合(^中所有模块的软错误率SER进行直方图计算并归一化处理,软 错误率SER只取到小数点后两位,得到粗算集合C 1中模块的软错误率SER为0. 01?1的 概率;
[0038] 5. 2)令门限为t,将软错误率SER小于等于t的模块归为A类,软错误率SER大于 t的模块归为B类,分别计算当门限t取0.01到1,步长为0.01时,A类和B类的出现概率 PA、PbW及均值 Avg JP Avg B;