基于UVM的芯片寄存器的验证方法技术

技术编号:35598109 阅读:30 留言:0更新日期:2022-11-16 15:18
本发明专利技术提供了一种基于UVM的芯片寄存器的验证方法。该方法包括:对序列进行配置,在启动验证序列后,从验证序列的队列变量中取第一个值,将该值按照前门方式对应的读写过程对第一个寄存器进行读写和校验,或者按照后门方式对应的读写过程对第一个寄存器进行读写和校验。若队列中的数据没有全部执行完成,则从队列变量中取下一个值继续进行读写和校验,若队列中的数据全部执行完成,则结束第一个寄存器访问,进行下一个寄存器的访问;直至遍历所有寄存器,序列结束。本发明专利技术的序列,在被启动前进行配置,就可以完成上述的遍历寄存器的读写验证。可以减轻编写寄存器读写序列的工作量,具有可重用性,并且方便使用。并且方便使用。并且方便使用。

【技术实现步骤摘要】
基于UVM的芯片寄存器的验证方法


[0001]本专利技术涉及集成电路验证
,具体涉及一种基于UVM的芯片寄存器的验证方法。

技术介绍

[0002]在芯片寄存器的UVM的验证方法中,引入了寄存器模型(Register abstraction model,RAL)的概念,寄存器模型提供了一些任务,如mirror、update,它们可以批量完成寄存器模型与DUT中相关寄存器的交互,使验证人员更好地组织和配置寄存器。现有技术可以支持从寄存器的描述性文档,生成寄存器模型,此处不做具体阐述。有了寄存器模型后,可以通过前门访问和后门访问的方式来读写寄存器。前门访问是通过模拟cpu在总线上发出读写指令,进行读写操作;后门访问操作是不通过总线进行读写,而是直接通过层次化的引用来改变寄存器的值。
[0003]针对寄存器验证,UVM内建了一些序列。然而,内建序列在实际应用中往往存在局限性,例如无法指定多个不同的写数据和不同的访问方式。而UVM内建序列不能灵活的满足各种验证寄存器的需求,使得验证人员仍需自己编写遍历寄存器验证的序列。不同的设计需要验证人员进行重复性劳动,其效率较低。

技术实现思路

[0004]本专利技术的首要目的是提供了一种基于UVM的芯片寄存器的验证方法,不需要验证人员自己编写遍历寄存器验证的序列,能够减少重复性劳动,提高效率。
[0005]与现有技术相比,本专利技术技术方案的有益效果是:
[0006]与现有技术相比,本专利技术突破了UVM内建寄存器验证序列的局限性,创建了一种可以不限数量的写入任意数,同时前门和后门访问可选择的,一种自动遍历验证寄存器的序列。使用上和UVM内建序列一样的方便,使用者可以不关心序列本身的内容,只需要在使用时正确配置和启动即可,灵活的满足各种不同的寄存器验证需求。该序列可以减轻编写寄存器验证序列的工作量,操作性强,具有可重用性。
[0007]本专利技术的技术方案如下:
[0008]如果配置序列的访问方式为前门方式,在启动验证序列后,从验证序列的队列变量中取第一个值,通过前门方式将第一个值写入第一个寄存器。通过前门方式读回第一个寄存器的值并进行校验。
[0009]如果配置序列的访问方式为后门方式,在启动验证序列后,从验证序列的队列变量中取第一个值,通过前门方式将第一个值写入第一个寄存器。通过后门方式读回第一个寄存器的值并进行校验,通过后门方式将第一个值写入第一个寄存器,通过前门方式读回第一个寄存器的值并进行校验。
[0010]若队列中的数据没有全部执行完成,则从队列变量中取下一个值继续进行读写和校验,若队列中的数据全部执行完成,则结束第一个寄存器访问,进行下一个寄存器的访
问;直至遍历所有寄存器,序列结束。
[0011]上述技术方案还包括:
[0012]将所述验证序列的源代码添加至UVM的验证环境中,并创建所述验证序列的实例;
[0013]指定验证序列的寄存器模型RAL;
[0014]向所述验证序列中访问方式对应的变量赋值;
[0015]向所述验证序列中的队列变量赋值;
[0016]启动所述验证序列。
[0017]指定验证序列的寄存器模型RAL,包括:将所述验证序列中寄存器模型RAL类型的指针指向所述UVM的验证环境中的已创建的寄存器模型RAL。
[0018]向所述验证序列中的访问方式对应的变量赋值,所赋值的内容包括:前门访问和后门访问。
[0019]向所述验证序列中的队列变量赋值,包括:
[0020]在所述验证序列的队列类型变量写入验证寄存器的写数据,写入的所述写数据的数量为一个或者多个;
[0021]所述验证序列执行过程中从所述队列变量中依次取值,进行寄存器读写和校验,直至遍历所述队列的所有成员。
附图说明
[0022]图1为本专利技术实施例涉及的序列配置流程的示意图;
[0023]图2为本专利技术实施例涉及的序列读写流程的示意图。
具体实施方式
[0024]现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例。
[0025]参照图1,验证序列的配置过程包括:将验证序列的源代码添加至UVM的验证环境中,并创建验证序列的实例;指定验证序列的寄存器模型RAL;向验证序列中访问方式对应的变量赋值;向验证序列中的队列变量赋值;启动验证序列。
[0026]其中,向验证序列中的访问方式对应的变量赋值,所赋值的内容包括:前门访问和后门访问。
[0027]其中,向验证序列中的队列变量赋值,包括:在验证序列的队列类型变量写入验证寄存器的写数据,写入的写数据的数量为一个或者多个。验证序列执行过程中从队列变量中依次取值,进行寄存器读写和校验,直至遍历队列的所有成员。
[0028]举例而言,该序列实际配置流程包括如下流程。
[0029]1)、把该序列(multi_reg_access_seq)的源代码加到UVM验证环境中,并创建所述验证序列的实例;
[0030]multi_reg_access_seq reg_seq;
[0031]reg_seq=new(“reg_seq”);
[0032]2)、把序列中寄存器模型RAL类型的指针指向环境中已经创建的寄存器模型RAL;
[0033]reg_seq.model=XXX.XXX.p_rm;
[0034]3)、给序列中决定前后门访问方式的变量赋值;
[0035]reg_seq.access_op_e=Front或Backdoor;
[0036]4)、给序列中队列变量赋值,例如连续写4个值:16

h0000、16

h5555、16

hAAAA、16

hFFFF;
[0037]reg_seq.data[$]={16

h0000,16

h5555,16

hAAAA,16

hFFFF};
[0038]5)、启动序列;
[0039]reg_seq.start(null)。
[0040]参照图2,该序列的读写流程包括:
[0041]如果配置序列的访问方式为前门方式,在启动验证序列后,从验证序列的队列变量中取第一个值,通过前门方式将第一个值写入第一个寄存器。通过前门方式读回第一个寄存器的值并进行校验。
[0042]如果配置序列的访问方式为后门方式,在启动验证序列后,从验证序列的队列变量中取第一个值,通过前门方式将第一个值写入第一个寄存器。通过后门方式读回第一个寄存器的值并进行校验,通过后门方式将第一个值写入第一个寄存器,通过前门方式读回第一个寄存器的值并进行校验。
[0043]若队列中的数据没有全部执行完成,则从队列变量中取下一个值继续进行读写和校验,若队列中的数据全部执本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于UVM的芯片寄存器的验证方法,其特征在于,所述方法包括:如果配置序列的访问方式为前门方式,在启动验证序列后,从所述验证序列的队列变量中取第一个值,通过前门方式将第一个值写入第一个寄存器,通过前门方式读回第一个寄存器的值并进行校验;如果配置序列的访问方式为后门方式,在启动所述验证序列后,从所述验证序列的队列变量中取第一个值,通过前门方式将第一个值写入第一个寄存器,通过后门方式读回第一个寄存器的值并进行校验,通过后门方式将第一个值写入第一个寄存器,通过前门方式读回第一个寄存器的值并进行校验;若队列中的数据没有全部执行完成,则从所述队列变量中取下一个值继续进行读写和校验,若队列中的数据全部执行完成,则结束第一个寄存器访问,进行下一个寄存器的访问;直至遍历所有寄存器,序列结束。2.如权利要求1所述的方法,其特征在于,所述方法还包括:将所述验证序...

【专利技术属性】
技术研发人员:张宁栾昌海
申请(专利权)人:牛芯半导体深圳有限公司
类型:发明
国别省市:

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

1