Using SystemVerilog Assertions in Gate-Level Verification Environments

Similar documents
VHDL (and verilog) allow complex hardware to be described in either single-segment style to two-segment style

e-smart 2009 Low cost fault injection method for security characterization

Is Power State Table(PST) Golden?

Field Programmable Gate Arrays a Case Study

ReCoSoC Experimental Fault Injection based on the Prototyping of an AES Cryptosystem

EE 330 Integrated Circuit. Sequential Airbag Controller

Investigation of timing constraints violation as a fault injection means. ZUSSA Loïc, DUTERTRE Jean-Max, CLEDIERE Jessy, ROBISSON Bruno, TRIA Assia

Compatibility of STPA with GM System Safety Engineering Process. Padma Sundaram Dave Hartfelder

CprE 281: Digital Logic

Sequential Circuit Background. Young Won Lim 11/6/15

Using SystemVerilog Assertions in Gate-Level Verification Environments

Programmable Comparator Options for the isppac-powr1220at8

Research Challenges for Automated Vehicles

Using Virtualization to Accelerate the Development of ADAS & Automated Driving Functions

Design and evaluate vehicle architectures to reach the best trade-off between performance, range and comfort. Unrestricted.

Circular BIST - Organization

Sequential logic implementation

ABB June 19, Slide 1

Using ModelSim and Matlab/Simulink for System Simulation in Automotive Engineering

FULLY SYNCHRONOUS DESIGN By Serge Mathieu

Enabling Shift-Left through FV Methodologies on Intel Graphics Designs

Control Design of an Automated Highway System (Roberto Horowitz and Pravin Varaiya) Presentation: Erik Wernholt

Chapter 1: Battery management: State of charge

Modelling and Verification of Relay Interlocking Systems

AltiumLive 2017: Adopting Early Analysis of Your Power Delivery Network

2015 STPA Conference. A s t u d y o n t h e f u s i o n o f S T P A a n d N i s s a n ' s S y s t e m s E n g i n e e r i n g

CS250 VLSI Systems Design

Finite Element Based, FPGA-Implemented Electric Machine Model for Hardware-in-the-Loop (HIL) Simulation

An Integrated Process for FDIR Design in Aerospace

Model Based Design: Balancing Embedded Controls Development and System Simulation

MEDIUM VOLTAGE PRODUCTS. Fault Current Limiters I S. -limiter and FC-Protector The worldʼs fastest switching devices

QS 100 LSM Power Management

Momentu. Brake-by-Wire Gathers. HIL Test System for Developing a 12-V Brake-by-Wire System BRAKE-BY-WIRE SYSTEMS

ENGINEERING FOR HUMANS STPA ANALYSIS OF AN AUTOMATED PARKING SYSTEM

Full Vehicle Simulation for Electrification and Automated Driving Applications

Ensuring the Safety Of Medical Electronics

CMPEN 411 VLSI Digital Circuits Spring Lecture 06: Static CMOS Logic

Vehicle Diagnostic Logging Device

REDUCING THE OCCURRENCES AND IMPACT OF FREIGHT TRAIN DERAILMENTS

ABSTRACT INTRODUCTION

Real-time Simulation of Electric Motors

ABB uses an OPAL-RT real time simulator to validate controls of medium voltage power converters

(FPGA) based design for minimizing petrol spill from the pipe lines during sabotage

Dual-Rail Domino Logic Circuits with PVT Variations in VDSM Technology

Guide. Services Document No: GD-1401 v1.0. Issue Date: Title: WIND ISLANDING. Previous Date: N/A. Author: Heather Andrew.

Flip-Flop Grouping in Data-Driven Clock Gating for Dynamic Power Management

Five Cool Things You Can Do With Powertrain Blockset The MathWorks, Inc. 1

Simulation of Collective Load Data for Integrated Design and Testing of Vehicle Transmissions. Andreas Schmidt, Audi AG, May 22, 2014

TRANSMISSION DIAGNOSTIC PARAMETERS

Proposed Solution to Mitigate Concerns Regarding AC Power Flow under Convergence Bidding. September 25, 2009

Test Infrastructure Design for Core-Based System-on-Chip Under Cycle-Accurate Thermal Constraints

Learn to Design with Stratix III FPGAs Programmable Power Technology and Selectable Core Voltage

Variable Valve Drive From the Concept to Series Approval

EEL Project Design Report: Automated Rev Matcher. January 28 th, 2008

Quality control considerations for the development of the front end hybrid circuits for the CMS Outer Tracker upgrade

A Predictive Delay Fault Avoidance Scheme for Coarse Grained Reconfigurable Architecture

FUNCTIONAL SAFETY SOLUTIONS in Solenoid Valves

Calibration. DOE & Statistical Modeling

University Program Software Selection

Full Vehicle Durability Prediction Using Co-simulation Between Implicit & Explicit Finite Element Solvers

A Personalized Highway Driving Assistance System

Use of Flow Network Modeling for the Design of an Intricate Cooling Manifold

EMC System Engineering of the Hybrid Vehicle Electric Motor and Battery Pack

SMSIL-4THGU-E ISSUE: 12/12 SIL-SAFETY MANUAL. Upgrade Series Actuators

Battery Technology for Data Centers and Network Rooms: Site Planning

Wind Turbine Emulation Experiment

2008 Hummer H2 - Engine Performance & Emission Controls > Engine Controls - 4.8L, 5.3L,

Adaptive Cruise Control System Overview

EXPERIMENTAL VERIFICATION OF INDUCED VOLTAGE SELF- EXCITATION OF A SWITCHED RELUCTANCE GENERATOR

Safety Exhaust Valve Integration Guide

Software Requirements Specification (SRS) Active Park Assist

Lecture 10: Circuit Families

The MathWorks Crossover to Model-Based Design

Servo Creel Development

SENTRY ISOBUS Tip Flow Monitor. Software Version 1.00

FLEXnet DC Programming & Guidelines

CS 250! VLSI System Design

SMART MAGNET BOARD USER MANUAL E0 SMAG 000B

USING INSPIRE AS AN UPFRONT DESIGN, OPTIMIZATION & SIMULATION TOOL FOR EXISITNG MANUAL GEARBOX COMPONENTS

NASA Glenn Research Center Intelligent Power System Control Development for Deep Space Exploration

AUTOMATIC SPEED LIMITER AND RELIEVER FOR AUTOMOBILES

Introduction to Requirement Management for Safety-Critical Embedded Vehicle Systems

Signal Hardware-In-the-Loop simulation of a Hybrid locomotive

AN-1166 Lithium Polymer Battery Charger using GreenPAK State Machine

High-Throughput Asynchronous Pipelines for Fine-Grain Dynamic Datapaths Λ

NR Electric Uses RT-LAB Real-time Simulator to Test the Control and Protection System for the Zhoushan Multiterminal

Foundation Fieldbus System Design and Engineering of CSPC Nanhai Project

Dealing with customer concerns related to electronic throttle bodies By: Bernie Thompson

Logic Description. For: 115 kv Line Panel Standard Design One Breaker Normal Length Line Panel with New Panels at All Ends

SE-3SCR-LM MANUAL MOTOR LOAD MANAGER

Case Study on On EHV Circuit Breaker Flashover NTPC-SINGRAULI

Quick Setup Guide for IntelliAg Model YP Air Pro

07 GRP04_All Transmissions.xls

An approach based on Engineering a Safer World Systems Thinking Applied to Safety Leveson (2011)

Timing is everything with internal combustion engines By: Bernie Thompson

Oregon DOT Slow-Speed Weigh-in-Motion (SWIM) Project: Analysis of Initial Weight Data

Nemesis-TCS system manual release /11/2011 Author Mick Boasman. UK Tel

DTC P3401, P3425, P3441, or P3449

Modelling and Simulation Specialists

Xilinx Answer MIG UltraScale DDR4/DDR3 - Hardware Debug Guide

Transcription:

Using SystemVerilog Assertions in Gate-Level Verification Environments Mark Litterick (Verification Consultant) mark.litterick@verilab.com

2 Introduction Gate-level simulations why bother? methodology Overview of ABV applicability to gate-level simulations Reliable reuse of SVA from RTL to gate-level clock distribution and negative hold-time Dedicated assertions for gate-level timing checks and coverage dynamically controlling SVA Comment on synthesizable assertions

3 Gate-Level Simulations SoC features => gate-level supplements RTL simulations complex clock relationships elaborate power management dynamic frequency scaling multi-voltage islands asynchronous operation functional test patterns Gate-level simulations are used to: validate static timing analysis detect dynamic timing defects check critical timing paths verify reset operation (no X filter) Gate-level simulations do not replace STA or prove synthesis Apply appropriate methodology to maximize return-on-effort identify features for gate-level validation in verification plan specify appropriate functional coverage target these features with intentional and stress test scenarios

4 Assertion-Based Verification Assertion-Based Verification is a methodology for improving the effectiveness of a verification environment define properties that specify expected behavior of design check property assertions by simulation or formal analysis Benefits of ABV include: improved error detection and reduced debug time due to observability improved integration due to built-in self-checking improved specification and documentation ABV considerations for gate-level simulations include: reliable reuse of assertions from RTL environment additional assertions dedicated to gate-level synthesizable assertions

Reusing Assertions in Gate-Level Simulations 5 When a verification environment depends on assertion-based checkers: => relevant assertions must continue to operate at gate-level otherwise benefits are lost level of checking is reduced (missed defects) failing simulations difficult to debug (lack of observability) Assertions must continue to work reliably at gate-level no false failures (wasted debug effort) no false passes (missed defects) Main gate-level attributes that affect assertion reliability: clock-tree distribution negative hold-time

RTL Clock Distribution 6 RTL clock is single net for each clock domain with no timing delays SVA sampling relative to any part of clock net is reliable typically module CLK port SVA top-level DUT CLK wire interface assign CLK module package module modport initial always task function CLK @ source CLK @ port CLK @ rtl module signals normal RTL sampling s

Gate-Level Clock-Tree Distribution 7 Gate-level clock is distributed network of buffers/inverters clock-tree balanced at registers CLK port not on terminus may be multiple clock ports SVA sampling must be relative to balanced clock not module CLK port typically a register clock input top-level DUT module DATA CLK SVA CLK CLK clock-tree delay CLK @ source CLK @ port CLK @ reg module signals hold unreliable setup sampling s

8 Clock Connection Example property p_count; @(posedge clk)!$stable(count) -> (count == $past(count)+1 b1); bind tb.top.mod sva_chk sva_chk_i (.clk (clk),.count (count)); bind tb.top.mod sva_chk sva_chk_i ( `ifdef RTL //only: not appropriate for gate.clk (clk), // module port `else // GATE only: not present in RTL bind.clk tb.top.mod (register.ck), sva_chk // sva_chk_i register clock ( `endif.clk (register.ck),.count (count)); clk @ port clk @ reg clk @ port clk @ reg count[5:0] b011111 false failure because some bits change faster than others s setup b100000 count[5:0] b011111 correct sampling s setup b100000 $sample(bus) b011111 b110101 $sample(bus) b011111 b100000 Use conditional binding to appropriate clock for gate-level

9 Negative Hold-Time Normal flip-flop model data setup-time prior to clock data hold-time after clock Negative hold-time allows data intended for the next cycle to change prior to clock edge allows for increased clock skew eases clock-tree synthesis CLK D CLK D setup + + hold setup + _ hold Positive Hold-Time Negative Hold-Time clock-skew early CLK early Q / late D current next setup hold late CLK late Q previous current

SVA with Negative Hold-Time 10 Problem: SVA sampling in preponed region (value just before clock event) is not reliable in presence of negative hold-times property p_nht_ex; @(posedge CLK) $rose(sig) -> (BUS==`next) && ($past(bus)==`current); a_nht_ex : assert property (p_nht_ex); CLK 1-bit SIG N-bit BUS current next su h su h false fail s expected pass s $sample(sig) not low $sample(bus) previous not current or next next

11 SVA in Clocking Block SVA must operate within the scope of a clocking block for negative holdtimes input skew must be greater than hold-time value skew of #0 or #1step do not work reliably input skew must not exceed setup-time value works for RTL and gate-level clocking ck_nht @(posedge CLK); input #50ps SIG, BUS; property p_nht_ex; $rose(sig) -> (BUS==`next) && ($past(bus)==`current); endclocking a_nht_ex : assert property (p_nht_ex); CLK 1-bit SIG N-bit BUS su not triggered $sample(sig) current s h next su pass s h $sample(bus) previous current next

Dedicated Assertions for Gate-Level Simulation 12 Features targeted for Gate-Level validation may not be fully addressed by RTL assertions and coverage add new assertions for both RTL and Gate-Level add dedicated assertions for Gate-Level only Dedicated assertions can be: regular cycle-based properties non-cycle-based timing checks SVA can be used to implement timing checks timing checks can be used for assertions and coverage under control of verification environment supplements static timing analysis and structural timing checks in specify blocks, does not replace them

13 Timing Checks Gate-level models have timing checks built-in system tasks in specify block (Verilog, SystemVerilog) or VITAL (VHDL) Not all timing defects trigger existing checks; for example: no glitch present in best-case simulation narrow pulse in worst-case, but not narrow enough to violate $width probable glitch in real-world (between best-case and worst-case) clk0 clk1 select RTL mux_clk BC mux_clk WC mux_clk

14 SVA Timing Checks SVA allows time and EventExpression formal arguments Actual arguments can be static values or dynamic variables Can be used for: pulse width violations (e.g. for clock quality checks at multiplexer) period checks (e.g for dynamic MVI protocol) etc. property p_min_time(start,stop,duration); time start_time; @(start) (1,start_time = $time) => @(stop) (($time - start_time) >= duration); property p_min_high; p_min_time(posedge clk, negedge clk, 2ns); a_min_high : assert property (p_min_high); time minp = 6ns; property p_min_period; p_min_time(posedge clk, posedge clk, minp); a_min_period : assert property (p_min_period);

15 SVA Timing Coverage SVA timing checks can also be used for functional coverage cover property statement records a hit if property evaluates to true Can be used to ensure gate-level environment created the required timing relationships property p_max_time(start,stop,duration); time start_time; @(start) (1,start_time = $time) => @(stop) (($time - start_time) < duration); property p_just_before; p_max_time(data, posedge clk, 30ps); property p_just_after; p_max_time(posedge clk, data, 30ps); c_jb : cover property (p_just_before); c_ja : cover property (p_just_after);

16 Performance and Reliability For performance and reliability reasons normally avoid: assertions which trigger every clock cycle non-synchronous assertions Performance overhead is much less in gate-level than RTL many more simulation events occurring anyway additional performance degradation not noticeable care still required with coverage definition in particular Timing properties are prone to false failures especially at start of simulation dynamically control assertions and coverage if required enable assertions and coverage only when safe beware of over-constraining and missing defects at critical times

Dynamically Controlling SVA Timing Checks 17 Named assertion and coverage statements controlled by: $asserton, $assertoff and $assertkill system tasks disable iff clause disable statement Example: controlling checks on internally generated launch-and-capture clock for at-speed transition fault scan tests internal clk tester clk scan_mode scan_enable scan clk scan in/out launch capture scan

Controlling SVA using $asserton and $assertoff 18 property p_min_high; // as before... a_min_high : assert property (p_min_high) else $error( %m: width violation on positive pulse ); initial $assertoff (a_min_high); property p_pre_launch; @(posedge clk) $fell(scan_enable) -> scan_mode; property p_post_capture; @(posedge clk) $rose(scan_enable) -> scan_mode; a_pre_launch : assert property (p_pre_launch) $asserton(a_min_high); else $error( %m: fall on scan_enable when not in scan_mode"); a_post_capture : assert property (p_post_capture) $assertoff(a_min_high); else $error( %m: rise on scan_enable when not in scan_mode");

19 Synthesizable Assertions ABV can be extended into hardware-assisted verification flows acceleration emulation FPGA prototyping Restricting assertion coding to synthesizable subset enables embed assertion logic in physical netlist synthesize part of testbench into target hardware Different scenario to ensuring testbench environment works with both RTL and gate-level representations of DUT mentioned for completeness only......not the focus for this paper!

20 Conclusion Benefits of ABV can be extended into gate-level verification apply appropriate methodology to target key features SVA assertions can be reliably reused from RTL to gate-level careful connectivity to terminal points of clock-tree use clocking block with appropriate input skew Additional assertions can be specified for gate-level functional and timing checks additional coverage points for key features Improve effectiveness of verification environment detect functional failures due to incorrect STA constraints detect and isolate dynamic timing defects mark.litterick@verilab.com