uvm_component派生自uvm_object

uvm_component派生自uvm_object,不少读者会认为uvm_componentuvm_object是两个对等的概念。当创建一个类的时候,比如定义一个sequence类,一个driver类,要么这个类派生自uvm_component(或者uvm_component的派生类,如uvm_driver),要么这个类派生自uvm_object(或者uvm_object的派生类,如uvm_sequence),似乎uvm_object与uvm_component是对等的概念,其实不然

uvm_object是UVM中最基本的类,读者能想到的几乎所有的类都继承自uvm_object,包括uvm_component。uvm_component派生自uvm_object这个事实会让很多人惊讶,而这个事实说明了uvm_component拥有uvm_object的特性,同时又有自己的一些特质。但是uvm_component的一些特性,uvm_object则不一定具有。这是面向对象编程中经常用到的一条规律。

uvm_component有两大特性是uvm_object所没有的,一是通过在new的时候指定parent参数来形成一种树形的组织结构,二是有phase的自动执行特点。下图列出了UVM中常用类的继承关系。
uvm_component派生自uvm_object

从图中可以看出,从uvm_object派生出了两个分支,所有的UVM树的结点都是由uvm_component组成的,只有基于uvm_component派生的类才可能成为UVM树的结点;最左边分支的类或者直接派生自uvm_object的类,是不可能以结点的形式出现在UVM树上的。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!