The controller, considered in isolation and regardless of options at generation, is a fully synchronous design. Fundamentally, it only requires a clock period constraint on the system clock input. In the generic XDC, this constraint is placed on the system-level design example clock input and propagated into the controller. The constraint is discussed in Example Design Constraints.
The signal paths between the controller and the FPGA configuration system primitives must be considered as synchronous paths. By default, the paths between the ICAP or FRAME_ECC primitives and the controller are analyzed as part of a clock period constraint on the system clock, because the ICAP and FRAME_ECC clock pin is required to be connected to the same system clock signal.
The exception to this is the following
asynchronous ICAP signal outputs: PRERROR, PRDONE, and AVAIL pins. These signals are
synchronized internally to the IP and hence additional constraints are needed to ignore
these timing paths. See the
set_false_path constraints listed
in Example Design Constraints.
In general, the ICAP that the controller interfaces with needs to be placed in the top ICAP in a given SLR. For monolithic devices, no specific placement constraints are required because the tool places the ICAP and FRAME_ECC correctly without any directives.
For SSI devices, the tool requires a
specific constraint to place the ICAP and FRAME_ECC in the correct SLR. See the
set_property constraints listed in Example Design Constraints.