CN117350222B - 一种基于仿真的单粒子软错误分析方法和装置 - Google Patents
一种基于仿真的单粒子软错误分析方法和装置 Download PDFInfo
- Publication number
- CN117350222B CN117350222B CN202311659069.0A CN202311659069A CN117350222B CN 117350222 B CN117350222 B CN 117350222B CN 202311659069 A CN202311659069 A CN 202311659069A CN 117350222 B CN117350222 B CN 117350222B
- Authority
- CN
- China
- Prior art keywords
- probability
- single event
- effect
- pessimistic
- simulated
- 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
- 239000002245 particle Substances 0.000 title claims abstract description 102
- 238000004088 simulation Methods 0.000 title claims abstract description 72
- 238000004458 analytical method Methods 0.000 title claims abstract description 42
- 230000000694 effects Effects 0.000 claims abstract description 145
- 238000000034 method Methods 0.000 claims abstract description 96
- 230000005540 biological transmission Effects 0.000 claims abstract description 67
- 230000001052 transient effect Effects 0.000 claims abstract description 63
- 230000002441 reversible effect Effects 0.000 claims abstract description 35
- 238000012360 testing method Methods 0.000 claims abstract description 31
- 238000002347 injection Methods 0.000 claims description 107
- 239000007924 injection Substances 0.000 claims description 107
- 230000004907 flux Effects 0.000 claims description 46
- 230000008569 process Effects 0.000 claims description 35
- 238000009826 distribution Methods 0.000 claims description 28
- 238000012546 transfer Methods 0.000 claims description 26
- 230000006399 behavior Effects 0.000 claims description 22
- 238000013507 mapping Methods 0.000 claims description 22
- 238000004364 calculation method Methods 0.000 claims description 19
- 238000005070 sampling Methods 0.000 claims description 15
- 230000007306 turnover Effects 0.000 claims description 14
- 238000004422 calculation algorithm Methods 0.000 claims description 13
- 239000004065 semiconductor Substances 0.000 claims description 10
- 238000012614 Monte-Carlo sampling Methods 0.000 claims description 9
- 230000002452 interceptive effect Effects 0.000 claims description 6
- 238000002513 implantation Methods 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 238000005094 computer simulation Methods 0.000 abstract description 6
- 230000000873 masking effect Effects 0.000 description 32
- 239000000243 solution Substances 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000015572 biosynthetic process Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 238000003786 synthesis reaction Methods 0.000 description 5
- 230000009467 reduction Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 102100029469 WD repeat and HMG-box DNA-binding protein 1 Human genes 0.000 description 3
- 101710097421 WD repeat and HMG-box DNA-binding protein 1 Proteins 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000003745 diagnosis Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000000342 Monte Carlo simulation Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 238000009792 diffusion process Methods 0.000 description 2
- 239000007943 implant Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000005855 radiation Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- HCUOEKSZWPGJIM-YBRHCDHNSA-N (e,2e)-2-hydroxyimino-6-methoxy-4-methyl-5-nitrohex-3-enamide Chemical compound COCC([N+]([O-])=O)\C(C)=C\C(=N/O)\C(N)=O HCUOEKSZWPGJIM-YBRHCDHNSA-N 0.000 description 1
- 101150110971 CIN7 gene Proteins 0.000 description 1
- 102100038026 DNA fragmentation factor subunit alpha Human genes 0.000 description 1
- 101000950906 Homo sapiens DNA fragmentation factor subunit alpha Proteins 0.000 description 1
- 101001109689 Homo sapiens Nuclear receptor subfamily 4 group A member 3 Proteins 0.000 description 1
- 101000598778 Homo sapiens Protein OSCP1 Proteins 0.000 description 1
- 101150110298 INV1 gene Proteins 0.000 description 1
- 101001067395 Mus musculus Phospholipid scramblase 1 Proteins 0.000 description 1
- 102100022673 Nuclear receptor subfamily 4 group A member 3 Human genes 0.000 description 1
- 101100397044 Xenopus laevis invs-a gene Proteins 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000002134 carbon nanofiber Substances 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 230000009291 secondary effect Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/36—Circuit design at the analogue level
- G06F30/367—Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Software Systems (AREA)
- Algebra (AREA)
- Probability & Statistics with Applications (AREA)
- Evolutionary Computation (AREA)
- Operations Research (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Databases & Information Systems (AREA)
- Geometry (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本发明公开了一种基于仿真的单粒子软错误分析方法和装置,该方法包括:接收输入参数,并根据输入参数为待测试集成电路系统配置相应的基本参数;对Verilog代码进行一次非注入的基准测试,并通过标准的VCD文件记录Verilog代码的正确行为;采用基本参数并基于逻辑综合工具的反标方法以及图遍历方法实现单粒子效应在寄存器传输级层次以及门级层的建模,确定待测试集成电路系统中各器件发生单粒子效应的悲观概率。本发明可实现由单粒子翻转以及单粒子瞬态在内的单粒子效应所导致的软错误在计算机仿真中的建模,将传统的单粒子软错误分析从Hspice仿真延伸至寄存器传输级与门级,提高软错误分析效率,降低软错误的分析门槛。
Description
技术领域
本发明涉及集成电路技术领域,尤其涉及一种基于仿真的单粒子软错误分析方法和装置。
背景技术
单粒子效应可以根据故障表现是否可恢复简单划分为硬错误与软错误,其中硬错误是指硬件电路元件的不可恢复的永久性损伤或损坏,而软错误是指不影响硬件电路本身功能的但会影响硬件电路的运算的结果或存储的数据的错误。
在单粒子效应领域,软错误是导致硬件电路发生错误的主要原因,而硬错误产生的主要原因与硬件电路元件本身在制造过程中的差错、瑕疵密切相关,相比硬错误而言,软错误的发生具有偶然性、随机性。
对于软错误率分析而言,仅依靠纯电路仿真的分析是不经济的。例如,Hspice的软错误率分析正是纯基于实际电路的仿真结果,其精度相对较高,但此类方法在分析大规模集成电路时速度并不理想,特别是在面对需要考虑多种二级效应的先进工艺节点下,其仿真效率无法满足实际工作的需要。且其相对于原始的Hspice 工具在进行错误注入时需要工程人员建立适用于单粒子瞬态的扩散模型以捕捉瞬态电流,其操作复杂度较高且在多工艺条件下扩散模型可能不同,故为获得精确的单粒子瞬态在跨模块、跨区域的影响需要进行大量的数据采集建模。
发明内容
本发明提供了一种基于仿真的单粒子软错误分析方法和装置,可实现由单粒子翻转以及单粒子瞬态在内的单粒子效应所导致的软错误在计算机仿真中的建模,将传统的单粒子软错误分析从Hspice仿真延伸至寄存器传输级与门级,提高软错误分析效率,降低软错误的分析门槛。
根据本发明的一方面,提供了一种基于仿真的单粒子软错误分析方法,单粒子软错误分析方法包括:
接收输入参数,并根据所述输入参数为待测试集成电路系统配置相应的基本参数,其中,所述基本参数包括Verilog代码、代码层级、蒙特卡洛采样重复次数、所模拟的单粒子线性能量传输、所模拟的单粒子注入通量、拟进行模拟的工艺的单粒子翻转截面、仿真线程数、仿真等待间隔时长、单粒子翻转效应追溯层数以及标准单元与IP列表;所述代码层级包括门级层级和寄存器传输级层级;
对所述Verilog代码进行一次非注入的基准测试,并通过标准的VCD文件记录所述Verilog代码的正确行为;
采用所述基本参数并基于逻辑综合工具的反标方法以及图遍历方法实现单粒子效应在寄存器传输级层次以及门级层的建模,确定所述待测试集成电路系统中各器件发生单粒子效应的悲观概率,其中,所述单粒子效应的悲观概率为单粒子翻转效应的悲观概率或单粒子瞬态效应的悲观概率;
根据所述各器件发生单粒子效应的悲观概率和所述基本参数确定所述待测试集成电路系统整体发生单粒子翻转效应的平均次数;
根据梅特罗波利斯-黑斯廷斯算法和所述单粒子翻转的悲观概率确定随机数和当前触发单粒子的候选状态概率;
在所述随机数大于所述当前触发单粒子的候选状态概率时,接收该状态并对其实施一次故障注入,并记录故障注入的时间、位置和类型;
以待测试集成电路系统的实际测试时间为基准,停止故障注入,根据所述仿真等待间隔时长进行等待,并通过VCD文件记录故障注入后所述待测试集成电路系统的各输出值;
根据所述Verilog代码的正确行为记录所述待测试集成电路系统的各输出值的错误;
根据故障注入的时间、位置和类型以及所述待测试集成电路系统的各输出值的错误确定所述待测试集成电路系统的敏感列表、软错误率和翻转截面。
可选的,所述采用所述基本参数并基于逻辑综合工具的反标方法以及图遍历方法实现单粒子效应在寄存器传输级层次以及门级层的建模,确定所述待测试集成电路系统中各器件发生单粒子效应的悲观概率具体包括:
当所述代码层级为门级层级时,根据所述Verilog代码、所述标准单元与IP列表,获得各类型器件在所述待测试集成电路系统中的全部映射;根据所述拟进行模拟的工艺的单粒子翻转截面、所模拟的单粒子线性能量传输以及所模拟的单粒子注入通量,获取各器件发生单粒子翻转效应的悲观概率;根据所述待测试集成电路系统建立有向图;根据有向图建立相应的组合逻辑锥映射;根据所述拟进行模拟的工艺的单粒子翻转截面、所述所模拟的单粒子线性能量传输以及所述所模拟的单粒子注入通量确定各可翻转器件所映射的组合逻辑锥发生单粒子瞬态效应的悲观概率;
当所述代码层级为寄存器传输级层级时,根据所述Verilog代码获得全部翻转器件在寄存器传输级层级内的各实例表征;根据所述拟进行模拟的工艺的单粒子翻转截面,建立器件与翻转界面的映射关系;根据所述所模拟的单粒子线性能量传输及所述所模拟的单粒子注入通量,获取各器件发生单粒子翻转效应的悲观概率。
可选的,所述根据所述各器件发生单粒子效应的悲观概率和所述基本参数确定所述待测试集成电路系统整体发生单粒子翻转效应的平均次数具体包括:
根据所述各器件发生单粒子效应的悲观概率和所述所模拟的单粒子注入通量确定所述待测试集成电路系统整体发生单粒子翻转效应的平均次数。
可选的,所述根据梅特罗波利斯-黑斯廷斯算法和所述单粒子翻转的悲观概率确定随机数和当前触发单粒子的候选状态概率具体包括:
根据所述单粒子翻转的悲观概率建立全局悲观概率分布;
从[0,1]中生成所述随机数;
从容易抽样系统悲观概率分布中以所述随机数取得待注入候选状态x′,其中该候选状态指向待注入的器件;
对于单粒子翻转效应,确定可翻转的半导体器件发生翻转的可能性概率,将其记为;
将与所述单粒子翻转的悲观概率的比值确定为所述当前触发单粒子的候选状态概率。
可选的,在所述随机数大于所述当前触发单粒子的条件概率时,接收该状态并对其实施一次故障注入具体包括:
控制仿真器模拟Forece语句与Release语句交互式的行为以模拟一次故障注入。
可选的,所述根据故障注入的时间、位置和类型以及所述待测试集成电路系统的各输出值的错误确定所述待测试集成电路系统的敏感列表、软错误率和翻转截面具体包括:
对所述待测试集成电路系统的各输出值的错误的次数进行排序,得到所述待测试集成电路系统的敏感列表;
根据如下公式确定软错误率:
其中,P错误率为所述待测试集成电路系统的软错误率;
根据如下公式确定翻转截面:
其中,为所述待测试集成电路系统的翻转截面,/>为所述待测试集成电路系统中器件的翻转截面。
可选的,所述根据所述拟进行模拟的工艺的单粒子翻转截面、所模拟的单粒子线性能量传输以及所模拟的单粒子注入通量,获取各器件发生单粒子翻转效应的悲观概率具体包括:
根据如下公式确定各器件发生单粒子翻转的悲观概率:
其中,为所述代码层级为门级层级时,器件发生单粒子翻转的悲观概率,为单粒子注入通量,/>表示符合当前LET参数的翻转截面集合,包括了0到1的翻转截面与1到0的翻转截面,LET为所模拟的单粒子线性能量传输;
所述根据所述拟进行模拟的工艺的单粒子翻转截面、所述所模拟的单粒子线性能量传输以及所述所模拟的单粒子注入通量确定各可翻转器件所映射的组合逻辑锥发生单粒子瞬态效应的悲观概率具体包括:
根据如下公式确定各器件发生单粒子瞬态效应的悲观概率:
其中,为器件发生单粒子瞬态效应的悲观概率。
可选的,所述根据所述所模拟的单粒子线性能量传输及所述所模拟的单粒子注入通量,获取各器件发生单粒子翻转效应的悲观概率具体包括:
根据如下公式确定各器件发生单粒子翻转效应的悲观概率:
其中,为所述代码层级为寄存器传输级层级时,器件发生单粒子翻转效应的悲观概率。
可选的,所述根据所述各器件发生单粒子效应的悲观概率和所述基本参数确定所述待测试集成电路系统整体发生单粒子翻转效应的平均次数具体包括:
根据如下公式确定平均次数:
其中,为平均次数,/>为所模拟的单粒子注入通量。
根据本发明的另一方面,提供了一种基于仿真的单粒子软错误分析装置,其特征在于,包括:参数接收输出模块、代码测试模块、悲观概率计算模块、次数统计模块、条件概率确定模块、故障注入模块、故障输出模块、测试结果输出模块以及结果确定模块;
所述参数接收输出模块用于接收输入参数,并根据所述输入参数为待测试集成电路系统配置相应的基本参数,其中,所述基本参数包括Verilog代码、代码层级、蒙特卡洛采样重复次数、所模拟的单粒子线性能量传输、所模拟的单粒子注入通量、拟进行模拟的工艺的单粒子翻转截面、仿真线程数、仿真等待间隔时长、单粒子翻转效应追溯层数以及标准单元与IP列表;所述代码层级包括门级层级和寄存器传输级层级;
所述代码测试模块用于对所述Verilog代码进行一次非注入的基准测试,并通过标准的VCD文件记录所述Verilog代码的正确行为;
所述悲观概率计算模块用于采用所述基本参数并基于逻辑综合工具的反标方法以及图遍历方法实现单粒子效应在寄存器传输级层次以及门级层的建模,确定所述待测试集成电路系统中各器件发生单粒子效应的悲观概率,其中,所述单粒子效应的悲观概率为单粒子翻转效应的悲观概率或单粒子瞬态效应的悲观概率;
所述次数统计模块用于根据所述各器件发生单粒子效应的悲观概率和所述基本参数确定所述待测试集成电路系统整体发生单粒子翻转效应的平均次数;所述条件概率确定模块用于根据梅特罗波利斯-黑斯廷斯算法和所述单粒子翻转的悲观概率确定随机数和当前触发单粒子的候选状态概率;
所述故障注入模块用于在所述随机数大于所述当前触发单粒子的候选状态概率时,接收该状态并对其实施一次故障注入,并记录故障注入的时间、位置和类型;
所述故障输出模块用于以待测试集成电路系统的实际测试时间为基准,停止故障注入,根据所述仿真等待间隔时长进行等待,并通过VCD文件记录故障注入后所述待测试集成电路系统的各输出值;
所述测试结果输出模块用于根据所述Verilog代码的正确行为记录所述待测试集成电路系统的各输出值的错误;
所述结果确定模块用于根据故障注入的时间、位置和类型以及所述待测试集成电路系统的各输出值的错误确定所述待测试集成电路系统的敏感列表、软错误率和翻转截面。
本实施例提供了一种基于仿真的单粒子软错误分析方法,该单粒子软错误分析方法以单粒子效应数据库作为数据基础,对于单粒子翻转效应而言,在门级层次可以建立单粒子翻转概率分布。对于寄存器传输级,建立单粒子翻转概率分布。其次,对于单粒子瞬态效应而言,通过一种基于逻辑综合工具的建图方法,将电路模型转化为带有电路信息的有向图,以各可翻转器件为顶点的组合逻辑锥作为研究对象。对于逻辑掩蔽效应,通过电路可满足性问题,将可翻转器件所属的组合逻辑锥电路建立故障假设后进行电路诊断,获得该组合逻辑锥逻辑掩蔽概率。对于电气掩蔽效应,通过电气掩蔽因子表征组合逻辑锥层数约化表征电气掩蔽效应;对于时序掩蔽效应,通过时间敏感因子表征可能时间窗口占时钟周期的比例约化表征时序掩蔽效应。从而建立单粒子瞬态效应在门级层次的概率估算模型。然后,以单粒子翻转效应与单粒子悲观效应的发生悲观概率构建全局电路的单粒子效应悲观概率分布。并以此为基础使用基于梅特罗波利斯-黑斯廷斯算法的蒙特卡洛抽样方法,从容易抽样的单粒子效应悲观概率分布中获得具体的可翻转器件实例,并计算该实例实际发生单粒子翻转效应与单粒子瞬态效应的可能概率,以计算得到的可能概率与悲观概率在此进行抽样以确定是否采信当前实例与当前翻转可能,进行一次软错误注入。最后,通过动态仿真的方法进行蒙特卡洛仿真,根据抽样结果进行单粒子翻转与单粒子效应的软错误注入,并根据用户设定的标准判断各次仿真的结果,并根据各次注入的位置、类型与各次仿真的结果进行汇总分析,得到待测试集成电路系统中错误率较高的区域的列表及软错误率。综上,本实施例提供的基于仿真的单粒子软错误分析方法,实现由单粒子翻转以及单粒子瞬态在内的单粒子效应所导致的软错误在计算机仿真中的建模,将传统的单粒子软错误分析从Hspice仿真延伸至寄存器传输级与门级,提高软错误分析效率,降低软错误的分析门槛。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例提供的一种基于仿真的单粒子软错误分析方法的流程示意图;
图2是根据本发明实施例提供的一种电气掩蔽示意图;
图3是根据本发明实施例提供的一种组合逻辑锥示意图;
图4是本发明实施例提供的一种GTECH 内通用触发器 *SEQGEN* 标准引脚接口示意图;
图5是本发明实施例提供的一种仿真器运行时序图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图1是根据本发明实施例提供的一种基于仿真的单粒子软错误分析方法的流程示意图,参考图1,本实施例提供的基于仿真的单粒子软错误分析方法包括如下步骤:
S110、接收输入参数,并根据输入参数为待测试集成电路系统配置相应的基本参数,其中,基本参数包括Verilog代码、代码层级、蒙特卡洛采样重复次数、所模拟的单粒子线性能量传输、所模拟的单粒子注入通量、拟进行模拟的工艺的单粒子翻转截面、仿真线程数、仿真等待间隔时长、单粒子翻转效应追溯层数以及标准单元与IP列表;代码层级包括门级层级和寄存器传输级层级。
具体的,输入参数通过用户输入。待测试集成电路系统接收输入参数。基本参数与用户输入的输入参数相关联。单粒子线性能量传输(LET)是用来定义当前模拟的单粒子辐射强度的概念。单粒子注入通量(Flux)是用来定义当前模拟的辐射情况下注入的单粒子数量的概念,此处一般指单位时间内的粒子数量。单粒子翻转截面(Xsect)是用来定义特定LET强度下可翻转器件受到粒子辐照影响敏感程度的概念。仿真等待间隔时长:在时序电路中,软错误所导致的错误结果可能不会第一时间在输出端口输出,在注入完成后在输出端口进行等待从而尽可能的搜集全部的错误,仿真等待间隔时长指的就是等待时长。单粒子翻转效应追溯层数(仅门级仿真需要):首先,在本方法中,仅在门级分析单粒子翻转效应。其次,单粒子翻转效应所产生的影响会随着传输路径的增加而衰弱,本方法通过阶跃函数进行模拟,认为超过追溯层数的单粒子翻转不产生影响。
S120、对Verilog代码进行一次非注入的基准测试,并通过标准的VCD文件记录Verilog代码的正确行为。
具体的,通过Verilog代码对待测试集成电路系统进行一次非注入(也指没有任何干扰)的基准测试,得到待测试集成电路系统经基准测试后的正确行为。在后续步骤中,可以正确行为为参考,在后续注入干扰的测试中查看干扰后的测试结果与正确行为的区别,以确定注入的干扰是否对待测试集成电路系统产生影响。
S130、采用基本参数并基于逻辑综合工具的反标方法以及图遍历方法实现单粒子效应在寄存器传输级层次以及门级层的建模,确定待测试集成电路系统中各器件发生单粒子效应的悲观概率,其中,单粒子效应的悲观概率为单粒子翻转效应的悲观概率或单粒子瞬态效应的悲观概率。
具体的,对于门级层次的Verilog代码,计算单粒子翻转效应的悲观概率和单粒子瞬态效应的悲观概率。对于寄存器传输级的Verilog代码,计算单粒子翻转效应的悲观概率。单粒子翻转效应的悲观概率是指可翻转的半导体器件在所有发生翻转的可能性中发生概率最大的。系统的单粒子翻转悲观概率分布不会受到各器件当前状态值的影响,是易于抽样的。 单粒子瞬态效应悲观概率是指组合逻辑锥包括的全部标准单元门在所有发生翻转的可能性中发生概率最大的求和。系统的各组合逻辑锥顶点的单粒子瞬态悲观概率分布不会受到各组合逻辑锥内各器件当前状态值的影响,是易于抽样的。
S140、根据各器件发生单粒子效应的悲观概率和基本参数确定待测试集成电路系统整体发生单粒子翻转效应的平均次数。
具体的,根据单粒子翻转效应的悲观概率与单粒子瞬态效应的悲观概率,可以建立统一的全局悲观概率分布,根据其悲观翻转概率结合步骤S110获得的所模拟的单粒子注入通量(Flux)信息即可按照下式计算待测试集成电路系统整体发生单粒子翻转效应的单位时间内的平均次数。可以根据此结果通过泊松分布得到其离散的单粒子翻转效应发生的时间间隔。在各线程每次计算时间间隔时采用不同的随机种子进行计算以获得更好的随机性。
根据泊松分布的时间间隔通过仿真器进行抽样。
S150、根据梅特罗波利斯-黑斯廷斯算法和单粒子翻转的悲观概率确定随机数和当前触发单粒子的候选状态概率。
根据步骤S130获得的单粒子翻转效应的悲观概率与单粒子瞬态效应的悲观概率,可以建立统一的全局悲观概率分布,此悲观概率与电路的当前状态无关。根据梅特罗波利斯-黑斯廷斯算法可以建立一个统一的抽样方法,在采用梅特罗波利斯-黑斯廷斯算法的优化后的随机抽样计算在面对容量为1000Bit的SRAM电路时进行注入效率比较时相比于传统方法其效率提升3.92倍,在面对复杂电路是其效率可继续提升,此方法的具体步骤如下:
步骤150-1:从[0,1]中生成随机数µ。
步骤150-2:从容易抽样系统悲观概率分布中以随机数µ取得待注入候选状态x′,其中该候选状态指向某个待注入的器件。/>是一种数学描述形式,表示一类概率分布,此处指的是统一的全局悲观概率分布。
步骤150-3-1:对于单粒子翻转效应而言,其的计算公式如下:
步骤150-3-2:对于单粒子瞬态效应而言,其的计算流程如下:
首先,根据步骤S130获得当前待注入对象所映射的组合逻辑锥内各标准单元门增加符合单粒子瞬态效应的上拉与下拉通道,分别命名为SETu与SETd。在推导前将建立如下假设与前提:
对于单一的组合逻辑器件,在同一时刻上拉通道或下拉通道仅会出现单一使能,不会同时触发上拉通道与下拉通道。上拉通道触发时,无论当前的输入值处于何种状态,器件的输出端均输出逻辑“1”。下拉通道触发时,无论当前的输入值处于何种状态,器件的输出端均输出逻辑“0”,根据卡诺图的规则对各单元门增加上下拉通道后的逻辑进行最小项转化,从而获得各自对应的合取范式(CNF)表达。在布尔逻辑中,如果一个公式是子句的合取,那么它是合取范式(Conjunctive normal form,CNF),CNF在可以表示为字句的合取的同时也可以表示为字句的集合,这一表述可以直接推导为CNF可以表述为文字的集合。此集合概念与数学一般的集合概念一致,集合内的各字句具有唯一性或者说增加或删除重复字句不会影响CNF的可满足性。然后,利用SAT解析器,将组合逻辑锥的顶点逻辑值,即映射的可翻转器件逻辑值取反,通过仿真器利用IEEE标准的VPI接口获得各标准单元门的各引脚状态值,对当前组合逻辑锥的全部可能解进行解算。可满足问题(Circuit Satisfibility,CircuitSAT)就是以数字逻辑为实例,根据各逻辑门代表的逻辑关系得到的CNF的总集合,对于可满足性问题的求解就是对逻辑是否正常的验证。最后,对全部可能解的实际概率进行统计,即获得当前组合逻辑锥发生单粒子瞬态效应从而导致末端可翻转器件发生跳变的实际可能。
对于单粒子瞬态效应的时序掩蔽,本方法建模如下:在此假定单粒子瞬态效应在时间敏感窗口内外的概率分布为平均分布,以敏感时间窗口的模型进行简化处理,利用敏感时间系数实现时序掩蔽的简化模拟。
对于单粒子瞬态效应的电气掩蔽,本方法建模如下:对于大于特定尺寸/门数量的组合逻辑锥认定为存在电气掩蔽,视为该单粒子瞬态无法在当前逻辑锥顶点产生软错误,从而实现电气掩蔽的简化模拟。图2是根据本发明实施例提供的一种电气掩蔽示意图,参考图2,图2中组合逻辑锥,若设定电气掩蔽的层数为N+1层,则图2中的 AND1 器件不满足条件a,AND2 器件相较逻辑锥顶点的距离恰好为 N+1,则在二者间仅需考虑 AND2 上的单粒子瞬态效应,不需要考虑 AND1 上的单粒子瞬态效应,认为其产生的异常脉冲被逻辑锥电气屏蔽。
综上所述,在本方法中,可翻转的半导体器件在面对单粒子翻转效应时的概率为当前状态的实际可能概率其定义如下式所示:
其中,n表示可翻转的半导体器件所属组合逻辑锥的集合,表示器件i发生受到单粒子瞬态效应产生脉冲的概率,a表示器件i在组合逻辑锥后续层次的组合逻辑门集合,/>表示器件j接收当前脉冲的概率。对于而言需要考虑电气掩蔽、时序掩蔽以及逻辑掩蔽的作用,其中使用/>表征电气掩蔽因子,j−i表示脉冲跨越层数、/>表征组合逻辑锥敏感时间系数实现简化。
通过上述SAT方法进行计算后,可以消除上式中的部分,因为SAT的计算结果考虑了其逻辑掩蔽的概率,简化后的表达式如下所示:
需要说明的是,本实施例中的是指器件对应当前实际状态的翻转概率。
步骤150-4:计算采纳该候选状态的概率。根据当前的注入类型跳转到步骤150-3-1或步骤150-3-2。/>即为当前触发单粒子的候选状态概率。
针对单粒子瞬态在高层次仿真中的建模,本方案结合组合逻辑二值特性与合取范式的适配,提出了基于电路SAT问题的单粒子瞬态概率计算方法,将单粒子瞬态效应中最重要的逻辑掩蔽率计算转化为对电路组合逻辑锥的SAT问题的求解,实现了电路诊断问题的逆应用,大大简化了对逻辑掩蔽的计算效率。并利用最大追溯层数与时间敏感因子等简化了电气掩蔽与时序掩蔽在门级中的模型,解决了单粒子瞬态效应在高层次电路仿真中难以建模的困难,
S160、在随机数大于当前触发单粒子的候选状态概率时,接收该状态并对其实施一次故障注入,并记录故障注入的时间、位置和类型。
具体的,在随机数不大于当前触发单粒子的候选状态概率时,不做任何操作,等待下一次抽样。故障注入,即将错误信息(也可理解为干扰信息)注入到待测试集成电路系统中。进行故障注入,以获取待测试集成电路系统发生错误的错误率,以衡量待测试集成电路系统质量。
注入的位置是指将故障注入到哪个器件上,注入的类型可为单粒子翻转效应或单粒子瞬态效应。
S170、以待测试集成电路系统的实际测试时间为基准,停止故障注入,根据仿真等待间隔时长进行等待,并通过VCD文件记录故障注入后待测试集成电路系统的各输出值。
具体的,实际测试时间可为待测试集成电路系统的运行时间。待测试集成电路系统注入故障后,等待仿真等待间隔时长,可得到待测试集成电路系统输出的所有结果。
S180、根据Verilog代码的正确行为记录待测试集成电路系统的各输出值的错误。
具体的,对于待测试集成电路系统的同一端口,当故障注入后待测试集成电路系统的输出值与正确行为不同时,则确定该输出值错误。
S190、根据故障注入的时间、位置和类型以及待测试集成电路系统的各输出值的错误确定待测试集成电路系统的敏感列表、软错误率和翻转截面。
具体的,敏感列表指待测试集成电路系统中错误率较高的区域的列表,获取敏感列表后,可根据敏感列表加固错误率较高的区域。
本实施例提供了一种基于仿真的单粒子软错误分析方法,该单粒子软错误分析方法以单粒子效应数据库作为数据基础,对于单粒子翻转效应而言,在门级层次可以建立单粒子翻转概率分布。对于寄存器传输级,建立单粒子翻转概率分布。其次,对于单粒子瞬态效应而言,通过一种基于逻辑综合工具的建图方法,将电路模型转化为带有电路信息的有向图,以各可翻转器件为顶点的组合逻辑锥作为研究对象。对于逻辑掩蔽效应,通过电路可满足性问题,将可翻转器件所属的组合逻辑锥电路建立故障假设后进行电路诊断,获得该组合逻辑锥逻辑掩蔽概率。对于电气掩蔽效应,通过电气掩蔽因子表征组合逻辑锥层数约化表征电气掩蔽效应;对于时序掩蔽效应,通过时间敏感因子表征可能时间窗口占时钟周期的比例约化表征时序掩蔽效应。从而建立单粒子瞬态效应在门级层次的概率估算模型。然后,以单粒子翻转效应与单粒子悲观效应的发生悲观概率构建全局电路的单粒子效应悲观概率分布。并以此为基础使用基于梅特罗波利斯-黑斯廷斯算法的蒙特卡洛抽样方法,从容易抽样的单粒子效应悲观概率分布中获得具体的可翻转器件实例,并计算该实例实际发生单粒子翻转效应与单粒子瞬态效应的可能概率,以计算得到的可能概率与悲观概率在此进行抽样以确定是否采信当前实例与当前翻转可能,进行一次软错误注入。最后,通过动态仿真的方法进行蒙特卡洛仿真,根据抽样结果进行单粒子翻转与单粒子效应的软错误注入,并根据用户设定的标准判断各次仿真的结果,并根据各次注入的位置、类型与各次仿真的结果进行汇总分析,得到待测试集成电路系统中错误率较高的区域的列表及软错误率。综上,本实施例提供的基于仿真的单粒子软错误分析方法,实现由单粒子翻转以及单粒子瞬态在内的单粒子效应所导致的软错误在计算机仿真中的建模,将传统的单粒子软错误分析从Hspice仿真延伸至寄存器传输级与门级,提高软错误分析效率,降低软错误的分析门槛。
可选的,采用基本参数并基于逻辑综合工具的反标方法以及图遍历方法实现单粒子效应在寄存器传输级层次以及门级层的建模,确定待测试集成电路系统中各器件发生单粒子效应的悲观概率具体包括:
当代码层级为门级层级时,根据Verilog代码、标准单元与IP列表,获得各类型器件在待测试集成电路系统中的全部映射;根据拟进行模拟的工艺的单粒子翻转截面、所模拟的单粒子线性能量传输以及所模拟的单粒子注入通量,获取各器件发生单粒子翻转效应的悲观概率;根据待测试集成电路系统建立有向图;根据有向图建立相应的组合逻辑锥映射;根据拟进行模拟的工艺的单粒子翻转截面、所模拟的单粒子线性能量传输以及所模拟的单粒子注入通量确定各可翻转器件所映射的组合逻辑锥发生单粒子瞬态效应的悲观概率;当代码层级为寄存器传输级层级时,根据Verilog代码获得全部翻转器件在寄存器传输级层级内的各实例表征;根据拟进行模拟的工艺的单粒子翻转截面,建立器件与翻转界面的映射关系;根据所模拟的单粒子线性能量传输及所模拟的单粒子注入通量,获取各器件发生单粒子翻转效应的悲观概率。
具体的,在步骤S120之后,根据步骤S110所获得的代码层级(寄存器传输级、门级)信息以及步骤S110所获得的仿真线程数,同时启用多个线程分别跳转到步骤S130-1或步骤S130-2。利用多个线程建立线程池,共重复执行用户设定的次数。多线程行为体现了优点内的多线程优化,有助于提升效率。
步骤S130-1:本步骤适用于门级层次的Verilog代码,在门级层次中,需要进行单粒子翻转效应和单粒子瞬态效应的准备,各步骤如下:
步骤S130-1-1:由于门级层次的Verilog代码直接描述了各类触发器、存储单元、逻辑门的具体信息与拓扑连接形式,仅需通过自顶向下的深度优先搜索形式即可获得全部的触发点位。在搜索的过程中,结合步骤S110所获得的标准单元与IP列表,实现器件与类型的绑定,从而获得各型器件在当前待分析电路中的全部映射。其中,深度优先搜索是一种计算机领域内常见的拓扑遍历形式;触发点位是指可发生翻转的器件;此处的映射是指建立器件类型与器件位置(拓扑层级)的联系。
步骤S130-1-2:通过步骤S130-1-1在获得全部翻转器件在门级传输级内的各实例表征后,对于单粒子翻转效应根据步骤S110获得的拟进行模拟的工艺的单粒子翻转截面(Xsect)信息,建立器件与翻转界面的映射关系。对于各器件,取其较大的翻转截面作为悲观翻转截面,结合步骤S110获得的所模拟的单粒子线性能量传输(LET)、所模拟的单粒子注入通量(Flux)信息,即可计算在当前参数下,各器件发生单粒子翻转效应的悲观概率,其计算公式如下所示:
其中,表示符合当前LET参数的翻转截面集合,包括了0到1的翻转界面与1到0的翻转截面。
步骤S130-1-3:本步骤用于计算各单粒子瞬态效应触发点位的单粒子瞬态效应所对应的悲观翻转概率。通过步骤S130-1-1在获得全部翻转器件在门级传输级内的各实例表征后,对于单粒子瞬态效应而言,所需要计算的概率对象应为组合逻辑锥的整体,而非独立的各标准单元门,通过yosys一类的 Verilog-Parser可以实现对待测试系统电路的分析,并通过相应的拓扑关系实现系统电路的有向图(Directed Graph)建立,根据有向图以及各节点的门信息,可以建立相应的组合逻辑锥映射,实现逻辑锥与可翻转器件之间的映射。
图3是根据本发明实施例提供的一种组合逻辑锥示意图,参考图3,输入端口A-E与NOR1、INV1、XNOR1、AND1、AND2组成了一个组合逻辑锥,该组合逻辑锥的顶点与映射对象为DFF1。组合逻辑锥是指时序器件追溯到前一级时序器件或输入端口之间的组合逻辑扇入的集合。
步骤S130-1-4:通过步骤S130-1-3所获得的逻辑锥与可翻转器件之间的映射,对于单粒子瞬态效应根据步骤S110获得的拟进行模拟的工艺的单粒子翻转截面(Xsect)信息,建立组合逻辑锥内各器件与翻转界面的映射关系。对于各器件,取其较大的翻转截面作为悲观翻转截面,结合步骤S110获得的所模拟的单粒子线性能量传输(LET)、所模拟的单粒子注入通量(Flux)信息,即可计算在当前参数下,各可翻转器件所映射的组合逻辑锥发生单粒子瞬态效应的悲观概率,其计算公式如下所示:
其中,器件i-n表示为归属当前所映射组合逻辑锥内的全部器件。
步骤130-2:本步骤适用于寄存器传输级的Verilog代码,在寄存器传输级层次中,仅进行有关于单粒子翻转效应的准备,各步骤如下:
步骤130-2-1: 由于寄存器传输级不直接描述触发器与各类存储单元,而单粒子翻转效应是作用于此类单元之上的,如需在寄存器传输级视线单粒子翻转效应的仿真,则需要获得寄存器传输级所对应的触发器与各类存储单元的数量与位置。其中,寄存器传输级与门级不同,寄存器传输级的电路描述不包括标准单元门,而是工程师所描述的电路‘抽象’模型,本步骤的目的在于获得‘抽象’所对应的具体电路,通过分析具体电路来表征‘抽象’模型的结果。
对于寄存器传输层级的系统电路,触发器与各类存储单元等可翻转器件的捕捉属于技术难点,主要原因如下:对于 Verilog-HDL 源语言而言,变量类型主要有wire与reg,倘以reg等关键字作为检索依据可以捕获完全的可翻转器件路径,但在组合逻辑中会导致误判,因为对于Verilog-HDL 源语言而言,标准规范未强制规定reg关键字会被综合成D 触发器和锁存器等时序器件,在组合逻辑内定义的reg变量也符合语法限制,若将全部的 reg关键字均视为可翻转器件,则会导致误识别;而对于System Verilog-HDL源语言而言,该描述语言相比于Verilog-HDL精简了数据类型,统一wire与reg为logic变量,进一步将电路网表的具体实现交由编译器完成最优选择,此时对于reg的关键词检索无法实现。因而无法直接使用词法分析器等类似方法实现寄存器在寄存器传输级描述的捕获。
根据上述原因,同时为使对寄存器传输级的注入更贴近实际工程工作流,在寄存器传输级中对于可翻转器件的捕获需要借助 DC 逻辑综合工具以及 Synopsys 提供的通用单元库(Generic Technology,GTECH)实现。GTECH 是一个通用的独立于工艺库之外的元件库,是一个包括了与非门、或非门、标准触发器在内的完备元件库。
图4是本发明实施例提供的一种GTECH 内通用触发器 *SEQGEN* 标准引脚接口示意图,参考图4,通用触发器 *SEQGEN*描述了触发器的基本功能接口,其中,端口EN表示使能端,端口AD表示asynch data端,端口AC表示asynch clear端,端口AS表示asynch set端,端口D表示next state端,端口SC表示synch clear端,端口SS表示synch set端,端口SL表示synch load端,端口ST表示synch toggle端,端口CLK表示clocked on 端。通用触发器可以作为单粒子翻转效应的触发点位,本步骤的目标就是获得一个‘抽象’描述所对应的通用触发器的数量以及各通用触发器对于原始‘抽象’模型的位置。
对于可翻转器件的捕获而言,需要 DC 工具的 Translate 并尽量避免 DC工具的Logic Optimize 从而使得 DC 工具可以尽量保留寄存器传输级的设计,避免相关可翻转器件的精简与优化,以 GTECH.db 作为映射的标准对象,以统一的SEQGEN 作为可翻转器件的代表,通过下列tcl代码实现对DC综合目标的控制。
set link_library [list gtech.db]
set target_library [list gtech.db]
set symbol_library [list gtech.db]
利用上述代码段,使DC工具在脱离特定工艺库的情况下实现正常的Translate 环节。
步骤130-2-2:通过步骤130-2-1在获得以 GTECH.db 作为映射的对象后,利用DC工具的all_register命令获得输出,利用输出的register.cells 中各SEQGEN所代表的通用触发器的Q或QN端口反推其在寄存器传输级内的各实例表征。
步骤130-2-3:通过步骤130-2-2在获得全部翻转器件在寄存器传输级内的各实例表征后,根据步骤S110获得的拟进行模拟的工艺的单粒子翻转截面(Xsect)信息,建立器件与翻转界面的映射关系。对于各器件,取其较大的翻转截面作为悲观翻转截面,结合步骤S110获得的所模拟的单粒子线性能量传输(LET)、所模拟的单粒子注入通量(Flux)信息,即可计算在当前参数下,各器件发生单粒子翻转效应的悲观概率,其计算公式如下所示:
其中表示符合当前LET参数的翻转截面集合,包括了0到1的翻转界面与1到0的翻转截面。
综上,本实施例通过基于逻辑综合工具的反标方法以及图遍历方法实现了单粒子效应在寄存器传输级以及门级的建模,可以在电路设计的早期阶段即进行部分单粒子效应的评估工作。通过电路可满足性问题,转化了单粒子瞬态效应中最重要的逻辑掩蔽概率的计算,实现了单粒子瞬态效应在门级层次的建模,避免了将原始电路描述转化为Hspice的工作,可以在高层次仿真下进行软错误评估。针对单粒子翻转效应在寄存器传输级层次的实现,本实施例提出了基于逻辑综合工具实现的寄存器反标方法,解决了寄存器传输级中难以通过词法分析获得可翻转器件列表的问题,使得单粒子翻转效应的分析拓展到寄存器传输级。
可选的,根据各器件发生单粒子效应的悲观概率和基本参数确定待测试集成电路系统整体发生单粒子翻转效应的平均次数具体包括:
根据各器件发生单粒子效应的悲观概率和所模拟的单粒子注入通量确定待测试集成电路系统整体发生单粒子翻转效应的平均次数。
可选的,根据梅特罗波利斯-黑斯廷斯算法和单粒子翻转的悲观概率确定随机数和当前触发单粒子的候选状态概率具体包括:
根据单粒子翻转的悲观概率建立全局悲观概率分布;
从[0,1]中生成随机数;
从容易抽样系统悲观概率分布中以随机数取得待注入候选状态x′,其中该候选状态指向待注入的器件;
对于单粒子翻转效应,确定可翻转的半导体器件发生翻转的可能性概率,将其记为;
将与单粒子翻转的悲观概率的比值确定为当前触发单粒子的候选状态概率。
具体的,本实施例提出了一种基于梅特罗波利斯-黑斯廷斯思想的抽样方案,利用悲观概率与可能性概率(指的是P实际可能),对依赖于当前逻辑状态的系统单粒子效应概率分布进行简化,提出了易于抽样的系统单粒子效应悲观概率并简化了梅特罗波利斯-黑斯廷斯抽样的状态转移,解决了系统单粒子效应概率分布与电路状态耦合困境。
可选的,在随机数大于当前触发单粒子的条件概率时,接收该状态并对其实施一次故障注入具体包括:
控制仿真器模拟Forece语句与Release语句交互式的行为以模拟一次故障注入。
具体的,若随机数µ≥,接收该状态并对其实施一次故障注入,具体执行方法如下:符合IEEE Std364-2005规范的仿真器均支持 assign与 deassign/force与release语句,由于前者代表的第一类连续赋值语句会存在复写而后者代表的第二类连续赋值语句不会覆盖第一类连续赋值语句,故采用 force 与 release 语句以模拟单粒子效应。图5是本发明实施例提供的一种仿真器运行时序图,参考图5,其中a1与c1为半加器输入端口,初始值为2’b1,c1为半加器输出端口,初始值为2’b2,在a时刻通过force将其值设置为2’b2,此时在a时刻c1值同步跳变;在b时刻通过release释放控制。模拟了一次故障注入,实现了2’b1到2’b2的控制。
对 ISCAS’89 的 s38584.1.bench 基准电路在需要进行随机抽样时的仿真速度进行模拟,次数设定为 500 次,测例随机生成的顺序输入序列。A 组与 B 组均同样由基本生成离散的仿真注入时间与注入位置,其中 A 组预先通过脚本生成对应的 500 份测例,分别利用 VCS 仿真工具编译得到 simv 可执行文件后按顺序进行编译与仿真,B 组则Forece 与 Release交互式的仿真手段,其系统电路仅需进行一次编译,在其后的 500 次执行进行动态的故障注入,各组仿真时间总耗时统计后 B 组速度在 500 次平均下是 A组速度 500 次平均的 35.92 倍。在实际使用中,本方法使用VPI直接控制仿真器模拟Forece与 Release交互式的行为。交互式的仿真无需进行预先的计算,避免了静态仿真的重复编译行为,同时可以充分考虑不同故障注入之间的影响。
可选的,根据故障注入的时间、位置和类型以及待测试集成电路系统的各输出值的错误确定待测试集成电路系统的敏感列表、软错误率和翻转截面具体包括:
对待测试集成电路系统的各输出值的错误的次数进行排序,得到待测试集成电路系统的敏感列表;
根据如下公式确定软错误率:
其中,P错误率为待测试集成电路系统的软错误率;
根据如下公式确定翻转截面:
其中,为待测试集成电路系统的翻转截面,/>为待测试集成电路系统中器件的翻转截面。
具体的,仿真总次数是指在软件仿真待测试集成电路系统运行的总次数。发生错误的次数表示在软件仿真中器件出错的次数,也就是故障注入后,器件引脚输出值与步骤S120中正确行为不同的次数。
可选的,根据拟进行模拟的工艺的单粒子翻转截面、所模拟的单粒子线性能量传输以及所模拟的单粒子注入通量,获取各器件发生单粒子翻转效应的悲观概率具体包括:
根据如下公式确定各器件发生单粒子翻转的悲观概率:
其中,为代码层级为门级层级时,器件发生单粒子翻转的悲观概率,为单粒子注入通量,/>表示符合当前LET参数的翻转截面集合,包括了0到1的翻转截面与1到0的翻转截面,LET为所模拟的单粒子线性能量传输。
具体的,设定值通过用户确定。
可选的,根据拟进行模拟的工艺的单粒子翻转截面、所模拟的单粒子线性能量传输以及所模拟的单粒子注入通量确定各可翻转器件所映射的组合逻辑锥发生单粒子瞬态效应的悲观概率具体包括:
根据如下公式确定各器件发生单粒子瞬态效应的悲观概率:
其中,为器件发生单粒子瞬态效应的悲观概率。
可选的,根据所模拟的单粒子线性能量传输及所模拟的单粒子注入通量,获取各器件发生单粒子翻转的悲观可能性具体包括:
根据如下公式确定各器件发生单粒子翻转效应的悲观概率:
其中,为代码层级为寄存器传输级层级时,器件发生单粒子翻转效应的悲观概率。
可选的,根据各器件发生单粒子效应的悲观概率和基本参数确定待测试集成电路系统整体发生单粒子翻转效应的平均次数具体包括:
根据如下公式确定平均次数:
其中,为平均次数,/>为所模拟的单粒子注入通量。
本发明实施例通过基于逻辑综合工具的反标方法以及图遍历方法实现了单粒子翻转效应在寄存器传输级以及门级的建模,可以在电路设计的早期阶段即进行部分单粒子效应的评估工作。通过电路可满足性问题,转化了单粒子瞬态效应中最重要的逻辑掩蔽概率的计算,实现了单粒子瞬态效应在门级层次的建模,避免了将原始电路描述转化为Hspice的工作,可以在高层次仿真下进行软错误评估。通过基于梅特罗波利斯-黑斯廷斯思想的抽样方案,利用悲观概率与可能概率,对依赖于当前逻辑状态的系统单粒子效应概率分布进行简化,提出了易于抽样的系统单粒子效应悲观概率并简化了梅特罗波利斯-黑斯廷斯抽样的状态转移,大大提高了单次仿真中蒙特卡洛抽样的效率。通过基于动态注入、多线程的仿真流程解决方案,提高了整体的蒙特卡洛大样本仿真效率。通过基于PLI的方式控制仿真器进程,实现了对于仿真器的全兼容。
本实施例还提供了一种基于仿真的单粒子软错误分析装置,该单粒子软错误分析装置包括:参数接收输出模块、代码测试模块、悲观概率计算模块、次数统计模块、条件概率确定模块、故障注入模块、故障输出模块、测试结果输出模块以及结果确定模块;
参数接收输出模块用于接收输入参数,并根据输入参数为待测试集成电路系统配置相应的基本参数,其中,基本参数包括Verilog代码、代码层级、蒙特卡洛采样重复次数、所模拟的单粒子线性能量传输、所模拟的单粒子注入通量、拟进行模拟的工艺的单粒子翻转截面、仿真线程数、仿真等待间隔时长、单粒子翻转效应追溯层数以及标准单元与IP列表;代码层级包括门级层级和寄存器传输级层级;
代码测试模块用于对Verilog代码进行一次非注入的基准测试,并通过标准的VCD文件记录Verilog代码的正确行为;
悲观概率计算模块用于采用基本参数并基于逻辑综合工具的反标方法以及图遍历方法实现单粒子效应在寄存器传输级层次以及门级层的建模,确定待测试集成电路系统中各器件发生单粒子效应的悲观概率,其中,单粒子效应的悲观概率为单粒子翻转效应的悲观概率或单粒子瞬态效应的悲观概率;
次数统计模块用于根据各器件发生单粒子效应的悲观概率和基本参数确定待测试集成电路系统整体发生单粒子翻转效应的平均次数;条件概率确定模块用于根据梅特罗波利斯-黑斯廷斯算法和单粒子翻转的悲观概率确定随机数和当前触发单粒子的候选状态概率;
故障注入模块用于在随机数大于当前触发单粒子的候选状态概率时,接收该状态并对其实施一次故障注入,并记录故障注入的时间、位置和类型;
故障输出模块用于以待测试集成电路系统的实际测试时间为基准,停止故障注入,根据仿真等待间隔时长进行等待,并通过VCD文件记录故障注入后待测试集成电路系统的各输出值;
测试结果输出模块用于根据Verilog代码的正确行为记录待测试集成电路系统的各输出值的错误;
结果确定模块用于根据故障注入的时间、位置和类型以及待测试集成电路系统的各输出值的错误确定待测试集成电路系统的敏感列表、软错误率和翻转截面。
本实施例提供的基于仿真的单粒子软错误分析装置与本发明任意实施例提供的基于仿真的单粒子软错误分析方法具有相应的有益效果,未在本实施例详尽的技术细节,详见本发明任意实施例提供的基于仿真的单粒子软错误分析方法。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (9)
1.一种基于仿真的单粒子软错误分析方法,其特征在于,包括:
接收输入参数,并根据所述输入参数为待测试集成电路系统配置相应的基本参数,其中,所述基本参数包括Verilog代码、代码层级、蒙特卡洛采样重复次数、所模拟的单粒子线性能量传输、所模拟的单粒子注入通量、拟进行模拟的工艺的单粒子翻转截面、仿真线程数、仿真等待间隔时长、单粒子翻转效应追溯层数以及标准单元与IP列表;所述代码层级包括门级层级和寄存器传输级层级;
对所述Verilog代码进行一次非注入的基准测试,并通过标准的VCD文件记录所述Verilog代码的正确行为;
采用所述基本参数并基于逻辑综合工具的反标方法以及图遍历方法实现单粒子效应在寄存器传输级层次以及门级层的建模,确定所述待测试集成电路系统中各器件发生单粒子效应的悲观概率,其中,所述单粒子效应的悲观概率为单粒子翻转效应的悲观概率或单粒子瞬态效应的悲观概率;其中,所述单粒子翻转效应的悲观概率是指可翻转的半导体器件在所有发生翻转的可能性中发生概率最大的;所述单粒子瞬态效应悲观概率是指组合逻辑锥包括的全部标准单元门在所有发生翻转的可能性中发生概率最大的求和;
根据所述各器件发生单粒子效应的悲观概率和所述基本参数确定所述待测试集成电路系统整体发生单粒子翻转效应的平均次数;
根据梅特罗波利斯-黑斯廷斯算法和所述单粒子翻转的悲观概率确定随机数和当前触发单粒子的候选状态概率;
在所述随机数大于所述当前触发单粒子的候选状态概率时,接收这一状态并对其实施一次故障注入,并记录故障注入的时间、位置和类型;
以待测试集成电路系统的实际测试时间为基准,停止故障注入,根据所述仿真等待间隔时长进行等待,并通过VCD文件记录故障注入后所述待测试集成电路系统的各输出值;
根据所述Verilog代码的正确行为记录所述待测试集成电路系统的各输出值的错误;
根据故障注入的时间、位置和类型以及所述待测试集成电路系统的各输出值的错误确定所述待测试集成电路系统的敏感列表、软错误率和翻转截面;
所述采用所述基本参数并基于逻辑综合工具的反标方法以及图遍历方法实现单粒子效应在寄存器传输级层次以及门级层的建模,确定所述待测试集成电路系统中各器件发生单粒子效应的悲观概率具体包括:
当所述代码层级为门级层级时,根据所述Verilog代码、所述标准单元与IP列表,获得各类型器件在所述待测试集成电路系统中的全部映射;根据所述拟进行模拟的工艺的单粒子翻转截面、所模拟的单粒子线性能量传输以及所模拟的单粒子注入通量,获取各器件发生单粒子翻转效应的悲观概率;根据所述待测试集成电路系统建立有向图;根据有向图建立相应的组合逻辑锥映射;根据所述拟进行模拟的工艺的单粒子翻转截面、所述所模拟的单粒子线性能量传输以及所述所模拟的单粒子注入通量确定各可翻转器件所映射的组合逻辑锥发生单粒子瞬态效应的悲观概率;
当所述代码层级为寄存器传输级层级时,根据所述Verilog代码获得全部翻转器件在寄存器传输级层级内的各实例表征;根据所述拟进行模拟的工艺的单粒子翻转截面,建立器件与翻转界面的映射关系;根据所述所模拟的单粒子线性能量传输及所述所模拟的单粒子注入通量,获取各器件发生单粒子翻转效应的悲观概率。
2.根据权利要求1所述的单粒子软错误分析方法,其特征在于,所述根据所述各器件发生单粒子效应的悲观概率和所述基本参数确定所述待测试集成电路系统整体发生单粒子翻转效应的平均次数具体包括:
根据所述各器件发生单粒子效应的悲观概率和所述所模拟的单粒子注入通量确定所述待测试集成电路系统整体发生单粒子翻转效应的平均次数。
3.根据权利要求1所述的单粒子软错误分析方法,其特征在于,所述根据梅特罗波利斯-黑斯廷斯算法和所述单粒子翻转的悲观概率确定随机数和当前触发单粒子的候选状态概率具体包括:
根据所述单粒子翻转的悲观概率建立全局悲观概率分布;
从[0,1]中生成所述随机数;
从容易抽样系统悲观概率分布中以所述随机数取得待注入候选状态x′,其中该候选状态指向待注入的器件;
对于单粒子翻转效应,确定可翻转的半导体器件发生翻转的可能性概率,将其记为;
将与所述单粒子翻转的悲观概率的比值确定为所述当前触发单粒子的候选状态概率。
4.根据权利要求1所述的单粒子软错误分析方法,其特征在于,在所述随机数大于所述当前触发单粒子的条件概率时,接收这一状态并对其实施一次故障注入具体包括:
控制仿真器模拟Forece语句与Release语句交互式的行为以模拟一次故障注入。
5.根据权利要求1所述的单粒子软错误分析方法,其特征在于,所述根据故障注入的时间、位置和类型以及所述待测试集成电路系统的各输出值的错误确定所述待测试集成电路系统的敏感列表、软错误率和翻转截面具体包括:
对所述待测试集成电路系统的各输出值的错误的次数进行排序,得到所述待测试集成电路系统的敏感列表;
根据如下公式确定软错误率:
;
其中,P错误率为所述待测试集成电路系统的软错误率;
根据如下公式确定翻转截面:
;
其中,为所述待测试集成电路系统的翻转截面,/>为所述待测试集成电路系统中器件的翻转截面。
6.根据权利要求1所述的单粒子软错误分析方法,其特征在于,所述根据所述拟进行模拟的工艺的单粒子翻转截面、所模拟的单粒子线性能量传输以及所模拟的单粒子注入通量,获取各器件发生单粒子翻转效应的悲观概率具体包括:
根据如下公式确定各器件发生单粒子翻转的悲观概率:
;
其中,为所述代码层级为门级层级时,器件发生单粒子翻转的悲观概率,/>为单粒子注入通量,/>表示符合当前LET参数的翻转截面集合,包括了0到1的翻转截面与1到0的翻转截面,LET为所模拟的单粒子线性能量传输;
所述根据所述拟进行模拟的工艺的单粒子翻转截面、所述所模拟的单粒子线性能量传输以及所述所模拟的单粒子注入通量确定各可翻转器件所映射的组合逻辑锥发生单粒子瞬态效应的悲观概率具体包括:
根据如下公式确定各器件发生单粒子瞬态效应的悲观概率:
;
其中,为器件发生单粒子瞬态效应的悲观概率。
7.根据权利要求1所述的单粒子软错误分析方法,其特征在于,所述根据所述所模拟的单粒子线性能量传输及所述所模拟的单粒子注入通量,获取各器件发生单粒子翻转效应的悲观概率具体包括:
根据如下公式确定各器件发生单粒子翻转效应的悲观概率:
;
其中,为所述代码层级为寄存器传输级层级时,器件发生单粒子翻转效应的悲观概率。
8.根据权利要求1所述的单粒子软错误分析方法,其特征在于,所述根据所述各器件发生单粒子效应的悲观概率和所述基本参数确定所述待测试集成电路系统整体发生单粒子翻转效应的平均次数具体包括:
根据如下公式确定平均次数:
;
其中,为平均次数,/>为所模拟的单粒子注入通量,为相应的器件发生单粒子瞬态效应的悲观概率。
9.一种基于仿真的单粒子软错误分析装置,其特征在于,包括:参数接收输出模块、代码测试模块、悲观概率计算模块、次数统计模块、条件概率确定模块、故障注入模块、故障输出模块、测试结果输出模块以及结果确定模块;
所述参数接收输出模块用于接收输入参数,并根据所述输入参数为待测试集成电路系统配置相应的基本参数,其中,所述基本参数包括Verilog代码、代码层级、蒙特卡洛采样重复次数、所模拟的单粒子线性能量传输、所模拟的单粒子注入通量、拟进行模拟的工艺的单粒子翻转截面、仿真线程数、仿真等待间隔时长、单粒子翻转效应追溯层数以及标准单元与IP列表;所述代码层级包括门级层级和寄存器传输级层级;
所述代码测试模块用于对所述Verilog代码进行一次非注入的基准测试,并通过标准的VCD文件记录所述Verilog代码的正确行为;
所述悲观概率计算模块用于采用所述基本参数并基于逻辑综合工具的反标方法以及图遍历方法实现单粒子效应在寄存器传输级层次以及门级层的建模,确定所述待测试集成电路系统中各器件发生单粒子效应的悲观概率,其中,所述单粒子效应的悲观概率为单粒子翻转效应的悲观概率或单粒子瞬态效应的悲观概率;其中,所述单粒子翻转效应的悲观概率是指可翻转的半导体器件在所有发生翻转的可能性中发生概率最大的;所述单粒子瞬态效应悲观概率是指组合逻辑锥包括的全部标准单元门在所有发生翻转的可能性中发生概率最大的求和;
所述次数统计模块用于根据所述各器件发生单粒子效应的悲观概率和所述基本参数确定所述待测试集成电路系统整体发生单粒子翻转效应的平均次数;所述条件概率确定模块用于根据梅特罗波利斯-黑斯廷斯算法和所述单粒子翻转的悲观概率确定随机数和当前触发单粒子的候选状态概率;
所述故障注入模块用于在所述随机数大于所述当前触发单粒子的候选状态概率时,接收这一状态并对其实施一次故障注入,并记录故障注入的时间、位置和类型;
所述故障输出模块用于以待测试集成电路系统的实际测试时间为基准,停止故障注入,根据所述仿真等待间隔时长进行等待,并通过VCD文件记录故障注入后所述待测试集成电路系统的各输出值;
所述测试结果输出模块用于根据所述Verilog代码的正确行为记录所述待测试集成电路系统的各输出值的错误;
所述结果确定模块用于根据故障注入的时间、位置和类型以及所述待测试集成电路系统的各输出值的错误确定所述待测试集成电路系统的敏感列表、软错误率和翻转截面;
所述采用所述基本参数并基于逻辑综合工具的反标方法以及图遍历方法实现单粒子效应在寄存器传输级层次以及门级层的建模,确定所述待测试集成电路系统中各器件发生单粒子效应的悲观概率具体包括:
当所述代码层级为门级层级时,根据所述Verilog代码、所述标准单元与IP列表,获得各类型器件在所述待测试集成电路系统中的全部映射;根据所述拟进行模拟的工艺的单粒子翻转截面、所模拟的单粒子线性能量传输以及所模拟的单粒子注入通量,获取各器件发生单粒子翻转效应的悲观概率;根据所述待测试集成电路系统建立有向图;根据有向图建立相应的组合逻辑锥映射;根据所述拟进行模拟的工艺的单粒子翻转截面、所述所模拟的单粒子线性能量传输以及所述所模拟的单粒子注入通量确定各可翻转器件所映射的组合逻辑锥发生单粒子瞬态效应的悲观概率;
当所述代码层级为寄存器传输级层级时,根据所述Verilog代码获得全部翻转器件在寄存器传输级层级内的各实例表征;根据所述拟进行模拟的工艺的单粒子翻转截面,建立器件与翻转界面的映射关系;根据所述所模拟的单粒子线性能量传输及所述所模拟的单粒子注入通量,获取各器件发生单粒子翻转效应的悲观概率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311659069.0A CN117350222B (zh) | 2023-12-06 | 2023-12-06 | 一种基于仿真的单粒子软错误分析方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311659069.0A CN117350222B (zh) | 2023-12-06 | 2023-12-06 | 一种基于仿真的单粒子软错误分析方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117350222A CN117350222A (zh) | 2024-01-05 |
CN117350222B true CN117350222B (zh) | 2024-02-27 |
Family
ID=89357994
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311659069.0A Active CN117350222B (zh) | 2023-12-06 | 2023-12-06 | 一种基于仿真的单粒子软错误分析方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117350222B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461808A (zh) * | 2014-11-06 | 2015-03-25 | 北京空间飞行器总体设计部 | 一种fpga单粒子软错误影响评估方法 |
CN107167725A (zh) * | 2017-03-30 | 2017-09-15 | 北京时代民芯科技有限公司 | 一种快速低开销全自动数字集成电路单粒子故障注入系统 |
-
2023
- 2023-12-06 CN CN202311659069.0A patent/CN117350222B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461808A (zh) * | 2014-11-06 | 2015-03-25 | 北京空间飞行器总体设计部 | 一种fpga单粒子软错误影响评估方法 |
CN107167725A (zh) * | 2017-03-30 | 2017-09-15 | 北京时代民芯科技有限公司 | 一种快速低开销全自动数字集成电路单粒子故障注入系统 |
Non-Patent Citations (2)
Title |
---|
基于四值脉冲参数模型的单粒子瞬态传播机理与软错误率分析方法;李悦等;电子与信息学报;第38卷(第8期);第2113-2121页 * |
基于蒙特卡洛和器件仿真的单粒子翻转计算方法;王晓晗等;物理学报;第63卷(第19期);第1-7页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117350222A (zh) | 2024-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhang et al. | FASER: Fast analysis of soft error susceptibility for cell-based designs | |
CN109002601B (zh) | 一种基于Petri网的FPGA系统的验证模型建模方法 | |
Holcomb et al. | Design as you see FIT: System-level soft error analysis of sequential circuits | |
US11416662B1 (en) | Estimating diagnostic coverage in IC design based on static COI analysis of gate-level netlist and RTL fault simulation | |
Chappell et al. | LAMP: Logic‐Circuit Simulators | |
Hamad et al. | Characterizing, modeling, and analyzing soft error propagation in asynchronous and synchronous digital circuits | |
Pontes et al. | An accurate single event effect digital design flow for reliable system level design | |
Shazli et al. | Using boolean satisfiability for computing soft error rates in early design stages | |
CN117350208A (zh) | 时序逻辑元件性能检查方法及设备 | |
Liu et al. | On multiplexed signal tracing for post-silicon validation | |
Alexandrescu et al. | Simulating single event transients in VDSM ICs for ground level radiation | |
Ries et al. | Device-level transient fault modeling | |
CN117350222B (zh) | 一种基于仿真的单粒子软错误分析方法和装置 | |
Hamad et al. | Efficient and accurate analysis of single event transients propagation using smt-based techniques | |
Firdous et al. | Speeding up of design convergence using spyglass | |
Portolan et al. | Alternatives to fault injections for early safety/security evaluations | |
CN104636509A (zh) | 门级仿真中验证时序问题的方法 | |
Tsai et al. | A false-path aware formal static timing analyzer considering simultaneous input transitions | |
Zhang et al. | A fast HDL model for full-custom FPGA verification | |
Zhang et al. | Symbolic simulation of the propagation and filtering of transient faulty pulses | |
Oh et al. | Efficient logic-level timing analysis using constraint-guided critical path search | |
Roy et al. | Event propagation for accurate circuit delay calculation using SAT | |
Assaf et al. | Hardware and software co-design in space compaction of cores-based digital circuits | |
Pulka et al. | VEST-an intelligent tool for timing SoCs verification using UML timing diagrams | |
Yang et al. | HDLs modeling technique for burst-mode and extended burst-mode asynchronous circuits |
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 |