As discussed earlier in this section, keeping the critical path within the same hierarchical boundary is helpful in debugging and meeting timing requirements. Keep related signals in the same hierarchy for functional debug and modification purposes. The related signals can be probed and modified with relative ease. Signal names optimized by synthesis are easier to trace. This applies when they are contained within a single level of hierarchy.