【技术实现步骤摘要】
芯片软硬件联合仿真调试系统
[0001]本专利技术涉及芯片
,尤其涉及一种芯片软硬件联合仿真调试系统
。
技术介绍
[0002]在芯片开发阶段,需要对芯片的模块进行仿真
。
芯片包括硬件模块和软件模块,通过硬件模块和软件模块交互实现软硬件联合仿真
。
硬件模块的代码可以通过
gdb
波形来调试,而软件模块运行的是由高级语言代码编译生成的二进制代码,在现有的软硬件联合仿真过程中,无法直接通过波形的方式来调试高级语言代码,也无法获取到高级语言代码的程序执行到了哪个阶段,更无法获取到与软件模块交互的硬件模块的信号波形和高级语言代码的对应关系
。
如果仅凭经验通过多次尝试来调试,会导致软硬件联合仿真调试的效率低,且无法保证准确性
。
由此可知,如何提高芯片在软硬件仿真阶段的调试效率和准确性,成为亟待解决的技术问题
。
技术实现思路
[0003]本专利技术目的在于,提供一种芯片软硬件联合仿真调试系统,提高了芯片在软硬件仿真阶段的调试效率和准确性
。
[0004]根据本专利技术一方面,提供了一种芯片软硬件联合仿真调试系统,包括芯片
、
存储有计算机程序的第一存储器
、
第一处理器和显示界面,其中,所述芯片包括至少一组具有互联关系的硬件模块和软件模块,所述硬件代码模块基于硬件描述语言生成,所述软件模块包括用于存储预设二进制代码的第二存储器和用于执行预设二进制代码的第二 ...
【技术保护点】
【技术特征摘要】
1.
一种芯片软硬件联合仿真调试系统,其特征在于,包括芯片
、
存储有计算机程序的第一存储器
、
第一处理器和显示界面,其中,所述芯片包括至少一组具有互联关系的硬件模块和软件模块,所述硬件代码模块基于硬件描述语言生成,所述软件模块包括用于存储预设二进制代码的第二存储器和用于执行预设二进制代码的第二处理器,所述预设二进制代码由高级语言编写的预设源代码转换生成;所述显示界面包括第一显示区域
、
第二显示区域
、
时间轴,所述第一显示区域和第二显示区域共用所述时间轴,所述时间轴用于表示芯片的软硬件联合仿真时间;当所述第一处理器执行所述计算机程序时,实现以下步骤:步骤
S1、
建立预设二进制代码的指令码和软件模块中函数的映射关系,生成映射关系表;步骤
S2、
建立所述软件模块对应的字符串数组,所述字符串数组的长度为预设源代码的最大函数嵌套层数
M
;步骤
S3、
基于所述硬件模块和软件模块进行芯片软硬件联合仿真,生成硬件模块对应的硬件信号波形数据,并基于所述映射关系表按照所述软件模块中的函数调用顺序以栈存储的形式将函数标识存储在所述字符串数组中;步骤
S4、
基于所述硬件信号波形数据在所述第一显示区域实时生成硬件信号波形,基于所述字符串数组在所述第二显示区域中实时显示软件模块中的函数调用顺序,基于所述时间轴建立硬件信号波形和软件模块中的函数调用顺序的对应关系;步骤
S5、
基于所述时间轴建立硬件信号波形和软件模块中的函数调用顺序的对应关系执行芯片的软硬件联合仿真调试
。2.
根据权利要求1所述的系统,其特征在于,所述步骤
S1
包括:步骤
S11、
将所述预设二进制代码进行反汇编,生成目标汇编代码;步骤
S12、
基于预设的脚本从所述目标汇编代码中提取预设跳转关键字对应的函数标识;步骤
S13、
将预设二进制代码的指令码设置为哈希键,将预设二进制代码的指令码所对应的目标汇编代码中对应的函数标识设置为对应的哈希值,建立哈希键和哈希值的映射关系,生成所述映射关系表
。3.
根据权利要求1所述的系统,其特征在于,所述字符串数组
=
(
R1,R2,
…
,R
m
,
…
,R
M
),
R
m
为所述字符串数组的第
m
个存储区域,
m
的取值范围为1到
M
,
R
m
初始为空,所述字符串数组按照
R1,R2,
…
,R
m
,
…
,R
M
的顺序存储函数标识,每一存储区域存储一个函数标识,
R
m+1
中存储的函数标识为
R
m
中存储的函数标识对应的子函数标识
。4.
根据权利要求3所述的系统,其特征在于,所述步骤
S3
中,基于所述映射关系表按照所述软件模块中的函数调用顺序以栈存储的形式将函数标识存储在所述字符串数组中,包括:步骤
S31、
获取当前软件模块中所执行的预设二进制代码的指令码;步骤
S32、
基于所述映射关系表确定当前软件模块中所执行的预设二进制代码的指令码对应的当前函数标识,若存在当前函数标识,则执行步骤
S33
,否则,执行步骤
S34;
步骤
S33、
遍历当前字符...
【专利技术属性】
技术研发人员:余浩洋,谢煜程,高卫,叶红亮,
申请(专利权)人:沐曦集成电路上海有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。