- 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.