- The design should be fully synchronous.
- The top-level of the design should only contain instantiated logic groups, IOB logic, and clock logic (DCMs, BUFGs, etc.). Since area for top-level logic is generally not reserved, this prevents changing top-level logic placed within AREA GROUP RANGEs from causing changes in unchanged logic groups.
- Registers should be placed on all of the outputs of each logic group. This will ensure that the critical paths are contained inside of a logic group and eliminate possible problems with logic optimization across logic group boundaries.
- The timing constraints on the design should be realistic and should be attainable when processing the design without using Incremental Design.