寄存器传输级Verilog代码的SMV模型构建方法技术

技术编号:21059420 阅读:61 留言:0更新日期:2019-05-08 06:32
本发明专利技术公开了一种寄存器传输级Verilog代码的SMV模型构建方法,用于解决现有寄存器传输级的SMV模型构建方法独立性差的技术问题。技术方案是采用静态分析Verilog代码的方法得到每个模块对应的控制流图,深度遍历控制流图得到模块中每个变量的

SMV Model Construction Method of Verilog Code at Register Transfer Level

【技术实现步骤摘要】
寄存器传输级Verilog代码的SMV模型构建方法
本专利技术涉及一种寄存器传输级的SMV模型构建方法,特别涉及一种寄存器传输级Verilog代码的SMV模型构建方法。
技术介绍
现有的模型检测大多针对门级电路进行建模,建立的模型相对寄存器传输级会复杂很多,也不利于设计者分析验证的结果。目前公布的技术和文献中,针对寄存器传输级的硬件设计安全的模型检测验证方法非常有限。文献“Verilog2SMV:Atoolforword-levelverification,2016Design,Automation&TestinEuropeConference&Exhibition(DATE),Dresden,2016,pp.1156-1159”公开了一种寄存器传输级的SymbolicModelVerifier(以下简称SMV)模型构建方法,用于验证寄存器传输级Verilog代码。该方法首先利用开源综合工具Yosys将寄存器传输级Verilog代码平面化,然后依据平面化的结果利用Yosys综合成寄存器传输级电路。寄存器传输级电路输入到一个新的Yosys模块,这个模块将输入的寄存器传输本文档来自技高网...

【技术保护点】
1.一种寄存器传输级Verilog代码的SMV模型构建方法,其特征在于包括以下步骤:步骤一、设计控制流图中的语句结点类型: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结点,对应module语句,结束增加一个EXIT结点,对应endmodule,不确定类型是NONE结点,其中always,if,cas...

【技术特征摘要】
1.一种寄存器传输级Verilog代码的SMV模型构建方法,其特征在于包括以下步骤:步骤一、设计控制流图中的语句结点类型: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结点,对应module语句,结束增加一个EXIT结点,对应endmodule,不确定类型是NONE结点,其中always,if,casex,casez,for,task所对应的结点为控制结点,ENTER和EXIT是控制结点,阻塞赋值、非阻塞赋值和连续赋值为赋值结点;采用开源的antlr4以及TerenceParr撰写的verilog2001.g4,解析Verilog寄存器传输级设计代码的语法;依次提取每条Verilog语句的语法信息进行分析,设计生成控制流图的语句结点;一条语句对应控制流图中的一个结点,语句结点的类型针对Verilog可综合的语句设定;根据语句结点类型建立语句结点之间的前驱和后继关系:语句结点之间的控制流关系体现在控制结点之间以及控制结点和赋值结点之间的连接,对于赋值结点之间的连接,不表示控制关系,只是表示出赋值结点代表的语句在代码中的位置关系,添加的ENTER结点是整个模块的开始结点,EXIT结点是整个模块的结束结点,always语句段,例化语句和连续赋值语句之间是并行关系,always语句段内的if、casex,casez、for语句之间存在着语法相关的控制区间和控制顺序的关系;根据控制区间和控制关系确定出各个语句结点之间的前驱和后继关系;依据每个语句结点之间的前驱和后继关系,采用广度优先遍历,生成Verilog代码的控制流图;得到Verilog模块对应的控制流图后,生成Verilog代码的路径条件pc和对应表达式exp的关系对<pc,exp>,每一个赋值表达式的左边变量拥有一个或者多个<pc,exp>;深度遍历Verilog模块对应的控制流图,如果遍历结束则步骤一结束;如果遍历没有结束则取出控制流图中还没有被访问过的结点node,得到node的控制结点controlNode;判断node的类型,如果node的结点类型是ALWAYS,则always语句的事件列表加入到node的路径条件中;如果node的结点类型是IF,则将控制结点controlNode的路径条件列表合并上当前if语句的条件,作为node的路径条件列表;如果node的结点类型是ELSE,则controlNode路径条件列表中最后一个条件取反作为node的路径条件;如果node的结点类型是CASE,则将controlNode的路径条件列表作为node的路径条件列表;如果node的结点类型是CASE_ITME,并且是default语句结点时,controlNode的路径条件列表合并上case语句默认路径条件作为node的路径条件列表;当不是default语句结点时,controlNode的路径条件列表合并上node的语句条件作为node的路径条件列表;如果是赋值语句,controlNode的路径条件列表作为node的...

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

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

1