发明内容
本申请的目的在于提供一种FPGA存储单元失效分析方法、装置、电子设备以及存储介质,应用FPGA的单粒子翻转检测模块实现存储单元失效分析测试,解决了现有的失效分析方法成本高、适用性窄、灵活性低的问题。
为解决上述技术问题,本申请的技术方案如下:
本申请提供一种FPGA存储单元失效分析方法,其特征在于,包括:
激发所有的存储单元,使所述存储单元中失效存储单元的电平发生翻转;
根据单粒子翻转检测模块的单粒子翻转检测功能检测出所述失效存储单元。
进一步地,所述激发所有的存储单元,使所述存储单元中失效的存储单元电平发生翻转的步骤之前,还包括:
生成若干个配置位流并加载至所述存储单元,所述配置位流用于使每一个所述存储单元的逻辑状态同时存在低电平和高电平。
进一步地,所述根据单粒子翻转检测模块的单粒子翻转检测功能检测出所述失效存储单元的步骤,包括:
初始化所述单粒子翻转检测模块并运行所述单粒子翻转检测功能;
根据所述单粒子翻转检测功能为每一个所述存储单元进行单粒子翻转检测,当检测出所述电平发生翻转的存储单元时,将检测结果存储至第一寄存器,并将所述电平发生翻转的存储单元帧地址存储至第二寄存器。
进一步地,所述初始化所述单粒子翻转检测模块并运行所述单粒子翻转检测功能的步骤之前,还包括:
根据所述FPGA的内核工作温度范围和所述存储单元的电压拉偏范围设置所述FPGA的工作条件,选择任一所述工作条件;
其中,所述工作条件包括:
第一工作条件,所述FPGA位于第一工作条件时,所述FPGA的工作温度为所述内核工作温度范围的最高值,所述存储单元的电压拉偏为最大值;
第二工作条件,所述FPGA位于第二工作条件时,所述FPGA的工作温度为所述内核工作温度范围的最高值,所述存储单元的电压拉偏为最小值;
第三工作条件,所述FPGA位于第三工作条件时,所述FPGA的工作温度为所述内核工作温度范围的最低值,所述存储单元的电压拉偏为最大值;
第四工作条件,所述FPGA位于第四工作条件时,所述FPGA的工作温度为所述内核工作温度范围的最低值,所述存储单元的电压拉偏为最小值。
进一步地,所述根据所述单粒子翻转检测功能为每一个所述存储单元进行单粒子翻转检测的步骤,还包括:
当所述单粒子翻转检测功能没有检测出所述电平发生翻转的存储单元时,判断所述单粒子翻转检测功能是否在所有的所述工作条件下运行过,若所述判断结果为否,则更换所述工作条件并重新运行所述单粒子翻转检测功能;若所述判断结果为是,则停止运行所述单粒子翻转检测功能。
基于上述任一FPGA存储单元失效分析方法,本申请还提供一种FPGA存储单元失效分析装置,包括:
激发模块,用于激发所有的存储单元,使所述存储单元中失效的存储单元电平发生翻转;
检测模块,用于根据所述单粒子翻转检测模块的单粒子翻转检测功能检测出所述电平发生翻转的存储单元。
进一步地,所述FPGA存储单元失效分析装置还包括:
位流模块,用于生成若干个配置位流加载至所述存储单元,所述配置位流用于使每一个所述存储单元的逻辑状态同时存在低电平和高电平。
进一步地,所述FPGA存储单元失效分析装置还包括:
工作条件设置模块,用于根据所述FPGA的内核工作温度范围和所述存储单元的电压拉偏范围设置所述FPGA的工作条件并选择任一工作条件;
其中,所述工作条件包括:
第一工作条件,所述FPGA位于第一工作条件时,所述FPGA的工作温度为所述内核工作温度范围的最高值,所述存储单元的电压拉偏为最大值;
第二工作条件,所述FPGA位于第二工作条件时,所述FPGA的工作温度为所述内核工作温度范围的最高值,所述存储单元的电压拉偏为最小值;
第三工作条件,所述FPGA位于第三工作条件时,所述FPGA的工作温度为所述内核工作温度范围的最低值,所述存储单元的电压拉偏为最大值;
第四工作条件,所述FPGA位于第四工作条件时,所述FPGA的工作温度为所述内核工作温度范围的最低值,所述存储单元的电压拉偏为最小值。
基于上述任一FPGA存储单元失效分析方法,本申请还提供一种电子设备,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行上述任一项所述的FPGA存储单元失效方法的步骤。
基于上述任一FPGA存储单元失效分析方法,本申请还提供一种计算机可读存储介质,包括:
用于存储计算机指令,当所述计算机指令被运行时,执行时实现上述任一项所述的FPGA存储单元失效方法的步骤。
本申请的有益效果:
本申请提供了一种FPGA存储单元失效分析方法,所述方法包括:激发所有的存储单元,使所述存储单元中失效存储单元的电平发生翻转;运行FPGA的单粒子翻转检测模块,根据单粒子翻转检测模块的单粒子翻转检测功能检测出电平发生翻转的存储单元,即失效存储单元;本申请首次将单粒子翻转检测模块应用于FPGA存储单元的失效分析,利用单粒子翻转检测原理实现了对FPGA存储单元进行快速失效分析,可以有效地测试出一些不容易发现的弱失效以及早期失效,并且该方法不仅应用于FPGA的出厂测试,还能应用于FPGA的用户终端,以及还能应用于在实验室对失效FPGA进行分析验证,具有普适性,可操作性和灵活性。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述。应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)的配置信息存储于基于DRAM(Distributed RAM,分布式随机存储器)的半导体存储器件,对于DRAM而言,当输入输出(InputOutput,简称IO)线存在漏电或高阻情况时,就会导致FPGA存储单元的逻辑状态在被激发时改变(即电平发生翻转)出现存储器失效的情况;同时,DRAM也容易受到高能粒子的激发从而发生SEU(单粒子翻转)事件。SEU(单粒子翻转)是单个高能粒子射入半导体器件灵敏区使得器件逻辑状态发生翻转的现象。
由于FPGA发生存储单元失效以及发生SEU(单粒子翻转)事件会对FPGA存储单元的逻辑状态造成相同的影响(指电平发生翻转),基于该特征,本申请提出一种FPGA存储单元失效分析方法,基于对SEU(单粒子翻转)事件进行检测的单粒子翻转检测模块来检测FPGA存储单元中的失效存储单元,对于FPGA而言,单粒子翻转检测模块为单粒子翻转IP核(Intellectual Property,知识产权核),单粒子翻转检测模块是由单粒子翻转检测电路以及控制该单粒子翻转检测电路逻辑代码组成,具体的,IP核为集成电路领域的惯用技术,本申请实施例的目的在于应用IP核,因此不对IP核做更多叙述。
本申请实施例提供一种FPGA存储单元失效分析方法,图1为本申请实施例提供的FPGA存储单元失效分析方法流程图,如图1所示,该方法包括:
激发所有的存储单元,使失效的存储单元的电平发生翻转;FPGA被高能粒子激发使得FPGA单粒子逻辑状态发生翻转,单粒子翻转检测模块(单粒子翻转IP核)则通过对FPGA逻辑器件存储单元的逻辑状态进行扫描检测,并通过ECC算法(Error Checking andCorrection,错误和检查纠正),CRC算法(Cyclic redundancy check,循环冗余校验)等核心算法将位流进行运算,将当前存储单元的信息和备份的信息进行比对,以判断FPGA器件的逻辑状态是否发生了单粒子翻转,而本申请实施例并不是要检测单粒子翻转,只是利用单粒子翻转检测原理检测出存储单元中已存在的失效,FPGA失效的存储单元在激发后漏电,导致电平发生翻转,因此在FPGA运行单粒子翻转检测模块之前,首先需要激发FPGA的存储单元,具体地,通过PVT测试(Process工艺Voltage电压Temperature温度)、DVS测试(Dynamic voltage stress test,动态电压测试)等激发手段对FPGA的存储单元进行激发,使失效的存储单元和弱失效的存储单元电平发生翻转,进而通过单粒子翻转检测功能检测出电平发生翻转的存储单元,即检测出失效的存储单元和弱失效的存储单元。
根据单粒子翻转检测模块的单粒子翻转检测功能检测出失效存储单元;
应当明确,单粒子翻转检测模块基于FPGA厂家提供的内部并行接口对存储单元进行访问,而FPGA厂家都会提供相对应的驱动代码,因此本申请实施例在此不对单粒子翻转IP核的驱动做额外的说明。
在一些实施例中,图2为本申请实施例提供的运行单粒子翻转检测模块的流程图,如图2所示,根据单粒子翻转检测模块的单粒子翻转检测功能检测出失效存储单元的步骤,包括:
初始化单粒子翻转检测模块并启动单粒子翻转检测功能;
根据单粒子翻转检测功能为每一个存储单元进行单粒子翻转检测,当检测出电平发生翻转的存储单元时,将检测结果存储至第一寄存器,该检测结果表示检测出电平发生翻转的存储单元,并将电平发生翻转的存储单元的地址存储至第二寄存器;第一寄存器与第二寄存器分别用于存储不同的结果,并且寄存器可存储的信息数量可以自定义设置。
在另一些实施例中,初始化单粒子翻转检测模块并启动单粒子翻转检测功能的步骤之前,还包括:
根据FPGA的内核工作温度范围和存储单元的电压拉偏范围设置FPGA的工作条件并选择任一工作条件;因为FPGA存储单元的供电由字线电压和位线电压组成,在上电后仍需要对字线电压和位线电压都进行正负拉偏,电压拉偏范围以FPGA器件数据手册所记录的最大值和最小值为界,不同类型的FPGA,其器件数据手册也可能不同;同时还应该考虑到FPGA器件的内核工作温度,内核工作温度范围同样以FPGA器件数据手册为准,切忌FPGA带电高低温测试的温度超过FPGA数据手册规格声明的器件工作温度范围,以免造成FPGA加速老化或者损坏。
其中,工作条件只需要设置FPGA内核工作温度和电压拉偏的四角测试环境,在对FPGA存储单元进行失效分析时,只需要在四角测试环境下分别进行检错,四角测试环境具体包括:
第一工作条件,FPGA位于第一工作条件时,FPGA的工作温度为内核工作温度范围的最高值,存储单元的电压拉偏为最大值;
第二工作条件,FPGA位于第二工作条件时,FPGA的工作温度为内核工作温度范围的最高值,存储单元的电压拉偏为最小值;
第三工作条件,FPGA位于第三工作条件时,FPGA的工作温度为内核工作温度范围的最低值,存储单元的电压拉偏为最大值;
第四工作条件,FPGA位于第四工作条件时,FPGA的工作温度为内核工作温度范围的最低值,存储单元的电压拉偏为最小值。
在一些实施例中,如图2所示,根据单粒子翻转检测功能为每一个存储单元进行单粒子翻转检测的步骤,还包括:
当单粒子翻转检测功能没有检测出电平发生翻转的存储单元时,判断单粒子翻转检测功能是否在所有的工作条件下运行过,若判断结果为否,则更换FPGA的工作条件并重新运行FPGA的单粒子翻转检测功能,更换工作条件之前应先为FPGA下电;若判断结果为是,则停止运行FPGA的单粒子翻转检测功能。
在一些优选实施例中,激发所有的存储单元,使存储单元中的失效存储单元的电平发生翻转的步骤之前,还包括:
生成若干个配置位流并加载至存储单元,配置位流用于使每一个存储单元的逻辑状态同时存在低电平和高电平;为了使存储单元的码型分布更合理,因此需要生成多套配置位流,对FPGA的存储单元进行手动布局干预,以使每个存储单元的逻辑状态同时存在低电平和高电平,从而避免存储单元短路或者断路时,存储单元的逻辑状态全部为低电平或高电平时检测不出失效的隐患。
以下根据FPGA存储单元失效分析实验并结合图1-图2对本申请实施例提供的FPGA存储单元失效分析方法进行说明。
查询FPGA器件手册,获取FPGA的四角测试环境如下表,其中,任意类型的FPGA都包括对应的器件手册,因此本申请实施例不再对FPGA器件手册进行附加说明。
表1:内核工作温度和电压拉偏的四角测试环境
| 序号 |
温度(℃) |
电压拉偏 |
| 1 |
-40 |
+5% |
| 2 |
-40 |
-5% |
| 3 |
100 |
+5% |
| 4 |
100 |
-5% |
对FPGA进行PVT测试(或其他激发手段)激发失效的存储单元,并设置FPGA的四角测试环境(四个工作条件),分别在表1的四个工作条件下进行FPGA存储单元失效分析测试。
对FPGA进行上电初始化。
上电完成后单粒子翻转检测模块(单粒子翻转IP核)开始工作,FPGA完成单粒子翻转检测模块的初始化,如果之前已经进行过失效分析,则清除之前存储的信息。
启动单粒子翻转检测功能。
单粒子翻转检测功能会自动执行单粒子翻转检错,遍历每一个存储单元一一进行检错,如果发现错误,则会自动存储到指定的寄存器中,如将检测信息存储于第一寄存器,将发生错误的存储单元帧地址信息存储于第二寄存器,可存储的信息数量由用户设置。
当FPGA存在单粒子翻转之外的错误,如检测到的非单粒子翻转错误,例如系统错误,则系统自动结束检测,此时用户需要对环境进行排查。
如果执行完一次单粒子翻转检测,并且发生单粒子翻转报错,则系统结束检测,用户通过回读报错地址以确定具体失效的存储单元。
如果执行完一次单粒子翻转检测,没有发生单粒子翻转报错,系统将自动选择设置的其他工作条件,直至检测到单粒子翻转报错或者运行完所有工作条件。
如果执行完所有工作条件,没有发生单粒子翻转报错,则说明FPGA正常。
应当明确,本申请实施例应用单粒子翻转检测模块(单粒子翻转IP核)对FPGA存储单元进行失效分析,即在执行失效分析时,单粒子翻转检测模块会将所检测出的失效存储单元视为发生单粒子翻转错误,即上述单粒子翻转错误指的是失效的存储单元。
本申请实施例提供的FPGA存储单元失效分析方法首次将单粒子翻转IP核应用于FPGA存储单元的失效分析,利用单粒子翻转检测原理实现了对FPGA存储单元进行快速失效分析,可以有效地测试出一些不容易发现的弱失效以及早期失效,并且该方法不仅应用于FPGA的出厂测试,还能应用于FPGA的用户终端,以及还能应用于在实验室对失效FPGA进行分析验证,该方法所应用到的单粒子翻转检测功能还能根据用户需求进行相应地修改,具有普适性,可操作性和灵活性,极大地提高了芯片级和板级的可靠性。
基于上述FPGA存储单元失效分析方法,本申请实施例还提供一种FPGA存储单元失效分析装置,本申请实施例提供的FPGA存储单元失效分析方法的所有实施例均适用于FPGA存储单元失效分析装置,且均能达到相同或相似的有益效果。
本申请实施例提供的FPGA存储单元失效分析装置,如图3所示,包括:
激发模块100,激发模块100用于激发所有的存储单元,使失效的存储单元的电平发生翻转;
检测模块200,检测模块200用于根据单粒子翻转检测模块(单粒子翻转IP核)的单粒子翻转检测功能检测出电平发生翻转的存储单元。
在一些实施例中,如图4所示,上述FPGA存储单元失效分析装置还包括:
位流模块300,位流模块300用于生成若干个配置位流加载至存储单元,配置位流用于使每一个存储单元的逻辑状态同时存在低电平和高电平。
在一些实施例中,如图4所示,上述FPGA存储单元失效分析装置还包括:
工作条件设置模块400,工作条件设置模块400用于根据FPGA的内核工作温度范围和存储单元的电压拉偏范围设置FPGA的工作条件并选择任一工作条件;
其中,工作条件400具体包括:
第一工作条件,FPGA位于第一工作条件时,FPGA的工作温度为内核工作温度范围的最高值,存储单元的电压拉偏为最大值;
第二工作条件,FPGA位于第二工作条件时,FPGA的工作温度为内核工作温度范围的最高值,存储单元的电压拉偏为最小值;
第三工作条件,FPGA位于第三工作条件时,FPGA的工作温度为内核工作温度范围的最低值,存储单元的电压拉偏为最大值;
第四工作条件,FPGA位于第四工作条件时,FPGA的工作温度为内核工作温度范围的最低值,存储单元的电压拉偏为最小值。
基于上述FPGA存储单元失效分析方法,本申请实施例还提供一种电子设备,包括:
处理器;以及存储器,存储器用于存储处理器的可执行指令;
其中,处理器配置为经由执行可执行指令来执行上述实施例提供的FPGA存储单元失效方法的步骤。
其中,处理器还可以称为CPU(CentralProcessingUnit,中央处理单元),处理器可能是一种集成电路芯片,具有信号的处理能力;处理器还可以是通用处理器、DSP(DigitalSignal Process,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field Programmable Gata Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,其中通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
基于上述FPGA存储单元失效分析方法,本申请实施例还提供一种计算机可读存储介质,用于存储计算机指令,当计算机指令被运行时,执行时实现上述实施例提供的FPGA存储单元失效方法的步骤。
其中,该计算机程序可以以软件产品的形式存储在上述存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、磁碟或者光盘、ROM(Read-Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。
以上内容是结合具体的实施方式对本申请所作的进一步详细说明,不能认定本申请的具体实施只局限于这些说明。对于本申请所属技术领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干简单推演或替换,都应视为本申请的保护范围。