Introduction to LUSTRE and LUKE

Slides:



Advertisements
Similar presentations
1 MODULE name (parameters) “Ontology” “Program” “Properties” The NuSMV language A module can contain modules Top level: parameters less module Lower level.
Advertisements

The Synchronous Model of Computation Stavros Tripakis UC Berkeley EE 249 Lecture – Sep 15, 2009 CE 290I Lecture – Oct 22, 2009.
UPPAAL Introduction Chien-Liang Chen.
Getting started with ML ML is a functional programming language. ML is statically typed: The types of literals, values, expressions and functions in a.
Ch. 7 Process Synchronization (1/2) I Background F Producer - Consumer process :  Compiler, Assembler, Loader, · · · · · · F Bounded buffer.
UPPAAL Andreas Hadiyono Arrummaisha Adrifina Harya Iswara Aditya Wibowo Juwita Utami Putri.
Introduction to LUSTRE 22c181 Spring Background Developed in 1980’s at Verimag (Fr) Currently used by Estrel Technologies in Scade development tools.
White Box Testing and Symbolic Execution Written by Michael Beder.
Tutorial 4 Decision Making with Control Structures and Statements Section A - Decision Making JavaScript Tutorial 4 -Decision Making with Control.
C++ Programming Language Day 1. What this course covers Day 1 – Structure of C++ program – Basic data types – Standard input, output streams – Selection.
Software Testing Sudipto Ghosh CS 406 Fall 99 November 9, 1999.
Timed UML State Machines Ognyana Hristova Tutor: Priv.-Doz. Dr. Thomas Noll June, 2007.
UPPAAL Ghaith Haddad. Introduction UPPAAL is a tool for modeling, validation and verification of real-time systems. Appropriate for systems that can be.
ECE 2372 Modern Digital System Design
Javascript. Outline Introduction Fundamental of JavaScript Javascript events management DOM and Dynamic HTML (DHTML)
TUTORIAL 10: PROGRAMMING WITH JAVASCRIPT Session 2: What is JavaScript?
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
CECS 121 Test 1. Functions allow you to group program statements under one name C and C++ are case-sensitive so main(), MAIN(), and Main() are all different.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
1 Chapter 4: Basic Control Flow ► Chapter Goals  To be able to implement decisions using if statements  To understand statement blocks  To learn how.
Modern VLSI Design 4e: Chapter 8 Copyright  2008 Wayne Wolf Topics VHDL register-transfer modeling: –basics using traffic light controller; –synthesis.
Introduction to ASIC flow and Verilog HDL
Introduction to JavaScript CSc 2320 Fall 2014 Disclaimer: All words, pictures are adopted from “Simple JavaScript”by Kevin Yank and Cameron Adams and also.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
CMPSC 16 Problem Solving with Computers I Spring 2014 Instructor: Tevfik Bultan Lecture 4: Introduction to C: Control Flow.
/ PSWLAB Evidence-Based Analysis and Inferring Preconditions for Bug Detection By D. Brand, M. Buss, V. C. Sreedhar published in ICSM 2007.
Activity diagrams Practice 7. Task 1  The first action in the activity is the adding the item to the order. If the order if formed (“ready”), then it.
Modern VLSI Design 3e: Chapter 8 Copyright  1998, 2002 Prentice Hall PTR Topics n Verilog register-transfer modeling: –basics using traffic light controller;
UPPAAL Real-Time Systems Lab. Seolyoung, Jeong.
Homework Reading Machine Projects Labs
Chapter Topics The Basics of a C++ Program Data Types
Prof: Dr. Shu-Ching Chen TA: Samira Pouyanfar Spring 2017
Learning to Program D is for Digital.
Homework Reading Machine Projects Labs
Introduction to the C Language
CPE555A: Real-Time Embedded Systems
Discussion 2: More to discuss
Verilog Introduction Fall
Bill Tucker Austin Community College COSC 1315
VLSI Testing Lecture 5: Logic Simulation
Dataflow analysis.
Introduction Introduction to VHDL Entities Signals Data & Scalar Types
Basic Elements of C++.
2. Specification and Modeling
CSE 143 Introduction to C++ [Appendix B] 4/11/98.
Vishwani D. Agrawal Department of ECE, Auburn University
Prof: Dr. Shu-Ching Chen TA: Samira Pouyanfar Hector Cen Fall 2017
Chapter 3 Control Statements Lecturer: Mrs Rohani Hassan
IAS 0600 Digital Systems Design
Basic Elements of C++ Chapter 2.
Assertions An assertion is a statement about the design’s intended behavior Assertions can be written in a hardware description language (HDL) Assertions.
Chapter 8: Introduction to High-Level Language Programming
Introduction to the C Language
CMPE 152: Compiler Design September 18 Class Meeting
Hardware Description Languages
Multiple Aspect Modeling of the Synchronous Language Signal
Subprograms and Programmer Defined Data Type
ECE-C662 Introduction to Behavioral Synthesis Knapp Text Ch
Spring CS 599. Instructor: Jyo Deshmukh
Statement-Level Control Structures
Chapter8: Statement-Level Control Structures April 9, 2019
ECE 352 Digital System Fundamentals
Decisions, decisions, decisions
PHP an introduction.
Software Development Chapter 1.
Digital Designs – What does it take
Chapter 13 Conditional Repetition
SPL – PS1 Introduction to C++.
EEL4712 Digital Design (VHDL Tutorial).
Presentation transcript:

Introduction to LUSTRE and LUKE 22c181 Spring 2008

Background Developed in 1980’s at Verimag (Fr) Currently used by Estrel Technologies in Scade development tools Airbus, nuclear power plants

Synchronous Dataflow Lustre is a synchronous dataflow language Synchronous – outputs are “instantaneous” Designed to quickly react to environment "Realtime” or “reactive” Ex: Esterel, Statecharts Dataflow – changes force propagation Ex: Spreadsheets Simple, modular, functional

Language Nodes Flows (or streams) Programs or subprograms Collections of flow definitions Flows (or streams) infinite sequence of values Defined equationally (no cycles)

Program Structure node name (parameters) returns (return_vals); [var local_variable_list;] let flow definition; … tel

Basic Types bool int real Tuples and, or, not, xor +, -, *, /, div, mod, =, <>, <, <=, >, >=, int,real Tuples Arbitrary combinations of bool, int, real, & tuple terms Used to return multiple values

Luke Tool Command line simulator & verifier Fragment of lustre(v4) language does not support arrays, const, assert, #, when, current, real allows nonstandard structures nodes with no inputs =, <> can be used on type bool Outputs simulations & counterexamples to javascript webpage

Luke Usage Simulation: Verification: luke --node top_node filename luke --node top_node --verify filename returns either “Valid. All checks succeeded. Maximal depth was n” or “Falsified output ‘X’ in node ‘Y' at depth n” along with a counterexample.

Other Operators pre (previous) -> (followed by) if … then … else pre X :: previous value of X -> (followed by) X -> Y :: value of X in first step, then the value of Y Generally used together: X = Y -> pre Z if … then … else -- :: single-line comment

is not always equivalent to Clocks Used to delay sampling, execution current, when X = current (Y when B) is not always equivalent to X = if B then Y else pre X Not supported by Luke Y 1 2 3 4 5 B X= Y when B - current X

Odds & Ends (Not supported by Luke) assert(X); const When verifying, this statement restricts flows to abide by the Boolean statement X Put known limits on input values const declare (global) constants # :: at most one element of a tuple is true External functions

SCADE Operators SCADE operators (not in version 4): case :: switching fby(x,n,i) :: initialize with i, delay x by n steps Guarded delay i -> pre (i -> … pre (x)) z = condact(b, n, x, i) Guarded clock change z = i -> if b then current n(x when b) else pre z

Arrays,Recursion Supported as syntactic sugar See “A Tutorial of Lustre” for more information

Synchronous Observers Another program which observes the behavior of the base code “Tester node” Contains code to determine if properties are true or not

Traffic Light Example Pedestrian crossing with a traffic light RGY light, walk/don’t walk sign Behavior should be…

Traffic Light Properties Cars & pedestrians not allowed at the same time Only one light color at a time Only walk or don’t walk at a time Y must come between R & G Others…?

Edge Example Compare two implementations of FallingEdge node