I have a design in which an input clock feeds a DCM and the DCM creates clock constraints that are derived from the input clock. I have constrained the input clock using the following constraint:
NET "clock" PERIOD = 10 ns;
It is my understanding that constraints should be automatically created for the derived clocks. However, during timing analysis, it seems that the derived clocks are ignored and only the main input clock's PERIOD constraint applies. Why are the derived clocks not analyzed correctly?
The input clock's PERIOD specification is traced through the DCM, and the derived clocks are constrained correctly. However, the input clock PERIOD specification still takes precedence over the derived clock constraints; therefore, the timing tools analyze only the input clock.
NOTE: This only happens when the input clock's PERIOD is specified using the "NET" keyword (e.g., NET "clock" PERIOD = 10ns;).
There are two ways to work around this problem:
- Apply a TIG constraint to the input clock to prevent the tools from analyzing it.
- Use the TNM_NET keyword to create a group, then apply the PERIOD constraint to the group.
NET "clock" TNM_NET = "clock_grp";
TIMESPEC "TS_clock_grp" = PERIOD "clock_grp" 10 ns HIGH 50%;