Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin.

Slides:



Advertisements
Similar presentations
CS 267: Automated Verification Lecture 8: Automata Theoretic Model Checking Instructor: Tevfik Bultan.
Advertisements

CMSC 611: Advanced Computer Architecture
Interface Theories With Component Reuse Laurent DoyenEPFL Thomas HenzingerEPFL Barbara JobstmannEPFL Tatjana PetrovEPFL.
Abstraction and Modular Reasoning for the Verification of Software Corina Pasareanu NASA Ames Research Center.
Automated Refinement Checking of Concurrent Systems Sudipta Kundu, Sorin Lerner, Rajesh Gupta Department of Computer Science and Engineering, University.
CSE241 Formal Verification.1Cichy, UCSD ©2003 CSE241A VLSI Digital Circuits Winter 2003 Recitation 6: Formal Verification.
Train DEPOT PROBLEM USING PERMUTATION GRAPHS
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor Formal Methods in Software Engineering1.
PTIDES: Programming Temporally Integrated Distributed Embedded Systems Yang Zhao, EECS, UC Berkeley Edward A. Lee, EECS, UC Berkeley Jie Liu, Microsoft.
STARI: A Case Study in Compositional and Hierarchical Timing Verification Serdar Tasiran, Prof. Robert K. Brayton Department of Electrical Engineering.
Hardware and Petri nets: application to asynchronous circuit design Jordi CortadellaUniversitat Politècnica de Catalunya, Spain Michael KishinevskyIntel.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
1 Software Testing and Quality Assurance Lecture 30 - Introduction to Software Testing.
Why Behavioral Wait statement Signal Timing Examples of Behavioral Descriptions –ROM.
Bridging the gap between Interaction- and Process-Oriented Choreographies Talk by Ivan Lanese Joint work with Claudio Guidi, Fabrizio Montesi and Gianluigi.
Modeling and the simulator of Digital Circuits in Object-Oriented Programming Stefan Senczyna Department of Fundamentals of Technical Systems The Silesian.
7th Biennial Ptolemy Miniconference Berkeley, CA February 13, 2007 PTIDES: A Programming Model for Time- Synchronized Distributed Real-time Systems Yang.
Bridging the Gap Between Theory and Hardware Mario D. Marino, G. Robins, K. Skadron and L. Wang {mdm9uw,robins,skadron,lw2aw}.cs.virginia.edu Department.
1 Software Testing and Quality Assurance Lecture 5 - Software Testing Techniques.
Methods for checking simulation correctness How do you know if your testcase passed or failed?
(1) Modeling Digital Systems © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
Using Mathematica for modeling, simulation and property checking of hardware systems Ghiath AL SAMMANE VDS group : Verification & Modeling of Digital systems.
The Architecture of Secure Systems Jim Alves-Foss Laboratory for Applied Logic Department of Computer Science University of Idaho By, Nagaashwini Katta.
Contract Specification of Pipelined Designs Alexander Kamkin Institute for System Programming of RAS
Model-based Methods for Web Service Verification.
Benjamin Gamble. What is Time?  Can mean many different things to a computer Dynamic Equation Variable System State 2.
1 H ardware D escription L anguages Modeling Digital Systems.
VHDL IE- CSE. What do you understand by VHDL??  VHDL stands for VHSIC (Very High Speed Integrated Circuits) Hardware Description Language.
A Light-Weight C/C++ Based Tool for Hardware Verification Alexander Kamkin CTestBench Institute for System Programming of the Russian.
Software Development. Software Developers Refresher A person or organization that designs software and writes the programs. Software development is the.
Functional Verification Figure 1.1 p 6 Detection of errors in the design Before fab for design errors, after fab for physical errors.
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
Modern VLSI Design 4e: Chapter 8 Copyright  2008 Wayne Wolf Topics Basics of register-transfer design: –data paths and controllers; –ASM charts. Pipelining.
SHDLSTUDIO Presented by : AL SAATI Razann BARDET Marine
Electrical and Computer Engineering University of Cyprus LAB 1: VHDL.
Introduction to VLSI Design – Lec01. Chapter 1 Introduction to VLSI Design Lecture # 11 High Desecration Language- Based Design.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
ICS 216 Embedded Systems Validation and Test Instructor: Professor Ian G. Harris Department of Computer Science University of California Irvine.
1 Predicate Abstraction and Refinement for Verifying Hardware Designs Himanshu Jain Joint work with Daniel Kroening, Natasha Sharygina, Edmund M. Clarke.
Introduction to VHDL Simulation … Synthesis …. The digital design process… Initial specification Block diagram Final product Circuit equations Logic design.
ECE-C662 Lecture 2 Prawat Nagvajara
Using Cycle-Accurate Contract Specifications for Testing Hardware Models Alexander Kamkin Institute for System Programming of RAS
Time Abstraction in Simulation-Based Hardware Verification Alexander Kamkin Institute for System Programming of the Russian Academy of.
CSCI-365 Computer Organization Lecture Note: Some slides and/or pictures in the following are adapted from: Computer Organization and Design, Patterson.
Lecture 1 – Overview (rSp06) ©2008 Joanne DeGroat, ECE, OSU -1- Functional Verification of Hardware Designs EE764 – Functional Verification of Hardware.
Modern VLSI Design 3e: Chapter 8 Copyright  1998, 2002 Prentice Hall PTR Topics n Basics of register-transfer design: –data paths and controllers; –ASM.
Non-Determinism In C and RTL Models ICCAD 2006 – Ira Chayut, Verification Architect.
VHDL From Ch. 5 Hardware Description Languages. History 1980’s Schematics 1990’s Hardware Description Languages –Increased due to the use of Programming.
Lecture 1 – Overview (rSp06) ©2008 Joanne DeGroat, ECE, OSU -1- Functional Verification of Hardware Designs EE764 – Functional Verification of Hardware.
SOFTWARE TESTING AND QUALITY ASSURANCE. Software Testing.
Hardware Verification
Topics Modeling with hardware description languages (HDLs).
2. Specification and Modeling
Mikhail Chupilko, Alexander Protsenko
Topics Modeling with hardware description languages (HDLs).
Assertions An assertion is a statement about the design’s intended behavior Assertions can be written in a hardware description language (HDL) Assertions.
Introduction to Software Testing
QGen and TQL-1 Qualification
QGen and TQL Qualification
CS341 Digital Logic and Computer Organization F2003
ECE-C662 Introduction to Behavioral Synthesis Knapp Text Ch
Event-Based Architecture Definition Language
332:437 Lecture 8 Verilog and Finite State Machines
Software Verification and Validation
Software Verification and Validation
Digital Design Verification
Transaction Level Modeling: An Overview
Design Methodology & HDL
Software Verification and Validation
332:437 Lecture 8 Verilog and Finite State Machines
Presentation transcript:

Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin

Outline Hardware models Runtime verification Elements of formalization Conformance relation Conclusion 2/28

Hardware models They are developed in Hardware Description Languages, like Verilog or VHDL The result of development is the program being executed in HDL simulator The common approach for verification of hardware models is testing of HDL programs To automatize testing is possible by means of executable models (e.g. in C++) 3/28

HDL programs input S; output R1, R2; void design() { while(true) { wait(S); delay(6); R1 = 1; delay(1); R1 = 0; R2 = 1; delay(1); R2 = 0; } CLK 6 cycles S R1 R2 Parallel assignments 4/28

Hardware model behavior 5/28

Reference model-based test oracle HDL Test oracle Reaction comparators Reference model Reaction arbiters Input interface adapters Output interface adapters Stimuli HDL-model reactions Reference model reactions 6/28

Behavior correctness checking Time restrictions Functional properties Set of reactions is correct Each reaction is correct Reaction order is correct Delays between reactions are correct 7/28

Cycle-accurate checking R1 Reactions of HDL-model Reference model reactions send(R1); send(R2); delay(3) R1 R2  ✕ Comparison R2  ✕ 3 cycles 8/28

Ambiguity in reaction order S R2R1 Execution of HDL-model recv(in_iface, S); Execution of reference model send(out_iface, R1); send(out_iface, R2);... Error: R2  R1 Reverse order Reaction order R1R2 Allowed: R2  Order 9/28

Arbitration of reactions Reaction arbiter finds a reaction corresponding to the reference model one Behavior checking depends on both reference model and on arbitration Reaction arbiters encapsulate parts of test oracle functionality aimed at reaction order checking 10/28

Types of reaction arbiters Deterministic model-based arbiter arbiter: 2 Reaction  Reaction  {fail} Adaptive arbiter arbiter: 2 Reaction  Reaction  Reaction  {fail} Two-level arbiter arbiter(reactions)  arbiter 2 (arbiter 1 (reactions), reaction) – Non-deterministic arbiter – Adaptive arbiter 11/28

Deterministic arbiter R1 HDL-model reactions Reference model reactions send(R1); send(R2);... R1R2 Reaction arbiter R1 R2 FIFO  ✕ Comparison SR Known order 12/28

Adaptive arbiter R1 HDL-model reactions Reference model reactions send(R1); send(R2);... R1 R2 Reaction arbiter R1 R2 Get(R1) Comparison SR Unknown order Hint  ✕ 13/28

Two-level arbiter R1 HDL-model reactions Reference model reactions send(R1); send(R2);... R1 R2 Arbiter #1 R1 R2  ✕ Get(R1) Comparison SR Partially known order Arbiter #2 Hint Candidates 14/28

Timed word (Alur & Dill, 1994)  – alphabet of events T – time domain ( R ≥0 or N ) w = (a 0, t 0 )(a 1, t 1 ), …  (   T)  (*)  i. t i < t i+1 (t i ≤ t i+1 ) – monotonicity  T  i. t i > T – progress (if |w| =  ) 15/28

Mazurkiewicz trace (1977)  – alphabet of events I   – relation of independence Equivalent : u  v  u is derived from v by means of reordering of closest independence events Trace is a class of equivalence of event chains in respect to equivalent relation  16/28

Mazurkiewicz trace (1977) - Example  = { a,b,c,d } I = { (a,b), (c,d) + symmetry } [ab]  = { ab, ba } [bc]  = { bc } [abcd]  = { abcd, bacd, abdc, badc } 17/28

Partially ordered set – Pratt (1982)  – alphabet of events Pomset is tuple  V, ,  V – set of vertexes   V  V – partial set : V   – labeling function 18/28

Partially ordered set – Pratt (1982) Examples 19/28

Timed trace – Chieu & Hung (2012)  – alphabet of events, T – time domain Timed trace –  V, ,,  [,  ]  V – set of vertexes   V  V – partial order : V   – labeling function  : V  T – time of event  : V   T – allowed interval 20/28

Timed trace – Chieu & Hung (2012) Examples { abcd, bacd, abdc, badc } { abcd, bacd } – time restrictions 21/28

Behavior of specification and implementation Implementation behavior  V I, , I,  I  Specification behavior  V S, , S,  S,  S  Allowed time interval  S (x) = [  S (x)-  t(x),  S (x)+  t(x)] Correspondence of events match(x, y) = ( I (y) = S (x) ) & (  I (y)   S (x) ) 22/28

Conformance relation I ~ S   t  T.  M  { (x, y)  past S (t)  past I (t) | match(x, y) } M – one-to-one relation  x  past S (t-  t)  y  past I (t). (x, y)  M  y  past I (t-  t)  x  past S (t). (x, y)  M  (x, y), (x’, y’)  M. x  x’   (y)   (y’) 23/28

Reaction arbiters 24/28

Conformance relation checking 25/28

C++TESK Testing ToolKit Web: /28

Conclusion Based on the theory of traces and partially ordered multisets method of on-the-fly analysis of hardware systems has been developed The method has been implemented in C++TESK Testing ToolKit and has been successfully used in a number of projects Future research is connected with failure diagnostics: giving hints to localization of bugs 27/28

THANK YOU Any questions? 28/28