Achieving Timing Closure. Achieving Timing Closure - 2 © Copyright 2010 Xilinx Objectives After completing this module, you will be able to:  Describe.

Slides:



Advertisements
Similar presentations
Basic HDL Coding Techniques
Advertisements

TOPIC : SYNTHESIS DESIGN FLOW Module 4.3 Verilog Synthesis.
Spartan-3 FPGA HDL Coding Techniques
Synthesis Options. Welcome If you are new to FPGA design, this module will help you synthesize your design properly These synthesis techniques promote.
Logic Synthesis – 3 Optimization Ahmed Hemani Sources: Synopsys Documentation.
FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR Topics n 16 x 16 multiplier example.
Leveraging Software to Enhance Timing Analysis for Actel RTAX-S Devices Johnny Chung Corporate Applications Engineering Actel Corporation MAPLD 2005.
Timing Closure. Page 2 Welcome This module will help you understand how your synthesis tool, the ISE software, HDL coding style, and other factors that.
FPGA and ASIC Technology Comparison - 1 © 2009 Xilinx, Inc. All Rights Reserved Synthesis Options.
Fast FPGA Resource Estimation Paul Schumacher & Pradip Jha Xilinx, Inc.
George Mason University FPGA Design Flow ECE 448 Lecture 9.
Section B A Step-By-Step Description of the Synplicity Flow Andy Miller © Copyright 2000 Xilinx - All Rights Reserved.
© 2003 Xilinx, Inc. All Rights Reserved Architecture Wizard and PACE FPGA Design Flow Workshop Xilinx: new module Xilinx: new module.
1 Lecture 28 Timing Analysis. 2 Overview °Circuits do not respond instantaneously to input changes °Predictable delay in transferring inputs to outputs.
© 2010 Copyright Xilinx Timing Closure. © Copyright 2010 XilinxTiming Closure REL Page 2 Welcome  This module will help you understand how your synthesis.
Kazi Spring 2008CSCI 6601 CSCI-660 Introduction to VLSI Design Khurram Kazi.
Kazi Fall 2006 EEGN 4941 EEGN-494 HDL Design Principles for VLSI/FPGAs Khurram Kazi.
Altera’s Quartus II Installation, usage and tutorials Gopi Tummala Lab/Office Hours : Friday 2:00 PM to.
King Fahd University of Petroleum and Minerals Computer Engineering Department COE 561 Digital Systems Design and Synthesis (Course Activity) Synthesis.
Achieving Timing Closure. Objectives After completing this module, you will be able to: Describe a flow for obtaining timing closure Interpret a timing.
Global Timing Constraints. Objectives After completing this module you will be able to… Apply global timing constraints to a simple synchronous design.
© 2011 Xilinx, Inc. All Rights Reserved This material exempt per Department of Commerce license exception TSU Xilinx Tool Flow.
03/30/031 ECE 551: Digital System Design & Synthesis Lecture Set 9 9.1: Constraints and Timing 9.2: Optimization (In separate file)
© 2003 Xilinx, Inc. All Rights Reserved Power Estimation.
Global Timing Constraints FPGA Design Workshop. Objectives  Apply timing constraints to a simple synchronous design  Specify global timing constraints.
FPGA and ASIC Technology Comparison - 1 © 2009 Xilinx, Inc. All Rights Reserved Global Timing Constraints.
ISE. Tatjana Petrovic 249/982/22 ISE software tools ISE is Xilinx software design tools that concentrate on delivering you the most productivity available.
© 2003 Xilinx, Inc. All Rights Reserved Reading Reports Xilinx: This module was completely redone. Please translate entire module Some pages are the same.
© 2003 Xilinx, Inc. All Rights Reserved FPGA Design Techniques.
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.
Spring Introduction  Today’s tutorial focuses on introducing you to Xilinx ISE and Modelsim.  These tools are used for Verilog Coding Simulation.
© 2003 Xilinx, Inc. All Rights Reserved For Academic Use Only Xilinx Design Flow FPGA Design Flow Workshop.
FPGA-Based System Design: Chapter 6 Copyright  2004 Prentice Hall PTR Topics n Design methodologies.
CSE 494: Electronic Design Automation Lecture 2 VLSI Design, Physical Design Automation, Design Styles.
Lecture 2 1 ECE 412: Microcomputer Laboratory Lecture 2: Design Methodologies.
Tools - Implementation Options - Chapter15 slide 1 FPGA Tools Course Implementation Options.
© 2003 Xilinx, Inc. All Rights Reserved FPGA Editor: Viewing and Editing a Routed Design.
© 2003 Xilinx, Inc. All Rights Reserved Synchronous Design Techniques.
This material exempt per Department of Commerce license exception TSU Reading Reports.
OVERVIEW OF OVERVIEW OF Spartan-3. DESIGNFLOW Translate Map Place & Route Plan & Budget HDL RTL Simulation Synthesize to create netlist Functional Simulation.
Creating Graphical User Interfaces (GUI’s) with MATLAB By Jeffrey A. Webb OSU Gateway Coalition Member.
This material exempt per Department of Commerce license exception TSU Xilinx Tool Flow.
© 2003 Xilinx, Inc. All Rights Reserved Global Timing Constraints FPGA Design Flow Workshop.
Programmable Logic Training Course HDL Editor
Design Verification Code and Toggle Coverage Course 7.
ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU FPGA Design with Xilinx ISE Presenter: Shu-yen Lin Advisor: Prof. An-Yeu Wu 2005/6/6.
Introductory project. Development systems Design Entry –Foundation ISE –Third party tools Mentor Graphics: FPGA Advantage Celoxica: DK Design Suite Design.
Slide 1 2. Verilog Elements. Slide 2 Why (V)HDL? (VHDL, Verilog etc.), Karen Parnell, Nick Mehta, “Programmable Logic Design Quick Start Handbook”, Xilinx.
Timing and Constraints “The software is the lens through which the user views the FPGA.” -Bill Carter.
Tools - Design Manager - Chapter 6 slide 1 Version 1.5 FPGA Tools Training Class Design Manager.
This material exempt per Department of Commerce license exception TSU Synchronous Design Techniques.
© 2005 Xilinx, Inc. All Rights Reserved This material exempt per Department of Commerce license exception TSU Implementation Options.
1 Performance Analysis (Clock Signal). 2 Unbalanced delays Logic with unbalanced delays leads to inefficient use of logic: long clock periodshort clock.
Tools - Analyzing your results - Chapter 7 slide 1 Version 1.5 FPGA Tools Course Analyzing your Results.
Ready to Use Programmable Logic Design Solutions.
ASIC/FPGA design flow. Design Flow Detailed Design Detailed Design Ideas Design Ideas Device Programming Device Programming Timing Simulation Timing Simulation.
04/21/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Functional & Timing Verification 10.2: Faults & Testing.
11 Copyright © 2009, Oracle. All rights reserved. Enhancing ETL Performance.
Achieving Timing Closure
FPGA Design Techniques
Topics 16 x 16 multiplier example..
Limitations of STA, Slew of a waveform, Skew between Signals
Timing Analysis 11/21/2018.
FPGA Tools Course Basic Constraints
FPGA Tools Course Answers
Xilinx CPLD Fitter Advanced Optimization
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
The Xilinx Alliance 3.3i software
FPGA Tools Course Timing Analyzer
The Xilinx Alliance 3.3i software
Presentation transcript:

Achieving Timing Closure

Achieving Timing Closure - 2 © Copyright 2010 Xilinx Objectives After completing this module, you will be able to:  Describe a flow for obtaining timing closure  Interpret a timing report and determine the cause of timing errors  Apply Timing Analyzer report options to create customized timing reports

Achieving Timing Closure - 3 © Copyright 2010 Xilinx Timing Closure

Achieving Timing Closure - 4 © Copyright 2010 Xilinx Timing Reports  Timing reports help you determine why your design fails to meet its constraints –Reports contain detailed descriptions of paths that fail their constraints  The implementation tools can create timing reports at two points in the design flow –Post-Map Static Timing Report Use for an early indication as to whether your design might meet timing –Post-Place & Route Static Timing Report Use as a final analysis of whether your design has met timing  The Timing Analyzer is a utility for creating and reading timing reports

Achieving Timing Closure - 5 © Copyright 2010 Xilinx  Double-click Analyze Post-Place & Route Static Timing –Opens the Post-Place & Route Static Timing Report –Allows you to create custom reports  Open a plain text version by clicking Static Timing Report in the Design Summary screen Using the Timing Analyzer

Achieving Timing Closure - 6 © Copyright 2010 Xilinx Timing Analyzer GUI  Hierarchical browser –Quickly navigate to specific report sections –Failing constraints indicated with a red “X”  Timing objects window –Summarizes the path displayed in the path detail window  Report text –Logic highlighted in blue can be cross-probed

Achieving Timing Closure - 7 © Copyright 2010 Xilinx Cross-Probing  Shows the placement of logic in a delay path –Right-click on the delay path to see this option –The FPGA Editor view is used for seeing the actual placement and routing used –The Technology view shows logical path through components

Achieving Timing Closure - 8 © Copyright 2010 Xilinx Timing Report Structure  Timing constraints –Number of paths covered and number of paths that failed for each constraint –Detailed descriptions of the longest paths  Data sheet report –Setup, hold, and clock-to-out times for each I/O pin  Timing summary –Timing errors (number of failing paths) –Timing score (total number of ps of all constraints that were missed)  Timing report description –Allows you to easily duplicate the report

Achieving Timing Closure - 9 © Copyright 2010 Xilinx Paths Reported  Setup paths –Slowest delay paths for each constraint –Defaults to the three longest paths  Hold paths –Fastest delay paths for each constraint  Component switching limits –Checks that the toggle rate and duty cycle are in limits with specification

Achieving Timing Closure - 10 © Copyright 2010 Xilinx Report Example  Constraint summary –Number of paths analyzed –Number of timing errors –Length of critical path  Total delay –Clock and data breakdown  Clock jitter analysis  Detailed path description –Delay types are described in the data sheet –Worst-case conditions are assumed, unless pro-rated

Achieving Timing Closure - 11 © Copyright 2010 Xilinx Estimating Design Performance  Performance estimates are available before implementation is complete  Synthesis Report –Logic delays are accurate –Routing delays are estimated based on fanout –Reported performance is generally accurate to within 30 percent  Post-Map Static Timing Report –Logic delays are accurate –Routing delays are estimated based on placement and fanout

Achieving Timing Closure - 12 © Copyright 2010 Xilinx Analyzing Post-Place & Route Timing  There are many factors that contribute to timing errors, including –Poor micro-architecture –Neglecting synchronous design rules or using incorrect HDL coding style –Poor synthesis results (too many logic levels in the path) –Inaccurate or incomplete timing constraints –Poor logic mapping or placement  Each root cause has a different solution –Rewrite HDL code –Ensure that synthesis constraints are correct and use proper synthesis options –Add path-specific timing constraints –Resynthesize or reimplement with different software options  Correct interpretation of timing reports can reveal the most likely cause –Therefore, the most likely solution

Achieving Timing Closure - 13 © Copyright 2010 Xilinx Case 1 Data Path: source to dest Delay type Delay(ns) Logical Resource(s) Tcko source net (fanout=7) net_1 Tilo lut_1 net (fanout=1) net_2 Tilo lut_2 net (fanout=1) net_3 Tilo lut_3 net (fanout=1) net_4 Tdick dest Total 3.044ns (0.770ns logic, 2.274ns route) (25.3% logic, 74.7% route)  This path is constrained to 3 ns  What is the primary cause of the timing failure?

Achieving Timing Closure - 14 © Copyright 2010 Xilinx Case 1 Answer  What is the primary cause of the timing failure? –The net_2 signal has a long delay and low fanout –Most likely cause is poor placement Data Path: source to dest Delay type Delay(ns) Logical Resource(s) Tcko source net (fanout=7) net_1 Tilo lut_1 net (fanout=1) net_2 Tilo lut_2 net (fanout=1) net_3 Tilo lut_3 net (fanout=1) net_4 Tdick dest Total 3.044ns (0.770ns logic, 2.274ns route) (25.3% logic, 74.7% route)

Achieving Timing Closure - 15 © Copyright 2010 Xilinx Poor Placement: Solutions  Increase placement effort level (or overall effort level)  PAR extra effort or SmartXplorer –Covered in the “Advanced Implementation Options” module  Area constraints with the PlanAhead™ tool –Covered in the Designing with the PlanAhead Analysis and Design Tool course

Achieving Timing Closure - 16 © Copyright 2010 Xilinx Case 2  This path is also constrained to 3 ns  What is the primary cause of the timing failure? Data Path: source to dest Delay type Delay(ns) Logical Resource(s) Tcko source net (fanout=7) net_1 Tilo lut_1 net (fanout=187) net_2 Tilo lut_2 net (fanout=1) net_3 Tilo lut_3 net (fanout=1) net_4 Tdick dest Total 3.773ns (0.770ns logic, 3.003ns route) (20.0% logic, 80.0% route)

Achieving Timing Closure - 17 © Copyright 2010 Xilinx Case 2 Answer  What is the primary cause of the timing failure? –The signal net_2 has a long delay, but the fanout is not low –Most likely cause is high fanout Data Path: source to dest Delay type Delay(ns) Logical Resource(s) Tcko source net (fanout=7) net_1 Tilo lut_1 net (fanout=187) net_2 Tilo lut_2 net (fanout=1) net_3 Tilo lut_3 net (fanout=1) net_4 Tdick dest Total 3.773ns (0.770ns logic, 3.003ns route) (20.0% logic, 80.0% route)

Achieving Timing Closure - 18 © Copyright 2010 Xilinx High Fanout: Solutions  Most likely solution is to duplicate the source of the high-fanout net –If the net is the output of a flip-flop, the solution is to duplicate the flip-flop Use manual duplication (recommended) or synthesis options –If the net is driven by combinatorial logic, locating the source of the net in the HDL code can be more difficult Use synthesis options to duplicate the source Duplicate one or more flip-flops upstream from the net

Achieving Timing Closure - 19 © Copyright 2010 Xilinx Case 3 Data Path: source to dest Delay type Delay(ns) Logical Resource(s) Tcko source net (fanout=7) net_1 Tilo lut_1 net (fanout=1) net_2 Tilo lut_2 net (fanout=1) net_3 Tilo lut_3 net (fanout=1) net_4 Tilo lut_4 net (fanout=1) net_5 Tilo lut_5 net (fanout=1) net_6 Tilo lut_6 net (fanout=1) net_7 Tdick dest Total 3.048ns (0.950ns logic, 2.098ns route) (31.2% logic, 68.8% route)  This path is also constrained to 3 ns  What is the primary cause of the timing failure?

Achieving Timing Closure - 20 © Copyright 2010 Xilinx Case 3 Answer  What is the primary cause of the timing failure? –There are no really long delays, but there are a lot of logic levels Data Path: source to dest Delay type Delay(ns) Logical Resource(s) Tcko source net (fanout=7) net_1 Tilo lut_1 net (fanout=1) net_2 Tilo lut_2 net (fanout=1) net_3 Tilo lut_3 net (fanout=1) net_4 Tilo lut_4 net (fanout=1) net_5 Tilo lut_5 net (fanout=1) net_6 Tilo lut_6 net (fanout=1) net_7 Tdick dest Total 3.048ns (0.950ns logic, 2.098ns route) (31.2% logic, 68.8% route)

Achieving Timing Closure - 21 © Copyright 2010 Xilinx Too Many Logic Levels: Solutions  The implementation tools cannot do much to improve performance  The netlist must be altered to reduce the amount of logic between flip-flops  Possible solutions –Check whether the path is a multicycle path If yes, add a multicycle path constraint –Ensure that proper constraints were used during synthesis –Use the retiming option during synthesis to distribute logic more evenly among flip-flops –Confirm that good coding techniques were used to build this logic (no nested if or case statements) –Change the micro-architecture of this path Add a pipeline stage, manually re-pipeline...

Achieving Timing Closure - 22 © Copyright 2010 Xilinx Selecting a Timing Report  Select Timing > Run Analysis to create a report using the currently defined options  From there you can select from four different types of timing reports

Achieving Timing Closure - 23 © Copyright 2010 Xilinx  Analyze Against Design Timing Constraints –Compares design performance with timing constraints –Most commonly used report format Used for Post-Map and Post-Place & Route Static Timing Reports if the design contains constraints  Analyze Against Auto-Generated Design Constraints –Determines the longest paths in each clock domain –Use with designs that have no constraints defined Used for Post-Map and Post-Place & Route Static Timing Reports if the design contains no constraints Types of Timing Reports

Achieving Timing Closure - 24 © Copyright 2010 Xilinx Types of Timing Reports  Analyze Against User Specified Paths by Defining Endpoints –Custom report for selecting sources and destinations  Analyze Against User Specified Paths by Defining Clock and I/O Timing –Allows you to define PERIOD and OFFSET constraints on-the-fly –Use with designs that have no constraints defined

Achieving Timing Closure - 25 © Copyright 2010 Xilinx Timing Constraints Tab  After selecting a type of report, you can select from various report options  Select a name for the timing report  You can select which constraints you want reported

Achieving Timing Closure - 26 © Copyright 2010 Xilinx Report Options Tab  Report failing paths only: Lists only the paths that fail to meet your specified timing constraints  Constraint details –Specify the number of detailed paths reported per constraint  Do unconstrained analysis: Allows you to list some or all of the unconstrained paths in your design  You can also generate additional report sections

Achieving Timing Closure - 27 © Copyright 2010 Xilinx Device Settings  Speed grade –Do the analysis using the timing of a different speed grade part  Prorating –Specify your own worst-case environment

Achieving Timing Closure - 28 © Copyright 2010 Xilinx Filter by Net Tab  Restrict which paths are reported by selecting specific nets  Each net is set to default –Disabling any net excludes paths containing that net from being analyzed and included with the timing report –If all nets are left as Default, all nets are included

Achieving Timing Closure - 29 © Copyright 2010 Xilinx Path Tracing Tab  Enables or disables certain propagation paths –reg_sr_o: If enabled, the path from the async preset/clear port of a flip-flop to the output is considered a combinatorial path Describes the asserting edge of the preset/clear Should be used when the preset/clear is not driven by a global reset, which is not recommended –reg_sr_r: If enabled, the recovery arc of the flip-flop is checked Ensures that the preset/clear condition was deasserted sufficiently before the clock to ensure that the flip-flip assumes its non-reset behavior Required to ensure that all flip-flops come out of reset at the same time Should be enabled in the constraints: ENABLE = reg_sr_r;

Achieving Timing Closure - 30 © Copyright 2010 Xilinx Summary  Timing reports enable you to determine how and why constraints were not met  Use the Synthesis Report and Post-Map Static Timing Report to estimate performance before running Place & Route  The detailed path description offers clues to the cause of timing failures  Cross-probe to see the placement and a technology view of a timing path  The Timing Analyzer can generate various types of reports for specific circumstances