Chapter 13: Verification



Similar documents
A Verilog HDL Test Bench Primer Application Note

Modeling Sequential Elements with Verilog. Prof. Chien-Nan Liu TEL: ext: Sequential Circuit

Introduction to Functional Verification. Niels Burkhardt

VHDL GUIDELINES FOR SYNTHESIS

Digital Design Verification

CLOCK DOMAIN CROSSING CLOSING THE LOOP ON CLOCK DOMAIN FUNCTIONAL IMPLEMENTATION PROBLEMS

Best Practises for LabVIEW FPGA Design Flow. uk.ni.com ireland.ni.com

Agenda. Michele Taliercio, Il circuito Integrato, Novembre 2001

Digital Systems Design! Lecture 1 - Introduction!!

Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai Jens Onno Krah

ESP-CV Custom Design Formal Equivalence Checking Based on Symbolic Simulation

Assertion Synthesis Enabling Assertion-Based Verification For Simulation, Formal and Emulation Flows

9/14/ :38

Chapter 2 Ensuring RTL Intent

E158 Intro to CMOS VLSI Design. Alarm Clock

More Verilog. 8-bit Register with Synchronous Reset. Shift Register Example. N-bit Register with Asynchronous Reset.

Understanding DO-254 Compliance for the Verification of Airborne Digital Hardware

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

ECE232: Hardware Organization and Design. Part 3: Verilog Tutorial. Basic Verilog

VHDL Test Bench Tutorial

Chapter 7: Advanced Modeling Techniques

Implementation Details

Verification of Triple Modular Redundancy (TMR) Insertion for Reliable and Trusted Systems

Fault Modeling. Why model faults? Some real defects in VLSI and PCB Common fault models Stuck-at faults. Transistor faults Summary

How To Design A Chip Layout

Testing & Verification of Digital Circuits ECE/CS 5745/6745. Hardware Verification using Symbolic Computation

Asynchronous & Synchronous Reset Design Techniques - Part Deux

STA - Static Timing Analysis. STA Lecturer: Gil Rahav Semester B, EE Dept. BGU. Freescale Semiconductors Israel

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

Digital Circuit Design Using Xilinx ISE Tools

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

IMPLEMENTATION OF BACKEND SYNTHESIS AND STATIC TIMING ANALYSIS OF PROCESSOR LOCAL BUS(PLB) PERFORMANCE MONITOR

Alpha CPU and Clock Design Evolution

Introduction to Xilinx System Generator Part II. Evan Everett and Michael Wu ELEC Spring 2013

Quartus II Introduction for VHDL Users

DDR subsystem: Enhancing System Reliability and Yield

Modeling Latches and Flip-flops

Introduction to Programmable Logic Devices. John Coughlan RAL Technology Department Detector & Electronics Division

Understanding Verilog Blocking and Non-blocking Assignments

Modeling Registers and Counters

FPGA Synthesis Example: Counter

Gate-Level Simulation Methodology

HDL Simulation Framework

University of Texas at Dallas. Department of Electrical Engineering. EEDG Application Specific Integrated Circuit Design

LogiCORE IP AXI Performance Monitor v2.00.a

IL2225 Physical Design

TIMING-DRIVEN PHYSICAL DESIGN FOR DIGITAL SYNCHRONOUS VLSI CIRCUITS USING RESONANT CLOCKING

Getting the Most Out of Synthesis

Hunting Asynchronous CDC Violations in the Wild

EE361: Digital Computer Organization Course Syllabus

Design and Verification of Nine port Network Router

White Paper FPGA Performance Benchmarking Methodology

Below is a diagram explaining the data packet and the timing related to the mouse clock while receiving a byte from the PS-2 mouse:

Life Cycle of a Memory Request. Ring Example: 2 requests for lock 17

RAPID PROTOTYPING OF DIGITAL SYSTEMS Second Edition

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

ELECTENG702 Advanced Embedded Systems. Improving AES128 software for Altera Nios II processor using custom instructions

Hardware Implementations of RSA Using Fast Montgomery Multiplications. ECE 645 Prof. Gaj Mike Koontz and Ryon Sumner

System-on. on-chip Design Flow. Prof. Jouni Tomberg Tampere University of Technology Institute of Digital and Computer Systems.

VHDL-Testbench as Executable Specification

Introduction to CMOS VLSI Design (E158) Lecture 8: Clocking of VLSI Systems

Quartus II Software Design Series : Foundation. Digitale Signalverarbeitung mit FPGA. Digitale Signalverarbeitung mit FPGA (DSF) Quartus II 1

Design Verification & Testing Design for Testability and Scan

Topics of Chapter 5 Sequential Machines. Memory elements. Memory element terminology. Clock terminology

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

A New Paradigm for Synchronous State Machine Design in Verilog

Registers & Counters

Vivado Design Suite Tutorial

ECE410 Design Project Spring 2008 Design and Characterization of a CMOS 8-bit Microprocessor Data Path

DO-254 Requirements Traceability

High-Level Synthesis for FPGA Designs

SystemVerilog Is Getting Even Better!

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

Design of Digital Circuits (SS16)

PowerPC Microprocessor Clock Modes

Implementation of Web-Server Using Altera DE2-70 FPGA Development Kit

SVA4T: SystemVerilog Assertions - Techniques, Tips, Tricks, and Traps

Digital IC Design Flow

High Fanout Without High Stress: Synthesis and Optimization of High-fanout Nets Using Design Compiler

White Paper Understanding Metastability in FPGAs

Lab 1: Introduction to Xilinx ISE Tutorial

Quality. Stages. Alun D. Jones

Introduction. Jim Duckworth ECE Department, WPI. VHDL Short Course - Module 1

ModelSim-Altera Software Simulation User Guide

VERIFICATION TECHNOLOGIES

3. VERILOG HARDWARE DESCRIPTION LANGUAGE

Altera Error Message Register Unloader IP Core User Guide

DIGITAL DESIGN FLOW OPTIONS

DDS. 16-bit Direct Digital Synthesizer / Periodic waveform generator Rev Key Design Features. Block Diagram. Generic Parameters.

Testing of Digital System-on- Chip (SoC)

Getting off the ground when creating an RVM test-bench

Hardware Implementation of Improved Adaptive NoC Router with Flit Flow History based Load Balancing Selection Strategy

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

Asynchronous IC Interconnect Network Design and Implementation Using a Standard ASIC Flow

Rapid System Prototyping with FPGAs

ISE In-Depth Tutorial 10.1

Example-driven Interconnect Synthesis for Heterogeneous Coarse-Grain Reconfigurable Logic

ECE 3401 Lecture 7. Concurrent Statements & Sequential Statements (Process)

Quartus Prime Standard Edition Handbook Volume 3: Verification

Transcription:

Chapter 13: Verification Prof. Ming-Bo Lin Department of Electronic Engineering National Taiwan University of Science and Technology Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-1

Syllabus Objectives Function verification Simulation Test bench design Dynamic timing analysis Static timing analysis Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-2

Objectives After completing this chapter, you will be able to: Describe the importance and essential of verification Understand the essential of timing and functional verification Describe the essential issues of simulators Understand the essential principles of test bench designs Understand the principle of dynamic timing analysis Understand the principle of static timing analysis Understand issues of coverage analysis Describe the ISE design flow and related issues Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-3

Syllabus Objectives Functional verification Introduction Functional verification Simulation-based verification Simulation Test bench design Dynamic timing analysis Static timing analysis Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-4

Verification The goal of verification To ensure 100% correct in functionality and timing Spend 50 ~ 70% of time to verify a design Functional verification Simulation Formal proof Timing verification Dynamic timing simulation (DTS) Static timing analysis (STA) Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-5

Syllabus Objectives Verification Introduction Functional verification Simulation-based verification Simulation Test bench design Dynamic timing analysis Static timing analysis Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-6

Functional Verification Simulated-based functional verification A test bench Input stimuli Output analysis Formal verification A protocol An assertion A property A design rule Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-7

Models of Design under Test Black box model White box model Gray box model Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-8

Types of Assertion Static assertion Temporal assertion Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-9

Syllabus Objectives Verification Introduction Functional verification Simulation-based verification Simulation Test bench design Dynamic timing analysis Static timing analysis Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-10

Simulation-Based Verification Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-11

Hierarchy of Functional Verification Designer level (or block-level) Unit level Core level Chip level Chapter 13: Verification Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-12

A Verification Test Set Verification test set includes at least Compliance tests Corner case tests Random tests Real code tests Regression tests Property check Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-13

Formal Verification Uses mathematical techniques Proves a design property Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-14

Syllabus Objectives Verification Simulation Types of simulations and simulators Architecture of HDL simulators Test bench design Dynamic timing analysis Static timing analysis Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-15

Types of Simulations Behavioral simulation Functional simulation Gate-level (logic) simulation Switch-level simulation Circuit-level (transistor-level) simulation Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-16

Variations of Simulations Software simulation Hardware acceleration Hardware emulation Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-17

Syllabus Objectives Verification Simulation Types of simulations and simulators Architecture of HDL simulators Test bench design Dynamic timing analysis Static timing analysis Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-18

An Architecture of HDL Simulators Chapter 13: Verification Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-19

Verilog HDL Simulators Interpreted simulators Cadence Verilog-XL simulator Compiled code simulators Synopsys VCS simulator Native code simulators Cadence Verilog-NC simulator Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-20

Event-Driven/Cycle-Based Simulators Event-driven simulators Triggered by events Cycle-based simulators On a cycle-by-cycle basis Chapter 13: Verification Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-21

An Event-Driven Simulation Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-22

Syllabus Objectives Verification Simulation Test bench designs Test bench design Clock signal generation Reset signal generation Verification coverage Dynamic timing analysis Static timing analysis Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-23

Test Bench Design Principles Functions of a test bench generates stimuli checks responses in terms of test cases employs reusable verification components Two types of test benches deterministic self-checking Options of choosing test vectors Exhaustive test Random test Verification vector files Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-24

Test Bench Design Principles Two basic choices of stimulus generation Deterministic versus random stimulus generation Pregenerated test case versus on-the-fly test case generation Types of result checking on-the-fly checking end-of-test checking Result analysis Waveform viewers Log files Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-25

Types of Automated Response Checking Golden vectors Reference model Transaction-based model Chapter 13: Verification Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-26

Test Bench Designs --- A Trivial Example // test bench design example 1: exhaustive test. `timescale 1 ns / 100 ps nbit_adder_for UUT (.x(x),.y(y),.c_in(c_in),.sum(sum),.c_out(c_out)); reg [2*n-1:0] i; initial for (i = 0; i <= 2**(2*n)-1; i = i + 1) begin x[n-1:0] = i[2*n-1:n]; y[n-1:0] = i[n-1:0]; c_in =1'b0; #20; end Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-27

Test Bench Designs --- A Trivial Example // test bench design example 2: Random test. `timescale 1 ns / 100 ps nbit_adder_for UUT (.x(x),.y(y),.c_in(c_in),.sum(sum),.c_out(c_out)); integer i; reg [n:0] test_sum; initial for (i = 0; i <= 2*n ; i = i + 1) begin x = $random % 2**n; y = $random % 2**n; c_in =1'b0; test_sum = x + y; #15; if (test_sum!= {c_out, sum}) $display("error iteration %h\n", i); #5; end Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-28

Test Bench Designs --- A Trivial Example // test bench design example 3: Using Verification vector files. `timescale 1 ns / 100 ps parameter n = 4; parameter m = 8; // Unit Under Test port map nbit_adder_for UUT (.x(x),.y(y),.c_in(c_in),.sum(sum),.c_out(c_out)); integer i; reg [n-1:0] x_array [m-1:0]; reg [n-1:0] y_array [m-1:0]; reg [n:0] expected_sum_array [m-1:0]; Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-29

Test Bench Designs --- A Trivial Example initial begin // reading verification vector files $readmemh("inputx.txt", x_array); $readmemh("inputy.txt", y_array); $readmemh("sum.txt", expected_sum_array); end initial for (i = 0; i <= m - 1 ; i = i + 1) begin x = x_array[i]; y = y_array[i]; c_in =1'b0; inputx.txt #15; if (expected_sum_array[i]!= {c_out, sum}) $display("error iteration %h\n", i); #5; end initial #200 $finish; 4 9 d 5 1 6 d 9 inputy.txt 1 3 d 2 d d c 6 sum.txt 05 0c 1a 07 0e 13 19 0f Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-30

Syllabus Objectives Verification Simulation Test bench designs Test bench design Clock signal generation Reset signal generation Verification coverage Dynamic timing analysis Static timing analysis Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-31

Types of Clock Signals Types of clock signals A general clock signal Aligned derived clock signals Clock multipliers Asynchronous clock signals Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-32

A General Clock Signal Examples initial clk <=1 b0; always #10 clk <= ~clk; initial begin clk <= 1 b0; forever #10 clk <= ~ clk; end reg clk; always begin #5 clk <= 1 b0; #5 clk <= 1 b1; end Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-33

A General Clock Signal Truncation error `timescale 1 ns / 1 ns reg clk; parameter clk_period = 25; Rounding error `timescale 1 ns / 1 ns reg clk; parameter clk_period = 25; Proper precision `timescale 1 ns / 100 ps reg clk; parameter clk_period = 25; always begin #(clk_period/2) clk <= 1 b0; #(clk_period/2) clk <= 1 b1; end always begin #(clk_period/2.0) clk <= 1 b0; #(clk_period/2.0) clk <= 1 b1; end always begin #(clk_period/2) clk <= 1 b0; #(clk_period/2) clk <= 1 b1; end Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-34

Aligned Derived Clock Signals An improper approach always begin if (clk == 1 b1) clk2 <= ~ clk2; end A proper approach // both clk1 and clk2 are derived from clk. always begin clk1 <= clk; if (clk == 1 b1) clk2 <= ~ clk2; end Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-35

Clock Multipliers An example initial begin clk1 <= 1 b0; clk4 <= 1 b0; forever begin repeat (4) begin #10 clk4 <= ~ clk4; end clk1 <= ~ clk1; end end Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-36

Asynchronous Clock Signals Asynchronous means random initial begin clk100 <= 1 b0; #2; forever begin #5 clk100 <= ~ clk100; end end initial begin clk33 <= 1 b0; #5; forever begin #15 clk33 <= ~ clk33; end end Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-37

Syllabus Objectives Verification Simulation Test bench designs Test bench design Clock signal generation Reset signal generation Verification coverage Dynamic timing analysis Static timing analysis Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-38

Reset Signal Generations Race condition Using nonblocking assignments always begin #5 clk = 1 b0; #5 clk = 1 b1; end initial begin // has race condition. reset = 1 b0; #20 reset = 1 b1; #40 reset = 1 b0; end always begin #5 clk <= 1 b0; #5 clk <= 1 b1; end initial begin // no race condition. reset <= 1 b0; #20 reset <= 1 b1; #40 reset <= 1 b0; end Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-39

Reset Signal Generations Increase of maintainability always begin #(clk_period/2) clk <= 1 b0; #(clk_period/2) clk <= 1 b1; end initial begin reset = 1 b0; wait (clk!== 1 bx); repeat (3) @(negedge clk) reset <= 1 b1; reset <= 1 b0; end Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-40

Reset Signal Generations The use of a task always begin #(clk_period/2) clk <= 1 b0; #(clk_period/2) clk <= 1 b1; end // using a task task hardware_reset; begin reset = 1 b0; wait (clk!== 1 bx); // set reset to 1 for two clock cycles repeat (3) @(negedge clk) reset <= 1 b1; reset <= 1 b0; end endtask Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-41

Syllabus Objectives Verification Simulation Test bench designs Test bench design Clock signal generation Reset signal generation Verification coverage Dynamic timing analysis Static timing analysis Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-42

Coverage Analysis Two major types Structural coverage Functional coverage Q: What does 100% functional coverage mean? You have covered all the coverage points you included in the simulation By no means the job is done Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-43

Structural Coverage Statement coverage Branch or conditional coverage Toggle coverage Trigger coverage Expression coverage Path coverage Finite-state machine coverage Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-44

Functional Coverage Functional coverage Item coverage Cross coverage Transition coverage Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-45

Syllabus Objectives Verification Simulation Test bench designs Dynamic timing analysis SDF and delay back-annotation ISE design flow ISE simulation flow Static timing analysis Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-46

SDF and Generation Guidelines The standard delay format (SDF) file The SDF specifies IOPATH delay INTERCONNECT delay Timing check (SETUP, HOLD, etc) Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-47

Generation of SDF Files Pre-layout Gate delay information *_map.sdf (contains gate delay only) in ISE design flow Post-layout Both gate and interconnect delay information *_timesim.sdf in ISE design flow Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-48

Delay Back-Annotation $sdf_annotate (design_file_name _map.sdf", design_file_name); $sdf_annotate (design_file_name _timesim.sdf", design_file_name); Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-49

Syllabus Objectives Verification Simulation Test bench designs Dynamic timing analysis SDF and delay back-annotation ISE design flow ISE simulation flow Static timing analysis Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-50

The ISE Design Flow Design entry Synthesis to create a gate netlist Implementation Translation Map Place and route Configure FPGA Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-51

The ISE Design Flow Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-52

Syllabus Objectives Verification Simulation Test bench designs Dynamic timing analysis SDF and delay back-annotation ISE design flow ISE simulation flow Static timing analysis Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-53

A Simulation Flow --- An ISE-Based Flow Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-54

Syllabus Objectives Verification Simulation Test bench designs Dynamic timing analysis Static timing analysis Introduction to timing analysis Static timing analysis Timing specifications Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-55

Timing Analysis Q: The output needs to be stable by t = T for the correct functionality. But how to make sure of it? Two approaches Dynamic timing simulation Static timing analysis Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-56

Purposes of Timing Analysis Timing verification if a design meets a given timing constraint? Example: cycle-time constraint Timing optimization Optimizes the critical portion of a design Identifies critical paths Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-57

Syllabus Objectives Verification Simulation Test bench designs Dynamic timing analysis Static timing analysis Introduction to timing analysis Static timing analysis Timing specifications Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-58

Why Static Timing Analysis? Drawbacks of DTS has posed a bottleneck for large complex designs relies on the quality and coverage of the test bench Basic assumptions of STA No combinational feedback loops All register feedback broken by the clock boundary Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-59

Static Timing Analysis In STA Designs are broken into sets of signal paths Each path has a start point and an endpoint Start points Input ports Clock pins of storage elements Endpoints Output ports Data input pins of storage elements Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-60

Four Types of Path Analysis Entry path (input-to-d path) Stage path (register-to-register path or clock-to-d path) Exit path (clock-to-output path) Pad-to-pad path (port-to-port path) Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-61

Path Groups Types of path groups Path group Default path group Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-62

Syllabus Objectives Verification Simulation Test bench designs Dynamic timing analysis Static timing analysis Introduction Static timing analysis Timing specifications Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-63

Timing Specifications Port-related constraints Input delay (offset-in) Output delay (offset-out) Input-output (pad to pad) Cycle time (period) Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-64

Setup Time and Hold Time Checks Clock-related constraints Clock period Setup time Hold time Chapter 13: Verification Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-65

Timing Analysis A critical path The path of longest propagation delay A combinational logic path that has negative or smallest slack time slack = required time arrival time = requirement datapath (in ISE) Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-66

Timing Exceptions Two timing exceptions False paths Multi-cycle paths Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-67

False Paths A false path A timing path does not propagate a signal STA identifies as a failing timing path Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-68

Multi-Cycle Paths --- A Trivial Example Chapter 13: Verification // a multiple cycle example module multiple_cycle_example(clk, data_a, data_b, ); // trivial multiple-cycle operations always @(posedge clk) begin qout_a <= data_a * 5; @(posedge clk) qout_b <= data_b + 3; @(posedge clk) qout_c <= data_c - 7; end Q: Explain the operation of above code Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-69

Multi-Cycle Paths --- A Trivial Example Chapter 13: Verification Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 13-70