Loading [MathJax]/jax/output/HTML-CSS/jax.js
高级搜索

留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

基于相关性分离的逻辑电路敏感门定位算法

蔡烁 何辉煌 余飞 尹来容 刘洋

蔡烁, 何辉煌, 余飞, 尹来容, 刘洋. 基于相关性分离的逻辑电路敏感门定位算法[J]. 电子与信息学报, 2024, 46(1): 362-372. doi: 10.11999/JEIT230012
引用本文: 蔡烁, 何辉煌, 余飞, 尹来容, 刘洋. 基于相关性分离的逻辑电路敏感门定位算法[J]. 电子与信息学报, 2024, 46(1): 362-372. doi: 10.11999/JEIT230012
CAI Shuo, HE Huihuang, YU Fei, YIN Lairong, LIU Yang. Critical Gates Localization of Logic Circuits Based on Correlation Separation[J]. Journal of Electronics & Information Technology, 2024, 46(1): 362-372. doi: 10.11999/JEIT230012
Citation: CAI Shuo, HE Huihuang, YU Fei, YIN Lairong, LIU Yang. Critical Gates Localization of Logic Circuits Based on Correlation Separation[J]. Journal of Electronics & Information Technology, 2024, 46(1): 362-372. doi: 10.11999/JEIT230012

基于相关性分离的逻辑电路敏感门定位算法

doi: 10.11999/JEIT230012
基金项目: 国家自然科学基金(62172058),湖南省自然科学基金(2022JJ10052, 2022JJ30624)
详细信息
    作者简介:

    蔡烁:男,博士,副教授,研究方向为容错计算、电路系统可靠性等

    何辉煌:男,硕士生,研究方向为容错计算、电路系统可靠性

    余飞:男,博士,副教授,研究方向为非线性系统与电路、忆阻神经网络等

    尹来容:男,博士,副教授,研究方向为机构学与机器人、机械设计与理论等

    刘洋:男,硕士,高级工程师,研究方向为无线网络通信规划与设计

    通讯作者:

    蔡烁 caishuo@csust.edu.cn

  • 中图分类号: TN431.2; TN406

Critical Gates Localization of Logic Circuits Based on Correlation Separation

Funds: The National Natural Science Foundation of China (62172058), The Natural Science Foundation of Hunan Province (2022JJ10052, 2022JJ30624)
  • 摘要: 随着CMOS器件特征尺寸进入纳米量级,因高能粒子辐射等造成的电路失效问题日益严重,给电路可靠性带来严峻挑战。现阶段,准确评估集成电路可靠性,并以此为依据对电路进行容错加固,以提高电路系统可靠性变得刻不容缓。然而,由于逻辑电路中存在大量扇出重汇聚结构,由此引发的信号相关性导致可靠性评估与敏感单元定位面临困难。该文提出一种基于相关性分离的逻辑电路敏感门定位算法。先将电路划分为多个独立电路结构(ICS);以ICS为基本单元分析故障传播及信号相关性影响;再利用相关性分离后的电路模块和反向搜索算法精准定位逻辑电路敏感门单元;最后综合考虑面向输入向量空间的敏感门定位及针对性容错加固。实验结果表明,所提算法能准确、高效地定位逻辑电路敏感单元,适用于大规模及超大规模电路的可靠性评估与高效容错设计。
  • 随着互补金属氧化半导体(Complementary Metal Oxide Semiconductor, CMOS)器件特征尺寸持续缩小,电路规模不断增大,芯片的速度、功耗等性能得到稳步提升。但与此同时,工艺扰动、环境噪声和粒子辐射等造成的芯片失效率问题日益严重,给电路可靠性带来严峻挑战[1-3],尤其是因空间高能粒子辐射引发的软错误所带来的影响最为严重。依据国际半导体技术发展蓝图(International Technology Roadmap for Semiconductors, ITRS)对集成电路的预测,电路制造工艺由45 ns缩减至12 ns时,电路软错误率可增加10个以上数量级。因此,在设计阶段对电路失效率进行有效评估并采取合理容错与加固设计以提高产品可靠性变得刻不容缓[4]

    电路可靠程度可用电路失效率衡量。准确、高效地评估电路失效率是指导高效容错设计的前提[5]。逻辑电路失效率评估方法一般可分两类:基于模拟的方法与基于信号概率分析的方法。蒙特卡罗(Monte Carlo, MC)方法是典型的基于模拟的方法,其准确性与模拟次数密切相关[6]。由于要模拟多次才能保证准确性,MC方法往往耗时较长。概率转移矩阵(Probability Transition Matrix, PTM)与概率门模型(Probabilistic Gate Models, PGM)方法都可通过准确分析电路的输入输出关系评估电路整体失效率。PTM方法通过建立基本门电路的输入与输出关系评估电路可靠性,是一种能准确计算电路整体失效率的概率分析方法,其缺点是算法的空间复杂度太大[7,8]。PGM方法利用条件概率计算不同类型扇出重汇聚结构的节点信号概率,具有线性的空间复杂度,但在扇出重汇聚处的指数级时间复杂度未能得到有效解决。基于PGM的估算方法则假设所有逻辑门的输入信号相互独立,通过逐个门迭代计算输出节点概率,虽然计算过程简单,但因忽视了信号相关性影响,仅能得到近似结果[9-11]。文献[12]表明三模冗余技术是目前使用最广泛的缓解FPGA软错误的电路加固技术,可以有效提高电路可靠性。文献[13]提出的关键信号算法(Critical Score Algorithm, CSA)可快速计算特定输入下的电路失效率,其复杂度与电路规模呈线性关系,但也因其没有考虑信号相关性而导致准确性不高。当前关于电路信号相关性的研究仍无法做到在保证计算精度的情况下解决耗时问题,难以应用于超大规模电路的评估与计算。

    精准定位敏感目标且针对性地容错加固能以最小代价降低电路失效率[14,15]。在容错设计中,人们关注的是那些对电路输出端有直接影响的门,即敏感门。敏感门与输入激励向量及电路拓扑结构有关[16]。文献[17]结合信号传播特点,通过深度优先搜索递归算法对敏感单元进行标识,但因其重复计算扇出节点而影响了准确性。文献[18]考虑了扇出源节点与敏感门的关系,并通过从电路原始输出端向前迭代获取潜在敏感门集合,再逐一验证集合中的门单元。然而,潜在敏感门集获取方法是基于关键信号的,没有准确考虑信号相关性影响的情况下,潜在敏感门集本身存在误差。综上,由于电路规模增大和信号相关性影响,目前的方法很难既准又快地评估超大规模电路失效率[19];也很难精准、高效地定位对电路失效率影响较大的敏感单元。

    本文提出一种相关性分离方法用于准确、快速地计算特定向量激励下的电路失效率;在此基础上,利用相关性分离后的电路模块和反向搜索算法精准定位电路敏感单元;再综合考虑多输入激励的情况,确定最优容错目标,实现以低容错成本提高电路可靠性的目的。

    本文第2节详细介绍相关性分离方法(COrrelation SEparation Approach, COSEA);第3节提出基于相关性分离的逻辑电路敏感门定位算法;第4节对一系列电路的实验结果进行分析;最后是结论。

    本文提出一种充分考虑信号相关性的逻辑电路失效率计算方法,该方法将电路划分为多个独立电路结构(Independent Circuit Structure, ICS),并以这些独立电路结构为基本计算单元,分析它们的出错率及故障在电路中的传播情况,以此计算电路失效率。下面介绍此方法的原理与计算过程。

    逻辑电路中普遍存在大量扇出重汇聚结构。上游电路的故障信息会在扇出节点处沿扇出分支传播,若扇出支路重汇聚,则汇聚路径包含相关的故障信息,导致信号具有相关性。可在扇出支路上标记故障来源,根据分支标记溯源故障信息。以扇出节点为间隔将电路划分为不同电路模块。每个模块包含多个输入节点和一个输出节点,其中,输入为电路扇出节点或原始输入信号,输出为扇出节点或原始输出。每个电路模块代表的电路结构都不同,模块失效率相互独立,将这些模块称为独立电路结构。根据ICS输出节点的不同,将其分为两类:输出节点为扇出节点的ICS称为扇出相关电路CFR,其对应的失效率PFR通过扇出源传播;输出为非扇出节点的ICS称为扇出无关电路CFI,其失效率PFI表示以该节点为输出的ICS失效率。

    对于非扇出节点j,以该节点为输出的ICS类型为CFI,其对应失效率PFI计算如式(1)所示:

    PFIj=FPG+ti=1PFIi (1)

    其中,t为其关键信号个数,PFIi为第i个关键输入信号的PFI。

    实际上,CFI可转化为CFR。转化后CFR的失效率PFR等于转化前PFI的失效率,与此同时,CFI(b)的PFI变为0,计算过程如式(2)所示:

    CFR(b)CFI(b)CFI(b),PFR(b)=PFI(b)PFI(b)=0} (2)

    式(2)表明,在检测到b点为扇出节点后,以b点为输出的CFI(b)即转化为CFR(b)

    电路节点的出错率受该节点输入锥中逻辑门的影响。将电路划分为不同的CFR和CFI,节点j的出错率可表示为EPNj = function(CFR1, CFR2, ···, CFRm, CFIj)。其中,m为节点j的输入锥中CFR的个数,CFIj为以节点j为输出的CFICFIj对节点j的影响是必然的;而对于CFR,其故障可能被屏蔽,也可能被传播至目标节点j,对该节点的出错率产生影响。因此,节点j的出错率EPNj可表示为

    EPNj=PFIj+ncj=1PFRj (3)

    其中,nc为对节点j出错率有影响的CFR的数目,PFRjCFRj的失效率,PFIjCFIj的失效率。

    影响目标节点出错率的CFR可能有多个,用U表示影响该节点的CFR集合;影响目标节点的CFI只有一个。通过以下节点信息可计算整个电路失效率:节点逻辑值LV、节点PFI、影响节点出错率的CFR集合U。T表示此3类信息集合,即T={LV, PFI, U}。节点逻辑值LV由门输入信号和门类型决定;PFI可利用CSA方法计算,随着目标节点的变化,CFI可转化为CFR

    接下来介绍如何计算集合U。CFR的故障信息通过其输出节点(扇出源)传播,当扇出分支在同一节点汇聚,由于故障信息已保存,在计算该节点出错率时可充分考虑到CFR间的相关性。目标节点前驱逻辑门的输入信号中,若多个输入信号中存在相同的CFR,则说明它们源于同一个CFR

    图1描述了n输入与门输出节点的CFR集合U的计算过程。设与门输入信号中‘1’的个数为n1,‘0’的个数为n0n1+n0 = n。输入为‘1’的信号记为P1P2, ···, Pn1,对应节点信息为{TP1, TP2, ···, TPn1},其中TPi={LVPi, PFIPi, UPi};输入为‘0’的信号记为Q1, Q2, ···, Qn0,对应节点信息为{TQ1, TQ2, ···, TQn0},其中,TQi={LVQi, PFIQi, UQi}。第Pi个‘1’信号节点信息的CFR集合UPi = {CFRPi(1), CFRPi(2), ···, CFRPi(kPi)},第Qi个‘0’信号节点信息的CFR集合UQi = {CFRQi(1), CFRQi(2), ···, CFRQi(kQi)},图1中各信号线上所列即为输入信号所对应的U。输出端的节点信息Tout = {LVout, PFIout, Uout}。

    图 1  与门输出节点的集合U计算过程

    针对不同输入,分情况讨论输出节点的CFR集合U的计算方法,表1列出了与门输出节点信息。同理,或门及非门的输出节点信息的计算方法与门类似,不再赘述。

    表 1  与门输出节点信息
    输入向量LVoutPFIoutUout
    n1=n, n0=01PFIP1+···+PFIPn1+FPGUP1UP2∪···∪UPn1
    n1=n–1, n0=10PFIQ1+FPGUQ1UP1∪···∪UPn1
    n0≥20FPGUQ1∩···∩UQn0UP1∪···∪UPn1
    下载: 导出CSV 
    | 显示表格

    (1) n1 = n, n0 = 0。如图1(a)所示,与门的所有输入都为1,其正常输出为1。此时,任意输入信号的CFR出错,都将导致与门输出出错。因此,输出节点的U即为输入节点的U之并集,即Uout=n1i=1UPi

    (2) n1 = n–1, n0 = 1。如图1(b)所示,与门输入中存在一个0信号,其正常输出为0。输入信号Qi上的CFRQi(kQi)出错,将导致与门输出出错;但若CFRQi(kQi)也存在于其他输入1信号中,则CFRQi(kQi)出错将使输入1信号变为0,导致与门输出仍为0。因此,只有存在于输入0且不存在于任意输入1上的CFR出错,才会导致与门输出出错。此时,输出节点的U为输入0信号的U减去所有输入1信号的U之并集,即Uout=UQ1n1j=1UPj

    (3) 1<n0<n, n1=nn0。如图1(c)所示,与门输入中存在多个0信号,其正常输出为0。与图1(b)情形类似,只有存在于所有输入0信号且不存在于任意输入1信号上的CFR出错,才能导致门输出出错。所以输出节点的U为所有输入0信号的U之交集减去所有输入1信号的U之并集,即Uout=n0i=1UQin1j=1UPj

    敏感门(Critical Gates, CG)指那些若发生故障便将直接导致电路失效的逻辑门。CG的故障不会被下游电路逻辑屏蔽,而是被传至电路原始输出端,或被下游存储单元捕获,从而导致电路失效。本节提出基于COSEA的敏感门定位算法,包括单个输入向量激励下电路的敏感门定位方法和多输入向量激励的敏感门定位方法(Vector Critical Gate Location Algorithm, VCGLA)。

    在单个特定向量激励下,若逻辑门故障导致电路失效,则称此逻辑门为向量敏感门(Vector Critical Gate, VCG)。对特定电路而言,不同输入向量对应不同的VCG集合。本节介绍如何计算电路的VCG集合。

    类似地,将那些若发生故障便会导致电路失效的ICS称为敏感ICS,否则为非敏感ICS。显然,所有以电路原始输出节点为输出的CFI都是敏感ICS。电路中的CFR是否为敏感ICS则取决于电路的拓扑结构和当前输入向量。由于非敏感ICS的故障不会导致电路失效,所以该结构内部的逻辑门都不是向量敏感门;而敏感ICS结构内部的逻辑门也并非都是向量敏感门,可使用关键信号定位敏感ICS内部的向量敏感门。

    VCGLA首先对输入的电路网表进行解析,针对每个单独的输入向量调用COSEA计算电路所有原始输出的节点信息T;其次,对所有输出节点的集合U进行分类,得到对电路输出有影响的敏感ICS集合;最后,对得到的ICS进行敏感门定位,使用反向搜索算法从ICS的输出向上游迭代,通过关键信号定位每个能影响到此ICS输出的逻辑门,将它们加入至敏感门集合。具体过程如算法1所示。

    算法1 VCGLA算法
     输入:电路网表文件,输入向量
     输出:向量敏感门
     1. 通过COSEA算法计算电路所有节点的T
     2. 计算CFR集合的输出:UCFR=m1i=1Ui //m1表示电路中CFR
      数量
     3. 计算CFI集合的输出: UCFI=m2i=1CFIi//m2表示电路中CFI
      数量
     4. 创建VCG.set用于存储向量敏感门
     5. FOR i =1 to n //nUCFR中的CFR数量和UCFI中的CFI数量
      之和
     6.  Locate output gate of independent circuit structure
     7. Node number are added to VCG.set
     8.  Calculate the number of critical inputs of the node: k
     9.   IF k == 0
     10.    GO to 5.
     11.  ELSE
     12.   FOR j = 1 to k
     13.    IF the critical gate j is the primary input or fanout
          node
     14.     GO to 12.
     15.    ELSE
     16.     GO to 7.
     17.    END IF
     18.   END FOR
     19.  END IF
     20. END FOR
     21. END
    下载: 导出CSV 
    | 显示表格

    本文以图2电路为例说明VCGLA具体计算过程。

    图 2  示例电路

    步骤1 根据COSEA方法计算示例电路原始输出Out1和Out2的节点信息分别为Tout1 ={1, FPG, {CFR(S1), CFR(S4)}}和Tout2={1, 4FPG, {CFR(S1), CFR(S4), CFR(S5)}},则输出节点的UCFR = Uout1Uout2 = {CFR(S1), CFR(S4), CFR(S5)}, UCFI = {CFI(out1), CFI(out2)}。电路节点信息的具体计算过程如表2所示,其中No表示该节点处不需要进行CFI和CFR之间的转化。

    表 2  示例电路节点信息计算过程
    节点输入LVCFICFRPFIUT
    G1111NoPFIG1=FPGUG1={Ø}TG1={1, FPG, Ø}
    S111PFRS1=PFIG1=FPGPFIS1=0US1= UG1CFR(S1)={CFR(S1)}TS1={1, 0, CFR(S1)}
    G2100NoPFIG2=FPGUG2={Ø}TG2={0, FPG, Ø}
    G310NoPFIG3=FPGUG3= US1={CFR(S1)}TG3={0, FPG, CFR(S1)}
    S200PFRS2=PFIG3=FPGPFIS2=0US2= UG3CFR(S2)={CFR(S1), CFR(S2)}TS2={0, 0, {CFR(S1), CFR(S2)}}
    G401NoPFIG4=FPGUG4= US2={CFR(S1), CFR(S2)}TG4={1, FPG,{CFR(S1), CFR(S2)}}
    G5010NoPFIG5=2FPGUG5=US2US1={CFR(S2)}TG5={0, 2FPG, CFR(S2)}
    G6101NoPFIG6=2FPGUG6=UG4UG5={CFR(S1)}TG6={1, 2FPG, CFR(S1)}
    S300PFRS3= PFIG2=FPGPFIS3=0US3= UG2CFR(S3)={CFR(S3)}TS3={0, 0, CFR(S3)}
    S411PFRS4=PFIG6=2FPGPFIS4=0US4= UG6CFR(S4)={CFR(S1), CFR(S4)}TS4={1, 0,{CFR(S1), CFR(S4)}}
    G7101NoPFIG7=3FPGUG7= US4US3={CFR(S1), CFR(S4)}TG7={1, 3FPG, {CFR(S1), CFR(S4)}}
    S511PFRS5= PFIG7=3FPGPFIS5=0US5= UG7CFR(S5)={CFR(S1), CFR(S4), CFR(S5)}TS5={1, 0,{CFR(S1), CFR(S4), CFR(S5)}}
    G8111NoPFIG8= FPGUG8=US4US5={CFR(S1), CFR(S4)}TG8={1, FPG,{CFR(S1), CFR(S4)}}
    G9101NoPFIG9=4FPGUG9=US5-US3={CFR(S1),
    CFR(S4), CFR(S5)}
    TG9={1, 4FPG, {CFR(S1), CFR(S4). CFR(S5)}}
    Out111NoPFIOut1= PFIG8=FPGUOut1=UG8={CFR(S1), CFR(S4)}TOut1 ={1, FPG,{CFR(S1), CFR(S4)}}
    Out211NoPFIOut2=PFIG9=4FPGUOut2=UG9={CFR(S1), CFR(S4), CFR(S5)}TOut2={1, 4FPG, {CFR(S1), CFR(S4), CFR(S5)}}
    下载: 导出CSV 
    | 显示表格

    步骤2:定位每个敏感ICS内的向量敏感门,在此以CFR(S4)为例。CFR(S4)UCFR中的敏感ICS,首先找到输出节点G6,将G6加入向量敏感门集合;然后,向前追溯G6的输入信号“10”,由于G6是或门,所以输入‘1’为G6的关键信号,该信号的前驱逻辑门为G4,故将G4添加至向量敏感门集合;最后,G4的前驱为扇出节点S2,停止此次迭代。因此,CFR(S4)的向量敏感门为G4G6。分析所有敏感ICS可知,在输入向量为“1110”时,电路的向量敏感门集合为{G1, G4, G6, G7, G8, G9}。

    电路中被多数向量甚至所有向量都定位为向量敏感门的逻辑门,被称为电路敏感门(Circuit Critical Gate, CCG),它们是容错设计的重点,对该部分逻辑门进行容错,能够大幅度提高电路可靠性。本节我们提出一种电路敏感门定位算法(Circuit Critical Gate Location Algorithm, CCGLA),如算法2所示。

    算法2 CCGLA算法
     输入:电路网表文件,电路敏感门阈值Th
     输出:所有敏感门集合
     1. FOR i = 1 to N//每个电路的输入向量数N
     2.  Randomly generate an input vector V(i)
     3.  VCG.set(i) = CALL Location algorithm of critical gate
     4. END FOR
     5. FOR i = 1 to Num//电路总门数Num
     6.  Count the number of times Gi in VCG.set //Gi 为第i个门
     7.  Calculate the sensitivity of Gi : GSGi=kiN//ki是VCG.set
        的Gi编号
     8.  IF GSGi > Th
     9.   Add Gi to CCG.set //所有敏感门集合
     10. END IF
     11. END FOR
     12. END
    下载: 导出CSV 
    | 显示表格

    若逻辑门G为输入向量V的向量敏感门,则向量V为逻辑门G的敏感向量。定义逻辑门的敏感向量数占总输入向量空间的比值为该逻辑门的敏感度GS。设定敏感度阈值Th,认为电路敏感门即电路中敏感度超过阈值Th的逻辑门。例如,某电路的原始输入数为w,其输入向量空间大小为2w。计算所有输入向量空间的敏感门集合分别为VCG1, VCG2, ···, VCG2w,若逻辑门Gi出现在其中ki个向量敏感门集合中,则Gi的敏感度为ki/2w。随着输入数和电路规模的增大,计算所有输入向量的敏感门集合变得非常困难,因此,通常只选取部分向量计算对应敏感门。设N为选取的向量个数,ki为第i个逻辑门Gi的敏感向量数,则Gi的敏感度为

    GSGi=kiN (4)

    算法2为CCGLA算法总体框架,包含3步:(1)选取N个向量,计算这些向量对应的向量敏感门集合:VCG1, VCG2, ···, VCGN;(2)计算电路中每一个逻辑门的敏感度;(3)设定阈值参数Th,比较逻辑门的敏感度与阈值Th的大小,超过阈值的门添加至电路敏感门集合。

    模拟实验在配备3.0 GHz微处理器和8 GB内存的计算机上进行。VCGLA, CCGLA和CGC方法都是基于MATLAB 2014a平台。ISCAS-85,89系列电路应用于文献[16-18,20]进一步验证提出的方法的准确性,其中文献[17,18]提出的CGC方法被广泛应用于电路敏感门定位,通过与其对比验证VCGLA的准确性与高效性。其中,CGC的变体方法共有6种,选取实验条件相似(单线程)的CGC-V1, V3, V4和V6方法进行对比。V1方法通过逐个检测电路每个单元的敏感性获取向量敏感门,准确率为100%,但因为对每个逻辑门进行检测耗时太高,无法用于大规模和超大规模电路的敏感门定位;相比之下,V3方法是一种快速的VCG定位方法,但准确性不高。V4和V6方法的准确性与定位速度介于以上两种方法之间。

    考虑到CGC-V1, V4和V6方法所需时间较长,针对实验电路的每种方法各选择100个向量,用于定位电路的VCG集合。本实验中,由于CGC-V1方法能精准定位VCG集合,故以其为标准验证其他方法的准确性。针对ISCAS’85系列4个规模较小的电路,表3列举了VCGLA与CGC-V1, V3, V4和V6方法的比较结果。其中,avg.CG为100个相同随机向量激励下对应的敏感门数目的平均值,avg.err是它们与CGC-V1方法相比的误差平均值(即每个向量对应VCG误差的平均值),如式(5)所示,max.err表示单个随机向量激励下敏感门集合误差的最大值,如式(6)所示,表3还列出了单个向量激励下定位对应VCG的平均计算时间。

    表 3  VCGLA与CGC-V1, V3, V4和V6方法的比较
    电路CGC-V1VCGLACGC-V3CGC-V4CGC-V6
    avg.CG时间(s)avg.CGmax.err时间(s)avg.CGmax.erravg.err时间(s)avg.CGmax.erravg.err时间(s)avg.CGmax.erravg.err时间(s)
    C43253.7118.253.700.1052.3182.10.0452.018.01.720.3050.726.03.010.30
    C499302.8428.5302.800.31308.313849.30.15280.9138.021.9111.00280.9138.021.932.40
    C880218.65.1218.600.16223.24010.30.06215.317.02.42.50212.830.04.91.00
    C1355225.21597.5225.200.24228.08229.40.10211.982.013.3383.10211.982.013.384.80
    Avg200.1537.3200.100.20203.069.522.80.09190.063.89.8129.20189.169.010.832.10
    下载: 导出CSV 
    | 显示表格
    avg.err=1m1×m1i=1|VCGCGCV1(i)VCGOther(i)| (5)
    max.err=max|VCGCGCV1(i)VCGOther(i)|,i=1,2,,m1 (6)

    其中,m1是是激励向量数,VCGCGC-V1(i)是由CGC-V1方法定位出的第i个输入向量的VCG, VCGOther(i)表示其他几类方法计算出的第i个输入向量的VCG,在此统一表示。公式中的VCG差值实际是两个集合中不同的敏感门总数:相比CGC-V1方法定位的VCG集合,用其他方法定位的VCG集合中漏检与误检的敏感门。

    表3中VCGLA的max.err列都为0表明VCGLA与CGC-V1方法找到的所有敏感门集合完全相同,表明本方法在定位向量敏感门时具有100%的准确性;而在定位速度上,VCGLA平均耗时0.2 s,相比CGC-V1的537.3 s快了3个数量级以上。CGC-V3是唯一一个在定位速度上稍快于VCGLA的方法,但由它定位的敏感门集合的最大误差平均值为69.5,且平均误差为22.8,是所列方法中准确性最低的。CGC-V4和V6的速度和准确性介于CGC-V1和V3之间,但都不及VCGLA。相关性分离方法通过将电路划分为多个ICS,再以ICS为基本单元分析故障传播及信号相关性影响,在保证准确性的前提下,大大简化了敏感门定位算法的迭代过程。

    接下来使用VCGLA计算更大规模电路,衡量其计算大规模和超大规模电路时的有效性,结果如表4所示。考虑到CGC-V1, V4和V6方法的计算时间太长,已很难在合适的时间内定位这些大规模电路的敏感门,后续实验中我们仅使用VCGLA与CGC-V3方法定位敏感门。在表3表4中,avg.err和max.err的含义相同,都是以CGC-V1方法结果为参考。只是表4中计算avg.err和max.err时,使用VCGLA方法的计算结果代替了CGC-V1方法结果,因为之前已证明,VCGLA方法与CGC-V1方法结果一致,且速度远快于后者。所选实验电路包括ISCAS’85, 89系列和ITC’99的10个电路。对于其中规模相对较小的电路,各选取10000个测试向量,随着电路规模的不断增大,考虑到定位时间的快速增长,所选取向量的数目逐渐减小。

    表 4  VCGLA与CGC-V3方法定位大规模电路的敏感门
    电路门数向量数VCGLACGC-V3
    avg.CG时间(s)avg.CG时间(s)avg.errmax.err
    C190888010000404.80.34405.00.140.485
    C2670119310000449.20.46468.60.2520.9191
    C3540166910000500.30.59439.60.43113.0425
    C5315230710000809.20.99824.00.4015.073
    C7552351250001414.31.371488.30.7274.6256
    S9234559750002492.22.562540.71.9451.9176
    S15850977250005893.66.235952.66.9061.3134
    S3841722179100014215.812.9814914.311.45706.2862
    b212002710002780.128.072781.120.437.171
    b222916210004138.439.304141.628.6013.6118
    下载: 导出CSV 
    | 显示表格

    表4可知,电路规模达到万门以上,VCGLA的计算耗时仍与CGC-V3方法相差不大,二者计算超大规模电路的向量敏感门速度都比较快。在实验中,随着电路规模的增长,VCGLA方法的计算耗时基本随逻辑门的数量呈线性增长,充分证明所提算法的可拓展性。因此,VCGLA可应用于更大规模电路的敏感门精准定位。

    影响电路敏感门(CCG)定位性能的参数包括选取的向量数N和敏感度阈值Th。先考虑N的变化对CCGLA的影响。实验电路选取C7552的一个单输出子电路,输出节点编号为65。实验使用CCGLA计算当N为不同值时该子电路的敏感门集合,且对设定的每个N值,取Th的范围为0~1,步长为0.05。以N=50000时的计算结果为参考标准,比较N取其它值时对应21个不同Th的电路敏感门集合,并将此21组差值求和表示为该N值与最大N值(N=50000)的敏感门集合差,实验结果如图3所示。由图可知,当N<5000时,对应电路敏感门集合与参考标准差别逐渐减小;当N>5000时,随着N继续增大,敏感门集合差异已可忽略。实验说明,当N增大到一定程度即可用于准确定位CCG集合,无需遍历所有输入激励。实际上,对多数电路都有此结论。

    图 3  N的变化对敏感门差异的影响

    Th是电路敏感度阈值,其值可影响CCG集的大小和质量:Th值若增大,则CCG集合中的元素减少,但CCG的敏感度更高;反之,则CCG数增加,但门的敏感度降低。定位CCG的目的是更高效地对电路进行容错加固。在此,假设改进后的CCG无错,对比容错前后的电路失效率,即可得到对该CCG集合容错后电路失效率的改善情况,以此评估Th对CCG定位及容错效果的影响。为保证失效率计算结果的准确性,使用MC模拟方法计算容错前后电路的失效率,模拟次数为5×106。实验电路为ISCAS’89系列电路。

    本实验分5步:(1)选定实验电路,使用MC方法计算实验电路失效率,将逻辑门的出错概率设为10–4[15,20];(2)设N=10000,针对Th值定位CCG集合;(3)计算容错后电路失效率,并对比容错前电路失效率;(4)改变Th大小,其范围为0~1,间隔步长为0.05;(5)重复步骤(3)和步骤(4),分析Th对容错效果的影响。

    实验结果如图4所示,图4(a)4(f)分别描述不同电路下Th变化对电路失效率的影响。蓝色折线为针对不同Th值定位CCG集合并容错后得到的电路失效率;绿色直线为不进行容错的电路失效率。在图中,当Th为0时,所有输入激励对应的CCG都是容错对象,容错后电路失效率最低(可认为是0);随着Th增大,容错对象减少,容错后电路失效率也逐渐增大;当Th为1时,只有极少数CCG为容错对象,容错后电路失效率最高。

    图 4  敏感门容错前后电路失效率对比

    容错效果与容错代价是需综合考虑的两个重要指标。设FPCa和FPCb分别为容错后和容错前电路失效率,两者之间的改善比率定义为电路失效率改善率(Improvement Rate of Failure, IRF),如式(7)所示;NCCG为CCG集合的元素个数,NCCG与电路总门数Num的比值称为电路敏感度比值(Circuit Critical Gate Rate, CCGR),如式(8)所示。容错效果可用IRF衡量,IRF越大,说明容错效果越好;容错代价则用CCGR衡量,CCGR越小,则表明容错代价越小。定义容错效率(Fault Tolerance Efficiency, FTE)为IRF和CCGR的比值,如式(9)所示。FTE越大,表示对CCG集合容错的效率越高。

    IRF=|FPCaFPCbFPCb|×100% (7)
    CCGR=NCCGNum×100% (8)
    FTE=IRFCCGR (9)

    图5中两条曲线分别描述了所选择的6个实验电路的IRF和CCGR随Th的变化情况,其中蓝色折线代表IRF,绿色折线代表CCGR。由图可知,IRF与CCGR都随Th的增大而减小。当电路设计人员以特定的IRF为电路设计目标时,可根据IRF选择Th值,从而得到对应的CCG集合,再对集合中的逻辑门进行容错;当以特定的CCGR为电路容错限制条件时,同样可选择对应Th值以得到CCG集合,再进行容错处理。

    图 5  CCGR和IRF随Th的变化

    图6为实验电路的FTE随Th的变化情况。当Th为0时,FTE最小,随着Th增大,FTE也逐渐增大;当Th增大到一定程度时,FTE的增大开始变缓,甚至有减小趋势。从本文实验电路的结果可知:当Th为0.6~1的范围时,电路容错效率较高,但不同电路最佳容错点对应的Th会有差别。

    图 6  FTE随Th的变化

    本文提出了一种基于相关性分离的逻辑电路敏感门定位算法。首先将整个电路分离成多个独立电路结构;再针对独立电路结构反向搜索定位特定输入向量的向量敏感门;最后进一步定位面向向量空间的电路敏感门。使用本文提出的敏感门定位算法,能精准定位对多数输入激励都敏感的逻辑门集合;而针对这些敏感门进行容错加固将有助于提升整个电路可靠性,同时能保证较低的容错开销。相比于其他敏感门定位算法,本文提出的算法既准确又高效,适用于定位大规模及超大规模电路的敏感门单元,以辅助高效容错设计。

  • 图  1  与门输出节点的集合U计算过程

    图  2  示例电路

    图  3  N的变化对敏感门差异的影响

    图  4  敏感门容错前后电路失效率对比

    图  5  CCGR和IRF随Th的变化

    图  6  FTE随Th的变化

    表  1  与门输出节点信息

    输入向量LVoutPFIoutUout
    n1=n, n0=01PFIP1+···+PFIPn1+FPGUP1UP2∪···∪UPn1
    n1=n–1, n0=10PFIQ1+FPGUQ1UP1∪···∪UPn1
    n0≥20FPGUQ1∩···∩UQn0UP1∪···∪UPn1
    下载: 导出CSV
    算法1 VCGLA算法
     输入:电路网表文件,输入向量
     输出:向量敏感门
     1. 通过COSEA算法计算电路所有节点的T
     2. 计算CFR集合的输出:UCFR=m1i=1Ui //m1表示电路中CFR
      数量
     3. 计算CFI集合的输出: UCFI=m2i=1CFIi//m2表示电路中CFI
      数量
     4. 创建VCG.set用于存储向量敏感门
     5. FOR i =1 to n //nUCFR中的CFR数量和UCFI中的CFI数量
      之和
     6.  Locate output gate of independent circuit structure
     7. Node number are added to VCG.set
     8.  Calculate the number of critical inputs of the node: k
     9.   IF k == 0
     10.    GO to 5.
     11.  ELSE
     12.   FOR j = 1 to k
     13.    IF the critical gate j is the primary input or fanout
          node
     14.     GO to 12.
     15.    ELSE
     16.     GO to 7.
     17.    END IF
     18.   END FOR
     19.  END IF
     20. END FOR
     21. END
    下载: 导出CSV

    表  2  示例电路节点信息计算过程

    节点输入LVCFICFRPFIUT
    G1111NoPFIG1=FPGUG1={Ø}TG1={1, FPG, Ø}
    S111PFRS1=PFIG1=FPGPFIS1=0US1= UG1CFR(S1)={CFR(S1)}TS1={1, 0, CFR(S1)}
    G2100NoPFIG2=FPGUG2={Ø}TG2={0, FPG, Ø}
    G310NoPFIG3=FPGUG3= US1={CFR(S1)}TG3={0, FPG, CFR(S1)}
    S200PFRS2=PFIG3=FPGPFIS2=0US2= UG3CFR(S2)={CFR(S1), CFR(S2)}TS2={0, 0, {CFR(S1), CFR(S2)}}
    G401NoPFIG4=FPGUG4= US2={CFR(S1), CFR(S2)}TG4={1, FPG,{CFR(S1), CFR(S2)}}
    G5010NoPFIG5=2FPGUG5=US2US1={CFR(S2)}TG5={0, 2FPG, CFR(S2)}
    G6101NoPFIG6=2FPGUG6=UG4UG5={CFR(S1)}TG6={1, 2FPG, CFR(S1)}
    S300PFRS3= PFIG2=FPGPFIS3=0US3= UG2CFR(S3)={CFR(S3)}TS3={0, 0, CFR(S3)}
    S411PFRS4=PFIG6=2FPGPFIS4=0US4= UG6CFR(S4)={CFR(S1), CFR(S4)}TS4={1, 0,{CFR(S1), CFR(S4)}}
    G7101NoPFIG7=3FPGUG7= US4US3={CFR(S1), CFR(S4)}TG7={1, 3FPG, {CFR(S1), CFR(S4)}}
    S511PFRS5= PFIG7=3FPGPFIS5=0US5= UG7CFR(S5)={CFR(S1), CFR(S4), CFR(S5)}TS5={1, 0,{CFR(S1), CFR(S4), CFR(S5)}}
    G8111NoPFIG8= FPGUG8=US4US5={CFR(S1), CFR(S4)}TG8={1, FPG,{CFR(S1), CFR(S4)}}
    G9101NoPFIG9=4FPGUG9=US5-US3={CFR(S1),
    CFR(S4), CFR(S5)}
    TG9={1, 4FPG, {CFR(S1), CFR(S4). CFR(S5)}}
    Out111NoPFIOut1= PFIG8=FPGUOut1=UG8={CFR(S1), CFR(S4)}TOut1 ={1, FPG,{CFR(S1), CFR(S4)}}
    Out211NoPFIOut2=PFIG9=4FPGUOut2=UG9={CFR(S1), CFR(S4), CFR(S5)}TOut2={1, 4FPG, {CFR(S1), CFR(S4), CFR(S5)}}
    下载: 导出CSV
    算法2 CCGLA算法
     输入:电路网表文件,电路敏感门阈值Th
     输出:所有敏感门集合
     1. FOR i = 1 to N//每个电路的输入向量数N
     2.  Randomly generate an input vector V(i)
     3.  VCG.set(i) = CALL Location algorithm of critical gate
     4. END FOR
     5. FOR i = 1 to Num//电路总门数Num
     6.  Count the number of times Gi in VCG.set //Gi 为第i个门
     7.  Calculate the sensitivity of Gi : GSGi=kiN//ki是VCG.set
        的Gi编号
     8.  IF GSGi > Th
     9.   Add Gi to CCG.set //所有敏感门集合
     10. END IF
     11. END FOR
     12. END
    下载: 导出CSV

    表  3  VCGLA与CGC-V1, V3, V4和V6方法的比较

    电路CGC-V1VCGLACGC-V3CGC-V4CGC-V6
    avg.CG时间(s)avg.CGmax.err时间(s)avg.CGmax.erravg.err时间(s)avg.CGmax.erravg.err时间(s)avg.CGmax.erravg.err时间(s)
    C43253.7118.253.700.1052.3182.10.0452.018.01.720.3050.726.03.010.30
    C499302.8428.5302.800.31308.313849.30.15280.9138.021.9111.00280.9138.021.932.40
    C880218.65.1218.600.16223.24010.30.06215.317.02.42.50212.830.04.91.00
    C1355225.21597.5225.200.24228.08229.40.10211.982.013.3383.10211.982.013.384.80
    Avg200.1537.3200.100.20203.069.522.80.09190.063.89.8129.20189.169.010.832.10
    下载: 导出CSV

    表  4  VCGLA与CGC-V3方法定位大规模电路的敏感门

    电路门数向量数VCGLACGC-V3
    avg.CG时间(s)avg.CG时间(s)avg.errmax.err
    C190888010000404.80.34405.00.140.485
    C2670119310000449.20.46468.60.2520.9191
    C3540166910000500.30.59439.60.43113.0425
    C5315230710000809.20.99824.00.4015.073
    C7552351250001414.31.371488.30.7274.6256
    S9234559750002492.22.562540.71.9451.9176
    S15850977250005893.66.235952.66.9061.3134
    S3841722179100014215.812.9814914.311.45706.2862
    b212002710002780.128.072781.120.437.171
    b222916210004138.439.304141.628.6013.6118
    下载: 导出CSV
  • [1] OATES A S and CHEUNG K P. Reliability of nanoelectronic devices[M]. VAN DE VOORDE M, PUERS R, BALDI L, et al. Nanoelectronics: Materials, Devices, Applications. Hoboken: Wiley, 2017: 317–330.
    [2] RAMIN R, MICHAEL N, and HU X S. Low-cost sequential logic circuit design considering single event double-node upsets and single event transients[C]. 2021 IEEE 39th International Conference on Computer Design (ICCD), Storrs, USA, 2021: 178–185.
    [3] TANG Du, HE Chaohui, LI Yonghong, et al. Soft error reliability in advanced CMOS technologies-trends and challenges[J]. Science China Technological Sciences, 2014, 57(9): 1846–1857. doi: 10.1007/s11431-014-5565-6
    [4] VASILYEV N O, ZAPLETINA M A, and IVANOVA G A. The analysis of logic resynthesis methods to increase the fault tolerance of combinational circuits for single failures[C]. 2021 IEEE Conference of Russian Young Researchers in Electrical and Electronic Engineering (ElConRus), St. Petersburg, Russia, 2021: 2050–2053.
    [5] SIKANDER K, ZHAN Suoyue, and CHEN Chunhong. An analytical model for circuit reliability estimation[C]. 2021 IEEE International Midwest Symposium on Circuits and Systems (MWSCAS), Lansing, USA, 2021: 84–87.
    [6] LIU Baojun and CAI Li. Monte Carlo reliability model for single-event transient on combinational circuits[J]. IEEE Transactions on Nuclear Science, 2017, 64(12): 2933–2937. doi: 10.1109/TNS.2017.2772267
    [7] KRISHNASWAMY S, VIAMONTES G F, MARKOV I L, et al. Probabilistic transfer matrices in symbolic reliability analysis of logic circuits[J]. ACM Transactions on Design Automation of Electronic Systems, 2008, 13(1): 1–35. doi: 10.1145/1297666.1297674
    [8] XIAO Jie, LOU Jungang, and JIANG Jianhui. A fast and effective sensitivity calculation method for circuit input vectors[J]. IEEE Transactions on Reliability, 2019, 68(3): 938–953. doi: 10.1109/TR.2019.2897455
    [9] HAN Jie, CHEN Hao, BOYKIN E, et al. Reliability evaluation of logic circuits using probabilistic gate models[J]. Microelectronics Reliability, 2011, 51(2): 468–476. doi: 10.1016/j.microrel.2010.07.154
    [10] SINGH N S S, HAMID N H, ASIRVADAM V S, et al. Evaluation of circuit reliability based on distribution of different signal input patterns[C]. IEEE International Colloquium on Signal Processing and its Applications, Malacca, Malaysia: 2012: 5–9.
    [11] CHEN Chunhong and XIAO Ran. A fast model for analysis and improvement of gate-level circuit reliability[J]. Integration, 2015, 50: 107–115. doi: 10.1016/j.vlsi.2015.02.005
    [12] 陈雷, 张瑶伟, 王硕, 等. FPGA三模冗余工具的关键技术与发展[J]. 电子与信息学报, 2022, 44(6): 2230–2244. doi: 10.11999/JEIT210330

    CHEN Lei, ZHANG Yaowei, WANG Shuo, et al. Key technology and development of triple modular redundancy tool for FPGA[J]. Journal of Electronics &Information Technology, 2022, 44(6): 2230–2244. doi: 10.11999/JEIT210330
    [13] IBRAHIM W, SHOUSHA M, and CHINNECK J W. Accurate and efficient estimation of logic circuits reliability bounds[J]. IEEE Transactions on Computers, 2015, 64(5): 1217–1229. doi: 10.1109/tc.2014.2315633
    [14] XIAO Jie, SHI Zhanhui, ZHU Weidong, et al. Uniform non-Bernoulli sequences oriented locating method for reliability-critical gates[J]. Tsinghua Science and Technology, 2021, 26(1): 24–35. doi: 10.26599/TST.2019.9010045
    [15] XIAO Jie, SHI Zhanhui, YANG Xuhua, et al. BM-RCGL: Benchmarking approach for localization of reliability-critical gates in combinational logic blocks[J]. IEEE Transactions on Computers, 2022, 71(5): 1063–1076. doi: 10.1109/TC.2021.3071253
    [16] IBRAHIM W. Identifying the worst reliability input vectors and the associated critical logic gates[J]. IEEE Transactions on Computers, 2016, 65(6): 1748–1760. doi: 10.1109/TC.2015.2458868
    [17] IBRAHIM W and AMER H. Critical nodes count algorithm for accurate input vectors reliability ranking[C]. Proceedings of the Summer Computer Simulation Conference, Montreal, Canada, 2016: 19.
    [18] IBRAHIM W and IBRAHIM H. Multithreaded and reconvergent aware algorithms for accurate digital circuits reliability estimation[J]. IEEE Transactions on Reliability, 2019, 68(2): 514–525. doi: 10.1109/TR.2018.2876475
    [19] CAI Shuo, HE Binyong, WU Sicheng, et al. An accurate estimation algorithm for failure probability of logic circuits using correlation separation[J]. Journal of Electronic Testing, 2022, 38(2): 165–180. doi: 10.1007/s10836-022-05996-y
    [20] XIAO Jie, CHEN Wenbo, LOU Jungang, et al. Identifying reliability-critical primary inputs of combinational circuits based on the model of gate-sensitive attributes[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2022, 41(11): 4708–4720. doi: 10.1109/TCAD.2022.3142194
  • 加载中
图(6) / 表(6)
计量
  • 文章访问数:  369
  • HTML全文浏览量:  193
  • PDF下载量:  72
  • 被引次数: 0
出版历程
  • 收稿日期:  2023-01-10
  • 修回日期:  2023-04-12
  • 网络出版日期:  2023-04-20
  • 刊出日期:  2024-01-17

目录

/

返回文章
返回