我们知道UVM内建了三种port分别是port、export、imp。而这三种port的优先级是逐渐降低的,最终必须由imp来终结连接,也就是连接可以这样的:
1.port.connect(imp);
2.export.connect(imp);
3.port.connect.(export),export.connect(imp)。
而不能是port.connect(export)就完了。
而我在读别人的code时发现port.connect(xx_sqr.seq_item_export),之后没有发现这个seq_item_export连imp来终结,其实原因是seq_item_export其实是一个IMP。
请看uvm1.2 src/seq/uvm_sequencer.svh 第85行:
uvm_seq_item_pull_imp #(REQ, RSP, this_type) seq_item_export;
说明seq_item_export本质是uvm_sequencer的成员,是一个imp。