White Paper Understanding Metastability in FPGAs



Similar documents
White Paper FPGA Performance Benchmarking Methodology

White Paper Utilizing Leveling Techniques in DDR3 SDRAM Memory Interfaces

White Paper Military Productivity Factors in Large FPGA Designs

Using Pre-Emphasis and Equalization with Stratix GX

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

Using Altera MAX Series as Microcontroller I/O Expanders

MAX II ISP Update with I/O Control & Register Data Retention

Understanding CIC Compensation Filters

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

White Paper Using the Intel Flash Memory-Based EPC4, EPC8 & EPC16 Devices

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

White Paper 40-nm FPGAs and the Defense Electronic Design Organization

Low latency synchronization through speculation

Engineering Change Order (ECO) Support in Programmable Logic Design

Video and Image Processing Suite

White Paper Streaming Multichannel Uncompressed Video in the Broadcast Environment

Enhancing High-Speed Telecommunications Networks with FEC

FPGAs for High-Performance DSP Applications

In-System Programmability

Using the On-Chip Signal Quality Monitoring Circuitry (EyeQ) Feature in Stratix IV Transceivers

Providing Battery-Free, FPGA-Based RAID Cache Solutions

Calibration Techniques for High- Bandwidth Source-Synchronous Interfaces

USB-Blaster Download Cable User Guide

MAX 10 Clocking and PLL User Guide

Applying the Benefits of Network on a Chip Architecture to FPGA System Design

Set-Reset (SR) Latch

White Paper Power-Optimized Solutions for Telecom Applications

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

Download the Design Files

Figure 1. Core Voltage Reduction Due to Process Scaling

December 2002, ver. 1.0 Application Note 285. This document describes the Excalibur web server demonstration design and includes the following topics:

For Quartus II Software. This Quick Start Guide will show you. how to set up a Quartus. enter timing requirements, and

MasterBlaster Serial/USB Communications Cable User Guide

White Paper Increase Flexibility in Layer 2 Switches by Integrating Ethernet ASSP Functions Into FPGAs

EE 42/100 Lecture 24: Latches and Flip Flops. Rev B 4/21/2010 (2:04 PM) Prof. Ali M. Niknejad

Altera Error Message Register Unloader IP Core User Guide

What Determines FPGA Power Requirements?

Measuring Metastability

Using Nios II Floating-Point Custom Instructions Tutorial

Avalon Interface Specifications

A Pausible Bisynchronous FIFO for GALS Systems

7. Latches and Flip-Flops

Testing Low Power Designs with Power-Aware Test Manage Manufacturing Test Power Issues with DFTMAX and TetraMAX

White Paper Reduce Total System Cost in Portable Applications Using Zero-Power CPLDs

Flip-Flops, Registers, Counters, and a Simple Processor

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

Demystifying Data-Driven and Pausible Clocking Schemes

RETRIEVING DATA FROM THE DDC112

Binary Numbering Systems

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

WEEK 8.1 Registers and Counters. ECE124 Digital Circuits and Systems Page 1

USB-Blaster II Download Cable User Guide

A New Paradigm for Synchronous State Machine Design in Verilog

Engr354: Digital Logic Circuits

Using the Altera Serial Flash Loader Megafunction with the Quartus II Software

BitBlaster Serial Download Cable

Continuous-Time Converter Architectures for Integrated Audio Processors: By Brian Trotter, Cirrus Logic, Inc. September 2008

PowerPC Microprocessor Clock Modes

These help quantify the quality of a design from different perspectives: Cost Functionality Robustness Performance Energy consumption

Memory Elements. Combinational logic cannot remember

Figure 1 FPGA Growth and Usage Trends

Technical Note. Micron NAND Flash Controller via Xilinx Spartan -3 FPGA. Overview. TN-29-06: NAND Flash Controller on Spartan-3 Overview

Lecture-3 MEMORY: Development of Memory:

DDR subsystem: Enhancing System Reliability and Yield

Sequential Logic Design Principles.Latches and Flip-Flops

9. Configuration, Design Security, and Remote System Upgrades in the Cyclone III Device Family

MorphIO: An I/O Reconfiguration Solution for Altera Devices

SINGLE-SUPPLY OPERATION OF OPERATIONAL AMPLIFIERS

Alpha CPU and Clock Design Evolution

Signal Integrity: Tips and Tricks

EE 459/500 HDL Based Digital Design with Programmable Logic. Lecture 16 Timing and Clock Issues

Lesson 12 Sequential Circuits: Flip-Flops

Digital Multiplexer and Demultiplexer. Features. General Description. Input/Output Connections. When to Use a Multiplexer. Multiplexer 1.

Quartus II Software and Device Support Release Notes Version 15.0

Qsys and IP Core Integration

White Paper Implementing a Flexible CPLD-Only Digital Dashboard for Automobiles

Dual DIMM DDR2 and DDR3 SDRAM Interface Design Guidelines

TSL INTEGRATED OPTO SENSOR

Theory of Operation. Figure 1 illustrates a fan motor circuit used in an automobile application. The TPIC kω AREF.

Chapter 9 Latches, Flip-Flops, and Timers

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

11. High-Speed Differential Interfaces in Cyclone II Devices

TECHNICAL NOTE 7-1. ARCNET Cable Length vs. Number of Nodes for the HYC9088 in Coaxial Bus Topology By: Daniel Kilcourse May 1991.

MAX 10 Analog to Digital Converter User Guide

Scanning Comparator (ScanComp) Features. General Description. Input/Output Connections. When to Use a Scanning Comparator. clock - Digital Input* 1.

Quartus II Software Download and Installation Quick Start Guide

Simplifying System Design Using the CS4350 PLL DAC

What to do about Fiber Skew?

Designing the NEWCARD Connector Interface to Extend PCI Express Serial Architecture to the PC Card Modular Form Factor

The Shortcut Guide to Balancing Storage Costs and Performance with Hybrid Storage

Timing Errors and Jitter

Developments in Point of Load Regulation

Quartus II Handbook Volume 3: Verification

Achieving New Levels of Channel Density in Downstream Cable Transmitter Systems: RF DACs Deliver Smaller Size and Lower Power Consumption

Limited WARRANTY: Make Noise implies and accepts no responsibility for harm to person or apparatus caused through operation of this product.

SmartDesign MSS. Clock Configuration

To design digital counter circuits using JK-Flip-Flop. To implement counter using 74LS193 IC.

Sequential Logic: Clocks, Registers, etc.

Transcription:

White Paper Understanding Metastability in FPGAs This white paper describes metastability in FPGAs, why it happens, and how it can cause design failures. It explains how metastability MTBF is calculated, and highlights how various device and design parameters affect the result. Introduction Metastability is a phenomenon that can cause system failure in digital devices, including FPGAs, when a signal is transferred between circuitry in unrelated or asynchronous clock domains. This paper describes metastability in FPGAs, explains why the phenomenon occurs, and discusses how it can cause design failures. The calculated mean time between failures (MTBF) due to metastability indicates whether designers should take steps to reduce the chance of such failures. This paper explains how MTBF is calculated from various design and device parameters, and how both FPGA vendors and designers can increase the MTBF. System reliability can be improved by reducing the chance of metastability failures with design techniques and optimizations. What Is Metastability? All registers in digital devices such as FPGAs have defined signal timing requirements that allow each register to correctly capture data at its inputs and produce an output signal. To ensure reliable operation, the input to a register must be stable for a minimum time before the clock edge (register setup time or t SU ) and for a minimum time after the clock edge (register hold time or t H ). The register output then is available after a specified clock-to-output delay (t CO ). If a data signal transition violates a register s t SU or t H requirements, the output of the register may go into a metastable state. In a metastable state, the register output hovers at a between the high and low states for some period of time, which means the output transition to a defined high or low state is delayed beyond the specified t CO. In synchronous systems, the input signals must always meet the register timing requirements, so metastability does not occur. Metastability problems commonly occur when a signal is transferred between circuitry in unrelated or asynchronous clock domains. The designer cannot guarantee that the signal will meet t SU and t H requirements in this case, because the signal can arrive at any time relative to the destination clock. However, not every signal transition that violates a register s t SU or t H results in a metastable output. The likelihood that a register enters a metastable state and the time required to return to a stable state vary depending on the process technology used to manufacture the device and on the operating conditions. In most cases, registers will quickly return to a stable defined state. A register sampling a data signal at a clock edge can be visualized as a ball being dropped onto a hill, as shown in Figure 1. The sides of the hill represent stable states the signal s old and new data s after a signal transition and the top of the hill represents a metastable state. If the ball is dropped at the top of the hill, it might balance there indefinitely, but in practice it falls slightly to one side of the top and rolls down the hill. The further the ball lands from the top of the hill, the faster it reaches a stable state at the bottom. If a data signal transitions after the clock edge and the minimum t H, it is analogous to the ball being dropped on the old data side of the hill, and the output signal remains at the original for that clock transition. When a register s data input transitions before the clock edge and minimum t SU, and is held beyond the minimum t H, it is analogous to the ball being dropped on the new data side of the hill, and the output reaches the stable new state quickly enough to meet the defined t CO time. However, when a register s data input violates the t SU or t H, it is analogous to the ball being dropped on the hill. If the ball lands near the top of the hill, the ball takes too long to reach the bottom, which increases the delay from the clock transition to a stable output beyond the defined t CO. WP-01082-1.2 July 2009, ver. 1.2 1

Understanding Metastability in FPGAs Figure 1. Metastability Illustrated as a Ball Dropped on a Hill Old data New data Old data New data Old data New data Signal transition occurs after clock edge and minimum t H : Ball lands on the old data side. Signal transition meets register t SU and t H : Ball lands on the new data side. Signal violates register t SU or t H : Ball balances at top of hill or takes too long to reach the bottom. Output is metastable and violates t CO. Figure 2 illustrates metastable signals. The input signal transitions from a low state to a high state while the clock signal transitions, violating a register s t SU requirement. The data output signal examples start in the low state and go metastable, hovering between the high and low states. The signal output A resolves to the input data s new logic 1 state, and output B returns to the data input s original logic 0 state. In both cases, the output transition to a defined 1 or 0 state is delayed beyond the register s specified t CO. Figure 2. Examples of Metastable Output Signals t SU Clock t H Input violates t SU Metastable output A (resolves to new data after t CO ) Metastable output B (resolves to old data after t CO ) t CO When Does Metastability Cause Design Failures? If the data output signal resolves to a valid state before the next register captures the data, then the metastable signal does not negatively impact the system operation. But if the metastable signal does not resolve to a low or high state before it reaches the next design register, it can cause the system to fail. Continuing the ball and hill analogy, failure can occur when the time it takes for the ball to reach the bottom of the hill (a stable logic 0 or 1) exceeds the allotted time, which is the register s t CO plus any timing slack in the path from the register. When a metastable signal does not resolve in the allotted time, a logic failure can result if the destination logic observes inconsistent logic states, that is, different destination registers capture different s for the metastable signal. Synchronization Registers When a signal transfers between circuitry in unrelated or asynchronous clock domains, it is necessary to synchronize this signal to the new clock domain before it can be used. The first register in the new clock domain acts as a synchronization register. 2

Understanding Metastability in FPGAs To minimize the failures due to metastability in asynchronous signal transfers, circuit designers typically use a sequence of registers (a synchronization register chain or synchronizer) in the destination clock domain to resynchronize the signal to the new clock domain. These registers allow additional time for a potentially metastable signal to resolve to a known before the signal is used in the rest of the design. The timing slack available in the synchronizer register-to-register paths is the time available for a metastable signal to settle, and is known as the available metastability settling time. A synchronization register chain, or synchronizer, is defined as a sequence of registers that meets the following requirements: The registers in the chain are all clocked by the same or phase-related clocks The first register in the chain is driven from an unrelated clock domain, or asynchronously Each register fans out to only one register, except the last register in the chain The length of the synchronization register chain is the number of registers in the synchronizing clock domain that meet the above requirements. Figure 3 shows a sample synchronization chain of length two, assuming the output signal feeds more than one register destination. Figure 3. Sample Synchronization Register Chain Synchronization Chain Data Clock1 Domain Clock2 Domain D Q D Q D Q Output Registers Clock1 Clock2 Note that any asynchronous input signals, or signals that transfer between unrelated clock domains, can transition at any point relative to the clock edge of the capturing register. Therefore the designer cannot predict the sequence of a signal s transitions or the number of destination clock edges until the data transitions. For example, if a bus of asynchronous signals is transferred between clock domains and synchronized, the data signals could transition on different clock edges. As a result, the received s of the bus data could be incorrect. The designer must accommodate this behavior with circuitry such as dual-clock FIFO (DCFIFO) logic to store the signal s, or hand-shaking logic. FIFO logic uses synchronizers to transmit control signals between the two clock domains, then data is written and read with dual-port memory. Altera offers a DCFIFO megafunction for this operation, which includes various levels of latency and metastability protection for the control signals. Otherwise, if an asynchronous signal acts as part of hand-shaking logic between two clock domains, control signals indicate when data can be transferred between clock domains. In this case, synchronization registers are used to ensure that metastability will not interfere with the reception of control signals and that the data has enough settling time for any metastable conditions to resolve before the data is used. In a properly-designed system, the design functions correctly as long as each signal resolves to a stable before it is used. Calculating Metastability MTBF The mean time between failures, or MTBF, due to metastability provides an estimate of the average time between instances when metastability could cause a design failure. A higher MTBF (such as hundreds or thousands of years between metastability failures) indicates a more robust design. The required MTBF depends on the system application. For example, a life-critical medical device requires a higher MTBF than a consumer video-display device. Increasing the metastability MTBF reduces the chance that signal transfers will cause any metastability problems on the device. 3

Understanding Metastability in FPGAs The metastability MTBF for a specific signal transfer, or all the transfers in a design, can be calculated using information about the design and the device characteristics. The MTBF of a synchronizer chain is calculated with the following formula and parameters: e t MET C 2 MTBF = --------------------------------------- C 1 f CLK f DATA The C 1 and C 2 constants depend on the device process and operating conditions. The f CLK and f DATA parameters depend on the design specifications: f CLK is the clock frequency of the clock domain receiving the asynchronous signal and f DATA is the toggling frequency of the asynchronous input data signal. Faster clock frequencies and faster-toggling data reduce (or worsen) the MTBF. The t MET parameter is the available metastability settling time, or the timing slack available beyond the register s t CO, for a potentially metastable signal to resolve to a known. The t MET for a synchronization chain is the sum of the output timing slacks for each register in the chain. The overall design MTBF can be determined by the MTBF of each synchronizer chain in the design. The failure rate for a synchronizer is 1/MTBF, and the failure rate for the entire design is calculated by adding the failure rates for each synchronizer chain, as follows: 1 failure_rate design = --------------------------- = MTBF design The design metastability MTBF is then 1/failure_rate design. number of chains i = 1 1 ---------------- MTBF i Designers using Altera FPGAs do not have to perform these calculations manually because Altera s Quartus II software incorporates the metastability parameters within the tool. The Quartus II software reports the MTBF for identified synchronization chains as well as providing an overall design metastability MTBF. Characterizing Metastability Constants FPGA vendors can determine the constant parameters in the MTBF equation by characterizing the FPGA for metastability. The difficulty with this characterization is that MTBFs for typical FPGA designs are in years, so measuring the time between metastability events using real designs under real operating conditions is impractical. To characterize the device-specific metastability constants, Altera uses a test circuit designed to have a short, measurable MTBF, as shown in Figure 4. Figure 4. Test Circuit Structure for Metastability Characterization Synchronization register (Synchronizer chain of length 1) clka D Q D Q D Q src dest D Q error clkb D Q 4

Understanding Metastability in FPGAs In this design, clka and clkb are two unrelated clock signals. The data input to the synchronizer toggles every clock cycle (a high f DATA ). The synchronizer has length 1, because the single synchronizing register feeds two destination registers. The destination registers capture the output of the synchronizer one clock cycle later and one half-clock cycle later. If the signal goes metastable before resolving at the next clock edge, the circuit detects that the sampled signals are different, and outputs an error signal. This circuitry detects a high proportion of the metastability events that occur at the half-clock cycle time. This circuit is replicated throughout the device to reduce the effect of any local variation, and each instance is tested consecutively to eliminate any noise coupling. Altera measures each test structure for one minute and records the error count. The test is performed at different clock frequencies, and the MTBF versus t MET results are plotted on a logarithmic scale. The C 2 constant corresponds to the slope of the trend line for the experimental results, and the C 1 constant scales the line linearly. Improving Metastability MTBF e t MET C 2 Due to the exponential factor in the MTBF equation, the t MET /C 2 term has the largest effect on the MTBF calculation. Therefore metastability can be improved by optimizing the device s C 2 constant with architecture enhancements, or optimizing the design to increase the t MET in the synchronization registers. FPGA Architecture Enhancements The metastability time constant C 2 in the MTBF equation depends on various factors related to the process technology used to manufacture the device, including the transistor speed and the supply voltage. Faster process technologies and faster transistors allow metastable signals to resolve more quickly. As FPGAs have migrated from 180-nm process geometries to 90 nm, the increase in transistor speed usually improves metastability MTBF. Therefore, metastability has not been a major concern for FPGA designers. However, as the supply voltage reduces with reduced process geometries, the threshold voltage for the circuit does not decrease proportionally. When a register goes metastable, its voltage is approximately one-half of the supply voltage. With a reduced power supply voltage, the metastable voltage level is closer to the threshold voltage in the circuit. When these voltages get closer together, the gain of the circuit is reduced and the registers take longer to transition out of metastability. As FPGAs enter the 65-nm process geometry and lower, with power supplies at 0.9V and lower, the threshold voltage consideration is becoming more important than the increase in transistor speed. Therefore, metastability MTBFs generally get worse unless the vendor designs the FPGA circuitry to improve metastability robustness. Altera uses metastability analysis of the FPGA architecture to optimize the circuitry for improved metastability MTBF. Architecture improvements in Altera s 40-nm Stratix IV FPGA architectures and new device development have improved the metastability robustness results by reducing the MTBF C 2 constant. Design Optimizations The exponential factor in the MTBF equation means that an increase in the design-dependent t MET increases a synchronizer MTBF exponentially. For example, if the C 2 constant for a given device and set of operating conditions is 50 ps, then an increase of just 200 ps in the t MET makes the exponent 200/50 and increases the MTBF by factor e 4, or more than 50 times, while an increase of 400 ps multiplies the MTBF by e 8, or almost 3000 times. In addition, the chain with the worst MTBF has a major affect on the design MTBF. For example, consider two different designs that have ten synchronizer chains. One design has ten chains with the same MTBF of 10,000 years, and the other has nine chains with MTBF of a million years but one chain with MTBF of 100 years. The failure rate for the design is the sum of the failure rates for each chain, where the failure rate is 1/MTBF. The first design has a metastability failure rate of 10 chains 1/10,000 years = 0.001, therefore the design MTBF is 1000 years. The second design has a failure rate of 9 chains 1/1,000,000 + 1/100 = 0.01009 and the design MTBF is about 99 years just slightly less than the MTBF of the worst chain. 5

Understanding Metastability in FPGAs Put another way, one badly designed or implemented synchronization chain dominates the design s overall metastability MTBF. Because of this effect, it is important to perform metastability analysis for all asynchronous signals and clock domain transfers. The designer or tool vendor can have a very significant impact on a design MTBF by improving the t MET for the synchronizer chains with the worst MTBF. To improve metastability MTBF, designers can increase t MET by adding extra register stages to synchronization register chains. The timing slack on each additional register-to-register connection is added to the t MET. Designers commonly use two registers to synchronize a signal, but Altera recommends using a standard of three registers for better metastability protection. However, adding a register adds an additional latency stage to the synchronization logic, so designers must evaluate whether that is acceptable. If a design uses the Altera FIFO megafunction with separate read and write clocks to cross-clock domains, designers can increase the metastability protection (and latency) for better MTBF. Altera s Quartus II MegaWizard Plug-In Manager offers an option to choose increased metastability protection option with three or more synchronization stages. Quartus II software also offers industry-leading metastability analysis and optimization features to increase the t MET on synchronization register chains. When synchronizers are identified, the software places synchronization registers closer together to increase the output timing slack available in the synchronizer chain, and then reports the metastability MTBF. f For more information about analyzing and improving MTBF in Altera FPGAs, refer to the Managing Metastability with the Quartus II Software chapter in volume 1 of the Quartus II Handbook. Conclusion Metastability can occur when signals are transferred between circuitry in unrelated or asynchronous clock domains. The mean time between metastability failures is related to the device process technology, design specifications, and timing slack in the synchronization logic. FPGA designers can improve system reliability and increase metastability MTBF by increasing the t MET with design techniques that add timing slack in synchronization registers. Altera characterizes the MTBF parameters for its FPGAs and improves metastability MTBF with device technology improvements. Designers using Altera FPGAs can take advantage of Quartus II software features to report metastability MTBF for their design, and optimize design placement to increase MTBF. Further Information Managing Metastability with the Quartus II Software: www.altera.com/literature/hb/qts/qts_qii51018.pdf AN 473: Using DCFIFO for Data Transfer Between Asynchronous Clock Domains: www.altera.com/literature/an/an473.pdf Acknowledgments Jennifer Stephenson, Applications Engineer, Member of Technical Staff, Software Applications Engineering, Doris Chen, Advanced Software Engineer, Software and Systems Engineering, Ryan Fung, Senior Member of Technical Staff, Software and Systems Engineering, Jeffrey Chromczak, Senior Software Engineer, Software and Systems Engineering, 101 Innovation Drive San Jose, CA 95134 www.altera.com Copyright 2009. All rights reserved. Altera, The Programmable Solutions Company, the stylized Altera logo, specific device designations, and all other words and logos that are identified as trademarks and/or service marks are, unless noted otherwise, the trademarks and service marks of in the U.S. and other countries. All other product or service names are the property of their respective holders. Altera products are protected under numerous U.S. and foreign patents and pending applications, maskwork rights, and copyrights. Altera warrants performance of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by. Altera customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services. 6