class uvm_seq_item_pull_port #(type REQ=int, type RSP=REQ)
extends uvm_port_base #(uvm_sqr_if_base #(REQ, RSP));
`UVM_SEQ_PORT(`UVM_SEQ_ITEM_PULL_MASK, "uvm_seq_item_pull_port")
`UVM_SEQ_ITEM_PULL_IMP(this.m_if, REQ, RSP, t, t)
bit print_enabled;
endclass
上面是seq_item_port的定义,而uvm_port_base 的定义是
virtual class uvm_port_base #(type IF=uvm_void) extends IF;
也就是说uvm_seq_item_pull_port 是uvm_sqr_if_base 的子类,这个地方uvm_port_base的父类是参数化的,所以uvm_seq_item_pull_port最终是继承自uvm_sqr_if_base因此拥有uvm_sqr_if_base的get_next_item和item_done。至于连接你可以自己再看看源码
上面的信息可以在https://verificationacademy.com/ ... 1.2/html/index.html自己查一查 |