FPGA Clocking. Clock related issues: distribution generation (frequency synthesis) multiplexing run time programming domain crossing



Similar documents
Programmable Logic Design Grzegorz Budzyń Lecture. 10: FPGA clocking schemes

Clocking Wizard v5.1

Clocking. Figure by MIT OCW Spring /18/05 L06 Clocks 1

PROGETTO DI SISTEMI ELETTRONICI DIGITALI. Digital Systems Design. Digital Circuits Advanced Topics

Source-Synchronous Serialization and Deserialization (up to 1050 Mb/s) Author: NIck Sawyer

PowerPC Microprocessor Clock Modes

Timing Methodologies (cont d) Registers. Typical timing specifications. Synchronous System Model. Short Paths. System Clock Frequency

A Pausible Bisynchronous FIFO for GALS Systems

White Paper Understanding Metastability in FPGAs

MAX 10 Clocking and PLL User Guide

SmartDesign MSS. Clock Configuration

Creating a Controllable Oscillator Using the Virtex-5 FPGA IODELAY Primitive Author: Martin Kellermann

White Paper Utilizing Leveling Techniques in DDR3 SDRAM Memory Interfaces

Clocks Basics in 10 Minutes or Less. Edgar Pineda Field Applications Engineer Arrow Components Mexico

A New Paradigm for Synchronous State Machine Design in Verilog

Clocking Solutions. Wired Communications / Networking Wireless Communications Industrial Automotive Consumer Computing. ti.

PROGETTO DI SISTEMI ELETTRONICI DIGITALI. Digital Systems Design. Digital Circuits Advanced Topics

Isolation Design Flow for Xilinx 7 Series FPGAs or Zynq-7000 AP SoCs (ISE Tools)

Alpha CPU and Clock Design Evolution

Abstract. Cycle Domain Simulator for Phase-Locked Loops

Glitch Free Frequency Shifting Simplifies Timing Design in Consumer Applications

PLL Dynamic Reconfiguration Author: Karl Kurbjun and Carl Ribbing

Managing High-Speed Clocks

PLL frequency synthesizer

Low latency synchronization through speculation

Jitter in PCIe application on embedded boards with PLL Zero delay Clock buffer

High-Level Synthesis for FPGA Designs

Design and Implementation of an On-Chip timing based Permutation Network for Multiprocessor system on Chip

Prototyping ARM Cortex -A Processors using FPGA platforms

Hardware Implementation of Improved Adaptive NoC Router with Flit Flow History based Load Balancing Selection Strategy

Measuring Metastability

DEVELOPMENT OF DEVICES AND METHODS FOR PHASE AND AC LINEARITY MEASUREMENTS IN DIGITIZERS

Experiment # 9. Clock generator circuits & Counters. Eng. Waleed Y. Mousa

TIP-VBY1HS Data Sheet

Master/Slave Flip Flops

Lecture 10: Multiple Clock Domains

University of St. Thomas ENGR Digital Design 4 Credit Course Monday, Wednesday, Friday from 1:35 p.m. to 2:40 p.m. Lecture: Room OWS LL54

CLOCK DOMAIN CROSSING CLOSING THE LOOP ON CLOCK DOMAIN FUNCTIONAL IMPLEMENTATION PROBLEMS

Hello and welcome to this training module for the STM32L4 Liquid Crystal Display (LCD) controller. This controller can be used in a wide range of

Simplifying System Design Using the CS4350 PLL DAC

Introduction to CMOS VLSI Design (E158) Lecture 8: Clocking of VLSI Systems

DigiPoints Volume 1. Student Workbook. Module 4 Bandwidth Management

Selecting the Optimum PCI Express Clock Source

White Paper FPGA Performance Benchmarking Methodology

ASYNCHRONOUS COUNTERS

Chapter 6 PLL and Clock Generator

Figure 1 FPGA Growth and Usage Trends

Distributed Elastic Switch Architecture for efficient Networks-on-FPGAs

Introduction to Xilinx System Generator Part II. Evan Everett and Michael Wu ELEC Spring 2013

Design of a High Speed Communications Link Using Field Programmable Gate Arrays

Clock Data Recovery Design Techniques for E1/T1 Based on Direct Digital Synthesis Author: Paolo Novellini and Giovanni Guasti

Open Flow Controller and Switch Datasheet

Timing Errors and Jitter

TIMING-DRIVEN PHYSICAL DESIGN FOR DIGITAL SYNCHRONOUS VLSI CIRCUITS USING RESONANT CLOCKING

Header Parsing Logic in Network Switches Using Fine and Coarse-Grained Dynamic Reconfiguration Strategies

ICS379. Quad PLL with VCXO Quick Turn Clock. Description. Features. Block Diagram

Lecture 7: Clocking of VLSI Systems

Architectural Level Power Consumption of Network on Chip. Presenter: YUAN Zheng

Latch Timing Parameters. Flip-flop Timing Parameters. Typical Clock System. Clocking Overhead

FPGA Synthesis Example: Counter

LogiCORE IP AXI Performance Monitor v2.00.a

An All-Digital Phase-Locked Loop with High Resolution for Local On-Chip Clock Synthesis

TRIPLE PLL FIELD PROG. SPREAD SPECTRUM CLOCK SYNTHESIZER. Features

ECEN689: Special Topics in High-Speed Links Circuits and Systems Spring 2010

Optimizing VCO PLL Evaluations & PLL Synthesizer Designs

Chapter 9 Latches, Flip-Flops, and Timers

Manchester Encoder-Decoder for Xilinx CPLDs

Learning Outcomes. Simple CPU Operation and Buses. Composition of a CPU. A simple CPU design

Lecture 11: Sequential Circuit Design

Synchronization of sampling in distributed signal processing systems

Asynchronous IC Interconnect Network Design and Implementation Using a Standard ASIC Flow

A PC-BASED TIME INTERVAL COUNTER WITH 200 PS RESOLUTION

Accurate Measurement of the Mains Electricity Frequency

Sequential Circuits. Combinational Circuits Outputs depend on the current inputs

1997 Mixed-Signal Products SLAA011B

Using FPGAs to Design Gigabit Serial Backplanes. April 17, 2002

Chapter 4 T1 Interface Card

Reconfigurable Architecture Requirements for Co-Designed Virtual Machines

DM Segment Decoder/Driver/Latch with Constant Current Source Outputs

Agenda. Michele Taliercio, Il circuito Integrato, Novembre 2001

ISSCC 2003 / SESSION 13 / 40Gb/s COMMUNICATION ICS / PAPER 13.7

Achieving High Performance DDR3 Data Rates

ICS SPREAD SPECTRUM CLOCK SYNTHESIZER. Description. Features. Block Diagram DATASHEET

Cloud-Based Apps Drive the Need for Frequency-Flexible Clock Generators in Converged Data Center Networks

LatticeECP3 High-Speed I/O Interface

EE552. Advanced Logic Design and Switching Theory. Metastability. Ashirwad Bahukhandi. (Ashirwad Bahukhandi)

Fairchild Solutions for 133MHz Buffered Memory Modules

The Future of Multi-Clock Systems

MONOCHROME RGB YCbCr VIDEO DIGITIZER

Title: Low EMI Spread Spectrum Clock Oscillators

Asynchronous Bypass Channels

Lizy Kurian John Electrical and Computer Engineering Department, The University of Texas as Austin

FAST TUTORIALS FOR TIME-CHALLENGED TECHNICIANS

11. High-Speed Differential Interfaces in Cyclone II Devices

Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai Jens Onno Krah

How To Understand The Concept Of Circuit Switching

Chapter 2 Clocks and Resets

SPREAD SPECTRUM CLOCK GENERATOR. Features

Transcription:

FPGA Clocking Clock related issues: distribution generation (frequency synthesis) Deskew multiplexing run time programming domain crossing Clock related constraints 100

Clock Distribution Device split into halves (top/bottom) and clock regions (rectangular, uniform size) Different clock buffer types: BUFG can clock any FF within the top or bottom of device (top/bottom BUFGs) BUFR clocks a single clock region BUFMR clocks up to 3 clock regions BUFH clock a horizontal clock spine within a region 101

FPGA Clocking Clock generation (frequency synthesis) Uses Clock Management Tiles which consist of: PLL/DCM (Frequency Synthesis) MMCM (Advanced PLL with phase control) Clock input from PCB must use Clock capable pins of FPGA Differential pairs Single ended clocks always use P side 102

Frequency Synthesis Common use case: generate all design clocks from single input clock (crystal oscillator) 103

Frequency Synthesis with MMCM 104

Frequency Synthesis with MMCM MMCM Input Block: VCO frequency generator F VCO =F CLKIN *(M/D) F VCO is limited, not all M/D values are valid Programmable Input Divide Frequency Multiplier 105

Frequency Synthesis with MMCM Output divider block: Phase shift Frequency division PLL lacks the following: Variable Phase Tap CLKOUTxB CLKFBOUTB Fractional dividers 106

Frequency Synthesis with MMCM MMCME2_BASE #(.CLKFBOUT_MULT_F(), // (2.000 64.000).CLKOUTx_DIVIDE(), // (1 128).CLKOUT0_DIVIDE_F(), // (1.000 128.000).CLKOUTx_DUTY_CYCLE() // (0.01 0.99).DIVCLK_DIVIDE(), // (1 106) ) MMCME2_BASE_inst (.CLKOUTx(),.CLKOUTxB(),.CLKFBOUT(),.CLKFBOUTB(),.LOCKED(),.CLKIN1(),.PWRDWN(),.RST(),.CLKFBIN()); 107

Clock deskew with MMCM Skew is delay in clock arrival at FFs, which is caused by clock routing (buffers, wires) 108

Clock deskew with MMCM Use clock buffer in same clock region of FPGA to drive CLKFBIN Output clock buffers must be in the same clock region relative to their function: BUFG same half BUFH same clock region 109

Dynamic MMCM Reconfiguration MMCMs have run time (dynamic) reconfiguration ports Reconfigurable parameters: Phase Divide Counters Duty cycle Configuration through multiple registers and addressable access port (see XAPP 888 in further reading) 110

Clock Multiplexing Many applications require clock multiplexing: In circuit debugging (to avoid domain crossing) Dynamic frequency scaling Clock redundancy (switch away from dead clock) FPGA clock multiplexers (2:1) implemented with BUFGMUX_CTRL primitive 111

Clock Multiplexing Clock switch latency: max 3 clock cycles of the slower clock Glitchless output 112

Clock Related Constraints Timing constraints: Period: guides timing analysis with regard to a periodic signal (clock) NET <clock_name>" TNM_NET = <group_name>"; TIMESPEC <spec_name> = PERIOD <group_name>" <period> <unit> HIGH/LOW <percentage> %; OFFSET IN/OUT FROM:TO 113

Clock domain crossing Problem: direct crossing leads to metastability 114

Clock domain crossing FPGAs have rapid average metastability recovery (ps) But recovery is unbounded (probability is nonnull that the metastable state will last a given time T) Design goal: achieve a desired MTBF, given the recovery parameters of the flip flop 115

Clock domain crossing Synchronizer: Multiple FFs at the receiving end guard against metastability Number of FFs a function of desired MTBF and ratio of clock frequencies 116

Clock domain crossing Register output from source domain for more predictable timing (increased MTBF) 117

Clock domain crossing 2FF synchronizers work well when destination clock is faster than source clock (signal will remain stable for at least one destination clock cycle) Fast to slow crossing requires closed loop synchronizer with handshake 118

Clock domain crossing Closed loop: Control signal crosses into clock domain 2, then back into clock domain 1, and is checked against the reference (high latency) 119

Further Reading Article: Tim Behne, FPGA Clock Schemes Xilinx 7 Series Clock Resources User Guide XAPP888: MMCM and PLL Dynamic Reconfiguration Cliff Cummings: Clock Domain Crossing XAPP94: Metastability Recovery Xilinx: FPGA Design Techniques SOC Central: Clock Domain Crossing Demystified 120