It is convenient to allow ports that may be linked to external pins/cores etc at arbitrary levels in the hierarchy to help prevent the extra work of creating ports and links. It is neat and abstracts away the details. However, during implementation, these need to be exposed at a top level for linking. A automated mechanism is needed to accomplish this.