普通组件我们一般用 factory机制进行构造。方法如下:
B = A::type_id::create("B",this)
但是对于TLM端口,并没有factory机制的支持。因此必须调用内在的父类的构造方法。
那怎么办,先看一下uvm_analysis_port的内容。
查阅资料uvm_tlm_if_base这个类声明了TLM API的所有方法。而uvm_port_base是生成处理TLC之间ports,exports等句柄的基类,目的控制组件通信用的。
uvm_port_base中定义了构造方法。其参量如下:
因此利用下句式进行构造:
A = new("A",this)
举个实例,在bulid_phase里面有: