On-the-fly Synthesis of Multi-Clock SVA Jiang Long Andrew Seawright Paparao Kavalipati IWLS’ 2008.

Slides:



Advertisements
Similar presentations
Copyright 2000 Cadence Design Systems. Permission is granted to reproduce without modification. Introduction An overview of formal methods for hardware.
Advertisements

Brief Introduction to Logic. Outline Historical View Propositional Logic : Syntax Propositional Logic : Semantics Satisfiability Natural Deduction : Proofs.
Putting It All Together: Using Formal Verification In Real Life Erik Seligman CS 510, Lecture 19, March 2009.
CS 510 Lecture 16: Verification Case Studies: Evolution From SVA 2005 to SVA 2009 Adapted from DVCon 2009 paper by Eduard Cerny 1, Surrendra Dudani 1,
Semantics Static semantics Dynamic semantics attribute grammars
Algorithmic Software Verification VII. Computation tree logic and bisimulations.
Presenter: PCLee – This paper outlines the MBAC tool for the generation of assertion checkers in hardware. We begin with a high-level presentation.
Model checking dynamic states in GROOVE Arend Rensink Formal Methods and Tools University of Twente.
1 Operational Semantics Mooly Sagiv Tel Aviv University Textbook: Semantics with Applications.
Concepts of Programming Languages 1 Describing Syntax and Semantics Brahim Hnich Högskola I Gävle
1 Assertion Based Verification 2 The Design and Verification Gap  The number of transistors on a chip increases approximately 58% per year, according.
Programming Language Semantics Mooly SagivEran Yahav Schrirber 317Open space html://
Chapter 3 Describing Syntax and Semantics Sections 1-3.
1 FRAIGs: Functionally Reduced And-Inverter Graphs Adapted from the paper “FRAIGs: A Unifying Representation for Logic Synthesis and Verification”, by.
Presenter: PCLee Design Automation Conference, ASP-DAC '07. Asia and South Pacific.
Chapter 3 Describing Syntax and Semantics Sections 1-3.
Semantics with Applications Mooly Sagiv Schrirber html:// Textbooks:Winskel The.
ISBN Chapter 3 Describing Syntax and Semantics.
The Programming Discipline Professor Stephen K. Kwan Things you need to know (learn) for developing large computer programs.
Formal Verification of SpecC Programs using Predicate Abstraction Himanshu Jain Daniel Kroening Edmund Clarke Carnegie Mellon University.
A Mystery Esterel –small no type inference, subtyping, … no recursion, functions, … no pointers, malloc, GC, … no complex data structures, libraries,
Final Exam Review Cummulative Chapters 0, 1, 2, 3, 4, 5 and 7.
Propositional Calculus CS 680: Formal Methods in Verification Computer Systems Jeremy Johnson.
USING SAT-BASED CRAIG INTERPOLATION TO ENLARGE CLOCK GATING FUNCTIONS Ting-Hao Lin, Chung-Yang (Ric) Huang Graduate Institute of Electrical Engineering,
Maria-Cristina Marinescu Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology A Synthesis Algorithm for Modular Design of.
1 Syntax and Semantics The Purpose of Syntax Problem of Describing Syntax Formal Methods of Describing Syntax Derivations and Parse Trees Sebesta Chapter.
Institute for Applied Information Processing and Communications 1 Karin Greimel Semmering, Open Implication.
Using Mathematica for modeling, simulation and property checking of hardware systems Ghiath AL SAMMANE VDS group : Verification & Modeling of Digital systems.
ISBN Chapter 3 Describing Syntax and Semantics.
ISBN Chapter 3 Describing Semantics -Attribute Grammars -Dynamic Semantics.
TextBook Concepts of Programming Languages, Robert W. Sebesta, (10th edition), Addison-Wesley Publishing Company CSCI18 - Concepts of Programming languages.
CS 363 Comparative Programming Languages Semantics.
Introduction to Programming Languages S1.3.1Bina © 1998 Liran & Ofir Introduction to Programming Languages Programming in C.
Propositional Calculus CS 270: Mathematical Foundations of Computer Science Jeremy Johnson.
CPS 506 Comparative Programming Languages Syntax Specification.
3.2 Semantics. 2 Semantics Attribute Grammars The Meanings of Programs: Semantics Sebesta Chapter 3.
ISBN Chapter 3 Describing Semantics.
Chapter 3 Part II Describing Syntax and Semantics.
ISBN Chapter 3 Describing Syntax and Semantics.
Semantics In Text: Chapter 3.
Theory of Programming Languages Introduction. What is a Programming Language? John von Neumann (1940’s) –Stored program concept –CPU actions determined.
CS6133 Software Specification and Verification
ISBN Chapter 3 Describing Syntax and Semantics.
1 / 48 Formal a Language Theory and Describing Semantics Principles of Programming Languages 4.
Compiler Introduction 1 Kavita Patel. Outlines 2  1.1 What Do Compilers Do?  1.2 The Structure of a Compiler  1.3 Compilation Process  1.4 Phases.
Verification & Validation By: Amir Masoud Gharehbaghi
03/31/031 ECE 551: Digital System Design & Synthesis Lecture Set 8 8.1: Miscellaneous Synthesis (In separate file) 8.2: Sequential Synthesis.
CS412/413 Introduction to Compilers Radu Rugina Lecture 13 : Static Semantics 18 Feb 02.
C H A P T E R T W O Linking Syntax And Semantics Programming Languages – Principles and Paradigms by Allen Tucker, Robert Noonan.
Operational Semantics Mooly Sagiv Tel Aviv University Textbook: Semantics with Applications Chapter.
CSC 4181 Compiler Construction
Carnegie Mellon Vadim Zaliva, Franz Franchetti Carnegie Mellon University Department of Electrical and Computer Engineering Funded by the DARPA I2O HACMS.
CS 404Ahmed Ezzat 1 CS 404 Introduction to Compiler Design Lecture 1 Ahmed Ezzat.
Certifying and Synthesizing Membership Equational Proofs Patrick Lincoln (SRI) joint work with Steven Eker (SRI), Jose Meseguer (Urbana) and Grigore Rosu.
Chapter 3 – Describing Syntax CSCE 343. Syntax vs. Semantics Syntax: The form or structure of the expressions, statements, and program units. Semantics:
CENG 424-Logic for CS Introduction Based on the Lecture Notes of Konstantin Korovin, Valentin Goranko, Russel and Norvig, and Michael Genesereth.
Describing Syntax and Semantics
Introduction to System Verilog Assertions
Propositional Calculus: Boolean Functions and Expressions
The Analysis of Cyclic Circuits with Boolean Satisfiability
CSE 105 theory of computation
Compiler Lecture 1 CS510.
Propositional Calculus: Boolean Functions and Expressions
Propositional Calculus: Boolean Algebra and Simplification
ECE-C662 Introduction to Behavioral Synthesis Knapp Text Ch
Semantics In Text: Chapter 3.
Types and Type Checking (What is it good for?)
Intermediate Code Generation
CSE 105 theory of computation
CSE 105 theory of computation
Presentation transcript:

On-the-fly Synthesis of Multi-Clock SVA Jiang Long Andrew Seawright Paparao Kavalipati IWLS’ 2008

2 Outline n Introduction — Background and scope — Related works n Synthesizing multi-clock SVA — Single clock assertion compilation — Compile through rewriting — On-the-fly synthesis algorithm n Proof of correctness n Experimental results and conclusions

3 Formal Model for Multi-Clock Designs Clock Specification RTL Design SVA Assertions

4 Multi-Clock Modeling mclk

5 Objective n Synthesize SVA into Checker logic — Generic checker logic n Utilize existing FV framework/technique/optimization n Utilize existing multi-clock network — Optimize checker logic size n Number of sequentials and gates — Validation n Proof of correctness

6 SVA Abstract Grammar – Unclocked Sequence Sequences define language of words n Booleans b n Concatenation R 1 ##1 R 2 n Or R 1 or R 2 n Repetition R 1 [*0:$] n Fusion R 1 ##0 R 2 n Intersect R 1 intersect R 2 n Local Variable b, v=e

7 SVA Abstract Grammar – Clocked Sequence n Grammar for clocked sequence S S R | ( S ##1 S) n Single R n 1 R 1 2 R 2

8 SVA Abstract Grammar - Property Properties evaluate true/false over words n Regular expression R n Implication R |-> P R |=> P n Or P 1 or P 2 n And P 1 and P 1 n Not not P

9 SVA Abstract Grammar - Property Properties evaluate true/false over finite words n Implication R |-> P R |=> P

10 SVA Multi-Clock Assertions

11 SVA Multi-Clock Assertions

12 SVA Multi-Clock Assertions

13 SVA Multi-Clock Assertions

14 SVA Multi-Clock Assertions

15 n Synthesis of regular expression + “actions” — Seawright / Brewer - synthesis of controllers n Synthesis of SVA — Pellauer / Lis / Baltus / Nikhil - using Blue Spec n Checkers in Formal Verification — Beer / Ben-David / Landver: on-fly-model checking of RCTL n Synthesis of SVA Local Variables — Long/Seawright n Multi-Clock assertion synthesis for verification — Ganai, et al. n Annotating OVL 2.0 with SVA — Long, Seawright, et al. Related Work

16 Contribution n Synthesize SVA into Checker logic — Adapt single-clock SVA compilation procedure — Generic checker logic n Utilize existing FV framework/technique/optimization n Utilize existing multi-clock network — Optimized checker logic size — Validation n Proof of correctness based on SVA semantics

17 Outline n Introduction — Background and scope — Related works n Synthesizing Multi-clock SVA — Single clock assertion compilation — Compile through semantic rewriting n Penalty: Double the checker logic size — On-the-fly synthesis algorithm n No penalty n Proof of correctness n Experimental results and conclusions

18 SVA compilation Prop Bool R |=> term [*2:M] gnt req1 ##1 req0 term Property clk0) req0 ##1 req1[*2:M] |=> gnt; endproperty

19 SVA Compilation Sketch 1. Construct sequence recognizer machines for LHS and RHS sequences (this step is most relevant to this work) 2. From analysis and transformation of these LHS and RHS sequence recognizer machines, construct the failure circuit for the overall implication property (not the focus of this work)

20 |=> term [*2:M] gnt req1 ##1 req0 term Recursive Construction

21 |=> term [*2:M] gnt req1 ##1 req0 term Recursive Construction

22 R1 ##1 R2 R1 APAP start R2 APAP start clk start APAP R1R1 R2R2 ##1

23 R1 ##0 R2 R1 APAP start R2 APAP start APAP

24 R1 ##0 R2 R1 APAP start R2 APAP start APAP R is equivalent to (R ##0 1) (1 ##0 R)

25 Outline n Introduction — Background and scope — Related works n Synthesizing Multi-clock SVA — Single clock assertion compilation — Compile through semantic rewriting n Penalty: Double the checker logic size — On-the-fly synthesis algorithm n No penalty n Proof of correctness n Experimental results and conclusions

26 SVA Semantic Rewriting Rules

27 Rewriting: An Example

28 Synthesize Through Rewriting |=> ##1 req0 term req1 term gnt term [*2:3]

29 Synthesiz3 Through Rewriting |=> ##1 req0 term req1 term gnt term [*2:3] 1. Checker logic: Correct by Construction

30 Synthesis Through Rewriting |=> ##1 req0 term req1 term gnt term [*2:3] 2. Rewriting rule (2.1): size of the tree doubled 1. Checker logic: Correct by Construction

31 On-the-fly Synthesis n Motivation — Avoid the penalty from the rewriting — Model clock directly n Compilation procedure — Annotate syntax tree with clock information — Adapt to existing recursive compilation — Model clocked constructs directly — Proof of correctness through construction

32 Annotated Abstract Syntax Tree Prop Bool R |=> term [*2:M] gnt req1 ##1 req0 term clk 2 clk 1 clk 2 clk 3 clk 2

33 Annotated Abstract Syntax Tree Prop Bool R |=> term [*2:M] gnt req1 ##1 req0 term clk 2 clk 1 clk 2 clk 3 clk 2

34 Annotated Abstract Syntax Tree Prop Bool R |=> term [*2:M] gnt req1 ##1 req0 term clk 2 clk 1 clk 2 clk 3 clk 2

35 On-the-fly Model n Annotated node with a single clock (b) (R 1 ##1 R 2 ) n Annotated node with two different clocks 1 R 1 R 2

36 Basic Block

37 Basic Block 1 ##1 R 2 )

38 Basic Block 1 ##1 R 2 )

39 Building Block 1 R 1 2 R 2

40 Building Block 1 R 1 2 R 2

41 Building Block 1 R 1 2 R 2 s0 <= ( R 1.A p 1 ) || ( s0 && 2 )

42 NFA 1 R 1 2 R 2

43 Outline n Introduction — Background and scope — Related works n Synthesizing Multi-clock SVA — Single clock assertion compilation — Compile through semantic rewriting n Penalty: Double the checker logic size — On-the-fly synthesis algorithm n No penalty n Proof of correctness n Experimental results and conclusions

44 SVA Rewriting Rules

45 Proof of Correctness n Lemmas 1. R equals. R ## R equals. 1 ##0 R

46 Proof of Correctness n Lemmas 1. R equals. R ## R equals. 1 ##0 R R ( R ##0 1 ) R ( 1 ##0 R)

47 n Lemmas 1. R equals. R ## R equals. 1 ##0 R R ( R ##0 1 ) R ( 1 ##0 R) R 1 R R R 1 Proof of Correctness

48 Proof of Correctness n Lemmas 1. R equals. R ## R equals. 1 ##0 R R ( R ##0 1 ) R ( 1 ##0 R) R 1 R R R 1 1 R 1 2 R 2

49 Proof of Correctness n Lemmas 1. R equals. R ## R equals. 1 ##0 R R ( R ##0 1 ) R ( 1 ##0 R) R 1 R R R 1 1 R 1 2 R 2 1 (R 1 ##0 1) 2 ( 1 ##0 R 2 )

50 Proof of Correctness n Lemmas 1. R equals. R ## R equals. 1 ##0 R R ( R ##0 1 ) R ( 1 ##0 R) R 1 R R R 1 1 R 1 2 R 2 1 (R 1 ##0 1) 2 ( 1 ##0 R 2 ) 1 R R 2

51 Proof 1 R R 2

52 Proof 1 R R 2

53 Proof 1 R R 2

54 Proof 1 R R 2 9. !clk 1 [*0:$] ##1 clk 1 ##1 !clk 2 [*0:$] ##1 clk 2

55 Proof !clk 1 [*0:$] ##1 clk 1 ##1 !clk 2 [*0:$] ##1 clk 2 1 R R 2 9. !clk 1 [*0:$] ##1 clk 1 ##1 !clk 2 [*0:$] ##1 clk 2

56 Proof !clk 1 [*0:$] ##1 clk 1 ##1 !clk 2 [*0:$] ##1 clk 2 1 R R 2 9. !clk 1 [*0:$] ##1 clk 1 ##1 !clk 2 [*0:$] ##1 clk 2

57 Proof !clk 1 [*0:$] ##1 clk 1 ##1 !clk 2 [*0:$] ##1 clk 2 1 R R 2 9. !clk 1 [*0:$] ##1 clk 1 ##1 !clk 2 [*0:$] ##1 clk 2

58 Special 1 ##1 R 2 )

59 clk 1 ==clk 2 Special 1 ##1 R 2 )

60 Experimental Results

61 Experimental Results

62 Experimental Results 2x

63 Conclusion n Efficient synthesis of multi-clock assertions — Create a generic checker logic — Direct modeling to avoid the doubling penalty — Proof of correctness

On-the-fly Synthesis of Multi-Clock SVA Jiang Long Andrew Seawright Paparao Kavalipati IWLS’ 2008