In reply to georgean:
I have attached a small example that demonstrates the calling order for some of the UVM phases given a simple hierarchy. A better term would have been depth-first traversal instead of bottom-up.
Note that calling the connect() method is not the same as calling the connect_phase(). The connect() builds a database of connections to be made between components. The order that you call the connect() methods does not matter as long as both ends of the connection have been constructed before making the call, and all connect() calls have been made before the end of the connect_phase. Conceivably, you could call the connect() method during the build_phase() or constructor, as long as the other requirements are met.
top-down.sv.gz (529 Bytes)