Output Forward Clock Delay (GPIO output)
This example shows how to set constratints for an input forward clock.
The SDC constraint formulas for the foward clock delay are:
set_output_delay -clock <clock> -reference_pin <clkout interface name> \
-max <max calculation> <ports>
set_output_delay -clock <clock> -reference_pin <clkout interface name> \
-min <min calculation> <ports>
Reference Pin
With forward clocks, you use the -reference_pin option to include
the clock latency delay in the I/O constraint. The reference pin target is the pin
name of the GPIO output used for the clock.
Constraint Calculation
Calculate the min and max constraints using the following equations:
<max calculation> = <max board constraint> + GPIO_OUTmax - <GPIO_OUT for clock pad>max
<min calculation> = <min board constraint> + GPIO_OUTmin - <GPIO_OUT for clock pad>min
The following example shows how to calculate the delays and set the constraints.
Constraining Output Forward Clock
o output with respect to clock
clk_fwd with a max board constraint of 2 ns and a min
board constraint of 2 ns. The non-registered GPIO configuration data from
the Interface Designer timing report file is:Non-registered HSIO GPIO Configuration:
========================================
+---------------+----------+-------------+----------+----------+
| Instance Name | Pin Name | Parameter | Max (ns) | Min (ns) |
+---------------+----------+-------------+----------+----------+
| clk | clk | GPIO_CLK_IN | 0.828 | 0.552 |
| i | i | GPIO_IN | 0.828 | 0.552 |
| clk_fwd | clk_fwd | GPIO_OUT | 2.205 | 1.470 |
| o | o | GPIO_OUT | 2.205 | 1.470 |
+---------------+----------+-------------+----------+----------+
GPIO_OUT value for
clk_fwd.divclk,
which is only used to drive the clk_fwd signal off chip. Therefore,
the set_input_delay constraint is relative to that generated clock.
See Example: FPGA Forwarded Clock for a more complete example.set_output_delay -clock divclk -reference_pin clk_fwd -max 2 [get_ports {o}]
set_output_delay -clock divclk -reference_pin clk_fwd -min 2 [get_ports {o}]