Xilinx XAPP589 All Digital VCXO Replacement for
Transcription
Xilinx XAPP589 All Digital VCXO Replacement for
Application Note: Virtex-6 and 7 Series FPGAs All Digital VCXO Replacement for Gigabit Transceiver Applications XAPP589 (v2.0) October 16, 2012 Summary Authors: David Taylor, Matt Klein, and Vincent Vendramini This application note delivers a system that is designed to replace external voltage controlled crystal oscillator (VCXO) circuits by utilizing functionality within each serial gigabit transceiver (GTX). A common design requirement is to frequency or phase lock a GTX output to an input source (known as loop, recovered, or slave timing). Traditionally, an external clock cleaning device or VCXO and PLL components are used to provide a high-quality clock reference for the GTX, since FPGA logic-based clocks are generally too noisy. While effective, external clock components carry a power and cost penalty that is additive as each individual clock channel is generated. When using many channels or in low-cost systems, the cost can be significant. Additionally, adding many external clock sources provides more opportunity for crosstalk and interference at the board level. The system described in this application note provides a method to effectively replace these external clock components using a combination of unique Xilinx GTX features in conjunction with a high-performance FPGA logic based digital PLL (DPLL). Each GTX has a phase interpolator (PI) circuit in the high-speed analog PLL output circuits that provides, on a individual GTX channel basis, the ability to phase and frequency modulate the transmit clock operating the GTX. Using a fully digital interface, the phase interpolator can be phase and frequency controlled from the FPGA logic resources under control of a high-resolution programmable DPLL. In conjunction with the FPGA logic DPLL, the phase interpolator provides the ability to phase or frequency modulate the GTX data output directly locking to an input reference pulse or clock while providing an built-in clock cleaning filter function. Unlike conventional solutions, high-quality system results because the clocking components are contained within the GTX. The reference design circuit provides a fully integrated DPLL and GTX phase interpolator system which can be instantiated for each transceiver channel used. The GTX can phase or frequency lock to an input reference signal. The DPLL enables generation of a synchronous GTX data output with run-time configurable parameters (e.g., gain, cutoff frequency, and clock divider values) to enable the user to set up the operation specifically for the end application. This particularly highlights the flexibility of the reference input signal and DPLL cleaning bandwidth. The reference design circuit can lock an individual GTX channel to up to ±160 ppm from the reference oscillator and programmatically provide jitter cleaning bandwidths in the range from 0.1 Hz to 1 KHz. The GTX transceiver block (in a Virtex-6 FPGA) operates at data rates of up to 3.125 Gb/s in the clock-locking mode. In the 7 series FPGAs, the GTX transceiver is capable of operating at up to 12.5 Gb/s. Typical applications for this circuit include video SD/HD/3G SDI, Sync E, IEEE1588, SDH, SONET, and OTN. System Applications A number of different applications need external VCXOs and PLLs or clock-cleaning components on a per transceiver transmitter basis. Some application examples include: • OTN muxponders for trunk to tributary slaving of outputs. © Copyright 2011–2012 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Zynq, Vivado and other designated brands included herein are trademarks of Xilinx in the United States and other countries. All other trademarks are the property of their respective owners. XAPP589 (v2.0) October 16, 2012 www.xilinx.com 1 System Applications • Broadcast equipment including switchers and routers using SD, HD, and 3G SDI video outputs. • Synchronous Ethernet. • Recovered media clock generation (per IEEE specification 1588). External components used to do this task are a high-impact expense for several reasons: • Significant BOM cost, an estimated $10 to $15 per additional VCXO/PLL or clock cleaner. • Significant power consumption (300 mW to 500 mW) per additional VCXO/PLL or clock cleaner. • Board space and PCB complexity, both due to additional board area required and careful noise-reduction design layout requirements. Figure 1 shows a general use case where inputs are received through any one of a number of types of links carrying data. There could be one input link per output link or a group of input links that data is striped across, which are de-multiplexed to form output links. While each input link can share one reference clock, the challenge is that each output link needs its own VCXO/PLL or clock cleaning system to provide a clean reference to the transceiver to serialize outgoing data and produce the expected low-jitter output signal. X-Ref Target - Figure 1 VCXO/PLL or Clock Cleaner CTRL or CLK Control/CLK Clean Clock New CLK Demultiplexer, Switcher, Router, Channelizer Data Inputs SerDes Output #1 SerDes Output #2 SerDes Output #3 SerDes Output #4 SerDes Output #5 ~$15 per VCXO SerDes Output #N Inputs can share one XTAL, but each unique output needs a VCXO X589_01_041212 Figure 1: XAPP589 (v2.0) October 16, 2012 Typical Design with Multiple VCXOs (One per Unique Output Rate) www.xilinx.com 2 System Applications By using GTX transceivers the need for external VCXO/PLLs and clock cleaners can be eliminated. The basics of the reference design method are: • Each Virtex-6 FPGA and 7 series FPGAs GTX transceiver has a transmit clock phase interpolator (TX PI) for the transmit serial/deserializer bit clock. • Each phase interpolator in each transmit serial/deserializer can be independently, dynamically, and continuously changed in phase and hence, shifted in frequency. There are a number of benefits to this implementation: • Significant BOM cost reduction, an estimated $15 to $20 per additional VCXO/PLL. • Significant power consumption savings (300 mW to 500 mW) per VCXO/PLL. • Reduced board space and PCB complexity. • Ability to have four unique differentiated transmission rates within a GTX Quad. An example block diagram of this new method is shown in Figure 2. The output VCXOs/PLLs or clock cleaners are brought into the FPGA using the GTX Quad’s phase-shifting functionality. X-Ref Target - Figure 2 Digital PLL Control New CLK Inputs Demulitplexer, Switcher, Router, Channelizer DATA Fixed REFCLK(s) SerDes Output #1 SerDes Output #2 SerDes Output #3 SerDes Output #4 SerDes Output #5 SerDes Output #N DPLL DPLL DPLL DPLL DPLL Output VCXOs Removed X589_02_041212 Figure 2: XAPP589 (v2.0) October 16, 2012 Phase-Shifting Solution Block Diagram www.xilinx.com 3 System Applications Solution Examples This section describes solutions for broadcast switcher or router applications and OTN trunk to tributary demultiplexer applications. Normally, an external VCXO/PLL or clock cleaner is required for each unique output transmit serial/deserializer channel. This is very expensive because each parts per million (PPM) channel variation requires an additional circuit, even if the output base rate is the same (e.g., 1.485 Gb/s + 50 ppm and 1.485 Gb/s – 20 ppm). Example 1: Broadcast Switcher or Router In this example (Figure 3), a broadcast switcher or router is receiving SD/HD/3G streams from different cameras or unrelated sources. The video is processed inside of an FPGA, but the outputs of FPGA must be exactly locked to some of the input channels. Individual HD-SDI and 3G-SDI inputs, for instance, while nominally running at 1.485 Gb/s and 2.97 Gb/s might not be locked to each other. The inputs could be locked to their original sources, which could vary from the nominal frequency by up to 150 ppm. Normally, when individual outputs of the FPGA are meant to be locked to these PPM varied inputs, the design includes an external VCXO/PLL or clock cleaner for each PPM varied output. By using the FPGA’s TX PI, the complex and expensive components are instead designed into the transmit serial/deserializer functionality. X-Ref Target - Figure 3 SD/HD/3G #1 RX SerDes Logic Resources TX SerDes SD/HD/3G #1 FIFO RX SerDes Digital PLL Rate Generator SD/HD/3G #2 RX SerDes Phase Det. LPF, FRQCTRL RX SerDes SD/HD/3G #4 RX SerDes Routing and Switching Function Digital PLL SD/HD/3G #3 Phase Det. LPF, FRQCTRL Digital PLL Phase Det. LPF, FRQCTRL TX PI + SerDes TX PI CTRL TX PI + SerDes TX PI CTRL SD/HD/3G #4 FIFO Digital PLL Rate Generator TX PI CTRL SD/HD/3G #3 FIFO Rate Generator TX PI + SerDes SD/HD/3G #2 FIFO Rate Generator REFCLK (1-2 Fixed XOs) Phase Det. LPF, FRQCTRL TX PI + SerDes TX PI CTRL SD/HD/3G #N RX SerDes SD/HD/3G #N FIFO Digital PLL Rate Generator Phase Det. LPF, FRQCTRL TX PI + SerDes TX PI CTRL X589_03_041212 Figure 3: Broadcast Switcher or Router without External VCXOs/PLLs or Clock Cleaners on the Outputs XAPP589 (v2.0) October 16, 2012 www.xilinx.com 4 System Applications Example 2: OTN Muxponder In this example (Figure 4), within an OTN trunk there are multiple streams of data. Each stream within the trunk has a unique rate. In a number of cases, an FPGA or other device receiving the trunk will demultiplex it into its component streams. Each source stream, even at approximately the same rate, has an oscillator or clock system that originally sourced the stream in the trunk. The timing of the recovered stream must be preserved on a stream by stream basis. For example, when there are multiple synchronous Ethernet streams that are each nominally at 1.25 Gb/s, but not from the same source, each stream (even if it is the same type) can vary by a few PPM. The recovered outputs must each be exactly locked to their original source, which requires a phase detector, low-pass filter, VCXO, and PLL external to the FPGA per unique output channel. The Xilinx FPGA’s TX PI in the transmit serial/deserializer can take fixed nominal oscillator rates as REFCLKs and effectively slave them within the transmit serial/deserializer to the unique recovered rate with low jitter and without the need for external VCXOs/PLLs or clock cleaners. X-Ref Target - Figure 4 RX SerDes Logic Resources TX SerDes FIFO Digital PLL Rate Generator Phase Det. LPF, FRQCTRL FIFO Digital PLL RX SerDes RX SerDes Demultiplexer Rate Generator 10G/40G/100G Trunk with Multiple Links and Streams Phase Det. LPF, FRQCTRL FIFO Digital PLL Rate Generator Phase Det. LPF, FRQCTRL FIFO Digital PLL Rate Generator Phase Det. LPF, FRQCTRL FIFO Digital PLL Rate Generator Phase Det. LPF, FRQCTRL TX PI + SerDes REFCLK (Fixed XOs) Stream 1 TX PI CTRL TX PI + SerDes Stream 2 TX PI CTRL TX PI + SerDes Stream 3 TX PI CTRL TX PI + SerDes Stream 4 TX PI CTRL TX PI + SerDes Stream N TX PI CTRL X589_04_041212 Figure 4: OTN Trunk to Tributary Demultiplexor and Delivery without External VCXOs/PLLs or Clock Cleaners In these examples, and for many other cases, the unique Xilinx transmit clock phase interpolator functionality built into the transmit serial/deserializer and the FPGA-based phase detector, digital PLL, low-pass filter, and controlled transmit serial/deserializer phase interpolator replace expensive external VCXO/PLLs or clock cleaners. XAPP589 (v2.0) October 16, 2012 www.xilinx.com 5 VCXO Replacement Theory VCXO Replacement Theory Virtex-6 FPGAs contain a key functional block in the GTX transceiver transmitter that enables functional replacement of a VCXO. This block, a phase interpolator, produces an output clock with a fine phase shift relative to an input clock. The fine phase shift is produced in response to a control word. The control word allows selection of a phase between 0° and 360°. To create the equivalent of a VCXO with only a fixed frequency source, a phase is selected by the phase interpolator and the selected phase selection value is continuously updated with a linearly increasing or decreasing phase. This is equivalent to a positive or negative frequency shift proportional to the rate of change of the controlling phase. See Equation 1 through Equation 5. dΦ IN ( t ) Equation 1 f = -------------------dt Φ IN ( t ) = fIN dt = f IN t Equation 2 Φ OUT ( t ) = Φ IN ( t ) + Φ CONTROL ( t ) Equation 3 dΦ OUT ( t ) dΦ IN ( t ) dΦ CONTROL ( t ) Differentiating -------------------------- = -------------------- + ----------------------------------------dt dt dt Equation 4 dΦ OUT ( t ) dΦ CONTROL ( t ) f OUT = -------------------------- , f OUT = f IN + ----------------------------------------dt dt Equation 5 From these equations, the output frequency is shifted by the rate of change of the control phase ΦCONTROL with respect to time. Figure 5 shows a functional block diagram of the phase interpolator, which includes the inputs and outputs used in conjunction with the high-speed serial clock input from the SerDes transmit PLL and other circuits that participate in the complete solution. This block first produces a number of primary phases from the n-phase generation block. This block generates x phases separated by 360°/x. In the case of the transmit serial clock phase interpolator, there are eight primary phases (0°, 45°, 90°, 135°, 180°, 225°, 270°, and 315°). The phase-select block in Figure 5 selects two adjacent phases based on the control logic. The phase interpolation function is performed by the phase mixer, which functionally combines k parts of Φ1 and (1 – k) parts of Φ2 (resulting in an interpolated phase output of Φ1k + Φ2(1 – k)), where k is a fraction between 0 and 1. XAPP589 (v2.0) October 16, 2012 www.xilinx.com 6 VCXO Replacement Theory X-Ref Target - Figure 5 Phase Interpolator 1 REFCLK Transmit SerDes PLL x n-Phase Generation Phase Mixer High Speed SerDes Clock k Phase Select 2 1–k Control Logic Where: φ2 – φ1 = 360°/x Dynamic Phase Control xapp589_05_042912 Figure 5: Functional Block Diagram of a SerDes Transmit PLL Feeding a Phase Interpolator Figure 6 shows two primary phases (Φ1 and Φ2) selected from the n-phase generator that are interpolated by the phase mixer. The output is a clock with a phase that is in between Φ1and Φ2 with a resolution determined by the number of fractional steps allowed. For Virtex-6 FPGAs, the number of fractional steps is 15. X-Ref Target - Figure 6 OUT 1 Phase Mixer k 2 1 12 1–k High Speed SerDes Clock xapp589_06_042912 Figure 6: Phase Mixer Producing an Interpolated Phase from Coarse Phases The primary phase generation and interpolated phase creation are all performed in a clean analog domain. The final result is a high-speed clock that can be any one of 120 phases of the high-speed transmit serial/deserializer clock and is used for serialization of the parallel transmit serial/deserializer data in the Virtex-6 FPGAs transmit serial/deserializer. This produces a very low jitter clock with very fine phase resolution. A phase interpolator operates on the line rate and is present in each of the Virtex-6 FPGA GTX transceivers and all 7 series transceivers. It takes in an input clock and produces an output with a fine phase shift. The phase interpolator in the Virtex-6 FPGA GTX transceiver’s transmitter has a phase control port that can be accessed at a rate of up to approximately 30 MHz and a phase control resolution of approximately 1/120th of a unit interval (UI) of the transmitter’s serial line rate. XAPP589 (v2.0) October 16, 2012 www.xilinx.com 7 PICXO Operation Phase Resolution and Frequency Shift Example Both phase resolution and frequency shift achieved by continuously updating the selected phase is outlined in this example: PICXO Operation • Transmitter serial/deserializer rate = 3.125 Gb/s • Transmitter serial/deserializer clock period = 320 ps • Phase interpolator step = 320/120 ps = 2.66 ps • Update rate = 31.25 MHz Instead of using an external VCXO, as described in VCXO Replacement Theory with its challenges, a complete digital PLL and clock cleaner can be created using the phase interpolator in the transmit serial/deserializer as a phase interpolator controlled crystal or Xtal oscillator (PICXO). The PICXO macro operation is shown in the functional block diagram of Figure 7. X-Ref Target - Figure 7 Reference clock/pulse GTX Transceiver User DRP DRPDEN DRPRDY CEDSP CEPI R CE Phase/ Frequency Detector CE CE Sign ADD_SUB Error DO Volt V Sigma Delta Modulator DRP Arbiter and FIFO DO CE 2nd Order Loop Filter DRPDATAO Control DRP Data DRPDATAI DI DRPADDR 8-bit Phase Accumulator DRPCLKIN G1 & G2 Variable BW ~0.1–1000Hz Connect for Virtex-7/Kintex-7 TXPCSOUTCLK Virtex-6 Only TXOUTCLK BUFG/H/R 1 ENPI Ports X589_07_091812 Figure 7: PICXO Macro Functional Block Diagram The dynamic reconfiguration port (DRP) arbiter/FIFO and control blocks manage the clock and DRP data interfaces between the GTX transceiver, the PICXO DPLL, and the User DRP. A typical use model for a DRP operation is that the user’s application can, if required, program GTX transceiver DRP parameters prior to operation. Subsequently, the PICXO is reset and locked to the reference clock/pulse started (see Physical Interface). The phase in the GTX transceiver is under direct DRP control from the PICXO circuit consisting of phase accumulator, sigma delta modulator and loop filter, and phase detector components. The phase accumulator tracks the current phase of the phase interpolator and increments or decrements the phase based on input from the sigma-delta modulator block. Incrementing or decrementing phases directly results in a negative or positive frequency offset. The required fine frequency control is achieved by the sigma-delta modulation block driven by a second order DPLL consisting of filter and phase detector with user configurable loop parameters and comparison frequencies for maximum flexibility. XAPP589 (v2.0) October 16, 2012 www.xilinx.com 8 PICXO DPLL The PICXO operation is synchronous with the DRP clock. The maximum phase interpolator update rate (DRP CLK/5) is the clock enable rate for the sigma-delta modulator and accumulator CEPI, shown in Figure 7. The DPLL runs at a sub-rate CEDSP, the clock enable rate for the phase/frequency detector and second-order loop filter (in Figure 7). This allows the sigma-delta modulator to run with high resolution and allows usable DPLL coefficients for low-frequency clock cleaning. The reference design circuit uses one BUFG/BUFH/BUFR per line rate generated. When locked, this clock is synchronous with the reference clock and can be used for other user downstream logic. PICXO DPLL The PICXO parameters must be set appropriately to generate a GTX transceiver channel locked to a reference signal. The DPLL can be analyzed using standard methods from a derivation of the transfer function outlined in this section. The PICXO DPLL circuit, for analysis purposes, is considered to be in three functional blocks: 1. Phase frequency detector The phase-frequency detector measures the phase difference between the reference (R) and the PICXO (V) clocks and produces an error output. As the DPLL is second order when locked, this error output is driven to zero. It has a transfer function that is defined in units of radian-1 and gain, GPD. 2. Second order loop filter The second-order loop filter consists of proportional and integral paths with digital gains defined by the terms G1 and G2. The output represents the required tune value for the oscillator. 3. Numerically controlled oscillator The numerically controlled oscillator function is performed by the transmit phase GTX transceiver’s interpolator block, the phase accumulator, and the sigma-delta modulator. This has units of radians/s and gain GPICXO. These are configured in a standard DPLL configuration shown in Figure 8. X-Ref Target - Figure 8 PFD Loop Filter GPD Reference In PICXO G2 GPICXO H1(z) + + – H2(z) + Line Out + G1 + Z-1 Z-1 X589_08_041112 Figure 8: XAPP589 (v2.0) October 16, 2012 PICXO DPLL Digital Equivalent www.xilinx.com 9 PICXO DPLL The transfer of the reference input clock to the line output data is represented by the function in Equation 6. This allows the clock cleaning and tracking of the all-digital VCXO replacement to be exactly controlled by the user’s application. H1 ( z )H2 ( z )G PD H ( z ) = -----------------------------------------------------1 + H1 ( z )H2 ( z )G PD Equation 6 ( g1 + g 2 )z – g2 H1 ( z ) = ----------------------------------------(z – 1) Equation 7 z ( G PICXO ) H2 ( z ) = ----------------------------(z – 1) Equation 8 with: The gain parameters g1 and g2 are defined as: g1 = 2 g2 = 2 ( G1 – 2 ) ( G1 + 1 ) Equation 9 Equation 10 And GPD and GPICXO are defined as: · –9 2 0.25 ×10 × DCLK ( Hz ) G PD = -----------------------------------------------------------------CE DSP × V × 2π ACC STEP --------------------------- × CE PI × 2π PI res G PICXO = -----------------------------------------------------------32 2 Equation 11 Equation 12 Where: DCLK ( Hz ) CE PI = ----------------------------wr TIME Equation 13 CE PI CE DSP = --------------------------------DIVCNT_TC Equation 14 Using the constants: • For Virtex-6 FPGA GTX transceivers, PIres = 248 and wrTIME = 5 • For Kintex-7 FPGA GTX transceivers, PIres = 128 and wrTIME = 6 Figure 9 shows an example approximation of the PICXO transfer function response. There are many DSP analysis tools that allow analysis of Z transform equations. For analysis of the transfer function, the effective clock frequency for the coefficients is CEDSP. XAPP589 (v2.0) October 16, 2012 www.xilinx.com 10 PICXO Measurements and Performance X-Ref Target - Figure 9 5 0 Magnitude (dB) -5 -10 -15 -20 -25 -30 -35 -40 100 101 102 103 104 Frequency (Hz) X589_09_041712 Figure 9: Estimated Transfer Function using Function H(z) in Equation 6 For initial set up guidance, Table 1 represents typical settings used for video, SONET/SDH, and SyncE applications. Table 1: Kintex-7 FPGA PICXO Sample Parameters for a Nominal 50 Hz Cleaning Bandwidth Signal Name HD-SDI 3G-SDI OC48/STM16 OC12/STM4 GBe G1[4:0] 7h 5h 5h 8h 8h G2[4:0] Bh Ah Ah Eh Ch R[15:0] 0053h 0108h 0062h 0062h 0098h V[15:0] 0053h 0108h 0062h 0062h 0098h 2h 1h 1h 2h 4h 07FFh 07FFh 07FFh 07FFh 07FFh ACC_STEP[3:0] DIVCNT_TC[15:0] Parameter selection when referring to Table 1: PICXO Measurements and Performance • For stability G2 should be larger than G1. • Larger G2 settings give higher loop bandwidths. • Larger G1 settings give more damping and a longer lock time. • R and V values must correspond to equal frequencies at the phase-detector input. • Lower phase-detector frequencies give higher tolerance to input wander. • Higher phase-detector frequencies give higher loop bandwidths. • Lower ACC_STEP gives lower output jitter at the expense of a less absolute tuning range. • DIVCNT_TC divider sets the DSP loop operating speed. This section includes sample measurements of an example PICXO design implemented on the KC705 board. Figure 10 and Figure 11 demonstrate the DPLL error and virtual voltage during the locking process when a step change in frequency is applied. The error range is ±219, the virtual voltage ±220. In this case, the virtual voltage is settling ~140000, indicating the PICXO is generating a positive offset relative to the local GTX transceiver reference fixed source (GTX REFCLK frequency) of approximately +10 ppm. As the local GTX transceiver reference drifts in XAPP589 (v2.0) October 16, 2012 www.xilinx.com 11 PICXO Measurements and Performance frequency, the output remains locked to the incoming data. This allows retransmission with no external VCXO and it performs jitter cleaning of the recovered signal. The time unit is CEDSP clocks. The plots in Figure 10 and Figure 11 show the Error and Volt outputs when a step frequency change of ~9 ppm is applied to the PICXO. X-Ref Target - Figure 10 X589_10_092812 Figure 10: Chipscope Plot of PICXO DPLL Volt and Error During Step Change X-Ref Target - Figure 11 X589_11_092912 Figure 11: XAPP589 (v2.0) October 16, 2012 Chipscope Plot of PICXO DPLL Error During Step Change www.xilinx.com 12 PICXO Measurements and Performance Figure 12 shows the transmit phase interpolator codes being written from the PICXO in the GTX transceiver. This demonstrates the frequency offset generation in progress. Figure 12 also reflects the direct phase shifting of the transmitter PLL at its operating frequency. The phase rotation shown results in a continuous phase ramp at the line rate. As a positive frequency is being generated, the phase is being continuously subtracted to generate shorter periods. The time unit is CEPI clocks. X-Ref Target - Figure 12 X589_12_092912 Figure 12: Chipscope Plot of PICXO Transmit Phase Interpolator Control When Locked When using the transmit phase interpolator in the GTX transceiver a general expectation is that the transmitter jitter will increase between 0.01 and 0.03 UI pk-pk due to the phase stepping and rotational nature of the modulator. XAPP589 (v2.0) October 16, 2012 www.xilinx.com 13 PICXO Measurements and Performance Figure 13 shows a Virtex-6 FPGA example waveform and Figure 14 shows a Kintex-7 FPGA waveform being operated in a jitter cleaning mode at a 9.83 GBs rate. When operating in systems where margins are reduced, Xilinx recommends performing some evaluations. X-Ref Target - Figure 13 X589_13_092912 Figure 13: Virtex-6 FPGA GTX Transceiver Data Output at 2.488 GB Generating +20 ppm Offset XAPP589 (v2.0) October 16, 2012 www.xilinx.com 14 PICXO Measurements and Performance X-Ref Target - Figure 14 X589_14_100312 Figure 14: Kintex-7 FPGA GTX Transceiver Data Output at 9.83 GB Operating as a PICXO-based Jitter Cleaner at +32 ppm Offset XAPP589 (v2.0) October 16, 2012 www.xilinx.com 15 PICXO Measurements and Performance Figure 15, and Figure 16 demonstrate the transfer bandwidth of the PICXO. The loop filter programmability is exercised to show how the transfer function can be adjusted for varying user requirements for bandwidth and damping. X-Ref Target - Figure 15 9.95 GBs Jitter Transfer—Variable Bandwidth 10 0 Gain (dB) -10 -20 Gain G2/G1 8/0 -30 10/2 12/4 14/6 -40 16/8 18/10 -50 -60 1 10 100 1000 10000 Frequency (Hz) X589_15_092912 Figure 15: XAPP589 (v2.0) October 16, 2012 Kintex-7 FPGA GTX Transceiver 10 GB Jitter Transfer Measurements— Variable Bandwidth www.xilinx.com 16 PICXO Measurements and Performance X-Ref Target - Figure 16 9.95 GBs Jitter Transfer—Variable Damping 5 3 1 -1 Gain (dB) -3 Gain G2/G1 16/15 -5 16/15 16/13 -7 16/12 -9 16/11 16/9 -11 16/8 -13 -15 1 10 100 1000 Frequency (Hz) X589_16_092912 Figure 16: XAPP589 (v2.0) October 16, 2012 Kintex-7 FPGA GTX Transceiver 10 GB Jitter Transfer Measurements— Variable Damping www.xilinx.com 17 PICXO Measurements and Performance For broadcast equipment, 270 Mb/s, 1.485 Mb/s, and 2.97 Mb/s are standard rates for SD-SDI, HD-SDI, and 3G-SDI. It is a challenge to meet the broadcast jitter requirements of all 3G-SDI formats. One of the 3G-SDI formats is 3G Level A. The examples in Figure 17 and Figure 18 are measurements showing the system passing with margin for 3G Level A SDI (3G Level A 1920 x 1080p at 59.94 Hz) in both 10 Hz and 100 KHz jitter measurement bandwidths, respectively. In this design, the VCXO and re-clocking function is incorporated completely in the FPGA using the PICXO scheme. X-Ref Target - Figure 17 X589_18_092912 Figure 17: ML605 with SDI FMC board for a 3G Level A SDI Output of a Triple-Rate SDI Pass Through Design (at 10 Hz Jitter) XAPP589 (v2.0) October 16, 2012 www.xilinx.com 18 Physical Interface X-Ref Target - Figure 18 X589_19_092912 Figure 18: ML605 with SDI FMC board for a 3G Level A SDI Output of a Triple-Rate SDI Pass Through Design (at 100 KHz Jitter) Physical Interface Table 2 through Table 5 show the port definitions. Table 2: Clocks, Reset, and Interface to the GTX Transceiver Ports Signal Name Direction Description RESET_I Input Synchronous reset. Active High REF_CLK_I Input Reference clock, can be any clock (local, BUFG, pulse, etc.) TXOUTCLKPCS_I Input Virtex-6 FPGAs: Connects directly to TXOUTCLKPCS of the GTX serial transceiver. Kintex-7 FPGAs: Same as TXOUTCLK_I. TXOUTCLK_I Input Connects to TXOUTCLK of the GTX serial transceiver via a BUFG/BUFH/BUFR. DRPEN_O Output Connects to the DEN port of the GTX serial transceiver. DRPWEN_O Output Connects to the DWE port of the GTX serial transceiver. DRPDATA_O [15:0] Output Connects to the DI port of the GTX serial transceiver. DRPADDR_O [7:0] Output Connects to the DADDR port of the GTX serial transceiver. DRPRDY_I XAPP589 (v2.0) October 16, 2012 Input Connects to the DRDY port of the GTX serial transceiver. www.xilinx.com 19 Physical Interface Table 3: DRP User Port Signal Name Direction Description DRP_USER_REQ_I Input Asserted to request DRP port access. Active High signal. DRPEN_USER_I Input Same functionality as DEN GTX serial transceiver port [Ref 1] [Ref 4]. DRPWEN_USER_I Input Same functionality as DWEN GTX serial transceiver port [Ref 1] [Ref 4]. DRPADDR_USER_I [7:0] Input Same functionality as DADDR GTX serial transceiver port [Ref 1] [Ref 4]. DRPDATA_USER_I [15:0] Input Same functionality as DI GTX serial transceiver port [Ref 1] [Ref 4]. DRPRDY_USER_O Output This signal is a mirror of DRDY in the TXOUCLK domain. Indicates data present on DRPDO is valid [Ref 1][Ref 4]. DRPBUSY_O Output Indicates that the DRP port is not available to the user. Active High signal. Table 4: Debug Ports Signal Name Direction Description ERROR_O [20:0] Output Output of phase detector. Signed number. VOLT_O[21:0] Output Output of low-pass filter. Signed number. DRPDATA_SHORT_O[7:0] Output Output of the accumulator. Unsigned number. CE_PI_O Output Clock enable for accumulator. CLKEN_O Output Clock enable for low pass filter and DAC. RSTCNT_O Output Reset phase detector counters, load phase detector error into the low-pass filter. OVF_PD Output Overflow in the phase detector. OVF_AB Output Saturation of the low-pass filter inputs. OVF_INT Output Saturation of the low-pass filter. XAPP589 (v2.0) October 16, 2012 www.xilinx.com 20 Physical Interface Table 5: PICXO Loop Parameters Signal Name Direction Description G1[4:0] Input Filter linear path gain: range 0 to F. G2[4:0] Input Filter integrator path gain: range 0 to C. R[15:0] Input Reference divider: range 0 to 65535. V[15:0] Input TXOUTCLK divider: range 0 to 65535. ACC_STEP[3:0] Input PICXO step size: range 1 to 7 (0 = no step). DIVCNT_TC[15:0] Input DSP divider: default 07FF. VSIGCE_I Input Reserved: connect to 1. VSIGCE_O Output RSIGCE_I Input Reserved: connect to 1. C_I[9:0] Input Reserved: connect to 0. P_I[9:0] Input Reserved: connect to 0. N_I[9:0] Input Reserved: connect to 0. OFFSET_PPM[21:0] Input Direct frequency offset control. Signed number. OFFSET_EN Input Enable direct frequency offset control input. HOLD Input Hold low-pass filter output value. Reserved: floating. Operation As shown in Figure 19, all input signals to the PICXO, except REF_CLK_I, must be synchronous to the rising edge of TXOUTCLK_I. The Virtex-6 FPGA GTX DRP interface is synchronous to TXOUTCLKPCS_I. The PICXO DRP arbiter takes care of the cross clock domain between the DRP user port and the GTX DRP port. The Kintex-7 FPGA GTX DRP interface is synchronous to TXOUTCLK_I. To operate the DRP user port, the application asserts the DRP_USER_REQ_I signal and waits for DRP_BUSY_O to transition Low. Once DRP_BUSY_O is Low, the application can operate the DRP USER port as per the GTX DRP specification [Ref 1] [Ref 4]. All DRP user signals are synchronous to TXOUTCLK_I, including DRPRDY_USER_O. The application must keep DRP_USER_REQ_I asserted during a DRP transfer. Asserting DRP_USER_REQ_I stops the PICXO operation. Once the application is finished with the DRP accesses, the PICXO must be reset to restart correct operation. To reset and restart the PICXO it is sufficient to assert RESET_I High for one clock cycle. XAPP589 (v2.0) October 16, 2012 www.xilinx.com 21 Implementation X-Ref Target - Figure 19 0.0 ns 50.0 ns 100.0 ns 150.0 ns TXOUTCLK_1 DRP_USER_REQ_I DRPBUSY_O DRPEN_USER_I DRPWEN_USER_I DRPADDR_USER_I[7:0] DRPDATA_USER_I[15:0] DRPRDY_USER_O RESET_I X589_20_092912 Figure 19: Implementation Timing Waveform Examples Constraints A sample UCF file is provided with the reference design. Period constraints are necessary on TXOUTCLK, TXOUTCLKPCS, and REFCLK_I. The timing paths between TXOUTCLK and TXOUTCLKPCS must be TIG'ed. The necessary timing and implementation constraints are embedded into the PICXO netlist NGC file. If multiple instances of the PICXO are used in a design, the user must add a U_SET constraint for each instance. For example: INST "Inst1/VCXO/*" U_SET = "Inst1_VCXO"; INST "Inst2/VCXO/*" U_SET = "Inst2_VCXO"; All period constraints must be met. Errors on these listed timing constraints are acceptable, provided the error is less than 100 ps: • TS_up_to_up_TIG • TS_up_to_dn_TIG • TS_dn_to_up_TIG • TS_dn_to_dn_TIG Virtex-6 FPGA Clocking The PICXO (Figure 20) has two input clocks, TXOUTCLK_I and TXOUTCLKPCS_I, both driven from the GTX transceiver. The TXOUTCLK of the GTX transceiver must be connected to a BUFG before driving the TXOUTCLK_I input. The TXOUTCLKPCS_I must be driven directly from the GTX transceiver’s TXOUTCLKPCS. It is routed on the local routing. The XST VHDL attribute buffer_type, set to NONE, is used to prevent the automatic insertion of a BUFG on TXOUTCLKPCS_I (see the top-level example file). XAPP589 (v2.0) October 16, 2012 www.xilinx.com 22 Implementation X-Ref Target - Figure 20 GTX Transceiver BUFG/R PICXO TXOUTCLK_I TXOUTCLK GTXREFCLK TXOUTCLKPCS_I TXOUTCLKPCS REFCLK_I DCLK X589_21_092912 Figure 20: Virtex-6 FPGA PICXO Clocking Kintex-7 FPGA Clocking The primary clocking scheme is detailed in Figure 21. The GTX transceiver TXOUTCLK connects to a BUFG which drives the PICXO inputs clocks TXOUTCLK_I and TXOUTCLKPCS_I as well as the GTX DRP clock DCLK. X-Ref Target - Figure 21 GTX Transceiver BUFG/R/H TXOUTCLK PICXO TXOUTCLK_I GTXREFCLK DCLK TXOUTCLKPCS_I REFCLK_I X589_22_092912 Figure 21: Kintex-7 FPGA Primary PICXO Clocking Scheme A secondary clocking scheme is detailed in Figure 22. This clocking scheme can be used when TXOUTCLK exceeds the GTX DRP clock specifications. In this case, the GTX DRP clock must be an integer divisor of the TXOUTCLK frequency. X-Ref Target - Figure 22 GTX Transceiver TXOUTCLK BUFG/R/H PLL PICXO TXOUTCLK_I GTXREFCLK DCLK TXOUTCLKPCS_I REFCLK_I X589_23_092912 Figure 22: XAPP589 (v2.0) October 16, 2012 Kintex-7 FPGA Secondary PICXO Clocking Scheme www.xilinx.com 23 Reference Design Mandatory Conditions and Limitations • Transmit buffer bypass is not supported. Virtex-6 FPGAs • The GTX transceiver DRP clock (DCLK) must be directly connected to TXOUTCLKPCS without any buffer. • TXPMAPHASEALIGN must be set to 1. • The PMA_TX_CFG bit 17 must be set to 1. • TXOUTCLKCTRL must be set to TXOUTCLKPMA_DIV2. • The GTX transceiver must be set to a two byte-wide interface. • TXOUTCLK and TXOUTCLKPCS must be the same frequency. Kintex-7 FPGAs • TXDLY_LCFG[2] and PCS_RSVD_ATTR[1] must be set to 1. • The Kintex-7 FPGA ports TXPHALIGN, TXPHALIGNEN, and TXPHOVRDEN must be connected to 1. • TXPHDLYPD must be connected to 0. • TXOUTCLKSEL must be set to TXOUTCLKPMA (010) Table 6: Statistics and Performance Expectations for a Standalone PICXO Target devices Virtex-6 LXT and Virtex-6 SXT FPGAs Kintex-7 FPGAs LUTs 1060 1078 Registers 765 764 SRLs 2 1 Carry chains 19 19 Carry elements 498 498 MUXFXes 69 71 Maximum frequency Speed grade dependent, matches DRP port limit Speed grade dependent, matches DRP port limit Reference Design The reference design is based on the Virtex-6 FPGA GTX transceiver wrapper v1.8 [Ref 3] and the Kintex-7 GTX transceiver wrapper v1.6 [Ref 5]. They target the ML605 and KC705 development platforms. They loop back the receive data to the transmitter. The PICXO instance locks the transmitter to the recovered clock RXRECLK. Scripts (PICXO_V6_vhd.tcl, PICXO_V6_ver.tcl and PICXO_K7_vhd.tcl) are provided to help generate an ISE Design Suite project file, and implement and generate a bitstream. See the readme.txt for details. A Chipscope Pro VIO core allows control of the PICXO loop parameters (Table 5). A Chipscope Pro ILA core monitors the PICXO debug signals (Table 4). The Chipscope Pro project files ML605_DT.cpj and K7.cpj, located in the src/chipscope folder, helps set up Chipscope Analyzer. The output error_o of the phase/frequency detector can be captured when rst_cnt_o is High to monitor the PICXO response. When locked, error_o should oscillate around 0, see Figure 11. For Virtex-6 FPGA designs, two modules (double_reset and clock_detector) ensure correct operation after reset and loss of TXOUTCLK [Ref 2]. XAPP589 (v2.0) October 16, 2012 www.xilinx.com 24 Reference Design Simulation of the example design is not supported. The GTX transceiver phase interpolator is not part of the GTX transceiver simulation model. The drp_arbiter source code is provided to enable functional simulation of DRP user access. The reference design files are available for download at: http://www.xilinx.com/member/vcxoff/index.htm Table 7: Reference Design Checklist Parameter Description General Developer name(s) David Taylor, Matt Klein, Vincent Vendramini Target devices Virtex-6 LXT XC6VLX240T FF1146 -1 Kintex-7 XC7K325T FFG900 -1 Source code provided Yes Source code format VHDL Design uses code/IP from existing Xilinx application note/reference designs, CORE Generator™ software, or 3rd party Yes Simulation Functional simulation performed No Timing simulation performed No Testbench used for functional and timing simulations No Testbench format N/A Simulator software/ version used N/A SPICE/IBIS simulations N/A Implementation Synthesis software tools/version used XST, v13.4 and v14.2 Implementation software tools/versions used ISE Design Suite v13.4 and v14.2 Static timing analysis performed Yes Hardware Verification Hardware verified Yes Hardware platform used for verification ML605, KC705 XAPP589 (v2.0) October 16, 2012 www.xilinx.com 25 References Table 8: Device Utilization and Performance Virtex-6 FPGAs Kintex-7 FPGAs Full Design Chipscope (ICON+VIO+ILA) Full Design Chipscope (ICON+VIO+ILA) Slice LUTs 1600 600 1511 607 Slice Registers 1563 727 1512 733 Occupied slices(1) 1009 N/A 1035 683 Block RAM 15 15 15 15 BUFG 4 1 5 1 GTXE1 1 0 1 0 MMCM 0 0 0 0 DRP port limited to 150 MHz N/A DRP port limited to 150 MHz N/A Maximum Frequency Notes: 1. Number of occupied slices can vary depending on packing results. References 1. UG360, Virtex-6 FPGA Configuration User Guide, see Dynamic Reconfiguration Port Chapter 2. EN142, Virtex-6 FPGA LX, LXT, SXT, and HXT Production Errata 3. UG366, Virtex-6 FPGA GTX Transceiver User Guide 4. UG470, 7 Series FPGAs Configuration User Guide, see Dynamic Reconfiguration Port Chapter. 5. UG476, 7 Series FPGA GTX/GTH Transceiver User Guide Revision History The following table shows the revision history for this document. Date Version 05/08/12 1.0 Initial Xilinx release. 06/19/12 1.1 Updated to include Verilog version. Minor changes to the VHDL code in the Reference Design. Updated Table 5. Revised Block RAM in Table 8. 10/16/12 2.0 Added support for Kintex-7 FPGAs throughout document, including adding figures and revising tables. See new Reference Design information with updated design file. XAPP589 (v2.0) October 16, 2012 Description of Revisions www.xilinx.com 26 Notice of Disclaimer Notice of Disclaimer The information disclosed to you hereunder (the “Materials”) is provided solely for the selection and use of Xilinx products. To the maximum extent permitted by applicable law: (1) Materials are made available "AS IS" and with all faults, Xilinx hereby DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and (2) Xilinx shall not be liable (whether in contract or tort, including negligence, or under any other theory of liability) for any loss or damage of any kind or nature related to, arising under, or in connection with, the Materials (including your use of the Materials), including for any direct, indirect, special, incidental, or consequential loss or damage (including loss of data, profits, goodwill, or any type of loss or damage suffered as a result of any action brought by a third party) even if such damage or loss was reasonably foreseeable or Xilinx had been advised of the possibility of the same. Xilinx assumes no obligation to correct any errors contained in the Materials or to notify you of updates to the Materials or to product specifications. You may not reproduce, modify, distribute, or publicly display the Materials without prior written consent. Certain products are subject to the terms and conditions of the Limited Warranties which can be viewed at http://www.xilinx.com/warranty.htm; IP cores may be subject to warranty and support terms contained in a license issued to you by Xilinx. Xilinx products are not designed or intended to be fail-safe or for use in any application requiring fail-safe performance; you assume sole risk and liability for use of Xilinx products in Critical Applications: http://www.xilinx.com/warranty.htm#critapps. Automotive Applications Disclaimer XILINX PRODUCTS ARE NOT DESIGNED OR INTENDED TO BE FAIL-SAFE, OR FOR USE IN ANY APPLICATION REQUIRING FAIL-SAFE PERFORMANCE, SUCH AS APPLICATIONS RELATED TO: (I) THE DEPLOYMENT OF AIRBAGS, (II) CONTROL OF A VEHICLE, UNLESS THERE IS A FAIL-SAFE OR REDUNDANCY FEATURE (WHICH DOES NOT INCLUDE USE OF SOFTWARE IN THE XILINX DEVICE TO IMPLEMENT THE REDUNDANCY) AND A WARNING SIGNAL UPON FAILURE TO THE OPERATOR, OR (III) USES THAT COULD LEAD TO DEATH OR PERSONAL INJURY. CUSTOMER ASSUMES THE SOLE RISK AND LIABILITY OF ANY USE OF XILINX PRODUCTS IN SUCH APPLICATIONS. XAPP589 (v2.0) October 16, 2012 www.xilinx.com 27