一种面向VerilogHDL设计的故障注入方法

文档序号:9546929阅读:539来源:国知局
一种面向Verilog HDL设计的故障注入方法
【技术领域】
[0001] 本发明属于容错计算与可靠性理论,设计了一种面向Verilog HDL设计的故障注 入方法,实现了 Verilog HDL故障注入工具。
【背景技术】
[0002] 近年来,计算机的应用场所发生了很大的变化,不再仅仅局限于各种参数稳定的 机房,而是延伸到了工厂、野外、海上、天空甚至宇宙等复杂的环境。这对计算机的稳定性和 可靠性提出了更高层次的要求。随着对微处理器等硬件平台的可靠性研究逐渐深入,"故障 注入"作为一种新型的分析评价方法,提出对于微处理器的容错机制的有效性进行可靠地 分析和评价的过程。该研究方法具有比传统的基于测量或基于模型解析的方法更加灵活方 便、便宜有效。对容错计算与可靠性理论的研究者而言,一个有效易用的故障注入自动化工 具在节约人力物力时间等方面起着越来越重要的作用。

【发明内容】

[0003] 本发明要解决的技术问题是提供一种面向Verilog HDL设计的故障注入方法,能 够通过对Verilog HDL代码的语法语义分析,从而获得代码中全部的故障注入点,并实现对 Verilog HDL代码的故障注入功能。
[0004] -种面向Verilog HDL设计的故障注入方法,步骤如下:
[0005] 1)步骤一:首先获得需要进行故障注入试验的工程(符合IEEE 1364-1995的 Verilog HDL语言标准);
[0006] 2)步骤二:将该工程导入后进行扫描,获得工程中全部模块信息,通过点选模块 可以显示模块内的全部信息;
[0007] 3)步骤三:使用故障注入管理器,可以对模块中的变量进行选择,用户设置好故 障模型(stuck-at 0/1或位翻转)后,将故障注入;
[0008] 4)步骤四:通过仿真模拟,即可看到故障注入结果。
[0009] 进一步地,步骤一中根据标准的Verilog HDL代码作为试验工程,为了使测试 更加准确,工程采用规范语法语义,支持的Verilog HDL语言版本为:Verilog95,即IEEE 1364-1995 标准。
[0010] 进一步地,步骤二中语法语义分析是故障注入工具最核心也是最复杂的模块。要 实现故障注入,首先要对Verilog HDL源文件进行解析,理清各个module间的层次关系,生 成模型的语法分析列表,存储相应的变量信息后,才能选择故障注入的位置。
[0011] 进一步地,步骤三中用户可设置故障注入的参数有故障位,故障模型(置1,置0, 翻转等),故障注入周期等。用户收到Verilog HDL语法语义分析器返回的数据,根据该数 据选择故障需要注入的位置,同时设置故障注入的周期和所注入的故障模型。将该数据提 交给故障注入管理器后,管理器会判断用户提供的参数是否合法,如不合法(数据位不存 在,或缺少相关参数等)将提示用户重新提交参数,如图1所示。
[0012] 进一步地,步骤四中通过对故障注入前后的ModelSim SE 6. If模拟波形的验证分 析,从而验证了故障注入工具的有效性。
[0013] 本发明的技术方案:
[0014] Verilog故障注入工具,采用Qt平台开发,包括用户交互工具,语法语义分析器和 故障注入管理器三个模块。界面模块属于可视化部分,后两个模块属于后台核心代码部分。
[0015] 用户交互工具主要实现了与用户的交互功能,包含工程导入、模块列表展示、模块 代码展示、模块内变量列表属性展示和故障注入管理器入口五个子模块。工程导入模块用 来选择进行故障注入试验的工程。模块列表展示功能将工程内全部模块名称列表展示。模 块代码展示可以将模块内部代码全部读取并呈现,以便用户观察故障注入前后代码信息。 模块内变量属性展示将全部变量的名称、类型、属性、长度以及定义的行数进行展示。最后 通过故障注入管理器入口与故障注入管理器链接。
[0016] 语法语义分析器包括代码扫描,保留字识别,标识符识别、添加和修改以及变量属 性获取等四个子功能。为了保证对Verilog HDL灵活的语言规则的适配度,代码扫描功能 采用按字符扫描方法,利用正则表达式、非确定性自动机(NFA)对Verilog HDL进行描述。 根据分隔符和空白格对扫描到的单词进行判断(是否为关键字,标识符,数字等)。保留字 和标识符的识别功能通过容器(vector)类进行实现,通过对两个容器的增删改查,实现对 保留字和标识符进行添加、识别和修改。变量属性的获取主要通过对已定义的标识符进行 识别后再进行对单个标识符的属性修改,对于新定义标识符,会有相应的默认属性。
[0017] 故障注入管理器分故障注入和交互显示两部分。故障注入主要实现了获取故障注 入的注入节点,同时将故障模型、故障周期、故障位置通过与用户交互记录下来传给底层函 数,底层函数将该故障精准注入。交互显示主要负责与用户的交互,并且判断用户设置的故 障模型是否合法,以便进行准确的故障注入试验。
[0018] 本发明采用的是基于模拟的故障注入技术。使用本发明可以方便、灵活地在计算 机等硬件平台上进行故障注入的模拟仿真,通过改变逻辑值来达到故障注入的效果,同时 该故障注入工具耗时较短,能够满足工程和实验的要求。基于模拟的故障注入技术可以在 微处理器等芯片设计和开发过程中,对容错技术的可靠性进验证和评价,大大地缩短了验 证的周期,为硬件的开发过程带来极大方便。
【附图说明】
[0019] 图1故障注入管理器工作原理。
[0020] 图2是本发明的软件0层和1层数据流图。
[0021] 图3是本发明的用户交互工具界面图。
[0022] 图4是本发明扫描功能依照的几种典型的NFA举例。
[0023] 图5是本发明的故障注入管理器界面图。
【具体实施方式】
[0024] 以下结合
【发明内容】
和说明书附图详细说明本发明的具体实施。
[0025] ⑴总体结构
[0026] 面相Verilog HDL设计的故障注入工具,采用Qt平台开发,包括主程序界面,语法 语义分析器和故障注入管理器三个模块,如图2所示。其中界面模块为可视化部分,主要完 成与用户进行信息交互,后两个模块属于后台核心代码部分,负责实现语法语义分析和故 障注入功能。
[0027] (2)用户交互工具
[0028] 用户交互工具主要实现了与用户的交互功能,包含工程导入、模块列表展示、模块 代码展示、模块内变量列表属性展示和故障注入管理器入口五个子模块,如图3所示。
[0029] 工程导入模块用来选择进行故障注入试验的工程。模块列表展示功能将工程内全 部模块名称列表展示。模块代码展示可以将模块内部代码全部读取并呈现,以便用户观察 故障注入前后代码信息。模块内变量属性展示将全部变量的名称、类型、属性、长度以及定 义的行数进行展示。最后通过故障注入管理器入口与故障注入管理器链接。
[0030] (3)语法语义分析器
[0031 ] 语法语义分析器包括代码扫描,保留字识别,标识符识别、添加和修改以及变量属 性获取等四个子功能。
[0032] 代码扫描子功能主要根据由Verilog HDL正则表达式推导出的NFA进行编写。模 块声明语法举例:
[0034] 分析器扫描识别顺序:
[0035] I)module 关键字;
[0036] 2)module 的名称;
[0037] 3)左括号;
[0038] 4) input或者output或者inout或者直接是端口名称;
[0039] 5)逗号;
[0040] 6)这样一直到识别出有括号以及紧接着的分号为止。
[0041 ] 根据上面的模块声明的文法有如下的正则表达式:
[0043] 有了这些正则表达式,可以推导出相应的NFA,根据NFA即可完成代码的编写。如 图4所示。
[0044] 保留字和标识符的识别功能通过C++的容器(vector)类实现。通过对两个容器 KeyArr、IdentiferArr的增删改查完成对保留字和标识符的添加、修改和识别。
[0045] 变量属性的获取主要通过对已定义的标识符进行识别后再对单个标识符的属性 进行修改,对于新定义的标识符,会有相应的默认属性。
[0046] (4)故障注入管理器
[0047] 故障注入管理器分为故障注入和交互显式两部分。
[0048] 故障注入主要实现了获取故障注入的注入节点,同时将故障模型、故障周期、故障 位置,通过与用户交互记录下来传给底层函数,底层函数将该故障精准注入。
[0049] 交互显式主要负责与用户的交互,并且判断用户设置的故障模型是否合法,以便 进行准确的故障注入试验。如图5所示。
【主权项】
1. 一种面向VerilogHDL设计的故障注入方法,能够通过对VerilogHDL代码的语 法语义分析,从而获得代码中全部故障注入点,实现灵活的故障注入配置和仿真,其特征在 于,包括以下步骤; 步骤一:用户交互工具实现故障注入的配置和显示功能,获得需要进行故障注入试验 的工程,包含工程导入、模块列表展示、模块代码显示、模块内变量列表属性显示和故障注 入管理器入口五个子模块; 步骤二:扫描VerilogHDL工程文件,采用正则表达式、非确定性自动机(NFA)对VerilogHDL进行描述,包括代码扫描、保留字识别、标识符识别和修改、变量属性获取四个 功能,识别全部变量的名称、类型、属性、长度、定义位置; 步骤三:使用故障注入管理器,断用户设置的故障模型是否合法,获取故障注入节点, 将故障模型、故障周期、故障位置通过用户交互记录传给底层函数以实现故障精准注入。 步骤四:通过仿真模拟,获得故障注入结果。
【专利摘要】本发明公开了一种面向Verilog?HDL设计的故障注入方法,属于容错计算与可靠性理论研究领域。基于该方法设计了Verilog?HDL故障注入工具,采用Qt平台开发,包括交互工具、语法语义分析器和故障注入管理器三个模块。以Verilog?HDL正则表达式推导出的NFA为指导,实现代码扫描分析,支持IEEE1364-1995的Verilog?HDL语言标准,通过与用户的配置交互,完成故障注入功能。本发明属于一款容错计算与可靠性理论研究的辅助方法,采用基于模拟的故障注入技术。使用本发明可以方便、灵活地在模拟测试的计算机等硬件平台上进行故障注入的模拟仿真,通过改变逻辑值来达到故障注入的效果。
【IPC分类】G06F9/44
【公开号】CN105302547
【申请号】CN201510599306
【发明人】王洁, 柳继伟, 陈伟浩, 李浩然, 石霖
【申请人】大连理工大学
【公开日】2016年2月3日
【申请日】2015年9月19日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1