002 UVM的结构层次丨UVM Component

目录

Q1:前面说到UVM提供了一套标准的类库和方法,有哪些类库?

Q2:Component和Data items有什么区别呢?


Q1:前面说到UVM提供了一套标准的类库和方法,有哪些类库?

UVM提供了一整套类库,用于创建灵活、高效、可重用的验证环境。这些类库涵盖了从基本的对象管理、序列化、随机化到高级的验证组件和功能,如代理、驱动器、监视器、覆盖率和报告机制等。

UVM提供的类库大致可以分为两类,组成验证环境的基本单元是components和用于它们之间通信的transactions(data items)。

Q2:Component和Data items有什么区别呢?

Component使用聚合类来构成验证环境,继承自uvm_component。UVM也为UVCs (UVM Component) 提供了许多子类,如:uvm_sequencer, uvm_driver, uvm_monitor等。Component有component utility macros和构造函数。

Data items被用来定义激励,通常继承自uvm_sequence_item,有object utility macros 和构造函数。此外,在大型验证环境中,有许多用于配置的变量,也可以定义在一个data item的类中,通常继承自uvm_object。在验证过程中,可以随机化这些变量来覆盖多种测试情况,通时可以对变量添加约束,覆盖率检测。

前面提到构成UVC的验证组件(Component)有driver, monitor, sequencer等。UVM为这些验证组件提供了相应的类,它们继承自uvm_component。

  1. uvm_sequencer:sequencer负责从uvm_sequence中获取事务(transaction)并将其提供给uvm_driver。(uvm_sequence_item中定义了需要产生的激励信号,uvm_sequence中则是顺序指示了一组激励。)uvm_sequencer的主要功能是调度和管理事务序列,从而协调测试生成和驱动器(driver)的操作。
  2. uvm_driver: driver将事务从uvm_sequencer中提取出来,按照正确的时序,将激励驱动到DUT的接口上。
  3. uvm_monitor:monitor收集来自DUT的信号。
  4. uvm_agent:agent包含sequencer, driver, monitor的实例。is_active用来配置agent是active还是passive。Active agent构造driver, sequencer和monitor。Passive agent值构造monitor.
  5. uvm_env: 用于构建testbench,testbench中包含DUT和UVCs。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值