一种在芯片仿真模型上进行软件调试的方法技术

技术编号:27291115 阅读:13 留言:0更新日期:2021-02-06 12:00
本发明专利技术提出一种在芯片仿真模型上进行软件调试的方法,在芯片仿真模型所在主机/服务器上对ICE软件的两个调试协议转换线程进行建模,其中一个线程用于接收调试主机的调试命令,另一个线程用于监测芯片状态;两个调试协议转换线程与芯片仿真模型以线程/进程间通信方式进行通信,与调试主机通过基于互联网络的调试通信协议进行通信,芯片仿真模型所在主机/服务器与调试主机通过互联网络进行通信。本发明专利技术通过对ICE软件的两个调试协议转换线程进行建模,实现芯片仿真模型与调试主机的通信连接,使得调试人员可以像调试真实芯片一样对芯片仿真模型进行软件调试,便于在执行结果错误时,查找出错点并修正。查找出错点并修正。查找出错点并修正。

【技术实现步骤摘要】
一种在芯片仿真模型上进行软件调试的方法


[0001]本专利技术涉及芯片仿真
,尤其是一种在芯片仿真模型上进行软件调试的方法。

技术介绍

[0002]现如今,芯片已经在各种电子设备中发挥着重要作用,大部分电子设备的运行都依赖于其内部芯片的实现。芯片实现包括芯片设计和芯片制造两个阶段。芯片设计包括软件设计和逻辑电路设计,软件是芯片的灵魂,用于描述芯片所实现的功能,逻辑电路是实现芯片功能而设计的硬件电路。芯片制造的主要步骤就是依据芯片设计结果进行流片,但是芯片一经流片,其内部逻辑就无法再改变。如果芯片设计阶段出现问题,就只能重新流片,这样一来造成的损失无疑是巨大的。芯片流片的成本非常高,这就对芯片设计提出了更高的要求,确保芯片设计的正确性。为此,在芯片设计过程中,通常通过构建芯片仿真模型对芯片逻辑功能的正确性进行验证。
[0003]芯片仿真模型包括软件仿真模型、硬件仿真模型,其中软件仿真模型一般基于systemc等开源框架开发,硬件仿真模型一般以verilog/systemverilog/VHDL语言建立,可以经过后端处理后转化为网表、GDSII版图,是芯片前端设计的具体表示。
[0004]可编程芯片是指可以运行软件的芯片,如CPU、DSP、集成有CPU的SOC芯片等。对于可编程芯片,在芯片设计阶段,不论是软件仿真模型,还是硬件仿真模型,均应对芯片上运行的软件行为进行仿真。一般通过软件或EDA工具,将芯片上将要运行的软件加载到芯片仿真模型,再对该软件的运行结果进行仿真,以验证芯片逻辑功能的正确性,是芯片验证最重要的环节之一,是保证可编程芯片逻辑功能正确性的必由之路。
[0005]现有技术中,在芯片仿真模型对软件的执行进行仿真时,仅能观察软件的执行结果。当执行结果不符合预期时,难以定位出错位置,这也不符合软件开发人员常规的开发方式。对于比较复杂的软件(如芯片内部固化的加载软件、外设驱动软件、轻量型的嵌入式操作系统)进行仿真时,有必要提供对仿真的软件进行调试的功能。
[0006]目前,常规的芯片仿真环境如systemc/systemverilog/verilog,均不能直接支持对芯片上运行软件进行调试。这是因为芯片上运行的软件与芯片的具体架构密切相关,不同的芯片必须以不同的方式对其调试功能进行仿真。
[0007]对于真实芯片,一般通过在线仿真器ICE(In-Circuit Emulator)进行调试,该设备通常包括一块FPGA芯片和一块嵌入式CPU芯片。CPU芯片上运行的软件通过USB或网线与调试主机通信,FPGA芯片通过标准JTAG协议对芯片进行控制。芯片内部设计有JTAG控制逻辑,JTAG控制逻辑一方面通过标准JTAG协议与ICE中的FPGA逻辑通信,另一方面通过总线或硬件信号访问芯片内部资源,如寄存器、片上SRAM、外设控制和状态寄存器。

技术实现思路

[0008]针对现有技术不能对芯片仿真模型上运行的软件进行调试的问题,本专利技术提出一
种在芯片仿真模型上进行软件调试的方法。
[0009]本专利技术保护一种在芯片仿真模型上进行软件调试的方法,在芯片仿真模型所在主机/服务器上对ICE软件的两个调试协议转换线程进行建模,其中一个线程用于接收调试主机的调试命令,另一个线程用于监测芯片状态;两个调试协议转换线程与芯片仿真模型以线程/进程间通信方式进行通信,与调试主机通过基于互联网络的调试通信协议进行通信,芯片仿真模型所在主机/服务器与调试主机通过互联网络进行通信。
[0010]进一步的,若芯片仿真模型完全由systemc实现,且对芯片上的调试逻辑进行抽象,直接以函数的方式实现对芯片上寄存器、外设、片上SRAM的访问,则两个调试协议转换线程与systemc芯片仿真模型直接以线程/进程间通信方式进行通信。
[0011]进一步的,若芯片仿真模型完全由systemc描述,且芯片上的JTAG控制逻辑由systemc实现,则两个调试协议转换线程与systemc芯片仿真模型之间通过systemc实现的FPGA仿真逻辑进行通信;FPGA仿真逻辑一方面从systemc芯片仿真模型接收JTAG线路的逻辑变化并解析,另一方面以线程/进程间通信方式与两个调试协议转换线程进行通信。
[0012]进一步的,若芯片仿真模型的处理器内核由systemc实现,其余部分外设逻辑由verilog/systemverilog实现,则两个调试协议转换线程直接与systemc处理器内核仿真模型通信。
[0013]进一步的,若芯片仿真模型的芯片内部JTAG控制逻辑由systemc实现,其余部分逻辑由verilog/systemverilog实现,则两个调试协议转换线程仅直接与systemc实现的芯片内部JTAG控制逻辑通信。
[0014]进一步的,若芯片仿真模型完全由verilog/systemverilog实现,则使用systemc对ICE软件的FPGA逻辑进行建模,systemc仿真的FPGA逻辑一方面与芯片仿真模型之间传输仿真的JTAG信号,另一方面与两个调试协议转换线程之间以线程/进程间通信方式通信。
[0015]本专利技术还保护一种基于上述软件调试方法的芯片仿真模型软件调试系统。
[0016]本专利技术的有益效果:1、通过ICE软件的两个调试协议转换线程进行建模,实现芯片仿真模型与调试主机的通信连接,使得调试人员可以像调试真实芯片一样对芯片仿真模型进行软件调试,便于在执行结果错误时,查找出错点并修正;2、既可以对systemc实现的纯软件模拟器进行调试,也可以对verilog/systemverilog/systemc实现的混合仿真平台进行调试;3、实现芯片仿真模型的远程调试、跨网段调试。
附图说明
[0017]图1为实施例1第一种建模方式下的调试系统示意图;
[0018]图2为实施例1第二种建模方式下的调试系统示意图;
[0019]图3为实施例2第一种建模方式下的调试系统示意图;
[0020]图4为实施例2第二种建模方式下的调试系统示意图;
[0021]图5为实施例2第三种建模方式下的调试系统示意图。
具体实施方式
[0022]下面结合附图和具体实施方式对本专利技术作进一步详细的说明。本专利技术的实施例是为了示例和描述起见而给出的,而并不是无遗漏的或者将本专利技术限于所公开的形式。很多
修改和变化对于本领域的普通技术人员而言是显而易见的。选择和描述实施例是为了更好说明本专利技术的原理和实际应用,并且使本领域的普通技术人员能够理解本专利技术从而设计适于特定用途的带有各种修改的各种实施例。
[0023]实施例1
[0024]一种在芯片仿真模型上进行软件调试的方法,在芯片仿真模型所在主机/服务器上对ICE软件的两个调试协议转换线程进行建模,其中一个线程用于接收调试主机的调试命令,另一个线程用于监测芯片状态。
[0025]若以线程的方式对这两个线程进行建模,则这两个线程与芯片仿真模型以线程间通信方式进行通信,这里本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种在芯片仿真模型上进行软件调试的方法,其特征在于,在芯片仿真模型所在主机/服务器上对ICE软件的两个调试协议转换线程进行建模,其中一个线程用于接收调试主机的调试命令,另一个线程用于监测芯片状态;两个调试协议转换线程与芯片仿真模型以线程/进程间通信方式进行通信,与调试主机通过基于互联网络的调试通信协议进行通信,芯片仿真模型所在主机/服务器与调试主机通过互联网络进行通信。2.根据权利要求1所述的在芯片仿真模型上进行软件调试的方法,其特征在于,若芯片仿真模型完全由systemc实现,且对芯片上的调试逻辑进行抽象,即不进行实际行为的建模,直接以函数的方式实现对芯片上寄存器、外设、片上SRAM的访问,则两个调试协议转换线程与systemc芯片仿真模型直接以线程/进程间通信方式进行通信。3.根据权利要求1所述的在芯片仿真模型上进行软件调试的方法,其特征在于,若芯片仿真模型完全由systemc描述,且芯片上的JTAG控制逻辑由systemc实现,则两个调试协议转换线程与systemc芯片仿真模型之间通过systemc实现的FPGA仿真逻辑进行通信;FPGA仿真逻辑一方面从systemc芯片仿真模型接收JTAG线路的逻辑变...

【专利技术属性】
技术研发人员:林广栋周乐陈金忠耿锐赵纪堂刘谷洪一
申请(专利权)人:安徽芯纪元科技有限公司
类型:发明
国别省市:

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

1