The parameterized uvm_driver base class includes a built-in uvm_seq_item_pull_port called seq_item_port. The parameterized uvm_sequencer base class includes a built-in uvm_seq_item_pull_imp called seq_item_export. These are always connected in the agent.
Every UVM agent that I create declares a uvm_analysis_port that I connect to the tb_monitor's uvm_analysis_port.
Question for UVM Library Developers: Is there any reason the uvm_agent base class should not enhanced to be parameterized to the transaction type and include a built-in uvm_analysis_port?
Regards - Cliff Cummings