The Synchronous Model of Computation Stavros Tripakis UC Berkeley EE 249 Lecture – Sep 15, 2009 CE 290I Lecture – Oct 22, 2009.

Slides:



Advertisements
Similar presentations
Automated Theorem Proving Lecture 1. Program verification is undecidable! Given program P and specification S, does P satisfy S?
Advertisements

Modelos de Computação Básicos Prof. Dr. César Augusto Missio Marcon Parcialmente extraído de trabalhos de Axel Jantch, Edward Lee e Alberto Sangiovanni-Vincentelli.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Signals and Systems March 25, Summary thus far: software engineering Focused on abstraction and modularity in software engineering. Topics: procedures,
The cardiac pacemaker – SystemJ versus Safety Critical Java Heejong Park, Avinash Malik, Muhammad Nadeem, and Zoran Salcic. University of Auckland, NZ.
Undoing the Task: Moving Timing Analysis back to Functional Models Marco Di Natale, Haibo Zeng Scuola Superiore S. Anna – Pisa, Italy McGill University.
CS 290C: Formal Models for Web Software Lecture 4: Implementing and Verifying Statecharts Specifications Using the Spin Model Checker Instructor: Tevfik.
Timed Automata.
Sequential Circuits1 DIGITAL LOGIC DESIGN by Dr. Fenghui Yao Tennessee State University Department of Computer Science Nashville, TN.
Requirements on the Execution of Kahn Process Networks Marc Geilen and Twan Basten 11 April 2003 /e.
Introduction to LUSTRE 22c181 Spring Background Developed in 1980’s at Verimag (Fr) Currently used by Estrel Technologies in Scade development tools.
DATAFLOW PROCESS NETWORKS Edward A. Lee Thomas M. Parks.
PTIDES: Programming Temporally Integrated Distributed Embedded Systems Yang Zhao, EECS, UC Berkeley Edward A. Lee, EECS, UC Berkeley Jie Liu, Microsoft.
1 Operational Semantics Mooly Sagiv Tel Aviv University Textbook: Semantics with Applications.
7th Biennial Ptolemy Miniconference Berkeley, CA February 13, 2007 Leveraging Synchronous Language Principles for Hybrid System Models Haiyang Zheng and.
A denotational framework for comparing models of computation Daniele Gasperini.
Review of “Embedded Software” by E.A. Lee Katherine Barrow Vladimir Jakobac.
Dataflow Process Networks Lee & Parks Synchronous Dataflow Lee & Messerschmitt Abhijit Davare Nathan Kitchen.
Models of Computation for Embedded System Design Alvise Bonivento.
A Denotational Semantics For Dataflow with Firing Edward A. Lee Jike Chong Wei Zheng Paper Discussion for.
1 COMP541 State Machines Montek Singh Feb 6, 2007.
MoBIES Working group meeting, September 2001, Dearborn Ptolemy II The automotive challenge problems version 4.1 Johan Eker Edward Lee with thanks.
7th Biennial Ptolemy Miniconference Berkeley, CA February 13, 2007 PTIDES: A Programming Model for Time- Synchronized Distributed Real-time Systems Yang.
Mahapatra-A&M-Sprong'021 Co-design Finite State Machines Many slides of this lecture are borrowed from Margarida Jacome.
George Mason University ECE 448 – FPGA and ASIC Design with VHDL Finite State Machines State Diagrams, State Tables, Algorithmic State Machine (ASM) Charts,
ECE 301 – Digital Electronics Introduction to Sequential Logic Circuits (aka. Finite State Machines) and FSM Analysis (Lecture #17)
ECE 331 – Digital Systems Design Introduction to Sequential Logic Circuits (aka. Finite State Machines) and FSM Analysis (Lecture #19)
Models of Computation Reading Assignment: L. Lavagno, A.S. Vincentelli and E. Sentovich, “Models of computation for Embedded System Design”
A Mystery Esterel –small no type inference, subtyping, … no recursion, functions, … no pointers, malloc, GC, … no complex data structures, libraries,
1 Correct and efficient implementations of synchronous models on asynchronous execution platforms Stavros Tripakis UC Berkeley and Verimag EC^2 Workshop,
Lecture 10 Topics: Sequential circuits Basic concepts Clocks
Ch.2 Part A: Requirements, State Charts EECE **** Embedded System Design.
Signals and Systems March 25, Summary thus far: software engineering Focused on abstraction and modularity in software engineering. Topics: procedures,
Digital Computer Design Fundamental
Some Useful Circuits Lecture for CPSC 5155 Edward Bosworth, Ph.D. Computer Science Department Columbus State University.
1 COMP541 State Machines Montek Singh Feb 8, 2012.
Voicu Groza, 2008 SITE, HARDWARE/SOFTWARE CODESIGN OF EMBEDDED SYSTEMS Hardware/Software Codesign of Embedded Systems Voicu Groza SITE Hall, Room.
Benjamin Gamble. What is Time?  Can mean many different things to a computer Dynamic Equation Variable System State 2.
Sequential Logic Materials taken from: Digital Design and Computer Architecture by David and Sarah Harris & The Essentials of Computer Organization and.
- 1 - Embedded Systems - SDL Some general properties of languages 1. Synchronous vs. asynchronous languages Description of several processes in many languages.
StateCharts Peter Marwedel Informatik 12 Univ. Dortmund Germany.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
“Software” Esterel Execution (work in progress) Dumitru POTOP-BUTUCARU Ecole des Mines de Paris
Ch. 2. Specification and Modeling 2.1 Requirements Describe requirements and approaches for specifying and modeling embedded systems. Specification for.
Mahapatra-A&M-Fall'001 Co-design Finite State Machines Many slides of this lecture are borrowed from Margarida Jacome.
Modern VLSI Design 4e: Chapter 8 Copyright  2008 Wayne Wolf Topics Basics of register-transfer design: –data paths and controllers; –ASM charts. Pipelining.
© S. Ramesh / Kavi Arya / Krithi Ramamritham 1 IT-606 Embedded Systems (Software ) S. Ramesh Kavi Arya Krithi Ramamritham KReSIT/ IIT Bombay.
Introduction to ASIC flow and Verilog HDL
Operational Semantics Mooly Sagiv Tel Aviv University Textbook: Semantics with Applications Chapter.
1 COMP541 Finite State Machines - 1 Montek Singh Sep 22, 2014.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
CS151 Introduction to Digital Design Chapter 5: Sequential Circuits 5-1 : Sequential Circuit Definition 5-2: Latches 1Created by: Ms.Amany AlSaleh.
Operational Semantics Mooly Sagiv Tel Aviv University Sunday Scrieber 8 Monday Schrieber.
Operational Semantics Mooly Sagiv Reference: Semantics with Applications Chapter 2 H. Nielson and F. Nielson
Operational Semantics Mooly Sagiv Reference: Semantics with Applications Chapter 2 H. Nielson and F. Nielson
Chapter 3 Boolean Algebra and Digital Logic T103: Computer architecture, logic and information processing.
1 COMP541 Sequential Logic – 2: Finite State Machines Montek Singh Feb 29, 2016.
Introduction Introduction to VHDL Entities Signals Data & Scalar Types
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
ECE Digital logic Lecture 16: Synchronous Sequential Logic
Introduction to LUSTRE and LUKE
Autonomous Cyber-Physical Systems: Synchronous Components: II
CSE 370 – Winter Sequential Logic - 1
Spring CS 599. Instructor: Jyo Deshmukh
332:437 Lecture 8 Verilog and Finite State Machines
Guest Lecture by David Johnston
Concurrent Models of Computation
ECE 448 Lecture 6 Finite State Machines State Diagrams, State Tables, Algorithmic State Machine (ASM) Charts, and VHDL code ECE 448 – FPGA and ASIC Design.
332:437 Lecture 8 Verilog and Finite State Machines
Presentation transcript:

The Synchronous Model of Computation Stavros Tripakis UC Berkeley EE 249 Lecture – Sep 15, 2009 CE 290I Lecture – Oct 22, 2009

Fundamental characteristics of the synchronous MoC Notion of synchronous round (or cycle) 2 inputs outputs inputs outputs … rounds round 1round 2 S. Tripakis – EE 249 – The Synchronous MoC

Fundamental characteristics of the synchronous MoC Notion of synchronous round (or cycle) Concurrency Determinism (most of the time) – Same (sequence of) inputs => same (sequence of) outputs Contrast this to: – Concurrency with threads: Non-deterministic: results depend on interleaving – Concurrency in Kahn Process Networks: Asynchronous (interleaving), but still deterministic Needs unbounded buffers in general, for communication 3S. Tripakis – EE 249 – The Synchronous MoC

4 Example: synchronous block diagram AC rounds A, B, CA, C, B… B S. Tripakis – EE 249 – The Synchronous MoC

5 Example: synchronous block diagram AC rounds A, … B BCBC BCBC deterministic concurrency S. Tripakis – EE 249 – The Synchronous MoC

Example: FIR filter 6 Where is the synchronous round here? S. Tripakis – EE 249 – The Synchronous MoC

Example: sequential logic diagram 7 Where is the synchronous round here? S. Tripakis – EE 249 – The Synchronous MoC

Example: control loop 8 initialize state; while (true) do read inputs; compute outputs; update state; write outputs; end while; Where is the synchronous round here? S. Tripakis – EE 249 – The Synchronous MoC

Example: control loop (v2) 9 initialize state; while (true) do await clock tick; read inputs; compute outputs; update state; write outputs; end while; S. Tripakis – EE 249 – The Synchronous MoC

Is this an important model of computation? Yes! – Extremely widespread, both in terms of models/languages, and in terms of applications Examples of applications: – Synchronous digital circuits – 99% (?) of control software Read-compute-write control loops Nuclear, avionics, automotive, … – Multimedia, … 10S. Tripakis – EE 249 – The Synchronous MoC

Is this an important model of computation? 11 Copyright The Mathworks Engine control model in Simulink HWSW ++ c.f. Simulink to FPGA, or to HDL S. Tripakis – EE 249 – The Synchronous MoC

Is this an important model of computation? Yes! – Extremely widespread, both in terms of models/languages, and in terms of applications Examples of models and languages: – Mealy/Moore machines – Verilog, VHDL, … – (discrete-time) Simulink – Synchronous languages – (Synchronous) Statecharts – The synchronous-reactive (SR) domain in Ptolemy II – … 12S. Tripakis – EE 249 – The Synchronous MoC

Myths about synchronous models Synchronous models have zero-time semantics – Synchronous semantics are essentially untimed: they do not have a quantitative notion of time. – Famous Esterel statements [Berry-Gonthier ‘92]: every 1000 MILLISEC do emit SEC end every 1000 MILLIMETER do emit METER end – Synchronous models can capture both time-triggered and event-triggered systems. E.g.: Do something every 20ms Do something whenever you receive an interrupt from the engine 13S. Tripakis – EE 249 – The Synchronous MoC

Example: control loop (v3) 14 initialize state; while (true) do await clock tick or any other interrupt; read inputs; compute outputs; update state; write outputs; end while; S. Tripakis – EE 249 – The Synchronous MoC

Myths about synchronous models But: – The synchronous cycles could be interpreted as discrete time: 0, 1, 2, 3, …, in which case we have a discrete-time semantics… – … and this can also be seen as an abstraction of real- time: – C.f. timing analysis of digital circuits – C.f. WCET analysis of synchronous control loops 15S. Tripakis – EE 249 – The Synchronous MoC

Myths about synchronous models Synchronous models are non-implementable (because zero-time is impossible to achieve) – ??? 16 Real-Time Workshop S. Tripakis – EE 249 – The Synchronous MoC

Benefits of synchronous models Often more light-weight than asynchronous – No interleaving => less state explosion Often deterministic – Easier to understand, easier to verify SW implementations: – No operating system required – Static scheduling, no memory allocations, no dynamic creation of processes, … Simple timing/schedulability analysis – Often simple WCET analysis also: no loops 17S. Tripakis – EE 249 – The Synchronous MoC

Asynchronous vs. Synchronous Product 18S. Tripakis – EE 249 – The Synchronous MoC

Lecture plan Part 1: Single-rate synchronous models Part 2: Multi-rate synchronous models Part 3: Feedback and Causality 19S. Tripakis – EE 249 – The Synchronous MoC

Part 1: Single-rate synchronous models Moore/Mealy machines Synchronous block diagrams – Inspired by discrete-time Simulink, and SCADE Lustre Esterel 20S. Tripakis – EE 249 – The Synchronous MoC

Moore Machines 21 States: {q0, q1, q2, q3} Initial state: q0 Input symbols: {x,y,z} Output symbols: {a,b,c} Output function: – Out : States -> Outputs Transition function: – Next: States x Inputs -> States Where is the synchronous round here? deterministic S. Tripakis – EE 249 – The Synchronous MoC

Moore machine: a circuit view 22 NextOut clock x(n) y(n) s(n) S. Tripakis – EE 249 – The Synchronous MoC

Mealy Machines 23 States: {S0, S1, S2} Initial state: S0 Input symbols: {0,1} Output symbols: {0,1} Output function: – Out : States x Inputs -> Outputs Transition function: – Next: States x Inputs -> States Where is the synchronous round here? S. Tripakis – EE 249 – The Synchronous MoC

Mealy machine: a circuit view 24 NextOut clock x(n) y(n) s(n) Is this a “purely synchronous” model? S. Tripakis – EE 249 – The Synchronous MoC

Moore vs. Mealy machines 25 Moore or Mealy? S. Tripakis – EE 249 – The Synchronous MoC

Moore vs. Mealy machines Every Moore machine is also a Mealy machine – Why? Is it possible to transform a Mealy machine to a Moore machine? 26S. Tripakis – EE 249 – The Synchronous MoC

27 Synchronous block diagrams Physical models often described in continuous-time Controller part (e.g., Transmission Control Unit) is discrete-time S. Tripakis – EE 249 – The Synchronous MoC

28 Synchronous block diagrams S. Tripakis – EE 249 – The Synchronous MoC

Example: FIR filter 29 What is the Mealy machine for this diagram? S. Tripakis – EE 249 – The Synchronous MoC

30 Hierarchy in synchronous block diagrams AB P S. Tripakis – EE 249 – The Synchronous MoC

31 Hierarchy in synchronous block diagrams Fundamental modularity concept P S. Tripakis – EE 249 – The Synchronous MoC

Semantics of hierarchical SBDs Can we define the semantics of a composite SBD as a Mealy machine? – In particular, with a pair of (Out, Next) functions? 32S. Tripakis – EE 249 – The Synchronous MoC

33 Problem with “monolithic” semantics A B P P.out(x1, x2) returns (y1, y2) { y1 := A.out( x1 ); y2 := B.out( x2 ); return (y1, y2); } x1 x2 y2 y1 False I/O dependencies => Model not usable in some contexts S. Tripakis – EE 249 – The Synchronous MoC

34 Solution Generalize from a single, to MANY output functions P.out1( in1 ) returns out1 { return A.out( in1 ); } P.out2( in2 ) returns out2 { return B.out( in2 ); } A B P [DATE’08, RTAS’08, POPL’09] S. Tripakis – EE 249 – The Synchronous MoC

Lustre The FIR filter in Lustre: 35 node fir (x : real) returns (y : real); var s1, s2 : real; let s1 = 0 -> pre x; s2 = 0 -> pre s1; y = x/3 + s1/3 + s2/3; tel S. Tripakis – EE 249 – The Synchronous MoC

Lustre The FIR filter in Lustre: 36 node fir (x : real) returns (y : real); var s1, s2 : real; let s1 = 0 -> pre x; s2 = 0 -> pre s1; y = x/3 + s1/3 + s2/3; tel S. Tripakis – EE 249 – The Synchronous MoC

Lustre The FIR filter in Lustre: 37 node fir (x : real) returns (y : real); var s1, s2 : real; let y = x/3 + s1/3 + s2/3; s2 = 0 -> pre s1; s1 = 0 -> pre x; tel What has changed? Is this correct? S. Tripakis – EE 249 – The Synchronous MoC

Lustre The FIR filter in Lustre (no explicit state vars): 38 node fir (x : real) returns (y : real); let y = x/3 + (0 -> pre x)/3 + (0 -> (0 -> pre pre x))/3; tel S. Tripakis – EE 249 – The Synchronous MoC

Exercise Write a counter in Lustre 39S. Tripakis – EE 249 – The Synchronous MoC

Esterel The FIR filter in Esterel: 40 module FIR: input x : double; output y : double; var s1 := 0 : double, s2 := 0 : double in loop await x ; emit y(x/3 + s1/3 + s2/3) ; s2 := s1 ; s1 := x ; end loop end var. S. Tripakis – EE 249 – The Synchronous MoC

Esterel The FIR filter in Esterel: 41 module FIR: input x : double; output y : double; var s1 := 0 : double, s2 := 0 : double in loop await x ; emit y(x/3 + s1/3 + s2/3) ; s1 := x ; s2 := s1 ; end loop end var. What has changed? Is this correct? S. Tripakis – EE 249 – The Synchronous MoC

Esterel A speedometer in Esterel: 42 module SPEEDOMETER: input sec, cm; % pure signals output speed : double; % valued signal loop var cpt := 0 : double in abort loop await cm ; cpt := cpt end loop when sec do emit speed(cpt) end abort end var end loop. S. Tripakis – EE 249 – The Synchronous MoC

Lustre The speedometer in Lustre: 43 node speedometer(sec, cm: bool) returns (speed: real); var cpt1, cpt2 : int; sp1, sp2 : real; let cpt1 = counter(cm, sec); sp1 = if sec then real(cpt1) else 0.0; cpt2 = counter(sec, cm); sp2 = if (cm and (cpt2 > 0)) then 1.0/(real(cpt2)) else 0.0; speed = max(sp1, sp2); tel S. Tripakis – EE 249 – The Synchronous MoC

Part 2: Multi-rate synchronous models Synchronous block diagrams with triggers – Inspired by discrete-time Simulink, and SCADE Lustre with when/current What about Esterel? 44S. Tripakis – EE 249 – The Synchronous MoC

45 Triggered and timed synchronous block diagrams Motivated by Simulink, SCADE Triggered block Simulink/Stateflow diagram Sample time S. Tripakis – EE 249 – The Synchronous MoC

46 Triggered synchronous block diagrams ABC P TRIGGERED BLOCK TRIGGER multi-rate models: B executed only when trigger = true All signals “present” always But not all updated at the same time E.g., output of B updated only when trigger is true need initial value in case trigger = false at n = 0 (initial round) v Question: do triggers increase expressiveness? S. Tripakis – EE 249 – The Synchronous MoC

47 Trigger elimination S. Tripakis – EE 249 – The Synchronous MoC

48 Trigger elimination: atomic blocks S. Tripakis – EE 249 – The Synchronous MoC

49 Timed diagrams A (3,1) B C P “TIMED” BLOCKS “static” multi-rate models (2,0) (period, phase) specifications S. Tripakis – EE 249 – The Synchronous MoC

50 Timed diagrams = statically triggered diagrams A (3,1) B C P (2,0) ABC P (3,1)(2,0) = where produces: true, false, true, false, … S. Tripakis – EE 249 – The Synchronous MoC

Multi-clock synchronous programs in Lustre Then when and current operators: 51 node A(x: int, b: bool) returns (y: int); let y = current (x when b); tel T F T F F T x: b: x when b: y: S. Tripakis – EE 249 – The Synchronous MoC

Multi-clock synchronous programs in Lustre 52 node A(x1,x2: int, b: bool) returns (y: int); let y = x1 + (x2 when b); tel What is the meaning of this program? Forbidden in Lustre S. Tripakis – EE 249 – The Synchronous MoC

Multi-clock synchronous programs in Lustre In Lustre, every signal has a clock = “temporal” type The clock-calculus: a sort of type checking – Only signals with same clock can be added, multiplied, … – How to check whether two clocks (i.e., boolean signals) are the same? Problem undecidable in general In Lustre, check is syntactic 53S. Tripakis – EE 249 – The Synchronous MoC

Multi-rate in Esterel 54 every 1000 MILLISEC do emit SEC end || every 1000 MILLIMETER do emit METER end MILLISEC MILLIMETER SEC METER S. Tripakis – EE 249 – The Synchronous MoC

Part 3: Feedback and Causality Vanilla feedback: – Cyclic dependencies “broken” by registers, delays, … Unbroken cyclic dependencies: – Lustre/SBD solution: forbidden – Esterel/HW solution: forbidden unless if it makes sense Malik’s example Constructive semantics 55S. Tripakis – EE 249 – The Synchronous MoC

Feedback in Lustre 56 node counter() returns (c : int); let c = 0 -> (pre c) + 1; tel node counter() returns (c : int); let c = 0 -> c + 1; tel OK Rejected S. Tripakis – EE 249 – The Synchronous MoC

Feedback in Synchronous Block Diagrams Same as Lustre: 57 AB Rejected, unless A or B is Moore machine S. Tripakis – EE 249 – The Synchronous MoC

What about this? 58 Cyclic combinational circuit. Useful: equivalent acyclic circuit is almost 2x larger [Malik’94] z = if c then F(G(x)) else G(F(x)) S. Tripakis – EE 249 – The Synchronous MoC

Can we give meaning to cyclic synchronous models? Think of them as fix-point equations: – x = F(x) What is the meaning of these: – x = not x – x = x Is unique solution enough? – x = x or not x 59S. Tripakis – EE 249 – The Synchronous MoC

Can we give meaning to cyclic synchronous models? Think of them as fix-point equations: – x = F(x) What is the meaning of these: – x = not x – x = x Is unique solution enough? – x = x or not x S. Tripakis – EE 249 – The Synchronous MoC

Can we give meaning to cyclic synchronous models? Think of them as fix-point equations: – x = F(x) What is the meaning of these: – x = not x – x = x Is unique solution enough? – x = x or not x S. Tripakis – EE 249 – The Synchronous MoC

Can we give meaning to cyclic synchronous models? Think of them as fix-point equations: – x = F(x) What is the meaning of these: – x = not x – x = x Is unique solution enough? – x = x or not x S. Tripakis – EE 249 – The Synchronous MoC

Can we give meaning to cyclic synchronous models? Think of them as fix-point equations: – x = F(x) What is the meaning of these: – x = not x – x = x Is unique solution enough? – x = x or not x S. Tripakis – EE 249 – The Synchronous MoC

Constructive semantics Reason in constructive logic instead of classical logic “x or not x” not an axiom Then we cannot prove x=1 from: – x = x or not x 64S. Tripakis – EE 249 – The Synchronous MoC

Constructive semantics Fix-point analysis in a flat CPO: – Start with “bottom” (undefined), iterate until fix-point is reached: Guaranteed in finite number of iterations, because no. signals and no. values are both finite – If solution contains no undefined values, then circuit is constructive In our example: – x = x or not x – Bottom is the fix-point – Circuit not constructive 65 True Т False Т Т S. Tripakis – EE 249 – The Synchronous MoC

Constructive semantics: theoretical basis Kleene fixed point theorem: – Let L be a CPO and f : L → L be a continuous (and therefore monotone) function. Then f has a least fixed point equal to sup { bot, f(bot), f(f(bot)), … }continuousmonotone In our flat CPO, continuous = monotone: – Non-monotone: f(bot) > f(a), where a is not bot – Not a realistic function In out flat CPO, termination is guaranteed. 66S. Tripakis – EE 249 – The Synchronous MoC

Constructive semantics Another example: – x = a and not y – y = b and not x Here we have external inputs, must try for all possible input combinations Exercise! 67S. Tripakis – EE 249 – The Synchronous MoC

Summary Synchronous model of computation: – Widespread, many languages, many applications – Easier to understand, easier to verify (than asynchronous interleaving) – Interesting semantically To go further: – Interesting implementation problems: how to preserve the properties that the synchronous abstraction provides (determinism, values, …) during implementation? 68S. Tripakis – EE 249 – The Synchronous MoC

Questions? 69S. Tripakis – EE 249 – The Synchronous MoC

References State machines (Moore, Mealy, …): – Switching and Finite Automata Theory. Zvi Kohavi, McGraw-Hill, Synchronous block diagrams: – Lublinerman and Tripakis papers on modular code generation: available from Synchronous languages: – “The synchronous languages 12 years later”, Proc. IEEE, Jan 2003, and references therein. Constructive semantics: – Sharad Malik. Analysis of cyclic combinational circuits. ICCAD – Gerard Berry. The Constructive Semantics of Pure Esterel. Draft book, 1996, downloadable, google it. General, overview: – P. Caspi, P. Raymond and S. Tripakis. Synchronous Programming. In I. Lee, J. Leung, and S. Son, editors, Handbook of Real-Time and Embedded Systems. Chapman & Hall, Available from site above. 70S. Tripakis – EE 249 – The Synchronous MoC

Back-up slides 71S. Tripakis – EE 249 – The Synchronous MoC

Mealy Machine A0/0 A1/1 B/ A 10/0 B 00/1 00/0, 01/1 10/0, 01/0 Moore Machine From Mealy to Moore 72S. Tripakis – EE 249 – The Synchronous MoC

Moore vs. Mealy machines Every Moore machine is also a Mealy machine – Why? Every Mealy machine can be transformed to an equivalent Moore machine – How? – What’s the cost? – What does “equivalent” mean? 73S. Tripakis – EE 249 – The Synchronous MoC