I have this OFFSET OUT constraint in my UCF:
TIMEGRP "pad_group" OFFSET = OUT 7.69ns after "ClkIn" REFERENCE_PIN "ClkOut" TIMEGRP "reg_group";
However, I receive the following warning during Process "Generate Post-Place & Route Static Timing":
WARNING:Timing:3379 - The REFERENCE_PIN ClkOut on constraint TIMEGRP "pad_group" OFFSET = OUT 7.69 ns AFTER COMP "ClkIn" REFERENCE_PIN BEL"ClkOut" TIMEGRP reg_group; was not included as part of analysis. The REFERENCE_PIN keyword is being ignored.
How can I resolve this issue?
Solution 1: Use group specific OFFSET OUT
To use REFERENCE_PIN keyword in the group specific OFFSET OUT constraint, the following requirements must be met.
In a source-synchronous design, a typical usage is regenerating the output clock using an ODDR. The REFERENCE_PIN keyword will not work if the reference output clock pad is directly connecting from BUFG or the clock source (input clock pad or DCM/PLL/MMCM output clock).
#create pad group and include the output clock pad into the same group
NET "<data_pad_name_pattern>" TNM = pad_group;
NET "ClkOut" TNM = pad_group;
#create register group and include the output clock ODDR into the same group
INST "<data_registers_name_pattern>" TNM = register_group;
INST "ClkOutODDR" TNM = reg_group;
#write OFFSET OUT constraint
TIMEGRP "pad_group" OFFSET = OUT AFTER "Clkin" REFERENCE_PIN "ClkOut" TIMEGRP "reg_group";
Solution 2 : Use global OFFSET OUT
The reference output clock (ClkOut) must be a regenerated clock using an ODDR or any other sequential element as well when using global OFFSET OUT with REFERENCE_PIN keyword.
#write the global OFFSET OUT constraint.
OFFSET = OUT AFTER "Clkin" REFERENCE_PIN "ClkOut";