一种支持覆盖率统计功能的仿真器及方法技术

技术编号:13959143 阅读:107 留言:0更新日期:2016-11-02 21:18
本发明专利技术公开了一种支持覆盖率统计功能的仿真器及方法,涉及到芯片仿真技术领域。仿真器包括调试控制模块、芯片功能模块和覆盖率统计模块,芯片功能模块包括CPU_DBG、AHB总线、芯片程序存储器、外设;覆盖率统计模块包括统计模块、寄存器、接口转换模块、选择模块、统计数据存储器。统计模块使用CPU_DBG和AHB总线的信号,将程序执行的地址信息实时记录到统计数据存储器。覆盖率统计的方法是:进入调试模式后设置统计起始地址、开启统计功能,并初始化统计数据存储器,然后进入运行模式执行程序,完成测试后导出统计数据并计算出测试覆盖率。本发明专利技术的仿真器支持代码覆盖率、分支覆盖率、数据覆盖率统计功能,可以很快定位测试程序及被测程序的问题,提高程序开发测试效率。

【技术实现步骤摘要】

本专利技术涉及一种芯片仿真器,特别涉及一种支持覆盖率统计功能的仿真器及方法
技术介绍
在智能卡芯片的程序开发和测试中,测试是否全面(即测试覆盖率)一直是开发和测试人员都比较关注的问题。在芯片仿真器中实现测试覆盖率统计功能,目前常用的有2种实现方法:程序插桩方法和仿真器TRACE功能。程序插桩方法是指,通过软件对已设计好的程序,或者是对编译出来的程序代码指令分析,在特殊位置插入功能程序,程序在测试运行过程中输出执行的信息,再通过软件分析得到测试覆盖率。此方法插入程序代码设计比较复杂,由于修改了被测程序结构,严重影响被测软件的代码量和执行速度,对于存储器容量使用比较紧张的智能卡芯片的程序测试并不适用。仿真器TRACE功能是指,仿真器硬件将程序运行过程中关键数据进行压缩缓存,实时的将数据传送给上位机软件,进行PC端的大数据存储,程序测试完成后,再通过软件分析得到测试覆盖率。此方法可以记录程序所有轨迹,对问题分析定位很有帮助,但是对仿真器硬件存储器容量、存储器读写速度、数据传输速度要求都比较高,关键数据压缩设计比较复杂,对大数据的分析比较困难,实现TRACE功能的仿真器成本较高,开发周期长,也不适合大量的应用于程序的开发和测试。如何设计适用于智能卡芯片程序测试,对仿真器硬件要求不高,软硬件设计简单,成本低,支持测试覆盖率统计功能的仿真器?为解决此问题,本专利技术提出一种支持覆盖率统计功能的仿真器及方法。
技术实现思路
本专利技术所解决的技术问题是,如何设计一种支持测试覆盖率统计功能的仿真器。本专利技术的仿真器包括调试控制模块、芯片功能模块、覆盖率统计模块3部分:调试控制模块,用于将统计数据存储器中的数据导入和导出,对芯片功能模块进行调试;芯片功能模块,用于仿真芯片功能,包括CPU_DBG、AHB总线、芯片程序存储器、外设;覆盖率统计模块,用于对程序执行的地址信息进行实时记录,包括统计模块、寄存器、接口转换模块、选择模块、统计数据存储器。各组件功能说明如下:CPU_DBG,是指芯片的CPU及调试模块,在调试控制模块控制下执行程序;AHB总线,是指AHB接口的AHB总线控制器模块,是CPU_DBG与AHB外设的接口;芯片程序存储器,用于存储芯片执行的程序;外设,是指除芯片程序存储器外,芯片的其它AHB外设;统计模块,使用CPU_DBG PC接口信号和AHB总线AHB接口信号,将程序执行的地址信息记录到统计数据存储器中,上述的地址信息就是统计数据;寄存器,产生统计程序的起始地址、统计使能控制信号,输出给统计模块,控制统计模块实现的具体功能;接口转换模块,将AHB总线的AHB接口信号,转换为寄存器接口信号和RAM接口信号,CPU_DBG通过AHB总线、接口转换模块完成对寄存器和统计数据存储器的读写访问;选择模块,CPU_DBG输出调试模式信号,选择统计模块或者接口转换模块连接到统计数据存储器;统计数据存储器,用于存储统计模块记录程序执行的地址信息数据。各组件连接关系如下:CPU_DBG与调试控制模块、AHB总线、统计模块、选择模块相连,AHB总线与CPU_DBG、芯片程序存储器、外设、统计模块、接口转换模块相连,统计模块与CPU_DBG、AHB总线、寄存器、选择模块相连,接口转换模块与AHB总线、寄存器、选择模块相连,选择模块还与统计数据存储器相连。本专利技术的仿真器针对AHB总线的CPU芯片进行设计,在原有仿真器硬件上增加覆盖率统计模块,使用AHB总线、CPU及调试模块的信号,采用将程序执行的地址在统计数据存储器中对应的地址位置进行打标的方式,实现程序执行地址信息的记录;将统计数据存储器中的统计数据导出,使用程序软件可以计算得到程序执行过的地址,再与程序全部执行的地址数据相比,计算出当前测试达到的程序覆盖率。在完成测试后,统计数据存储器中所有的数据都为有效数据,统计数据存储器每一bit与芯片程序存储器地址对应,在第一次统计前,统计数据存储器全部bit清除为0,完成测试统计后,程序执行过的地址对应的bit标识为1,根据标识1的bit地址,以及统计数据存储器数据与芯片程序存储器地址对应关系,计算出当前程序执行过的实际地址。仿真器支持统计数据存储器中统计数据的导入和导出,支持程序测试停止后再次继续测试,将当前测试统计数据存储器的统计数据导出,再次测试时将上述的统计数据导入统计数据存储器后,基于前一次的测试覆盖率结果继续进行测试。由于统计数据存储器中所有的数据都为有效数据,第一次统计测试前,必需将统计数据存储器全部bit清除为0;如果是基于以前的统计数据继续进行测试,要先导入已有的统计数据,对统计数据存储器全区初始化之后再继续测试。统计数据存储器每一bit与芯片程序存储器地址对应,是指统计数据存储器每一bit的地址与芯片程序存储器中数据的字节地址,或是半字地址,或是字地址相对应,与统计的内容有关,例:ARM中指令是半字或字长度,就按最小长度半字来统计,1bit表示的程序存储器中1个半字的地址,例:AHB总线对常量数据支持字节操作,1bit表示的程序存储器中1个字节的地址。因此统计数据存储器容量大小是芯片程序存储器容量的1/8,或是1/16,或是1/32。程序对同一地址多次访问只用1bit表示,当程序长时间测试,统计数据大小不会增加,一直为统计数据存储器的容量大小。通过配置仿真器覆盖率统计模块中的寄存器,实现统计功能开关控制,更改统计程序的起始地址的功能。对统计功能开关控制,使仿真器使用更方便,只需要统计覆盖率时打开统计功能。当仿真器设计时对统计数据存储器容量有限制,不能与芯片程序存储器全部地址对应时,通过更改起始地址,实现对指定的一段程序进行统计分析,采用更新起始地址多次测试的方式,实现对芯片程序存储器所有程序的测试覆盖率统计分析。此方法解决了统计数据存储器容量较大的问题,用小容量的存储器也可实现所有程序的测试覆盖率分析;由于统计数据只在测试完成后导出,对数据导出的速度没有严格要求,仿真器设计实现更容易。本专利技术的仿真器支持代码覆盖率、分支覆盖率、数据覆盖率统计功能,在统计数据存储器中分别用CodeMark区、SwitchMark区、DataMark区3块独立区域进行数据存储,代码覆盖率统计数据存储在CodeMark区,分支覆盖率统计数据存储在SwitchMark区,数据覆盖率统计数据存储在DataMark区。代码覆盖率用于分析当前测试是否对程序中所有函数进行测试,分支覆盖率用于分析当前测试是否测试程序中所有功能分支,数据覆盖率用于分析程序中设计的常量是否全部使用,上述三种覆盖率用于分析测试点的全面性,被测程序的正确性,减少程序中多余代码,优化程序性能,根据未测试到的地址信息,能够定位被测程序中具体的功能函数,进一步分析是测试点不全还是被测程序设计问题。代码覆盖率是指测试的指令取指执行过的地址个数,与指令取指全部执行的地址个数相比,得到的百分比数值,上述地址个数是指不同地址的个数,相同地址执行多次按1个计算。分支覆盖率是指,测试的程序执行过的跳转指令地址个数除以2,与程序全部跳转指令的地址个数相比,得到的百分比数值,上述跳转指令地址个数是指相同地址的跳转指令,执行跳转和不跳转两个分支按2个计算,相同地址同一分支执行多次按1个本文档来自技高网...
一种支持覆盖率统计功能的仿真器及方法

【技术保护点】
一种支持覆盖率统计功能的仿真器及方法,其特征在于,所述仿真器针对AHB总线的CPU芯片,增加覆盖率统计模块,使用AHB总线、CPU及调试模块的信号,采用将程序执行的地址在统计数据存储器中对应的地址位置进行打标的方式,实现程序执行地址信息的记录,将统计数据存储器中的统计数据导出,使用程序软件可以计算得到程序执行过的地址,再与程序全部执行的地址数据相比,计算出当前测试达到的程序覆盖率;所述仿真器包括:调试控制模块、芯片功能模块、覆盖率统计模块3部分;调试控制模块,用于将统计数据存储器中的数据导入和导出,对芯片功能模块进行调试;芯片功能模块,用于仿真芯片功能,包括CPU_DBG、AHB总线、芯片程序存储器、外设;覆盖率统计模块,用于对程序执行的地址信息进行实时记录,包括统计模块、寄存器、接口转换模块、选择模块、统计数据存储器;各组件功能说明如下:CPU_DBG,是指芯片的CPU及调试模块,在调试控制模块控制下执行程序;AHB总线,是指AHB接口的AHB总线控制器模块,是CPU_DBG与AHB外设的接口;芯片程序存储器,用于存储芯片执行的程序;外设,是指除芯片程序存储器外,芯片的其它AHB外设;统计模块,使用CPU_DBG PC接口信号和AHB总线AHB接口信号,将程序执行的地址信息记录到统计数据存储器中,上述的地址信息就是统计数据;寄存器,产生统计程序的起始地址、统计使能控制信号,输出给统计模块,控制统计模块实现的具体功能;接口转换模块,将AHB总线的AHB接口信号,转换为寄存器接口信号和RAM接口信号,CPU_DBG通过AHB总线、接口转换模块完成对寄存器和统计数据存储器的读写访问;选择模块,CPU_DBG输出调试模式信号,选择统计模块或者接口转换模块连接到统计数据存储器;统计数据存储器,用于存储统计模块记录程序执行的地址信息数据;各组件连接关系如下:CPU_DBG与调试控制模块、AHB总线、统计模块、选择模块相连,AHB总线还连接芯片程序存储器、外设、统计模块、接口转换模块,统计模块和接口转换模块还分别连接到寄存器、选择模块,选择模块还与统计数据存储器相连。...

【技术特征摘要】
1.一种支持覆盖率统计功能的仿真器及方法,其特征在于,所述仿真器针对AHB总线的CPU芯片,增加覆盖率统计模块,使用AHB总线、CPU及调试模块的信号,采用将程序执行的地址在统计数据存储器中对应的地址位置进行打标的方式,实现程序执行地址信息的记录,将统计数据存储器中的统计数据导出,使用程序软件可以计算得到程序执行过的地址,再与程序全部执行的地址数据相比,计算出当前测试达到的程序覆盖率;所述仿真器包括:调试控制模块、芯片功能模块、覆盖率统计模块3部分;调试控制模块,用于将统计数据存储器中的数据导入和导出,对芯片功能模块进行调试;芯片功能模块,用于仿真芯片功能,包括CPU_DBG、AHB总线、芯片程序存储器、外设;覆盖率统计模块,用于对程序执行的地址信息进行实时记录,包括统计模块、寄存器、接口转换模块、选择模块、统计数据存储器;各组件功能说明如下:CPU_DBG,是指芯片的CPU及调试模块,在调试控制模块控制下执行程序;AHB总线,是指AHB接口的AHB总线控制器模块,是CPU_DBG与AHB外设的接口;芯片程序存储器,用于存储芯片执行的程序;外设,是指除芯片程序存储器外,芯片的其它AHB外设;统计模块,使用CPU_DBG PC接口信号和AHB总线AHB接口信号,将程序执行的地址信息记录到统计数据存储器中,上述的地址信息就是统计数据;寄存器,产生统计程序的起始地址、统计使能控制信号,输出给统计模块,控制统计模块实现的具体功能;接口转换模块,将AHB总线的AHB接口信号,转换为寄存器接口信号和RAM接口信号,CPU_DBG通过AHB总线、接口转换模块完成对寄存器和统计数据存储器的读写访问;选择模块,CPU_DBG输出调试模式信号,选择统计模块或者接口转换模块连接到统计数据存储器;统计数据存储器,用于存储统计模块记录程序执行的地址信息数据;各组件连接关系如下:CPU_DBG与调试控制模块、AHB总线、统计模块、选择模块相连,AHB总线还连接芯片程序存储器、外设、统计模块、接口转换模块,统计模块和接口转换模块还分别连接到寄存器、选择模块,选择模块还与统计数据存储器相连。2.根据权利要求1所述的一种支持覆盖率统计功能的仿真器及方法,其特征在于,所述统计数据存储器中所有的数据都为有效数据,统计数据存储器每一bit与芯片程序存储器地址对应,在第一次统计前,统计数据存储器全部bit清除为0,完成测试统计后,程序执行过的地址对应的bit标识为1,根据标识1的bit地址,以及统计数据存储器数据与芯片程序存储器地址对应关系,计算出当前程序执行过的实际地址。3.根据权利要求1所述的一种支持覆盖率统计功能的仿真器及方法,其特征在于,所述仿真器支持程序测试停止后再次继续测试,将当前测试统计数据存储器的统计数据导出,再...

【专利技术属性】
技术研发人员:张洪波
申请(专利权)人:北京中电华大电子设计有限责任公司
类型:发明
国别省市:北京;11

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

1