首页
学习
活动
专区
圈层
工具
发布

UVM模型(二)之component

UVM模型(二)之component

Component与object是UVM中两个最重要的概念。

1.uvm_component中的parent

UVM通过uvm_component来实现树形结构,所有的UVM树的节点都是一个uvm_component。每个uvm_component都有一个特点:他们在new的时候,需要指定一个类型为uvm_component,名字为parent的变量。

Function new(string name, uvm_component parent)

一般的,在使用的时候,parent都是this。假设现在有一个A派生自uvm_component,在A中有一个uvm_component B的成员变量,则A的定义如下: Class A extends uvm_component; uvm_compoent B; Function new(string name, uvm_component parent); super.new(name,parent); B = new(“B”,this); endfunction endclass

在B实例化的时候,就把this指针传递给了B,代表A是B的parent。

2.UVM树的根在哪里?

UVM中真正的树根是一个称为uvm_top的东西,uvm_top是一个全局变量,它是uvm_root的一个实例,而uvm_root派生自uvm_component,所以uvm_top本质上是一个uvm_component,它是树的根。

3.uvm_component的phase自动执行

Uvm_component有两大特性,除了上面提到的在new的时候需要指定一个parent外,另外一个重要的特性就是它具有phase自动执行的特性。当整棵树的build_phase执行完的时候,会自动执行connect_phase,以次类推。这样就可以最大程度上避免出错。

下一篇
举报
领券