掌桥专利:专业的专利平台
掌桥专利
首页

验证环境的隔离方法、装置、电子设备及存储介质

文献发布时间:2024-04-18 19:58:26


验证环境的隔离方法、装置、电子设备及存储介质

技术领域

本公开涉及集成电路技术领域,尤其涉及一种验证环境的隔离方法、装置、电子设备及存储介质。

背景技术

在大规模集成电路的设计过程中,片上系统的总线互联的设计与验证是一个非常重要的环节。通过对系统总线互联进行验证,不仅可以快速扫清总线互联配置的错误,同时也能够快速得出总线在当前互联方式下的带宽和延迟数据,便于对总线互联方式进行调整。

新一代集成电路片上系统功能复杂度提升之后,系统包括的子系统更多,而系统总线互联通常由多个子系统的子总线互联和系统主总线互联组成,因此总线互联方式也越发复杂,会有巨大数量级的通路存在,为了验证到所有数据通路,必须把所有的主机和从机都集成到一个总线互联验证环境中。验证环境类似于了一个复杂的网状结构,需要仿真验证的数据通路数量以及数据通路复杂性会严重拖慢仿真速度,对验证人力和验证进度也是极大的挑战。

发明内容

有鉴于此,本公开提出了一种验证环境的隔离方法、装置、电子设备及存储介质,本公开实施例的验证环境的隔离方法,以子系统为粒度隔离验证环境,使多个子系统总线互联的验证可以并行独立开展,屏蔽不同子系统之间的影响,节约人力成本,提升验证效率。

根据本公开的一方面,提供了一种验证环境的隔离方法,所述方法用于对验证环境进行隔离,所述验证环境是用于对系统的总线互联方式的正确性进行验证的环境,所述系统包括X个子系统,X是大于1的整数,每个子系统包括至少一个主机和/或至少一个从机,每个主机/从机对应一个验证IP,所述方法包括:针对每个子系统,分别构建与所述子系统对应的宏文件,所述宏文件包括与所述子系统相关联的验证IP的连接组件,且不包括与所述子系统不关联的验证IP的连接组件;关闭所述系统中与所述宏文件包括的连接组件无关的验证IP;在仿真命令中添加Y个子系统对应的宏文件,1<Y≤X,Y是整数;执行所述仿真命令时,并行执行所述Y个子系统对应的宏文件,得到与所述Y个子系统分别对应的Y个执行结果,所述执行结果指示对应的子系统的总线互联方式的正确性。

在一种可能的实现方式中,所述关闭所述系统中与所述宏文件包括的连接组件无关的验证IP之前,所述方法还包括:将所述系统包括的所有主机和所有从机的信息导入全局数据库;所述关闭所述系统中与所述宏文件包括的连接组件无关的验证IP,包括:调用所述全局数据库中的多个方法对象,关闭所述系统中与所述宏文件包括的连接组件无关的验证IP。

在一种可能的实现方式中,所述验证IP的开关状态预设为开启状态,所述调用所述全局数据库中的多个方法对象,关闭所述系统中与所述宏文件包括的连接组件无关的验证IP,包括:根据与所述宏文件包括的连接组件无关的、带有正则匹配的标识的第一名称,调用第一方法对象,将与所述第一名称关联的所有验证IP的开关状态设置为关闭状态;调用第二方法对象,更新所述全局数据库中所述第一名称关联的验证IP的开关状态;调用第三方法对象,根据验证IP名称遍历查询所述全局数据库中所有验证IP的开关状态,建立开关状态设置为开启状态的验证IP;其中,所述第一名称,包括所述子系统的名称、所述主机的名称、所述从机的名称、所述主机所支持的总线协议类型、所述从机所支持的总线协议类型中的至少一个。

在一种可能的实现方式中,所述验证IP的开关状态预设为开启状态,所述调用所述全局数据库中的多个方法对象,关闭所述系统中与所述宏文件包括的连接组件无关的验证IP,包括:根据与所述宏文件包括的连接组件无关的、不带有正则匹配的标识的第二名称,调用第一方法对象,将与所述第二名称关联的所有验证IP的开关状态设置为关闭状态;调用第三方法对象,根据验证IP名称遍历查询所述全局数据库中所有验证IP的开关状态,建立开关状态设置为开启状态的验证IP;其中,所述第二名称,包括所述主机的名称、所述从机的名称中的至少一个。

在一种可能的实现方式中,所述所有主机和所有从机的信息,包括主机所支持的总线协议类型、从机所支持的总线协议类型、位宽、突发类型、主机的验证IP的开关状态、从机的验证IP的开关状态。

在一种可能的实现方式中,所述与所述子系统相关联的验证IP的连接组件,包括:与所述子系统包括的每一主机和所述主机支持的总线协议类型均关联的连接组件;以及与所述子系统包括的主机可访问的每一从机和所述从机支持的总线协议类型均关联的连接组件。

在一种可能的实现方式中,所述总线协议类型包括高级可扩展接口AXI类型、高级外围总线APB类型、高级高性能总线AHB类型。

根据本公开的另一方面,提供了一种验证环境的隔离装置,所述装置用于对验证环境进行隔离,所述验证环境是用于对系统的总线互联方式的正确性进行验证的环境,所述系统包括X个子系统,X是大于1的整数,每个子系统包括至少一个主机和/或至少一个从机,每个主机/从机对应一个验证IP,所述装置包括:定义模块,用于针对每个子系统,分别构建与所述子系统对应的宏文件,所述宏文件包括与所述子系统相关联的验证IP的连接组件,且不包括与所述子系统不关联的验证IP的连接组件;关闭模块,用于关闭所述系统中与所述宏文件包括的连接组件无关的验证IP;添加模块,用于在仿真命令中添加Y个子系统对应的宏文件,1<Y≤X,Y是整数;执行所述仿真命令时,并行执行所述Y个子系统对应的宏文件,得到与所述Y个子系统分别对应的Y个执行结果,所述执行结果指示对应的子系统的总线互联方式的正确性。

在一种可能的实现方式中,所述装置还包括:导入模块,用于将所述系统包括的所有主机和所有从机的信息导入全局数据库;所述关闭模块具体用于:调用所述全局数据库中的多个方法对象,关闭所述系统中与所述宏文件包括的连接组件无关的验证IP。

在一种可能的实现方式中,所述验证IP的开关状态预设为开启状态,所述调用所述全局数据库中的多个方法对象,关闭所述系统中与所述宏文件包括的连接组件无关的验证IP,包括:根据与所述宏文件包括的连接组件无关的、带有正则匹配的标识的第一名称,调用第一方法对象,将与所述第一名称关联的所有验证IP的开关状态设置为关闭状态;调用第二方法对象,更新所述全局数据库中所述第一名称关联的验证IP的开关状态;调用第三方法对象,根据验证IP名称遍历查询所述全局数据库中所有验证IP的开关状态,建立开关状态设置为开启状态的验证IP;其中,所述第一名称,包括所述子系统的名称、所述主机的名称、所述从机的名称、所述主机所支持的总线协议类型、所述从机所支持的总线协议类型中的至少一个。

在一种可能的实现方式中,所述验证IP的开关状态预设为开启状态,所述调用所述全局数据库中的多个方法对象,关闭所述系统中与所述宏文件包括的连接组件无关的验证IP,包括:根据与所述宏文件包括的连接组件无关的、不带有正则匹配的标识的第二名称,调用第一方法对象,将与所述第二名称关联的所有验证IP的开关状态设置为关闭状态;调用第三方法对象,根据验证IP名称遍历查询所述全局数据库中所有验证IP的开关状态,建立开关状态设置为开启状态的验证IP;其中,所述第二名称,包括所述主机的名称、所述从机的名称中的至少一个。

在一种可能的实现方式中,所述所有主机和所有从机的信息,包括主机所支持的总线协议类型、从机所支持的总线协议类型、位宽、突发类型、主机的验证IP的开关状态、从机的验证IP的开关状态。

在一种可能的实现方式中,所述与所述子系统相关联的验证IP的连接组件,包括:与所述子系统包括的每一主机和所述主机支持的总线协议类型均关联的连接组件;以及与所述子系统包括的主机可访问的每一从机和所述从机支持的总线协议类型均关联的连接组件。

在一种可能的实现方式中,所述总线协议类型包括高级可扩展接口AXI类型、高级外围总线APB类型、高级高性能总线AHB类型。

根据本公开的另一方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述方法。

根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述方法。

根据本公开的另一方面,提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。

根据本公开实施例的验证环境的隔离方法,在系统包括X个子系统(X是大于1的整数)且每个子系统包括至少一个主机和/或至少一个从机时,针对每个子系统,分别构建与子系统对应的宏文件,使得宏文件包括与所述子系统相关联的验证IP的连接组件,且不包括与子系统不关联的验证IP的连接组件,实现仿真隔离;通过关闭系统中与宏文件包括的连接组件无关的验证IP,实现数据隔离;在仿真命令中添加Y个子系统对应的宏文件(1<Y≤X,Y是整数),使得执行仿真命令时,并行执行Y个子系统对应的宏文件,得到与Y个子系统分别对应的Y个执行结果,执行结果指示对应的子系统的总线互联方式的正确性。本公开实施例的验证环境的隔离方法,以子系统为粒度,通过仿真隔离和数据隔离使得Y个子系统的验证环境分别隔离,使多个子系统总线互联的验证可以并行独立开展,屏蔽不同子系统之间的影响,节约人力成本,提升验证效率。

根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。

附图说明

包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。

图1示出现有技术在进行系统总线互联验证时设置的验证环境。

图2示出根据本公开实施例的验证环境的隔离方法的示例性应用场景。

图3示出根据本公开实施例的验证环境的隔离方法的示例性应用场景。

图4示出根据本公开实施例的全局数据库的示例性结构。

图5示出根据本公开实施例的验证环境的隔离方法的流程的示意图。

图6示出本公开实施例采用仿真隔离和数据隔离后的效果的示例。

图7示出本公开实施例采用仿真隔离和数据隔离后的效果的示例。

图8示出根据本公开实施例的验证环境的隔离方法的流程的示意图。

图9示出根据本公开实施例的连接组件的示意图。

图10示出根据本公开实施例的验证环境的隔离装置的结构的示意图。

图11示出根据本公开实施例的装置1900的框图。

具体实施方式

以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。

在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。

另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。

图1示出现有技术在进行系统总线互联验证时设置的验证环境。

该现有技术在总线上下游的主机和从机上设置验证IP(VerificationIntellectual Property,VIP),通过验证IP来发出标准协议内各种组合的随机激励。此时需要验证的可以是主机的验证IP和从机的验证IP之间的数据通路(连接组件)。

如图1所示,系统包括子系统SS_NOC_1、SS_NOC_2、SS_NOC_n、SS_NOC_m,该验证环境包括属于子系统SS_NOC_1的主机1的验证IP MST_1和从机1的验证IP SLV_1、属于子系统SS_NOC_2的主机2的验证IP MST_2和从机2的验证IP SLV_2、属于子系统SS_NOC_n的主机n的验证IP MST_n和从机n的验证IP SLV_n、属于子系统SS_NOC_m的主机m的验证IP MST_m和从机m的验证IP SLV_m。每个主机的验证IP与自己所在子系统中的从机的验证IP之间均存在数据通路,并且每个主机的验证IP与其他子系统中的从机的验证IP之间(途径主总线MAIN_NOC)也存在数据通路,因此形成如图1所示的全互联的网状结构的验证环境。

这种验证环境有如下几点缺点:

(1)验证时所有主机的验证IP和所有从机的验证IP都需要编译,验证速度慢;

(2)单个子系统的总线互联验证可能会受其他子系统中验证IP的影响。例如图1中,对于主机的验证IP MST_1来说,其与其他主机的验证IP MST_2/MST_m/MST_n都不相关,但是如果其他主机的验证IP MST_2/MST_m/MST_n出现错误,验证环境就会报错,使得本身没有错误的验证IP MST_1的验证也无法继续。

(2)当多用户同时基于一个验证环境进行验证时,不可避免的会修改同一个环境组件,对于某个用户来说正确的设置,对于其他用户来说可能错误,导致出现(2)的情况。

有鉴于此,本公开提出了一种验证环境的隔离方法、装置、电子设备及存储介质,本公开实施例的验证环境的隔离方法,以子系统为粒度隔离验证环境,使多个子系统总线互联的验证可以并行独立开展,屏蔽不同子系统之间的影响,节约人力成本,提升验证效率。

图2和图3示出根据本公开实施例的验证环境的隔离方法的示例性应用场景。

如图2所示,该应用场景中,系统包括总线以及连接总线的多个主机(master)、多个从机(slave)。

总线可包括主总线和子总线。系统可包括多个子系统,多个子系统通过子总线连接在主总线上。每个子系统中可能包括若干主机和/或若干从机。其中主机可以是硬件装置也可以是软件模块,例如中央处理器(central processing unit,CPU)、使用高速外围组件互联(peripheral component interconnect express,PCIE)协议的模块、使用通用串行总线(universal serial bus,USB)协议的模块等等。从机可以是硬件装置也可以是软件模块,如双倍速率(double data rate,DDR)同步动态随机存储器、静态随机存取存储器(static random-access memory,SRAM)等等。

每个主机可访问至少一个从机。每个从机可访问系统的至少一个地址空间。

参见图2,系统可包括主机1、主机2、主机n、主机m,从机1、从机2、从机n、从机m。主机1和从机1属于子系统SS_NOC_1,主机2和从机2属于子系统SS_NOC_2,主机n和从机n属于子系统SS_NOC_n,主机m和从机m属于子系统SS_NOC_m。其中每个主机都分别可访问从机1、从机2、从机n、从机m。对于该子系统,如按照现有技术的方式生成验证环境,则生成的验证环境的示例可以参见图1。

如图3所示,用户的需求可以是验证总线互联的设置方式是否能够满足某个主机可成功访问某个地址空间,并将填写好的、与系统总线互联验证相关的文件(未示出)存储在存储器中。

处理器可从存储器处获取用户填写好的文件。用户填写好的文件可能有多个,不同文件的格式可能不是统一的,也不能被验证环境所识别。对此,处理器可以将获取到的文件转换为预定义的数据格式,使得格式转换后的文件的格式统一且能够被验证环境所识别。

之后,处理器可基于格式转换后的文件生成验证IP的连接组件以及全局数据库。主机的验证IP的连接组件包括主机与总线连接的接口,从机的验证IP的连接组件包括从机与总线连接的接口。连接组件可使得主机/从机的验证IP与总线相连接,从而通过连接组件和总线使得主机和从机的验证IP可通信。全局数据库包括多个资源池以及至少一个方法对象,不同的资源池之间互相隔离。图4示出根据本公开实施例的全局数据库的示例性结构。参见图4,其中资源池用于存储基于格式转换后的文件解析得到的与系统总线互联验证相关的数据。方法对象定义了查询资源池的方法。

处理器根据连接组件和全局数据库可以生成测试用例和验证环境。本公开实施例的验证环境的隔离方法在生成测试用例和验证环境时使用。执行本公开实施例的验证环境的隔离方法,能够以子系统为粒度隔离验证环境,并在测试用例中也增加对子系统不相关的验证IP的关闭步骤,在执行测试用例时,将激励信号输入相应子系统的验证环境,因此针对每个子系统的总线互联验证可以并行进行,根据验证环境输出的执行结果的比对结果,即可确定子系统的系统总线互联下的数据通路进行验证,进而确定子系统总线设置方式的正确性。通过对所有子系统对应的验证环境输出的执行结果的比对结果,可进一步确定系统整体的总线设置方式的正确性。

图5示出根据本公开实施例的验证环境的隔离方法的流程的示意图。

如图5所示,所述方法用于对验证环境进行隔离,验证环境是用于对系统的总线互联方式的正确性进行验证的环境,系统包括X个子系统,X是大于1的整数,每个子系统包括至少一个主机和/或至少一个从机,每个主机/从机对应一个验证IP,所述方法包括:

步骤S51,针对每个子系统,分别构建与子系统对应的宏文件,宏文件包括与子系统相关联的验证IP的连接组件,且不包括与子系统不关联的验证IP的连接组件;

步骤S52,关闭系统中与宏文件包括的连接组件无关的验证IP;

步骤S53,在仿真命令中添加Y个子系统对应的宏文件,1<Y≤X,Y是整数;

执行仿真命令时,并行执行Y个子系统对应的宏文件,得到与Y个子系统分别对应的Y个执行结果,执行结果指示对应的子系统的总线互联方式的正确性。

举例来说,系统的示例性结构可以参见图2及相关描述。对验证环境进行隔离,可包括仿真隔离和数据隔离两部分。

其中,仿真隔离可通过步骤S51实现。针对每个子系统,分别构建与子系统对应的宏文件,并且宏文件仅包括与子系统相关联的验证IP的连接组件,且不包括与子系统不关联的验证IP的连接组件。在此情况下,该宏文件被执行时,仅会调用与该子系统相关联的验证IP的连接组件,屏蔽其他不相关的验证IP的连接组件。

例如对于高速外围组件互联(Peripheral Component Interconnect Express,PCIE)子系统来说,其包括的主机A1除了访问其包括的从机A2外,还要访问图形处理器(Graphics Processing Unit,GPU)子系统的从机B2,则构建与子系统对应的宏文件时,可使得PCIE子系统对应的宏文件包括与PCIE子系统相关联的主机A1的验证IP的连接组件、从机A2的验证IP的连接组件、从机B2的验证IP的连接组件,GPU子系统的主机B1可以是与PCIE子系统不关联的主机,因此PCIE子系统对应的宏文件可不包括主机B1的验证IP的连接组件。

数据隔离可通过步骤S52实现,其目的是关闭系统中与宏文件包括的连接组件无关的验证IP。图6和图7示出本公开实施例采用仿真隔离和数据隔离后的效果的示例。

在子系统的结构及访问关系如图2所示时,在图6的示例中,针对子系统SS_NOC_1进行验证,主机1的验证IP MST_1、主机1可访问的从机的验证IP(SLV_1、SLV_2、SLV_n、SLV_m)与子系统SS_NOC_1对应的宏文件有关,主机2的验证IP MST_2、主机n的验证IP MST_n、主机m的验证IP MST_m与子系统SS_NOC_1对应的宏文件无关。

对验证环境进行隔离后,只有主机1的验证IP MST_1和主机1可访问的从机的验证IP(SLV_1、SLV_2、SLV_n、SLV_m)之间的数据通路(连接组件)有效,其他数据通路(连接组件)无效;只有主机1的验证IP MST_1、主机1可访问的从机的验证IP(SLV_1、SLV_2、SLV_n、SLV_m)建立,其他的主机2的验证IP MST_2、主机n的验证IP MST_n、主机m的验证IP MST_m均被关闭。

在子系统的结构及访问关系如图2所示时,在图7的示例中,针对子系统SS_NOC_2进行验证,主机2的验证IP MST_2、主机2可访问的从机的验证IP(SLV_1、SLV_2、SLV_n、SLV_m)与子系统SS_NOC_2对应的宏文件有关,主机1的验证IP MST_2、主机n的验证IP MST_n、主机m的验证IP MST_m与子系统SS_NOC_2对应的宏文件无关。

对验证环境进行隔离后,只有主机2的验证IP MST_2和主机2可访问的从机的验证IP(SLV_1、SLV_2、SLV_n、SLV_m)之间的数据通路(连接组件)有效,其他数据通路(连接组件)无效;只有主机2的验证IP MST_2、主机2可访问的从机的验证IP(SLV_1、SLV_2、SLV_n、SLV_m)建立,其他的主机1的验证IP MST_1、主机n的验证IP MST_n、主机m的验证IP MST_m均被关闭。

完成仿真隔离和数据隔离之后,可以执行步骤S53,在仿真命令中添加Y个子系统对应的宏文件,其中1<Y≤X,Y是整数,也即,添加与部分或者全部子系统对应的宏文件。Y个子系统可根据用户指示从X个子系统中选择。之后在执行仿真命令时,可并行执行Y个子系统对应的宏文件,最终得到与Y个子系统分别对应的Y个执行结果,每个执行结果可指示对应的子系统的总线互联方式的正确性。示例性地,执行结果中可包括主机侧的执行结果和从机侧的执行结果,通过对主机侧的执行结果和从机侧的执行结果进行比对可以得到比对结果,比对结果可指示子系统的总线互联方式的正确性。

根据本公开实施例的验证环境的隔离方法,在系统包括X个子系统(X是大于1的整数)且每个子系统包括至少一个主机和/或至少一个从机时,针对每个子系统,分别构建与子系统对应的宏文件,使得宏文件包括与所述子系统相关联的验证IP的连接组件,且不包括与子系统不关联的验证IP的连接组件,实现仿真隔离;通过关闭系统中与宏文件包括的连接组件无关的验证IP,实现数据隔离;在仿真命令中添加Y个子系统对应的宏文件(1<Y≤X,Y是整数),使得执行仿真命令时,并行执行Y个子系统对应的宏文件,得到与Y个子系统分别对应的Y个执行结果,执行结果指示对应的子系统的总线互联方式的正确性。本公开实施例的验证环境的隔离方法,以子系统为粒度,通过仿真隔离和数据隔离使得Y个子系统的验证环境分别隔离,使多个子系统总线互联的验证可以并行独立开展,屏蔽不同子系统之间的影响,节约人力成本,提升验证效率。

在所有的子系统的总线互联方式的正确性都验证通过后,可以再将所有的验证IP的开关状态设置为开启状态,并执行与系统对应的宏文件,使得宏文件包括与所有验证IP的连接组件,实现全系统包括的所有主机和从机的验证。

图8示出根据本公开实施例的验证环境的隔离方法的流程的示意图。

如图8所示,在一种可能的实现方式中,步骤S52之前,所述方法还包括:

步骤S54,将系统包括的所有主机和所有从机的信息导入全局数据库;

步骤S52包括:

调用全局数据库中的多个方法对象,关闭系统中与宏文件包括的连接组件无关的验证IP。

举例来说,在步骤S52之前,可以执行步骤S54先将验证涉及到的所有主机和所有从机的信息导入到全局数据库的资源池中。全局数据库可以是预先设置好的、自定义数据格式的数据库,其数据格式可参见图4,信息导入全局数据库的方式可以参见图3及相关描述。参见图4,全局数据库中还可包括预先设置的方法对象,执行步骤S52时,可调用全局数据库中的多个方法对象,关闭系统中与宏文件包括的连接组件无关的验证IP。示例性的关闭方式可以参见下文的进一步描述。

通过全局数据库存储所有主机和从机的信息,通过方法对象实现验证IP的关闭,从而使得验证可自动化完成。本领域技术人员应理解,即便不设置全局数据库,系统总线互联的验证也可以完成,本公开实施例对于是否设置全局数据库不作限制。

在一种可能的实现方式中,所有主机和所有从机的信息,包括主机所支持的总线协议类型、从机所支持的总线协议类型、带宽、突发类型、主机的验证IP的开关状态、从机的验证IP的开关状态。

举例来说,每个主机/从机均可支持一种总线协议类型,不同主机、不同从机可支持不同的总线协议类型。在一种可能的实现方式中,所述总线协议类型包括高级可扩展接口(advanced extensible interface,AXI)类型、高级外围总线(advanced peripheralbus,APB)类型、高级高性能总线(advanced high-performance bus,AHB)类型。其中AXI类型进一步可包括ACE_LITE、AXI4、AXI3等多种类型。AHB类型进一步可包括AHB5、AHB5_Lite等多种类型。APB类型进一步可包括APB2、APB3、APB4等多种类型。

每个主机/从机都包括接口地址位宽、接口数据位宽、接口读/写信号位宽等等多种位宽。每个主机/从机可能支持至少一种突发类型,比如窄带突发、环回突发等等。主机/从机的验证IP的具有开关状态,其中处于开启状态时表示允许被验证,处于关闭状态时表示不允许被验证。被录入全局数据库的所有主机和所有从机的信息,可以包括以上所述的主机所支持的总线协议类型、从机所支持的总线协议类型、带宽、突发类型、主机的验证IP的开关状态、从机的验证IP的开关状态。

可以理解的是,所有主机和所有从机的信息还可以包括更多信息,比如主机/从机的接口激活状态、接口最大突发长度等等也可以录入至全局数据库,只要是与主机和从机有关的信息即可,本公开实施例对于可录入全局数据的信息的具体类型不作限制。

本领域技术人员应理解,以上所述的总线协议类型仅为示例,实际应用中总线协议类型还可以包括更多的类型,只要是总线可支持的协议类型即可,本公开对此不作限制。

在一种可能的实现方式中,与子系统相关联的验证IP的连接组件,包括:

与子系统包括的每一主机和主机支持的总线协议类型均关联的连接组件;

以及与子系统包括的主机可访问的每一从机和从机支持的总线协议类型均关联的连接组件。

举例来说,每个主机/从机都可能支持上述的多种可能的总线协议类型之一,连接组件使得主机/从机的验证IP与总线可连接,通过总线进行路由转换,使得不同总线协议类型的主机和从机之间可以建立数据通路。因此在设置验证IP的连接组件(以下简称连接组件)时,可以针对每个主机,设置与该主机和该主机支持的总线协议类型均关联的连接组件,针对每个从机,设置与该从机和该从机支持的总线协议类型均关联的连接组件。

图9示出根据本公开实施例的连接组件的示意图。

如图9所示,假设对于子系统SS_NOC_1来说,其包括的主机1支持的总线协议类型为AHB类型,其包括的从机1支持的总线协议类型为APB类型,则与主机1和主机1支持的总线协议类型均关联的连接组件可以是连接组件SS1_MST1_AHB。与从机1和从机1支持的总线协议类型均关联的连接组件可以是连接组件SS1_SLV1_APB。

同理,假设对于子系统SS_NOC_2来说,其包括的主机2支持的总线协议类型为AXI类型,其包括的从机2支持的总线协议类型为APB类型,则与主机2和主机2支持的总线协议类型均关联的连接组件可以是连接组件SS2_MST2_AXI。与从机2和从机2支持的总线协议类型均关联的连接组件可以是连接组件SS2_SLV2_APB。

其他子系统关联的连接组件与子系统SS_NOC_1/SS_NOC_2关联的连接组件的设置方式相同,在此不再举例。

为了便于管理,连接组件可以按照其关联的主机/从机所属的子系统和关联的总线协议类型分类存储。例如,如果某个子系统包括多个支持相同总线协议类型的主机,则与这部分主机关联的连接组件可以存储为一类,可以为该类设置标识以指示该子系统的名称、指示该类包括的连接组件是主机的验证IP的连接组件、指示该类关联的总线协议类型。同理,如果某个子系统包括多个支持相同总线协议类型的从机,则与这部分从机关联的连接组件可以存储为一类,可以为该类设置标识以指示该子系统的名称、指示该类包括的连接组件是从机的验证IP的连接组件、指示该类关联的总线协议类型,便于在构建宏文件时按照标识查找。

本领域技术人员应理解,连接组件的存储方式应不止上述示例,只要可以准确查找到需要的连接组件即可,本公开对此不作限制。

在执行步骤S51时,根据子系统的名称、子系统关联的主机和从机的名称、子系统关联的主机和从机支持的总线协议类型,找到对应的连接组件分类,从中获取需要的连接组件即可。比如构建子系统SS_NOC_1对应的宏文件时,可先找到子系统SS_NOC_1的每一主机和每一从机关联的连接组件(包括主机1的验证IP的连接组件和从机1的验证IP的连接组件),添加到子系统SS_NOC_1对应的宏文件中。再从子系统SS_NOC_2关联的连接组件中找到从机2的验证IP的连接组件,从子系统SS_NOC_n关联的连接组件中找到从机n的验证IP的连接组件,从子系统SS_NOC_m关联的连接组件中找到从机m的验证IP的连接组件,分别添加至子系统SS_NOC_1对应的宏文件。此时的验证环境可如图6所示,使得验证环境支持对于主机1相关联的数据通路的全面验证。

全局数据库中预先设置的方法对象有很多。在执行步骤S52时,调用的多个方法对象可以有多种组合。下面介绍调用的多个方法对象的两种可能的组合。

在一种可能的实现方式中,验证IP的开关状态预设为开启状态,

调用全局数据库中的多个方法对象,关闭系统中与宏文件包括的连接组件无关的验证IP,包括:

根据与宏文件包括的连接组件无关的、带有正则匹配的标识的第一名称,调用第一方法对象,将与第一名称关联的所有验证IP的开关状态设置为关闭状态;

调用第二方法对象,更新所述全局数据库中所述第一名称关联的验证IP的开关状态;

调用第三方法对象,根据验证IP名称遍历查询所述全局数据库中所有验证IP的开关状态,建立开关状态设置为开启状态的验证IP;

其中,第一名称,包括子系统的名称、主机的名称、从机的名称、主机所支持的总线协议类型、从机所支持的总线协议类型中的至少一个。

举例来说,所有主机和所有从机的验证IP的开关状态可预设为开启状态。如需对某个子系统的总线互联方式的正确性进行验证,为避免其他无关主机/从机带来影响,可将与该子系统对应的宏文件包括的连接组件无关的验证IP的开关状态设置为关闭状态。

示例性地,可以预先确定与宏文件包括的连接组件无关的、带有正则匹配的标识的第一名称。第一名称可以是子系统的名称、主机的名称、从机的名称、主机所支持的总线协议类型、从机所支持的总线协议类型中的至少一个,正则匹配的标识可例如是“*”。然后在测试用例的建立阶段调用第一方法对象,第一方法对象可以包括用于设置主机的验证IP的开关状态的方法对象set_master_power_st,和用于设置从机的验证IP的开关状态的方法对象set_slave_power_st,将与第一名称关联的所有验证IP的开关状态设置为关闭状态。举例来说,对于子系统SS_NOC_1,在第一名称是SS_NOC_1*时,与第一名称关联的所有验证IP,可包括主机1的验证IP MST_1、从机1的验证IP SLV_1。调用第一方法对象,将与第一名称关联的所有验证IP的开关状态设置为关闭状态。

由于带有正则匹配标识的第一名称无法和全局数据库中的主机/从机的信息匹配,因此可在环境的建立阶段调用第二方法对象,获取到第一名称关联的主机和/或从机的名称,更新全局数据库中第一名称关联的主机和/或从机的验证IP的开关状态。第二方法对象可以包括用于获取第一名称关联的主机的名称,更新全局数据库中第一名称关联的主机的验证IP的开关状态的方法对象update_master_power_st,和用于获取到第一名称关联的从机的名称,更新全局数据库中第一名称关联的从机的验证IP的开关状态的方法对象update_slave_power_st。仍以第一名称是SS_NOC_1*为例,则调用第二方法对象,可获取到第一名称关联的主机1的名称MST1、从机1的名称SLV1。根据获取到的主机1的名称MST1、从机1的名称SLV1,将主机1的验证IP MST_1和从机1的验证IP SLV_1更新为关闭状态即可。

最后可在环境的建立阶段调用第三方法对象,根据验证IP名称遍历查询全局数据库中所有验证IP的开关状态,第三方法对象可以包括用于查询全局数据库中所有开启状态的主机的验证IP的方法对象get_all_canwork_master_name,以及用于查询全局数据库中所有开启状态从机的验证IP的方法对象get_all_canwork_slave_name。之后建立开关状态设置为开启状态的验证IP。系统中与宏文件包括的连接组件无关的验证IP已经被更新为关闭状态,调用第三方法对象时不会被建立,因此实现了系统中与宏文件包括的连接组件无关的验证IP的关闭。

本领域技术人员应理解,第一方法对象、第二方法对象、第三方法对象也可以设置为其他形式,只要调用第一方法对象、第二方法对象、第三方法对象可以实现上述功能即可,本公开实施例对于第一方法对象、第二方法对象、第三方法对象的具体设置方式不作限制。

通过这种方式,可在隔离出的验证环境中关闭与特定的子系统的总线互联验证过程无关的验证IP,并使得隔离过程所需的人工成本较低。

在一种可能的实现方式中,验证IP的开关状态预设为开启状态,

调用全局数据库中的多个方法对象,关闭系统中与宏文件包括的连接组件无关的验证IP,包括:

根据与宏文件包括的连接组件无关的、不带有正则匹配的标识的第二名称,调用第一方法对象,将与第二名称关联的所有验证IP的开关状态设置为关闭状态;

调用第三方法对象,根据验证IP名称遍历查询全局数据库中所有验证IP的开关状态,建立开关状态设置为开启状态的验证IP;

其中,第二名称,包括主机的名称、从机的名称中的至少一个。

举例来说,还可以预先确定与宏文件包括的连接组件无关的、不带有正则匹配的标识的第二名称。第二名称可包括主机的名称、从机的名称中的至少一个。然后在测试用例的建立阶段调用第一方法对象,将与第二名称关联的所有验证IP的开关状态设置为关闭状态。举例来说,如果主机1的名称是MST1,在第二名称是MST1时,与第二名称关联的所有验证IP,可包括主机2的验证IP MST_2。调用第一方法对象,将与第二名称关联的所有验证IP的开关状态设置为关闭状态。

由于第二名称已经能够准确和全局数据库中的主机/从机的信息匹配,因此全局数据库中第二名称匹配的主机/从机的信息可直接被更新,无需再调用第二方法对象对第二名称进一步地展开。之后可在环境的建立阶段直接调用第三方法对象,根据验证IP名称遍历查询全局数据库中所有验证IP的开关状态,建立开关状态设置为开启状态的验证IP。系统中与宏文件包括的连接组件无关的验证IP已经被更新为关闭状态,调用第三方法对象时不会被建立,因此实现了系统中与宏文件包括的连接组件无关的验证IP的关闭。

第一方法对象、第二方法对象、第三方法对象的示例在上文中已描述过,在此不再赘述。

通过这种方式,可在隔离出的验证环境中关闭与特定的子系统的总线互联验证过程无关的验证IP,并使得隔离过程所需的数据处理成本较低。

本领域技术人员应理解,正则匹配的标识还可以有更多选择,本公开实施例对于正则匹配的标识的具体设置方式不作限制。

本领域技术人员应理解,全局数据库中预先设置的方法对象还有更多类型,比如方法对象get_uvc_info_by_name,用于根据主机或者从机的名称,获得该主机或者该从机的所有通用验证信息;以及方法对象get_region_by_name,用于根据主机或者从机的名称,获得该主机或者该从机可以访问到的所有地址块信息,等等。调用的多个方法对象还可能有更多组合,只要调用的方法对象能够关闭系统中与宏文件包括的连接组件无关的验证IP即可,本公开实施例对于具体调用何种方法对象不作限制。

本公开还提供了一种验证环境的隔离装置,图10示出根据本公开实施例的验证环境的隔离装置的结构的示意图。

如图10所示,在一种可能的实现方式中,所述装置用于对验证环境进行隔离,所述验证环境是用于对系统的总线互联方式的正确性进行验证的环境,所述系统包括X个子系统,X是大于1的整数,每个子系统包括至少一个主机和/或至少一个从机,每个主机/从机对应一个验证IP,所述装置包括:

定义模块101,用于针对每个子系统,分别构建与所述子系统对应的宏文件,所述宏文件包括与所述子系统相关联的验证IP的连接组件,且不包括与所述子系统不关联的验证IP的连接组件;

关闭模块102,用于关闭所述系统中与所述宏文件包括的连接组件无关的验证IP;

添加模块103,用于在仿真命令中添加Y个子系统对应的宏文件,1<Y≤X,Y是整数;

执行所述仿真命令时,并行执行所述Y个子系统对应的宏文件,得到与所述Y个子系统分别对应的Y个执行结果,所述执行结果指示对应的子系统的总线互联方式的正确性。

在一种可能的实现方式中,所述装置还包括:

导入模块,用于将所述系统包括的所有主机和所有从机的信息导入全局数据库;

所述关闭模块具体用于:调用所述全局数据库中的多个方法对象,关闭所述系统中与所述宏文件包括的连接组件无关的验证IP。

在一种可能的实现方式中,所述验证IP的开关状态预设为开启状态,

所述调用所述全局数据库中的多个方法对象,关闭所述系统中与所述宏文件包括的连接组件无关的验证IP,包括:

根据与所述宏文件包括的连接组件无关的、带有正则匹配的标识的第一名称,调用第一方法对象,将与所述第一名称关联的所有验证IP的开关状态设置为关闭状态;

调用第二方法对象,更新所述全局数据库中所述第一名称关联的验证IP的开关状态;

调用第三方法对象,根据验证IP名称遍历查询所述全局数据库中所有验证IP的开关状态,建立开关状态设置为开启状态的验证IP;

其中,所述第一名称,包括所述子系统的名称、所述主机的名称、所述从机的名称、所述主机所支持的总线协议类型、所述从机所支持的总线协议类型中的至少一个。

在一种可能的实现方式中,所述验证IP的开关状态预设为开启状态,

所述调用所述全局数据库中的多个方法对象,关闭所述系统中与所述宏文件包括的连接组件无关的验证IP,包括:

根据与所述宏文件包括的连接组件无关的、不带有正则匹配的标识的第二名称,调用第一方法对象,将与所述第二名称关联的所有验证IP的开关状态设置为关闭状态;

调用第三方法对象,根据验证IP名称遍历查询所述全局数据库中所有验证IP的开关状态,建立开关状态设置为开启状态的验证IP;

其中,所述第二名称,包括所述主机的名称、所述从机的名称中的至少一个。

在一种可能的实现方式中,所述所有主机和所有从机的信息,包括主机所支持的总线协议类型、从机所支持的总线协议类型、位宽、突发类型、主机的验证IP的开关状态、从机的验证IP的开关状态。

在一种可能的实现方式中,所述与所述子系统相关联的验证IP的连接组件,包括:

与子系统包括的每一主机和主机支持的总线协议类型均关联的连接组件;

以及与子系统包括的主机可访问的每一从机和从机支持的总线协议类型均关联的连接组件。

在一种可能的实现方式中,所述总线协议类型包括高级可扩展接口AXI类型、高级外围总线APB类型、高级高性能总线AHB类型。

在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。

本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。

本公开实施例还提出一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述方法。

本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。

图11示出根据本公开实施例的装置1900的框图。例如,装置1900可以被提供为一电子设备。参照图11,装置1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。

装置1900还可以包括一个电源组件1926被配置为执行装置1900的电源管理,一个有线或无线网络接口1950被配置为将装置1900连接到网络,和一个输入输出接口1958(I/O接口)。装置1900可以操作基于存储在存储器1932的操作系统,例如Windows Server

在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由装置1900的处理组件1922执行以完成上述方法。

本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。

这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

相关技术
  • 基于区块链的交易验证方法、装置、存储介质及电子设备
  • 基于压力感应的登录验证方法、装置、存储介质电子设备
  • 指纹识别登录验证方法、装置、存储介质及电子设备
  • 生成、验证二维码的方法和装置,存储介质和电子设备
  • 票据验证方法及装置、电子设备及存储介质
  • 适用于芯片验证环境下的存储器管理方法、装置、电子设备及存储介质
  • 验证环境的配置方法及装置、电子设备和存储介质
技术分类

06120116492891