【技术实现步骤摘要】
一种FPGA/IP核逻辑代码安全规则检测方法
本专利技术涉及FPGA验证
,具体涉及一种FPGA/IP核逻辑代码安全规则检测方法。
技术介绍
在可编程器件的验证方面,主要有模拟验证、形式化验证、静态规则检测等方法。在使用模拟仿真的验证方法时,模拟器的仿真速度会随着设计规模的增长大幅下降,同时增大的设计规模也会导致软件模拟器在仿真过程中出现错误的概率不断增加。在使用形式化方法时也面临同样的问题,由于设计规模的增加,即使是模块级的设计,其规模也变得很大,而形式化方法存在状态空间爆炸的问题使得形式化检验工具在处理设计时变得力不从心。静态规则检测方法是控制可编程器件设计源头质量最有效的方法,具有投入资源少,效率高等优点,其核心是规则集的准确性。目前国内主要采用国外商用规则检测工具,包括Spyglass、Alint、LEDA等。上述工具主要采用STARC、DO-254、Aldec和RMM规则集等,这些规则集主要针对集成电路前端到后端设计规则的检测。缺少一些针对可编程器件的安全规则集。因此,建立一套较为完善的综合规则检测流程,适用于FPGA的规则检测是非常必要的。专利技 ...
【技术保护点】
1.一种FPGA/IP核逻辑代码安全规则检测方法,其特征在于,包括以下步骤:步骤1:将待验证FPGA的Verilog HDL代码输入使用进行规则检测,得出常规规则检测结果;步骤2:根据待测FPGA的需求规格说明,编写自定义规则检测条款,得到对应的自定义规则检测程序,用于实现对Verilog HDL/VHDL硬件描述语言的错误词法、语法、语义的解析和检测;步骤3:将待验证FPGA的Verilog HDL代码输入所述自定义规则检测程序;步骤4:利用所述自定义规则检测程序对待测设计依次进行词法解析、语法解析、规则检测;步骤5:将步骤4的结果与所示自定义规则检测条款进行对比,得出自 ...
【技术特征摘要】
1.一种FPGA/IP核逻辑代码安全规则检测方法,其特征在于,包括以下步骤:步骤1:将待验证FPGA的VerilogHDL代码输入使用进行规则检测,得出常规规则检测结果;步骤2:根据待测FPGA的需求规格说明,编写自定义规则检测条款,得到对应的自定义规则检测程序,用于实现对VerilogHDL/VHDL硬件描述语言的错误词法、语法、语义的解析和检测;步骤3:将待验证FPGA的VerilogHDL代码输入所述自定义规则检测程序;步骤4:利用所述自定义规则检测程序对待测设计依次进行词法解析、语法解析、规则检测;步骤5:将步骤4的结果与所示自定义规则检测条款进行对比,得出自定义安全规则检测结果;步骤6:将常规规则检测结果和自定义安全规则检测结果进行合并、统计,并按照缺陷类型进行分类,得到最终的规则检测的结果。2.如权利要求1所述的方法,其特征在于,步骤4中,词法解析的原理是使用正则表达式完成对输入流的字符串词法匹配,并通过标签的方式返回匹配到的词法表达式,从而把源代码解析为标签表达式,语法解析的原理是使用特定的语法规则将标签表达式转换为语法树,规则检测原理是分析语法树,根据自定义规则检测条款判断分析结果是否符合自定义规则检测条款,实现检测功能。3.如权利要求1所述的方法,其特征在于,所述自定义规则检测条款根据于可编程器件应用特点和软件评测方法设计,如表1:表14.如权利要求3所述的方法,其特征在于,所述自定义规则检测条款各条所对应的实现方式为:R001:首先读取文件进行词法解析,匹配表达式,如果匹配到常量或变量表达式就返回标签,并给yylval赋值,进入语法解析,如果匹配到if()变量<=/=常量或者else变量<=/=常量表达式则进行规制检查,查看两个赋值表达式是否在操作一个变量,是则命中R001规制,输出报错信息,然后递归返回继续词法解析流程直至文件读取结束;否则结束;R002:首先读取文件进行词法解析,匹配到CASE表达式跳到FSM状态,匹配到ENDCASE跳到INITIAL状态,在FSM状态下匹配到OFFSHOOT表达式返回标签,进入语法解析,分析表达式并计数,ENDCASE表达式计数清零,如果计数大于40则命中R002规则,输出报错信息,然后递归返回继续词法解析流程直至文件读取结束;否则结束;R003:首先读取文件进行词法解析,匹配到REPEAT/WIRE/REG表达式返回,进入语法解析,分析表达式,如果匹配到WIRE/REG表达式则在变量链表里添加一个节点,如果是REPEAT表达式就遍历变量链表,查看是否存在该节点,是则命中R003规则,输出报错信息,然后递归返回继续词法解析流程直至文件读取结束;否则结束;R004:首先读取文件进行词法解析,CASE表达式跳到FSM状态,匹配到ENDCASE跳到INITIAL状态,在FSM状态下匹配到OFFSHOOT表达式返回,进入语法解析,分析表达式并遍历分支链表,断言查看分支链表里有和OFFSHOOT表达式相同的表项,是则输出报错信息,然后递归返回继续词法解析流程直至文件读取结束;否则结束;R005:首先读取文件进行词法解析,匹配到赋值/CASE/ENDCASE表达式返回,进入语法解析,分析表达式,如果匹配赋值表达式则在赋值链表中加入表项,CASE表达式则创建FSM结构,ENDCASE表达式先遍历赋值链表,如果没有找到与FSM结构相同的赋值节点,则输出错误信息,最后删除FSM结构,然后递归返回继续词法解析流程直至文件读取结束;否则结束;R006:首先读取文件进行词法解析,匹配到INPUT/OUTPUT/BODY表达式返回,进入语法解析,分析表达式,如果匹配INPUT/OUTPUT表达式则在链表中加入表项,匹配到BODY表达式则遍历链表,如果匹配到相同表项则更新节点的悬空标志位,全部解析完成后遍历链表,没有置位悬空标志位的节点输出报错信息,然后递归返回继续词法解析流程直至文件读取结束;否则结束;R007:首先读取文件进行词法解析,如果匹配到状态机表达式就返回标签,并给yylval赋值,进入语法解析,如果匹配到状态机表达式则在FSM链表里添加一个节点并更新其状态,然后递归返回继续词法解析流程直至文件读取结束,当整个文件读取结束后遍历FSM链表里的所有节点,查看是否有该节点无跳转或无其它节点跳转到该节点的情况,如是则命中R-14-1规则,输出报错信息,然后递归返回继续词法解析流程直至文件读取结束;否则结束;R008:首先读取文件进行词法解析,如果匹配到指定表达式就返回,并给yylval赋值,进入语法解析,匹配到WIRE/REG表达式后添加节点到FSM链表中,在default表达式中解析赋值语句,遍历链表中的节点与default中的赋值语句左值比较,相等就把节点中的标记置位,否则退出,然后递归返回继续词法解析流程直至文件读取结束,当整个文件读取结束后遍历FSM链...
【专利技术属性】
技术研发人员:李东方,王晓龙,陈丽容,胡亚云,朱秋岩,王宏,王志昊,沈炜,王纪,叶东升,吴超,张建伟,宋珺,
申请(专利权)人:北京计算机技术及应用研究所,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。