16 August Verilog++ Assertion Extension Requirements Proposal.

Slides:



Advertisements
Similar presentations
Embedded System, A Brief Introduction
Advertisements

The need for AMS assertions Verify the analog/digital interfaces at block and SoC levels –Check properties involving voltages and currents –Check complex.
Semantics Static semantics Dynamic semantics attribute grammars
Combinational Logic.
ECE Synthesis & Verification - L271 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Model Checking basics.
CS 290C: Formal Models for Web Software Lecture 4: Implementing and Verifying Statecharts Specifications Using the Spin Model Checker Instructor: Tevfik.
IT Requirements Capture Process. Motivation for this seminar Discovering system requirements is hard. Formally testing use case conformance is hard. We.
Software system modeling
An Introduction to Java Programming and Object- Oriented Application Development Chapter 8 Exceptions and Assertions.
LASER From Natural Language Requirements to Rigorous Property Specifications Lori A. Clarke Work done in collaboration with Rachel L. Smith, George S.
Presenter: PCLee – This paper outlines the MBAC tool for the generation of assertion checkers in hardware. We begin with a high-level presentation.
ISBN Chapter 3 Describing Syntax and Semantics.
CS 355 – Programming Languages
OASIS Reference Model for Service Oriented Architecture 1.0
Design For Verification Synopsys Inc, April 2003.
1 Assertion Based Verification 2 The Design and Verification Gap  The number of transistors on a chip increases approximately 58% per year, according.
CS 330 Programming Languages 09 / 18 / 2007 Instructor: Michael Eckmann.
ELEN 468 Lecture 161 ELEN 468 Advanced Logic Design Lecture 16 Synthesis of Language Construct II.
Joshua GarrettUniversity of California, Berkeley SpecCharts: A VHDL Front-End for Embedded Systems.
Chapter 1 Principles of Programming and Software Engineering.
CS 330 Programming Languages 09 / 16 / 2008 Instructor: Michael Eckmann.
Describing Syntax and Semantics
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Chapter 13 & 14 Software Testing Strategies and Techniques
Domain-Specific Software Engineering Alex Adamec.
Advances in Language Design
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
Programming Languages – Coding schemes used to write both systems and application software A programming language is an abstraction mechanism. It enables.
Structural Coverage Verilog code is available to help generate tests o Code can be analyzed statically and/or simulated Easier to detect “additive” design.
Timed UML State Machines Ognyana Hristova Tutor: Priv.-Doz. Dr. Thomas Noll June, 2007.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.1.
Using Mathematica for modeling, simulation and property checking of hardware systems Ghiath AL SAMMANE VDS group : Verification & Modeling of Digital systems.
Mathematical Modeling and Formal Specification Languages CIS 376 Bruce R. Maxim UM-Dearborn.
Agenda Introduction Overview of White-box testing Basis path testing
1 Software Testing. 2 Path Testing 3 Structural Testing Also known as glass box, structural, clear box and white box testing. A software testing technique.
Assertion Based Testing. Testing and verification Does the design function according to the specifications? Example.
1 Hybrid-Formal Coverage Convergence Dan Benua Synopsys Verification Group January 18, 2010.
Controlling Execution Programming Right from the Start with Visual Basic.NET 1/e 8.
02/04/2008 A Concrete Syntax for UML 2.1 Action Semantics Using +CAL 13th IEEE International Conference on Engineering of Complex Computer Systems – ICECCS.
Deriving Operational Software Specification from System Goals Xin Bai EEL 5881 Course Fall, 2003.
Software Requirements: A More Rigorous Look 1. Features and Use Cases at a High Level of Abstraction  Helps to better understand the main characteristics.
 Dr. Syed Noman Hasany.  Review of known methodologies  Analysis of software requirements  Real-time software  Software cost, quality, testing and.
ECE-C662 Lecture 2 Prawat Nagvajara
Verification in IEEE Verilog Verisity’s Donation WORK IN PROGRESS.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
© Copyright Alvarion Ltd. SVA Dafna Senderovich Jan 2006.
ELEE 4303 Digital II Introduction to Verilog. ELEE 4303 Digital II Learning Objectives Get familiar with background of HDLs Basic concepts of Verilog.
1 Lecture 15: Chapter 19 Testing Object-Oriented Applications Slide Set to accompany Software Engineering: A Practitioner’s Approach, 7/e by Roger S. Pressman.
Properties as Processes : FORTE slide Properties as Processes: their Specification and Verification Joel Kelso and George Milne School of Computer.
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
Be.wi-ol.de User-friendly ontology design Nikolai Dahlem Universität Oldenburg.
Refining the Use Cases 1. How Use Cases Evolve  Early efforts typically define most of the major use cases.  The refining stages complete the process.
Software Systems Verification and Validation Laboratory Assignment 4 Model checking Assignment date: Lab 4 Delivery date: Lab 4, 5.
55:032 - Intro. to Digital DesignPage 1 VHDL and Processes Defining Sequential Circuit Behavior.
Defensive Programming. Good programming practices that protect you from your own programming mistakes, as well as those of others – Assertions – Parameter.
Prepared by Amira Selim 31 st October 2009 Revised by Dahlia Biazid Requirements Analysis.
 System Requirement Specification and System Planning.
Principles of Programming & Software Engineering
Digital System Design An Introduction to Verilog® HDL
SysML v2 Formalism: Requirements & Benefits
TIM 58 Chapter 8: Class and Method Design
Daniel Amyot and Jun Biao Yan
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Assertions An assertion is a statement about the design’s intended behavior Assertions can be written in a hardware description language (HDL) Assertions.
ECE-C662 Introduction to Behavioral Synthesis Knapp Text Ch
Software system modeling
Computer Science 340 Software Design & Testing
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Defensive Programming
Presentation transcript:

16 August Verilog++ Assertion Extension Requirements Proposal

16 August Verilog Assertion Language Goals:  Expressiveness: The assertion extension should be expressive enough to cover most implementation properties likely to be used by the design engineer.  Usability: The assertion extension must be easy to understand and use by the design engineer.  Formalism: The assertion language must have rigorous formal semantics to ensure correct compilation.

16 August HDL Assertion Language Extension Justification:  HVLs and Property Languages could do it all, however…  A variety of stakeholders necessitate a variety of approaches to specify design properties.  Verification engineers prefer working with HVLs or property languages, yet design engineers prefer working with HDLs.  Verification engineers lack sufficient implementation knowledge to achieve a good / high white-box coverage.  At the same time, design engineer should capture low-level assumptions and and implementation propositions.

16 August Lessons from VHDL: [label] assert event [report message] [severity level] VHDL procedural assertion to trap illegal invariant behavior. Trapping illegal temporal behavior requires creating state machines combined with the assert statement.

16 August Assertion Language Requirements  Assertion Identifier – the extension should enable the user to associating a unique identifier (name) with each assertion.  Assertion Reset – the extension should provide a mechanism for disabling the assertion. (E.g., designating a Verilog expression, when TRUE disables the assertion)  Assertion Sampling Clock – the extension should provide a mechanism for defining an optional sampling clock, whose raising/falling edge defines the correct assertion evaluation time.

16 August Assertion Language Requirements  Assertion Expression – the extension should support the entire synthesizable subset of Verilog++ for the assertion expressions (if not, we should explicitly identify what is not supported).  Assertion Severity Level – the extension should provide a mechanism for defining the assertion violation severity level.  Assertion Violation Action – the extension should enable the user to define an optional action associated with an assertion violation in simulation. (e.g., possibly make a PLI call, call $finish, etc.)

16 August Assertion Language Requirements  Concurrent and Procedural Assertions – the extension should support both concurrent and procedural assertions. Possibly a sampling clock could be associated with a procedural assertion, and a callback would occur on the sampling clock if the assertion initially evaluated TRUE. This would prevent FALSE firings due to simulation transient micro-time event ordering.  Assertion Event Rise or Fall Detection – the extension should provide a mechanism for specifying (detecting) rising or falling events (e.g., the assertion expression). [I’m not passionate with this requirement.]

16 August Assertion Language Requirements  Setting A Variable Upon Assertion Violation – the extension should provide a convenient mechanism for setting a Verilog variable upon assertion violation. [I’m not passionate with this requirement.]  Assertion Options – the extension should provide a mechanism for enabling tool specific options, such as defining an assertion as a constraint to formal tools. Possibly the new Verilog attribute construct could be used for this feature.

16 August Assertion Language Requirements  Assertion RISC Approach – At a minimum, the Assertion Committee should consider two simple construct extensions to the Verilog language. These extensions would consist of (a) a procedural assertion statement, and (b) a simple concurrent assertion statement. With these simple statements more complicated assertion could be constructed—providing expandability as well as assertion tool unification.  Assertion CISC Approach – To simplify the designer’s effort in assertion specification, the committee might consider creating a larger set of assertion types based off real user experiences (e.g., HP, Cisco, Verplex customers, 0-In customers, RealIntent, etc.). Again, the focus is at the HDL implementation level, not a higher levels of assertion specification.

16 August Proceeding Forward  The committee needs to come up with a final set of assertion language extension requirements. My proposal was created to focus the committee’s discussion on requirements  After completing the requirements, the committee should start studying assertion language implementation options (syntax/semantic).