System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种故障注入节点提取方法技术_技高网

一种故障注入节点提取方法技术

技术编号:40542294 阅读:4 留言:0更新日期:2024-03-05 18:58
本发明专利技术公开了一种故障注入节点提取方法,包括以下步骤;步骤一、基于开源库的语义分析,利用开源的Verilog‑Perl库对输入Verilog硬件描述语言形式的RTL代码设计进行语义分析、层级结构分析和节点提取;步骤二、预防真定位匹配纠正,利用仿真器对设计进行快速预仿真,生成的包含设计信息的VCD波形文件,使用少量正则匹配及脚本对提取的节点进行纠正;步骤三、故障节点管理,对纠正后的节点根据车规芯片故障分类标准加以分类方便故障仿真使用。本发明专利技术通过该故障注入节点提取方法,可以降低脚本代码量、提高提取效率以及提升可复用性。

【技术实现步骤摘要】

本专利技术属于数字电路故障仿真,具体涉及一种故障注入节点提取方法


技术介绍

1、目前在故障仿真领域的相关研究中,对于故障注入节点的提取方法根据流程大致分为基于正则表达式的脚本语义分析、基于开源语法分析工具的分析等方法;而往往由于设计的复杂性,基于正则表达式的脚本语义分析方法存在所需代码量过大、提取效率偏低或可维护性不高的问题,基于开源语法分析工具的分析方法,则受限于现有开源工具的不稳定性和局限性,识别的节点信息并不完整。

2、随着电动化、网联化和智能化的提速,汽车芯片的应用显著增加,对车规芯片功能安全的要求也不断提高,因此有必要车规芯片前端设计验证的流程中,对车规芯片的安全机制模块进行功能安全的验证,在iso 26262功能安全标准中,故障仿真被定义为验证车规芯片功能安全的一种可行方法,而故障注入节点提取作为故障仿真的重要步骤,如何提高故障注入节点提取效率、优化提取方法、搭建高效可靠的故障注入节点提取模块成为故障仿真领域的研究内容之一。

3、通常意义的故障注入节点的核心内容是如何高效准确的解析设计代码的语义、进而分析设计的层级结构和节点信息,然后根据故障仿真所需的节点类型,将故障注入节点以软件数据保存或者文本形式输出,完成节点从设计源代码的提取。

4、对于故障注入节点的提取方法根据流程大致分为基于正则表达式的脚本语义分析、基于开源语法分析工具的分析等方法;而往往由于设计的复杂性,基于正则表达式的脚本语义分析方法存在所需代码量过大、提取效率偏低或可维护性不高的问题,基于开源语法分析工具的分析方法,则受限于现有开源工具的不稳定性和局限性,识别的节点信息并不完整。


技术实现思路

1、为了克服上述现有技术存在的不足,本专利技术的目的在于提供一种故障注入节点提取方法,该方法可以降低脚本代码量、提高提取效率以及提升可复用性。

2、为了实现上述目的,本专利技术采用的技术方案是:

3、一种故障注入节点提取方法,包括以下步骤;

4、步骤一、基于开源库的语义分析,利用开源的verilog-perl库对输入verilog硬件描述语言形式的rtl(寄存器传输级)代码设计进行语义分析、层级结构分析和故障注入提取;

5、为了解析基于verilog硬件描述语言下的rtl级数字电路设计的端口、线网类型等信息和设计内部模块的层级关系,使用开源成熟的verilog-perl库可以大大降低这一步的工作量。

6、步骤二、预防真定位匹配纠正,利用仿真器对设计进行快速预仿真,生成的包含设计信息的vcd(值变转储)波形文件,使用正则匹配及脚本对提取的故障注入节点进行纠正;

7、步骤三、故障注入节点管理,对纠正后的故障注入节点根据车规芯片故障分类标准加以分类,方便故障仿真使用。这里是指一种适配数字电路故障注入的故障节点提取方法,可用于车规芯片的故障注入仿真。

8、本专利技术中,提取节点用于数字电路的故障注入仿真。

9、所述步骤一具体为:

10、步骤101、利用开源的verilog-perl库内建的类:verilog::getopt添加标准化参数选项、verilog::language添加针对verilog语言的通用解析方法、verilog::netlist及其子类存取整个设计结构的连接信息;以及perl(实用摘录与报表语言)语言适配的io::file类处理文件输入输出、hash::merge类处理哈希数组;利用这些包和perl脚本语言搭建verilog语义分析模块基本架构,分析verilog设计层级结构;

11、其中,verilog::getopt类和io::file类配合用于处理外部调用时添加verilog设计文件输入参数选项,verilog::language类和verilog::netlist类配合用于支持verilog语法来分析设计层级,hash::merge类用来处理存储设计节点信息的哈希数组;

12、架构围绕verilog::netlist类来搭建verilog语义分析模块,借助上述提到的其他类来辅助实现外部接口功能和内部关键的节点数据处理功能。

13、标准化参数选项是verilog/vcs与linux系统交互的接口,搭建完成脚本之后,在外部调用脚本时添加如+incdir选项来添加输入设计的包含路径、-sv开启systemverilog的语法兼容。

14、步骤102、分析节点信息,利用verilog-perl库内建的方法:$mod->nets_sorted收集verilog-perl库所定义的net线网类型的节点信息(verilog的节点分为port端口、net线网、reg寄存器类型,而verilog-perl库对于port中没有采用output reg这种形式的节点既认为是net类型,也认为是port类型,将output reg这种形式的节点只识别为port类型,所以$mod->nets_sorted函数生成的节点中额外包含了input、output、inout这类在verilog设计中只被定义为port的节点;故调用verilog-perl库的函数时还需要对函数提取的节点额外进行分类处理;),$net->array收集该线网节点位宽是否为多维数组;然后用递归层级访问的逻辑将每一层级的节点信息存储在特定的数组中;

15、步骤103、节点信息按位索引输出:对于位宽信息明确的节点,利用verilog-perl库内建的方法$net->split(按位分割函数)按位索引输出,用于故障注入,指的是本专利技术的应用场景。

16、所述步骤101中标准化参数选项是verilog/vcs与linux系统交互的接口,搭建完成脚本之后,在外部调用脚本时添加+incdir选项来添加输入设计,包含路径、-sv开启systemverilog的语法兼容。

17、所述位宽信息分为位宽信息明确的节点和位宽信息没有明确的节点;

18、位宽信息明确的节点,如input[3:0]a,位宽已经标明且能被$net->split函数解析的节点;

19、位宽信息没有明确的节点,如input[log(depth):0]a,depth,则是设计中定义的parameter参数,这样包含额外函数、运算处理的节点。

20、所述步骤二具体为:

21、步骤201、根据verilog设计编写不消耗仿真时间的简单testbench(测试平台)或者将已有的testbench中的仿真耗时语句删除,调用仿真器命令启动预防真,利用专业仿真器快速编译产生vcd格式的仿真波形文件;

22、步骤202、利用perl语言所具有的正则表达式,使用正则定位匹配的方式,对于verilog-perl库提取的解析未完全的节点,在vcd仿真波形文件中定位匹配,最终纠正后得到解析完全的节点信息。

23、所述步骤201中,veril本文档来自技高网...

【技术保护点】

1.一种故障注入节点提取方法,其特征在于,包括以下步骤;

2.根据权利要求1所述的一种故障注入节点提取方法,其特征在于,所述步骤一具体为:

3.根据权利要求2所述的一种故障注入节点提取方法,其特征在于,所述步骤101中标准化参数选项是Verilog/VCS与Linux系统交互的接口,搭建完成脚本之后,在外部调用脚本时添加+incdir选项来添加输入设计,包含路径、-sv开启SystemVerilog的语法兼容;

4.根据权利要求1所述的一种故障注入节点提取方法,其特征在于,所述位宽信息分为位宽信息明确的节点和位宽信息没有明确的节点;

5.根据权利要求1所述的一种故障注入节点提取方法,其特征在于,所述步骤二具体为:

6.根据权利要求5所述的一种故障注入节点提取方法,其特征在于,所述步骤201中,Verilog Testbench中使用#delay_time格式的仿真耗时,利用仿真器编译设计文件,生成VCD波形文件。

7.根据权利要求5所述的一种故障注入节点提取方法,其特征在于,所述步骤202中,定位匹配纠正具体为:对基于Verilog-Perl库提取的节点使用正则表达式匹配位宽信息不明确的节点,得到该类节点后在脚本中插入访问VCD波形文件的逻辑,根据VCD波形文件的格式特点,在模块的域之间,即$scope~$end和$upscope$end之间使用正则表达式匹配位宽信息不明确的节点所指向的模块层级,进而获取仿真器所编译的准确位宽信息,替换不明确的位宽信息,在此过程中通过正则匹配保证层级定位和节点定位的准确性,从而输出位宽信息完整的节点。

8.根据权利要求1所述的一种故障注入节点提取方法,其特征在于,所述步骤三具体为:

...

【技术特征摘要】

1.一种故障注入节点提取方法,其特征在于,包括以下步骤;

2.根据权利要求1所述的一种故障注入节点提取方法,其特征在于,所述步骤一具体为:

3.根据权利要求2所述的一种故障注入节点提取方法,其特征在于,所述步骤101中标准化参数选项是verilog/vcs与linux系统交互的接口,搭建完成脚本之后,在外部调用脚本时添加+incdir选项来添加输入设计,包含路径、-sv开启systemverilog的语法兼容;

4.根据权利要求1所述的一种故障注入节点提取方法,其特征在于,所述位宽信息分为位宽信息明确的节点和位宽信息没有明确的节点;

5.根据权利要求1所述的一种故障注入节点提取方法,其特征在于,所述步骤二具体为:

6.根据权利要求5所述的一种故障注入节点提取方法,其特征在于,所述步骤201中,...

【专利技术属性】
技术研发人员:马鸿博刘莉刘毅
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1