Design Hierarchically
Design separate functions in separate design files in order to yield the most control over the implementation of the design in the device
- Partition subdesigns at register outputs
Allows easier and more efficient assignments of logic options and synthesis styles
Allows easier and faster recompilation of alternative implementations
- Example: try different counter implementations by replacing the symbol or instance declaration