CN112798944B - 基于在线实时数据的fpga硬件错误归因分析方法 - Google Patents
基于在线实时数据的fpga硬件错误归因分析方法 Download PDFInfo
- Publication number
- CN112798944B CN112798944B CN202110058181.3A CN202110058181A CN112798944B CN 112798944 B CN112798944 B CN 112798944B CN 202110058181 A CN202110058181 A CN 202110058181A CN 112798944 B CN112798944 B CN 112798944B
- Authority
- CN
- China
- Prior art keywords
- error
- test
- circuit
- data
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318516—Test of programmable logic devices [PLDs]
- G01R31/318519—Test of field programmable gate arrays [FPGA]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本发明提出基于在线实时数据的FPGA硬件错误归因分析方法,用于精确诊断现有FPGA功能模块电路发生SEU的错误模式。首先,获取FPGA端各个检测对象电路模块A中交织伴随电路A`的编号α、算法功能信息γ、实时测试结果У、错误信息保存并记录;然后,通过测试结果实时反馈控制测试数据,依据资源类错误模式识别规则,在线分析检测到错误后R次的测试信息,识别检测对象电路模块的资源类错误模式;最后,获取实时检测到交织伴随电路测试结果У并在线分析,识别检测对象电路模块的数量类错误模式。本发明提高了故障检测精度、检测分辨率和故障检测覆盖率,为多个故障逻辑资源的防护加固策略提供了指导依据。
Description
技术领域
本发明属于片上系统技术领域,具体涉及一种基于在线实时数据的FPGA硬件错误归因分析方法,可用于对FPGA系统由于单粒子效应产生的软错误故障类型进行判定。
背景技术
随着电子通信、导航定位、压缩编码、图像处理等应用在航空、航天领域的快速发展,人们对空间电子仪器的处理性能要求越来越高。大规模现场可编程逻辑门阵列(FPGA)依靠工作频率高、可实现功能逻辑丰富、成本低、开发灵活等优势被广泛使用。但随着工艺技术的不断提高,高密度FPGA在空间环境下受辐射影响也愈发严重,其内部逻辑资源对单粒子效应敏感程度的差异性,使得错误模式在时间和空间上呈现多样性。因此,深入研究内部逻辑资源发生的错误模式,实现多种故障逻辑资源的精确诊断以及干扰性评估,对提高FPGA设备运行的可靠性有着重要指导意义。
Abramovici等在《BIST-based test and diagnosis of FPGA logic blocks》中采用BIST的方法检测可编程逻辑(CLB)的错误类型,将一个FPGA设计成3种不同的电路,由检测向量电路生成检测向量对被检测电路进行边界扫描,实现测试的可控性和可观察性;Lombardi等在《IDDQ Testing of input/output Resources of SRAM-Based FPGAs》中采用IDDQ测试的方法,通过监测CMOS电路的电压和电流,检测IO BLOCK和IO相关的布线资源;Lederer等在《A new functional fault model for FPGA Application-Orientedtesting》中在FPGA上映射一组电路,通过门级商用ATPG和学术级RT生成的测试序列进行故障模拟,检测出基于查找表的故障类型;杨振雷在《Flash型FPGA单粒子效应研究及新型测试验证系统的研制》中采用SoC+FPGA设计单粒子效应测试验证系统,通过(26,20)缩短汉明码和(26,16)缩短BCH码两种不同类型的差错控制编码(Error Correcting Codes,ECC),实现对块存储器BRAM的单粒子效应的检测;兰风宇在《Xilinx Virtex-7 FPGA软错误减缓技术研究》中利用回读、检错、纠错原理,通过ICAP(Internal Configuration Access Port)接口读写配置存储器,采用对配置存储器中与用户电路相关的关键帧进行检错纠错的策略,将大部分检错时间分配给关键帧,并通过检测电路提供的校验值实现对配置数据检错与纠错。
但是现有的检测方法大都仅仅研究单个故障逻辑资源的检测与诊断,无法实现对多故障逻辑资源的精确诊断和定位,且无法实时、准确的获得功能模块运行时的软错误风险评估,使得故障检测精度、检测分辨率、故障检测覆盖率都相对较低,给可靠性防护带来一定的难度。
发明内容
本发明的目的是针对上述现有技术的不足,提出一种基于在线实时数据的FPGA硬件错误归因分析方法,用于解决现有技术中存在的检测精度、检测分辨率、故障检测覆盖率都相对较低的技术问题,实现实时、准确的获得功能模块运行时的软错误风险评估,以及对多故障逻辑资源的精确诊断和定位。
为实现上述目的,本发明采取的技术方案包括如下步骤:
步骤1:获取FPGA端各个检测对象电路模块A中交织伴随电路A`的编号α、算法功能信息γ、实时测试结果У、错误数量λ、错误位置μ以及处理时间延迟、超时信息ν保存并记录;
步骤2:通过测试结果实时反馈控制测试数据,依据资源类错误模式识别规则,在线分析检测到错误后R次的测试信息У、λ、μ、ν,识别检测对象电路模块的资源类错误模式;
步骤3:获取实时检测到交织伴随电路测试结果У并在线分析,识别检测对象电路模块的数量类错误模式。
步骤1所述获取交织伴随电路编号、算法功能信息、测试结果的具体方法为:通过交织伴随电路开发文本信息中的算法实现描述,获取电路编号、算法功能信息;依据开发脚本获取交织伴随电路的标准输入输出格式的数据包;通过协处理器端对交织伴随电路在线输入标准输入I,将测试输出与标准输出O进行异或得到检测结果У,通过定时器实时计算处理时间,获取实时检测测试结果的错误信息,其中包含错误数量λ、错误位置μ以及处理时间延迟、超时信息ν。
步骤1所述交织伴随电路A`同步部署在检测对象电路模块A中,通过布局布线布设到FPGA端固定物理地址。
如果FPGA某功能模块的基本电路单元发生了单粒子效应,其故障在空间上不仅影响基本电路单元所在的功能模块,同时由于功能模块输出状态的传递性,也会对其他功能模块的输入或状态产生影响;在时间上可能造成电路状态的变化,引起时钟状态转换间隔的变化,造成相关功能模块的时序型故障,因此通过在设备上与检测对象电路模块的物理地址贴合,通过监测交织伴随电路状态,实时反应检测对象电路模块发生单粒子效应的现象。
所述的交织伴随电路算法功能,分为两种Function_a、Function_b,Function_a通过以Unit_a1、Unit_a2、Unit_a3为基本单元,流水线形式组合实现的算法功能;Function_b通过以Unit_b1为基本单元,流水线形式组合实现的算法功能;两种算法功能均可独立集成于交织伴随电路中。所述的标准输入输出格式的数据包具体内容包括各个交织伴随电路的测试数据,其中每个交织伴随电路的测试数据包含两部分,第一部分为测试Function_a_i的标准数据Test_a_i,第二部分为测试Function_b_i的标准数据Test_b_i。
所述的Unit_a1通过以对输入进行高位与低位换位后,分别与输入的一次与和或操作作为基本单元,通过时序逻辑电路级联,扩展LUT、FF以及布局布线、开关矩阵、配置存储器的资源使用量;所述的Unit_a2通过以对输入进行高位与低位换位后,分别与输入的一次与和或操作作为基本单元,通过组合逻辑电路级联,扩展LUT以及布局布线、开关矩阵、配置存储器的资源使用量;所述的Unit_a3通过对输出进行移位寄存的形式级联,扩展FF以及布局布线、开关矩阵、配置存储器的资源使用量;所述的Unit_b1通过例化BRAM原语,扩展BRAM以及布局布线、开关矩阵、配置存储器的资源使用量。
其中,各个基本单元之间的组合关系由测试电路资源的比例和总量确定:
USER1(LUT,FF)=Q*Unit_a1(LUT,FF)+W*Unit_a2(LUT)+E*Unit_a3(FF);
USER2(BRAM)=R*Unit_b1(BRAM);
其中参数Q、W、E根据检测电路中LUT与FF资源的总量和比例关系确定,参数R根据检测电路的BRAM的总量确定;
根据功能电路的时序以及检测电路贴合率的要求,约束条件为:
W<3Q;
Q*Unit_a1(LUT)+W*Unit_a2(LUT)>USER1(LUT);
Q*Unit_a1(FF)+E*Unit_a3(FF)>USER1(FF);
R*Unit_b1(BRAM)>USER2(BRAM)。
为满足时序电路建立时间和保持时间的要求,每两个Unit_a2单元后必须添加一个Unit_a1或Unit_a3单元。
为满足时序电路建立时间和保持时间的要求,每两个Unit_a2单元后必须添加一个Unit_a1或Unit_a3单元。
进一步的,所述的模块编号α、算法功能信息γ、错误信息记录形式如下:
α=Moudle_i,{i=1,2,3…N}:该变量代表工程中的第i个交织伴随电路编号,N为整个工程中的交织伴随电路数量;
α`=Moudle_i,{i=1,2,3…N}:表示检测对象电路错误模块编号;
У表示交织伴随电路输出数据与标准输出数据异或后的测试结果;
λ表示检测对象电路错误模块内测试数据的错误数量;
μ=Test_k_Moudule_i_Byte_c_Bit_d[k,I,c,d]:表示第k次检测中,第i个检测对象电路模块的第c个字节第d位出现错误;
ν=Test_k_Moudule_i_time_ν[ν]:表示第k次检测中,第i个交织伴随电路处理是否超时。
步骤2所述的通过测试结果实时反馈控制测试数据的具体方法为:开始测试,取出当前测试数据所在地址ADDR_i的标准输入输出数据,向交织伴随电路输入标准输入数据后获取测试输出数据,将标准输出数据与经过交织伴随电路处理后的输出数据进行异或,如果测试结果不为零,则判定有错误发生,此时将当前测试数据的所在地址赋值给下一次测试所需取出的测试地址,即ADDR_i=ADDR_i;如果测试结果为零,则判定无错,此时将当前测试数据的所在地址加一后赋值给下一次测试所需取出的测试地址,即ADDR_i=ADDR_i+1;步骤2所述的资源类错误模式分为LUT错误、FF错误、BRAM错误、配置位错误。
步骤2所述的资源类错误模式识别规则为:
由于LUT型、FF型和BRAM型存储器主要缓存正在或将要使用的临时运算数据,在故障时刻,故障位置处的内容发生极性翻转,其影响范围一般仅限于翻转的存储位本身,并不会造成故障的扩散,且一直保持到下次翻转或者重新写入;因此,可通过循环冗余注入测试数据,并检测错误发生到固定位置的时间超过翻转发生的单位时间阈值可判定LUT型错误、BRAM型错误,FF型可根据超过翻转单位时间阈值注入不变的测试数据下发生重新写入的方式,对结果是否变化进行判定;
配置位存储器发生SEU不会直接导致用户逻辑的输出错误,通常通过影响用户逻辑的描述方式,主要体现为查找表故障、可配置控制位故障,布局布线资源故障、缓冲器故障以及多路切换器故障,其中布线资源的故障占大多数,将会造成组合、时序逻辑电路的输出紊乱,造成触发器误触发、输入输出总线瞬时异常、输出无效数据以及输出延迟,表现为输出数据无效、输出存在可恢复的瞬态故障以及模块单次处理时间超时现象;可通过计数器计时,依据模块单次处理时间,检查校验模块是否出现时序输出紊乱以判定配置位错误模式;
步骤2所述的在线分析检测到错误后R次的测试信息,识别检测对象电路模块的资源类错误模式的具体步骤为:
步骤2a,检测到测试结果У的错误,开始识别;
步骤2b,判断结果ν是否超时,如果超时则为配置位错误,执行步骤2g;否则执行步骤2c;
步骤2c,统计错误出现在同一位置上的次数λμ;
步骤3d,λμ≤a次,则为配置位错误,执行步骤2g;否则执行步骤2e;
步骤2e,a<λμ<b,则为FF错误,执行步骤2g;否则执行步骤2f;
步骤2f,λμ≥b次,若错误位置出现在D_δ中,则为LUT错误,执行步骤2g;否则若错误位置出现在D_ζ中,则为BRAM错误,执行步骤2g;
步骤2g,结束识别。
其中,D_δ表示测试Function_a_i的数据在测试交织伴随电路的数据中的位置;D_ζ表示测试Function_b_i的数据在测试交织伴随电路的数据中的位置。
所述的a、b分别为检测配置位和FF、FF和LUT错误的判定阈值,不同的资源错误产生故障传播的时间不同,其错误模式对电路的影响时间和故障特性不同;通过将粒子对资源作用的时间以及软错误保持的时间设为阈值,并由系统工作频率计算可得到a、b的测试数据检测次数阈值。
步骤3所述的数量类错误模式分为单比特单字节错误、单比特多字节错误、多比特单字节错误和多比特多字节错误;
步骤3所述的判定数量类错误模式的具体步骤为:
步骤3a,检测到错误信息,开始识别;
步骤3b,获取测试结果У;
步骤3c,初始k=1,ERROR_BYTE=0,λН=0,(k=1,2,…Н);
步骤3d,计算第k个字节的汉明距离λk;
步骤3e,若λk>0,则ERROR_BYTE=ERROR_BYTE+1,否则ERROR_BYTE=ERROR_BYTE;若λk>λН,则λН=λk,否则λН=λН;
步骤3f,k<Н,则k=k+1,返回步骤3d;否则执行步骤3g;
步骤3g,若λН=1,ERROR_BYTE=1即为单比特单字节错误;若λН>1,ERROR_BYTE=1为多比特单字节错误;若λН=1,ERROR_BYTE>1即为单比特多字节错误;若λН>1,ERROR_BYTE>1为多比特多字节错误;执行步骤3h;
步骤3h,结束识别。
Н表示测试数据标准数据帧中的总字节数;
步骤2、3所述的在线分析,意为错误模式识别系统与FPGA同在生产环境中,与检测对象电路、交织伴随电路同步工作,根据实时获取的交织伴随电路的检测信息,对FPGA系统由于单粒子效应产生的软错误故障类型进行判定。
本发明与现有技术相比,具有以下优点:
第一、本发明基于软件系统开展对FPGA设备中功能模块发生单粒子效应的错误类型进行模式识别,提高了现有技术中存在的检测精度、检测分辨率、故障检测覆盖率,可实时、准确的获得功能模块运行时的软错误风险评估,以及对多故障逻辑资源实现精确诊断。
第二、通过本发明中FPGA设备发生单粒子效应的错误模式判定,可有效指导抗器件软错误的防护加固策略。
附图说明
图1为基于标准输入输出验证的实时FPGA错误模式识别方法的流程图;
图2为测试结果反馈测试数据的方法流程图;
图3为标准输入输出数据包格式图;
图4为资源类错误iao模式的识别方法;
图5为数量类错误模式的识别方法。
具体实施方式
下面结合附图和具体实施例,对本发明作进一步的详细描述。
本发明针对FPGA端硬件架构的检测对象电路模块功能电路进行错误模式识别,实现方案如下:
参见图1,
步骤1:获取FPGA端各个检测对象电路模块A中交织伴随电路A`的编号α、算法功能信息γ、实时测试结果У、错误数量λ、错误数据的位置μ以及处理时间延迟、超时信息ν保存并记录;
其中,所述交织伴随电路A`同步部署在检测对象电路模块A中,通过布局布线布设到FPGA端固定物理地址;
如果FPGA某功能模块的基本电路单元发生了单粒子效应,其故障在空间上不仅影响基本电路单元所在的功能模块,同时由于功能模块输出状态的传递性,也会对其他功能模块的输入或状态产生影响;在时间上可能造成电路状态的变化,引起时钟状态转换间隔的变化,造成相关功能模块的时序型故障,因此通过在设备上与检测对象电路模块的物理地址贴合,通过监测交织伴随电路状态,实时反应检测对象电路模块发生单粒子效应的现象。
步骤1a,通过交织伴随电路开发文本信息中的算法实现描述,获取电路编号α、算法功能信息γ;
其中,
模块编号α的记录形式是:
α=Moudle_i,{i=1,2,3…N}:该变量代表工程中的第i个交织伴随电路的编号,N为整个工程中的交织伴随电路数量;
算法功能信息γ是:
所述的交织伴随电路算法功能,分为两种Function_a、Function_b,Function_a通过以Unit_a1、Unit_a2、Unit_a3为基本单元,流水线形式组合实现的算法功能;Function_b通过以Unit_b1为基本单元,流水线形式组合实现的算法功能;两种算法功能独立集成于交织伴随电路中。
所述的Unit_a1通过以对输入进行高位与低位换位后,分别与输入的一次与和或操作作为基本单元,通过时序逻辑电路级联,扩展LUT、FF以及布局布线、开关矩阵、配置存储器的资源使用量;所述的Unit_a2通过以对输入进行高位与低位换位后,分别与输入的一次与和或操作作为基本单元,通过组合逻辑电路级联,扩展LUT以及布局布线、开关矩阵、配置存储器的资源使用量;所述的Unit_a3通过对输出进行移位寄存的形式级联,扩展FF以及布局布线、开关矩阵、配置存储器的资源使用量;所述的Unit_b1通过例化BRAM原语,扩展BRAM以及布局布线、开关矩阵、配置存储器的资源使用量;
其中,各个基本单元之间的组合关系由测试电路资源的比例和总量确定
USER(LUT,FF,BRAM)=M{Q*Unit_a1(LUT,FF)+W*Unit_a2(LUT)+E*Unit_a3(FF)+R*Unit_b1(BRAM)};
其中,参数M表示测试电路和用户电路之间资源总和的比例,参数Q、W、E根据检测电路中LUT与FF资源的总量和比例关系确定,参数R根据检测电路的BRAM的总量确定;
如一个实施例中,测试电路资源的资源总量LUT为4个,FF为6个,BRAM为2个;
USER可按照流水线级联4个Unit_a1单元后再级联2个Unit_a3单元以及级联2个Unit_b1单元实现;如一个实施例中,测试电路资源的资源总量LUT为10个,FF为9个,BRAM为4个;
USER可按照流水线级联9个Unit_a1单元后再级联1个Unit_a2单元以及级联4个Unit_b1单元实现;根据功能电路的时序以及检测电路贴合率的要求,约束条件为:
W≤2(Q+E);
M{Q*Unit_a1(LUT)+W*Unit_a2(LUT)}=USER(LUT);
M{Q*Unit_a1(FF)+E*Unit_a3(FF)}=USER(FF);
M{R*Unit_b1(BRAM)}=USER(BRAM);且为满足时序电路建立时间和保持时间的要求,每两个Unit_a2单元后必须添加一个Unit_a1或Unit_a3单元。
如一个实施例中,测试电路资源的资源总量LUT为6个,FF为1个,BRAM为1个;
USER可按照总量为1个Unit_a1,5个Unit_a2,2个Unit_a3,顺序为流水线级联1个Unit_a2单元后,再级联1个Unit_a1单元后,再级联2个Unit_a2单元后,再级联1个Unit_a3单元后,再级联2个Unit_a2单元后,再级联1个Unit_a3单元以及1个Unit_b1单元实现;
如一个实施例中,测试电路资源的资源总量LUT为3个,FF为1个,BRAM为3个;
USER可按照流水线级联2个Unit_a2单元后再级联1个Unit_a1单元以及级联3个Unit_b1单元实现,或者按照流水线级联2个Unit_a2单元后级联1个Unit_a3单元,而后再级联1个Unit_a2单元以及级联3个Unit_b1单元实现;
步骤1b,依据开发脚本获取交织伴随电路的标准输入输出格式的数据包;
参见图3:所述的标准输入输出格式的数据包具体内容包括各个交织伴随电路的标准输入数据I和标准输出数据O,其中每个交织伴随电路的测试数据包含两部分,第一部分为测试Function_a_i的标准数据Test_a_i,第二部分为测试Function_b_i的标准数据Test_b_i。
步骤1c,通过协处理器端对交织伴随电路输入步骤1b获取的标准输入I得到测试输出,将测试输出与标准输出O进行异或得到检测测试结果У,通过定时器实时计算处理时间,获取实时检测测试结果的错误信息,其中包含错误数量λ、错误位置μ以及处理时间延迟、超时信息ν;
其中,错误信息记录形式如下:
α`=Moudle_i,{i=1,2,3…N}:表示检测对象电路错误模块编号;
У表示交织伴随电路输出数据与标准输出数据异或后的测试结果;
λ表示检测对象电路错误模块内测试数据的错误数量;
μ=Test_k_Moudule_i_Byte_c_Bit_d[k,I,c,d]:表示第k次检测中,第i个检测对象电路模块的第c个字节第d位出现错误;
ν=Test_k_Moudule_i_time_ν[ν]:表示第k次检测中,第i个交织伴随电路处理是否超时。
步骤2:通过测试结果实时反馈控制测试数据,依据资源类错误模式识别规则,在线分析检测到错误后R次的测试信息У、λ、μ、ν,识别检测对象电路模块的资源类错误模式;
其中,通过测试结果实时反馈控制测试数据的具体方法如图2所示:开始测试,取出当前测试数据所在地址ADDR_i的标准输入输出数据,向交织伴随电路输入标准输入数据后获取测试输出数据,将标准输出数据与经过交织伴随电路处理后的输出数据进行异或,如果测试结果不为零,则判定有错误发生,此时将当前测试数据的所在地址赋值给下一次测试所需取出的测试地址,即ADDR_i=ADDR_i;如果测试结果为零,则判定无错,此时将当前测试数据的所在地址加一后赋值给下一次测试所需取出的测试地址,即ADDR_i=ADDR_i+1;
资源类错误模式分为LUT错误、FF错误、BRAM错误、配置位错误。
步骤2所述的资源类错误模式识别规则为:
由于LUT型、FF型和BRAM型存储器主要缓存正在或将要使用的临时运算数据,在故障时刻,故障位置处的内容发生极性翻转,其影响范围一般仅限于翻转的存储位本身,并不会造成故障的扩散,且一直保持到下次翻转或者重新写入;因此,可通过循环冗余注入测试数据,并检测错误发生到固定位置的时间超过翻转发生的单位时间阈值可判定LUT型错误、BRAM型错误,FF型可根据超过翻转单位时间阈值注入不变的测试数据下发生重新写入的方式,对结果是否变化进行判定;
配置位存储器发生SEU不会直接导致用户逻辑的输出错误,通常通过影响用户逻辑的描述方式,主要体现为查找表故障、可配置控制位故障,布局布线资源故障、缓冲器故障以及多路切换器故障,其中布线资源的故障占大多数,将会造成组合、时序逻辑电路的输出紊乱,造成触发器误触发、输入输出总线瞬时异常、输出无效数据以及输出延迟,表现为输出数据无效、输出存在可恢复的瞬态故障以及模块单次处理时间超时现象;可通过计数器计时,依据模块单次处理时间,检查校验模块是否出现时序输出紊乱以判定配置位错误模式;
参见图4:
步骤2中在线分析检测到错误后R次的测试信息,识别检测模块的资源类错误模式的具体步骤为:
步骤2a,检测到测试结果У的错误,开始识别;
步骤2b,判断结果ν是否超时,如果超时则为配置位错误,执行步骤2g;否则执行步骤2c;
其中,ν为模块处理时间延迟、超时信息;
步骤2c,统计错误出现在同一位置上的次数λμ;
步骤3d,λμ≤a次,则为配置位错误,执行步骤2g;否则执行步骤2e;
步骤2e,a<λμ<b,则为FF错误,执行步骤2g;否则执行步骤2f;
步骤2f,λμ≥b次,若错误位置出现在D_δ中,则为LUT错误,执行步骤2g;否则若错误位置出现在D_ζ中,则为BRAM错误,执行步骤2g;
其中,D_δ表示测试Function_a_i的数据在测试交织伴随电路的数据中的位置;D_ζ表示测试Function_b_i的数据在测试交织伴随电路的数据中的位置。
所述的a、b分别为检测配置位和FF、FF和LUT错误的判定阈值,不同的资源错误产生故障传播的时间不同,其错误模式对电路的影响时间和故障特性不同;通过将粒子对资源作用的时间以及软错误保持的时间设为阈值,并由系统工作频率计算可得到a、b的测试数据检测次数阈值。
步骤2g,结束识别。
步骤3:获取检测到交织伴随电路测试结果У并分析,识别检测对象电路模块的数量类错误模式。
步骤3所述的数量类错误模式分为单比特单字节错误、单比特多字节错误、多比特单字节错误和多比特多字节错误;
步骤3所述的数量类错误模式的判定,可有效对检测对象电路模块的错误风险性进行评估;
参见图5:
步骤3所述的在线判定数量类错误模式的具体步骤为:
步骤3a,检测到错误信息,开始识别;
步骤3b,获取测试结果У;
步骤3c,初始k=1,ERROR_BYTE=0,λН=0,(k=1,2,…Н);
步骤3d,计算第k个字节的汉明距离λk;
步骤3e,若λk>0,则ERROR_BYTE=ERROR_BYTE+1,否则ERROR_BYTE=ERROR_BYTE;若λk>λН,则λН=λk,否则λН=λН;
步骤3f,k<Н,则k=k+1,返回步骤3d;否则执行步骤3g;
步骤3g,若λН=1,ERROR_BYTE=1即为单比特单字节错误;若λН>1,ERROR_BYTE=1为多比特单字节错误;若λН=1,ERROR_BYTE>1即为单比特多字节错误;若λН>1,ERROR_BYTE>1为多比特多字节错误;执行步骤3h;
步骤3h,结束识别。
在步骤2和步骤3中,在线分析的意思是,错误模式识别系统与FPGA同在生产环境中,与检测对象电路、交织伴随电路同步工作,根据实时获取的交织伴随电路的检测信息,对FPGA系统由于单粒子效应产生的软错误故障类型进行判定。
本发明未详细说明部分属于本领域技术人员公知常识。
以上描述仅是本发明的具体实施例,不构成对本发明的任何限制,显然对于本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明原理的情况下,进行形式和细节上的各种修正和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求的保护范围之内。
Claims (7)
1.基于在线实时数据的FPGA硬件错误归因分析方法,其特征在于,
步骤1:获取FPGA端各个检测对象电路模块A中交织伴随电路A`的编号α、算法功能信息γ、实时测试结果У、错误信息保存并记录;
所述错误信息包括错误数量λ、错误数据的位置μ以及处理时间延迟、超时信息ν;
所述步骤1的具体过程是:
步骤1a,通过交织伴随电路开发文本信息中的算法实现描述,获取交织伴随电路的编号α、算法功能信息γ;
其中,
模块编号α的记录形式是:
α=Moudle_i,{i=1,2,3…N}:该变量代表工程中的第i个交织伴随电路的编号,N为整个工程中的交织伴随电路数量;
算法功能信息γ是:
所述交织伴随电路算法功能,分为两种Function_a、Function_b,Function_a通过以Unit_a1、Unit_a2、Unit_a3为基本单元,流水线形式组合实现的算法功能;Function_b通过以Unit_b1为基本单元,流水线形式组合实现的算法功能;两种算法功能独立集成于交织伴随电路中;
所述的Unit_a1通过以对输入进行高位与低位换位后,分别与输入的一次与和或操作作为基本单元,通过时序逻辑电路级联,扩展LUT、FF以及布局布线、开关矩阵、配置存储器的资源使用量;
所述的Unit_a2通过以对输入进行高位与低位换位后,分别与输入的一次与和或操作作为基本单元,通过组合逻辑电路级联,扩展LUT以及布局布线、开关矩阵、配置存储器的资源使用量;
所述的Unit_a3通过对输出进行移位寄存的形式级联,扩展FF以及布局布线、开关矩阵、配置存储器的资源使用量;所述的Unit_b1通过例化BRAM原语,扩展BRAM以及布局布线、开关矩阵、配置存储器的资源使用量;
步骤1b,依据开发脚本获取交织伴随电路的标准输入输出格式的数据包;
所述的标准输入输出格式的数据包具体内容包括各个交织伴随电路的标准输入数据I和标准输出数据O,其中每个交织伴随电路的测试数据包含两部分,第一部分为测试Function_a_i的标准数据Test_a_i,第二部分为测试Function_b_i的标准数据Test_b_i;
步骤1c,通过协处理器端对交织伴随电路输入标准输入I得到测试输出,将测试输出与标准输出O进行异或得到检测测试结果У,通过定时器实时计算处理时间,获取实时检测测试结果的错误信息,其中包含错误数量λ、错误位置μ以及处理时间延迟、超时信息ν;
步骤2:通过测试结果实时反馈控制测试数据,依据资源类错误模式识别规则,在线分析检测到错误后R次的测试信息У、λ、μ、ν,识别检测对象电路模块的资源类错误模式;
通过测试结果实时反馈控制测试数据的具体方法是:
开始测试,取出当前测试数据所在地址ADDR_i的标准输入输出数据,向交织伴随电路输入标准输入数据后获取测试输出数据,将标准输出数据与经过交织伴随电路处理后的输出数据进行异或,如果测试结果不为零,则判定有错误发生,此时将当前测试数据的所在地址赋值给下一次测试所需取出的测试地址,即ADDR_i=ADDR_i;如果测试结果为零,则判定无错,此时将当前测试数据的所在地址加一后赋值给下一次测试所需取出的测试地址,即ADDR_i=ADDR_i+1;
步骤3:获取检测到交织伴随电路测试结果У并分析,识别检测对象电路模块的数量类错误模式。
2.根据权利要求1所述的基于在线实时数据的FPGA硬件错误归因分析方法,其特征在于,
各个基本单元之间的组合关系由测试电路资源的比例和总量确定:
USER1(LUT,FF)=Q*Unit_a1(LUT,FF)+W*Unit_a2(LUT)+E*Unit_a3(FF);
USER2(BRAM)=R*Unit_b1(BRAM);
其中,参数Q、W、E根据检测电路中LUT与FF资源的总量和比例关系确定,参数R根据检测电路的BRAM的总量确定;
根据功能电路的时序以及检测电路贴合率的要求,约束条件为:
W<3Q;
Q*Unit_a1(LUT)+W*Unit_a2(LUT)>USER1(LUT);
Q*Unit_a1(FF)+E*Unit_a3(FF)>USER1(FF);
R*Unit_b1(BRAM)>USER2(BRAM);
为满足时序电路建立时间和保持时间的要求,每两个Unit_a2单元后添加一个Unit_a1或Unit_a3单元。
3.根据权利要求1所述的基于在线实时数据的FPGA硬件错误归因分析方法,其特征在于,
步骤1c中,所述错误信息记录形式是:
α`=Moudle_i,{i=1,2,3…N}:表示检测对象电路错误模块编号;
У表示交织伴随电路输出数据与标准输出数据异或后的测试结果;
λ表示检测对象电路错误模块内测试数据的错误数量;
μ=Test_k_Moudule_i_Byte_c_Bit_d[k,I,c,d]:表示第k次检测中,第i个检测对象电路模块的第c个字节第d位出现错误;
ν=Test_k_Moudule_i_time_ν[ν]:表示第k次检测中,第i个交织伴随电路处理是否超时。
4.根据权利要求1所述的基于在线实时数据的FPGA硬件错误归因分析方法,其特征在于,
步骤2中,所述的资源类错误模式识别规则是:
对于LUT型和BRAM型存储器,通过循环冗余注入测试数据,并检测错误发生到固定位置的时间超过翻转发生的单位时间阈值来判定LUT型错误、BRAM型错误,对于FF型存储器,FF型根据超过翻转单位时间阈值注入不变的测试数据下发生重新写入的方式,对结果是否变化进行判定;
对于配置位存储器,通过计数器计时,依据模块单次处理时间,检查校验模块是否出现时序输出紊乱以判定配置位错误模式。
5.根据权利要求4所述的基于在线实时数据的FPGA硬件错误归因分析方法,其特征在于,
步骤2中,在线分析检测到错误后R次的测试信息,识别检测模块的资源类错误模式的具体步骤为:
步骤2a,检测到测试结果У的错误,开始识别;
步骤2b,判断结果ν是否超时,如果超时则为配置位错误,执行步骤2g;否则执行步骤2c;
其中,ν为模块处理时间延迟、超时信息;
步骤2c,统计错误出现在同一位置上的次数λμ;
步骤3d,λμ≤a次,则为配置位错误,执行步骤2g;否则执行步骤2e;
步骤2e,a<λμ<b,则为FF错误,执行步骤2g;否则执行步骤2f;
步骤2f,λμ≥b次,若错误位置出现在D_δ中,则为LUT错误,执行步骤2g;否则若错误位置出现在D_ζ中,则为BRAM错误,执行步骤2g;
其中,D_δ表示测试Function_a_i的数据在测试交织伴随电路的数据中的位置;D_ζ表示测试Function_b_i的数据在测试交织伴随电路的数据中的位置
a、b分别为检测配置位和FF、FF和LUT错误的判定阈值,不同的资源错误产生故障传播的时间不同,其错误模式对电路的影响时间和故障特性不同;通过将粒子对资源作用的时间以及软错误保持的时间设为阈值,并由系统工作频率计算可得到a、b的测试数据检测次数阈值;
步骤2g,结束识别。
6.根据权利要求5所述的基于在线实时数据的FPGA硬件错误归因分析方法,其特征在于,
步骤3中,在线判定数量类错误模式的具体步骤为:
步骤3a,检测到错误信息,开始识别;
步骤3b,获取测试结果У;
步骤3c,初始k=1,ERROR_BYTE=0,λН=0,(k=1,2,…Н);
步骤3d,计算第k个字节的汉明距离λk;
步骤3e,若λk>0,则ERROR_BYTE=ERROR_BYTE+1,否则ERROR_BYTE=ERROR_BYTE;若λk>λН,则λН=λk,否则λН=λН;
步骤3f,k<Н,则k=k+1,返回步骤3d;否则执行步骤3g;
步骤3g,若λН=1,ERROR_BYTE=1即为单比特单字节错误;若λН>1,ERROR_BYTE=1为多比特单字节错误;若λН=1,ERROR_BYTE>1即为单比特多字节错误;若λН>1,ERROR_BYTE>1为多比特多字节错误;执行步骤3h;
步骤3h,结束识别。
7.根据权利要求1所述的基于在线实时数据的FPGA硬件错误归因分析方法,其特征在于,所述交织伴随电路A`同步部署在检测对象电路模块A中,通过布局布线布设到FPGA端固定物理地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110058181.3A CN112798944B (zh) | 2021-01-16 | 2021-01-16 | 基于在线实时数据的fpga硬件错误归因分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110058181.3A CN112798944B (zh) | 2021-01-16 | 2021-01-16 | 基于在线实时数据的fpga硬件错误归因分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112798944A CN112798944A (zh) | 2021-05-14 |
CN112798944B true CN112798944B (zh) | 2022-05-31 |
Family
ID=75809944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110058181.3A Active CN112798944B (zh) | 2021-01-16 | 2021-01-16 | 基于在线实时数据的fpga硬件错误归因分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112798944B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113721135B (zh) * | 2021-07-22 | 2022-05-13 | 南京航空航天大学 | 一种sram型fpga故障在线容错方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101153892A (zh) * | 2007-10-12 | 2008-04-02 | 成都华微电子系统有限公司 | 现场可编程门阵列输入输出模块验证方法 |
CN101191819A (zh) * | 2006-11-21 | 2008-06-04 | 国际商业机器公司 | Fpga、fpga配置、调试系统和方法 |
CN101561477A (zh) * | 2009-05-15 | 2009-10-21 | 中国人民解放军国防科学技术大学 | 现场可编程逻辑门阵列中单粒子翻转的检测方法及装置 |
CN102636744A (zh) * | 2012-04-24 | 2012-08-15 | 中国科学院空间科学与应用研究中心 | 一种检测fpga单粒子效应与其时序特性关系的装置及方法 |
CN105487035A (zh) * | 2016-01-25 | 2016-04-13 | 深圳市同创国芯电子有限公司 | Fpga边界扫描系统的验证方法及装置 |
CN107799151A (zh) * | 2016-09-02 | 2018-03-13 | 阿里巴巴集团控股有限公司 | 固态盘SSD及高可用性PCIe SSD的方法和系统 |
CN108737829A (zh) * | 2017-04-24 | 2018-11-02 | 英特尔公司 | 使用叠加进行混合现实编码 |
CN109947609A (zh) * | 2019-03-12 | 2019-06-28 | 江南大学 | 一种面向故障注入的软硬件协同加速方法和系统 |
CN111366841A (zh) * | 2020-04-07 | 2020-07-03 | 华北水利水电大学 | 一种fpga可编程逻辑单元测试设备及使用方法 |
US10852352B2 (en) * | 2018-10-25 | 2020-12-01 | Dell Products, L.P. | System and method to secure FPGA card debug ports |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7373567B2 (en) * | 2004-05-26 | 2008-05-13 | International Business Machines Corporation | System and method of providing error detection and correction capability in an integrated circuit using redundant logic cells of an embedded FPGA |
JP7471240B2 (ja) * | 2018-06-14 | 2024-04-19 | テクトロニクス・インコーポレイテッド | 試験測定装置及び試験測定装置の送信部 |
-
2021
- 2021-01-16 CN CN202110058181.3A patent/CN112798944B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101191819A (zh) * | 2006-11-21 | 2008-06-04 | 国际商业机器公司 | Fpga、fpga配置、调试系统和方法 |
CN101153892A (zh) * | 2007-10-12 | 2008-04-02 | 成都华微电子系统有限公司 | 现场可编程门阵列输入输出模块验证方法 |
CN101561477A (zh) * | 2009-05-15 | 2009-10-21 | 中国人民解放军国防科学技术大学 | 现场可编程逻辑门阵列中单粒子翻转的检测方法及装置 |
CN102636744A (zh) * | 2012-04-24 | 2012-08-15 | 中国科学院空间科学与应用研究中心 | 一种检测fpga单粒子效应与其时序特性关系的装置及方法 |
CN105487035A (zh) * | 2016-01-25 | 2016-04-13 | 深圳市同创国芯电子有限公司 | Fpga边界扫描系统的验证方法及装置 |
CN107799151A (zh) * | 2016-09-02 | 2018-03-13 | 阿里巴巴集团控股有限公司 | 固态盘SSD及高可用性PCIe SSD的方法和系统 |
CN108737829A (zh) * | 2017-04-24 | 2018-11-02 | 英特尔公司 | 使用叠加进行混合现实编码 |
US10852352B2 (en) * | 2018-10-25 | 2020-12-01 | Dell Products, L.P. | System and method to secure FPGA card debug ports |
CN109947609A (zh) * | 2019-03-12 | 2019-06-28 | 江南大学 | 一种面向故障注入的软硬件协同加速方法和系统 |
CN111366841A (zh) * | 2020-04-07 | 2020-07-03 | 华北水利水电大学 | 一种fpga可编程逻辑单元测试设备及使用方法 |
Non-Patent Citations (1)
Title |
---|
一种基于FPGA的微处理器软错误敏感性分析方法;梁华国 等;《电子与信息学报》;20170131;第39卷(第1期);第245-249页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112798944A (zh) | 2021-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Patel et al. | Application of Saluja-Karpovsky compactors to test responses with many unknowns | |
KR20130008035A (ko) | 에러 마스킹 팩터를 결정하기 위한 후방 방향 분석의 개선 | |
CN104635144A (zh) | 一种不依赖基准曲线的硬件木马检测方法 | |
CN112798944B (zh) | 基于在线实时数据的fpga硬件错误归因分析方法 | |
Mitra et al. | X-tolerant test response compaction | |
US20150268293A1 (en) | System and Method for Statistical Post-Silicon Validation | |
US20120060064A1 (en) | Soft error verification in hardware designs | |
Villalta et al. | Estimating the SEU failure rate of designs implemented in FPGAs in presence of MCUs | |
Krishnaswamy et al. | Logic circuit testing for transient faults | |
Xie et al. | An automated FPGA-based fault injection platform for granularly-pipelined fault tolerant CORDIC | |
May et al. | An fpga-based probability-aware fault simulator | |
JP2001052043A (ja) | 組合せ検証におけるエラー診断方法及びエラーサイト証明方法 | |
US7210083B2 (en) | System and method for implementing postponed quasi-masking test output compression in integrated circuit | |
CN109739715A (zh) | 一种故障检测方法和装置 | |
CN111079356B (zh) | 一种单粒子加固有效性系统级验证方法 | |
Abid et al. | LFTSM: Lightweight and fully testable SEU mitigation system for Xilinx processor-based SoCs | |
US8060800B2 (en) | Evaluation circuit and method for detecting and/or locating faulty data words in a data stream Tn | |
US7328386B2 (en) | Methods for using checksums in X-tolerant test response compaction in scan-based testing of integrated circuits | |
CN112798943B (zh) | 一种基于标准输入输出验证的实时fpga错误检测方法 | |
CN110377924A (zh) | 硬错误模拟及其使用 | |
Bramley et al. | On the measurement of safe fault failure rates in high-performance compute processors | |
US11250198B2 (en) | Method to perform hardware safety analysis without fault simulation | |
CN111274080A (zh) | 基于寄存器扫描链的调试数字电路功能的方法 | |
Mogollón et al. | Metrics for the measurement of the quality of stimuli in radiation testing using fast hardware emulation | |
Liu et al. | On efficient silicon debug with flexible trace interconnection fabric |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |