11.3.6 Partitioning a Design

For large designs, it is often desirable to break the design up into smaller blocks. When partitioning a design into various blocks, it is good design practice to have registers at hierarchical boundaries. This eliminates the need for time budgeting on the inputs and outputs. The following example shows how to modify your HDL code so that registers are placed at hierarchical boundaries.