芯片软硬件联合仿真调试系统技术方案

技术编号:39715680 阅读:10 留言:0更新日期:2023-12-17 23:23
本发明专利技术涉及芯片技术领域,尤其涉及一种芯片软硬件联合仿真调试系统,实现步骤

【技术实现步骤摘要】
芯片软硬件联合仿真调试系统


[0001]本专利技术涉及芯片
,尤其涉及一种芯片软硬件联合仿真调试系统


技术介绍

[0002]在芯片开发阶段,需要对芯片的模块进行仿真

芯片包括硬件模块和软件模块,通过硬件模块和软件模块交互实现软硬件联合仿真

硬件模块的代码可以通过
gdb
波形来调试,而软件模块运行的是由高级语言代码编译生成的二进制代码,在现有的软硬件联合仿真过程中,无法直接通过波形的方式来调试高级语言代码,也无法获取到高级语言代码的程序执行到了哪个阶段,更无法获取到与软件模块交互的硬件模块的信号波形和高级语言代码的对应关系

如果仅凭经验通过多次尝试来调试,会导致软硬件联合仿真调试的效率低,且无法保证准确性

由此可知,如何提高芯片在软硬件仿真阶段的调试效率和准确性,成为亟待解决的技术问题


技术实现思路

[0003]本专利技术目的在于,提供一种芯片软硬件联合仿真调试系统,提高了芯片在软硬件仿真阶段的调试效率和准确性

[0004]根据本专利技术一方面,提供了一种芯片软硬件联合仿真调试系统,包括芯片

存储有计算机程序的第一存储器

第一处理器和显示界面,其中,所述芯片包括至少一组具有互联关系的硬件模块和软件模块,所述硬件代码模块基于硬件描述语言生成,所述软件模块包括用于存储预设二进制代码的第二存储器和用于执行预设二进制代码的第二处理器,所述预设二进制代码由高级语言编写的预设源代码转换生成;所述显示界面包括第一显示区域

第二显示区域

时间轴,所述第一显示区域和第二显示区域共用所述时间轴,所述时间轴用于表示芯片的软硬件联合仿真时间;当所述第一处理器执行所述计算机程序时,实现以下步骤:步骤
S1、
建立预设二进制代码的指令码和软件模块中函数的映射关系,生成映射关系表;步骤
S2、
建立所述软件模块对应的字符串数组,所述字符串数组的长度为预设源代码的最大函数嵌套层数
M
;步骤
S3、
基于所述硬件模块和软件模块进行芯片软硬件联合仿真,生成硬件模块对应的硬件信号波形数据,并基于所述映射关系表按照所述软件模块中的函数调用顺序以栈存储的形式将函数标识存储在所述字符串数组中;步骤
S4、
基于所述硬件信号波形数据在所述第一显示区域实时生成硬件信号波形,基于所述字符串数组在所述第二显示区域中实时显示软件模块中的函数调用顺序,基于所述时间轴建立硬件信号波形和软件模块中的函数调用顺序的对应关系;步骤
S5、
基于所述时间轴建立硬件信号波形和软件模块中的函数调用顺序的对应关系执行芯片的软硬件联合仿真调试

[0005]本专利技术与现有技术相比具有明显的优点和有益效果

借由上述技术方案,本专利技术提供的一种芯片软硬件联合仿真调试系统可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有以下有益效果:本专利技术所述系统通过建立预设二进制代码的指令码和软件模块中函数的映射关系以及字符串数组,在基于所述硬件模块和软件模块进行芯片软硬件联合仿真过程中建立硬件信号波形和软件模块中的函数调用顺序的对应关系,基于时间轴建立硬件信号波形和软件模块中的函数调用顺序的对应关系实现行芯片的软硬件联合仿真调试,提高了芯片在软硬件仿真阶段的调试效率和准确性

附图说明
[0006]为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图

[0007]图1为本专利技术实施例提供的芯片软硬件联合仿真调试系统示意图;图2为本专利技术实施例提供的显示界面示意图

具体实施方式
[0008]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚

完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例

基于本专利技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围

[0009]本专利技术实施例提供了一种芯片软硬件联合仿真调试系统,如图1所示,包括芯片

存储有计算机程序的第一存储器

第一处理器和显示界面

[0010]其中,所述芯片包括至少一组具有互联关系的硬件模块和软件模块,需要说明的是,芯片规模非常庞大,因此可以包括也多组具有互联关系的硬件模块和软件模块,但对每一组具有互联关系的硬件模块和软件模块的软硬件联合仿真调试,均可采用本专利技术实施例所述的过程来实现

所述硬件代码模块基于硬件描述语言生成,硬件描述语言具体可以为
Verilog

VHDL


[0011]所述软件模块包括用于存储预设二进制代码的第二存储器和用于执行预设二进制代码的第二处理器,优选的,所述第二处理器为
RISCV
处理器,
RISCV
是一个基于精简指令集
(RISC)
原则的开源指令集架构
(ISA)

RISCV
处理器为现有的处理器,在此不再赘述

所述预设二进制代码由高级语言编写的预设源代码转换生成,所述预设源代码为
C
代码或
C++
代码等

在芯片开发阶段,软件模块的预设源代码可能会不断调整,因此可以将预设源代码转换为二进制代码烧录到第二存储器中,由
RISCV
处理器执行,当需要调整预设源代码时,将第二存储器中的二进制代码擦除,在将调整后的预设源代码转换为对应的二进制代码,烧录到第二存储器中,由
RISCV
处理器来执行,提高了芯片设计的灵活性

[0012]所述显示界面包括第一显示区域

第二显示区域

时间轴,所述第一显示区域和第二显示区域共用所述时间轴,所述时间轴用于表示芯片的软硬件联合仿真时间

[0013]当所述第一处理器执行所述计算机程序时,实现以下步骤:步骤
S1、
建立预设二进制代码的指令码和软件模块中函数的映射关系,生成映射关系表

[0014]需要说明的是,由于直接通过二进制无法实时获取到软件模块中函数调用情况,因此首先建立预设二进制代码的指令码和软件模块中函数的映射关系

[0015]步骤
S2、
建立所述软件模块对应的字符串数组,所本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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、
遍历当前字符...

【专利技术属性】
技术研发人员:余浩洋谢煜程高卫叶红亮
申请(专利权)人:沐曦集成电路上海有限公司
类型:发明
国别省市:

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

1