推荐答案
测试一下
题目
下列哪些class派生来自uvm_component
A、Sequencer
B、Monitor
C、Transaction
D、Driver
参考答案与知识点
参考答案
正确答案:A、B、D。
解析:UVM(Universal Verification Methodology)中,`uvm_component` 是所有具有结构层次和生命周期的组件的基类,而 `uvm_object` 是所有数据对象的基类。具体来说:
- A、Sequencer(序列发生器)派生自 `uvm_sequencer`,而 `uvm_sequencer` 继承自 `uvm_component`。Sequencer 负责向 Driver 发送 sequence 生成的 transaction,属于验证平台的结构组件。
- B、Monitor(监视器)派生自 `uvm_monitor`,而 `uvm_monitor` 继承自 `uvm_component`。Monitor 用于监测接口信号并收集数据,通常需要与 DUT 保持连接,因此拥有生命周期。
- C、Transaction(事务)通常指 `uvm_sequence_item` 或 `uvm_transaction`,它们直接派生自 `uvm_object`,而不是 `uvm_component`。Transaction 是纯数据对象,不包含 run phase 等行为,仅用于在组件之间传递信息。
- D、Driver(驱动器)派生自 `uvm_driver`,而 `uvm_driver` 继承自 `uvm_component`。Driver 负责将 transaction 驱动到 DUT 接口,具有层次结构和行为。
易错点:容易混淆 `uvm_object` 和 `uvm_component` 的派生关系,以为所有 UVM 类都继承自 `uvm_component`。实际上,只有需要参与验证平台结构(如 phase 执行、层次管理、配置等)的类才继承自 `uvm_component`,而简单的数据对象(如 transaction、sequence_item、config 对象)继承自 `uvm_object`。
涉及知识点
- uvm_component与uvm_object区别
- UVM组件层次关系
- Driver/Monitor/Sequencer基类
- Transaction数据对象基类
- 常见UVM类继承关系