When I use the Spartan-3 DCM, excessive jitter, a distorted duty cycle, and distorted period clock outputs result from the internal ground pins being disturbed by I/O or CLB switching, even while the LOCKED signal is High.
What might cause this problem to occur?
The internal ground pin is shared by the DCMs, the IOBs, and the CLBs. When there is a large change in VCCINT current, VCCO current, or both, there is a corresponding change in the IR (voltage) drop and a resulting drop change in the DCM power supply.
The internal drop of the DCM power supply will result in phase errors, duty cycle distortion, and/or excessive jitter on DCM clock outputs.
To prevent this, design the power supply so that the change in voltage over time is slow enough that the DCM can update its taps quickly enough to operate without creating excessive jitter or period distortion.
The following practices might help to reduce jitter or period distortion:
1. Use of the "Simultaneously Switching Outputs (SSO)" guidelines and proper bypassing/decoupling must be observed for best performance. For more information on SSO, see (Xilinx Answer 17861).
For power bypassing/decoupling guidelines, please refer to the PCB Design Checklist at: http://www.xilinx.com/products/design_resources/signal_integrity/si_pcbcheck.htmand (Xilinx XAPP623): "Power Distribution System (PDS) Design: Using Bypass/Decoupling Capacitors."
2. Increase the FACTORY_JF setting to 'FFFF. The DCM updates its taps approximately every twenty input clocks when the "FACTORY_JF" attribute is set to 0xFFFF. (The default settings of 0xC080h result in updates that occur much more slowly.) Note that a well-decoupled and stable power supply is the preferred solution.
Increasing the FACTORY_JF setting might introduce a small amount of jitter (~30 ps) because the DCM frequently updates its delay line. (This is why FACTORY_JF is not set to the maximum value by default.) If the power supply is unstable, the phase error introduced might be much bigger than the extra jitter introduced; therefore, increasing the FACTORY_JF setting might improve the design.
3. Limit changes in power supply or ground potentials to less than 10 mV in any 1 ms interval; this allows the DCM to properly track out the change (see the figure below).
4. Limit the noise at the power supply to be within 200 mV peak-to-peak (see the figure below).
6. If the voltage change cannot be prevented, place strong I/O drivers physically away from the DCM or use additional IOBs as extra ground pins (virtual grounds) on either side of the clock pins driving a DCM; this will reduce the internal IR drop and improve the jitter. You can create a "virtual ground" by configuring an IOB as an output driving GND ("0" logic level) and additionally grounding the I/O pins externally directly to the ground plane.
7. The CLK2X output is especially affected by the power or ground shift. Thus, using the CLKFX output with M=2 and D=1 might provide a better quality output when all IOBs and CLBs are switching. The CLKFX circuitry updates the tap every three input clocks in the DFS mode (as opposed to the slower update rate for the CLK2X output).