推荐答案
测试一下
题目
Which of the following classes are derived from uvm_component?
A. Driver
B. Sequencer
C. Sequence
D. Transaction
参考答案与知识点
参考答案
正确选项为 A(Driver)和 B(Sequencer)。在 UVM 中,uvm_component 是继承自 uvm_object 并增加了时间片、层次化结构等属性的基类,所有具有生命周期和层次关系的组件(如 driver、sequencer、monitor、agent、env、test)都由 uvm_component 派生。Driver 负责将事务驱动到接口,需要始终存在并参与 phase 机制,因此是 uvm_component。Sequencer 管理序列生成,同样具有组件特性,也是 uvm_component。而 Sequence 和 Transaction 属于 uvm_object,不具有组件生命周期和层次结构:Sequence 是一个序列对象,用于产生事务,但其本身不参与 phase 调度,通常通过 sequencer 控制;Transaction 是数据对象,代表一次通信的基本单元,无层次结构。易错点:考生容易混淆 uvm_component 与 uvm_object 的继承关系,或误认为 Sequence 因为名字中包含“er”而属于组件,实际上 Sequence 是 uvm_sequence_item 的派生(后者继承 uvm_object),不是组件。
涉及知识点
- UVM 组件与对象的区别
- uvm_component 继承关系
- 常用组件类(driver、sequencer)
- uvm_object 典型子类(sequence、transaction)
- Sequence 与 Sequencer 的层次差异