We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 18181

Virtex-II/-II Pro/-4/-5, Spartan-3/-3E/-3A/-3ADSP - What are the rules for cascading two DCMs in series?


I need to cascade two DCMs in series. Are there design rules and recommendations that must be followed?


The recommendations for cascading DCMs are as follows:
  • Do not cascade DCMs unless it is absolutely necessary; jitter accumulates when the DCMs are cascaded. Consequently, the output clock jitter of the second stage DCM is worse than the output clock jitter of the first stage DCM. If possible, implement your application using two DCMs in parallel instead of in series.
  • Due to the accumulative nature of the DCM jitter, Xilinx does not recommend cascading CLKFX to CLKFX in high-frequency mode (see details below on how to calculate accumulative jitter).
  • If the frequency of the DCM inputs allow it, use feedback for both DCMs.
  • Use the inverted LOCKED of DCM1 to create reset of DCM2. For all devices (excluding Virtex-4 FPGA) , the recommended length of a reset pulse is three VALID CLKIN cycles. Consequently, Xilinx recommends using the inverted LOCKED of DCM1 as the input to an SRL16, and the output of the SRL16 as the reset input of DCM2. See the Virtex-4 FPGA data sheet for information on the minimum reset pulse required for the DCM.
  • Use a dedicated clock line for CLKFX/CLK2X to CLKIN connection (for example, through a BUFG).
  • You are required to meet the input and output frequency and jitter specifications for each DCM.
  • M/D ratio:
    M and D values range per data sheet
    R1 = M/D ratio for DCM1
    R2 = M/D ratio for DCM2
    Recommended: R1 > R2 (if possible)
  • Jitter: the output jitter specifications for DLL outputs are provided in the data sheet. Use the Architecture Wizard to determine the jitter for CLKFX. Remember that Fin2 = Fin1 * M1 / D1, and then calculate the quadratic value. Jitter = Square Root (Jitter1*Jitter1 + Jitter2*Jitter2).
Cascading DCMs Example:

Cascaded DCMs
Cascaded DCMs

Virtex-4 Cascading DCMs Example:

For an example of cascading Virtex-4DCMs, see the Virtex-4 User Guide (UG070)in the Cascading DCMs section.
AR# 18181
Date Created 09/03/2007
Last Updated 12/15/2012
Status Active
Type General Article
  • Virtex-4 FX
  • Virtex-4 LX
  • Virtex-4 QPro/R
  • More
  • Virtex-4 SX
  • Virtex-5 FXT
  • Virtex-5 LX
  • Virtex-5 LXT
  • Virtex-5 SXT
  • Virtex-5 TXT
  • Virtex-5Q
  • Virtex-5QV
  • Virtex-II
  • Virtex-II Pro
  • Virtex-II Pro X
  • Virtex-II QPro/R
  • Less