一种芯片仿真调试系统及调试方法与流程

文档序号:20682270发布日期:2020-05-08 18:30阅读:249来源:国知局
一种芯片仿真调试系统及调试方法与流程

本发明属于电子设计自动化技术(eda,electronicsdesignautomation)领域,尤其涉及一种芯片仿真调试系统及调试方法。



背景技术:

芯片功能仿真是芯片设计过程中必要的步骤。在芯片设计过程中通过功能仿真可以模拟芯片的工作状态并输出仿真结果,通过仿真结果可以判断芯片设计是否满足功能要求。仿真过程中遇到功能故障的情况下进行功能调试,定位故障源头、修改设计缺陷是保证芯片设计正确性的必要步骤。

现有的eda(电子设计自动化,electronicsdesignautomation)工具只能够提供基于芯片设计代码、仿真环境代码设置调试断点的手段,也即只能在设计代码、仿真环境代码所处具体文件的具体代码行设置断点并进行系统调试。这种调试系统缺乏无法在设计代码、仿真环境代码中确定断点位置的情况下精确设置断点并进行调试的方法。例如,soc(systemonchip)系统仿真时无法在cpu对某个特定地址写入特定数据的情况下设置断点并进行调试。

使用基于芯片设计代码、仿真环境代码设置调试断点的方法,无法从芯片功能的角度灵活设置断点,给系统功能调试、分析带来了一定困难,不利于在出现设计故障的情况下根据芯片功能定义快速定位故障源头、修改设计缺陷。

有鉴于此,如今迫切需要设计一种仿真调试方式,以便克服现有调试方式存在的上述缺陷。



技术实现要素:

本发明提供一种芯片仿真调试系统及调试方法,可增加调试断点在仿真过程中满足某些特定条件暂停仿真进行调试的功能。

为解决上述技术问题,根据本发明的一个方面,采用如下技术方案:

一种芯片仿真调试系统,所述芯片仿真调试系统包括:至少一主设备监测器或从设备监测器,以及监测信息采集器;

所述主设备监测器连接对应的主设备,用以监测对应主设备对总线的操作;用以在总线操作开始后记录主设备id,根据操作地址获取从设备id,根据操作过程是读操作还是写操作获取操作符,根据操作过程的数据获取操作数据和操作数据数量,根据操作开始或者操作结束信号获取操作时间,操作结束后等待下一次总线操作;

所述从设备监测器连接对应的从设备,用以监测总线对对应从设备的操作;用以在总线操作开始后,根据当前操作对应的从设备获取从设备id,根据操作过程是读操作还是写操作获取操作符,根据操作过程的数据获取操作数据和操作数据数量,根据操作开始或者操作结束信号获取操作时间,操作结束后等待下一次总线操作;

所述监测信息采集器分别连接各主设备监测器及各从设备监测器,用以采集来自主设备监测器输出的主设备对总线的操作信息以及从设备监测器输出的总线对从设备的操作信息,并保存到运行状态文件中。

作为本发明的一种实施方式,所述主设备监测器、从设备监测器输出的一次读操作的信息包括读操作符、读地址、读返回数据、读返回数据数量以及读操作时间;

所述主设备监测器、从设备监测器输出的一次写操作的信息包括写操作符、写地址、写数据、写数据数量以及写操作时间。

作为本发明的一种实施方式,所述系统包括设备id分配模块,用以为每个主设备、从设备分配一个设备id,并保证每个设备id均不相同;每个从设备均有各自的操作地址区间并且相互没有重叠的地址区域;

各主设备及各从设备分别连接总线;主设备对总线的读操作或写操作以及总线对从设备的一次读操作或写操作被认为是一次操作;

每个主设备发出的对总线的操作均接入各自主设备监测器,来自总线对从设备的操作接入从设备监测器。

作为本发明的一种实施方式,在运行状态文件中,操作编号由监测信息采集器维护,对来自主设备监测器、从设备监测器每一次操作分配一个操作编号,并保证每次操作编号具备唯一性。

作为本发明的一种实施方式,主设备对总线进行操作的过程,操作地址由主设备发出,根据操作地址所处的操作地址区间确定从设备的设备id,根据发出当前操作的主设备确定主设备id,总线对从设备进行操作的过程,从设备id设置为当前从设备对应的id,操作符、操作地址、操作数据、操作数据数量、操作时间均来自主设备监测器、从设备监测器的输出信息。

作为本发明的一种实施方式,仿真结束并生成运行状态文件后,用户能对该文件进行分析,根据调试需求生成用户断点配置文件。

作为本发明的一种实施方式,断点编号由用户维护,保证每个断点编号的唯一性,主设备id及从设备id设置任意一个或多个设备的id或任意id或不存在,操作标记设置为读操作符或写操作符或任意操作符,将操作地址设置为某个特定地址或任意地址或满足设定规律的地址,将操作数据设置为某个特定数据或任意数据或满足设定规律的数据,将操作数据数量设置为某个特定值或任意值或满足设定规律的数据数量,将操作时间设置为某个特定时间或任意时间或满足设定规律的时间;

用户配置文件经过断点生成器分析处理后生成断点配置文件,断点配置文件格式按照仿真工具提供的用于设置断点的用户接口格式要求生成。

根据本发明的另一个方面,采用如下技术方案:一种芯片仿真调试方法,所述芯片仿真调试方法包括:

步骤s1、根据主设备id的信息选择在对应的主设备监测器中检查主设备总线操作的功能代码处设置断点;当主设备id为任意值的情况下,则在所有主设备监测器均设置断点;当主设备id为某一个或若干个值的情况下,在该id对应的主设备监测器中设置断点;没有主设备id的情况下,则主设备监测器不设置断点;

步骤s2、根据从设备id的信息选择在对应的从设备监测器中检查来自总线操作的功能代码处设置断点;当从设备id为任意值的情况下,则在所有从设备监测器均设置断点;当从设备id为某一个或若干个值的情况下,在该id对应的从设备监测器中设置断点;没有从设备id的情况下,则从设备监测器不设置断点;

步骤s3、根据操作符、操作地址、操作数据、操作数据数量、操作时间设置断点触发条件,所有条件同时成立则断点被触发;操作符触发条件为操作符是读操作或写操作或任意操作,操作地址触发条件为操作地址是某个特定地址或任意地址或满足设定规律的地址,操作数据触发条件为操作数据是某个特定数据或任意数据或满足设定规律的数据,操作数据数量触发条件为操作数据数量是某个特定值或任意值或满足设定规律的数据数量,操作时间触发条件为操作时间是某个特定时间或者任意时间或者满足设定规律的时间。

根据本发明的又一个方面,采用如下技术方案:一种芯片仿真调试方法,所述芯片仿真调试方法包括:

监测对应主设备对总线的操作;在总线操作开始后记录主设备id,根据操作地址获取从设备id,根据操作过程是读操作还是写操作获取操作符,根据操作过程的数据获取操作数据和操作数据数量,根据操作开始或者操作结束信号获取操作时间,操作结束后等待下一次总线操作;

监测总线对对应从设备的操作;在总线操作开始后,根据当前操作对应的从设备获取从设备id,主设备id设置为不关注状态,根据操作过程是读操作还是写操作获取操作符,根据操作过程的数据获取操作数据和操作数据数量,根据操作开始或者操作结束信号获取操作时间,操作结束后等待下一次总线操作;

监测信息采集器采集来自主设备监测器输出的主设备对总线的操作信息以及从设备监测器输出的总线对从设备的操作信息,并保存到运行状态文件中。

作为本发明的一种实施方式,所述芯片仿真调试方法还包括:仿真结束并生成运行状态文件后,用户能对该文件进行分析,根据调试需求生成用户断点配置文件。

本发明的有益效果在于:本发明提出的芯片仿真调试系统及调试方法,在芯片设计代码、仿真环境代码中根据调试需求不便于设置代码断点定位某些具体的仿真行为的情况下,通过对主设备、从设备监测器具体功能代码处设置断点和断点触发条件,增加了调试断点在仿真过程中满足某些特定条件暂停仿真进行调试的功能。

附图说明

图1为本发明一实施例中芯片仿真调试系统的组成示意图。

图2为本发明一实施例中运行状态文件格式图。

图3为本发明一实施例中用户断点配置文件格式图。

图4为本发明一实施例中断点设置过程图。

具体实施方式

下面结合附图详细说明本发明的优选实施例。

为了进一步理解本发明,下面结合实施例对本发明优选实施方案进行描述,但是应当理解,这些描述只是为进一步说明本发明的特征和优点,而不是对本发明权利要求的限制。

该部分的描述只针对几个典型的实施例,本发明并不仅局限于实施例描述的范围。相同或相近的现有技术手段与实施例中的一些技术特征进行相互替换也在本发明描述和保护的范围内。

本发明揭示了一种芯片仿真调试系统,图1为本发明一实施例中芯片仿真调试系统的组成示意图;请参阅图1,在本发明的一实施例中,所述芯片仿真调试系统包括:至少一主设备监测器1或从设备监测器3,以及监测信息采集器5。各主设备监测器1连接对应的主设备7,用以监测对应主设备7对总线的操作;各从设备监测器3连接对应的从设备9,用以监测总线对对应从设备9的操作。监测信息采集器5分别连接各主设备监测器1及各从设备监测器3,用以采集来自主设备监测器1输出的主设备对总线的操作信息以及从设备监测器3输出的总线对从设备的操作信息,并保存到运行状态文件中。在一实施例中,本发明仿为芯片仿真调试系统(如可以是soc仿真调试系统)。

在本发明的一实施例中,所述主设备监测器用以在总线操作开始后记录主设备id,根据操作地址获取从设备id,根据操作过程是读操作还是写操作获取操作符,根据操作过程的数据获取操作数据和操作数据数量,根据操作开始或者操作结束信号获取操作时间,操作结束后等待下一次总线操作。在本发明的一实施例中,所述从设备监测器用以在总线操作开始后,根据当前操作对应的从设备获取从设备id,主设备id设置为不关注状态,根据操作过程是读操作还是写操作获取操作符,根据操作过程的数据获取操作数据和操作数据数量,根据操作开始或者操作结束信号获取操作时间,操作结束后等待下一次总线操作。

图2为本发明一实施例中运行状态文件格式图;请参阅图2,在本发明的一实施例中,运行状态文件的格式可如图2所示,当然也可以根据需要进行调整。

在本发明的一实施例中,所述主设备监测器、从设备监测器输出的一次读操作的信息包括读操作符、读地址、读返回数据、读返回数据数量以及读操作时间;所述主设备监测器、从设备监测器输出的一次写操作的信息包括写操作符、写地址、写数据、写数据数量以及写操作时间。

在本发明的一实施例中,所述系统包括设备id分配模块,用以为每个主设备、从设备分配一个设备id,并保证每个设备id均不相同;每个从设备均有各自的操作地址区间并且相互没有重叠的地址区域。各主设备及各从设备分别连接总线;主设备对总线的一次读操作或写操作以及总线对从设备的一次读操作或写操作被认为是一次操作。每个主设备发出的对总线的操作均接入各自主设备监测器,来自总线对从设备的操作接入从设备监测器。

在本发明的一实施例中,在运行状态文件中,操作编号由监测信息采集器维护,对来自主设备监测器、从设备监测器每一次操作分配一个操作编号,并保证每次操作编号具备唯一性。

在本发明的一实施例中,主设备对总线进行操作的过程,操作地址由主设备发出,根据操作地址所处的操作地址区间确定从设备的设备id,根据发出当前操作的主设备确定主设备id,总线对从设备进行操作的过程,从设备id设置为当前从设备对应的id,主设备id设置为不关注状态,操作符、操作地址、操作数据、操作数据数量、操作时间均来自主设备监测器、从设备监测器的输出信息。

在本发明的一实施例中,仿真结束并生成运行状态文件后,用户能对该文件进行分析,根据调试需求生成用户断点配置文件。

图3为本发明一实施例中用户断点配置文件格式图,图4为本发明一实施例中断点设置过程图;请参阅图3、图4,在一实施例中,断点编号由用户维护,保证每个断点编号的唯一性,将设备id设置任意一个或多个从设备的id或任意id或不存在,将操作标记设置为读操作符或写操作符,将操作地址设置为满足某种特定规律的地址(在本发明的一实施例中,操作地址可以设置为一个具体的地址或者任意地址或某个地址区间内任意地址;也可以是其他满足某种特定规律的操作地址),将操作数据设置为满足某种特定规律的数据(在本发明的一实施例中,可以将操作数据可以设置为一个具体的操作数据或者任意数据或某个区间内任意数据;也可以是其他满足某种特定规律的操作数据),将操作数据数量设置为符合某种特定规律的数据数量(在本发明的一实施例中,可以将操作数据数量设置为一个具体的操作数据的数量或任意数量数据或某个区间内任意数量数据;也可以是其他满足某种特定规律的操作数据数量),将操作时间设置为满足某种特定规律的时间(在本发明的一实施例中,可以将操作时间设置为一个具体的操作时间或任意时间或某个区间内的任意时间,也可以是其他满足某种特定规律的时间)。用户配置文件经过断点生成器分析处理后生成断点配置文件,断点配置文件格式按照仿真工具提供的用于设置断点的用户接口格式要求生成。

本发明揭示一种芯片仿真调试方法,所述芯片仿真调试方法包括:

监测对应主设备对总线的操作;在总线操作开始后记录主设备id,根据操作地址获取从设备id,根据操作过程是读操作还是写操作获取操作符,根据操作过程的数据获取操作数据和操作数据数量,根据操作开始或者操作结束信号获取操作时间,操作结束后等待下一次总线操作;

监测总线对对应从设备的操作;在总线操作开始后,根据当前操作对应的从设备获取从设备id(只获取从设备id,主设备id不关注,总线操作开始后记录从设备id即可),根据操作过程是读操作还是写操作获取操作符,根据操作过程的数据获取操作数据和操作数据数量,根据操作开始或者操作结束信号获取操作时间,操作结束后等待下一次总线操作;

监测信息采集器采集来自主设备监测器输出的主设备对总线的操作信息以及从设备监测器输出的总线对从设备的操作信息,并保存到运行状态文件中。

在本发明的一实施例中,所述芯片仿真调试方法还包括:仿真结束并生成运行状态文件后,用户能对该文件进行分析,根据调试需求生成用户断点配置文件。

在本发明的一实施例中,所述芯片仿真调试方法包括:

步骤s1、根据主设备id的信息选择在对应的主设备监测器中检查主设备总线操作的功能代码处设置断点;当主设备id为任意值的情况下,则在所有主设备监测器均设置断点;当主设备id为某一个或若干个值的情况下,在该id对应的主设备监测器中设置断点;没有主设备id的情况下,则主设备监测器不设置断点;

步骤s2、根据从设备id的信息选择在对应的从设备监测器中检查来自总线操作的功能代码处设置断点;当从设备id为任意值的情况下,则在所有从设备监测器均设置断点;当从设备id为某一个或若干个值的情况下,在该id对应的从设备监测器中设置断点;没有从设备id的情况下,则从设备监测器不设置断点;

步骤s3、根据操作符、操作地址、操作数据、操作数据数量、操作时间设置断点触发条件,所有条件同时成立则断点被触发;操作符触发条件为操作符是读操作或写操作或任意操作,操作地址触发条件为操作地址是某个特定地址或任意地址或满足某种特定规律的地址,操作数据触发条件为操作数据为某个特定数据或任意数据或满足某种特定规律的数据,操作数据数量触发条件为操作数据数量为某个特定值或任意值或满足某种特定规律的数据数量,操作时间触发条件为操作时间为某个特定时间或者任意时间或者满足某种特定规律的时间。

综上所述,本发明提出的仿真调试系统及调试方法,在芯片(如soc等)设计代码、仿真环境代码中根据调试需求不便于设置代码断点定位某些具体的仿真行为的情况下,通过对主设备、从设备监测器具体功能代码处设置断点和断点触发条件,增加了调试断点在仿真过程中满足某些特定条件暂停仿真进行调试的功能。

这里本发明的描述和应用是说明性的,并非想将本发明的范围限制在上述实施例中。这里所披露的实施例的变形和改变是可能的,对于那些本领域的普通技术人员来说实施例的替换和等效的各种部件是公知的。本领域技术人员应该清楚的是,在不脱离本发明的精神或本质特征的情况下,本发明可以以其它形式、结构、布置、比例,以及用其它组件、材料和部件来实现。在不脱离本发明范围和精神的情况下,可以对这里所披露的实施例进行其它变形和改变。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1