Timing constraints: Are they constraining designs or designers?

Slides:



Advertisements
Similar presentations
1 Lecture 16 Timing  Terminology  Timing issues  Asynchronous inputs.
Advertisements

Continuing Challenges in Static Timing Analysis
1 COMP541 Flip-Flop Timing Montek Singh Oct 6, 2014.
Systematic method for capturing “design intent” of Clock Domain Crossing (CDC) logic in constraints Ramesh Rajagopalan Cisco Systems.
Timing Override Verification (TOV) Erik Seligman CS 510, Lecture 18, March 2009.
Modern VLSI Design 4e: Chapter 5 Copyright  2008 Wayne Wolf Topics n Performance analysis of sequential machines.
Effective RTL coding rules to avoid Simulation Shoot-thru Udit Kumar 1, Bhanu Prakash 1, Olivier Florent 1, Paras Mal Jain 2, Anshu Malani 2, Shaker Sarwary.
Introduction to CMOS VLSI Design Sequential Circuits
MICROELETTRONICA Sequential circuits Lection 7.
Sequential Circuits. Outline  Floorplanning  Sequencing  Sequencing Element Design  Max and Min-Delay  Clock Skew  Time Borrowing  Two-Phase Clocking.
Leveraging Software to Enhance Timing Analysis for Actel RTAX-S Devices Johnny Chung Corporate Applications Engineering Actel Corporation MAPLD 2005.
TIMING CLOSURE IN SYSTEM-ON-CHIP ERA Sam Appleton, CEO CONFIDENTIAL.
Timing sign-off with PrimeTime
Introduction to CMOS VLSI Design Lecture 19: Design for Skew David Harris Harvey Mudd College Spring 2004.
Introduction to CMOS VLSI Design Clock Skew-tolerant circuits.
EE141 © Digital Integrated Circuits 2nd Timing Issues 1 Digital Integrated Circuits A Design Perspective Timing Issues Jan M. Rabaey Anantha Chandrakasan.
1 Digital Design: State Machines Timing Behavior Credits : Slides adapted from: J.F. Wakerly, Digital Design, 4/e, Prentice Hall, 2006 C.H. Roth, Fundamentals.
Clock Design Adopted from David Harris of Harvey Mudd College.
The Cost of Fixing Hold Time Violations in Sub-threshold Circuits Yanqing Zhang, Benton Calhoun University of Virginia Motivation and Background Power.
Assume array size is 256 (mult: 4ns, add: 2ns)
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.
Automatic Verification of Timing Constraints Asli Samir – JTag course 2006.
1 EECS Components and Design Techniques for Digital Systems Lec 21 – RTL Design Optimization 11/16/2004 David Culler Electrical Engineering and Computer.
Altera’s Quartus II Installation, usage and tutorials Gopi Tummala Lab/Office Hours : Friday 2:00 PM to.
Alpha Goal: very fast multiprocessor systems, highly scalable Main trick is high-bandwidth, low-latency data access. How to do it, how to do it?
TAU Panel: Timing constraints: Are they constraining designs or designers Bruce Zahn March 2015.
CS61C L15 Synchronous Digital Systems (1) Beamer, Summer 2007 © UCB Scott Beamer, Instructor inst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures Lecture.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
111/9/2005EE 108A Lecture 13 (c) 2005 W. J. Dally EE108A Lecture 13: Metastability and Synchronization Failure (or When Good Flip-Flops go Bad)
Chapter 13 & 14 Software Testing Strategies and Techniques
Global Timing Constraints FPGA Design Workshop. Objectives  Apply timing constraints to a simple synchronous design  Specify global timing constraints.
Sub- Nyquist Sampling System Hardware Implementation System Architecture Group – Shai & Yaron Data Transfer, System Integration and Debug Environment Part.
COE4OI5 Engineering Design. Copyright S. Shirani 2 Course Outline Design process, design of digital hardware Programmable logic technology Altera’s UP2.
© 2003 Xilinx, Inc. All Rights Reserved FPGA Design Techniques.
1 WORLD CLASS – through people, technology and dedication High level modem development for Radio Link INF3430/4431 H2013.
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.
Chapter 4 - Implementing Standard Program Structures in 8086 Assembly Language from Microprocessors and Interfacing by Douglas Hall.
1 COMP541 Combinational Logic - 4 Montek Singh Jan 30, 2012.
Combinational Design, Part 3: Functional Blocks
DEBUGGING. BUG A software bug is an error, flaw, failure, or fault in a computer program or system that causes it to produce an incorrect or unexpected.
Modern VLSI Design 4e: Chapter 8 Copyright  2008 Wayne Wolf Topics Basics of register-transfer design: –data paths and controllers; –ASM charts. Pipelining.
Scheduling Lecture 6. What is Scheduling? An O/S often has many pending tasks. –Threads, async callbacks, device input. The order may matter. –Policy,
Computer Organization CS224 Fall 2012 Lesson 22. The Big Picture  The Five Classic Components of a Computer  Chapter 4 Topic: Processor Design Control.
COMP541 Arithmetic Circuits
CHAPTER 8 Developing Hard Macros The topics are: Overview Hard macro design issues Hard macro design process Physical design for hard macros Block integration.
Introduction to Clock Tree Synthesis
1 COMP541 State Machines – 2 Registers and Counters Montek Singh Feb 11, 2010.
FPGA-Based System Design: Chapter 6 Copyright  2004 Prentice Hall PTR Topics n Low power design. n Pipelining.
Sequential Networks: Timing and Retiming
1 COMP541 Sequential Logic Timing Montek Singh Sep 30, 2015.
Static Timing Analysis
Clocking System Design
Beam Secondary Shower Acquisition System: 2014_11_24_GBT_On_Igloo2 Release BE-BI-BL Jose Luis Sirvent Blasco 2 Jose Luis Sirvent Blasco.
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.
Copyright © 2001 Stephen A. Edwards All rights reserved Busses  Wires sometimes used as shared communication medium  Think “party-line telephone”  Bus.
Overview Part 1 - Storage Elements and Sequential Circuit Analysis
ASIC Design Methodology
Timing issues.
Timing Verification Presented by Rashmi H M.
Limitations of STA, Slew of a waveform, Skew between Signals
Timing Analysis 11/21/2018.
FALSE PATH ANALYSIS AND CRITICAL PATH ANALYSIS
What to do when you don’t know anything know nothing
332:578 Deep Submicron VLSI Design Lecture 14 Design for Clock Skew
Md. Mojahidul Islam Lecturer Dept. of Computer Science & Engineering
Md. Mojahidul Islam Lecturer Dept. of Computer Science & Engineering
Intro to Timing analysis via the timequest timing analyzer
Presentation transcript:

Timing constraints: Are they constraining designs or designers? Tom Spyrou TAU 2015 3/2015

How do designers make timing constraints? Focus first on flat or block level constraints Designers create clock, input and output arrival times based on a system or block level specification Usually simple to create and don’t change too much Easy to verify and modify Multi-cycle paths Also created by hand from system or block specification If one is missed and the path doesn’t show up in a timing report as critical it may never be fixed. Some over-constraining. Late SDC changes needed for paths that suddenly pop up and need to be fixed Not too scary to add these in late since the path is visible and the clocking easy to analyze False Paths Some are set pro-actively Many are set by the user when an unwanted path shows up as critical The complete set of false paths is never specified Tools to do so fail from the complexity of the problem or from the size of the set of exceptions and their affect on STA runtime and memory These are scary because someone has to sign in blood that the path is always false

New additions to syntax for common complex cases Use cases for path segmentation Study them and look for possibilities For example before –through many multi-cycle paths were constrained with path segmentation Big step forward to have –through Clock Domain Crossings Propose new set_max_skew command

CDC Transfer Constraining Example: FIFO Write -> Read domains Stack Pointer transfer Gray coded transfers ensure 1 bit transitions Need to control datapath delay to be low skew and low delay for clock domain crossing (CDC) paths in_wr_ptr_gray altera_std_synchronizer_bundle D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > din_s1 Clock tree A Clock tree B

CDC Transfer Constraining Many users set_false_path on this transfer set_false_path -to [get_pins {*altera_std_synchronizer:*/d}] Cuts all setup & hold analysis on transfers between clocks A and B Some users used Clock Groups to cut whole domain transfers set_clock_groups -asynchronous -group {A} -group {B} Can’t selectively constrain some paths while leaving others “don’t care” Placement constraints and the assumption of low clock skew allowed this work One example of many creative ways people use SDC Began to fail in newer technologies with higher skew and local clocks routed through LABs in_wr_ptr_gray altera_std_synchronizer_bundle D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > din_s1 Clock tree A Clock tree B

Why failures started happening? Improvements in timing driven P&R take greater liberty in placement and routing of logic elements Routing delay and skew are of no concern to the Fitter because of the false path constraint Higher Fmax demands for clock domains drive tighter timing requirement Increased clock skew on highly utilized designs in_wr_ptr_gray altera_std_synchronizer_bundle D Q > Clock tree A D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > din_s1 Clock tree B

altera_std_synchronizer_bundle Desired Situation Constrain both skew and total wire delay to keep this transfer short, low-skew, and functionally correct for the needs of the interface & system Constrain both clock and data skew together in_wr_ptr_gray altera_std_synchronizer_bundle D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > din_s1 Clock tree A Clock tree B

CDC Transfer Constraining - The New Way The new way: Constrain datapath delay and total bus skew with knowledge of the clocks involved Important changes in Quartus II 15.0 New constraint set_max_skew added New constraint set_net_delay added Lower precedence than set_false_path but higher than everything else Smart options for set_max_skew, set_net_delay Simple case is simple, but command is flexible

SDC Precedence insertion Now in Quartus15.0 Highest precedence set_false_path (unchanged) set_net_delay (raised) set_max_skew (raised) set_clock_groups (lowered) …… Lowest precedence

New Exceptions set_max_skew [-fall_from_clock <names>] [-fall_to_clock <names>] [-from <names>] [-from_clock <names>] [-get_skew_value_from_clock_period <src_clock_period|dst_clock_period|min_clock_period>] [-rise_from_clock <names>] [-rise_to_clock <names>] [-skew_value_multiplier <multiplier>] [-through <names>] [-to <names>] [-to_clock <names>] [<skew>] set_net_delay -from <names> [-max] [-min] <delay>

Using New Options for set_max_skew on CDC Busses set_max_skew -from in_wr_ptr_gray*/q -to din_s1*/d \ -get_skew_value_from_clock_period min_clock_period in_wr_ptr_gray altera_std_synchronizer_bundle D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > D Q > din_s1 Clock tree A Clock tree B