Understanding force and release

In reply to BrianK:

A force applies to en entire net. It overrides what ever else is currently driving the net. When you connect a higher level net to a lower net through a port, they are collapsed into a single net that how have two different names. The direction you specified for the port is no longer relevant. The elaboration process essentially flattens out the hierarchy.

Things are different when one or both port connections (higher or lower) is a variable or an expression. In that case the port connection becomes an implicit continuous assignment in the direction specified by the port declaration. The effect of a force can only travel in the same direction as the continuous assignment