[转]UVM结构回顾

一、uvm_top

  • uvm_topuvm_root类的唯一实例,它由UVM创建和管理,它所在的域是uvm_pkg
  • uvm_top是所有test组件的顶层,所有验证环境中的组件在创建时都需要指明它的父一级,如果某些组件在创建时指定父级的参数为null,那么它将直接隶属于uvm_top
  • uvm_top提供一系列的方法来控制仿真,例如phase机制、objection防止仿真退出机制等。
    在这里插入图片描述

二、uvm_test

  • test类是自定义类的顶层结构。所有的test类都应该继承于uvm_test,否则uvm_top将不识别,继而无法启动test
  • test的目标包括:提供不同的配置,包括环境结构配置、测试模式配置等,然后再创建验证环境;例化测试序列,并且挂载到目标sequencer,使其命令driver发送激励。
    在这里插入图片描述

三、构建环境的主要组件

uvm_component

  • 继承于uvm_report_object(进一步继承于object),提供消息方法。
  • 所有的验证环境组件都继承于uvm_component
  • 管理验证的层次。

uvm_env

  • 继承于uvm_component
  • 没有额外的功能。
  • 用来为验证环境结构提供一个容器。

uvm_test

  • 继承于uvm_component
  • 没有额外的功能。
  • 用来提供对uvm_env的额外配置以及挂载激励。

四、uvm_component

该类是一个虚类,所有环境组件都继承于该类,所有继承于该类的子类,都称之为组件或者环境组件。由于环境中所有的组件都继承于uvm_component,因此也就可以使得UVM提供统一的方式来管理层次结构和组件方法。

该类提供以下接口或者API:

  • 结构,例如get_full_name()get_parent()get_num_children()
  • 阶段(phase)机制,例如build_phase()connect_phase()run_phase()
  • 配置(configuration)机制,例如print_config()print_override_info()
  • 报告(report)机制,例如report_hook()set_report_verbosity_level_hier()
  • 事务记录(transaction recording),例如record()
  • 工厂(factory)机制,例如set_inst_override()set_type_override()

对于组件的构建函数,固定形式为:

function new(string name, uvm_component parent);
  • string name用来声明当前例化组件的名称,用来自动和它所在的父级层次组合为组件的整个层次名称,可以get_full_name()方法获取。
  • uvm_component parent用来指示所例化的父级句柄,通常用this指代,即例化在当前的父级组件中。
  • uvm_object并不参与组件的层次构建,因此只有一个形参string name

---------------------
作者:煎丶包
来源:CSDN
原文:https://blog.csdn.net/qq_39794062/article/details/114125386
版权声明:本文为作者原创文章,转载请附上博文链接!
内容解析By:CSDN,CNBLOG博客文章一键转载插件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值