1.create_object_by_name,根据类名字创建object,原型: 一般只用第一个: 2.create_object_by_type,根据类型创建一个object,原型: 一般只用第一个: 3.create_component_by_name,根据类名创建一个component,原型: 1)第一个类名。 2)第二个父节点全名。 3)第三个新的component名字。 4)第四个父节点指针。 4...
419、479-480行是利用前面产生的uvm_factory的单例调用其中的create_component_by_name()函数产生一个指向uvm_component的uvm_object_wrapper类型的指针并downcast给uvm_test_top,factory机制我们后面会有专门的章节来讲,这里可以简单理解为根据我们传进来的testcase的名字产生了一个实例名为uvm_test_top的uvm_component...
我们这里看下uvm_factory里create_component_by_name的定义 返回的是一个uvm_component类型,最终再$cast给uvm_test_top。 通过以上代码就实现了将我们传入的testcase创建并$cast给uvm_test_top,这样uvm_test_top就作为所有testcase唯一的实例名,uvm树形结构打印full_name的最顶层(虽然他还有一个parent是uvm_root(ins...
1.create_object_by_name,依据类名字创建object,原型: 一般仅仅用第一个: 2.create_object_by_type。依据类型创建一个object,原型: 一般仅仅用第一个: 3.create_component_by_name,依据类名创建一个component,原型: 1)第一个类名。 2)第二个父节点全名。 3)第三个新的component名字。 4)第四个父节点指针。
fact.create_component_by_name(testname,"","bfm_test_top",uvm_top); $display("init_test_bfm_teset:Root has %d children",uvm_top.get_num_children()); end `endif end 首先使用uvm_config_db机制,将interface,传递给your uvm环境中,需要使用的interface的component中去。
line392:利用工厂模式,创建test。test的parent指定为”null",指向uvm_root。test的handle name = "uvm_test_top", type_name = "test_name"。 uvm_root作为全局变量,相比其他component, 内部提供的一些方法,在实际工作中被使用的几率更大些。 find() ...
+OVM_TESTNAME="testcase1" 这种命令行参数中,字符串工厂比较实用,仅此而已 字符串工厂实现更简单,不需要引入wrapper类。直接通过factory.create_component_by_name()函数来创建对象,返回类型必须通过向下转型(downcast)来赋值到实际的具体类型。 字符串工厂并没有类型检查,没有对象句柄方式安全。
fact.create_component_by_name(testname,"","bfm_test_top",uvm_top); $display("init_test_bfm_teset:Root has %d children",uvm_top.get_num_children()); end `endif end 首先使用uvm_config_db机制,将interface,传递给your uvm环境中,需要使用的interface...
uvm_component::print_override_info:打印当前组件的工厂重载信息 uvm_factory::print:打印全局工厂中注册的类型以及instance和type重载信息 uvm_factory::debug_create_by_type:打印工厂根据参数实际会创建的类型 uvm_factory::debug_create_by_name:打印工厂根据参数实际会创建的类型 ...
2. 调用UVM component内置函数 在uvm_component内部提供了print_config()内建函数,使用它可以打印出当前uvm_component范围可见的所有config_db操作内容。如果参数recurse为1,会把所有子components的可见的config_db操作内容也递归调用打印出来。如果audit为1,会把调用config_db进行操作的时间、次数和操作者路径也打印出来。