一种RTL硬件木马测试向量的生成方法技术

技术编号:16604130 阅读:76 留言:0更新日期:2017-11-22 14:15
本发明专利技术公开了一种RTL硬件木马测试向量的生成方法,主要包括生成控制流程图;并发符号执行;可满足性求解和生成测试向量。本发明专利技术采用静态分析Veri log代码的方法,采用多线程并发技术实现Veri log代码的并发符号执行,从而达到快速生成高路径覆盖率的测试向量的目的。

A test vector generation method for RTL hardware Trojan horse

The invention discloses a method for generating RTL hardware Trojan test vector, mainly including generating control flow chart, concurrent symbol execution, satisfiability solving and generating test vector. The invention adopts the method of static analysis of Veri log code, Veri log code concurrent symbolic realization using multi-threaded concurrent execution technology, so as to achieve rapid test vector generation high path coverage to.

【技术实现步骤摘要】
一种RTL硬件木马测试向量的生成方法
本专利技术涉及集成电路测试领域,具体涉及到一种RTL硬件木马测试向量的生成方法,可针对条件触发型硬件木马的特征快速生成具有高路径覆盖率、并包含可激活条件触发型硬件木马的测试向量。
技术介绍
在数字集成电路设计中,不同的设计环节对应着不同抽象层次的设计。抽象程度从高到低,分别是功能规范、算法级/微体系结构级设计、寄存器传输级设计(register-transferlevel,RTL)、门级(gatelevel)设计和物理级设计。硬件木马可以分布在不同的抽象层次上,主要有系统级、行为描述级、寄存器传输级、门级、晶体管级和物理级。NJacob等人在文献“HardwareTrojans_currentchallengesandapproaches”中分析了目前硬件木马可能插入的阶段,已经提出的硬件木马较多的集中在功能设计阶段(寄存器传输级)。目前的硬件木马检测技术中,只有很少的文献对功能设计阶段和物理设计阶段(门级)进行检测,绝大数的文献都集中在制造阶段的检测;功能设计阶段检测的技术使用的是形式化验证技术,物理设计阶段使用的功能分析,制造阶段使用的检测技本文档来自技高网...
一种RTL硬件木马测试向量的生成方法

【技术保护点】
一种RTL硬件木马测试向量的生成方法,其特征在于,包括如下步骤:S1生成verilog代码的控制流图CFG;S2根据步骤S1生成的控制流图CFG,对待分析的模块文件使用并发符号执行技术,得到指定路径条件pc下输出变量的符号执行表达式,即<pc,exp>;S3对步骤S2中得到的路径条件pc进行可满足性求解,得到可满足的路径条件集合及其对应的输入变量取值,生成测试向量;S4依据步骤S3中得到的测试向量,由<pc,exp>的映射关系,求解出输出变量在可满足性求解的路径条件pc下对应的符号执行表达式exp的取值;得到<测试向量,输出向量>的映射关系。

【技术特征摘要】
1.一种RTL硬件木马测试向量的生成方法,其特征在于,包括如下步骤:S1生成verilog代码的控制流图CFG;S2根据步骤S1生成的控制流图CFG,对待分析的模块文件使用并发符号执行技术,得到指定路径条件pc下输出变量的符号执行表达式,即<pc,exp>;S3对步骤S2中得到的路径条件pc进行可满足性求解,得到可满足的路径条件集合及其对应的输入变量取值,生成测试向量;S4依据步骤S3中得到的测试向量,由<pc,exp>的映射关系,求解出输出变量在可满足性求解的路径条件pc下对应的符号执行表达式exp的取值;得到<测试向量,输出向量>的映射关系。2.根据权利要求1所述的RTL硬件木马测试向量的生成方法,其特征在于:步骤S1中,通过定义语句结点类型,生成语句结点,建立语句结点的前驱和后继关系,生成控制流图。3.根据权利要求2所述的RTL硬件木马测试向量的生成方法,其特征在于:步骤S1具体包括如下步骤:S1.1设计的语句结点类型有:ALWAYS,ALWAYS_END,IF,ELSE,IF_END,CASE,CASEX,CASEZ,CASE_ITEM,CASE_END,FOR,FOR_END,TASK,TASK_END,ASSIGN_BLOCK,ASSIGN_NONBLOCK,ASSIGN_CONTINUOUS,INSTANTIATION;另外,整个代码的开始增加一个ENTER结点,结束增加一个EXIT结点,不确定类型是NONE结点,其中always,if,case(casex,casez),for,task所对应的结点为控制结点,ENTER和EXIT是控制结点,阻塞赋值、非阻塞赋值和连续赋值为赋值结点;采用开源的antrl4以及TerenceParr撰写的verilog2001.g4,解析verilog寄存器传输级设计代码的语法,依次提取每条verilog语句进行分析;设计生成控制流图的语句结点;一条语句对应控制流图中的一个结点,语句结点的类型针对verilog可综合的语句设定;为了能够有效区分出不同模块文件中的变量,将所有分析的变量名改为如下形式:模块名_M_原变量名;S1.2根据语句结点类型建立语句结点之间的前驱和后继关系:语句结点之间的控制流关系体现在控制结点之间以及控制结点和赋值结点之间的连接,对于赋值结点之间的连接,不表示控制关系,只是表示出赋值结点代表的语句在代码中的位置关系,添加的ENTER结点是整个代码的开始结点,EXIT结点是整个代码的结束结点,Always语句段,例化语句和连续赋值语句之间是并行关系,Always语句段内的if、case、for语句之间存在着语法相关的控制区间和控制顺序的关系;根据控制区间和控制关系确定出各个语句结点之间的前驱和后继关系;S1.3依据每个语句结点之间的前驱和后继关系,采用广度优先遍历,生成verilog代码...

【专利技术属性】
技术研发人员:沈利香慕德俊时翔徐强邢业新何松袁晓宇
申请(专利权)人:西北工业大学
类型:发明
国别省市:陕西,61

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

1