UVM知识之基本组件

一、 各个component组件的功能:
1. uvm_driver: 参数化类,接收来自sequencer的激励,然后驱动到接口上
2. uvm_sequencer: 参数化类,作为一个管道,起到路由器的作用,sequence产生的激励通过这个管道流向driver
3. uvm_monitor: 监测总线数据,发送到scb或者coverage
4. uvm_agent: 作为基本单元,一般包含一个monitor、driver和sequencer,通过设置is_activate变量来控制是否例化driver和sequencer
5. uvm_scoreboard:接收来自不同monitor的数据,进行数据的比对和报告
6. uvm_env:一个结构化的容器
7. uvm_test: 作为验证环境的唯一入口
8. 分模块验证后,如何将不同模块整合起来组成顶层的验证环境?
   不同的模块验证均需要搭建一个env来进行验证,这个env会包括master agent,slave agent以及scb等组件,构成一个小型的验证环境
   方法一: 将分模块后的各个模块中的一部分抽离出来,组成顶层验证环境,需要自定义一个总的scb
   方法二: 将各个子环境组合起来,把子环境中不必要的组件passive掉,各个子环境的scb保留
   各自的优点:方法二可以复用scb,每个子模块单独验自己的功能即可,但需要控制例化各个组件,方法一需要重新定义scb,费时费力
二、 master和slave代表着什么?
如果要验一个模块,通常对定义一个master agent和一个slaver agent,master掌握主动权,发出命令,而slave就是去响应master的指令
这种响应不单单指读或者驱动总线,还包括其他的master需要其完成的动作。比如在AHB2APB中,master发出读指令,那么slave就得回应rdata,
当master发出的是写指令,那么slave就需要把写入的指令存储起来。在mcdf的register module中,master可以发出读取状态寄存器的指令,那么slave端
就需要回应状态寄存器的信息,如果是写指令,则需要将信息存放起来。
三、 object的功能:
uvm_sequence
uvm-sequence_item

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值