Calling of build phase?

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