Uvm验证平台的内部信号检测方法及应用

文档序号:9616178阅读:1052来源:国知局
Uvm验证平台的内部信号检测方法及应用
【技术领域】
[0001] 本发明属于芯片的功能验证领域,特别是涉及一种UVM(验证方法学)验证平台的 内部信号检测方法及应用。
【背景技术】
[0002] 随着集成电路的规模的不断扩大,验证面临极大的挑战。UVM验证方法学采用了 SystemVerilog(硬件验证语言)语言,引入了断言、抽象化、自动化及重用机制,可以搭建 基于事务的可重用的层次化验证平台,减少测试例的复杂度,提高了验证效率。但是这种基 于抽象事务的验证平台,在平台调试(debug)时,抽象的事务并没有好的方法可以直观地 追踪和查看,现在的波形查看工具对于这种平台内部的信号也不能很好的提取出来查看, 使得验证平台的调试多是依靠打印查看Log(日志)信息来实现。这种方式效率比较低。

【发明内容】

[0003] 本发明要解决的技术问题是提供一种UVM验证平台的内部信号检测方法及应用, 能够直观查看平台内部的信号,提高验证效率。
[0004] 为解决上述技术问题,本发明的UVM验证平台的内部信号检测方法,包括如下步 骤:
[0005] 步骤1,在顶层声明一个接口(interface),接口信号类型定义为与需要检测的内 部信号一致;
[0006] 步骤2,在需要信号检测的class(类)内定义一个步骤1中声明的接口信号类型 的接口,并使用uvm_config_db: :get(UVM语法:得到配置信息)函数来得到该接口;
[0007] 步骤3,将需要检测的内部信号赋值给步骤2中实例化的接口信号;
[0008] 步骤4,通过uvm_config_db: :set函数将所述接口放到UVM环境相应层次中;
[0009] 步骤5,通过在波形中观察步骤4中的接口信号,即实现内部信号的检测。
[0010] 上述方法,在UVM验证平台内部的抽象事务包中的数据的应用。
[0011] 上述方法,通过宏定义和封装,集成在UVM验证平台的基类中,在所有基于UVM验 证平台架构的验证中的应用。
[0012] 本发明通过将内部信号赋值到接口信号上,接口信号可以很直观的在波形工具查 看,包括事务包中的数据,方便调试,能够很方便地追踪信号跳变,并可很方便地集成于验 证平台内部,可以实现UVM验证平台内部抽象事务的具体化;极大地提高验证效率。
【附图说明】
[0013] 下面结合附图与【具体实施方式】对本发明作进一步详细的说明:
[0014] 附图是所述UVM验证平台的内部信号检测方法实现流程图;
【具体实施方式】
[0015] 所述UVM验证平台的内部信号检测方法如下:在顶层声明一个接口,接口信号类 型定义为与需要检测的内部信号一致,在需要信号检测的class内定义一个此声明的接口 类型的接口,并使用uvm_config_db: :get函数来得到此interface,将需要检测的内部信号 赋值给实例化的接口信号,通过uvm_config_db::set将此接口信号放到环境中相应层次中 去,通过在波形中观察此层次的接口信号,即实现UVM验证平台的内部信号检测。
[0016] 可以使用宏来定义接口,以方便在需要使用的class中进行调用。
[0017] 可以使用宏来赋值接口信号,以方便需要检测的信号的添加。
[0018] 所述赋值,可以使用forever(硬件描述语言中关键字:无穷循环)等待所述接口 信号跳变时,将内部信号值赋给该接口信号来实现实时监测。
[0019] 对于平台内部检测的信号的添加,需要扩展所述声明的接口的信号类型,并添加 相应信号的赋值。
[0020] 参见附图所示,下面是一个对于类的内部的信号的追踪和查看的实例,用来说明 本发明的具体细节。
[0021]
[0022]
[0023] 如上描述,在验证中,需要追踪类myunit中的类11的数据:即myunit. 11.data。 按照本发明的步骤,先声明一个接口,如下所示:
[0024] interfacedbg_if(inputlogicclock);
[0025] logic[31:0]dbg_data;
[0026] endinterface
[0027] 该接口中定义的信号类型和需要追踪的信号的类型一致,都是Int类型。
[0028] 定义好接口后,用uvm_config_db::get函数来得到该接口,为了方便在class中集 成,使用了宏定义。
[0029]
[0030] 对需要检测的信号进行赋值。为了提高可扩展性,使用了宏定义。[0031]
[0032]
[0033] 对于检测信号的赋值,使用了foreverO,当每次被检测的信号跳变时,都将它赋值 到接口信号,这样,就实现了信号的实时监测。
[0034] 在myunit中使用以上定义的宏,来得到该接口信号。代码如下:
[0035]
[0036]
[0037] 在环境中通过uvm_config_db: :set将此接口放到UVM平台环境中相应层次中去。
[0038]
[0040] 通过以上步骤,即可以通过波形查看工具DVE在top.dif接口信号dbg_data上观 察到myunit. 11.data的值。
[0041] 如果需要对myunit. 12.data的值进行检测,由于接口已经集成到了环境中,只需 要在接口声明中添加一个myunit. 12.data同类型的信号,并且通过在classmyunit中直 接添加宏定义进行赋值即可实现。具体代码如下:
[0042]
[0044] 以上所述仅为本发明的【具体实施方式】,本发明保护范围并不局限于此。
【主权项】
1. 一种应用于UVM验证平台的内部信号检测方法,其特征在于: 步骤1,在顶层声明一个接口,接口信号类型定义为与需要检测的内部信号一致; 步骤2,在需要信号检测的类内定义一个步骤1中声明的接口信号类型的接口,并使用uvm_config_db: :get函数来得到该接口; 步骤3,将需要检测的内部信号赋值给步骤2中实例化的接口信号; 步骤4,通过uvm_config_db: :set函数将所述接口放到UVM环境相应层次中; 步骤5,通过在波形中观察步骤4中的接口信号,即实现内部信号的检测。2. 如权利要求1所述的方法,其特征在于:步骤2使用宏来定义接口,以方便在需要使 用的class中进行调用。3. 如权利要求1所述的方法,其特征在于:步骤3使用宏来赋值接口信号,以方便需要 检测的信号的添加。4. 如权利要求1所述的方法,其特征在于:步骤3中的赋值,使用无穷循环等待所述接 口信号跳变时,将内部信号值赋给该接口信号来实现实时监测。5. 如权利要求1所述的方法,其特征在于:对于平台内部检测的信号的添加,需要扩展 步骤1中声明的接口的信号类型,并添加步骤3中的相应信号赋值。6. 权利要求1至5任一所述的方法,在UVM验证平台内部的抽象事务包中的数据的应 用。7. 权利要求1至5任一所述的方法,通过宏定义和封装,集成在UVM验证平台的基类 中,在所有基于UVM验证平台架构的验证中的应用。
【专利摘要】本发明公开了一种UVM验证平台的内部信号检测方法及应用,所述方法包括,步骤1,在顶层声明一个接口,接口信号类型定义为与需要检测的内部信号一致;步骤2,在需要信号检测的类内定义一个步骤1中声明的接口信号类型的接口,并使用uvm_config_db::get函数来得到该接口;步骤3,将需要检测的内部信号赋值给步骤2中实例化的接口信号;步骤4,通过uvm_config_db::set函数将所述接口放到UVM环境相应层次中;步骤5,通过在波形中观察步骤4中的接口信号,即实现内部信号的检测。本发明能够直观查看验证平台内部的信号,提高验证效率。
【IPC分类】G06F11/267
【公开号】CN105373458
【申请号】CN201410440055
【发明人】王静
【申请人】上海华虹集成电路有限责任公司
【公开日】2016年3月2日
【申请日】2014年9月1日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1