普通组件我们一般用 factory机制进行构造。方法如下:

B = A::type_id::create("B",this)

但是对于TLM端口,并没有factory机制的支持。因此必须调用内在的父类的构造方法。

那怎么办,先看一下uvm_analysis_port的内容。

uvm中tlm一个细节问题 (not factory)

uvm中tlm一个细节问题 (not factory)

查阅资料uvm_tlm_if_base这个类声明了TLM API的所有方法。而uvm_port_base是生成处理TLC之间ports,exports等句柄的基类,目的控制组件通信用的。

uvm_port_base中定义了构造方法。其参量如下:

uvm中tlm一个细节问题 (not factory)

因此利用下句式进行构造: 

A = new("A",this)

举个实例,在bulid_phase里面有:

uvm中tlm一个细节问题 (not factory)


相关文章: