A system that routes nets within an integrated circuit. During operation,
the system receives a representation for the integrated circuit, which
includes block boundaries for physical partitions of the IC generated
from a hierarchical design placement of the integrated circuit. The
system then classifies each net in the integrated circuit based on the
location of pins associated with the net. Next, the system generates
routing constraints for each net based on the classification of the net
and applies a feedthrough constraint to the physical partitions to
restrict nets from feeding through physical partition boundaries.
Finally, the system routes each net using the routing constraints for the
net and the feedthrough constraints for the physical partitions. This
routing is performed based on these block boundaries prior to finalizing
the hierarchical design placement, thereby facilitating early detection
of congestion or timing violations which can be corrected early in the
design process.