本发明涉及网络通信领域,尤其涉及一种提高协同仿真平台验证效率的方法及系统。
背景技术:
如图1所示,为现有技术中的协同仿真架构图,其为一种芯片级的协同仿真操作平台,在该协同仿真平台下,对于待测试芯片而言,对其所有的功能,仅能够做一次芯片级协同仿真;然而,随着芯片规模的提高,协同仿真中的调试难度越来越高,该种架构不适宜科技的发展。
进一步的,为了降低调试难度,在协同仿真前期,结合图2所示,根据待测试芯片的功能将整个待测试芯片划分为一个个子系统,作为芯片功能参照的C模型也会按照同样的方式进行划分,通过这种层次化的验证方式,各个子系统之间的调试工作可以并行完成,并通过子系统阶段或者模块级的调试提前发现问题,减少后期芯片级仿真的工作量,因为相同的问题所在的层级越低其调试难度越低,从而提高协同仿真验证效率。
上述对待测试芯片进行划分后,所述待测试芯片形成了芯片级,子系统级和模块级等层级结构;现有技术中,对应该种层级结构的待测试芯片的协同仿真平台中,需要为每一个待测的子系统和模块分别产生激励,很难保证同一个测试用例在不同级别的系统测试中的一致性,并在验证过程中,需要增加大量的重复工作量,验证效率低下。
技术实现要素:
本发明的目的在于提供一种提高协同仿真平台验证效率的方法及系统。
为实现上述目的之一,本发明一实施方式的提高协同仿真平台验证效率的方法,所述方法包括:建立协同仿真平台,所述协同仿真平台包括:待测试芯片以及对应所述待测试芯片建立的C模型;
所述待测试芯片包括:根据其功能将其划分的若干个功能单元;
所述C模型包括:对应待测试芯片的各个功能单元、依次形成的若干个仿真测试子模型,每个仿真测试子模型一一对应待测试芯片的各个功能单元;
向所述待测试芯片和所述C模型同时发送同一个测试激励;
仿真过程中,每个仿真测试子模型均独立输出仿真结果;
根据中间结果仿真逻辑,以及当前所述仿真测试子模型相邻的下一个仿真测试子模型,将当前所述仿真测试子模型对应的仿真结果的格式转换为与其相邻的仿真子模型所需求的输入测试激励的相同的格式,以作为其相邻的仿真子模型以及相邻的仿真子模型对应的所述功能单元的输入测试激励。
作为本发明一实施方式的进一步改进,所述待测试芯片被划分为子系统级别的层级结构,所述功能单元一一对应所述待测试芯片的各个子系统。
作为本发明一实施方式的进一步改进,所述待测试芯片被划分为模块级别的层级结构,所述功能单元一一对应所述待测试芯片的各个子模块。
作为本发明一实施方式的进一步改进,所述方法还包括:
当前仿真测试子模型以及与其对应的功能单元均输出仿真结果后,判断当前仿真测试子模型的仿真结果与对应所述功能单元的仿真结果是否相同;
若相同,判断当前待测试芯片的功能单元通过验证;
若不同,判断当前待测试芯片的功能单元未能通过验证。
作为本发明一实施方式的进一步改进,所述方法还包括:
若判断当前仿真测试子模型的仿真结果与对应所述功能单元的仿真结果不相同,则结束仿真,并输出报错信息。
为实现上述目的之一,本发明一实施方式的提高协同仿真平台验证效率的系统,所述系统包括:模型构建模块,用于建立协同仿真平台,所述协同仿真平台包括:待测试芯片以及对应所述待测试芯片建立的C模型;
所述待测试芯片包括:根据其功能将其划分的若干个功能单元;
所述C模型包括:对应待测试芯片的各个功能单元、依次形成的若干个仿真测试子模型,每个仿真测试子模型一一对应待测试芯片的各个功能单元;
激励发送模块,用于向所述待测试芯片和所述C模型同时发送同一个测试激励;
处理模块,用于在仿真过程中,使每个仿真测试子模型均独立输出仿真结果;
根据中间结果仿真逻辑,以及当前所述仿真测试子模型相邻的下一个仿真测试子模型,将当前所述仿真测试子模型对应的仿真结果的格式转换为与其相邻的仿真子模型所需求的输入测试激励的相同的格式,以作为其相邻的仿真子模型以及相邻的仿真子模型对应的所述功能单元的输入测试激励。
作为本发明一实施方式的进一步改进,所述待测试芯片被划分为子系统级别的层级结构,所述功能单元一一对应所述待测试芯片的各个子系统。
作为本发明一实施方式的进一步改进,所述待测试芯片被划分为模块级别的层级结构,所述功能单元一一对应所述待测试芯片的各个子模块。
作为本发明一实施方式的进一步改进,所述系统还包括:比对模块,用于在当前仿真测试子模型以及与其对应的功能单元均输出仿真结果后,判断当前仿真测试子模型的仿真结果与对应所述功能单元的仿真结果是否相同;
若相同,判断当前待测试芯片的功能单元通过验证;
若不同,判断当前待测试芯片的功能单元未能通过验证。
作为本发明一实施方式的进一步改进,所述比对模块还用于:若判断当前仿真测试子模型的仿真结果与对应所述功能单元的仿真结果不相同,
则结束仿真,并输出报错信息。
与现有技术相比,本发明的有益效果是:本发明的提高协同仿真平台验证效率的方法及系统,对芯片进行划分形成各个功能单元,同时,将C模型划分为对应各个功能单元的仿真测试子模型,如此,以降低测试过程中的调试难度,同时,在仿真过程中,按照特定的格式保存上一个仿真测试子模型的仿真结果,以使各个仿真测试子模型的仿真结果通用于芯片级、子系统以及模块的协同仿真验证激励,提高验证效率,减少重复工作量,并保证同一测试用例的一致性。
附图说明
图1是现有技术一种实施方式的协同仿真平台的架构示意图;
图2是现有技术中另一种实施方式的协同仿真平台的架构示意图;
图3是本发明一实施方式中提高协同仿真平台验证效率的方法的流程示意图;
图4是本发明一实施方式中提高协同仿真平台验证效率的系统的模块示意图;
图5A是本发明一具体示例中协同仿真平台架构示意图;
图5B至图5D是采用图5A所示协同仿真平台架构C模型中其中一个子仿真模型的实现过程示意图。
具体实施方式
以下将结合附图所示的具体实施方式对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。
如图1所示,本发明一实施方式中,提高协同仿真平台验证效率的方法,所述方法包括:
S1、建立协同仿真平台,所述协同仿真平台包括:待测试芯片以及对应所述待测试芯片建立的C模型;所述待测试芯片包括:根据其功能将其划分的若干个功能单元;所述C模型包括:对应待测试芯片的各个功能单元、依次形成的若干个仿真测试子模型,每个仿真测试子模型一一对应待测试芯片的各个功能单元。
本发明一优选实施方式中,所述待测试芯片被划分为子系统级别的层级结构,所述功能单元一一对应所述待测试芯片的各个子系统。
本发明一优选实施方式中,所述待测试芯片被划分为模块级别的层级结构,所述功能单元一一对应所述待测试芯片的各个子模块。
进一步的,本发明一实施方式中,所述方法还包括:S2、向所述待测试芯片和所述C模型同时发送同一个测试激励。
本发明具体实施方式中,待测试芯片的验证过程,通常会根据用户需求,分别对于一个待测试芯片的整体、各个子系统以及各个子模块分别进行一次验证;在现有技术中,对于同一待测试芯片,当对芯片的整体进行验证时,对其整体发送一个测试激励;对于各个子系统验证时,需要分别对应每个子系统配置不同的测试激励;而对于各个模块的验证时,同样需要分别对应每个模块配置不同的测试激励;如此,导致将待测试芯片划分为层级化的结构后,其各个测试用例不一致,验证效率低下;而本发明中,当芯片被划分为子系统级别的层级结构或划分为模块级别的层级结构后,在对待测试芯片进行验证过程中,仅需要验证开始时,提供一次测试激励,便可以分别对同一待测试芯片的不同验证级别分别做仿真测试,以下将会详细描述。
进一步的,本发明一实施方式中,所述方法还包括:S3、仿真过程中,每个仿真测试子模型均独立输出仿真结果;
根据中间结果仿真逻辑,以及当前所述仿真测试子模型相邻的下一个仿真测试子模型,将当前所述仿真测试子模型对应的仿真结果的格式转换为与其相邻的仿真子模型所需求的输入测试激励的相同的格式,以作为其相邻的仿真子模型以及相邻的仿真子模型对应的所述功能单元的输入测试激励。如此,针对某一测试用例,可以保证输入给各级仿真测试子模型以及其对应的功能单元的测试激励保持一致性。
为了便于理解,结合图5A所示,以网络交换芯片为例描述一具体示例,以便于理解本发明。
该示例下,所述交换芯片被划分为子系统级别的层级结构,所述功能单元一一对应所述交换芯片的各个子系统,所述交换芯片的对应的各个子系统依次为:子系统A1、子系统A2……子系统An;所述C模型包括:对应交换芯片的各个子系统依次形成的仿真测试子模型,各个仿真测试子模型依次为:仿真测试子模型A1、仿真测试子模型A2……仿真测试子模型An;所述交换芯片中各个子系统传递报文数据。
向所述交换芯片和所述C模型同时发送同一个测试激励A1,该测试激励为报文数据。
仿真过程中,结合体图5B所示,仿真测试子模型A1以及子系统A1同时接收该测试激励A1,并分别输出仿真结果B1、C1;仿真结果B1如图B所示;进一步的,解析与当前仿真测试子模型A1相邻的仿真测试子模型A2所需求的测试激励的格式;根据中间结果转换逻辑将B1的格式转换为与测试子模型A2所需求的相同格式的测试激励S1;该示例下,仿真测试子模型A2所需求的测试激励S1的格式如图5C所示;进一步的,将测试激励S1同时作为仿真测试子模型A2以及子系统A2的测试激励。相应的,将测试激励S1输入到对应仿真测试子模型A2以及子系统A2的激励发生器,该测试激励S1经所述激励发生器的处理后输出如图5D所示的结果,该结果可同时被仿真测试子模型A2以及子系统A2读取,以进行仿真测试。如此循环,保证各级仿真测试子模型以及对应交换芯片的子系统的各级测试用例保持一致,提高验证效率。
进一步的,本发明一实施方式中,所述方法还包括:S4、当前仿真测试子模型以及与其对应的功能单元均输出仿真结果后,判断当前仿真测试子模型的仿真结果与对应所述功能单元的仿真结果是否相同;若相同,判断当前待测试芯片的功能单元通过验证;若不同,判断当前待测试芯片的功能单元未能通过验证。
本发明优选实施方式中,若判断当前仿真测试子模型的仿真结果与对应所述功能单元的仿真结果不相同,则结束仿真,并输出报错信息。
接续上述示例:将仿真测试子模型A1以及子系统A1分别输出仿真结果B1、C1进行对比,若B1、C1的结果相同,说明交换芯片的子系统A1通过验证,若不同,判断子系统A1未能通过验证;该示例中,若判断当前仿真测试子模型的仿真结果与对应所述功能单元的仿真结果不相同,则结束仿真,并输出报错信息。如此,若交换芯片在设计过程中存在错误,则在验证的初始阶段即可以发出报错信息,节约验证的成本,易于验证错误发生的位置。
结合图4所示,本发明一实施方式,提供的提高协同仿真平台验证效率的系统包括:模型构建模块100、激励发送模块200、处理模块300、比对模块400。
建立协同仿真平台100,用于建立协同仿真平台,所述协同仿真平台包括:待测试芯片以及对应所述待测试芯片建立的C模型;所述待测试芯片包括:根据其功能将其划分的若干个功能单元;所述C模型包括:对应待测试芯片的各个功能单元、依次形成的若干个仿真测试子模型,每个仿真测试子模型一一对应待测试芯片的各个功能单元。
本发明一优选实施方式中,所述待测试芯片被划分为子系统级别的层级结构,所述功能单元一一对应所述待测试芯片的各个子系统。
本发明一优选实施方式中,所述待测试芯片被划分为模块级别的层级结构,所述功能单元一一对应所述待测试芯片的各个子模块。
进一步的,本发明一实施方式中,激励发送模块200用于向所述待测试芯片和所述C模型同时发送同一个测试激励。
本发明具体实施方式中,待测试芯片的验证过程,通常会根据用户需求,分别对于一个待测试芯片的整体、各个子系统以及各个子模块分别进行一次验证;在现有技术中,对于同一待测试芯片,当对芯片的整体进行验证时,对其整体发送一个测试激励;对于各个子系统验证时,需要分别对应每个子系统配置不同的测试激励;而对于各个模块的验证时,同样需要分别对应每个模块配置不同的测试激励;如此,导致将待测试芯片划分为层级化的结构后,其各个测试用例不一致,验证效率低下;而本发明中,当芯片被划分为子系统级别的层级结构或划分为模块级别的层级结构后,在对待测试芯片进行验证过程中,仅需要验证开始时,提供一次测试激励,便可以分别对同一待测试芯片的不同验证级别分别做仿真测试,以下将会详细描述。
进一步的,本发明一实施方式中,处理模块300用于在仿真过程中,使每个仿真测试子模型均独立输出仿真结果;根据中间结果仿真逻辑,以及当前所述仿真测试子模型相邻的下一个仿真测试子模型,将当前所述仿真测试子模型对应的仿真结果的格式转换为与其相邻的仿真子模型所需求的输入测试激励的相同的格式,以作为其相邻的仿真子模型以及相邻的仿真子模型对应的所述功能单元的输入测试激励。如此,针对某一测试用例,可以保证输入给各级仿真测试子模型以及其对应的功能单元的测试激励保持一致性。
为了便于理解,结合图5A所示,以网络交换芯片为例描述一具体示例,以便于理解本发明。
该示例下,所述交换芯片被划分为子系统级别的层级结构,所述功能单元一一对应所述交换芯片的各个子系统,所述交换芯片的对应的各个子系统依次为:子系统A1、子系统A2……子系统An;所述C模型包括:对应交换芯片的各个子系统依次形成的仿真测试子模型,各个仿真测试子模型依次为:仿真测试子模型A1、仿真测试子模型A2……仿真测试子模型An;所述交换芯片中各个子系统传递报文数据。
向所述交换芯片和所述C模型同时发送同一个测试激励A1,该测试激励为报文数据。
仿真过程中,结合体图5B所示,仿真测试子模型A1以及子系统A1同时接收该测试激励A1,并分别输出仿真结果B1、C1;仿真结果B1如图B所示;进一步的,解析与当前仿真测试子模型A1相邻的仿真测试子模型A2所需求的测试激励的格式;根据中间结果转换逻辑将B1的格式转换为与测试子模型A2所需求的相同格式的测试激励S1;该示例下,仿真测试子模型A2所需求的测试激励S1的格式如图5C所示;进一步的,将测试激励S1同时作为仿真测试子模型A2以及子系统A2的测试激励。相应的,将测试激励S1输入到对应仿真测试子模型A2以及子系统A2的激励发生器,该测试激励S1经所述激励发生器的处理后输出如图5D所示的结果,该结果可同时被仿真测试子模型A2以及子系统A2读取,以进行仿真测试。如此循环,保证各级仿真测试子模型以及对应交换芯片的子系统的各级测试用例保持一致,提高验证效率。
进一步的,本发明一实施方式中,比对模块400用于:当前仿真测试子模型以及与其对应的功能单元均输出仿真结果后,判断当前仿真测试子模型的仿真结果与对应所述功能单元的仿真结果是否相同;若相同,判断当前待测试芯片的功能单元通过验证;若不同,判断当前待测试芯片的功能单元未能通过验证。
本发明优选实施方式中,若判断当前仿真测试子模型的仿真结果与对应所述功能单元的仿真结果不相同,则结束仿真,并输出报错信息。
接续上述示例:将仿真测试子模型A1以及子系统A1分别输出仿真结果B1、C1进行对比,若B1、C1的结果相同,说明交换芯片的子系统A1通过验证,若不同,判断子系统A1未能通过验证;该示例中,若判断当前仿真测试子模型的仿真结果与对应所述功能单元的仿真结果不相同,则结束仿真,并输出报错信息。如此,若交换芯片在设计过程中存在错误,则在验证的初始阶段即可以发出报错信息,节约验证的成本,易于验证错误发生的位置。
综上所述,本发明的提高协同仿真平台验证效率的方法及系统,对芯片进行划分形成各个功能单元,同时,将C模型划分为对应各个功能单元的仿真测试子模型,如此,以降低测试过程中的调试难度,同时,在仿真过程中,按照特定的格式保存上一个仿真测试子模型的仿真结果,以使各个仿真测试子模型的仿真结果通用于芯片级、子系统以及模块的协同仿真验证激励,提高验证效率,减少重复工作量,并保证同一测试用例的一致性。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本发明时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
以上所描述的装置实施方式仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施方式方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。