In reply to tfitz:
Can you please explain how the connect_phase() is bottom-up ?
In uvm_test.connect_phase() - we have nothing to connect.
In uvm_env.connect_phase() - assume that we connect the input_monitor with scoreboard predictor and output_monitor with scoreboard comparator -
input_monitor.analysis_port.connect(predictor.analysis_export)
output_collector.analysis_port.connect(comparator.analysis_export)
In uvm_agent.connect_phase() - we connect the driver to the sequencer
uvm_driver.seq_item_port.connect(uvm_sqr.seq_item_export);
In this case as the connect_phase() is called in the below order
1)uvm_test.connect_phase()
2)uvm_env.connect_phase()
3)uvm_agent.connect_phase()
The first the (input_monitor gets connected to predictor) and then (output_collector gets connected to comparator)
Then later at last the driver gets connected to sequencer
So this connection look top-down. Please correct me
Thanks in advance