Agenda: Day Two. Unit 6: Specifying Timing Exceptions DAY 2. I/O Paths and Exceptions. Constraining I/O Interface Paths

Similar documents
Specifying Timing Exceptions

Comparing Constraint Behavior to Determine Equivalency TAU Sonia Singhal Loa Mize Subramanyam Sripada Szu-Tsung Cheng Cho Moon

Multiple Clocks and Timing Exceptions

Designing RGMII Interface with FPGA and HardCopy Devices

Equivalence Checking for Timing Constraints Subramanyam Sripada March 6, 2014

SmartTime for Libero SoC v11.5

Timing Constraints Editor User Guide

Preparing for Optimization 7

UG0776 User Guide PolarFire FPGA Design Constraints

TRILOBYTE SYSTEMS. Consistent Timing Constraints with PrimeTime. Steve Golson Trilobyte Systems.

SDC and TimeQuest API Reference Manual

Constraint Verification

Introduction to STA using PT

Graduate Institute of Electronics Engineering, NTU Synopsys Synthesis Overview

The Formal Verification of Design Constraints by Ajay Daga, CEO, FishTail Design Automation Inc.

Timing Analyzer Quick-Start Tutorial

FishTail: The Formal Generation, Verification and Management of Golden Timing Constraints

8. Switching to the Quartus II TimeQuest Timing Analyzer

Performing STA. Learning Objectives

King Fahd University of Petroleum and Minerals. Computer Engineering Department. COE 561 Digital Systems Design and Synthesis (Course Activity)

Compile RISC_CORE. Learning Objectives. After completing this lab, you should be able to: Perform a top-down compile strategy on the RISC_CORE design

A GENERATION AHEAD SEMINAR SERIES

A. Setting Up the Environment a. ~/ece394 % mkdir synopsys b.

Overview. Design flow. Principles of logic synthesis. Logic Synthesis with the common tools. Conclusions

PrimeTime: Introduction to Static Timing Analysis Workshop

EECS 151/251A ASIC Lab 6: Power and Timing Verification

Behavioral Modeling and Timing Constraints

Design Rules and Min Timing

ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL. Fall 2017 Final Exam (6.00 to 8.30pm) Verilog SOLUTIONS

HOW TO SYNTHESIZE VERILOG CODE USING RTL COMPILER

Intel Quartus Prime Standard Edition User Guide

Agenda: Day One 3-1 DAY. Welcome. Introduction to Static Timing Analysis. Writing Basic Tcl Constructs in PT. Constraining Internal Reg-Reg paths

RTL Synthesis using Design Compiler. Dr Basel Halak

Vivado Design Suite User Guide

Vivado Design Suite User Guide

Reading the Design into PT

Microtronix Video LVDS SerDes Transmitter / Receiver IP Core

CS/EE 6710 Digital VLSI Design Tutorial on Cadence to Synopsys Interface (CSI)

A STANDARDIZED PROCEDURE FOR CLOSING TIMING ON OpenHPSDR FPGA FIRMWARE DESIGNS

Pipelined MIPS CPU Synthesis and On-Die Representation ECE472 Joseph Crop Stewart Myers

Using Synopsys Design Constraints (SDC) with Designer

EE4415 Integrated Digital Design Project Report. Name: Phang Swee King Matric Number: U066584J

DC-Tcl Procedures. Learning Objectives. After completing this lab, you should be able to: Write generic DC-Tcl procedures. Lab Duration: 30 minutes

Lecture 11 Logic Synthesis, Part 2

NetFPGA Summer Course

Note: Closed book no notes or other material allowed, no calculators or other electronic devices.

Vivado Design Suite Tutorial. Using Constraints

Vivado Design Suite User Guide

Intel FPGA GPIO IP Core User Guide

CoreRGMII v2.0. Handbook

Using DCFIFO for Data Transfer between Asynchronous Clock Domains

ProASIC PLUS Timing Closure in Libero IDE v5.2

ENGN 1630: CPLD Simulation Fall ENGN 1630 Fall Simulating XC9572XLs on the ENGN1630 CPLD-II Board Using Xilinx ISim

Vivado Design Suite User Guide

IDEA! Avnet SpeedWay Design Workshop

High-Performance FPGA PLL Analysis with TimeQuest

First Name: Last Name: PID: CSE 140L Exam. Prof. Tajana Simunic Rosing. Winter 2010

Synthesis. Other key files. Standard cell (NAND, NOR, Flip-Flop, etc.) FPGA CLB

Characterization of Asynchronous Templates for Integration into Clocked CAD Flows

Vivado Design Suite User Guide. Design Analysis and Closure Techniques

Graduate Institute of Electronics Engineering, NTU Synopsys Synthesis Overview

Automated Synthesis from HDL models. Design Compiler (Synopsys) Leonardo (Mentor Graphics)

CPE/EE 421 Microcomputers

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Department of Electrical Engineering and Computer Sciences

Chapter Operation Pinout Operation 35

Introduction to Design Compiler

Getting a Quick Start 2

Part B. Dengxue Yan Washington University in St. Louis

Summer 2003 Lecture 21 07/15/03

CPE/EE 421/521 Fall 2004 Chapter 4 The CPU Hardware Model. Dr. Rhonda Kay Gaede UAH. The CPU Hardware Model - Overview

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

PCI Arbiter Workarounds for the NS9775

Using Tcl. Learning Objectives

ECE 4514 Digital Design II. Spring Lecture 20: Timing Analysis and Timed Simulation

SystemVerilog Assertions for Clock-Domain-Crossing Data Paths. Don Mills Microchip Technology Inc.

Project Timing Analysis

VHDL for Synthesis. Course Description. Course Duration. Goals

Vivado Design Suite Tutorial

10. Synopsys Synplify Support

Timing Analysis in Xilinx ISE

Interfacing an Intel386 TM EX Microprocessor to an CAN Controller

Timing and Verification

Spiral 1 / Unit 6. Flip-flops and Registers

EE577A FINAL PROJECT REPORT Design of a General Purpose CPU

L11: Major/Minor FSMs

Tcl and SDC Tutorial. PlanAhead Design Tool

Intel Quartus Prime Standard Edition User Guide

Interpreting the Timing Diagram

EECS150 - Digital Design Lecture 17 Memory 2

EECS 373 Practice Midterm / Homework #3 Fall 2014

Push-button Synthesis or, Using dc_perl to do_the_right_thing

Arithmetic Operators There are two types of operators: binary and unary Binary operators:

Recommended Design Techniques for ECE241 Project Franjo Plavec Department of Electrical and Computer Engineering University of Toronto

A Comparison of Hierarchical Compile Strategies

Floorplanning ProASIC /ProASIC PLUS Devices for Increased Performance

2015 Paper E2.1: Digital Electronics II

One and a half hours. Section A is COMPULSORY UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE

Techniques for Digital Systems Lab. Verilog HDL. Tajana Simunic Rosing. Source: Eric Crabill, Xilinx

AccuCore. Product Overview of Block Characterization, Modeling and STA

Design Constraints User Guide

Transcription:

Agenda: Day Two 6-1 DAY 2 Unit I/O Paths and Exceptions Lab 5 Constraining I/O Interface Paths 6 7 Introduction to Timing Models (QTM) 8 Performing STA 9 Summary 10 Customer Support 6-1 Unit 6:

Unit Objectives 6-2 After completing this unit, you should be able to: List 4 timing exception commands and state their legal start and end points Specify false path exception in 3 design examples Write down the relationship between the Setup and Hold Multipliers when applying a multicycle path exception State the command to look for ignored exceptions Give 2 recommendations to specify timing exceptions effectively 6-2 Unit 6:

The Inputs and Outputs of PrimeTime 6-3 Gate-Level Netlist Constraints Exceptions Setup File Technology Libraries SDF PrimeTime Timing Models in.db format Reports Log, Script Files Our Focus 6-3 Unit 6:

Five Step Static Timing Analysis Flow 6-4 READ CONSTRAIN EXCEPTIONS CHECK Our Focus ANALYZE 6-4 Unit 6:

What are Timing Exceptions? 6-5 F1 F2 single clock cycle Timing exceptions are are used to to override the the default single-cycle constraints described by by create_clock, set_input_delay, and set_output_delay. 6-5 Unit 6:

Timing Exception Commands 6-6 Timing exceptions can be be applied to to any timing path: set_false_path Removes timing constraints from a timing path set_multicycle_path Allows more than one clock cycle for a timing path set_max_delay set_min_delay Specifies max and min delays on paths report_exceptions Reports current timing exceptions reset_path Restores the default timing constraints on specified paths 6-6 Unit 6:

Applying Exceptions 1/2 6-7 When using from and to options, you need to specify legal path start and end points: Start Input Ports and Clock Pins of Registers End Output Ports and Data Pins of Registers Start & End Clock Objects, Registers A D Q R1 clk1 clk2 D R2 Q pt_shell> set_false_path from A to R1/D pt_shell> set_false_path from clk1 to clk2 The complete commands for the example shown above should be: set_false_path from [get_pins A] to [get_pins R1/D] set_false_path from [get_clocks clk1] to [get_clocks clk2] When specifying register cell names for the start and end points, (under the hood) PrimeTime will look for the actual start and end pins of the register cell and apply the timing exception correctly for you. You can be very specific with timing exceptions with -to/-from/-through options by specifying rise or fall edges. New options include: -rise_from -fall_from -rise_to -fall_to -rise_through -fall_through 6-7 Unit 6:

Applying Exceptions 2/2 6-8 When using the through option, any pin can be used to describe the path: D R1 Q U12 Z D R2 Q clk pt_shell> set_false_path through U12/Z The path from R1/CP to R2/D will be false Assumption: No fanin/fanout When using the through option, multiple through arguments mean AND, multiple pins in one through are an OR. Example: set_false_path through A through B through {C D} means set a false path through the path that goes through A and B and (C or D). 6-8 Unit 6:

Multiple Paths 6-9 pt_shell> set_multicycle_path 2 -from -from FFA/CP \ -through Multiply/Out -to -to FFB/D FFB/D Two-Cycle Path -through -from FFA In Multiply Out D FFB -to CP One-Cycle Path Add sel In this example, it is sufficient to specify Multiply/Out using the through option, without the -from and to. 6-9 Unit 6:

Logically False Paths 6-10 A B 0 1 0 B 1 mux1 The paths through both A s and both B s cannot happen: 10 They are logical false paths! Use the -through option: A mux2 set_false_path through mux1/a through mux2/a set_false_path through mux1/b through mux2/b You can find logical false paths with the report_timing true/-false/-justify command. This command will apply input combinations and trace through the netlist to find whether the reported path is logically correct. Consult the PrimeTime User Guide for a detailed explanation. Generally, you would only set this path as a false path if it appears in the timing reports with a violation. 6-10 Unit 6:

Paths Between Asynchronous Clocks 6-11 CLKA (100 Mhz from OSC1) FUNC_CORE Des_A Des_B N D Q D Q X D Q CLKB (100 Mhz from OSC2) current_design FUNC_CORE /* Make sure register-register paths meet timing */ create_clock -period 10 [get_ports CLKA] create_clock -period 10 [get_ports CLKB] /* Don t optimize logic crossing clock domains */ set_false_path -from [get_clocks CLKA] -to [get_clocks CLKB] set_false_path -from [get_clocks CLKB] -to [get_clocks CLKA] CLKA and CLKB are asynchronous to each other. To exclude Timing analysis between these 2 clock domains, specify the path(s) as false paths. 6-11 Unit 6:

Constrain Tri-states at the Top-Level 6-12 Tri-states can be the cause of many false paths. set_false_path -through [get_pins U1/DATA_BUS_OUT[1]] \ -through [get_pins U1/DATA_BUS_IN[1]] UART U1 TIMER U2 DATA_BUS_OUT DATA_BUS_IN DATA_BUS CPU U3 TOP_BLOCK 6-12 Unit 6:

Multi-cycle Paths 6-13 Clock period is is 10 10 ns. ns. Per Specification, the the adder takes 6 clock cycles. How do do you constrain the the design? A B 64 64 D E D E A B Q Q < 60 ns C_reg D Q + 64 E Y Clk D Q 0 0 0 0 0 1 shift_reg 6-13 Unit 6:

Timing with Multi-cycle Constraints 6-14 create_clock -period 10 10 [get_ports CLK] CLK] set_multicycle_path 6 setup -to -to [get_pins C_reg[*]/D] Launch Capture CLK -10 0ns 10 20 30 40 50 60 C_reg/D IDEAL: T H < Adder_Delay < (60 - T SU ) C_reg/D PT assumes change could occur near any clock edge causing metastability! Where does PT perform hold analysis? T SU = setup time T H = hold time PT will perform the setup analysis on edge 6, i.e. at 60 ns. This will allow the adder s logic to have a delay of (60 setup_time uncertainty). 6-14 Unit 6:

Default Hold Check 6-15 IMPLICIT! set_multicycle_path -setup -setup 6 -to -to [get_pins [get_pins C_reg[*]/D] C_reg[*]/D] set_multicycle_path -hold -hold 0 -to -to [get_pins [get_pins C_reg[*]/D] C_reg[*]/D] Launch Default Hold Check Capture CLK -10 0ns 10 20 30 40 50 60 C_reg/D (50 + T H ) < Combo_Logic < (60 - T SU ) Why is hold check performed at 50 ns? The default Hold check is always performed one edge before the setup check. PT assumes that the clock edges at 10-50 ns can cause metastability if they occur at the same time the data changes. Putting the hold check at 50 ns is the safest. 6-15 Unit 6:

Set the Proper Hold Constraint 6-16 OVERRIDE! set_multicycle_path -setup -setup 6 -to -to [get_pins [get_pins C_reg[*]/D] C_reg[*]/D] set_multicycle_path -hold -hold 5 -to -to [get_pins [get_pins C_reg[*]/D] C_reg[*]/D] M H = M S -1 Hold checks for : M H = 5 M H = 4 M H = 3 M H = 2 M H = 1 M H = 0 Setup Check with M S = 6 CLK -10 0ns 10 20 30 40 50 60 C_reg/D Now allows change between T H and (60 - T SU ) D Q + E DESIRED RESULT: ALLOW 60ns for ADDER C_reg D Q E MH stands for Hold Multiplier, MS for Setup Multiplier. The Setup multiplier counts up with increasing clock cycles, the Hold multiplier counts up with decreasing cycles. The origin (0) for the Hold Multiplier is always at the Setup Multiplier 1 position. 6-16 Unit 6:

Precedence of Timing Exceptions 6-17 F1 F2 More than one exception set on the path from F1 to F2. set_false_path has higher precedence! (see student notes) clk1 clk2 set_false_path from clk1 to to clk2 set_max_delay 7 from F1 F1 to to F2 F2 PrimeTime uses the following general precedence rules, when applying multiple exceptions to the same path: set_false_path > set_max_delay or set_min_delay > set_multicycle_path pin > clock -from > -to > -through tighter constraint > looser constraint For more detailed information refer to the PrimeTime User Guide: Advanced Timing Analysis. 6-17 Unit 6:

Ignored Timing Exceptions 6-18 PrimeTime will warn you when invalid exceptions are applied. pt_shell> set_false_path -from FF1/Q Warning: Object 'FF1/Q' is not a valid startpoint. (UITE-216) How would you correct this exception? set_false_path -from FF1/Q -- Invalid because this is an INVALID start point. The exception needs the CLK pin of the flip-flop, so the correct syntax would be: set_false_path -from FF1/CLK 6-18 Unit 6:

Always Check for Invalid Exceptions 6-19 pt_shell> check_timing Warning: Warning: There There are are timing timing exceptions exceptions which which are are ignored. ignored. pt_shell> check_timing -verbose -ignored Warning: Warning: There There are are timing timing exceptions exceptions which which are are ignored. ignored. From From To To Setup Setup Hold Hold --------------------------------------------------------- --------------------------------------------------------- FF1/Q FF1/Q * FALSE FALSE FALSE FALSE To remove any unwanted exceptions, use the reset_path command, e.g.: reset_path from FF1/Q You may also use the command report_exceptions ignored to view ignored exceptions. 6-19 Unit 6:

Reduce Number of Timing Exceptions 6-20 To reduce the run-time for timing analysis, minimize the total number of exceptions! The paths from F1_reg to F2_reg are false. How many exceptions do each of the following commands generate? 32 F1 F2 F3 clk1 clk2 set_false_path set_false_path -from -from F1_reg[*]/CP F1_reg[*]/CP -to -to F2_reg[*]/D F2_reg[*]/D 1 for for {set {set i i 1} 1} {$i {$i <= <= 32} 32} {incr {incr i} i} { { set_false_path set_false_path -from -from F1_reg[$i]/CP F1_reg[$i]/CP -to -to F2_reg[$i]/D F2_reg[$i]/D } } set_false_path set_false_path -from -from F1_reg[*]/CP F1_reg[*]/CP 3 set_false_path set_false_path -from -from [get_clocks [get_clocks clk1] clk1] -to -to [get_clocks [get_clocks clk2] clk2] 4 2 The most efficient way to specify timing exceptions is between clock domains! 6-20 Unit 6:

Optimizing Analysis Time 1/2 6-21 The -through option requires more CPU for large designs Do not use -through unless it is necessary Sub-Optimal: set_multicycle_path 2 -from U1/CP -through U2/A -through U3/B -through U4/A -through U5/C -to -to U6/D Optimal: set_multicycle_path 2 -to -to U6/D To help PT s run time, use -to option when possible. 6-21 Unit 6:

Optimizing Analysis Time 2/2 6-22 Use set_disable_timing instead of set_false_path -through when there is one pin. Slow Sub-Optimal: set_false_path -through [get_pins ADDER/CI] Fast Optimal: set_disable_timing [get_pins ADDER/CI] 6-22 Unit 6:

Lab Overview and Review 6-23 LAB 60 min Apply Multicycle and false path exceptions on a complex design Lab Review How do you know where in a design to apply a multicycle path constraint? After applying a multicycle path constraint, how can you verify the constraint has been applied correctly? Answers will follow. 6-23 Unit 6:

Test For Understanding 6-24 A path between 2 flops are controlled by a 200 MHz clock. The path delay is 13 ns worst case. Clock has a network delay of 3 ns, and an uncertainty of 1 ns. Assume both setup and hold time are 0.5 ns. The best case delay of this path is known to be 6 ns. Write down the exceptions such that there will not be any setup or hold violations: How can you constrain a path from an asynchronous Reset input port to the Rst pin of a flop? The worst case absolute delay is 3 ns and the best case absolute delay is 0.9 ns. 6-24 Unit 6: