[发明专利]一种基于差异测试的FPGA综合工具缺陷检测方法有效
申请号: | 202110251720.5 | 申请日: | 2021-03-08 |
公开(公告)号: | CN112948193B | 公开(公告)日: | 2023-10-17 |
发明(设计)人: | 江贺;张漪;施重阳;刘辉 | 申请(专利权)人: | 北京理工大学 |
主分类号: | G06F11/22 | 分类号: | G06F11/22;G06F11/36 |
代理公司: | 北京正阳理工知识产权代理事务所(普通合伙) 11639 | 代理人: | 王民盛 |
地址: | 100081 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 差异 测试 fpga 综合 工具 缺陷 检测 方法 | ||
1.一种基于差异测试的FPGA综合工具缺陷检测方法,其特征在于,包括以下步骤:
步骤1:构建FPGA综合工具测试用例种子库;
步骤2:基于遗传算法,对测试种子用例按照测试效果的优先从高到低进行排序,并依次执行;
对测试用例优先排序问题的一般性描述为:测试用例集T,测试用例的全排列集PT,排序目标函数f(x):PT→R;
寻找T'∈PT,使得对任意T″∈PT,有f(T')≥f(T″),其中,T'、T″表示在测试用例的全排列集中任意选取的测试用例序列,T″≠T';
首先,定义基于测试点覆盖的评价指标APTC,即测试用例使用个数和检测错误个数之间的关系进行量化;设测试用例集T有n个测试用例,能够检测出m个缺陷;对一个给定的测试用例执行次序,TFi表示首个可检测到第i个缺陷的测试用例在该执行次序中所处的次序,则APTC的计算公式为:
其中,APTC∈(0,100%),其取值越高,则缺陷检测速度越快;
然后,基于遗传算法适应度函数,其值介于0-1之间,即评价指标APTC指导遗传算法进行搜索
步骤3:选取测试用例P,其中,选取测试用例遵循以下条件:
如果执行的是初始测试,则从步骤2中的种子库中随机选取测试用例,否则,根据测试用例APTC的取值从大到小进行选择;
步骤4:变异测试用例,得到新的测试用例P';
步骤5:使用待测的FPGA综合工具,并选取至少2个现有的参考工具,对步骤4中生成的变异测试代码P'进行转换,得到测试代码HDL的综合网表netlist;
步骤6:判断是否有工具出现崩溃现象;如果出现测试奔溃情况,则直接进行bug报告生成并存储;如果参考工具和待测工具都对测试用例转换成功,则执行步骤7;
步骤7:对比现有的参考工具和待测的FPGA综合工具的转换结果;当测试用例被综合工具综合后形成网表文件.edf,综合工具调用自带的仿真工具进行功能仿真得出结果;
步骤8:比较上一步的仿真结果是否相同,若相同,表示选取的测试用例不适合,返回步骤3,若不相同,则生成并存储bug报告结果。
2.如权利要求1所述的一种基于差异测试的FPGA综合工具缺陷检测方法,其特征在于,步骤4中生成和测试用例等价的变异代码,使用原始的AST来分析测试用例并将其进行等价变异;
分析测试用例的AST的语句,如果某一条语句未执行且其孩子也未被执行,则标记该语句为未执行语句,并对其语句进行删除或者插入操作,当进行删除该语句时,将移除它在AST子树的所有相关的词句,包括其孩子语句,当进行插入代码段时,无限制插入语句到这些标记的未执行语句。
3.如权利要求1所述的一种基于差异测试的FPGA综合工具缺陷检测方法,其特征在于,步骤6判断是否有工具出现崩溃的方法为,在FPGA综合工具中,对于一个设计的测试用例会产生一个与其进行比较的等效的netlist网表,即综合工具Verilog设计的输出与转换生成的网表在时钟边缘总是相等,当两者不相等时判定其执行崩溃。
4.如权利要求1所述的一种基于差异测试的FPGA综合工具缺陷检测方法,其特征在与,步骤7中对比转换结果时,FPGA综合工具借助综合后的3个*.v文件,一个是testbench文件,一个是工具生成的xxx_synthesis.v,另一个是glbl.v文件来创建新的工程对其进行仿真。
5.如权利要求1所述的一种基于差异测试的FPGA综合工具缺陷检测方法,其特征在于,选取2个现有的参考工具,其中参考工具1为Yosys 0.9,参考工具2为Vivado 18.2。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110251720.5/1.html,转载请声明来源钻瓜专利网。