- •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
Clock Buffers and Multiplexers
S
I0
I1
O
ug382_1_16_120809
Figure 1-24: BUFGMUX_1 (CLK_SEL_TYPE = SYNC) Timing Diagram
In Figure 1-24:
•The current clock is I0.
•S is activated High.
•If I0 is currently Low, the multiplexer waits for I0 to be asserted High.
•Once I0 is High, the multiplexer output stays High until I1 transitions Low to High.
•When I1 transitions from Low to High, the output switches to I1.
•No glitches or short pulses can appear on the output.
BUFG
The BUFGMUX is the physical clock buffer in the device, but it can be used as a simple single-input clock buffer. The BUFG clock buffer primitive (see Figure 1-25) drives a single clock signal onto the clock network and is essentially the same as a BUFGMUX, without the clock select mechanism. BUFG is the generic primitive for clock buffers across multiple Virtex and Spartan architectures.
BUFG
O
I
ug382_c1_17_120809
Figure 1-25: BUFG Primitive
The BUFG is built from the BUFGMUX as shown in Figure 1-26.
BUFGMUX
I1
O
I I0
S
GND
ug382_c1_18_120809
Figure 1-26: BUFG Built from a BUFGMUX
Spartan-6 FPGA Clocking Resources www.xilinx.com 41
UG382 (v1.10) June 19, 2015 |
Send Feedback |
|
Chapter 1: Clock Resources
BUFGCE and BUFGCE_1
The BUFGCE primitive creates an enabled clock buffer using the BUFGMUX select mechanism (see Figure 1-27). BUFGCE is a global clock buffer with a single gated input. Its O output is 0 when clock enable (CE) is Low (inactive). When clock enable (CE) is High, the I input is transferred to the O output. The BUFGCE truth table is shown in Table 1-15.
|
|
|
|
|
BUFGCE |
|||
|
|
CE |
|
|
|
|
O |
|
|
|
|
|
|
|
|||
|
|
I |
|
|
|
|
||
|
|
|
|
|
|
|||
|
|
|
|
|
ug382_c1_19_120809 |
|||
|
|
|
|
|
|
|||
|
|
Figure 1-27: BUFGCE Primitive |
||||||
Table 1-15: BUFGCE Truth Table |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
S Input |
O Output |
|
|
||||
|
|
|
|
|
|
|
|
|
I |
|
CE |
|
O |
|
|
||
|
|
|
|
|
|
|
|
|
X |
|
0 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
X |
|
1 |
|
|
I |
|
|
|
|
|
|
|
|
|
|
|
|
The BUFGCE is built from the BUFGMUX by multiplexing a fixed value for one input. The default value is Low when disabled. The BUFGCE_1 primitive is similar with VCC connected to I1, making the output High when disabled. It also uses the BUFGMUX_1 primitive to provide glitchless operation during the transition between inputs.
Figure 1-28 shows the equivalent functionality, although the library element truly is a primitive. The CE inversion is built into the BUFGMUX functionality. The 0 source can be fed from any convenient unused LUT.
|
|
BUFGMUX |
GND |
I1 |
|
|
O |
|
|
|
|
I0
I
S
INV
CE_IN
ug382_c1_20_120809
Figure 1-28: Equivalent Functionality of BUFGCE
42 |
Send Feedback |
|
www.xilinx.com |
Spartan-6 FPGA Clocking Resources |
|
UG382 (v1.10) June 19, 2015 |
Clock Buffers and Multiplexers
BUFH
The horizontal clock buffer (BUFH) allows access to one half of an HCLK row clock. The BUFH clock primitive (see Figure 1-29) drives a single clock signal in the half of the HCLK row. The BUFH is used to clock interconnect logic, SelectIO logic, DSP48A1 tiles, or block RAM resources. The BUFH is accessed using FPGA interconnect logic or directly using any clock output from a DCM, PLL, or GTPA1_DUAL tile in the same HCLK row.
BUFH
I O
UG382_c1_28_060310
Figure 1-29: BUFH Primitive
Similar to the BUFG restrictions, the BUFH clock buffers are designed to drive clock signals. When a BUFH is used to reset or set interconnect logic, its placement is limited to the top eight BUFH locations in the HCLK row. When used as an asynchronous set or reset for a block RAM, as a clock enable, or as combinatorial logic, the only the lower eight BUFH locations can be used.
BUFH is not recommended for the DCM feedback path or PLL feedback path.
Clock Buffers for the High-Speed I/O Clock Region
To improve the performance of the I/O tile, Spartan-6 FPGAs contain a dedicated I/O clock network for the connections where performance is most critical. I/O clock buffers Table 1-16 work with the IODELAY2, IDDR2, ODDR2, ISERDES2, and OSERDES2 logic in the I/O tile by connecting to both the I/O clock network and the FPGA logic. The I/O clock buffer outputs restricted to the I/O clock network are listed in Table 1-17.
Table 1-16: I/O Clock Buffers
Primitive |
Input |
Output |
Control |
|
|
|
|
BUFIO2 |
I |
IOCLK, DIVCLK, SERDESSTROBE |
– |
|
|
|
|
BUFIO2_2CLK |
I, IB |
DIVCLK, IOCLK, SERDESSTROBE |
– |
|
|
|
|
BUFPLL |
GCLK, PLLIN, LOCKED |
IOCLK, SERDESSTROBE, LOCK |
– |
|
|
|
|
BUFPLL_MCB |
PLLIN0, PLLIN1 |
IOCLK0, IOCLK1, SERDESSTROBE0, |
– |
|
|
SERDESSTROBE1 |
|
|
|
|
|
BUFIO2FB |
I |
O |
– |
|
|
|
|
Spartan-6 FPGA Clocking Resources www.xilinx.com 43
UG382 (v1.10) June 19, 2015 |
Send Feedback |
|
Chapter 1: Clock Resources
Table 1-17 lists ports that can be used on the I/O clock network.
Table 1-17: I/O Clock Network Signals
Primitive |
I/O Clock Network Inputs |
I/O Clock Network Outputs |
Resource |
|
|
|
|
BUFIO2 |
|
IOCLK(1), SERDESSTROBE(1) |
I/O Clock Buffer |
BUFIO2_2CLK |
|
IOCLK(1), SERDESSTROBE(1) |
I/O Clock Buffer |
BUFPLL |
|
IOCLK(1), SERDESSTROBE(1) |
I/O Clock Buffer |
BUFPLL_MCB |
|
IOCLK0(1), IOCLK1(1), |
I/O Clock Buffer |
|
|
SERDESSTROBE0(1), |
|
|
|
SERDESSTROBE1(1) |
|
BUFIO2FB |
I |
|
I/O Clock Buffer |
|
|
|
|
ILOGIC2 |
C0, C1 |
|
I/O Tile Logic |
|
|
|
|
OLOGIC2 |
C0, C1 |
|
I/O Tile Logic |
|
|
|
|
ISERDES2 |
CLK0, CLK1, IOCE |
|
I/O Tile Logic |
|
|
|
|
OSERDES2 |
CLK0, CLK1, IOCE |
|
I/O Tile Logic |
|
|
|
|
IODELAY2 |
IOCLK0, IOCLK1 |
DATAOUT |
I/O Tile Logic |
|
|
|
|
GTP_DUAL |
|
CLKOUT0[1:0], CLKOUT1[1:0] |
GTP_DUAL Tile |
|
|
|
|
Notes:
1. Outputs only to the I/O clock network. Does not connect to FPGA logic.
Each IOLOGIC supports up to three clocks coming from the I/O clock network. Each
IOCLK can be connected to one of eight possible clock sources:
•Two BUFGMUX clock connections. At least one of the clocks must come from BUFGMUX_X2Y[4:1] or BUFGMUX_X3Y[8:5]
•Four BUFIO2 routing connections from a BUFIO2 in the same BUFIO2 clocking region
•Two BUFPLL routing connections from a BUFPLL in the same edge of the device.
44 |
Send Feedback |
|
www.xilinx.com |
Spartan-6 FPGA Clocking Resources |
|
UG382 (v1.10) June 19, 2015 |
