3 UVM结构1---组件家族

本文详细介绍了UVM验证方法学中的关键组件,包括uvm_driver、uvm_monitor、uvm_sequencer、uvm_agent、uvm_scoreboard和uvm_env的作用、定义及特点。uvm_driver负责提供激励,uvm_monitor用于监测,uvm_sequencer管理事务传输,uvm_agent是验证环境的基本单元,uvm_scoreboard执行数据比较,而uvm_env则作为组件容器。uvm_top作为验证环境的顶层,控制仿真流程。
摘要由CSDN通过智能技术生成

目录

1 uvm_driver

2 uvm_monitor

3uvm_sequencer

4 uvm_agent

5 uvm_scoreboard

6 uvm_env

SV中验证组件按功能可分为激励器(stimulator)、监测器(monitor)、检查器(checker)。这三个核心组件与验证环境中三个关键特性对应,即激励、监测和检查.

UVM验证方法学都有其对应的组件,验证环境中所有的组件都继承于uvm_component ,同时也继承了component中的phase机制。常见的组件类有:uvm_driver/uvm_monitor/ uvm_sequencer/ uvm_agent/ uvm_scoreboard/ uvm_env/ uvm_test。上述所有的组件类型不能直接使用,必须先定义新的类型继承于上面相对应的类型后,才能使用。

1 uvm_driver

作用:从sequencer中获取事务(transaction),经接口传入到dut进行时序激励。

定义:该类是参数化类,应声明参数类型

class uvm_driver #(type REQ=uvm_sequence_item,type RSP=REQ)
extends uvm_component;

特点:1.在定义新类时,应声明需获取事务参数REQ类型,默认RSP和REQ同一类型

           2 driver类和sequencer类的通信就是为了获取事务对象,一般通过TLM端口连接,

实例:

class dut_driver extends uvm_driver#(basic_transaction);//参数化为sequence item类型
	virtual chip_if vif;				//虚接口
	bit[7:0] addr, data;
	`uvm_component_utils(dut_driver)	//在factory中注册dut_driver
	function new(string name, uvm_component parent);
		super.new(name, parent);
	endfunction
	extern task run_phase(uvm_phase phase);//在运行过程中自动执行的run_phase
endclass

extern有两个作用:1 方便代码查看,提供一个清晰的接口。2.加密 

2 uvm_monitor

作用:监测接口的数据

定义:并没有添加新的成员和方法,但还是建议将新定义的monitor继承于uvm_monitor,利于将来代码的使用。

特点:1.观测dut的interface,并且收集总线信息

          2.永远保持PASSIVE模式,不

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值