7 Series Clocking Resources Part 1 Objectives After completing this module, you will be able to: Describe the clocking resources available in the 7 series FPGAs Explain the contents of the Clock Management Tile (CMT) Add these resources to your design Lessons Overview Clock Networks and Buffers Clock Management Tile Usage Models Using Clock Resources Summary High-Performance Clocking Modern applications have complex clocking requirements – Extremely high-performance clock signals – Support for multiple frequency domains across a wide frequency range – De-skewing of clocks relative to one another – Low jitter and precise duty cycle to maintain the widest possible data valid window – Lowest possible system power Xilinx FPGAs have a rich mixture of clocking resources to accommodate these requirements – The perfect balance of resources at the right cost Clock Management Systems usually require multiple clock frequencies from the same source – Minimizing the number of oscillators lowers system cost External clock sources can often be noisy – Filtering jitter cleans up clocks widening the data valid window Clk In Out 01 10 01 10 Many circuits need to be clocked at the same time to ensure correct operation – De-skewing and aligning clocks eliminates hold-time issues and race conditions 7 Series FPGAs Deliver Powerful Clock Management Global clock buffers – High fanout clock distribution buffer Low-skew clock distribution Clock regions Clock Buffers – Regional clock routing MMCM – Each clock region is 50 CLBs high and spans half the device PLL Clock management tile (CMT) – One Mixed-Mode Clock Managers (MMCMs) and one Phase Locked Loop (PLL) in each Clock Management (CMT) – Performs frequency synthesis, clock de-skew, and jitter-filtering – High input frequency range Simple design creation through the Clocking Wizard Clock Wizard Automatic HDL code Lessons Overview Clock Networks and Buffers Clock Management Tile Usage Models Using Clock Resources Summary Clock-Capable Inputs (CCIO) All synchronous designs need at least one external clock reference – Many designs require several clock sources These sources need to be brought into the FPGA and connected to the internal FPGA clock resources Every 7 series FPGA has four clock-capable inputs in each bank – These inputs are regular I/O pins with dedicated connections to internal clock resources • When not used as clock inputs, they can be used as a regular I/O pin – Each clock input can be used as a single-ended clock input, or can be paired with an adjacent pin to form a differential clock input • Each bank can therefore have four single-ended or four differential clock inputs – Two of the four are Multi-Region Clock Capable (MRCC) and the other two are Single Region Clock Capable (SRCC) Clock Networks An FPGA is a regular array of resources – Many of these resources require clocks for synchronous operations • Slice flip-flops, input/output flip-flops, block RAMs, DSP slices – In order to implement synchronous designs, clocks must be distributed to these clocked elements For synchronous operation, clocks must arrive at the clocked elements with – Extremely low clock skew • Ensures minimal internal hold-time issues – Low clock jitter • Allows for highest performance – Duty cycle preservation • Important for Double Data Rate (DDR) applications – Low insertion latency • Important for synchronous input and output interfaces Die View BUFH BUFIO Clock Buffer & Routing Column HROW BUFR Leaf Cell Clocks BUFMR IO Columns CMT Columns Transceiver Column BUFG in Center of Device Clock Region 7 Series FPGA Clock Regions Larger clock region – 50 CLBs high, 50 I/Os high – Same size as I/O bank – Half width of device I O B 25 P L L C L B 25 C L B 25 M M C M C L B 25 C L B 25 – 2–24 regions per device Resources per clock region – 12 global clock networks • Driven by BUFH – 4 regional clock networks • Driven by BUFR – 4 I/O clock networks • Driven by BUFIO I O B 25 Global Clocking – Vertical Spines Global clock networks allow clocks to be distributed to potentially every clocked element on the die Global clocks are driven by BUFGCTRL located in the middle of the die Each BUFGCTRL drives a vertical spine in the center of the die that runs from the bottom to the top of the die Most 7 series devices have 32 vertical spines – The smaller Artix™-7 FPGAs only have 16 Vertical Spines of the Global Clocks Global Clock Buffer (BUFGCTRL) 32 BUFGCTRLs (or BUFG) reside in the center of the device – Smaller Artix-7 FPGAs only have 16 BUFGCTRLs can be driven by – – – – – – Clock-capable I/O (CCIO) in the same half CMT outputs in the same half Gigabit transceiver clocks in the same half Other BUFG Interconnect BUFR BUFGCTRL IGNORE1 CE1 S1 I1 O I0 S0 CE0 IGNORE0 BUFGCTRL outputs drive the vertical global clock spine BUFGCTRL component implements – Simple clock buffer (BUFG) – Clock buffer with clock switching (BUFGMUX or BUFGMUX_CTRL) – Clock buffer with clock enable (BUFGCE) BUFGCTRL for Clock Multiplexing BUFGMUX I1 O I0 S A BUFGCTRL can be configured as a clock multiplexer Allows for glitchless switching between two clock sources – A select signal is generated by the user’s design, which selects between two different input clocks – The selected clock is driven onto the clock network The BUFGMUX primitive can be used to configure a BUFGCTRL as a global clock buffer with clock multiplexing Two flavors – BUFGMUX: S input must be synchronous to current clock – BUFGMUX_CTRL: S input can change any time I1 I0 S O T1 T2 BUFGCTRL for Gated Clock (BUFGCE) A BUFGCTRL can be configured as a clock buffer with clock enable functionality CE Allows the clock to turn on and off dynamically – Enables dynamic clock gating for power savings and the generation of decimated clocks I BUFGCE O – The Clock Enable (CE) signal is generated by the user’s design – The gating is glitch and runt free if the CE is generated synchronously – The clock is still driven onto the clock network The BUFGCE is a global buffer with a built-in CE I CE O Held Low Enable Clock after High-to-Low Transition on I Lessons Overview Clock Networks and Buffers Clock Management Tile Usage Models Using Clock Resources Summary Summary Clock region height = 50 CLBs, 50 IOBs Four clock-capable inputs per bank Thirty-two global clock buffers – Twelve global clocks per region, delivered via BUFH Four BUFIOs per I/O bank Two BUFRs per I/O bank Two BUFMR per I/O bank Two columns of Clock Management Tiles (CMTs) per device – Adjacent to I/O banks – The CMT has one Mixed-Mode Clock Manager (MMCM) and one PLL Where Can I Learn More? User Guides – 7 Series FPGAs Clocking Resources User Guide • Describes the complete clocking structures Xilinx Education Services courses – www.xilinx.com/training • Designing with the 7 Series Families course • Xilinx tools and architecture courses • Hardware description language courses • Basic FPGA architecture, Basic HDL Coding Techniques, and other Free Videos! Trademark Information Xilinx is disclosing this Document and Intellectual Property (hereinafter “the Design”) to you for use in the development of designs to operate on, or interface with Xilinx FPGAs. Except as stated herein, none of the Design may be copied, reproduced, distributed, republished, downloaded, displayed, posted, or transmitted in any form or by any means including, but not limited to, electronic, mechanical, photocopying, recording, or otherwise, without the prior written consent of Xilinx. Any unauthorized use of the Design may violate copyright laws, trademark laws, the laws of privacy and publicity, and communications regulations and statutes. Xilinx does not assume any liability arising out of the application or use of the Design; nor does Xilinx convey any license under its patents, copyrights, or any rights of others. You are responsible for obtaining any rights you may require for your use or implementation of the Design. Xilinx reserves the right to make changes, at any time, to the Design as deemed desirable in the sole discretion of Xilinx. Xilinx assumes no obligation to correct any errors contained herein or to advise you of any correction if such be made. Xilinx will not assume any liability for the accuracy or correctness of any engineering or technical support or assistance provided to you in connection with the Design. THE DESIGN IS PROVIDED “AS IS" WITH ALL FAULTS, AND THE ENTIRE RISK AS TO ITS FUNCTION AND IMPLEMENTATION IS WITH YOU. YOU ACKNOWLEDGE AND AGREE THAT YOU HAVE NOT RELIED ON ANY ORAL OR WRITTEN INFORMATION OR ADVICE, WHETHER GIVEN BY XILINX, OR ITS AGENTS OR EMPLOYEES. XILINX MAKES NO OTHER WARRANTIES, WHETHER EXPRESS, IMPLIED, OR STATUTORY, REGARDING THE DESIGN, INCLUDING ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NONINFRINGEMENT OF THIRD-PARTY RIGHTS. IN NO EVENT WILL XILINX BE LIABLE FOR ANY CONSEQUENTIAL, INDIRECT, EXEMPLARY, SPECIAL, OR INCIDENTAL DAMAGES, INCLUDING ANY LOST DATA AND LOST PROFITS, ARISING FROM OR RELATING TO YOUR USE OF THE DESIGN, EVEN IF YOU HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THE TOTAL CUMULATIVE LIABILITY OF XILINX IN CONNECTION WITH YOUR USE OF THE DESIGN, WHETHER IN CONTRACT OR TORT OR OTHERWISE, WILL IN NO EVENT EXCEED THE AMOUNT OF FEES PAID BY YOU TO XILINX HEREUNDER FOR USE OF THE DESIGN. YOU ACKNOWLEDGE THAT THE FEES, IF ANY, REFLECT THE ALLOCATION OF RISK SET FORTH IN THIS AGREEMENT AND THAT XILINX WOULD NOT MAKE AVAILABLE THE DESIGN TO YOU WITHOUT THESE LIMITATIONS OF LIABILITY. The Design is not designed or intended for use in the development of on-line control equipment in hazardous environments requiring fail-safe controls, such as in the operation of nuclear facilities, aircraft navigation or communications systems, air traffic control, life support, or weapons systems (“High-Risk Applications”). Xilinx specifically disclaims any express or implied warranties of fitness for such High-Risk Applications. You represent that use of the Design in such High-Risk Applications is fully at your risk. © 2012 Xilinx, Inc. All rights reserved. XILINX, the Xilinx logo, and other designated brands included herein are trademarks of Xilinx, Inc. All other trademarks are the property of their respective owners. 7 Series Clocking Resources Part 2 Objectives After completing this module, you will be able to: Describe the clocking resources available in the 7 series FPGAs Specify the resources available in the Clock Management Tile (CMT) Lessons Overview Clock Networks and Buffers Clock Management Tile Usage Models Using Clock Resources Summary Global Clocking – Horizontal Spines Each clock region has 12 horizontal spines for carrying global clocks – Clock regions on left and right have 12 independent horizontal spines These horizontal spines can drive all clocked resources within the region – Slice flip-flops, distributed RAMs, SRLs, block RAMs, DSP slices, IOB flip-flops, CLKDIV of ISERDES and OSERDES ... Each horizontal spine is driven by a BUFH Horizontal Spines of the Global Clocks Horizontal Spine Clock Buffer (BUFH) Each of the 12 horizontal spines in a clock region is driven by a BUFH BUFH Driven by – CMTs in the same region – BUFGCTRL via vertical clock spine – Clock-capable inputs in the same horizontal row • Can be driven from bank on the left or right – Interconnect Can be a simple clock buffer (BUFH), or a clock buffer with clock enable (BUFHCE) I O CE BUFHCE I – BUFHCE is glitchless when CE_TYPE set to “SYNC” When a global clock (from a BUFGCTRL) is required in a clock region, a BUFH is automatically inferred by the tools O Regional Clock Networks Each clock region has four regional clock networks – Regional clocks in the left and right half are separate These networks are in addition to the 12 horizontal spines of the global clock These regional networks can drive all clocked resources within the region Each horizontal spine is driven by a BUFR Regional Clock Networks Regional Clock Buffer (BUFR) Four BUFR in each clock region – one for each regional clock network Driven by – Clock-capable inputs in the region BUFR CLR CE – Interconnect – Gigabit transceivers in the same region I ÷ – MMCM high-performance clocks in the same region – BUFMR in the same region or region above or below The output of the BUFR can be a divided version of the input clock. Dividers of 1 to 8 are supported – CLR and CE can be used to control which input clock rising edge generates the output clock rising edge O Clocking CLB Resources In every region there are 12 horizontal spines of the global clock network and 4 regional clocks – All 16 clocks can clock resources within the region – Only 12 of the 16 can enter the double column of CLBs in the top and bottom half of the clock region Thus, any 12 of the 16 clocks are available for the 50 CLBs in a pair of columns above the HROW and 12 of the 16 clocks are available for the 50 CLBs in the pair of columns below 12 Horizontal Spines of the Global Clock 12 12 4 Regional Clock Networks 12 12 12 12 12 12 12 12 I/O Clock Networks Each clock region has four I/O clock networks These networks can drive only the clock ports of the ILOGIC/OLOGIC resources and the high-speed clock ports (CLK) of the ISERDES/OSERDES Each I/O clock network is driven by a BUFIO Highest quality clock available I/O Clock Networks I/O Clocking The I/O clock networks are driven by the BUFIO BUFIO The BUFIO is a simple clock buffer with no additional functionality Driven by I – Clock-capable inputs in the same I/O bank – MMCM high-performance clocks in the same region • These are immediately adjacent to the I/O bank – The BUFMR in the same region or region above or below – Interconnect O Source-Synchronous Interfaces I/O and regional clock networks combined with ISERDES/OSERDES provide powerful tools for creating source synchronous interfaces BUFR is set to ÷N if interface is SDR, or ÷(N/2) if DDR – N can be 2 to 8 in SDR, and 2 to 14 in DDR Data ISERDES IO CLK CCIO CLK BUFIO ÷ BUFR N FPGA Fabric CLKDIV Multi-Region Clock Buffer (BUFMR) Each bank has two BUFMRs Allows a single clock source to be driven to the BUFIO and/or BUFR in the region above and below – Can be used to create an interface with more than 50 pins (maximum 150) BUFMR Driven by I – Multi-region clock capable I/O (MRCC) pin – Gigabit transceiver clock Can drive only the BUFIO and BUFR in the same region, region above and region below CE I O BUFMRCE O Synchronizing BUFRs Driven by a BUFMR In order to clock a single interface that spans multiple banks, a BUFMR must be used to drive the BUFIO and BUFR in the different regions The dividers on each BUFR are independent; they must be synchronized in order to ensure proper operation of the interface – Use a BUFMRCE to disable the clock feeding the BUFRs – Assert the CLR on all the BUFRs CLR • This resets the dividers in the BUFRs ÷ – Deassert the CLR on all the BUFRs • This allows the dividers to start on the next rising edge the input clock (currently gated) CE ÷ – Assert the CE on the BUFMR • Starts the clocks to all BUFRs • BUFRs are now in sync BUFMRCE BUFR ÷ High-Performance Clocks Four performance paths driving the I/O column clocked resources Driven by – MMCM outputs O0-O3 4 – BUFIO MMCM Can drive – BUFR – OSERDES clocks directly Cleanest path from MMCM to I/O columns Lower jitter than any other routing Software automatically places critical signals onto performance path routing Connections to the Center Column The BUFGCTRL and BUFH reside in the center column of the FPGA The CCIO, BUFIO, and BUFR reside in the I/O column The MMCM and PLL reside in the CMT column, immediately adjacent to the I/O column GTs source clocks in the GT column Dedicated routing paths exist in the HCLK row to bring clocks between these resources – The tools will use these routes when necessary CLK CMT I/O GT Stacked Silicon Interconnect Implications Larger 7 series devices are made up of Super Logic Region (SLR) blocks – SLR boundaries are on clock region boundaries The vertical spines of the global clock run through all SLRs – Each SLR has 32 BUFGCTRLs – Any 32 of the total number can be used – Expect increased clock skew between SLRs—the software tools will automatically account for this BUFMR tracks cannot pass from one SLR to the next 7 Series FPGA Clock Network Summary Clock regions are 50 CLBs tall Clock regions span one half the die Clock regions match I/O banks 50 I/Os per I/O bank 4 differential or single-ended clock capable inputs 4 BUFIO and 4 I/O clock networks 4 BUFRs and 4 regional clocks 12 horizontal clock spines and 12 BUFH Lessons Overview Clock Networks and Buffers Clock Management Tile Usage Models Using Clock Resources Summary Summary Don’t start trying to control your design’s routing – This presentation has noted when the tools will automatically choose the appropriate routing resources – Instantiate the appropriate primitive Make certain you connect your Serdes clocks appropriately using the proper routing resources Consider using area constraints to isolate logic into a single SLR, if possible – Stacked Silicon devices still have 32 global clocks Where Can I Learn More? User Guides – 7 Series FPGAs Clocking Resources User Guide • Describes the complete clocking structures Xilinx Education Services courses – www.xilinx.com/training • Designing with the 7 Series Families course • Xilinx tools and architecture courses • Hardware description language courses • Basic FPGA architecture, Basic HDL Coding Techniques, and other Free Videos! Trademark Information Xilinx is disclosing this Document and Intellectual Property (hereinafter “the Design”) to you for use in the development of designs to operate on, or interface with Xilinx FPGAs. Except as stated herein, none of the Design may be copied, reproduced, distributed, republished, downloaded, displayed, posted, or transmitted in any form or by any means including, but not limited to, electronic, mechanical, photocopying, recording, or otherwise, without the prior written consent of Xilinx. Any unauthorized use of the Design may violate copyright laws, trademark laws, the laws of privacy and publicity, and communications regulations and statutes. Xilinx does not assume any liability arising out of the application or use of the Design; nor does Xilinx convey any license under its patents, copyrights, or any rights of others. You are responsible for obtaining any rights you may require for your use or implementation of the Design. Xilinx reserves the right to make changes, at any time, to the Design as deemed desirable in the sole discretion of Xilinx. Xilinx assumes no obligation to correct any errors contained herein or to advise you of any correction if such be made. Xilinx will not assume any liability for the accuracy or correctness of any engineering or technical support or assistance provided to you in connection with the Design. THE DESIGN IS PROVIDED “AS IS" WITH ALL FAULTS, AND THE ENTIRE RISK AS TO ITS FUNCTION AND IMPLEMENTATION IS WITH YOU. YOU ACKNOWLEDGE AND AGREE THAT YOU HAVE NOT RELIED ON ANY ORAL OR WRITTEN INFORMATION OR ADVICE, WHETHER GIVEN BY XILINX, OR ITS AGENTS OR EMPLOYEES. XILINX MAKES NO OTHER WARRANTIES, WHETHER EXPRESS, IMPLIED, OR STATUTORY, REGARDING THE DESIGN, INCLUDING ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NONINFRINGEMENT OF THIRD-PARTY RIGHTS. IN NO EVENT WILL XILINX BE LIABLE FOR ANY CONSEQUENTIAL, INDIRECT, EXEMPLARY, SPECIAL, OR INCIDENTAL DAMAGES, INCLUDING ANY LOST DATA AND LOST PROFITS, ARISING FROM OR RELATING TO YOUR USE OF THE DESIGN, EVEN IF YOU HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THE TOTAL CUMULATIVE LIABILITY OF XILINX IN CONNECTION WITH YOUR USE OF THE DESIGN, WHETHER IN CONTRACT OR TORT OR OTHERWISE, WILL IN NO EVENT EXCEED THE AMOUNT OF FEES PAID BY YOU TO XILINX HEREUNDER FOR USE OF THE DESIGN. YOU ACKNOWLEDGE THAT THE FEES, IF ANY, REFLECT THE ALLOCATION OF RISK SET FORTH IN THIS AGREEMENT AND THAT XILINX WOULD NOT MAKE AVAILABLE THE DESIGN TO YOU WITHOUT THESE LIMITATIONS OF LIABILITY. The Design is not designed or intended for use in the development of on-line control equipment in hazardous environments requiring fail-safe controls, such as in the operation of nuclear facilities, aircraft navigation or communications systems, air traffic control, life support, or weapons systems (“High-Risk Applications”). Xilinx specifically disclaims any express or implied warranties of fitness for such High-Risk Applications. You represent that use of the Design in such High-Risk Applications is fully at your risk. © 2012 Xilinx, Inc. All rights reserved. XILINX, the Xilinx logo, and other designated brands included herein are trademarks of Xilinx, Inc. All other trademarks are the property of their respective owners. 7 Series Clocking Resources Part 3 Objectives After completing this module, you will be able to: Specify the resources available in the Clock Management Tile (CMT) Use the CMT resources in your design Lessons Overview Clock Networks and Buffers Clock Management Tile Usage Models Using Clock Resources Summary MMCM and PLL Features Up to 24CMTs per device – One MMCMs and one PLL per CMT MMCME2_ADV CLKIN1 CLKFBIN Two software primitives – *_BASE has only the basic ports – *_ADV provides access to all ports PLL is primarily intended for use with the I/O phaser for high speed memory controllers The MMCM is the primary clock resource for user clocks MMCME2_BASE CLKIN1 CLKFBIN RST PWRDWN CLKOUT<6:0> CLKOUTB<3:0> CLKFBOUT CLKOUT<6:0> CLKOUTB<3:0> CLKFBOUT CLKIN2 CLKINSEL CLKINSTOPPED DRP CLKFBSTOPPED Phase Shift LOCKED RST PWRDWN LOCKED PLLE2_ADV CLKIN1 CLKFBIN CLKOUT<5:0> CLKFBOUT CLKIN2 CLKINSEL PLLE2_BASE CLKIN1 CLKFBIN RST PWRDWN CLKOUT<5:0> CLKFBOUT LOCKED DRP LOCKED RST PWRDWN PLL Architecture Lock Detect Lock Monitor CLKINSEL CLKIN1 CLKIN2 D FIN PFD CP FPFD LF VCO 8-phase taps FVCO M CLKFBIN FVCO = FIN * M / D FOUT = FVCO / O = FIN * M / D / O FOUT LOCKED CLKFBOUT O0 CLKOUT0 O1 CLKOUT1 O2 CLKOUT2 O3 CLKOUT3 O4 CLKOUT4 O5 CLKOUT5 PLL Features Frequency lock between FPFD and CLKFB Phase lock between CLKIN and CLKFB Frequency synthesis for up to 6 different outputs – Fout = Fin * M / (D*O) • One M and one D value per PLL • Each PLL output can have its own O value • M: 1-64; D: 1-56; O: 1-128 Static phase shifting increments of 1/8 of the VCO period – Each output has independent selection of the phase Duty cycle generation in increments of 1/8 of the VCO period Reference clock switching Lock detection PWRDWN signal to disable regulated power supply Extra MMCM Features Fractional counters O0 – Ability to configure O0 and M as a counter with 1/8th granularity (for example, 2.125, 2.250, 2.375, etc.) O1 O2 O3 O4 O5 – Enables many more VCO frequencies and output frequencies to be synthesized Dynamic phase shifting Fine phase shifting Divider cascading for wider divider range – O4 divider uses resources from O6 O6 CLKFBOUT VCO Outputs 0 45 90 135 180 225 270 315 Additional MMCM Signals Complement outputs Routing Clock Switch – O0-O3 of every MMCM have CLKIN1 CLKIN2 both true and complement outputs CLKFB CLKOUT6 output (with O6 divider) Dynamic phase shift port – – – – PSCLK PSEN PSINCDEC PSDONE Lock Detect D PFD CP Lock VCO LF 9 O0 O1 Stop Detect HOLD CLKINSTOPPED CLKFBSTOPPED O2 O3 O4 O5 O6 M CLKFBOUT MMCM and PLL Inputs PLL and MMCM input clock ports (CLKIN1 and CLKIN2) can be source from – – – – – – – CCIO in the same clock regions (recommended) CCIO in a vertically adjacent clock regions BUFG BUFR BUFH Interconnect (not recommended) Gigabit transceiver clock CLKFB can be sourced by the same sources except the gigabit transceiver clock PLL/MMCM outputs can drive BUFG and BUFH directly MMCM high-performance clock outputs (O0 – O3) can drive BUFIO, BUFR, and CLK of OSERDES in the same region directly Phase Locking The control loop of the PLL/MMCM works to keep the CLKIN and CLKFBIN clocks in phase – Regardless of the delay between the CLKFBOUT and the CLKFBIN – The compensation is dynamic • Even if the magnitude of the delay changes in time, the PLL will adjust to keep the two clocks in phase CLKIN CLKFBOUT CLKFBIN PLL/MMCM RST LOCKED Delay Frequency Generation The same mechanism that keeps clocks in phase generates new frequencies By placing a divider of M between the VCO and the CLKFBOUT output, the VCO must run at M times the CLKIN frequency in order to achieve phase lock Similarly, by placing a D divider between the CLKIN port and the PFD block, the VCO must now run at M/D times the frequency of CLKIN Clock Routing Switch Lock in order to achieve phase lock Lock Detect Finally, the output dividers divide the VCO frequency for the output ports CLKIN1 CLKIN2 D PFD CP LF VCO 9 O0 O1 CLKFB Stop Detect HOLD CLKINSTOPPED CLKFBSTOPPED O2 O3 O4 O5 O6 M CLKFBOUT Interpolated Fine Phase Shift (IFPS) In addition to the static phase shifting capability available in the PLL and MMCM, the MMCM can also perform interpolated fine phase shifting – The VCO output can be shifted in increments of 1/56 of the VCO period – The shift amount can be set statically or can be dynamically controlled The shifted VCO output can be selected as the input to any of the clock outputs or the CLKFBOUT output PSINCDEC PSEN PSDONE IFPS 8 VCO O0 CLKOUT0 O1 CLKOUT1 M CLKFBOUT The shift amount is 0 to 360° – The shift amount wraps around Lessons Overview Clock Networks and Buffers Clock Management Tile Usage Models Using Clock Resources Summary Summary PLL and MMCMs offer a BASE (basic ports) and ADV (all ports) primitives VCO is the voltage controlled oscillator – Ideally, the PFD should be as high as possible (within a valid range) – If the frequency of VCO is high, you can generate more output frequencies and you generally get better jitter performance • Higher frequencies of VCO uses more power The MMCM also provides a fixed phase shift, interpolated phase shift, and active phase shift functionality Where Can I Learn More? User Guides – 7 Series FPGAs Clocking Resources User Guide • Describes the complete clocking structures Xilinx Education Services courses – www.xilinx.com/training • Designing with the 7 Series Families course • Xilinx tools and architecture courses • Hardware description language courses • Basic FPGA architecture, Basic HDL Coding Techniques, and other Free Videos! Trademark Information Xilinx is disclosing this Document and Intellectual Property (hereinafter “the Design”) to you for use in the development of designs to operate on, or interface with Xilinx FPGAs. Except as stated herein, none of the Design may be copied, reproduced, distributed, republished, downloaded, displayed, posted, or transmitted in any form or by any means including, but not limited to, electronic, mechanical, photocopying, recording, or otherwise, without the prior written consent of Xilinx. Any unauthorized use of the Design may violate copyright laws, trademark laws, the laws of privacy and publicity, and communications regulations and statutes. Xilinx does not assume any liability arising out of the application or use of the Design; nor does Xilinx convey any license under its patents, copyrights, or any rights of others. You are responsible for obtaining any rights you may require for your use or implementation of the Design. Xilinx reserves the right to make changes, at any time, to the Design as deemed desirable in the sole discretion of Xilinx. Xilinx assumes no obligation to correct any errors contained herein or to advise you of any correction if such be made. Xilinx will not assume any liability for the accuracy or correctness of any engineering or technical support or assistance provided to you in connection with the Design. THE DESIGN IS PROVIDED “AS IS" WITH ALL FAULTS, AND THE ENTIRE RISK AS TO ITS FUNCTION AND IMPLEMENTATION IS WITH YOU. YOU ACKNOWLEDGE AND AGREE THAT YOU HAVE NOT RELIED ON ANY ORAL OR WRITTEN INFORMATION OR ADVICE, WHETHER GIVEN BY XILINX, OR ITS AGENTS OR EMPLOYEES. XILINX MAKES NO OTHER WARRANTIES, WHETHER EXPRESS, IMPLIED, OR STATUTORY, REGARDING THE DESIGN, INCLUDING ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NONINFRINGEMENT OF THIRD-PARTY RIGHTS. IN NO EVENT WILL XILINX BE LIABLE FOR ANY CONSEQUENTIAL, INDIRECT, EXEMPLARY, SPECIAL, OR INCIDENTAL DAMAGES, INCLUDING ANY LOST DATA AND LOST PROFITS, ARISING FROM OR RELATING TO YOUR USE OF THE DESIGN, EVEN IF YOU HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THE TOTAL CUMULATIVE LIABILITY OF XILINX IN CONNECTION WITH YOUR USE OF THE DESIGN, WHETHER IN CONTRACT OR TORT OR OTHERWISE, WILL IN NO EVENT EXCEED THE AMOUNT OF FEES PAID BY YOU TO XILINX HEREUNDER FOR USE OF THE DESIGN. YOU ACKNOWLEDGE THAT THE FEES, IF ANY, REFLECT THE ALLOCATION OF RISK SET FORTH IN THIS AGREEMENT AND THAT XILINX WOULD NOT MAKE AVAILABLE THE DESIGN TO YOU WITHOUT THESE LIMITATIONS OF LIABILITY. The Design is not designed or intended for use in the development of on-line control equipment in hazardous environments requiring fail-safe controls, such as in the operation of nuclear facilities, aircraft navigation or communications systems, air traffic control, life support, or weapons systems (“High-Risk Applications”). Xilinx specifically disclaims any express or implied warranties of fitness for such High-Risk Applications. You represent that use of the Design in such High-Risk Applications is fully at your risk. © 2012 Xilinx, Inc. All rights reserved. XILINX, the Xilinx logo, and other designated brands included herein are trademarks of Xilinx, Inc. All other trademarks are the property of their respective owners. 7 Series Clocking Resources Part 4 Objectives After completing this module, you will be able to: Detail the clocking resources available in the 7 series FPGAs Specify the resources available in the Clock Management Tile (CMT) Use the clocking resources in your design Lessons Overview Clock Networks and Buffers Clock Management Tile Usage Models Using Clock Resources Summary Clock Insertion Delay Bringing the clock in from an IBUFG, through a BUFG, and distributing it through the global clock tree introduces delay on the clock path – Delay is Process/Voltage/Temperature (PVT) dependent – Increases setup/hold window on input flip-flops – Increases output valid uncertainty on output flip-flops – Restricts high-speed interface design using global clock resources IBUF D IBUFG BUFG Q Clock Required Data Valid (without clock insertion) Required Data Valid (with clock delay) Clock Insertion Delay Clock Insertion Delay Removal Example IBUFG BUFG CLKIN CLKFBOUT To logic CLKFBIN PLL/MMCM RST LOCKED The PLL/MMCM keeps CLKIN andLOCKED CLKFBIN in phase, cancelling out all delay between CLKFBOUT and CLKFBIN – In this case, the delay is that of the BUFG and global clock network – The delay is cancelled regardless of PVT variation over time Thus, the clock arriving at the logic driven by the global clock is in phase with the input clock; the clock insertion delay is removed System-Synchronous Clocking Internal de-skew allows for synchronous interfaces with no holdtime violations – The tools will automatically select COMPENSATION=ZHOLD FPGA 1 OBUF D Q IBUF Q IBUFG IN FBIN OUT PLL/MMCM CLK D Q Q D OBUF D BUFG FPGA 2 IBUF IBUFG BUFG IN FBIN OUT PLL/MMCM Using Internal Feedback IBUFG CLKIN BUFG CLKIN CLKFBIN CLKOUT1 CLKA (To logic) CLKOUTFB PLL/MMCM RST LOCKED LOCKED When using a PLL/MMCM for frequency synthesis or jitter reduction only – Phase of CLKA has no requirements with respect to CLKIN Tools will select the internal feedback path, which requires no routing or logic outside the PLL/MMCM – Tools will automatically set COMPENSATION=INTERNAL Using Multiple PLL/MMCM Clocks Internally IBUFG BUFG CLKIN CLKOUT0 CLKA (To logic) BUFG CLKFBIN CLKOUTFB CLKB (To logic) PLL/MMCM RST LOCKED LOCKED Multiple outputs of the MMCM/PLL have known phase relationships – For example, CLKA may be the same frequency as CLKB, phase shifted 180° The delay through all BUFGs and clock networks are identical – So CLKA and CLKB arrive at loads with the same phase relationship – Crossing from one clock domain to the other can be accomplished synchronously Clock Mirror Example IBUFG OBUF BUFG CLKIN CLKOUT ODDR OBUF CLKFBIN IBUFG PLL/MMCM RST ODDR LOCKED LOCKED The PLL or MMCM keeps the input and feedback clock in phase – The feedback clock is not restricted to being the output of the global clock network In this example, two (or more) identical output clocks are generated – One is used as the feedback clock – The others are mirrors; hence, in phase with each other and the input Design Example Requirement – 33.3-MHz external oscillator controls • 533.3-MHz data being generated by I/O logic (BUFIO) • Large amount of logic at 66.6 MHz (BUFG) • Small design at 54 MHz (BUFH) – Phase relationship between input clock and output clock is irrelevant Solution – MMCM values • M=32, D=1. FVCO = 1066.7 • O0=19.75 - uses fractional divider (1066/19.75 = 54 MHz)) • O1=2 (1066/2 = 533 MHz) • O2=16 (1066/16 = 66 MHz) IBUFG MMCM BUFH CLKIN1 CLKOUT0 BUFIO CLKOUT1 Performance Path ÷ BUFG CLKOUT2 CLKFBIN CLKFBOUT BUFR Lessons Overview Clock Networks and Buffers Clock Management Tile Usage Models Using Clock Resources Summary Inference Clock networks are represented by nets in your RTL design – The mapping of an RTL net to a clock network is managed by using the appropriate clock buffer to generate that net Certain resources can be inferred – A primary input net (with or without an IBUF instantiated) will be mapped to a global clock if it drives the clock inputs of clocked resources • The BUFG will be inferred – BUFH drivers will be inferred whenever a global clock (driven by a BUFG) is required in a clock region • BUFHs for each region required will be inferred BUFIO, BUFR, and BUFMR cannot be inferred – Instantiating these buffers tells the tools that you want to use the corresponding clock networks PLLs and MMCMs cannot be inferred Instantiation All clocking resources can be directly instantiated in your RTL code – Simulation models exist for all resources – Refer to the Library Guide for HDL Designs – Use the Language Templates ( ) PLLs and MMCMs have many inputs and outputs, as well as many attributes – Optimal dividers for obtaining the desired characteristics may be hard to derive – The Clocking Wizard via the CORE Generator™ interface can help Clocking Wizard The Clocking Wizard walks you through the generation of complete clocking subsystems – Specify the input frequency and desired output frequencies, phases and duty cycles – Specify the desired buffers Chooses the optimal PLL/MMCM settings Instantiates all clock and input buffers Lessons Overview Clock Networks and Buffers Clock Management Tile Usage Models Using Clock Resources Summary Summary The Architecture Wizard makes it easy to build and instantiate your clocking resources – Provides instantiation template – Gui for customization of the components – Includes a jitter calculator and calculates parameter values – Application specific instantiations (such as Clock Mirror, System Synchronous Clocking, and Feedback options) Where Can I Learn More? User Guides – 7 Series FPGAs Clocking Resources User Guide • Describes the complete clocking structures Xilinx Education Services courses – www.xilinx.com/training • Designing with the 7 Series Families course • Xilinx tools and architecture courses • Hardware description language courses • Basic FPGA architecture, Basic HDL Coding Techniques, and other Free Videos! Trademark Information Xilinx is disclosing this Document and Intellectual Property (hereinafter “the Design”) to you for use in the development of designs to operate on, or interface with Xilinx FPGAs. Except as stated herein, none of the Design may be copied, reproduced, distributed, republished, downloaded, displayed, posted, or transmitted in any form or by any means including, but not limited to, electronic, mechanical, photocopying, recording, or otherwise, without the prior written consent of Xilinx. Any unauthorized use of the Design may violate copyright laws, trademark laws, the laws of privacy and publicity, and communications regulations and statutes. Xilinx does not assume any liability arising out of the application or use of the Design; nor does Xilinx convey any license under its patents, copyrights, or any rights of others. You are responsible for obtaining any rights you may require for your use or implementation of the Design. Xilinx reserves the right to make changes, at any time, to the Design as deemed desirable in the sole discretion of Xilinx. Xilinx assumes no obligation to correct any errors contained herein or to advise you of any correction if such be made. Xilinx will not assume any liability for the accuracy or correctness of any engineering or technical support or assistance provided to you in connection with the Design. THE DESIGN IS PROVIDED “AS IS" WITH ALL FAULTS, AND THE ENTIRE RISK AS TO ITS FUNCTION AND IMPLEMENTATION IS WITH YOU. YOU ACKNOWLEDGE AND AGREE THAT YOU HAVE NOT RELIED ON ANY ORAL OR WRITTEN INFORMATION OR ADVICE, WHETHER GIVEN BY XILINX, OR ITS AGENTS OR EMPLOYEES. XILINX MAKES NO OTHER WARRANTIES, WHETHER EXPRESS, IMPLIED, OR STATUTORY, REGARDING THE DESIGN, INCLUDING ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NONINFRINGEMENT OF THIRD-PARTY RIGHTS. IN NO EVENT WILL XILINX BE LIABLE FOR ANY CONSEQUENTIAL, INDIRECT, EXEMPLARY, SPECIAL, OR INCIDENTAL DAMAGES, INCLUDING ANY LOST DATA AND LOST PROFITS, ARISING FROM OR RELATING TO YOUR USE OF THE DESIGN, EVEN IF YOU HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THE TOTAL CUMULATIVE LIABILITY OF XILINX IN CONNECTION WITH YOUR USE OF THE DESIGN, WHETHER IN CONTRACT OR TORT OR OTHERWISE, WILL IN NO EVENT EXCEED THE AMOUNT OF FEES PAID BY YOU TO XILINX HEREUNDER FOR USE OF THE DESIGN. YOU ACKNOWLEDGE THAT THE FEES, IF ANY, REFLECT THE ALLOCATION OF RISK SET FORTH IN THIS AGREEMENT AND THAT XILINX WOULD NOT MAKE AVAILABLE THE DESIGN TO YOU WITHOUT THESE LIMITATIONS OF LIABILITY. The Design is not designed or intended for use in the development of on-line control equipment in hazardous environments requiring fail-safe controls, such as in the operation of nuclear facilities, aircraft navigation or communications systems, air traffic control, life support, or weapons systems (“High-Risk Applications”). Xilinx specifically disclaims any express or implied warranties of fitness for such High-Risk Applications. You represent that use of the Design in such High-Risk Applications is fully at your risk. © 2012 Xilinx, Inc. All rights reserved. XILINX, the Xilinx logo, and other designated brands included herein are trademarks of Xilinx, Inc. All other trademarks are the property of their respective owners.