Can Assertions Save Military PLD Designs? MAPLD 2009 Presentation Session D: Design and Verification Tools and Methodologies Presented by: Jaroslaw "Jerry"

Slides:



Advertisements
Similar presentations
The Design Process, RTL, Netlists, and Verilog
Advertisements

The need for AMS assertions Verify the analog/digital interfaces at block and SoC levels –Check properties involving voltages and currents –Check complex.
Verilog Overview. University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
ECE Synthesis & Verification - L271 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Model Checking basics.
Verification SV3.1a Assumptions Surrendra Dudani Nov. 14, 2003 Synopsys, Inc.
Give qualifications of instructors: DAP
2/9/20031 ECE 551: Digital System Design & Synthesis Lecture Set 4 4.1: Verilog – Procedural Assignments &Scheduling Semantics 4.2: Verilog – More Behavioral.
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
 2012 Bert Molenkamp, Jan Kuper, University of Twente, PSL Introduction to Assertion Based Verification with PSL (VHDL flavor) Bert Molenkamp Jan Kuper.
Presenter: PCLee – This paper outlines the MBAC tool for the generation of assertion checkers in hardware. We begin with a high-level presentation.
Programming with Alice Computing Institute for K-12 Teachers Summer 2011 Workshop.
Leveraging Assertion Based Verification by using Magellan Michal Cayzer.
On-the-fly Synthesis of Multi-Clock SVA Jiang Long Andrew Seawright Paparao Kavalipati IWLS’ 2008.
Introductory Comments Regarding Hardware Description Languages.
1 Assertion Based Verification 2 The Design and Verification Gap  The number of transistors on a chip increases approximately 58% per year, according.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
Assertions in OpenVera Assertions check for the occurrence of sequences during simulation Sequence is an ordered (maybe timed) series of boolean events.
Silicon Programming--Intro. to HDLs1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities.
Presenter: PCLee Design Automation Conference, ASP-DAC '07. Asia and South Pacific.
CS 330 Programming Languages 09 / 16 / 2008 Instructor: Michael Eckmann.
Prof. John Nestor ECE Department Lafayette College Easton, Pennsylvania ECE VLSI System Design Lecture 4 - Advanced Verilog.
EE694v-Verification-Lect5-1- Lecture 5 - Verification Tools Automation improves the efficiency and reliability of the verification process Some tools,
Chapter 1 Program Design
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
CORE 1: PROJECT MANAGEMENT Understanding the Problem.
Introducing Java.
JS Arrays, Functions, Events Week 5 INFM 603. Agenda Arrays Functions Event-Driven Programming.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Software Engineering 2003 Jyrki Nummenmaa 1 REQUIREMENT SPECIFICATION Today: Requirements Specification Requirements tell us what the system should.
Roza Ghamari Bogazici University April Outline Introduction SystemC Language Formal Verification Techniques for SystemC Design and Verification.
Object Oriented Analysis and Design Introduction.
SE-02 SOFTWARE ENGINEERING LECTURE 3 Today: Requirements Analysis Requirements tell us what the system should do - not how it should do it. Requirements.
Chap. 1 Overview of Digital Design with Verilog. 2 Overview of Digital Design with Verilog HDL Evolution of computer aided digital circuit design Emergence.
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.
Introduction to Arrays. definitions and things to consider… This presentation is designed to give a simple demonstration of array and object visualizations.
Some Course Info Jean-Michel Chabloz. Main idea This is a course on writing efficient testbenches Very lab-centric course: –You are supposed to learn.
Software Engineering – University of Tampere, CS DepartmentJyrki Nummenmaa REQUIREMENT SPECIFICATION Today: Requirements Specification.
Assertion Based Testing. Testing and verification Does the design function according to the specifications? Example.
ECE 551 Digital System Design & Synthesis Fall 2011 Midterm Exam Overview.
Specifying circuit properties in PSL. Formal methods Mathematical and logical methods used in system development Aim to increase confidence in riktighet.
Property Specification Language PSL. Hardware Verification Example.
1 An Update on Verilog Ξ – Computer Architecture Lab 28/06/2005 Kypros Constantinides.
Forms and Server Side Includes. What are Forms? Forms are used to get user input We’ve all used them before. For example, ever had to sign up for courses.
16 August Verilog++ Assertion Extension Requirements Proposal.
© 2006 Synopsys, Inc. (1) CONFIDENTIAL Simulation and Formal Verification: What is the Synergy? Carl Pixley Disclaimer: These opinions are mine alone and.
Introduction to State Machine
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
1 Version /05/2004 © 2004 Robert Oshana Requirements Engineering Use cases.
Slide 1 2. Verilog Elements. Slide 2 Why (V)HDL? (VHDL, Verilog etc.), Karen Parnell, Nick Mehta, “Programmable Logic Design Quick Start Handbook”, Xilinx.
Assertions Jean-Michel Chabloz. Assertions basic Idea We assert that a certain “thing” should be true. –If it is true, fine –If it is false, then we get.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
CSE Winter 2008 Introduction to Program Verification January 31 proofs through simplification.
ECSE Software Engineering 1I HO 4 © HY 2012 Lecture 4 Formal Methods A Library System Specification (Continued) From Specification to Design.
3/4/20031 ECE 551: Digital System Design * & Synthesis Lecture Set 3 3.1: Verilog - User-Defined Primitives (UDPs) (In separate file) 3.2: Verilog – Operators,
1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities and architectural bodies behavioral,
Verification of FT System Using Simulation Petr Grillinger.
Verification & Validation By: Amir Masoud Gharehbaghi
Jasper Design Automation© PSL Property Specification Language Jasper Design Automation.
ELEE 4303 Digital II Introduction to Verilog. ELEE 4303 Digital II Learning Objectives Get familiar with background of HDLs Basic concepts of Verilog.
CSCI-365 Computer Organization Lecture Note: Some slides and/or pictures in the following are adapted from: Computer Organization and Design, Patterson.
04/26/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Introduction to VHDL 12.2: VHDL versus Verilog (Separate File)
Verification Technologies IBM Haifa Labs Formal Specification Using Sugar 2.0 Cindy Eisner September 2002.
2/3/2006EECS150 Lab Lecture #31 Implementation of FSMs EECS150 Spring 2006 – Lab Lecture #3 Guang Yang Greg Gibeling.
Introduction to System Verilog Assertions
Assertions An assertion is a statement about the design’s intended behavior Assertions can be written in a hardware description language (HDL) Assertions.
Hardware Description Languages
332:437 Lecture 8 Verilog and Finite State Machines
SystemVerilog and Verification
332:437 Lecture 8 Verilog and Finite State Machines
Presentation transcript:

Can Assertions Save Military PLD Designs? MAPLD 2009 Presentation Session D: Design and Verification Tools and Methodologies Presented by: Jaroslaw "Jerry" Kaczynski Research Engineer ALDEC, Inc Corporate Cir Henderson, NV  

MAPLD 2009 – Session D Introduction In this presentation we are trying to convince designers that Property-Based Design (PBD) and closely related Assertion-Based Verification (ABV) are necessity in Military PLD Design Flow. The most important arguments for assertions use are:  Properties and Assertions are relatively simple ideas (once you learn the basics).  Although relatively new, they are governed by IEEE standards (PSL, SystemVerilog, VHDL).  Properties and Assertions can be used in simulation (better simulation=safer design).  Properties and Assertions create ‘live documentation’ (better documentation=easier management). 2

MAPLD 2009 – Session D Key Ideas 3 Property Based DesignAssertion Based Verification Property Based Design extends the term Assertion Based Verification and deals with several key ideas: sequences  properties  assertions/covers property The very basic idea of PBD/ABV is property: formalized description of certain behavior of your design e.g.“broken window triggers alarm”, “security responds to alarm in 30 seconds”. Properties can be used by verification tools in many ways:  assert bad things do not happen  assert verifies that bad things do not happen. e.g. “assert [that] broken window always triggers alarm”.  cover good things happen  cover verifies that good things happen. e.g. “cover response to triggered alarm in 30 seconds”.

MAPLD 2009 – Session D The World of Properties design propertiesplain English Typical digital design specification is full of design properties expressed in plain English. HDL hardware implementation Designer rewrites properties in HDL with correct hardware implementation in mind. Properties, assertions covers pure behaviors Properties, assertions and covers represent pure behaviors (desired or undesired) of the design: documentation  They can be very efficient documentation of the design. reference  They work as a reference during design verification. verification tools  They are accepted by variety of functional and formal verification tools. 4

MAPLD 2009 – Session D The Logic of Properties 5 HOMEWORK HOMEWORK: to learn more, google “linear temporal logic” or “LTL”… temporal logic Formal properties use principles of temporal logic: Boolean logic with added time dimension. discrete time sequences of states If we use discrete time, then properties represent sequences of states of the design. NOTE:all popular PBD/ABV solutions operate on sampled values of objects in the design. temporal operators To express relationships in time (existence, succession, etc.) properties use temporal operators: next, finally, globally, until, etc.

MAPLD 2009 – Session D Building Blocks of Properties Boolean expressions Boolean expressions as we know them from HDLs are the part of properties, but rather a simple part. Sequences temporal building block Sequences are generally recognized as the basic temporal building block of properties: they represent succession of design states seen at discrete time points. Typical sequence represents one simple execution path in the design. You can:  fuse  fuse sequences (one sequence ends at the same moment the other begins),  concatenate  concatenate sequences (one sequence ends and the other starts at the next time point), implies  say that one sequence implies another sequence,  andor  and or or sequences, within  check if one sequence is contained within another sequence, repeated  check if sequence repeated given number of times (consecutively or not). 6

MAPLD 2009 – Session D Using Properties 7 O THER D IRECTIVES ASSERTCOVER Design Specification D ESIGN P ROPERTY F ORMAL P ROPERTY Once design property was formalized, all tools can use it in one of two directives:  assert  assert – raises alarm when property does not hold,  cover  cover – confirms that property was successfully tested. Some tools (mainly formal verification, but also some simulators) allow more directives, e.g. to control design stimulus or restrict environmental conditions.

MAPLD 2009 – Session D Languages There are two languages with practical applications of expressing properties, assertions and covers:  PSLPSL  PSL (Property Specification Language):  standard IEEE Std 1850™-2005,  comes in VHDL, Verilog, SystemVerilog and SystemC flavors,  its Simple Subset is a part of the recent version of VHDL standard (IEEE Std 1076™-2008).  SVASVA  SVA (SystemVerilog Assertion subset):  an assertion-related subset of the SystemVerilog language (initially Accellera project, then standard IEEE Std 1800™-2005),  based on Superlog and OpenVera donations,  its properties/assertions features also borrow from PSL. 8 ALL property languages are IEEE standards!

MAPLD 2009 – Session D Which Language? VHDL PSL VHDL designers can use both SVA and PSL, but they will feel better with PSL:  PSL can be placed directly in VHDL code (live documentation) but SVA cannot,  PSL is the part of the latest VHDL standard. Verilog SVA Verilog designers can use both PSL and SVA, but they will feel better with SVA:  SVA placed directly in Verilog code can do more than PSL placed directly in Verilog code,  SystemVerilog and Verilog are in the process of merging into one standard. 9 Good News:PSL and SVA properties look almost the same…

MAPLD 2009 – Session D Asynchronous reset handlingClocking (sampling) event Properties in Assertions “ACK should be activated 1 to 3 cycles after REQ provided that RESET is not active” Let’s approach typical design property “ACK should be activated 1 to 3 cycles after REQ provided that RESET is not active” using PSL ( shaded box ) and SVA ( framed box ). Note the assertion directive that follows property definition. 10 property req_ack is always( ( {rose(REQ)} |-> {(ACK='0')[*1 to 3]; rose(ACK)} ) async_abort RESET='1' assert (req_ack) report "No timely ACK after REQ!"; property CLK) disable iff (RESET) $rose(REQ) |-> (ACK==0)[*1:3] ##1 $rose(ACK); endproperty assert property(req_ack) else $error("No timely ACK after REQ!"); PSL SVA

MAPLD 2009 – Session D Sampling and To specify sampling/clocking event, at the end of sequence in PSL or at the beginning in SVA – all typical VHDL/Verilog clock detectors are accepted. If all assertion elements in your design use the same clocking event, you can declare default clock. Both PSL and SVA provide mechanism for abandoning property evaluation (e.g. when reset happens): async_abortsync_abort  PSL lets you add async_abort or sync_abort operator and reset condition at the end of property: always (({rose(A)} |=> rose(B)) async_abort disable iff ()  SVA lets you add disable iff (condition) phrase at the beginning of the CLK) disable iff (C) $rose(A) |=> $rose(B); 11

MAPLD 2009 – Session D Rationale for Implication Overlapping ( sequence |-> property ) and non-overlapping ( sequence |=> property ) implication operators are common to PSL and SVA. Consequent of overlapping implication starts at the time point when antecedent ends. Consequent of non-overlapping implication starts one cycle after the end of antecedent. 12 AC AC Properties that contain only sequence of value checks can easily misbehave during verification because their evaluation in attempted in every verification cycle. implication The use of implication with trigger event specified as antecedent solves this little problem.

MAPLD 2009 – Session D Some ‘Sequence’ Property Facts The antecedent of our implication (slide 10) is a simple edge check, but consequent is an example of multi-cycle sequence. If you glue together several states or sub-sequences to form complex sequence, here are your options: fusion zero cycle delay  To make elements stick together at the same clock use fusion ( : ) in PSL or zero cycle delay ( ##0 ) in SVA. concatenation one cycle delay  To introduce one cycle break between elements use concatenation ( ; ) in PSL or one cycle delay ( ##1 ) in SVA. Sometimes certain condition should last longer than one cycle: consecutive repetition operator  Use consecutive repetition operator ( [*m to n] ) to specify how long the sequence that precedes it should hold. 13 Properties are simple – we have just seen features sufficient to write 80% of real-life assertions…

MAPLD 2009 – Session D Readability Please note similarities between PSL and OVA: only order of reset and clocking expressions is different. It seems that anybody with basic knowledge of Math, English and maybe some programming languages should be able to understand what design behavior they represent. 14 Properties are perfect for documenting designs! always( ( {rose(REQ)} |-> {(ACK='0')[*1 to 3]; rose(ACK)} ) async_abort CLK) disable iff (RESET) $rose(REQ) |-> (ACK==0)[*1:3] ##1 $rose(ACK); PSL SVA Let’s have one more look at the core of properties from slide 10:

MAPLD 2009 – Session D Where to Place Assertions bind 1.All tools let you place properties/assertions in separate units and bind them to your regular RTL code (very convenient for Verification Engineers). special comments 2.Good simulators let you place PSL properties/assertions directly in the RTL code, hidden in special comments: --psl property p1 is… or //psl property p2=… (very good for the Hardware Designer). directly 3.Of course SVA can be placed directly in the Verilog code. directly 4.Once VHDL 2008 is implemented, users will be able to place PSL directly in the VHDL code and 2 are perfect if you think that assertions will harm your synthesis flow. 3 and 4 would require the use of synthesis pragmas around assertions.

MAPLD 2009 – Session D Assertions and Synthesis Tools Most popular, regular versions of synthesis tools cannot handle assertions yet. (Exceptions to this rule include some high-end tools like Synplicity’s Identify Pro + Synplify Premiere combo.) Some methods of placing assertions in the design mentioned in the previous slide should make managing assertions in mixed simulation/synthesis flow pretty smooth. Open Verification Library OVL Libraries of ready-to-use property checkers written in VHDL or Verilog may be a solution here. Example: Open Verification Library (OVL) maintained by Accellera started introducing synthesizable versions of some checkers in most recent releases of the library. 16 Properties should not disrupt traditional design flow!

MAPLD 2009 – Session D Verification Directives As we have mentioned before, properties represent design behavior, but cannot do anything by themselves. Appropriate directives/statements tell the verification tool how to handle given property. assertcover We have already seen assert and cover directives, supported by all ABV tools. assume The assume directive tells the tool to constrain testing environment so that the property holds. It should always work in formal tools, but in simulation the effect of assume may be equivalent to the effect of assert. restrictfairness There are some additional directives beyond the scope of this document (e.g. PSL’s restrict or fairness). 17

MAPLD 2009 – Session D Assertions in Military Designs Properties, assertions and covers should find quick and widespread applications in Military and Aerospace Designs:  Their presence provides convenient reference to the intended design behavior (even as the HDL code is changing).  Assertions and covers create additional verification layer, increasing reliability and safety of designs.  Properties used in assertions and covers are excellent, live documentation of the design (enhancing manageability).  Assertions, covers and properties are governed by IEEE standards. 18 Those qualities of PBD/ABV are as close as it gets to ”Lifesavers of Military PLD Designs” …

MAPLD 2009 – Session D Summary PropertiesAssertionsCoverage they will Properties, Assertions and Coverage are unavoidable: even if your designs are not using them now, they will – sooner or later. Don’t be afraid of assertions and coverage. Don’t worry which language to choose. Check what your tool supports. Get yourself a good book or decent training. You should be ready to go in one day! Attaining expert level will take a little bit longer… 19

MAPLD 2009 – Session D Resources Temporal Logic in software verification: PLS/Sugar resources: PSL 1.1 free download: SystemVerilog Assertions Introduction (Project Veripage): OVL Users Site (documents, downloads, etc.): Documents and software at ALDEC website: