uvm_create_on
时间: 2023-08-13 10:19:02 浏览: 376
`uvm_create_on`是UVM中的一个函数,用于创建一个新的对象,并将其添加到指定的UVM组件上。它的语法如下:
```verilog
function T uvm_create_on (string name, parent, string inst_name="")
```
其中,`name`是要创建的对象的类型,`parent`是该对象的父组件,`inst_name`是可选的实例名。
该函数将返回一个指向新创建对象的句柄。在创建对象时,它还将自动调用对象的构造函数。
示例:
```verilog
class my_env extends uvm_env;
my_driver drv;
function void build_phase(uvm_phase phase);
super.build_phase(phase);
drv = uvm_create_on("drv", this);
endfunction
endclass
```
在上面的例子中,`uvm_create_on`函数用于在`my_env`环境中创建一个名为`drv`的`my_driver`驱动器对象,并将其添加到环境中。
相关问题
·uvm_create
引用:在uvm中,除了使用uvm_do来产生transaction,还可以使用uvm_create来创建transaction。
引用:具体而言,uvm_create实际上是调用了uvm_create_on,而uvm_create_on又调用了create_item。在create_item中,通过调用create_object_by_type并传入this.get_full_name()作为parent_inst_path,从而成功进行了override操作。
因此,使用uvm_create可以方便地在component中进行inst override操作,无需传入第三个参数。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [UVM:6.3.2 uvm_create 与 uvm_send](https://blog.csdn.net/tingtang13/article/details/46534643)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [[UVM] uvm_create与type_id::create](https://blog.csdn.net/lbt_dvshare/article/details/81386918)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
uvm_create
uvm_create是一个在UVM中用于创建对象的宏。它实际上是调用了uvm_create_on宏,而uvm_create_on又会调用create_item函数。在create_item函数中,它会调用create_object_by_type来创建对象,并将this.get_full_name()作为参数传递给parent_inst_path,以成功进行override。