- •Revision History
- •Table of Contents
- •About This Guide
- •Guide Contents
- •Additional Documentation
- •Additional Resources
- •Summary
- •Introduction
- •Clock Resources
- •Global Clocking Infrastructure
- •I/O Clocking Infrastructure
- •Spanning a Full Bank with a Single Global Clock Input With Two I/O Clocks
- •Clock Inputs
- •Clocking Structure Guidelines
- •SDR Data Rate (FD Register in IOB, No IOSERDES2)
- •DDR Data Rate (IDDR2, ODDR2, No IOSERDES2)
- •High-Speed IOSERDES2 Usage for Advanced Serialization
- •IOSERDES2 (SDR)
- •IOSERDES2 (DDR)
- •IOSERDES2 with PLL
- •Examples of High-Speed I/O Clock Network Connections
- •Clock Buffers and Multiplexers
- •Global Clock Input Buffer Primitives
- •Global Clock Buffer Primitives
- •BUFGMUX
- •BUFGMUX_1
- •BUFG
- •BUFGCE and BUFGCE_1
- •BUFH
- •Clock Buffers for the High-Speed I/O Clock Region
- •BUFIO2
- •BUFIO2_2CLK
- •BUFPLL
- •BUFPLL_MCB
- •BUFIO2FB
- •Clock Management Summary
- •DCM Summary
- •DCM Introduction
- •Compatibility and Comparison with Other Xilinx FPGA Families
- •DCM Functional Overview
- •Delay-Locked Loop
- •Skew Adjustment
- •Digital Frequency Synthesizer
- •Phase Shift
- •Fixed Phase Shift
- •Variable Phase Shift
- •Example 1
- •Example 2
- •Status Logic
- •DCM Primitives
- •DCM_SP Primitive
- •DCM_CLKGEN Primitive
- •DCM_SP Design Guidelines
- •Input Clock Frequency Range
- •Output Clock Frequency Range
- •Input Clock and Clock Feedback Variation
- •Cycle-to-Cycle Jitter
- •Period Jitter
- •DLL Feedback Delay Variance
- •Spread Spectrum Clock Reception
- •Optimal DCM Clock and External Feedback Inputs
- •LOCKED Output Behavior
- •Using the LOCKED Signal
- •RST Input Behavior
- •DCM_CLKGEN Design Guidelines
- •Dynamic Frequency Synthesis
- •Spread-Spectrum Clock Generation
- •Spread-Spectrum Generation
- •Fixed Spread Spectrum
- •Soft Spread Spectrum
- •Free-Running Oscillator
- •Introduction
- •Phase Lock Loop (PLL)
- •Aligning PLL using CLK_FEEDBACK and BUFIO2FB
- •General Usage Description
- •PLL Primitives
- •PLL_BASE Primitive
- •PLL_ADV Primitive
- •Clock Network Deskew
- •Frequency Synthesis Only
- •Jitter Filter
- •Limitations
- •VCO Operating Range
- •Minimum and Maximum Input Frequency
- •Duty Cycle Programmability
- •Phase Shift
- •PLL Programming
- •Determine the Input Frequency
- •Determine the M and D Values
- •PLL Ports
- •PLL Attributes
- •PLL Clock Input Signals
- •Counter Control
- •Clock Shifting
- •Detailed VCO and Output Counter Waveforms
- •Missing Input Clock or Feedback Clock
- •PLL Use Models
- •Clock Network Deskew
- •PLL with Internal Feedback
- •Zero Delay Buffer
- •Differential BUFIO2FB Zero Delay Buffer Example (Verilog)
- •Differential BUFIO2FB Zero Delay Buffer Example (VHDL)
- •DCM Driving PLL
- •PLL Driving DCM
- •PLL to PLL Connection
- •Dynamic Reconfiguration Port
- •Application Guidelines
- •PLL Application Example
Chapter 3: Phase-Locked Loops
Phase Lock Loop (PLL)
Spartan-6 devices contain up to six CMT tiles. The main purpose of PLLs is to serve as a frequency synthesizer for a wide range of frequencies, and to serve as a jitter filter for either external or internal clocks in conjunction with the DCMs of the CMT.
The PLL block diagram shown in Figure 3-2 provides a general overview of the PLL components.
D
PFD
CP
LF
VCO
O0
Clock Pin
O1
O2
M
O3
O4
O5
ug382_3_02_051209
Figure 3-2: Block Diagram of the Spartan-6 FPGA PLL
Input MUXes select the reference and feedback clocks from either the IBUFG, BUFG, IBUF, PLL outputs, or one of the DCMs. Each clock input has a programmable counter D. The Phase-Frequency Detector (PFD) compares both phase and frequency of the input (reference) clock and the feedback clock. Only the rising edges are considered because as long as a minimum High/Low pulse is maintained, the duty cycle is not important. The PFD is used to generate a signal proportional to the phase and frequency between the two clocks. This signal drives the Charge Pump (CP) and Loop Filter (LF) to generate a reference voltage to the Voltage Controlled Oscillator (VCO). The PFD produces an up or down signal to the charge pump and loop filter to determine whether the VCO should operate at a higher or lower frequency. When VCO operates at too high of a frequency, the PFD activates a down signal, causing the control voltage to be reduced, which decreases the VCO operating frequency. When the VCO operates at too low of a frequency, an up signal will increase voltage. The VCO produces eight output phases. Each output phase can be selected as the reference clock to the output counters. See Figure 3-3 and Figure 3-4. Each counter can be independently programmed for a given customer design. A special counter, M, is also provided. This counter controls the feedback clock of the PLL allowing a wide range of frequency synthesis.
94 |
Send Feedback |
|
www.xilinx.com |
Spartan-6 FPGA Clocking Resources |
|
UG382 (v1.10) June 19, 2015 |
Introduction
General
Routing
|
|
|
|
|
Lock Detect |
|
|
Clock |
|
|
|
|
|
Lock |
|
|
|
|
|
|
|||
Switch |
|
|
|
|
Lock Monitor |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
||
Circuit |
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
8-phase |
|
CLKIN1 |
D |
|
|
|
taps |
|
|
|
|
|
|||
CLKIN2 |
PFD |
CP |
LF |
VCO |
||
|
||||||
|
CLKFBIN |
|
|
|
|
|
|
|
|
CLKFBOUT |
8 |
||
|
|
|
|
M |
|
|
|
|
|
|
VCO feedback phase |
||
|
|
|
|
selection for negative |
||
|
|
|
|
phase-shift affecting |
||
|
|
|
|
all outputs |
|
|
O0
O1
O2
O3
O4
O5
ug382_c3_03a_020510
Figure 3-3: Detailed PLL Block Diagram: CLK_FEEDBACK = CLKFBOUT
General
Routing
|
|
|
|
|
|
Lock Detect |
|
|
Clock |
|
|
|
|
|
|
Lock |
|
|
|
|
|
|
|
|||
Switch |
|
|
|
|
|
Lock Monitor |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
||
Circuit |
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8-phase |
|
CLKIN1 |
D |
|
|
|
|
taps |
|
|
|
|
|
O0 |
|||
CLKIN2 |
PFD |
CP |
LF |
VCO |
|||
|
|
||||||
|
|
|
|
|
|
O1 |
|
|
|
|
|
CLKFBIN |
|
O2 |
|
|
|
|
M |
|
|
||
|
|
|
|
|
|
||
|
|
|
|
|
|
O3 |
|
|
|
|
|
|
|
O4 |
|
|
|
|
|
|
|
O5 |
VCO feedback phase selection for negative phase-shift affecting all outputs
ug382_c3_04new_021110
Figure 3-4: Detailed PLL Block Diagram: CLK_FEEDBACK = CLKOUT0
Spartan-6 FPGA Clocking Resources www.xilinx.com 95
UG382 (v1.10) June 19, 2015 |
Send Feedback |
|
Chapter 3: Phase-Locked Loops
Aligning PLL using CLK_FEEDBACK and BUFIO2FB
The Spartan-6 FPGA PLL contains dedicated feedback routing used to minimize phase noise and increase the performance of the PLL clocking beyond the BUFG performance limitations. To use this dedicated PLL routing, CLK_FEEDBACK must be set to CLKOUT0 and use the BUFPLL and BUFIO2FB as shown in Figure 3-5.
Note: BUFPLL and BUFPLL_MCB input clocks can be connected to either CLKOUT0 or CLKOUT1 from the PLL.
Clock Input |
|
I/O |
CLKIN |
Input |
BUFIO2 |
ILOGIC |
D |
|
|
|
CLK_FB |
|
BUFIO2FB |
|
M |
CLKMUX |
|
|
CLKOUT0 |
|
O0 |
|
PLL |
|
CLKFBOUT |
|
CLK_FEEDBACK = CLKOUT0 |
|
IOCLK |
|
BUFPLL |
|
ug382_c3_04_081710 |
Figure 3-5: PLL Using CLKOUT0 Feedback
In high-speed source-synchronous designs, the feedback clock runs at the IOCLK frequency. To allow the feedback clock to match the input clock, the feedback clock is further divided using the CLKFBOUT_MULT as shown in Figure 3-4. Both CLKOUT0_DIVIDE and CLKFBOUT_MULT affect the VCO frequency.
fVCO = |
fIN × CLKFBOUT_MULT × CLKOUT0_DIVIDE |
Equation 3-1 |
----------------------------------------------------------------------------------------------------------------------------------DIVCLK_DIVIDE |
To accurately deskew the input routing, the BUFIO2FB buffer must be used as shown in Figure 1-40, page 56. The BUFIO2FB is matched to the BUFIO2 buffer limiting deskewing to a single PLL.
96 |
Send Feedback |
|
www.xilinx.com |
Spartan-6 FPGA Clocking Resources |
|
UG382 (v1.10) June 19, 2015 |
Introduction
When using CLK_FEEDBACK = CLKOUT0, the frequency for the CLKFBIN can be different than the frequency at the PFD. Be careful when setting
CLK_FEEDBACK = CLKOUT0, because the PFD matches the frequency between the input clock (Equation 3-2) and the frequency from the feedback clock.
FCLKIN |
Equation 3-2 |
FPFD_CLKIN = DIVCLK-----------------------_---DIVIDE-------------------- |
When CLK_FEEDBACK = CLKFBOUT, the frequency of CLKFBOUT (Equation 3-3) matches the feedback frequency for the PFD.
FVCO |
Equation 3-3 |
FCLKFBOUT = CLKFBOUT-------------------------------------------------------_MULT |
|
FPFD_CLKFBOUT = FCLKFB |
Equation 3-4 |
When CLK_FEEDBACK = CLKOUT0, the output frequency for CLKOUT0 (Equation 3-5) can be different than the feedback frequency depending on CLKFB_MULT. As shown in Figure 3-4, the frequency for CLKOUT0 is divided by CLKFB_MULT resulting in a PFD frequency that is dependent on CLKFB_MULT (Equation 3-6).
FVCO |
|
FCLKOUT0 = CLKOUT---------------------------0---_----DIVIDE--------------------- |
Equation 3-5 |
FCLKOUT0 |
|
FPFD_CLKOUT0 = CLKFB---------------------_---MULT----------------- |
Equation 3-6 |
From Equation 3-5, the output frequency for CLKOUT0 can be different than the VCO frequency.
Spartan-6 FPGA Clocking Resources www.xilinx.com 97
UG382 (v1.10) June 19, 2015 |
Send Feedback |
|
