UVM入门与进阶学习笔记8——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构建模块(基类)共同组成验证环境:

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
    • 凡是继承于uvm_component的组件,也应保持同样的形式参数列表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值