Once all of the constraint have been broken up, then the method of how and when to apply these constraints become much easier.
- Static Timing Constraints
- Apply these at static synthesis and mark them for use in synthesis as well as implementation so that they are passed into the static synthesis DCP. As long as these constraints are properly applied, and exist in the post synthesis DCP, there is no need to reapply them at implementation time.
- Static Physical Constraints
- Apply these at implementation of the initial configuration. There is no need to reapply these for subsequent configurations, as the routed static DCP contains all of these, as well as the static timing constraints.
- Boundary Timing Constraints
- Apply these at implementation of the initial configuration. If the constraints were written without referencing any objects internal to the RM, then these constraints do not need to be reapplied for subsequent configurations.
- General RM Constraints
- Apply these at RM synthesis time and mark them for use in synthesis and
implementation. These constraints exist in the RM DCP and are applied when the
DCP is linked into the full design. Important: If there are additional OOC specific timing constraints that are used for OOC synthesis only (such as a
create_clockfor a module port), mark these for use in
out_of_contextso that they do not get applied to the full design. Failure to do this can result in unwanted constraint interaction when the top-level constraints are applied and conflict with these lower level OOC constraints.
- RP Specific RM Constraints
- Apply these at implementation of any configuration involving the specific RM at the specific RP location. All physical constraints within the RM (including IOB) are cleared out during carving, and must be reapplied.
If a post-route_design RM DCP is being reused, the physical information (block RAM, IOB,
etc) is all included within the RM DCP and there is no need to reapply these
constraints. However, the RM DCP (created with
does not contain any RM specific timing constraints, and all general RM constraints need
to be applied as well as any boundary timing constraint that reference RM objects.