Assertion-Based Verification

Size: px
Start display at page:

Download "Assertion-Based Verification"

Transcription

1 Assertion-Based Verification Introduction to SVA Harry Foster Chief Scientist Verification

2 Session Overview After completing this session you will... Learn the structure of the SVA language Lean how to construct sequence Lean how to construct properties

3 Specifying Design Intent Assertions allow us to specify design intent in a way that lends itself to automation reset_n req0 req1 Arbiter grant0 grant1 // Assert that the grants for our simple arbiter are mutually exclusive

4 Identifying the Error Condition For our arbiter example, we can write a Boolean expression for the error condition, as follows: reset_n req0 req1 Arbiter grant0 grant1 (grant0 & grant1) // error condition

5 Checking the Error Condition before Assertions Doesn t lend itself to automation. module arbiter (, rst_n, req0, req1, grant0, grant1);... or negedge rst_n) begin if (rst_n!= 1 b0) if (grant0 & grant1) $display ( ERROR: Grants not mutex );... endmodule Error Condition Boolean Expression

6 IEEE 1800 SystemVerilog Mutex Example grant0 and grant1 must be mutually exclusive grant0 grant1 error assert property ) disable iff (rst_n)!(grant0 & grant1));

7 Assertion Units Directives (assert, cover) Properties Sequences (Sequential Expressions) Boolean Expressions Checker packaging assert, assume, cover Specification of behavior; desired or undesired How Boolean events are related over time True or false

8 assert property ) disable iff (~rst_n)!(grant0 & grant1)); Assertion Units Directives (assert, cover) Properties Sequences (Sequential Expressions) Boolean Expressions rst_n!(grant0 & grant1) error

9 assert property ) disable iff (~rst_n)!(grant0 & grant1)); Assertion Units Directives (assert, cover) Properties Sequences (Sequential Expressions) Boolean Expressions rst_n!(grant0 & grant1) error

10 assert property ) disable iff (~rst_n)!(grant0 & grant1)); Assertion Units Directives (assert, cover) Properties Sequences (Sequential Expressions) Boolean Expressions rst_n!(grant0 & grant1) error

11 SVA provides a mechanism to asynchronously disable a property during a reset using the SVA disable iff clause assert property (@(posedge ) disable iff (~rst_n)!(grant0 & grant1));

12 Sequences So far we have examined simple assertions A Boolean expression must hold at every clock We now we introduce SVA sequences Multiple Boolean expressions are evaluated in a linear order of increasing time Assertion Units Directives (assert, cover) Properties Sequences (Sequential Expressions) Boolean Expressions

13 Sequence Temporal delay ## with integer start ##1 transfer start transfer

14 Sequence Temporal delay ## with integer start ##2 transfer start transfer

15 Sequence Temporal delay ## with range [m:n] start ##[0:2] transfer start transfer

16 Sequence Temporal delay ## with range [m:n] start ##[0:2] transfer start transfer

17 Sequence Temporal delay ## with range [m:n] start ##[0:2] transfer start transfer

18 Sequence Consecutive repetition [*m] or range [*m:n] Use $ to represent infinity start[*2] ##1 transfer start transfer

19 Sequence Consecutive repetition [*m] or range [*m:n] Use $ to represent infinity start[*1:2] ##1 transfer start transfer

20 Sequence Consecutive repetition [*m] or range [*m:n] Use $ to represent infinity start[*1:2] ##1 transfer start transfer

21 Sequence Consecutive repetition [*m] or range [*m:n] Use $ to represent infinity start[*1:2] ##1 transfer start transfer Note: This also matches the sequence specification!!!!

22 Sequence Non-consecutive repetition [=m] or [=m:n] start[=2] ##1 transfer start transfer [*0:$] represents zero to infinity start[=2]!start[*0:$] ##1 start ##1!start[*0:$] ##1 start ##1!start[*0:$]

23 Sequence Goto non-consecutive repetition [->m] or [->m:n] start[->2] ##1 transfer start transfer [*0:$] represents zero to infinity start[->2]!start[*0:$] ##1 start ##1!start[*0:$] ##1 start

24 Properties Assertion Units Directives (assert, cover) Properties Sequences (Sequential Expressions) Boolean Expressions

25 Properties Overlapping sequence implication operator -> ready ##1 start -> go ##1 done ready start go done assertion property ) ready ##1 start -> go ##1 done );

26 Properties Non-overlapping sequence implication operator => ready ##1 start => go ##1 done ready start go done NOTE: A => B is the same as A -> ##1 B

27 Fair Arbitration Scheme Example Asserting that an arbiter is fair To be fair, a pending request for a particular client should never have to wait more than two arbitration cycles Otherwise, the arbiter unfairly issued multiple grants to a different client req[0] req[1] Arbiter gnt[0] gnt[1]

28 Fair Arbitration Scheme Example a_0_fair: assert property ) disable iff (reset_n) not ( $rose(req[0]) ##1 (!gnt[0] throughout (gnt[1])[->2]))); req[0] req[1] Arbiter gnt[0] gnt[1] req[0] gnt[0] gnt[1]

29 Named properties and sequences To facilitate reuse, properties and sequences can be declared and then referenced by name Can be declared with or without parameters sequence s_op_retry; (req ##1 retry); endsequence sequence s_cache_fill(req, done, fill); (req ##1 done [=1] ##1 fill); endsequence

30 Named properties and sequences sequence s_op_retry; (req ##1 retry); endsequence sequence s_cache_fill(rdy, done, fill); (rdy ##1 done [=1] ##1 fill); endsequence assert property ) disable iff (!reset_n) s_op_retry => s_cache_fill (my_rdy,my_done,my_fill));

31 Named properties and sequences property p_en_mutex(en0, ) disable iff (~reset_n) ~(en0 & en1); endproperty assert property (p_en_mutex(en[0], en[1]));

32 Action blocks An SVA action block specifies the actions that are taken upon success or failure of the assertion The action block, if specified, is executed immediately after the evaluation of the assert expression assert property ) disable iff (reset)!(grant0 & grant1) ) else begin // action block fail statement $error( Mutex violation with grants. ); end

33 System functions $onehot (<expression>) - Returns true if only one bit of the expression is high $onehot0 (<expression>) - Returns true if at most one bit of the expression is high $isunknown (<expression>) - Returns true if any bit of the expression is X or Z - This is equivalent to ^<expression> === bx

34 System functions $rose( expression ) $fell( expression ) $stable( expression ) $past( expression [, number_of_ticks] )

35 The need for $rose system function You must be precise when specifying! assertion property ) start -> ##2 Transfer); start transfer

36 Eliminates multiple matches You must be precise when specifying! assertion property ) $rose(start) -> ##2 Transfer); start transfer $rose(start) is a short cut for the sequence!start ##1 start

37 Introduction to SVA Some assertions require additional modeling code In addition to the assertion constructs rst_n Controller put get rst_n data_in FIFO data_out full empty // Assert that the FIFO controller cannot overflow nor underflow

38 Introduction to SVA // assertion modeling code not part of the design `ifdef ASSERT_ON int cnt = 0; ) if (!rst_n) cnt <= 0; else cnt <= cnt + put get; // assert no overflow assert property (@posedge disable iff (!rst_n)!((cnt + put get) > `DEPTH)); // assert no underflow assert property (@posedge disable iff (!rst_n)!((cnt + put) < get)); `endif

39 SVA Does and Don ts Never assert a sequence! assert property (@posedge ) (req ##1 grnt ##1 done)); This says every clock we see req, followed by gnt, followed by done The correct way to do this is with an implication operator: assert property (@posedge ) (req => grnt ##1 done)); It s ok to cover a sequence It s ok to assert a forbidden sequence using not assert property (@posedge ) not (req ##1 grnt ##1 done));

40 Session Recap In this session we discussed... The structure of the SVA language How to construct sequences How to construct properties

41 Training and Consulting Resources Mentor Graphics Training Scalable Verification Courses - A wide range of instructor led classes - Located in public training centers in major cities or onsite at your workplace - Web-based events with live instructors are also available. Mentor Graphics Consulting Questa Verification Methodology JumpStart Knowledge-Sourcing Model - Infuse knowledge into your organization while addressing your immediate product development challenges

42 Other Resources Assertion-Based Design Harry Foster, Adam Krolnik, David Lacey Springer, 2004 Creating Assertion-Based IP Harry Foster, Adam Krolnik Springer, 2008

43 Assertion-Based Verification Introduction to SVA Harry Foster Chief Scientist Verification

Assertion-Based Verification

Assertion-Based Verification Assertion-Based Verification ABV and Formal Property Checking Harry Foster Chief Scientist Verification info@verificationacademy.com www.verificationacademy.com Session Overview After completing this session

More information

SystemVerilog Assertions

SystemVerilog Assertions by, Getting Started With SystemVerilog Assertions presented by Stuart Sutherland of Sutherland H D L training Engineers to be SystemVerilog Wizards! 3 About the Presenter... Stuart Sutherland, a SystemVerilog

More information

Debugging Inconclusive Assertions and a Case Study

Debugging Inconclusive Assertions and a Case Study Debugging Inconclusive Assertions and a Case Study by Jin Hou Mentor, A Siemens Business INTRODUCTION Formal assertion-based verification uses formal technologies to analyze if a design satisfies a given

More information

166 SystemVerilog Assertions Handbook, 4th Edition

166 SystemVerilog Assertions Handbook, 4th Edition 166 SystemVerilog Assertions Handbook, 4th Edition example, suppose that a cache controller performs behavior A when there is a cache hit (e.g., fetch data from the cache), or performs behavior B when

More information

Focussing Assertion Based Verification Effort for Best Results

Focussing Assertion Based Verification Effort for Best Results Focussing Assertion Based Verification Effort for Best Results Mark Litterick (Verification Consultant) mark.litterick@verilab.com 2 Introduction Project background Overview of ABV including methodology

More information

Stuart Sutherland, Sutherland HDL, Inc.

Stuart Sutherland, Sutherland HDL, Inc. SystemVerilog Design: User Experience Defines Multi-Tool, Multi-Vendor Language Working Set Ways Design Engineers Can Benefit from the Use of SystemVerilog Assertions Stuart Sutherland, Sutherland HDL,

More information

System Verilog Assertions Language and Methodology. Comprehensive 1 Day Training Class. DefineView Consulting

System Verilog Assertions Language and Methodology. Comprehensive 1 Day Training Class. DefineView Consulting System Verilog Assertions Language and Methodology Comprehensive 1 Day Training Class DefineView Consulting http://www.defineview.com 2006-2008 Training :: Abstract Abstract System Verilog Assertions (SVA)

More information

OpenVera Assertions. March Synopsys, Inc.

OpenVera Assertions. March Synopsys, Inc. OpenVera Assertions March 2003 2003 Synopsys, Inc. Introduction The amount of time and manpower that is invested in finding and removing bugs is growing faster than the investment in creating the design.

More information

Speed up Emulation Debugging using Whitebox Assertions

Speed up Emulation Debugging using Whitebox Assertions Speed up Emulation Debugging using Whitebox Assertions Ricky Wang ricky@atrenta.com This presentation may contain forward-looking statements regarding product development. Information or statements contained

More information

FORMAL SPECIFICATION, SYSTEM VERILOG ASSERTIONS & COVERAGE. By Calderón-Rico, Rodrigo & Tapia Sanchez, Israel G.

FORMAL SPECIFICATION, SYSTEM VERILOG ASSERTIONS & COVERAGE. By Calderón-Rico, Rodrigo & Tapia Sanchez, Israel G. FORMAL SPECIFICATION, SYSTEM VERILOG ASSERTIONS & COVERAGE By Calderón-Rico, Rodrigo & Tapia Sanchez, Israel G. OBJECTIVE Learn how to define objects by specifying their properties which are formally

More information

Assertion Checker Synthesis for FPGA Emulation

Assertion Checker Synthesis for FPGA Emulation Assertion Checker Synthesis for FPGA Emulation Chengjie Zang, Qixin Wei and Shinji Kimura Graduate School of Information, Production and Systems, Waseda University, 2-7 Hibikino, Kitakyushu, 808-0135,

More information

218 SystemVerilog Assertions Handbook, 4th Edition

218 SystemVerilog Assertions Handbook, 4th Edition 218 SystemVerilog Assertions Handbook, 4th Edition Synchronous FIFO to be used as an IP. FIFO management (e.g., push, pop, error handling) is external to the FIFO. SystemVerilog Assertions in the Design

More information

CSE 502: Computer Architecture

CSE 502: Computer Architecture CSE 502: Computer Architecture SystemVerilog More Resources Cannot cover everything in one day You will likely need to look up reference material: SystemVerilog for VHDL Users: http://www.systemverilog.org/techpapers/date04_systemverilog.pdf

More information

Pragmatic Simulation-Based Verification of Clock Domain Crossing Signals and Jitter using SystemVerilog Assertions

Pragmatic Simulation-Based Verification of Clock Domain Crossing Signals and Jitter using SystemVerilog Assertions Pragmatic Simulation-Based Verification of Clock Domain Crossing Signals and Jitter using SystemVerilog Assertions Mark Litterick (Verification Consultant) mark.litterick@verilab.com 2 Introduction Clock

More information

FSM and Efficient Synthesizable FSM Design using Verilog

FSM and Efficient Synthesizable FSM Design using Verilog FSM and Efficient Synthesizable FSM Design using Verilog Introduction There are many ways to code FSMs including many very poor ways to code FSMs. This lecture offers guidelines for doing efficient coding,

More information

7.3.3 Same Inputs in Antecedent and Consequent

7.3.3 Same Inputs in Antecedent and Consequent Formal Verification Using Assertions 249 There are some special scenarios in which the user may want to intentionally toggle the reset signal during a session. This may be needed to check conditions such

More information

Sugar 2.0 An Introduction

Sugar 2.0 An Introduction Sugar 2.0 An Introduction Cindy Eisner 1 Dana Fisman 1,2 1 IBM Haifa Research Laboratory 2 Weizmann Institute of Science, Rehovot, Israel {eisner,danaf}@il.ibm.com 1 Introduction Sugar is a language for

More information

Pragmatic Simulation-Based Verification of Clock Domain Crossing Signals and Jitter using SystemVerilog Assertions

Pragmatic Simulation-Based Verification of Clock Domain Crossing Signals and Jitter using SystemVerilog Assertions Pragmatic Simulation-Based Verification of Clock Domain Crossing Signals and Jitter using SystemVerilog Assertions Mark Litterick, Verilab, Munich, Germany. (mark.litterick@verilab.com) Abstract Recent

More information

SystemVerilog Assertions Are For Design Engineers Too!

SystemVerilog Assertions Are For Design Engineers Too! SystemVerilog Assertions Are For Design Engineers Too! Don Mills LCDM Engineering mills@lcdm-eng.com Stuart Sutherland Sutherland HDL, Inc. stuart@sutherland-hdl.com ABSTRACT SystemVerilog Assertions (SVA)

More information

SVA in a UVM Class-based Environment by Ben Cohen, author, consultant, and trainer

SVA in a UVM Class-based Environment by Ben Cohen, author, consultant, and trainer SVA in a UVM Class-based Environment by Ben Cohen, author, consultant, and trainer INTRODUCTION Verification can be defined as the check that the design meets the requirements. How can this be achieved?

More information

EECS 270 Verilog Reference: Sequential Logic

EECS 270 Verilog Reference: Sequential Logic 1 Introduction EECS 270 Verilog Reference: Sequential Logic In the first few EECS 270 labs, your designs were based solely on combinational logic, which is logic that deps only on its current inputs. However,

More information

Property Mining using Dynamic Dependency Graphs. Jan Malburg, Tino Flenker, and Görschwin Fey

Property Mining using Dynamic Dependency Graphs. Jan Malburg, Tino Flenker, and Görschwin Fey DLR.de Chart 1 Mining using Dynamic Dependency Graphs> ASP-DAC'17 Mining using Dynamic Dependency Graphs Jan Malburg, Tino Flenker, and Görschwin Fey DLR.de Chart 2 Mining using Dynamic Dependency Graphs>

More information

Assertions: Too good to be reserved for verification only.

Assertions: Too good to be reserved for verification only. Assertions: Too good to be reserved for verification only. Written by Brian Bailey Abstract There has been a lot of talk in the industry about the usefulness of assertions as part of a complete verification

More information

Quick Introduction to SystemVerilog: Sequental Logic

Quick Introduction to SystemVerilog: Sequental Logic ! Quick Introduction to SystemVerilog: Sequental Logic Lecture L3 8-545 Advanced Digital Design ECE Department Many elements Don Thomas, 24, used with permission with credit to G. Larson Today Quick synopsis

More information

Universal Verification Methodology (UVM) Module 5

Universal Verification Methodology (UVM) Module 5 Universal Verification Methodology (UVM) Module 5 Venky Kottapalli Prof. Michael Quinn Spring 2017 Agenda Assertions CPU Monitor System Bus Monitor (UVC) Scoreboard: Cache Reference Model Virtual Sequencer

More information

SVA Advanced Topics: SVAUnit and Assertions for Formal

SVA Advanced Topics: SVAUnit and Assertions for Formal SVA Advanced Topics: SVAUnit and Assertions for Formal SystemVerilog Assertions Verification with SVAUnit Andra Radu Ionuț Ciocîrlan 2/29/2016 Andra Radu - AMIQ Consulting Ionuț Ciocîrlan - AMIQ Consulting

More information

Laboratory Exercise 3 Davide Rossi DEI University of Bologna AA

Laboratory Exercise 3 Davide Rossi DEI University of Bologna AA Laboratory Exercise 3 Davide Rossi DEI University of Bologna AA 2017-2018 Objectives Summary of finite state machines (Mealy, Moore) Description of FSMs in System Verilog Design of control blocks based

More information

OPEN VERIFICATION LIBRARY

OPEN VERIFICATION LIBRARY A PPENDIX A OPEN VERIFICATION LIBRARY The Accellera Open Verification Library [Accellera OVL 2003] provides designers, integrators, and verification engineers with a single, vendor-independent assertion

More information

IP Core Design. Lecture 11 Introduction to PSL

IP Core Design. Lecture 11 Introduction to PSL IP Core Design Lecture 11 Juinn-Dar Huang, Ph.D. Assistant Professor jdhuang@mail.nctu.edu.tw November 2004 1 Content Overview Fundamentals Boolean Layer Temporal Layer SERE Temporal Layer FL Property

More information

7.3 Case Study - FV of a traffic light controller

7.3 Case Study - FV of a traffic light controller Formal Verification Using Assertions 247 7.3 Case Study - FV of a traffic light controller 7.3.1 Model This design represents a simple traffic light controller for a North-South and East-West intersection.

More information

VCS SystemVerilog Assertions Training Exercises

VCS SystemVerilog Assertions Training Exercises VCS SystemVerilog Assertions Training Exercises LAB : SVA / VCS Overall Inline Tool Flow using checkers Goal Get Familiar with Inlined SVA Flow Location SVA/lab_ Design Traffic Light Controller Allocated

More information

EECS 4340: Computer Hardware Design Unit 4: Validation

EECS 4340: Computer Hardware Design Unit 4: Validation EECS 4340: Unit 4: Validation Prof. Simha Sethumadhavan Reference Book: System Verilog for Verification Agenda Last Unit Design abstractions Basic primitives This Unit Validation Forthcoming Design Tips

More information

SystemVerilog Assertions in the Design Process 213

SystemVerilog Assertions in the Design Process 213 SystemVerilog Assertions in the Design Process 213 6.6 RTL Design Assertions, generated during the architectural planning phases, greatly facilitate the writing of the RTL implementation because they help

More information

Contents 1 Introduction 2 Functional Verification: Challenges and Solutions 3 SystemVerilog Paradigm 4 UVM (Universal Verification Methodology)

Contents 1 Introduction 2 Functional Verification: Challenges and Solutions 3 SystemVerilog Paradigm 4 UVM (Universal Verification Methodology) 1 Introduction............................................... 1 1.1 Functional Design Verification: Current State of Affair......... 2 1.2 Where Are the Bugs?.................................... 3 2 Functional

More information

Chap 4 Connecting the Testbench and. Design. Interfaces Clocking blocks Program blocks The end of simulation Top level scope Assertions

Chap 4 Connecting the Testbench and. Design. Interfaces Clocking blocks Program blocks The end of simulation Top level scope Assertions Chap 4 Connecting the Testbench and Interfaces Clocking blocks Program blocks The end of simulation Top level scope Assertions Design 1 4 Connecting the Testbench and Design Testbench wraps around the

More information

SystemVerilog HDL - a programming language

SystemVerilog HDL - a programming language SystemVerilog HDL - a programming language module hdl1; integer A, B, C; initial begin A = 3; B = 10; $display( A, B, C ); C = A+B; $display( A, B, C ); for ( A = 3 ; A > 0 ; A = A-1 ) begin C = C*B; $display(

More information

What, If Anything, In SystemVerilog Will Help Me With FPGA-based Design. Stuart Sutherland, Consultant and Trainer, Sutherland HDL, Inc.

What, If Anything, In SystemVerilog Will Help Me With FPGA-based Design. Stuart Sutherland, Consultant and Trainer, Sutherland HDL, Inc. What, If Anything, In SystemVerilog Will Help Me With FPGA-based Design Stuart Sutherland, Consultant and Trainer, Sutherland HDL, Inc. About the Presenter... Stuart Sutherland, SystemVerilog wizard Independent

More information

SystemC AssertionLibrary

SystemC AssertionLibrary SystemC AssertionLibrary SystemC Users Group 22 August 2005 Jacob Smit, Michael Velten, Volkan Esen Thomas Steininger, Wolfgang Ecker, Michael Mrva Infineon Technologies Motivation SystemC gains more and

More information

Synthesis of Synchronous Assertions with Guarded Atomic Actions

Synthesis of Synchronous Assertions with Guarded Atomic Actions Synthesis of Synchronous Assertions with Guarded Atomic Actions Michael Pellauer, Mieszko Lis, Donald Baltus, Rishiyur Nikhil Massachusetts Institute of Technology Bluespec, Inc. pellauer@csail.mit.edu,

More information

Last Lecture: Divide by 3 FSM

Last Lecture: Divide by 3 FSM Last Lecture: Divide by 3 FSM Output should be 1 every 3 clock cycles S2 S0 S1 The double circle indicates the reset state Slide derived from slides by Harris & Harris from their book 1 Finite State Machines

More information

Asynchronous Behaviors Meet Their Match with SystemVerilog Assertions

Asynchronous Behaviors Meet Their Match with SystemVerilog Assertions Asynchronous Behaviors Meet Their Match with SystemVerilog Assertions Doug Smith Doulos 16165 Monterey Road, Suite 109 Morgan Hill, CA USA +1-888-GO DOULOS doug.smith@doulos.com ABSTRACT Most digital designs

More information

Property-based design with HORUS / SYNTHORUS

Property-based design with HORUS / SYNTHORUS Property-based design with HORUS / SYNTHORUS Dominique Borrione, Negin Javaheri, Katell Morin-Allory, Yann Oddos, Alexandre Porcher Radboud University, Nijmegen 1 March 27, 2013 Functional specifications

More information

Hardware Design Verification: Simulation and Formal Method-Based Approaches William K Lam Prentice Hall Modern Semiconductor Design Series

Hardware Design Verification: Simulation and Formal Method-Based Approaches William K Lam Prentice Hall Modern Semiconductor Design Series Design Verification An Introduction Main References Hardware Design Verification: Simulation and Formal Method-Based Approaches William K Lam Prentice Hall Modern Semiconductor Design Series A Roadmap

More information

ON THE EFFECTIVENESS OF ASSERTION-BASED VERIFICATION

ON THE EFFECTIVENESS OF ASSERTION-BASED VERIFICATION ON THE EFFECTIVENESS OF ASSERTION-BASED VERIFICATION IN AN INDUSTRIAL CONTEXT L.Pierre, F.Pancher, R.Suescun, J.Quévremont TIMA Laboratory, Grenoble, France Dolphin Integration, Meylan, France Thales Communications

More information

APPLIED FORMAL VERIFICATION

APPLIED FORMAL VERIFICATION APPLIED FORMAL VERIFICATION This page intentionally left blank APPLIED FORMAL VERIFICATION DOUGLAS L. PERRY Virtutech, Inc. HARRY D. FOSTER Jasper Design Automation, Inc. McGraw-Hill New York Chicago San

More information

Last Lecture. Talked about combinational logic always statements. e.g., module ex2(input logic a, b, c, output logic f); logic t; // internal signal

Last Lecture. Talked about combinational logic always statements. e.g., module ex2(input logic a, b, c, output logic f); logic t; // internal signal Last Lecture Talked about combinational logic always statements. e.g., module ex2(input logic a, b, c, output logic f); logic t; // internal signal always_comb t = a & b; f = t c; should use = (called

More information

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

Recommended Design Techniques for ECE241 Project Franjo Plavec Department of Electrical and Computer Engineering University of Toronto Recommed Design Techniques for ECE241 Project Franjo Plavec Department of Electrical and Computer Engineering University of Toronto DISCLAIMER: The information contained in this document does NOT contain

More information

ECEN 468 Advanced Logic Design

ECEN 468 Advanced Logic Design ECEN 468 Advanced Logic Design Lecture 28: Synthesis of Language Constructs Synthesis of Nets v An explicitly declared net may be eliminated in synthesis v Primary input and output (ports) are always retained

More information

Using SystemVerilog Assertions for Functional Coverage

Using SystemVerilog Assertions for Functional Coverage Using SystemVerilog Assertions for Functional Coverage Mark Litterick (Verification Consultant) mark.litterick@verilab.com 2 Outline Demonstrate capability of SVA for implementing a complex functional

More information

University of Toronto Faculty of Applied Science and Engineering Edward S. Rogers Sr. Department of Electrical and Computer Engineering

University of Toronto Faculty of Applied Science and Engineering Edward S. Rogers Sr. Department of Electrical and Computer Engineering University of Toronto Faculty of Applied Science and Engineering Edward S. Rogers Sr. Department of Electrical and Computer Engineering Final Examination ECE 241F - Digital Systems Examiners: S. Brown,

More information

SystemVerilog Assertion Linting: Closing Potentially Critical Verification Holes

SystemVerilog Assertion Linting: Closing Potentially Critical Verification Holes SystemVerilog Assertion Linting: Closing Potentially Critical Verification Holes Laurence S. Bisht, Dmitry Korchemny, Erik Seligman Intel Corporation {laurence.s.bisht, dmitry.korchemny, erik.seligman}@intel.com

More information

SystemVerilog Data Types

SystemVerilog Data Types SystemVerilog Data Types This tutorial describes the new data types that Systemverilog introduces. Most of these are synthesisable, and should make RTL descriptions easier to write and understand. Integer

More information

SVA Alternative for Complex Assertions

SVA Alternative for Complex Assertions SVA Alternative for Complex Assertions by Ben Cohen, VHDL Cohen Publishing Assertion-based verification has been an integral part of modern-day design verification. Concurrent SVA is a powerful assertion

More information

Testbenches for Sequential Circuits... also, Components

Testbenches for Sequential Circuits... also, Components ! Testbenches for Sequential Circuits... also, Components Lecture L04 18-545 Advanced Digital Design ECE Department Many elements Don Thomas, 2014, used with permission with credit to G. Larson State Transition

More information

There are two places where Boolean boolean expressions occur in concurrent properties assertions:

There are two places where Boolean boolean expressions occur in concurrent properties assertions: Motivation It is often the case that all the concurrent assertions that are placed in a design unit share the same clock and disable iff condition. While it is possible to define a default clocking for

More information

Verilog Coding Guideline

Verilog Coding Guideline Verilog Coding Guideline Digital Circuit Lab TA: Po-Chen Wu Outline Introduction to Verilog HDL Verilog Syntax Combinational and Sequential Logics Module Hierarchy Write Your Design Finite State Machine

More information

Automated Debugging of SystemVerilog Assertions

Automated Debugging of SystemVerilog Assertions Automated Debugging of SystemVerilog Assertions Brian Keng 1, Sean Safarpour 2, Andreas Veneris 1,3 Abstract In the last decade, functional verification has become a major bottleneck in the design flow.

More information

Featuring: SystemVerilog Assertions: WISHBONE Case Study. ...see page 5. verification

Featuring: SystemVerilog Assertions: WISHBONE Case Study. ...see page 5. verification Featuring: SystemVerilog Assertions: WISHBONE Case Study...see page 5 I encourage you to take a moment to help us make Verification Horizons more informative and enjoyable for you. In the meantime, we

More information

Verilog for Synthesis Ing. Pullini Antonio

Verilog for Synthesis Ing. Pullini Antonio Verilog for Synthesis Ing. Pullini Antonio antonio.pullini@epfl.ch Outline Introduction to Verilog HDL Describing combinational logic Inference of basic combinational blocks Describing sequential circuits

More information

The Application of Formal Technology on Fixed-Point Arithmetic SystemC Designs

The Application of Formal Technology on Fixed-Point Arithmetic SystemC Designs The Application of Formal Technology on Fixed-Point Arithmetic SystemC Designs Sven Beyer, OneSpin Solutions, Munich, Germany, sven.beyer@onespin-solutions.com Dominik Straßer, OneSpin Solutions, Munich,

More information

Testbench and Simulation

Testbench and Simulation Testbench and Simulation Graphics: Alexandra Nolte, Gesine Marwedel, 2003 Focus of this Class Understand the simulator Event Based Simulation Testbenches and verification Approaches and metodologies Examples:

More information

Sequential Circuits as Modules with Interfaces. Arvind Computer Science & Artificial Intelligence Lab M.I.T.

Sequential Circuits as Modules with Interfaces. Arvind Computer Science & Artificial Intelligence Lab M.I.T. Sequential Circuits as Modules with Interfaces Arvind Computer Science & Artificial Intelligence Lab M.I.T. L07-1 Shortcomings of the current hardware design practice Complex hardware is viewed as a bunch

More information

Synchronous Design. Synchronous design means that all registers are clocked by the same signal. Synchronous design is always desirable in

Synchronous Design. Synchronous design means that all registers are clocked by the same signal. Synchronous design is always desirable in Synchronous Design Synchronous design means that all registers are clocked by the same signal. Synchronous design is always desirable in digital circuits. Not all events are synchronous. 6 Latch Instability

More information

Artifacts of Custom Checkers in Questa Power Aware Dynamic Simulation

Artifacts of Custom Checkers in Questa Power Aware Dynamic Simulation Artifacts of Custom Checkers in Questa Power Aware Dynamic Simulation by Progyna Khondkar, Mentor Graphics INTRODUCTION The Questa Power Aware (PA) dynamic simulator (PA-SIM) provides a wide range of automated

More information

DesignCon AMBA Compliance Checking Using Static Functional Verification

DesignCon AMBA Compliance Checking Using Static Functional Verification DesignCon 2005 AMBA Compliance Checking Using Static Functional Verification Adrian J. Isles, Averant, Inc. aisles@averant.com Jeremy Sonander, Saros Technology UK jeremy@saros.co.uk Mike Turpin, ARM UK

More information

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

Techniques for Digital Systems Lab. Verilog HDL. Tajana Simunic Rosing. Source: Eric Crabill, Xilinx CSE140L: Components and Design Techniques for Digital Systems Lab Verilog HDL Tajana Simunic Rosing Source: Eric Crabill, Xilinx 1 More complex behavioral model module life (n0, n1, n2, n3, n4, n5, n6,

More information

EECS150 - Digital Design Lecture 20 - Finite State Machines Revisited

EECS150 - Digital Design Lecture 20 - Finite State Machines Revisited EECS150 - Digital Design Lecture 20 - Finite State Machines Revisited April 2, 2009 John Wawrzynek Spring 2009 EECS150 - Lec20-fsm Page 1 Finite State Machines (FSMs) FSM circuits are a type of sequential

More information

CSE140L: Components and Design Techniques for Digital Systems Lab

CSE140L: Components and Design Techniques for Digital Systems Lab CSE140L: Components and Design Techniques for Digital Systems Lab Tajana Simunic Rosing Source: Vahid, Katz, Culler 1 Announcements & Outline Lab 4 due; demo signup times listed on the cse140l site Check

More information

VME64M VME64 MASTER CONTROLLER. Version 1.1

VME64M VME64 MASTER CONTROLLER. Version 1.1 Datasheet VME64M VME64 MASTER CONTROLLER Version 1.1 INICORE INC. 5600 Mowry School Road Suite 180 Newark, CA 94560 t: 510 445 1529 f: 510 656 0995 e: info@inicore.com www.inicore.com C O P Y R I G H T

More information

The University of Alabama in Huntsville ECE Department CPE Midterm Exam February 26, 2003

The University of Alabama in Huntsville ECE Department CPE Midterm Exam February 26, 2003 The University of Alabama in Huntsville ECE Department CPE 526 01 Midterm Exam February 26, 2003 1. (20 points) Describe the following logic expression (A B D) + (A B C) + (B C ) with a structural VHDL

More information

Leveraging Formal Verification Throughout the Entire Design Cycle

Leveraging Formal Verification Throughout the Entire Design Cycle Leveraging Formal Verification Throughout the Entire Design Cycle Verification Futures Page 1 2012, Jasper Design Automation Objectives for This Presentation Highlight several areas where formal verification

More information

Synthesis of Combinational and Sequential Circuits with Verilog

Synthesis of Combinational and Sequential Circuits with Verilog Synthesis of Combinational and Sequential Circuits with Verilog What is Verilog? Hardware description language: Are used to describe digital system in text form Used for modeling, simulation, design Two

More information

JasperGold. Agenda. High-Level Formal Verification

JasperGold. Agenda. High-Level Formal Verification JasperGold High-Level Formal Verification Vigyan Singhal Harry D. Foster 1 Agenda Jasper introduction Model checking Block-level verification - High-level requirements - Formal testplan - Coverage Formal

More information

CSE140L: Components and Design

CSE140L: Components and Design CSE140L: Components and Design Techniques for Digital Systems Lab Tajana Simunic Rosing Source: Vahid, Katz, Culler 1 Grade distribution: 70% Labs 35% Lab 4 30% Lab 3 20% Lab 2 15% Lab 1 30% Final exam

More information

Acceleration of SAT-based Iterative Property Checking

Acceleration of SAT-based Iterative Property Checking Acceleration of SAT-based Iterative Property Checking Daniel Große Rolf Drechsler Institute of Computer Science University of Bremen 28359 Bremen, Germany {grosse, drechsle}@informatik.uni-bremen.de Abstract

More information

CprE 583 Reconfigurable Computing

CprE 583 Reconfigurable Computing Recap Moore FSM Example CprE / ComS 583 Reconfigurable Computing Moore FSM that recognizes sequence 10 0 1 0 1 S0 / 0 S1 / 0 1 S2 / 1 Prof. Joseph Zambreno Department of Electrical and Computer Engineering

More information

Sequential Logic Design

Sequential Logic Design Sequential Logic Design Design of Digital Circuits 2017 Srdjan Capkun Onur Mutlu (Guest starring: Frank K. Gürkaynak and Aanjhan Ranganathan) http://www.syssec.ethz.ch/education/digitaltechnik_17 Adapted

More information

ECE 545 Lecture 12. Datapath vs. Controller. Structure of a Typical Digital System Data Inputs. Required reading. Design of Controllers

ECE 545 Lecture 12. Datapath vs. Controller. Structure of a Typical Digital System Data Inputs. Required reading. Design of Controllers ECE 545 Lecture 12 Design of Controllers Finite State Machines and Algorithmic State Machine (ASM) Charts Required reading P. Chu, using VHDL Chapter 1, Finite State Machine: Principle & Practice Chapter

More information

Tool demonstration: Spin

Tool demonstration: Spin Tool demonstration: Spin 1 Spin Spin is a model checker which implements the LTL model-checking procedure described previously (and much more besides). Developed by Gerard Holzmann of Bell Labs Has won

More information

Subject: Scheduling Region Questions and Problems of new SystemVerilog commands

Subject: Scheduling Region Questions and Problems of new SystemVerilog commands Subject: Scheduling Region Questions and Problems of new SystemVerilog commands I have read and re-read sections 14-17 of the SystemVerilog 3.1 Standard multiple times and am still confused about exactly

More information

Design and Simulation of Router Using WWF Arbiter and Crossbar

Design and Simulation of Router Using WWF Arbiter and Crossbar Design and Simulation of Router Using WWF Arbiter and Crossbar M.Saravana Kumar, K.Rajasekar Electronics and Communication Engineering PSG College of Technology, Coimbatore, India Abstract - Packet scheduling

More information

Introduction to Verilog HDL. Verilog 1

Introduction to Verilog HDL. Verilog 1 Introduction to HDL Hardware Description Language (HDL) High-Level Programming Language Special constructs to model microelectronic circuits Describe the operation of a circuit at various levels of abstraction

More information

Lecture 25: Busses. A Typical Computer Organization

Lecture 25: Busses. A Typical Computer Organization S 09 L25-1 18-447 Lecture 25: Busses James C. Hoe Dept of ECE, CMU April 27, 2009 Announcements: Project 4 due this week (no late check off) HW 4 due today Handouts: Practice Final Solutions A Typical

More information

Comprehensive Statistical Analysis of Min & Max of over 100 parameters at user specific addresses

Comprehensive Statistical Analysis of Min & Max of over 100 parameters at user specific addresses PMC PCI-X v1108 Analyzer & Exerciser 66 MHz, 64 Bit Analyzer/Exerciser Comprehensive Statistical Analysis of Min & Max of over 100 parameters at user specific addresses 533 MBytes/Sec real-time continuous

More information

Verilog for High Performance

Verilog for High Performance Verilog for High Performance Course Description This course provides all necessary theoretical and practical know-how to write synthesizable HDL code through Verilog standard language. The course goes

More information

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog ECE 2300 Digital Logic & Computer Organization Spring 2018 More Sequential Logic Verilog Lecture 7: 1 Announcements HW3 will be posted tonight Prelim 1 Thursday March 1, in class Coverage: Lectures 1~7

More information

Synchronous Design. Latch Instability. RS Latch. RS Latch Timing. Signal Arrival Times. Simultaneous Switching

Synchronous Design. Latch Instability. RS Latch. RS Latch Timing. Signal Arrival Times. Simultaneous Switching Synchronous Design Synchronous design means that all registers are clocked by the same signal. Synchronous design is always desirable in digital circuits. Not all events are synchronous. Latch Instability

More information

Network Protocol Design and Evaluation

Network Protocol Design and Evaluation Network Protocol Design and Evaluation 05 - Validation, Part I Stefan Rührup Summer 2009 Overview In the last lectures: Specification of protocols and data/message formats In this chapter: Building a validation

More information

VERIFICATION OF AHB PROTOCOL USING SYSTEM VERILOG ASSERTIONS

VERIFICATION OF AHB PROTOCOL USING SYSTEM VERILOG ASSERTIONS VERIFICATION OF AHB PROTOCOL USING SYSTEM VERILOG ASSERTIONS Nikhil B. Gaikwad 1, Vijay N. Patil 2 1 P.G. Student, Electronics & Telecommunication Department, Pimpri Chinchwad College of Engineering, Pune,

More information

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

SystemVerilog Assertions for Clock-Domain-Crossing Data Paths. Don Mills Microchip Technology Inc. SystemVerilog Assertions for Clock-Domain-Crossing Data Paths Don Mills Microchip Technology Inc. Outline Brief Review of CDC Concepts and Issues Basics of SystemVerilog Assertions Modeling Techniques

More information

Design Creation & Synthesis Division Avoid FPGA Project Delays by Adopting Advanced Design Methodologies

Design Creation & Synthesis Division Avoid FPGA Project Delays by Adopting Advanced Design Methodologies Design Creation & Synthesis Division Avoid FPGA Project Delays by Adopting Advanced Design Methodologies Alex Vals, Technical Marketing Engineer Mentor Graphics Corporation June 2008 Introduction Over

More information

Timing and Verification

Timing and Verification Timing and Verification Design of Digital Circuits 2017 Srdjan Capkun Onur Mutlu (Guest starring: Frank K. Gürkaynak and Aanjhan Ranganathan) http://www.syssec.ethz.ch/education/digitaltechnik_17 Adapted

More information

Modeling Synchronous Logic Circuits. Debdeep Mukhopadhyay IIT Madras

Modeling Synchronous Logic Circuits. Debdeep Mukhopadhyay IIT Madras Modeling Synchronous Logic Circuits Debdeep Mukhopadhyay IIT Madras Basic Sequential Circuits A combinational circuit produces output solely depending on the current input. But a sequential circuit remembers

More information

Small Router Design Using. Bluespec SystemVerilog

Small Router Design Using. Bluespec SystemVerilog Small Router Design Using Bluespec SystemVerilog Daian Sova M. Filip Master AAC SBT Router Design 1 1. SBT Router Block Description The SBT Router is a simple router which has one input port (8 bits wide)

More information

Unifying Design and Verification

Unifying Design and Verification Unifying Design and Verification SystemVerilog Overview Agenda SystemVerilog Introduction Synopsys SystemVerilog Solution SystemVerilog Features and Successful Stories 2006 Synopsys, Inc. (2) Agenda SystemVerilog

More information

Formal Verification of Synchronizers in Multi-Clock Domain SoCs. Tsachy Kapschitz and Ran Ginosar Technion, Israel

Formal Verification of Synchronizers in Multi-Clock Domain SoCs. Tsachy Kapschitz and Ran Ginosar Technion, Israel Formal Verification of Synchronizers in Multi-Clock Domain SoCs Tsachy Kapschitz and Ran Ginosar Technion, Israel Outline The problem Structural verification 1CD control functional verification MCD control

More information

Test Scenarios and Coverage

Test Scenarios and Coverage Test Scenarios and Coverage Testing & Verification Dept. of Computer Science & Engg,, IIT Kharagpur Pallab Dasgupta Professor, Dept. of Computer Science & Engg., Professor-in in-charge, AVLSI Design Lab,

More information

Logic Circuits II ECE 2411 Thursday 4:45pm-7:20pm. Lecture 3

Logic Circuits II ECE 2411 Thursday 4:45pm-7:20pm. Lecture 3 Logic Circuits II ECE 2411 Thursday 4:45pm-7:20pm Lecture 3 Lecture 3 Topics Covered: Chapter 4 Discuss Sequential logic Verilog Coding Introduce Sequential coding Further review of Combinational Verilog

More information

Assertions & Design-by-Contract using JML Erik Poll University of Nijmegen

Assertions & Design-by-Contract using JML Erik Poll University of Nijmegen Assertions & Design-by-Contract using JML Erik Poll University of Nijmegen Erik Poll - JML p.1/39 Overview Assertions Design-by-Contract for Java using JML Contracts and Inheritance Tools for JML Demo

More information

Optimizing the PCI Interface Configuration for the RC32336

Optimizing the PCI Interface Configuration for the RC32336 Optimizing the PCI Interface Configuration for the RC32336 Application Note AN-436 Revision History June 10, 2003: Initial publication. By Rakesh Bhatia Background The RC32336 device is a member of the

More information