I am new for UVM . I have doubt in phases why connect phase is bottom to top approach, why can't top to bottom. I have clear idea about build phase is top to bottom approach because before child creation, the parent should be created. But I can't understand connect phase.
It is very simple. The build phase has to be that way because the parent component's build_phase constructs the child components. You couldn't call the child's build_phase before the parent's build_phase because the child objects haven't been constructed yet. An you need a constructed object to call its method.
The build phase has to be constructed first so that the top level components has to be built before moving down to the next level of hierarchy as we can consider our phase phasing structure as an acyclic graph.
The final phase is also top down since all the testcases and the stimulus related procedures ends here and it is the final stage before exit.Hence it is being used to check for the final adjustment or loopback is needed or not before exit.
Rest other phases are bottom up phases,take the example of connect phase,it is basically used for TLM interconnection between the components and generally its needed to move up the hierarchy as the connections are mostly port to port,port to export and export to export.