一种SoC芯片多版本验证方法、装置及设备与流程

文档序号:32625879发布日期:2022-12-20 23:47阅读:25来源:国知局
一种SoC芯片多版本验证方法、装置及设备与流程
一种soc芯片多版本验证方法、装置及设备
技术领域
1.本发明属于芯片验证技术领域,具体涉及一种soc芯片多版本验证方法、装置及设备。


背景技术:

2.随着大规模集成电路的发展,soc片上系统集成了越来越多的ip模块,芯片复杂度和集成度不断提高,对验证的要求越来越高。当前soc芯片设计过程中经常实现不同的版本,即芯片设计对外管脚是相同的,但是管脚的功能、接口协议以及内部功能等方面存在不同的版本,对于验证来说需要根据不同的功能版本建立不同版本的验证平台分别进行验证,这样验证平台搭建不够灵活且不方便维护。


技术实现要素:

3.本发明所要解决的技术问题在于针对上述现有多版本soc芯片验证需要搭建多个平台分别进行验证存在的验证平台搭建不够灵活且不方便维护的问题,提供一种soc芯片多版本验证方法,一种soc芯片多版本验证装置以及一种soc芯片多版本验证设备。
4.第一方面,本发明提供的一种soc芯片多版本验证方法,包括以下步骤:s1.设置随机变量;s2.对所述随机变量进行约束,根据随机变量的取值选择待测设计寄存器;s3.将随机变量的取值传递到验证顶层,根据所述随机变量的取值以及约束条件连接待测设计的不同接口;s4.根据随机变量的取值将激励通过对应接口输送到待测设计寄存器中。
5.作为本发明的进一步改进,步骤s1之前还包括,建立寄存器模型,所述寄存器模型包括对应待测设计的验证代码,所述验证代码包含待测设计寄存器的所有信息。
6.作为本发明的进一步改进,步骤s3还包括:根据随机变量的值驱动soc芯片管脚选择对应的验证版本;根据随机变量的值驱动验证环境选择对应的接口组件与芯片管脚连接。
7.作为本发明的进一步改进,步骤s4还包括:根据随机变量的取值选择对应的接口组件,所述接口组件将激励以soc芯片对应接口的时序格式发送到对应的soc芯片管脚;从对应的soc芯片管脚将激励发送到soc芯片内部的对应接口;从soc芯片内部的对应接口将激励发送到对应的待测设计寄存器,进行待测设计寄存器的写、读操作。
8.作为本发明的进一步改进,用fun_sel表示所述随机变量,当fun_sel=0时,选择第一验证版本接口访问所述待测设计寄存器,所述寄存器模型与所述第一验证版本接口对应的第一接口组件连接,所述第一接口组件与所述第一验证版本接口连接;当fun_sel=1时,选择第二验证版本接口访问所述待测设计寄存器,所述寄存器模型与所述第二验证版本接
口对应的第二接口组件连接,所述第二接口组件与所述第二验证版本接口连接。
9.作为本发明的进一步改进,所述第一验证版本接口和所述第二验证版本接口为任意一种接口,包括但不限于jtag接口、sw接口、i2c接口、axi接口、ahb接口等。
10.作为本发明的进一步改进,所述第一验证版本接口和所述第二验证版本接口的接口类型不同。
11.第二方面,本发明还提供一种soc芯片多版本验证装置,包括:设置模块,用于设置随机变量;约束模块,用于对所述随机变量进行约束,根据所述随机变量的取值选择待测设计寄存器;连接模块,用于将随机变量的取值传递到验证顶层,并根据所述随机变量的取值以及约束条件连接待测设计的不同接口;发送模块,用于根据所述随机变量的取值将激励通过对应接口输送到待测设计寄存器中。
12.第三方面,本发明还提供一种soc芯片多版本验证设备,所述soc芯片多版本验证设备包括:至少两个激励模型,每个激励模型对应一种接口;所述至少两个激励模型根据对应接口协议发送激励,以使得所述soc芯片多版本验证设备执行上述任一实施例所述的soc芯片多版本验证方法。
13.本发明提供的一种soc芯片多版本验证方法,通过设置随机变量,根据随机变量的不同取值实现soc芯片多个功能版本的测试,搭建的验证平台只需要编译一次,就可以实现针对soc芯片不同版本的功能进行验证,有效解决了现有多版本soc芯片验证需要搭建多个平台分别进行验证存在的验证平台搭建不够灵活且不方便维护的问题。
14.下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
15.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明一部分实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
16.图1为本发明实施例提供的一种soc芯片多版本验证方法流程图;图2为本发明实施例提供的一种soc芯片多版本验证接口连接示意图;图3为本发明实施例提供的一种soc芯片多版本验证装置的结构框图;图4为本发明实施例提供的一种soc芯片多版本验证设备的结构示意图。
17.附图中各标号的含义为:200-待测设计;201-第一验证版本接口;202-第二验证版本接口;203-第一接口组件;204-第二接口组件;205-待测设计寄存器;301-设置模块;302-约束模块;303-连接模块;304-发送模块;401-激励模型1;402-激励模型2。
具体实施方式
18.为了使本发明的目的、技术方案及优点更加清楚明白,下面将结合本发明实施例
中的附图和具体实施例,对本发明实施例中的技术方案进行清楚、完整地描述,对本发明作进一步详细说明,应当理解,此处所描述的实施例仅仅用以解释本发明,是本发明一部分实施例,而不是全部的实施例,即此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。实施方式中涵盖了多个具体实施例的特征以及用以建构与操作这些具体实施例的方法步骤与其顺序。然而,亦可利用其它具体实施例来达成相同或均等的功能与步骤顺序。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
19.首先对本技术所涉及的名词进行解释:soc芯片:指的是芯片级系统(system on chip),简称片上系统,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容,硬件组成包括:核心(core),寄存器,外设接口,总线,中断模块,时钟模块等。
20.待测设计:简称(dut),本方案中的待测设计为待测soc芯片。
21.接口:指的是通信接口(communication interface),是一些有标准定义的接口协议,目的是实现主机与从机之间的数据通信。
22.当前soc芯片设计过程中经常实现不同的版本,即芯片设计对外管脚是相同的,但是管脚的功能、接口协议以及内部功能等方面存在不同的版本,对于验证来说需要根据不同的功能版本建立不同版本的验证平台分别进行验证,这样验证平台搭建不够灵活且不方便维护。
23.为了解决现有多版本soc芯片验证需要搭建多个平台分别进行验证存在的验证平台搭建不够灵活且不方便维护的问题,本发明实施例提供的一种soc芯片多版本验证方法,图1为本发明实施例提供的一种soc芯片多版本验证方法流程图,如图1所示,本实施例提供的一种soc芯片多版本验证方法,包括以下步骤:s1.设置随机变量。
24.本实施例提供的一种soc芯片多版本验证方法,通过设置随机变量区分待验证的soc芯片的不同功能版本,来实现针对soc芯片不同版本的功能的验证,基于此,随机变量的设置与需要进行验证的soc芯片功能版本数量相匹配。优选地,步骤s1之前还包括,基于uvm平台搭建验证环境,所述验证环境包括寄存器模型以及不同待测设计版本的接口组件,具体地,该寄存器模型是对应待测设计寄存器编写的验证代码,该验证代码包含待测设计寄存器的各种信息,该接口组件是对应待测设计不同版本接口的验证代码,可以针对待测设计的不同版本接口的接口协议发送激励,并配合寄存器模型发送针对待测设计寄存器的激励。
25.可以理解,通过设置随机变量区分待验证的soc芯片的不同功能版本,便能使搭建的验证平台只需要编译一次,就可以实现针对soc芯片不同版本的功能进行验证。
26.s2.对该随机变量进行约束,根据随机变量的取值选择待测设计寄存器。
27.作为本发明的一个实施例,针对soc芯片的不同功能版本,待测设计中包括多个协议不同的接口,都可以访问芯片内部寄存器,基于此,对所述随机变量进行约束,根据随机变量的取值选择待测设计寄存器。具体地,若需要进行验证的soc芯片功能版本有两个,则可以设置随机变量的取值为0、1,当随机变量取值为0时,表示芯片外部只能以版本0接口访问待测设计寄存器;当随机变量取值为1时,表示芯片外部只能以版本1接口访问待测设计
寄存器。若需要进行验证的soc芯片功能版本有三个,则可以设置随机变量的取值为0、1、2,当随机变量取值为0时,表示芯片外部只能以版本0接口访问待测设计寄存器;当随机变量取值为1时,表示芯片外部只能以版本1接口访问待测设计寄存器;当随机变量取值为2时,表示芯片外部只能以版本2接口访问待测设计寄存器,以此类推。
28.采用本方案,可以根据随机变量的不同取值实现针对soc芯片不同版本的功能进行验证,有效解决了现有多版本soc芯片验证需要搭建多个平台分别进行验证存在的验证平台搭建不够灵活且不方便维护的问题。
29.s3.将随机变量的取值传递到验证顶层,根据该随机变量的取值以及约束条件连接待测设计的不同接口。
30.优选地,步骤s3还包括:根据随机变量的值驱动soc芯片管脚选择对应的验证版本;根据随机变量的值驱动验证环境选择对应的接口组件与芯片管脚连接。具体地,作为本发明的一个实施例,对soc芯片的功能开始验证时,先将区分soc芯片不同功能版本的随机变量的值传递到验证顶层,在验证顶层根据区分功能版本的随机变量的取值,连接待测设计不同的管脚和接口。随机变量传递的值一方面驱动芯片管脚,让芯片选择对应的功能版本,另一方面随机变量传递的值也让验证环境选择对应的接口组件与芯片管脚连接。假设通过芯片的管脚a和管脚b可以访问芯片内部的寄存器,a为输入,b为输出。当随机变量取值为0时,控制版本0的接口组件与管脚a、管脚b连接;当随机变量取值为1时,控制版本1的接口组件与管脚a、管脚b连接。
31.s4.根据随机变量的取值将激励通过对应接口输送到待测设计寄存器中。
32.优选地,步骤s4还包括:根据随机变量的取值选择对应的接口组件,该接口组件将激励以soc芯片对应接口的时序格式发送到对应的soc芯片管脚;从对应的soc芯片管脚将激励发送到soc芯片内部的对应接口;从soc芯片内部的对应接口将激励发送到对应的待测设计寄存器,实现待测设计寄存器的写、读操作。具体地,作为本发明的一个实施例,如果需要版本0进行测试,在测试用例中约束随机变量的取值为0,将写、读激励传递到版本0对应的接口组件,再将激励以接口0的时序格式发送到芯片内部,从而实现寄存器的写、读操作,具体地,版本0的接口组件发送的激励先到达芯片管脚,再从芯片管脚到达芯片内部对应的接口0,再从芯片内部的接口0到达待测设计寄存器。如果需要版本1进行测试,在测试用例中约束随机变量的取值为1,将写、读激励传递到版本1的接口组件,再将激励以接口1的时序格式发送到芯片内部,从而实现寄存器的写、读操作,具体地,版本1对应的接口组件发送的激励先到达芯片管脚,再从芯片管脚到达芯片内部对应的接口1,再从芯片内部的接口1到达待测设计寄存器。
33.本发明提供的一种soc芯片多版本验证方法,通过设置随机变量,根据随机变量的不同取值实现soc芯片多个版本的功能测试,搭建的验证平台只需要编译一次,就可以实现针对soc芯片不同版本的功能进行验证,有效解决了现有的对多版本soc芯片不同版本功能进行验证时,需要搭建多个平台分别对soc芯片不同版本功能分别进行验证存在的验证平台搭建不够灵活且不方便维护的问题。
34.图2为本发明提供的一种soc芯片多版本验证接口连接示意图,如图2所示,本发明实施例还提供一种soc芯片多版本验证系统,该系统包括:第一验证版本接口201、第二验证版本接口202,该第一验证版本接口201和第二验证版本接口202,两种接口协议不同,但都
可以访问soc芯片内部寄存器,即这里的待测设计寄存器205,但这两种版本接口只有一个可以连接到soc芯片管脚,即从soc芯片内部只有一个接口可以使用;寄存器模型,该寄存器模型为对应待测设计200的验证代码,该验证代码包含待测设计寄存器205的所有信息;第一接口组件203,该第一接口组件203为对应该第一验证版本接口201的验证代码,用于为该第一验证版本接口201的接口协议发送激励;第二接口组件204,该第二接口组件204为对应该第二验证版本接口202的验证代码,用于为该第二验证版本接口202的接口协议发送激励;随机变量,该随机变量用于选择访问该待测设计寄存器205的接口。优选地,该第一接口组件203和该第二接口组件204还用于配合寄存器模型发送针对待测设计寄存器205的激励。
35.请继续参考图2,作为本发明的一个实施例,用fun_sel表示所述随机变量,即将fun_sel作为soc芯片一个特殊管脚用于区分soc芯片版本,需要说明的是,区分soc芯片版本有可能是多个管脚或根据fun_sel的值进行区分或其他方式,本实施例中以一个管脚区分的方式进行说明,其他情况原理与本实施例方案一致,具体地,当fun_sel取值为0时,表示芯片外部只能以第一验证版本接口201访问该待测设计寄存器205,寄存器模型与该第一接口组件203连接,第一接口组件203与该第一验证版本接口201连接,进一步地,当fun_sel取值为1时,表示芯片外部只能以第二验证版本接口202访问所述待测设计寄存器,该寄存器模型与所述第二接口组件204连接,该第二接口组件204与所述第二验证版本接口202连接。
36.作为本发明的一个实施例,具体地,假设寄存器模型为reg_model,model是寄存器模型的一个实例,第一接口组件203为if0_bus_env,将reg_env0作为第一接口组件203的一个实例;第二接口组件204为if1_bus_env,将reg_env1作为第二接口组件204的一个实例。如果fun_sel==0,则将model以uvm_config_db::set()的方式传递到第一接口组件reg_env0,reg_env0中以uvm_config_db::get()的方式获取model;如果fun_sel==1,则将model以uvm_config_db::set()的方式传递到第二接口组件reg_env1,reg_env1中以uvm_config_db::get()的方式获取model。
37.作为本发明的一个实施例,需要说明的是,随机变量fun_sel传递的值一方面驱动芯片管脚,让芯片选择对应的版本,另一方面随机变量fun_sel传递的值也让验证环境选择对应的接口组件与芯片管脚连接。假设通过芯片的管脚a和管脚b可以访问待测设计寄存器205,a为输入,b为输出。当随机变量fun_sel为0时,使用bufif0控制第一验证版本接口201对应的第一接口组件203与管脚a、管脚b连接;当fun_sel为1时,使用bufif1控制第二验证版本接口202对应的第二接口组件204与管脚a、管脚b连接。
38.优选地,如果需要测试第一版本,在测试用例中约束随机变量的取值为0,将写、读激励传递到第一版本对应的第一接口组件203,再将激励以第一验证版本接口201的时序格式发送到芯片内部,从而实现待测设计寄存器205的写、读操作,具体地,第一版本对应的第一接口组件203发送的激励先到达芯片管脚,再从芯片管脚到达芯片内部对应的第一验证版本接口201,再从芯片内部的第一验证版本接口201到达待测设计寄存器205。如果需要测试第二版本,在测试用例中约束随机变量的取值为1,将写、读激励传递到第二版本对应的第二接口组件204,再将激励以第二验证版本接口202的时序格式发送到芯片内部,从而实现待测设计寄存器205的写、读操作。
39.具体地,作为本发明的一个实施例,假设芯片内部一个寄存器为soc_reg0,在测试用例中对寄存器soc_reg0产生写的激励格式为this.model.soc_reg0.write(status,wdata);产生读的激励格式为this.model.soc_reg0.read(status,rdata)。如果需要测试第一版本,在测试用例中约束fun_sel==0,经过接口组件的选择后产生的写、读激励都会传递第一接口组件,经过接口的选择后第一接口组件203会将激励以第一验证版本接口201的时序格式发送到芯片内部,从而时序寄存器的写、读操作,第一接口组件203发送的数据到达芯片管脚,激励从芯片管脚到达芯片内部的第一验证版本接口201,激励从芯片内部第一验证版本接口201到达待测设计寄存器205。如果需要测试第二版本,在测试用例中约束fun_sel==1,经过接口组件的选择后产生的写、读激励都会传递到第二接口组件204,经过接口的选择后第二接口组件204会将激励以第二验证版本接口202的时序格式发送到芯片内部,从而时序寄存器的写、读操作,第二接口组件204发送的激励到达芯片管脚,激励从芯片管脚到达芯片内部的第二验证版本接口202,激励从芯片内部版本接口到达寄存器。
40.在该实施例中,用户可以根据需求,根据不同产品,不同版本的分类迭代自由组合的方式,设置随机变量参数、寄存器模型以及接口组件,其有组件化管理,配置灵活,修改参数也灵活。
41.作为本发明的一个实施例,该第一验证版本接口和该第二验证版本接口为任意一种接口,包括但不限于jtag接口、sw接口、i2c接口、axi接口、ahb接口等,其中,第一验证版本接口和第二验证版本接口的接口类型不同。
42.基于上述soc芯片多版本验证方法,本发明实施例还提供一种soc芯片多版本验证装置,图3为本发明实施例提供的一种soc芯片多版本验证装置的结构框图,如图3所示,该soc芯片多版本验证装置包括以下模块:设置模块301,用于设置随机变量;优选地,所述随机变量用于区分待验证的soc芯片的不同功能版本,来实现针对soc芯片不同版本的功能的验证。
43.需要说明的是,若需要进行验证的soc芯片功能版本有两个,则该设置模块301可以设置随机变量的取值为0、1;若需要进行验证的soc芯片功能版本有三个,则该设置模块301可以设置随机变量的取值为0、1、2,以此类推。
44.约束模块302,用于对随机变量进行约束,根据该随机变量的取值选择待测设计寄存器;需要说明的是,若需要进行验证的soc芯片功能版本有两个,且设置模块301设置随机变量的取值为0、1,则当随机变量取值为0时,该约束模块302用于限制芯片外部只能以第一验证版本接口201访问待测设计寄存器205;当随机变量取值为1时,该约束模块302用于限制芯片外部只能以第二验证版本接口202访问待测设计寄存器205。若需要进行验证的soc芯片功能版本有三个,且设置模块301设置随机变量的取值为0、1、2,则当随机变量取值为0时,该约束模块302用于限制芯片外部只能以第一验证版本接口201访问待测设计寄存器205;当随机变量取值为1时,该约束模块302用于限制芯片外部只能以第二验证版本接口202访问待测设计寄存器205;当随机变量取值为2时,该约束模块用于限制芯片外部只能以第三版本接口访问待测设计寄存器205,以此类推。
45.连接模块303,用于将随机变量的取值传递到验证顶层,并根据随机变量的取值以
及约束条件连接待测设计的不同接口;作为本发明的一个实施例,具体地,对soc芯片的功能开始验证时,连接模块303先将区分soc芯片不同功能版本的随机变量的值传递到验证顶层,在验证顶层根据区分功能版本的随机变量的取值,连接待测设计不同的管脚和接口。需要说明的是,随机变量传递的值一方面驱动芯片管脚,让芯片选择对应的功能版本,另一方面随机变量传递的值也让验证环境选择对应的接口组件与芯片管脚连接。
46.发送模块304,用于根据该随机变量的取值将激励通过对应接口输送到待测设计寄存器中。
47.作为本发明的一个实施例,需要说明的是,连接模块303根据随机变量的取值选择对应的接口组件之后,发送模块304通过该接口组件将激励以soc芯片对应接口的时序格式发送到对应的soc芯片管脚;再从对应的soc芯片管脚将激励发送到soc芯片内部的对应接口;再从soc芯片内部的对应接口将激励发送到对应的待测设计寄存器205,实现待测设计寄存器205的写、读操作。
48.关于上述soc芯片多版本验证装置中各模块实现上述技术方案的其他细节,可参见上述发明实施例中提供的soc芯片多版本验证方法中的描述,此处不再赘述。
49.本技术实施例还提供了一种soc芯片多版本验证设备的结构示意图,图4为本技术实施例提供的一种soc芯片多版本验证设备的结构示意图,如图4所示,该soc芯片多版本验证设备可以包括:激励模型1 401以及激励模型2 402;激励模型1发送符合第一验证版本接口201接口协议的激励;激励模型2发送符合第二验证版本接口202接口协议的激励;两种激励模型可以执行上述任一实施例所述的方法。具体地,激励模型1 401与第一验证版本接口201连接,激励模型2 402与第二验证版本接口202连接。
50.关于上述soc芯片多版本验证设备中处理器实现上述技术方案的其他细节,可参见上述发明实施例中提供的soc芯片多版本验证方法中的描述,此处不再赘述。
51.在本技术所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,各个部分的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
52.作为分离部件说明的装置中的各个部分可以是或者也可以不是物理上分开的,比如,作为寄存器模型的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案。
53.另外,在本技术各个实施例中该装置的各个部分可以集成在一个处理单元中,也可以是单独的物理存在,也可以两个或两个以上集成在一个单元中。扎样形成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本技术各个实施例所述方法的部分步骤。
54.以上对本发明实施例公开的一种soc芯片多版本验证方法、装置及设备进行了详细介绍,尽管已描述了本发明的优选实施例,但其只作为范例,本发明并不限制于以上描述的具体实施方式。本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。因此,对于本领域的技术人员而言,依据本发明的思想,对该发明进行的等同修改或替代也都在本发明的范畴之中,在不脱离本发明的精神和原则范围下所作的均等变换和修改、改进等,都应涵盖在本发明的范围内。综上,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1