[发明专利]一种针对MicroBlaze软核程序的测试验证系统及测试验证方法有效
申请号: | 201410302903.5 | 申请日: | 2014-06-27 |
公开(公告)号: | CN104063321B | 公开(公告)日: | 2017-06-13 |
发明(设计)人: | 于志杰;田甜;赵雷;朱倩;赵欢;陈睿 | 申请(专利权)人: | 北京控制工程研究所 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 中国航天科技专利中心11009 | 代理人: | 安丽 |
地址: | 100080 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 针对 microblaze 程序 测试 验证 系统 方法 | ||
1.一种针对MicroBlaze软核程序的测试验证系统,其特征在于包括:MicroBlaze仿真平台模块、软核执行流监视记录模块、目标码分析模块和覆盖率统计分析模块,其中:
MicroBlaze仿真平台模块,实现MicroBlaze软核处理器在EDA环境下的仿真运行;该模块通过加载软核目标程序的机器码,实现软核程序的仿真运行,并将运行结果与外围接口模块进行交互,实现FPGA逻辑代码、MicroBlaze软核以及软核程序的集成运行;同时该模块还包含外围接口模块的仿真模型和测试用例模块,实现整个被测软件运行的模拟平台,并向软核执行流监视记录模块输出执行信息,供软核执行流监视记录模块实现执行流的监视、分析和记录;
软核执行流监视记录模块,根据MicroBlaze仿真平台模块输出执行信息,对软核程序执行情况进行分析,实现真正指令执行序列的监视和记录;该模块接收来自MicroBlaze仿真平台模块的执行信息,所述执行信息包括软核工作时钟、PC指针、指令有效标志和跳转标志;根据指令有效标志和跳转标志,识别出当前执行的指令地址和分支跳转情况,实现执行流的监视、分析和记录;仿真测试时重复执行上述过程直至用例执行结束,生成覆盖率文件;
目标码分析模块,通过对软核目标程序进行分析,实现覆盖率信息的反向标注;该模块加载软核目标程序文件以及软核执行流监视记录模块输出的覆盖率文件,通过对目标程序进行格式分析,识别出各条指令以及各分支指令,并将覆盖率文件中的覆盖率信息在目标程序上进行反向标注;在进行覆盖率反向标注时,还可以将多个测试用例执行后输出的覆盖率文件进行合并,将合并后的总覆盖率信息,全部反向标注到对应目标程序上,实现多个测试用例对应覆盖率结果的统一分析;反向标注覆盖率后的数据,将输出给覆盖率分析模块进行后续的覆盖率分析;
覆盖率分析模块,实现覆盖率指标的分析,统计软核程序执行的语句覆盖率、分支覆盖率指标;该模块接收目标码分析模块输出的数据,通过统计其中的语句总数和分支总数,并根据反向标注后的覆盖率信息,分析执行过的语句数以及真假分支执行情况,最终向用户输出语句覆盖率和分支覆盖率指标,其中语句覆盖率指标和分支覆盖率指标的计算公式如下:
语句覆盖率=已执行语句数/可执行语句总数*100%
分支覆盖率=(已执行真分支数+已执行假分支数)/(真分支总数+假分支总数)*100%。
2.根据权利要求1所述的针对MicroBlaze软核程序的测试验证系统,其特征在于:所述MicroBlaze仿真平台模块的具体实现步骤如下:
(1)首先需要编译MicroBlaze处理器的仿真模型,根据所用的EDA仿真软件,编译MicroBlaze处理器的仿真模型,以及MicroBlaze软核处理器所用到的外围接口模块;
(2)完成MicroBlaze处理器的仿真模型构建后,还需要编译将被测试的软核程序,得到软核程序的目标程序,导出目标程序中的指令机器码数据,并将指令机器码数据转换为MicroBlaze处理器仿真模型所需的内存初始化文件形式;编译软核程序时,将调试选项打开,以增强用户后续进行覆盖率分析的可读性;
(3)最后编写外围接口模块的仿真模型和测试用例模块,构建整个MicroBlaze仿真平台模块,提供工作时钟信号,实现MicroBlaze仿真模块平台的运行;仿真运行过程中,向软核执行流监视记录模块输出软核程序的执行信息。
3.根据权利要求1所述的针对MicroBlaze软核程序的测试验证系统,其特征在于:所述软核执行流监视记录模块具体实现步骤如下:
(1)接收MicroBlaze仿真平台模块输出执行信息;
(2)当执行信息中的指令有效信号为有效时,记录执行信息中的当前PC指针,并将对应的地址标记为已经执行过;
(3)对于分支跳转情况的处理,通过识别执行信息中的跳转发生信号,当跳转发生信号有效时,标记为真分支已经执行过,否则标记为假分支已经执行过;
(4)重复执行上述步骤(2)和步骤(3),直至当前测试用例执行结束;
(5)将上述标记的指令执行情况和分支执行情况作为覆盖率文件输出,输出覆盖率文件时,记录软核程序的名称和版本,用于后续合并时的比对。
4.一种针对MicroBlaze软核程序的测试验证方法,实现步骤如下:
(1)利用EDA平台上的仿真软件,编译MicroBlaze仿真模型,并编译MicroBlaze软核上运行的目标程序,生成仿真文件以及程序加载文件,之后进入步骤(2);
(2)在仿真软件中,构建MicroBlaze软核的外围接口模块的仿真模型,提供时钟激励以及各种接口的模拟,使得整个软硬件系统可以协同运行,之后进入步骤(3);
(3)设计测试用例,实现整个MicroBlaze仿真平台模块,利用EDA仿真软件进行动态仿真运行;
(4)在仿真运行的过程中,监视MicroBlaze仿真平台模块输出执行流信息,进行软核执行流的分析,并记录指令执行情况和分支执行情况;
(5)仿真运行中反复执行步骤(4),直至测试用例结束后,进入步骤(6);
(6)测试用例执行结束后,输出该测试用例的覆盖率文件;反复运行多个测试用例,将各测试用例输出的覆盖率文件合并,得到总覆盖率文件,并进入步骤(7);
(7)分析软核目标程序,并将总覆盖率文件中的指令执行情况和指令跳转执行情况反向标注到目标码文件中,得到覆盖率反向标注结果,并进入到步骤(8);
(8)根据覆盖率反向标注结果,进行目标码的覆盖率分析,分析语句覆盖率、分支覆盖率指标,判断是否满足要求,如果满足要求则结束测试,否则返回步骤(3),补充设计新的测试用例;其中语句覆盖率指标和分支覆盖率指标的计算公式如下:
语句覆盖率=已执行语句数/可执行语句总数*100%
分支覆盖率=(已执行真分支数+已执行假分支数)/(真分支总数+假分支总数)*100%。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京控制工程研究所,未经北京控制工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410302903.5/1.html,转载请声明来源钻瓜专利网。