uvm_object_wrapper/uvm_object_registry/uvm_component_registry
(2011-09-14 16:24:33)
标签:
object_wrapperuvm_object_registry_componentit |
分类: uvm |
conclusion:
1. 这是一个接口类,不能实例化。
2. 该接口类采用了proxy的模式
3. uvm_object create_object (string name="");//create a named uvm_object
4. uvm_component create_component (string name, uvm_component parent);//create a named and hierachy(parent) uvm_component
5. uvm_object_registry:public uvm_object_wrapper
6. uvm_component_registry:public uvm_object_wrapper
7. pure virtual function string get_type_name();//The factory
uses this
8. uvm_object_registry#(T=uvm_object,
Tname="")
9. uvm_object_registry#(T=uvm_object,
Tname="")
10.注册器可以调用3,4条中的函数产生对象
11. 每个注册器的 string get_type_name();函数可返回注册器的类型名字
12.注册器相当于一个对象生成器,同种对象生成器采用全局singleton模式,全局唯一且在uvm_factory中注册
13.需要对象时由工厂调用函数根据类型调用注册器的对象生成器即可。如:
14.uvm_component_registry与上诉方法相同
15.uvm_component组建需要根据parent生成一个结构化的关系图谱
16.set_type_override()在factory的m_type_overrides[$]数组中通过一个factory_override类记录把一个wrapper用另外一个wrapper替代
17.set_inst_override()在factory的m_inst_override_queues[uvm_object_wrapper]数组中通过一个uvm_factory_queue_class 的成员factory_override记录把一个wrapper用另外一个wrapper替代
file:
C:\Documents and Settings\zhliu\Desktop\uvm-1.0p1\src\base\uvm_registry.svh