The clock edges used in the I/O constraint must reflect the data sheet of the external device
connected to the device. By default, the
set_output_delay commands define a delay constraint relative to the
rising reference clock edge. You must use the
clock_fall option to
specify a delay relative the falling clock edge. You can also specify separate
constraints for delays related to both rising and falling clock edges by using the
add_delay option with the second constraint on a port.
In most cases, the I/O reference clock edges correspond to the clock edges used to latch or launch the I/O data inside the device. By analyzing the I/O timing paths, you can review which clock edges are used and verify that they correspond to the actual hardware behavior. If by mistake a rising clock edge is used as a reference clock for an I/O path that is only related to the falling clock edge internally, the path requirement is ½-period, which makes timing closure more difficult.