一种快速低开销全自动数字集成电路单粒子故障注入系统的制作方法

文档序号:11249643阅读:523来源:国知局
一种快速低开销全自动数字集成电路单粒子故障注入系统的制造方法与工艺

本发明涉及一种快速低开销全自动数字集成电路单粒子故障注入系统,属于半导体集成电路抗空间单粒子效应能力验证技术领域。



背景技术:

复杂的空间环境中包含了大量的粒子(电子、中子、质子和重离子)和射线。这些辐射粒子会引起半导体器件发生单粒子效应,使半导体器件状态发生扰动或永久性失效。数字集成电路在应用于航天设备之前,需要在地面上评估数字集成电路内部单元和节点的抗单粒子性能,地面上通常依靠重离子加速器来模拟单粒子试验。近年来由于进行辐射试验的加速器机时减小,成本增高,数字集成电路的抗单粒子性能的验证变得更加困难,已经对航天用关键器件的研制造成一定程度的影响。由于单粒子故障注入技术能够有效的评估数字集成电路的单粒子敏感性,越来越受到人们的重视。现如今单粒子故障注入实施方案主要分为硬件注入和仿真实现两方面,由于电路封装和集成度的限制,硬件故障注入的覆盖率不足并且会对电路本身产生不可预估的损害,而基于仿真实现的单粒子故障注入方法由于其快捷、成本低,可以在电路设计的整个过程中评估单粒子性能等优势成为了单粒子故障注入研究的热点。

现有的基于仿真的数字集成电路单粒子故障注入方法存在以下两个不足:一方面是系统的智能性不够,在单粒子故障注入试验的过程中需要试验者手动的进行很多操作,严重的影响了试验进程。例如:不能够自动生成含有故障接口的目标电路网表、与商用仿真软件的通用性不好、与实际空间辐照情况连接程度不高,不能自动实现单粒子故障注入;另一方面由于数字集成电路的规模通常会很大,一款普通的asic电路至少会有一百万个电路节点,有时甚至需要对所有的电路节点都完成故障注入,因而对进行单粒子故障注入试验的计算机性能的要求苛刻。



技术实现要素:

本发明的技术解决问题是:克服现有技术的不足,提供一种快速低开销全自动数字集成电路单粒子故障注入系统,实现了全自动的单粒子故障注入,降低了对大规模数字集成电路进行单粒子故障注入试验的计算机性能的要求。

本发明的技术解决方案是:一种快速低开销全自动数字集成电路单粒子故障注入系统,包括人机操作界面、故障电路网表代码生成模块、功能向量和故障信号随机产生模块、仿真统计和计算输出模块;

人机操作界面:接收用户输入的目标电路网表文件以及参数设置信息,并输出给故障注入器;显示故障注入器返回的实时信息;

故障电路网表代码生成模块:接收来自人机操作界面的目标电路网表文件,进行verilog门级网表词法分析,生成带有n个故障注入端口的故障电路网表文件,输出给仿真统计和计算输出模块;

功能向量和故障信号随机产生模块:对每种工作模式下的测试向量文件进行故障注入的相关配置,生成带有故障注入信息的测试向量文件以及用于仿真的宏文件,输出给仿真统计和计算输出模块;

仿真统计和计算输出模块:根据故障电路网表文件、带有故障注入信息的测试向量文件以及仿真软件自动执行的宏文件,对目标电路进行故障注入仿真,并对每次故障注入仿真前后的电路运行结果进行对比,根据故障类型库把每次的对比结果进行分类与汇总统计,并将对比结果和分类与汇总统计结果返回给人机操作界面。

所述故障电路网表代码生成模块生成带有n个故障注入端口的故障电路网表文件的实现方法如下:

(2.1)将来自人机操作界面的目标电路网表文件,转化成基于库单元的门级电路网表文件;

(2.2)在基于库单元的门级电路网表文件的模块声明部分,定义故障注入端口;

(2.3)在基于库单元的门级电路网表文件中,为故障注入端口添加属性信息,所述属性信息包括端口类型以及与其他端口连接关系,端口类型为输入端口或输出端口;

(2.4)按照步骤(2.2)和(2.3),选择一个库单元,在目标电路上添加故障注入端口,并根据该故障注入端口与其他端口的连接关系,搭建临时连接线网;

(2.5)判断是否完成了所有故障注入端口的添加,如果完成,返回故障注入端口的总数,进入步骤(2.6);否则跳转到(2.4),重新选择未添加故障注入端口的库单元进行故障注入,直到完成所有故障注入端口的添加;

(2.6)生成带有n个故障注入端口的故障电路网表文件。

所述功能向量和故障信号随机产生模块生成带有故障注入信息的测试向量文件以及仿真软件自动执行的宏文件的实现过程为:

(3.1)根据来自人机操作界面的参数设置信息获取目标电路不同工作模式下的测试向量、时序约束信息;

(3.2)选择一种工作模式,对测试向量文件进行故障注入配置,生成带有故障注入信息的测试向量文件,所述故障注入配置包括对故障注入的电路节点、故障注入时间、故障注入的持续时间、故障注入的次数设置随机函数;

(3.3)重复步骤(3.2),直到完成对所有工作模式的故障注入配置,对生成的各个测试向量文件进行保存;

(3.4)根据目标电路故障注入的仿真流程,生成用于仿真的宏文件。

所述仿真统计和计算输出模块的实现方式如下:

(4.1)仿真统计和计算输出模块对没有任何故障注入的目标电路进行仿真,得到没有进行故障注入的仿真结果;

(4.2)根据故障电路网表文件、带有故障注入信息的测试向量文件以及用于仿真的宏文件,对目标电路进行故障注入仿真;

(4.3)把每次进行故障注入后的仿真结果和没有进行故障注入的仿真结果进行对比分析;

(4.4)根据故障类型库把每次进行故障注入后的对比结果进行分类鉴别与汇总统计,将对比结果和分类与汇总统计结果返回给人机操作界面;

(4.5)删除本次进行故障注入生成的仿真文件;

(4.6)根据带有故障注入信息的测试向量文件以及用于仿真的宏文件,判断是否完成所有类型的故障注入,如果是则结束,否则返回步骤(4.2)。

本发明与现有技术相比有益效果为:

(1)本发明利用正则表达式对电路网表文件进行了词法分析,实现了故障注入端口的自动添加,利用tcl语言实现了商用软件的自动控制和调用,根据实际的空间辐照环境设置了故障注入的随机函数,最终实现了单粒子故障注入的全自动进行。

(2)本发明在故障注入的仿真过程中对生成的过程文件进行了自动识别和实时删除,解决了仿真过程中内存爆炸问题,减小了对用于仿真的计算机的性能要求。

附图说明

图1是本发明系统的结构原理图;

图2是本发明故障电路网表代码生成模块的实现流程图;

图3是本发明功能向量和故障随机信号产生模块的实现流程图;

图4是本发明仿真统计和计算输出模块的实现流程图;

具体实施方式

考虑到进行大规模集成电路单粒子故障注入时智能化程度不够,并且对故障注入的计算机大内存、高性能的要求,提供一种快速低开销全自动数字集成电路单粒子故障注入系统。该系统在灵活的分析硬件编程语言的基础上能够实现对库单元中所有单元类型的全自动的故障注入,并且实时的处理故障注入过程中生成的过程文件,减小了用于故障注入的计算机的负载,实现了全自动的单粒子故障注入。

图1为本发明的结构原理图。本发明装置包括人机操作界面、故障注入器、tcl接口协议模块和商用软件模块;其中故障注入器包括故障电路网表代码生成模块、功能向量和故障信号随机产生模块、仿真统计和计算输出模块。

用户通过人机操作界面载入目标电路网表文件、故障类型库、不同模式下的参数设置信息,通过人机操作界面输出给故障注入器。显示故障注入器返回的实时信息。其中故障类型库中包括故障的各种类型,如单粒子功能中断、单粒子翻转等。

故障电路网表代码生成模块:接收来自人机操作界面的目标电路网表文件,进行verilog门级网表词法分析,生成带有n个故障注入端口的故障电路网表文件,输出给仿真统计和计算输出模块。

如图2所示,生成带有n个故障注入端口的故障电路网表文件的具体实现过程如下:

(2.1)将来自人机操作界面的目标电路网表文件,转化成基于库单元的门级电路网表文件;

(2.2)在基于库单元的门级电路网表文件的模块声明部分,定义故障注入端口;

(2.3)在基于库单元的门级电路网表文件中,为故障注入端口添加属性信息,其中属性信息包括端口类型以及与其他端口连接关系,端口类型为输入端口或输出端口;

(2.4)按照步骤(2.2)和(2.3),选择一个库单元,在目标电路上添加故障注入端口,并根据该故障注入端口与其他端口的连接关系,通过与非门(xor)和内部连接线网来实现与其他端口的连接;

(2.5)判断是否完成了所有故障注入端口的添加,如果完成,返回故障注入端口的总数,进入步骤(2.6);否则跳转到(2.4),重新选择未添加故障注入端口的库单元进行故障注入,直到完成所有故障注入端口的添加;

(2.6)生成带有n个故障注入端口的故障电路网表文件。

在上述过程中,利用正则表达式对目标电路网表文件进行了词法分析,实现对关键字的精确查找。

功能向量和故障信号随机产生模块:对每种工作模式下的测试向量文件进行故障注入的相关配置,生成带有故障注入信息的测试向量文件以及仿真软件自动执行的宏文件,输出给仿真统计和计算输出模块。

如图3所示,生成带有故障注入信息的测试向量文件以及仿真软件自动执行的宏文件的实现过程为:

(3.1)根据来自人机操作界面的参数设置信息获取目标电路不同工作模式下的测试向量、时序约束信息;

(3.2)选择一种工作模式,对测试向量文件进行故障注入配置,生成带有故障注入信息的测试向量文件,所述故障注入配置包括对电路不同的故障注入节点设置随机函数、对故障输入时间设置随机函数、对故障的持续时间设置随机函数、对故障注入的次数设置随机函数;其中随机函数主要通过不同的辐射强度、不同功能模式下电路内部单元的利用效率来实现,从而实现与实际空间环境辐射强度的连接。

对电路不同的故障注入节点设置随机函数:i=(δu,δo)*rand(j);

其中i为待注入节点的序号,δu为某一库单元在不同工作模式下的利用因子,δo为某一库单元在目标电路所占的比例系数,rand()为仿真软件提供的随机函数,j为待注入节点的总个数。

对故障的持续时间设置随机函数:t=(δlet,δp,δb)*rand(t0);

其中t为故障注入的持续时间,δlet为线性转移能量影响因子,δp为工艺参数影响因子,δb为脉冲展宽效应影响因子,t0为初始的故障持续时间,设置为1ns;rand()为仿真软件提供的随机函数。

(3.3)重复步骤(3.2),直到完成对所有工作模式的故障注入配置,对生成的各个测试向量文件进行保存;

(3.4)根据目标电路故障注入的仿真流程,生成用于仿真的宏文件。宏文件包括不同工作模式下目标电路编译与仿真的宏文件,由人机交互界面采集的输入信息按照仿真器(如modelsim)要求的格式生成,主要功能是按照试验者的要求推动故障注入仿真的进行。

如图4所示,仿真统计和计算输出模块首先对没有任何故障注入的目标电路进行仿真,得到没有进行故障注入的仿真结果,即“黄金文件”(正确的波形文件vcd文件)。然后根据故障电路网表文件、带有故障注入信息的测试向量文件以及仿真软件自动执行的宏文件,对目标电路进行故障注入仿真,并对每次故障注入仿真前后的电路运行结果进行对比,根据故障类型库把每次的对比结果进行分类与汇总统计,并将对比结果和分类与汇总统计结果返回给人机操作界面。

比如:以某一端口为例,如果输出数据错误,则将其分类为输出错误;如果输出错误并且之后的若干个周期错误仍然不可恢复我们认为发生一次单粒子功能中断事件,如果在监控的时间内可恢复我们认为发生为一次单粒子翻转事件。

一般情况下数字集成电路的电路节点多在百万量级,进行仿真的过程中会有很大的数据量,会影响到用于故障注入仿真的计算机的运算速度,拖慢仿真进程,因而在系统每次进行故障注入仿真的过程文件进行了实时处理,每次对比完毕后,系统会自动识别并删除过程文件。从而节约用于仿真的电脑的磁盘空间,加快仿真速度。

仿真统计和计算输出模块通过tcl接口协议模块调用商用软件modelsim实现目标电路的仿真,最后利用tcl语言在按照modelsim要求的格式在外部软件ultraedit中完成宏文件(dofiles文件)的自动生成。也可以通过调用spaceradiation计算目标电路的在轨错误率,能够预估目标电路在实际空间辐照情况的抗单粒子特性。

本发明利用c#和tcl语言进行编程,在硬件描述语言词法分析的基础上实现了目标电路网表文件和功能向量的故障接口自动添加与故障信号随机函数的配置,根据不同的功能模式实现了仿真宏文件和相关文件的自动生成和保存,最终通过商用仿真软件实现了故障注入仿真,结果分析和输出的全自动化。本发明在故障注入仿真的过程中能够对生成的过程文件进行自动识别和处理,减小了对仿真计算机运算性能的要求。本发明能够在电路设计的整个过程中快速的评估目标电路的抗单粒子的性能,为设计者提供加固方向和单粒子错误的相关指标。

利用本发明的单粒子故障注入系统在通用的计算机上对一款百万门级的数字专用集成电路进行了故障注入试验,采用了基于空间辐照环境的随机故障注入算法进行故障注入配置,对每次进行故障注入仿真的过程文件实时删除,从而节约用于仿真的计算机磁盘空间,加快仿真速度,实现了单粒子故障注入的全自动进行。仿真得到的不同let值下重离子翻转截面和该款电路实际重离子试验结果近似。

本发明未详细说明部分属本领域技术人员公知常识。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1