【技术实现步骤摘要】
芯片软硬件联合仿真阶段的软件代码覆盖率确定系统
[0001]本专利技术涉及芯片
,尤其涉及一种芯片软硬件联合仿真阶段的软件代码覆盖率确定系统
。
技术介绍
[0002]在芯片开发阶段,需要对芯片的模块进行仿真
。
芯片包括硬件模块和软件模块,通过硬件模块和软件模块交互实现软硬件联合仿真
。
现有技术中,硬件模块的代码覆盖率通过
EDA
等成熟的工具可以获取到,而软件模块运行的是由高级语言代码编译生成的二进制代码,在现有的软硬件联合仿真过程中,处理器读取执行的二进制代码无法与高级语言直接关联,无法根据二进制代码的执行情况获取软件模块的软件代码的覆盖率情况,若逐行去分析软件代码的执行情况来获取软件代码覆盖率,效率低且无法保证准确性
。
由此可知,如何提供一种能够准确快速获取芯片软硬件联合仿真阶段的软件代码覆盖率的技术,成为亟待解决的技术问题
。
技术实现思路
[0003]本专利技术目的在于,提供一种芯片软硬件联合仿真阶段的软件代码覆盖率确定系统,能够准确快速获取芯片软硬件联合仿真阶段的软件代码覆盖率
。
[0004]根据本专利技术一方面,提供了一种芯片软硬件联合仿真阶段的软件代码覆盖率确定系统,包括芯片
、
存储有计算机程序的第一存储器
、
第一处理器和预设的测试集,其中,所述芯片包括至少一组具有互联关系的硬件模块和软件模块,所述硬件代码模块基于硬件描述语言生成,所述软件模
【技术保护点】
【技术特征摘要】
1.
一种芯片软硬件联合仿真阶段的软件代码覆盖率确定系统,其特征在于,包括芯片
、
存储有计算机程序的第一存储器
、
第一处理器和预设的测试集,其中,所述芯片包括至少一组具有互联关系的硬件模块和软件模块,所述硬件代码模块基于硬件描述语言生成,所述软件模块包括第二存储器和第二处理器,所述预设的测试集中包括
N
个测试用例;当所述第一处理器执行所述计算机程序时,实现以下步骤:步骤
S1、
获取基于高级语言生成的软件代码,所述软件代码包括多个代码块,每一代码块包括至少一行代码行,当代码块的首行代码被执行时,代码块中的其他代码行也一定被执行;步骤
S2、
在所述软件代码的每一代码块的首行插桩,将插桩后的软件代码转换为二进制代码存储在所述第二存储器中;步骤
S3、
构建软件代码执行状态数组,所述代码执行状态数组包括
M
个比特位(
B1,B2,
…
,B
m
,
…
,B
M
),
B
m
为所述代码执行状态数组的第
m
位,
m
的取值范围为1到
M
,
M
为所述软件代码的最大总行数,
B
m
用于表示第
m
行软件代码的执行状态,
B
m
的初始值为第一标识,所述第一标识表示未执行状态;步骤
S4、
所述第二处理器从所述第二存储器中逐行读取二进制代码分别执行所述预设的测试集中的每一测试用例,基于所述执行状态数组生成每一测试用例对应的执行状态数组;步骤
S5、
将所有测试用例的执行状态数组融合生成目标执行状态数组,基于所述目标执行状态数组生成软件代码覆盖率
。2.
根据权利要求1所述的系统,其特征在于,所述系统还包括预设宏,所述预设宏用户获取所述软件代码当前执行的代码行数,所述步骤
S4
包括:步骤
S41、
当所述第二处理器执行至具有插桩标识的代码行时,触发所述预设宏;步骤
S42、
基于所述预设宏获取当前基于第
n
测试用例所执行的软件代码行数,
n
的取值范围为1到
N
;步骤
S43、
将第
...
【专利技术属性】
技术研发人员:余浩洋,谢煜程,高卫,叶红亮,
申请(专利权)人:沐曦集成电路上海有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。