Timing Analyzer Quick-Start Tutorial

Similar documents
Intel Arria 10 Native Floating- Point DSP Intel FPGA IP User Guide

Intel Quartus Prime Standard Edition User Guide

High Bandwidth Memory (HBM2) Interface Intel FPGA IP Design Example User Guide

AN 839: Design Block Reuse Tutorial

Intel Quartus Prime Software Download and Installation Quick Start Guide

AN 834: Developing for the Intel HLS Compiler with an IDE

Intel Stratix 10 H-tile Hard IP for Ethernet Design Example User Guide

AN 825: Partially Reconfiguring a Design on Intel Stratix 10 GX FPGA Development Board

Intel Quartus Prime Pro Edition User Guide

Interlaken IP Core (2nd Generation) Design Example User Guide

AN 825: Partially Reconfiguring a Design on Intel Stratix 10 GX FPGA Development Board

AN 797: Partially Reconfiguring a Design on Intel Arria 10 GX FPGA Development Board

AN 818: Static Update Partial Reconfiguration Tutorial

Block-Based Design User Guide

Intel Acceleration Stack for Intel Xeon CPU with FPGAs 1.0 Errata

AN 826: Hierarchical Partial Reconfiguration Tutorial for Stratix 10 GX FPGA Development Board

Intel Cyclone 10 External Memory Interfaces IP Design Example User Guide

Intel FPGA Temperature Sensor IP Core User Guide

Intel Xeon with FPGA IP Asynchronous Core Cache Interface (CCI-P) Shim

AN 818: Static Update Partial Reconfiguration Tutorial

External Memory Interfaces Intel Arria 10 FPGA IP Design Example User Guide

Quick Start Guide for Intel FPGA Development Tools on the Nimbix Cloud

Designing RGMII Interface with FPGA and HardCopy Devices

Intel Stratix 10 Low Latency 40G Ethernet Design Example User Guide

Intel Stratix 10 External Memory Interfaces IP Design Example User Guide

Intel Stratix 10 Logic Array Blocks and Adaptive Logic Modules User Guide

SerialLite III Streaming IP Core Design Example User Guide for Intel Arria 10 Devices

Low Latency 100G Ethernet Intel Stratix 10 FPGA IP Design Example User Guide

AN 836: RapidIO II Reference Design for Avalon-ST Pass-Through Interface

Customizable Flash Programmer User Guide

Intel High Level Synthesis Compiler

SerialLite III Streaming IP Core Design Example User Guide for Intel Stratix 10 Devices

Intel Quartus Prime Pro Edition Software and Device Support Release Notes

Intel Quartus Prime Pro Edition User Guide

Low Latency 100G Ethernet Design Example User Guide

Intel MAX 10 User Flash Memory User Guide

25G Ethernet Intel Stratix 10 FPGA IP Design Example User Guide

Generic Serial Flash Interface Intel FPGA IP Core User Guide

ASMI Parallel II Intel FPGA IP Core User Guide

Compiler User Guide. Intel Quartus Prime Pro Edition. Updated for Intel Quartus Prime Design Suite: Subscribe Send Feedback

Intel Stratix 10 H-Tile PCIe Link Hardware Validation

H-tile Hard IP for Ethernet Intel Stratix 10 FPGA IP Design Example User Guide

Intel Stratix 10 Analog to Digital Converter User Guide

Quartus. Tutorial. Programmable Logic Development System

Nios II Custom Instruction User Guide

Altera ASMI Parallel II IP Core User Guide

Memory Optimization for OpenCL on Intel FPGAs Exercise Manual

Intel FPGA Voltage Sensor IP Core User Guide

Quick Start Guide for Intel FPGA Development Tools on the Microsoft* Azure* Platform

Intel Stratix 10 Variable Precision DSP Blocks User Guide

AN 464: DFT/IDFT Reference Design

AN 447: Interfacing Intel FPGA Devices with 3.3/3.0/2.5 V LVTTL/ LVCMOS I/O Systems

Remote Update Intel FPGA IP User Guide

AN 806: Hierarchical Partial Reconfiguration Tutorial for Intel Arria 10 GX FPGA Development Board

Simulating the ASMI Block in Your Design

Fixed-Point IP Cores (ALTERA_FIXED- POINT_FUNCTIONS) User Guide

AN 830: Intel FPGA Triple-Speed Ethernet and On-Board PHY Chip Reference Design

Intel Quartus Prime Pro Edition Software and Device Support Release Notes

SmartTime for Libero SoC v11.5

Design Constraints User Guide

Low Latency 40G Ethernet Example Design User Guide

VIVADO TUTORIAL- TIMING AND POWER ANALYSIS

Intel Quartus Prime Pro Edition

Intel Arria 10 and Intel Cyclone 10 Avalon -MM Interface for PCIe* Design Example User Guide

AN 830: Intel FPGA Triple-Speed Ethernet and On-Board PHY Chip Reference Design

AN 817: Static Update Partial Reconfiguration Tutorial

Stratix 10 Serial Flash Mailbox Client Intel FPGA IP Core User Guide

Intel Acceleration Stack for Intel Xeon CPU with FPGAs Version 1.2 Release Notes

Intel Quartus Prime Pro Edition Software and Device Support Release Notes

AN 756: Altera GPIO to Altera PHYLite Design Implementation Guidelines

Altera I/O Phase-Locked Loop (Altera IOPLL) IP Core User Guide

Intel Arria 10 and Intel Cyclone 10 Avalon-ST Hard IP for PCIe* Design Example User Guide

Vivado Design Suite Tutorial. Using Constraints

Introduction to Simulation of VHDL Designs Using ModelSim Graphical Waveform Editor. 1 Introduction. For Quartus Prime 16.1

8. Switching to the Quartus II TimeQuest Timing Analyzer

AN 807: Configuring the Intel Arria 10 GX FPGA Development Kit for the Intel FPGA SDK for OpenCL

Altera Technical Training Quartus II Software Design

Introduction. Design Hierarchy. FPGA Compiler II BLIS & the Quartus II LogicLock Design Flow

Nios II Performance Benchmarks

Intel Arria 10 Native Fixed Point DSP IP Core User Guide

Intel FPGA GPIO IP Core User Guide

Accelerator Functional Unit (AFU) Developer s Guide

AN822: Intel Configuration Device Migration Guideline

10. Introduction to UniPHY IP

AN822: Intel FPGA Configuration Device Migration Guideline

Intel FPGA USB Download Cable User Guide

MAX 10 User Flash Memory User Guide

White Paper Performing Equivalent Timing Analysis Between Altera Classic Timing Analyzer and Xilinx Trace

Nios II Embedded Design Suite Release Notes

Board Update Portal based on Nios II Processor with EPCQ (Arria 10 GX FPGA Development Kit)

Intel Quartus Prime Standard Edition User Guide

Early Power Estimator for Intel Stratix 10 FPGAs User Guide

High-Performance FPGA PLL Analysis with TimeQuest

Using Synopsys Design Constraints (SDC) with Designer

Intel Accelerator Functional Unit (AFU) Simulation Environment (ASE) Quick Start User Guide

Error Correction Code (ALTECC_ENCODER and ALTECC_DECODER) Megafunctions User Guide

Intel Quartus Prime Standard Edition Software and Device Support Release Notes

Intel Quartus Prime Standard Edition User Guide

Intel Quartus Prime Standard Edition Handbook Volume 3

System Debugging Tools Overview

Transcription:

Timing Analyzer Quick-Start Tutorial Intel Quartus Prime Pro Edition Updated for Intel Quartus Prime Design Suite: 17.1 Subscribe Send Feedback Latest document on the web: PDF HTML

Contents Contents Timing Analyzer Quick-Start Tutorial (Intel Quartus Prime Pro Edition)... 3 Step 1: Open the Project and Compile... 3 Step 2: Specify Clock Constraints...4 Step 3: View Clock Timing Analysis... 6 Step 4: Declare False Paths... 7 Step 5: View Post-Fit Timing Results...7 Step 6: Specify Input and Output Delay Constraints...9 Step 7: Report Clocks and Top Failing Paths... 11 Document Revision History... 12 2

Timing Analyzer Quick-Start Tutorial (Intel Quartus Prime Pro Edition) This tutorial demonstrates how to specify timing constraints and perform static timing analysis with the Intel Quartus Prime Timing Analyzer. The Timing Analyzer validates the timing performance of all logic in your design using industry-standard constraint, analysis, and reporting methodology. The Intel Quartus Prime software generates timing analysis data by default during design compilation. Running timing analysis involves running the Compiler, specifying timing constraints, and viewing timing analysis reports. The following steps describe this process in detail. Note: This Quick-Start requires a basic understanding of timing analysis concepts and the Intel Quartus Prime design flow, as the Intel Quartus Prime Pro Edition Foundation Online Training describes. Figure 1. fir_filter Design Schematic CLKx2 FIR_FILTER CLK D[7..0] RESET NEWT Tap (taps.v) Coefficients (hvalues.v) Multiplier (mult.v) Adder (acc.v) D ENA Q YN_OUT [7..0] D Q YVALID [7..0] State Machine (state_m.v) CLK FOLLOW Step 1: Open the Project and Compile This tutorial uses a simple fir_filter design to demonstrate the Intel Quartus Prime Timing Analyzer. Intel Corporation. All rights reserved. Intel, the Intel logo, Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartus and Stratix words and logos are trademarks of Intel Corporation or its subsidiaries in the U.S. and/or other countries. Intel warrants performance of its FPGA and semiconductor products to current specifications in accordance with Intel's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Intel 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 Intel. Intel 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. *Other names and brands may be claimed as the property of others. ISO 9001:2008 Registered

The Intel Quartus Prime software installation includes the sample fir_filter project in the quartus/qdesigns/fir_filter/ directory. The following steps describe opening the example project and running initial compilation to elaborate the design hierarchy, synthesize logic, and generate a node netlist for application of constraints. 1. Launch the Intel Quartus Prime Pro Edition software. 2. To open the example design project, click File Open Project, and open the quartus/qdesigns/fir_filter/fir_filter.qpf project file. 3. To view the top-level design schematic, click Open on the Tasks pane, select the filtref.bdf file, and click Open. The filtref.bdf schematic appears in the Block Editor. 4. Perform one of the following from the Compilation Dashboard. (To display the Dashboard if closed, click Processing Compilation Dashboard). To run the Fitter, click Fitter (or any Fitter stage) on the Compilation Dashboard. To run a full compilation, click Compile Design on the Compilation Dashboard. Timing Analysis for Fitter Stages Runs Full Compilation Runs All Fitter Stages Runs Route Stage Step 2: Specify Clock Constraints The Intel Quartus Prime Timing Analyzer supports the industry standard Synopsys Design Constraints (.sdc) format for specifying timing constraints. 4

The fir_filter design example already includes a default filtref.sdc file. You can modify these constraints in the Timing Analyzer GUI, or in the.sdc file directly. Use the following steps to modify the clock constraints in the.sdc file: 1. To launch the Timing Analyzer, click the Timing Analyzer icon for the Fitter stage you run in the Compilation Dashboard. The Create Timing Netlist dialog box opens automatically when the Timing Analyzer launches. Launches Timing Analyzer 2. In the Create Timing Netlist dialog box, select the compilation Snapshot, and the Delay model of the timing netlist, and then click OK. 3. In the Timing Analyzer, click File Open, and then select the filtref.sdc file in the project directory. The file opens in the Intel Quartus Prime Text Editor. 4. In the.sdc file, locate the following two create_clock constraints: # Create Clock create_clock -name {clk} -period 4.000 -waveform { 0.000 2.000 } / [get_ports {clk}] create_clock -name {clkx2} -period 4.000 -waveform { 0.000 2.000 } / [get_ports {clkx2}] 5. Replace the existing clock constraints with the following clock constraints. The replacement defines a 50 MHz (50/50 duty cycle) clock for clk, and a 100 MHz (60/40 duty cycle) clock for clkx2. # Create Clock create_clock -name clk -period 20 [get_ports {clk}] create_clock -name clkx2 -period 10.000 -waveform {0 6} / [get_ports {clkx2}] Note: For help entering.sdc constraints, right-click anywhere in the text file, point to Insert Constraint, and then select the constraint to insert at the cursor location. 5

6. To save the.sdc file changes, click File Save. 7. To load the updated.sdc constraints, double-click Read SDC File in the Tasks pane. Loads.sdc File 8. To update the timing netlist, double-click Update Timing Netlist. Step 3: View Clock Timing Analysis Follow these steps to confirm the clock constraints and view timing analysis results. 1. In the Tasks pane, double-click Report SDC in the Diagnostic reports. The Create Clock report shows your new clock constraints. 2. To generate clock timing performance summary report, double-click Report Clocks on the Tasks pane. 3. To verify the validity of all clock-to-clock transfers, double-click Report Clock Transfers on the Tasks pane. The Setup Transfers report indicates that a clock-to-clock transfer exists between clk and clkx2. The RR Paths column lists the number of instances where clk clocks the source node, and clkx2 clocks the destination node. These clock transfers actually do not require analysis because they are false paths in the design. The next step demonstrates declaring these false paths. 6

Step 4: Declare False Paths Follow these steps to declare false paths for the clock transfers between the clk and clkx2 clock signals: 1. In the Timing Analyzer, click File Open, and open filtref.sdc. 2. In the.sdc file, locate the following get_false_path constraint: # Set False Path set_false_path -from [get_clocks {clk clkx2}] -through / [get_pins -compatibility_mode *] -to [get_clocks {clk clkx2}] 3. To declare false paths for all clock transfers between the clk and clkx2 clock signals, replace the existing false path constraint with the following: # Set False Path set_false_path -from [get_clocks clk] / -to [get_clocks clkx2] 4. Save and close the.sdc file. 5. To load the new.sdc constraints, double-click Read SDC File in the Tasks pane. 6. To update the timing netlist, double-click Update Timing Netlist. 7. To confirm the false path assignment in the reports, double-click Setup Transfers in the Diagnostic reports. The RR Paths column indicates that the clock domain is now a "false path," reflecting your constraint. Step 5: View Post-Fit Timing Results After specifying clock and false path constraints, follow these steps to run full compilation and view post-fit timing analysis results. The Compiler attempts to meet your timing constraints when implementing your design, and reports paths that do not achieve the requirement. 1. In the Compilation Dashboard, click Compile Design. The Compiler runs all stages in full compilation. 2. Click the Timing Analyzer icon for Fitter (Finalize) in the Compilation Dashboard. The Create Timing Netlist dialog box appears automatically when the Timing Analyzer opens. Retain the default netlist settings, and then click OK. 3. In the Tasks pane, click Update Timing Netlist. You can now generate timing analysis for the final snapshot. 4. In the Tasks pane, double-click Report All Summaries in the Macros reports. The Timing Analyzer generates all summary reports in the Report pane. 7

Report All Summary Reports 5. To verify that there are no violations of the clock constraints, double-click a report in the Summary (Setup) folder. The clock setup check ensures that each register-to-register transfer does not violate your.sdc clock constraints. The Slack column indicates that clk meets the requirement with some margin. The End Point TNS column reports the total negative slack (TNS) for the clock domain. Use this value to determine the number of failing paths in the clock domain. Clk Meets Constraint with Slack Note: The clkx2 clock does not appear in the Summary (Setup) reports because of the false path constraints between clk and clkx2. The fir_filter design also contains no register-to-register paths with a destination register path clocked by clkx2. 6. Double-click the report under the Summary (Setup) folder. The Summary (Hold) report indicates that the clk clock node meets the timing constraints by some margin. 8

Clk Meets Constraint with Slack 7. Double-click Report Top Failing Paths in the Macros reports. The report indicates "No failing paths found." Step 6: Specify Input and Output Delay Constraints Accurate timing analysis requires constraining all input and output ports. Follow these steps to identify unconstrained paths and apply input and output delay constraints to the ports. 1. To identify unconstrained path in the design, double-click Report Unconstrained Paths the Diagnostic reports. The report lists the details of all unconstrained paths. 2. Repeat the steps in Step 2: Specify Clock Constraints on page 4 to open the.sdc file for edit. 3. In the.sdc file, locate the following section: # Set Input Delay 4. To insert the set_input_delay constraint, right-click under the # Set Input Delay comment, and then click Insert Constraint Set Input Delay. 9

5. In the Set Input Delay dialog box, specify the following options for the constraint: Option Setting Clock name Use falling clock edge clk Off Delay value 2 Targets Collection get_ports Filter d* newt reset SDC Command [get_ports {d[0] d[1] d[2] d[3] d[4] / d[5] d[6] d[7] newt reset}] 6. Click Insert. The following constraint appears at the insertion point: set_input_delay -clock { clk } 2 [get_ports / {d[0] d[1] d[2] d[3] d[4] d[5] d[6] d[7] newt reset}] 7. Repeat steps 4 through 6 to add the following set_output_delay constraint in the # Set Output Delay section of the.sdc file: Option Setting Clock name Use falling clock edge clk Off Delay value 1.5 Targets Collection get_ports Filter d* newt reset SDC Command [get_ports {follow yn_out[0] yn_out[1] yn_out[2] / yn_out[3] yn_out[4] yn_out[5] yn_out[6] / yn_out[7] yvalid}] 8. Click Insert. The following constraint appears at the insertion point. All input and output ports now have constraints: set_output_delay -clock { clk } 1.5 [get_ports / {follow yn_out[0] yn_out[1] yn_out[2] yn_out[3] yn_out[4] / yn_out[5] yn_out[6] yn_out[7] yvalid}] 9. Save and close the.sdc file. 10. Double-click Read SDC File, and then double-click Update Timing Netlist in the Tasks pane. You can now verify there are no remaining unconstrained paths. 11. Double-click Report Unconstrained Paths in the Diagnostic reports. The report shows zero unconstrained paths. 10

Step 7: Report Clocks and Top Failing Paths After constraining all paths, follow these steps to report top failing timing paths: 1. Under Custom Reports, double-click Report Timing, and then specify the following options. Retain the default settings for the other options. Option Setting To clock Targets To: Analysis type clk acc:inst3 result* Setup Report number of paths 10 Tcl command report_timing -setup -npaths 10 -detail full_path -panel_name {Report Timing} - multi_corner 2. Click Report Timing. The Slow 900mV 100C Model report shows the 10 worst paths between the clk and acc:inst3 result nodes. 3. To report the top failing paths in the design, double-click Report Top Failing Paths in the Macros reports. 11

Continue optimizing the design and running timing analysis until the design meets all requirements. Document Revision History Date Version Changes Made 2017.12.01 17.1.0 Updated for Intel Quartus Prime Pro Edition and Intel Cyclone 10 devices. Updated steps to use.sdc file rather that GUI for constraint entry. Consolidated related steps. Updated all screenshots. Updated for latest Intel branding and style conventions. 2017.12.05 1.2 Converted to new Template, updated for most recent devices. December 2009 1.1 Updated figures in Chapter 2. Updated chapter for Intel Quartus Prime software 9.1 functionality. May 2006 1.0 Initial Release 12