uvm_object_utils:用于将一个直接或间接派生自uvm_object的类注册到factory中。 uvm_object_utils_begin:使用这个宏来开启field_automation机制。 uvm_object_utils_end:与uvm_object_*_begin成对出现,作为factory注册的结束标志。 与uvm_component相关的factory宏有: uvm_component_utils:用于将一个直接或间接派生自u...
uvm_component 存在于验证的整个过程中,其中存在的组任何组件( component )均不会被析构(释放内存空间),uvm_object 可以在验证的过程中任何时刻被实例化和析构 为了使用uvm_object和uvm_component自带的函数和机制,我们需要把我们继承类均注册到一张表格中,这张表格主要为了方便替换验证环境中已有的实例或者已注册的...
uvm_object_utils_end:总是和uvm_obeject*begin成对出现,作为factory注册的结束标志。 3.1.4 与uvm_component相关的宏 uvm_component_utils:用于把一个直接或间接派生自uvm_component的类注册到factory中。 uvm_component_param_utils:把一个直接或间接派生自uvm_component的参数化的类注册到factory中。 uvm_component...
由于uvm_object_registry #(T,“S”)是一个singletone的class,所以get_type()和get_object_type()的函数内容一样,区别在于返回值的句柄不同。对于get_type(),返回的是type_id的句柄;对于get_object_type(),返回uvm_object_wrapper的句柄。 这里面还有一个细节,我们在上一层传递的宏参数是(T, T),但实际使...
1. uvm_objection 和 uvm_component 基础 uvm_objection 和 uvm_component 是 uvm 中两大基础类,刚开始学习的时候,对两个东西认识不深,以为它们俩差不多,谁知道它两是一个是“爷爷”,一个是孙子的关系,两者贯穿整个 uvm 验证方法学。至于为什么要划分 uvm_object 和 uvm_component 呢,是因为前辈们在...
uvm_component_utils:用于将一个直接或间接派生自uvm_component的类注册到factory中。 uvm_component_utils_begin/uvm_component_utils_end:同上。 值得一提的是,uvm_component_utils_begin用于同时需要使用factory机制和field_automation机制注册的类。也许在前一篇文章中提到的my_transaction类中使用field_automation比较好...
uvm_object_utils_begin:当需要使用field_automation机制时,需要使用此宏。 uvm_object_param_utils_begin uvm_object_utils_end:与uvm_object_*_begin成对出现,facotry注册的结束标志。 3.1.5 与uvm_component相关的宏 在UVM中与uvm_component相关的factory宏有如下几个: ...
component与object是UVM中两大最基本的概念,也是初学者最容易混淆的两个概念。本节将介绍uvm_object与uvm_component的区别和联系。 3.1.1 uvm_component派生自uvm_object 通过对第2章搭建的验证平台的学习,读者应对UVM有了较直观的认识,不少读者会认为uvm_component与uvm_object是两个对等的概念。当创建一个类的时候...
uvm_env没有在uvm_component的基础上做任何扩展。 在UVM中与uvm_object相关的factory宏有如下几个: uvm_object_utils :用于把一个直接或间接派生自uvm_object的类注册到factory中。 uvm_object_param_utils :用于把一个直接或间接派生自uvm_object的参数化的类注册到factory中。 uvm_object_utils_begin :当需要...
`uvm_component_utils(DEF) function new(string name = "DEF", uvm_component parent=null); super.new(name, parent); endfunction endclass factory注册后的类对象创建 建议通过调用type_id::create()方法来创建所有类对象已促进验证平台的灵活性和可重用性。