27
Virtex-6 Clocking Resources Basic FPGA Architecture Xilinx Training

Virtex-6 Clocking Resources Basic FPGA Architecture Xilinx Training

Embed Size (px)

Citation preview

Page 1: Virtex-6 Clocking Resources Basic FPGA Architecture Xilinx Training

Virtex-6 Clocking ResourcesBasic FPGA Architecture

Xilinx Training

Page 2: Virtex-6 Clocking Resources Basic FPGA Architecture Xilinx Training

Objectives

After completing this module, you will be able to:

Detail the clocking resources available in the Virtex-6 FPGA

Specify the resources available in the Clock Management Tile (CMT)

Describe the basics of the PLL capabilities

Page 3: Virtex-6 Clocking Resources Basic FPGA Architecture Xilinx Training

Clo

ck

Bu

ffe

rsMMCM

MMCM

Clock Wizard Automatic HDL code

Virtex-6 Clock Management

Global clock buffers– High fanout clock distribution buffer

Regional clock distribution (low-skew)

I/O clock routing

Clock regions– Each clock region is 40 CLBs high and

spans half the device

Clock management tile (CMT)– Two PLL-based Mixed-Mode Clock

Managers (MMCMs) in each Clock Management Tile (CMT)

– Up to nine CMTs per device– Performs frequency synthesis, clock

de-skew, and jitter-filtering– High input frequency range (10-800 MHz)

Simple design creation through the Clocking Wizard

Page 4: Virtex-6 Clocking Resources Basic FPGA Architecture Xilinx Training

MMCM Features

8 independently programmable clock outputs (O0-O6 and CLKFBOUT)

– O0 to O3 and CLKFBOUT offer complementary outputs

Additional MMCM_ADV features– Clock input switching– Phase shift port – Dynamic Reconfiguration Port (DRP)– LOCK circuit enhanced to eliminate

possibility of false LOCK

Both are easily customized with the

Architecture Wizard

MMCM able to implement both DCM and PLL functionality

MMCM able to implement both DCM and PLL functionality

Each MMCM can be invoked with either the MMCM_BASE or MMCM_ADV primitive. SW takes care of unused ports on MMCM_BASE.

CLKIN1CLKFBINCLKIN1CLKFBIN

CLKOUT<6:0>CLKFBOUT

CLKOUT<6:0>CLKFBOUT

MMCM_ADVMMCM_ADV

CLKIN2CLKINSELDRPPhase Shift

CLKIN2CLKINSELDRPPhase Shift

RSTRST LOCKEDLOCKED

CLKIN1CLKFBINCLKIN1CLKFBIN

CLKOUT<6:0>CLKFBOUT

CLKOUT<6:0>CLKFBOUT

MMCM_BASEMMCM_BASE

RSTRST LOCKEDLOCKED

Page 5: Virtex-6 Clocking Resources Basic FPGA Architecture Xilinx Training

Die View

Clock RegionsClock

Regions

IO Columns

IO Columns

Clock Spine and Column

Clock Spine and Column

MMCM Tiles

MMCM Tiles

HROWsHROWs

BUFIO (Single or

Multi Region)

BUFIO (Single or

Multi Region)

BUFG in Center of

Device

BUFG in Center of

Device

BUFRBUFR

BUFHBUFH

Clocks in “Leaf” Region

Clocks in “Leaf” Region

BUFH Mux Areas

BUFH Mux Areas

Page 6: Virtex-6 Clocking Resources Basic FPGA Architecture Xilinx Training

Virtex-6 FPGA Clock Distribution

Larger clock region– 40 CLBs high, 40 I/Os high– Same size as I/O bank– Half width of device– 6-18 regions per device

Resources per clock region– 12 global clock networks

• Driven by BUFH

– 6 regional clock networks• Driven by BUFR

– 8 I/O clock networks per I/O column

CLB20

MMCM

CLB20

IOB20

IOB20

MMCM

CLB20

IOB20

CLB20

IOB20

Page 7: Virtex-6 Clocking Resources Basic FPGA Architecture Xilinx Training

Global Clocking

32 BUFGs reside in the center of the deviceDriven by 8 global clock pins– There are also four clock-capable I/O pins per

I/O bank• Four differential or single-ended• Global clock pins are not the only clock input

resource

BUFGs can be driven by– Global clock inputs– Clock-capable inputs (inner I/O columns only)– MMCM outputs– Other BUFG– Interconnect– BUFR– GTX (recovered clock from GTX)

BUFG outputs can drive the vertical global clock spineBUFGCTRL component implements– Glitch-free clock switching between two sources– Clock enable for disabling clocks

BUFGCTRL

O

S1

S0

IGNORE0

IGNORE1

CE0

CE1

I1

I0

Page 8: Virtex-6 Clocking Resources Basic FPGA Architecture Xilinx Training

Horizontal Clocking

12 BUFHs per clock region– You should not have to instantiate this

BUFH drives logic via horizontal global clock lines– BUFHs on left and right of vertical spine can

be driven by the same CCIO or MMCM output

Driven by…– MMCM in the same region– BUFG via vertical clock spine– Clock-capable inputs in same horizontal row– Interconnect

Provides control of clocks routed into regions– Power saving by turning off or gating clocks to

specific regions– Isolating logic into regions may require an Area

Constraint

BUFHCE

I

CE

O

BUFH

I O

Page 9: Virtex-6 Clocking Resources Basic FPGA Architecture Xilinx Training

Regional Clocking

Up to 4 BUFRs per clock region (varies by density)– 2 per I/O bank

Driven by…– Clock-capable inputs– Interconnect– GTX– MMCM high-performance clocks

Can drive…– Logic– IO logic– MMCM– BUFG

For medium- and high-performance clocks driving 1-3 regions (one above, self, and one below)BUFR frequency can be divided by 1…8

BUFR

÷

CLR

I O

CE

Page 10: Virtex-6 Clocking Resources Basic FPGA Architecture Xilinx Training

I/O Clocking

2 single-region BUFIOs and 2 multi-region BUFIOs in each I/O bank

Driven by…– Clock-capable inputs in the same I/O bank– MMCM outputs via high-performance paths

Can drive…– I/O logic in the same and adjacent I/O

banks– BUFIO can drive logic resources only in the

same I/O column

Intended for clocking high-speed I/O logic

BUFIO

I O

Page 11: Virtex-6 Clocking Resources Basic FPGA Architecture Xilinx Training

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 10 in DDR

Clock-Capable I/O (CCIO)

I/O Clock Buffer (BUFIO)

Conventional I/O (IO)

Regional Clock Buffer (BUFR)

NISERDESISERDES

CLK CLKDIVFPGA FabricFPGA Fabric

CLK

Data

IO

CCIOBUFIO

BUFR

Page 12: Virtex-6 Clocking Resources Basic FPGA Architecture Xilinx Training

Performance Path Routing

4 performance paths driving each inner/outer left/right IO column

Driven by…– MMCM outputs O0-O3

Can drive…– BUFIO– BUFR– GTX

Powered by a regulated supply within each MMCM– This isolates the clocks from noise on

Vccint– Cleanest path from MMCM to I/O

columns– Lower jitter than any other routing

Software automatically places critical signals onto performance path routing, so don’t worry about controlling this route

MMCM

MMCM

GTXIOIOIOIO

Page 13: Virtex-6 Clocking Resources Basic FPGA Architecture Xilinx Training

Global Clocking Features

Global Clock Inputs(IBUFG or IBUFGDS)

Global Clock Multiplexers (BUFGCTRL)

Flexibility 8 total – 8 differential (16 pins) or– 8 single-ended (8 pins)

32 total Drive the global clock

networks Optional clock enable Guaranteed glitchless clock

switching

Performance Up to 800 MHz Differential for maximum performance High fanout (access to all clock loads in the FPGA) Low skew Short clock insertion delay

Page 14: Virtex-6 Clocking Resources Basic FPGA Architecture Xilinx Training

I/O and Regional Clocking

Clock-Capable I/Os I/O Clocks Regional Clocks

Flexibility Exist in all I/O columns 4 CCIOs per I/O bank

– 4 differential (8 pins) or– 4 single-ended (4 pins)

Adjacent to HCLK row– 2 CCIOs above and

below

Exist in all I/O columns

4 BUFIOs per I/O bank

Up to 8 I/O clock networks per I/O bank

Some clocks are local only; some can drive neighboring banks

Exist in all I/O columns

2 BUFRs per I/O bank

6 regional clock networks per region

Span up to three regions (one above and below)

Clock divider range from 1 to 8

Performance 800-MHz differential 800-MHz differential

500 MHz

Page 15: Virtex-6 Clocking Resources Basic FPGA Architecture Xilinx Training

Virtex-6 Clock Network Summary

Clock regions are 40 CLBs tall

Clock regionsmatch I/O banks

40 I/Os per bank

12 GCLKs (via BUFH) per region

2 BUFRs per I/O bank

2 single region BUFIOs2 multi-region BUFIOs

Clock regionsspan one half the die

Four differential or single-ended clock capable inputs

Page 16: Virtex-6 Clocking Resources Basic FPGA Architecture Xilinx Training

MMCM Features

Up to 9 CMTs per device– 2 MMCMs per CMT

Two software primitives– MMCM_BASE has only the basic

ports– MMCM_ADV provides access to all

ports

8 independently programmable clock outputs– O0 to O6 plus CLKFBOUT– O0 to O3 and CLKFBOUT true and

complement outputs

Additional MMCM_ADV features– Clock input switching– Phase shift port

CLKIN1CLKFBINCLKIN1CLKFBIN

CLKOUT<6:0>CLKFBOUT

CLKOUT<6:0>CLKFBOUT

MMCM_BASE

RSTRST LOCKEDLOCKED

CLKIN1CLKFBINCLKIN1CLKFBIN

CLKOUT<6:0>CLKFBOUT

CLKOUT<6:0>CLKFBOUT

MMCM_ADV

CLKIN2CLKINSEL

DRPPhase Shift

CLKIN2CLKINSEL

DRPPhase Shift

RSTRST LOCKEDLOCKED

Page 17: Virtex-6 Clocking Resources Basic FPGA Architecture Xilinx Training

MMCM Internals

Phase / frequency detector compares CLKIN with CLKFB– Accepts up to 650-MHz inputs– Adjusts the charge pump output

voltage higher or lower– Charge pump controls the VCO

frequency

Many different output frequencies can be generated– Fout = Fin * M / (D*O)– One M and one D value per MMCM– Each MMCM output can have its

own O value– M: 1…64; D: 1…80; O: 1…128

VCOLFCPPFD O0

CLKFB

CLKIN1CLKIN2

Routing ClockSwitch

D

CLKINSTOPPED

Lock

CLKFBSTOPPED

StopDetect

LockDetect

9

O1

O2

O3

O4

O5

O6

MCLKFBOUT

HOLD

Page 18: Virtex-6 Clocking Resources Basic FPGA Architecture Xilinx Training

Extra MMCM Features

Fractional counters– Ability to configure O0 and CLKFBOUT

as counters with 1/8th granularity (e.g. 2.125, 2.250, 2.375, etc.)

– O5 output is disabled when using this feature

– Enables many more frequencies to be synthesized

Two methods of shifting phase– Static phase shift using time-shifted

VCO outputs– Dynamic phase shift using the PS port

to change the phase on the fly in increments of 1/56 of VCO period

0

45

90

135

180

225

270

315

VCOOutputs

O0

O1

O2

O3

O4

O5

O6

CLKFBOUT

Page 19: Virtex-6 Clocking Resources Basic FPGA Architecture Xilinx Training

Additional MMCM Signals

Complement outputs– O0-O3 of every MMCM have

both true and complement outputs

– Provide 180 degree phase shift

LOCKED– Signal showing that the MMCM has

locked on to the input frequency

CLKINSTOPPED/FBSTOPPED– Status signals indicating that the input or feedback clocks have stopped

running

PWRDWN (not shown)– Disable / Enable signal to the regulated supply of each MMCM

• Unused MMCMs draw power

VCOLFCPPFD O0

CLKFB

CLKIN1CLKIN2

Routing ClockSwitch

D

CLKINSTOPPED

Lock

CLKFBSTOPPED

StopDetect

LockDetect

9

O1

O2

O3

O4

O5

O6

MCLKFBOUT

HOLD

Page 20: Virtex-6 Clocking Resources Basic FPGA Architecture Xilinx Training

MMCM Connectivity

Many possible inputs to each MMCM – CCIO from inner I/O

columns– Global clock inputs– BUFG– GTX clocks

MMCM outputs drive– BUFG– BUFH in same region– Performance paths to

BUFIO and BUFR (not shown)

MMCM

Clock capable IO(Inner I/O Columns)

GTX clocks

Clock capable IO(Inner I/O Columns)

HROW clock HROW clock

Glo

ba

l C

loc

k in

pu

ts

To B

UF

G

To B

UF

G

To B

UF

G

Fro

m B

UF

G

To B

UF

G

CLKIN1CLKIN2

CLKFBIN

Page 21: Virtex-6 Clocking Resources Basic FPGA Architecture Xilinx Training

Clock Deskew

Use a BUFG on CLKFBOUT if a precise phase relationship between input clock and output clock is required– Most flexible solution but requires two

global clock buffers

Remove the BUFG on CLKFBOUT if there is no need for a precise phase relationship– Frequency synthesis or jitter filtering

only

IBUFG BUFG

BUFG

CLKIN

CLKFBIN

CLKOUT0

CLKFBOUT

Page 22: Virtex-6 Clocking Resources Basic FPGA Architecture Xilinx Training

MMCM-to-MMCM Connection

IBUFG

BUFGCLKIN

CLKFBIN

CLKOUT0

CLKFBOUT

BUFG

CLKIN

CLKFBIN

CLKOUT0

CLKFBOUT

CLKOUT1 To Logic

To Logic

MMCMs in the same CMT can be connected without the need for a global clock buffer– Output clock will not be aligned to input

clock

More clock frequencies can thus be generated

Page 23: Virtex-6 Clocking Resources Basic FPGA Architecture Xilinx Training

MMCM-to-MMCM Connection

IBUFG

BUFGCLKIN

CLKFBIN

CLKOUT0

CLKFBOUT

BUFG

CLKIN

CLKFBIN

CLKOUT0

CLKFBOUT

CLKOUT1

To Logic

To Logic

BUFG

To Logic

MMCMs in the same CMT can be connected without the need for a global clock buffer– Output of first MMCM connected to

CLKIN of second MMCM– BUFG inserted from CLKFBOUT to

CLKFBIN of the first MMCM to align output clock with input clock

– CLKFBOUT of first MMCM can also drive logic

Enables more phase-aligned clock frequencies to be generated

Page 24: Virtex-6 Clocking Resources Basic FPGA Architecture Xilinx Training

Example

Requirement– 33.3-MHz external oscillator controls

• 533-MHz data being generated by I/O logic (BUFIO)

• Large amount of logic at 66 MHz (BUFG)• Small design at 54 MHz (BUFH)

– Phase relationship between input clock and output clock is irrelevant

Solution– MMCM values

• M=16, D=1, O0=9.875, O1=1, O2=8– Generates

• 54 MHz on clkout0 O0 set to 9.875 using fractional counter

• 533 MHz on clkout1• 66 MHz on clkout2

MMCM

PerformancePath

CCIO

BUFIO

BUFH

BUFG

CLKIN1

CLKOUT0

CLKOUT1

CLKOUT2

CLKFBINCLKFBOUT

Page 25: Virtex-6 Clocking Resources Basic FPGA Architecture Xilinx Training

Summary

Clock regions = 40 CLBs, 40 IOBs in height– One or two I/O columns per region

32 global clock buffers (differential)– 8 global clock input pins (differential)– 12 global clocks per region

4 BUFIOs per I/O bank (differential)– 2 can drive adjacent I/O banks, others are local only

2 BUFRs per I/O bank– 6 regional clock networks– Can drive adjacent clock regions

The Clock Management Tile (CMT) has two Mixed-Mode Clock Managers (MMCMs) – Each MMCM includes a PLL– Jitter filtering and frequency synthesis capabilities

Page 26: Virtex-6 Clocking Resources Basic FPGA Architecture Xilinx Training

Where Can I Learn More?

User Guides – Virtex-6 FPGA Clocking Resources User Guide

• Describes the complete clocking structures

Xilinx Education Services courses– www.xilinx.com/training

• Designing with the Virtex-6 and Spartan-6 Families course• Xilinx tools and architecture courses• Hardware description language courses• Basic FPGA architecture, Basic HDL Coding Techniques, and other Free

videos!

Page 27: Virtex-6 Clocking Resources Basic FPGA Architecture Xilinx Training

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.

Trademark Information