42: A Component-Based Approach to Virtual Prototyping of Heterogeneous Embedded Systems

Size: px
Start display at page:

Download "42: A Component-Based Approach to Virtual Prototyping of Heterogeneous Embedded Systems"

Transcription

1 tel , version 1-24 Nov 20 42: A Component-Based Approach to Virtual Prototyping of Heterogeneous Embedded Systems Ph.D. Defense Tayeb bouhadiba Directrice de thèse : Florence maraninchi Jury: Marc pouzet Rapporteur Lionel seinturier Rapporteur Jean-Bernard stefani Examinateur September 15th 20 Bouhadiba - Ph.D. Defense 42 September 15th 20 1 / 45

2 Introduction & Sources of Inspiration Embedded Systems tel , version 1-24 Nov 20 Safety Critical Systems Embedded Systems Consumer Electronics Bouhadiba - Ph.D. Defense 42 September 15th 20 2 / 45

3 Introduction & Sources of Inspiration Embedded Systems Embedded Systems, Components & Heterogeneity tel , version 1-24 Nov 20 Software + Hardware Bouhadiba - Ph.D. Defense 42 September 15th 20 3 / 45

4 Introduction & Sources of Inspiration Embedded Systems Embedded Systems, Components & Heterogeneity tel , version 1-24 Nov 20 Processors Hardware IP s (Intellectual Prerties) Software + Hardware Bouhadiba - Ph.D. Defense 42 September 15th 20 3 / 45

5 Introduction & Sources of Inspiration Embedded Systems Embedded Systems, Components & Heterogeneity tel , version 1-24 Nov 20 Processors Hardware IP s (Intellectual Prerties) Software + Hardware Bouhadiba - Ph.D. Defense 42 September 15th 20 3 / 45

6 Introduction & Sources of Inspiration Embedded Systems Embedded Systems, Components & Heterogeneity tel , version 1-24 Nov 20 Processors Analog Digital Hardware IP s (Intellectual Prerties) Software + Hardware Bouhadiba - Ph.D. Defense 42 September 15th 20 3 / 45

7 Introduction & Sources of Inspiration Embedded Systems Embedded Systems, Components & Heterogeneity tel , version 1-24 Nov 20 Processors Analog Digital Hardware IP s Synchronous (Intellectual Prerties) Asynchronous Software + Hardware Bouhadiba - Ph.D. Defense 42 September 15th 20 3 / 45

8 Introduction & Sources of Inspiration Virtual Prototyping tel , version 1-24 Nov 20 Embedded Systems Virtual Prototyping = An Executable Model Before the System is Manufactured Bouhadiba - Ph.D. Defense 42 September 15th 20 4 / 45

9 Introduction & Sources of Inspiration Embedded Systems Virtual Prototyping tel , version 1-24 Nov 20 Modeling Bouhadiba - Ph.D. Defense 42 September 15th 20 4 / 45

10 Introduction & Sources of Inspiration Embedded Systems Virtual Prototyping tel , version 1-24 Nov 20 Modeling Software Bouhadiba - Ph.D. Defense 42 September 15th 20 4 / 45

11 Introduction & Sources of Inspiration Embedded Systems Virtual Prototyping tel , version 1-24 Nov 20 Modeling Virtual Prototyping Software Bouhadiba - Ph.D. Defense 42 September 15th 20 4 / 45

12 Introduction & Sources of Inspiration Embedded Systems Virtual Prototyping tel , version 1-24 Nov 20 Modeling Virtual Prototyping Executability Software Bouhadiba - Ph.D. Defense 42 September 15th 20 4 / 45

13 6 Bouhadiba Summary - Ph.D. Defense 42 September 15th 20 5 / 45 Contents tel , version 1-24 Nov 20 Introduction & Sources of Inspiration Virtual Prototyping of Embedded Systems 1 Introduction & Sources of Inspiration Virtual Prototyping of Embedded Systems Modeling Hardware/Software with Synchronous Languages Ptolemy Specifying Components: Contracts 2 Overview of 42 & Examples [GPCE07] 3 Hardware Simulation by Interpreting Contracts [COORD09] 4 Using 42 Together with Existing Approaches [EMSOFT09] 5 Some Related Work

14 Introduction & Sources of Inspiration Virtual Prototyping of Embedded Systems SystemC/TLM for Systems-on-a-Chip tel , version 1-24 Nov 20 while(true) x = 42; while (x neq 0) y = read(addrm + x); write(addrm, x);... write(addrd+0x0, addrm); write(addrd+0x1, 42); write(addrd+0x4, 0x); Embedded Software Hardware Architecture A SoC (System-on-a-Chip) Bouhadiba - Ph.D. Defense 42 September 15th 20 6 / 45

15 Introduction & Sources of Inspiration Virtual Prototyping of Embedded Systems SystemC/TLM for Systems-on-a-Chip tel , version 1-24 Nov 20 while(true) x = 42; while (x neq 0) y = read(addrm + x); write(addrm, x);... write(addrd+0x0, addrm); write(addrd+0x1, 42); write(addrd+0x4, 0x); Embedded Software TLM (Transaction-Level Modeling) provides CPU Virtual Prototype Bouhadiba - Ph.D. Defense 42 September 15th 20 6 / 45

16 Introduction & Sources of Inspiration Virtual Prototyping of Embedded Systems SystemC/TLM for Systems-on-a-Chip tel , version 1-24 Nov 20 while(true) x = 42; while (x neq 0) y = read(addrm + x); write(addrm, x);... write(addrd+0x0, addrm); write(addrd+0x1, 42); write(addrd+0x4, 0x); Embedded Software TLM (Transaction-Level Modeling) provides CPU Virtual Prototype Bouhadiba - Ph.D. Defense 42 September 15th 20 6 / 45

17 Introduction & Sources of Inspiration Virtual Prototyping of Embedded Systems SystemC/TLM for Systems-on-a-Chip tel , version 1-24 Nov 20 while(true) x = 42; while (x neq 0) y = read(addrm + x); write(addrm, x);... write(addrd+0x0, addrm); write(addrd+0x1, 42); write(addrd+0x4, 0x); Embedded Software TLM (Transaction-Level Modeling) provides CPU Early Available Virtual Prototype Bouhadiba - Ph.D. Defense 42 September 15th 20 6 / 45

18 Introduction & Sources of Inspiration Virtual Prototyping of Embedded Systems Virtual Prototyping of Sensor Networks tel , version 1-24 Nov 20 CPU, Sensor, Memory, Radio, Battery Several sensors communicating by radio Network lifetime depends on energy consumption Use of virtual prototyping to study non-functional aspects (e.g., energy) Bouhadiba - Ph.D. Defense 42 September 15th 20 7 / 45

19 6 Bouhadiba Summary - Ph.D. Defense 42 September 15th 20 8 / 45 Contents tel , version 1-24 Nov 20 Introduction & Sources of Inspiration Modeling Hardware/Software with Synchronous Languages 1 Introduction & Sources of Inspiration Virtual Prototyping of Embedded Systems Modeling Hardware/Software with Synchronous Languages Ptolemy Specifying Components: Contracts 2 Overview of 42 & Examples [GPCE07] 3 Hardware Simulation by Interpreting Contracts [COORD09] 4 Using 42 Together with Existing Approaches [EMSOFT09] 5 Some Related Work

20 Introduction & Sources of Inspiration Modeling Hardware/Software with Synchronous Languages Modeling HW/SW with Synchronous Languages tel , version 1-24 Nov 20 ATV (Automated Transfer Vehicule) PFS (Proximity Flight Safety) is Embedded in the ATV Bouhadiba - Ph.D. Defense 42 September 15th 20 9 / 45

21 Introduction & Sources of Inspiration Modeling Hardware/Software with Synchronous Languages Modeling HW/SW with Synchronous Languages tel , version 1-24 Nov 20 ATV (Automated Transfer Vehicule) PFS (Proximity Flight Safety) is Embedded in the ATV The original model of the PFS is written in AADL (Architecture Analysis and Design Language) (Not Executbale) Bouhadiba - Ph.D. Defense 42 September 15th 20 9 / 45

22 Introduction & Sources of Inspiration Modeling Hardware/Software with Synchronous Languages Modeling HW/SW with Synchronous Languages tel , version 1-24 Nov 20 ATV (Automated Transfer Vehicule) Simulation Automatic Testing PFS (Proximity Flight Safety) is Embedded in the ATV PFS description in Lustre The original model of the PFS is written in AADL (Architecture Analysis and Design Language) (Not Executbale) Automatic Translation into Lustre E. Jahier, N. Halbwachs, P. Raymond, X. Nicollin, D. Lesens, Virtual Execution of AADL Models via a Translation into Synchronous Programs [EMSOFT07] Bouhadiba - Ph.D. Defense 42 September 15th 20 9 / 45

23 6 Bouhadiba Summary - Ph.D. Defense 42 September 15th / 45 Contents tel , version 1-24 Nov 20 Introduction & Sources of Inspiration Ptolemy 1 Introduction & Sources of Inspiration Virtual Prototyping of Embedded Systems Modeling Hardware/Software with Synchronous Languages Ptolemy Specifying Components: Contracts 2 Overview of 42 & Examples [GPCE07] 3 Hardware Simulation by Interpreting Contracts [COORD09] 4 Using 42 Together with Existing Approaches [EMSOFT09] 5 Some Related Work

24 Introduction & Sources of Inspiration Ptolemy Ptolemy tel , version 1-24 Nov 20 ptolemy.eecs.berkeley.edu MoCC : Model of Computation and Communication composite actor external port actor port hierarchical abstraction Components are actors The director implements a MoCC Hierarchical framework a catalogue of predefined MoCCs: Synchronous Reactive, Discrete Event, Continuous Time, etc. Bouhadiba - Ph.D. Defense 42 September 15th / 45

25 6 Bouhadiba Summary - Ph.D. Defense 42 September 15th / 45 Contents tel , version 1-24 Nov 20 Introduction & Sources of Inspiration Specifying Components: Contracts 1 Introduction & Sources of Inspiration Virtual Prototyping of Embedded Systems Modeling Hardware/Software with Synchronous Languages Ptolemy Specifying Components: Contracts 2 Overview of 42 & Examples [GPCE07] 3 Hardware Simulation by Interpreting Contracts [COORD09] 4 Using 42 Together with Existing Approaches [EMSOFT09] 5 Some Related Work

26 Introduction & Sources of Inspiration Specifying Components: Contracts Classification of Contracts in the CBSE Community tel , version 1-24 Nov 20 (Component-Based Software Engineering) Syntactic contracts Interface Description languages (Java-IDL, WSDL, IDL, etc.) Behavioral contracts pre and post conditions, assertions, etc. (Design by Contracts TM, Eiffel, icontracts, etc.) Synchronization contracts Sequence of method-calls, Component synchronization, etc. (PROCOL, Interface automata, Session types, etc.) Quality of service contracts Resource consumption, Image quality, etc. Bouhadiba - Ph.D. Defense 42 September 15th / 45

27 Introduction & Sources of Inspiration Specifying Components: Contracts Contracts in the Hardware Community tel , version 1-24 Nov 20 and the Synchronous Languages Don t care conditions Hardware timization Conditional dependencies in Signal Cycle analysis in synchronous circuits i Assume/Guarantee reasoning b Modular verification (K. McMillan) Executable specifications for Lustre (L. Morel) i o b o Input (ib)=() never occurs i b A o o o depends on i when b=true o o?? G Bouhadiba - Ph.D. Defense 42 September 15th / 45

28 Introduction & Sources of Inspiration Specifying Components: Contracts Observation & Motivations of 42 tel , version 1-24 Nov 20 In each context of Virtual Prototyping of embedded systems, there exists a notion of components and MoCCs related issues 42 aims at providing: A language-independent component-based framework for modeling hardware/software systems. Support for a clean definition of components, and help enforcing the FAMAPASAP (Forget As Much As Possible As Soon As Possible) principle. Support for integration of existing code and models in en virtual prototyping environments. Bouhadiba - Ph.D. Defense 42 September 15th / 45

29 Contents tel , version 1-24 Nov 20 Overview of 42 & Examples [GPCE07] 1 Introduction & Sources of Inspiration Components & Assemblies 2 Overview of 42 & Examples [GPCE07] Components & Assemblies Explicit Specification of Components (Contracts) 3 Hardware Simulation by Interpreting Contracts [COORD09] 4 Using 42 Together with Existing Approaches [EMSOFT09] 5 Some Related Work 6 Summary Bouhadiba - Ph.D. Defense 42 September 15th / 45

30 Overview of 42 & Examples [GPCE07] Components & Assemblies 42 in a Nutshell: Basic Components tel , version 1-24 Nov 20 Input Data Ports id1 id2 id3 Input Control Ports ic2 ic1 M: internal memory oc2 oc1 Output Control Ports od1 od2 od3 Output Data Ports oc1:{a, b, c} oc2:{t, F} Bouhadiba - Ph.D. Defense 42 September 15th / 45

31 Overview of 42 & Examples [GPCE07] Components & Assemblies 42 in a Nutshell: Basic Components tel , version 1-24 Nov 20 Input Data Ports id1 id2 id3 Input Control Ports ic2 ic1 atomic step M: internal memory oc2 oc1 Output Control Ports od1 od2 od3 Output Data Ports oc1:{a, b, c} oc2:{t, F} Atomic... f o r i c 1 do : { a := i d 1 ; b := i d 2 ; od1 := f ( a, b ) ; oc1 := ok ; M :=!M; }... Bouhadiba - Ph.D. Defense 42 September 15th / 45

32 Overview of 42 & Examples [GPCE07] Components & Assemblies 42 in a Nutshell: Assembling Components tel , version 1-24 Nov 20 PROD report G FIFO CONS report report report Bouhadiba - Ph.D. Defense 42 September 15th / 45

33 Overview of 42 & Examples [GPCE07] Components & Assemblies 42 in a Nutshell: Assembling Components tel , version 1-24 Nov 20 PROD report d w g w req w FIFO G report req r report d r CONS g r report Bouhadiba - Ph.D. Defense 42 September 15th / 45

34 Overview of 42 & Examples [GPCE07] Components & Assemblies 42 in a Nutshell: Assembling Components tel , version 1-24 Nov 20 For each OP G the controller: G PROD report d w g w req w FIFO report req r report d r controller CONS g r report Bouhadiba - Ph.D. Defense 42 September 15th / 45

35 Overview of 42 & Examples [GPCE07] Components & Assemblies 42 in a Nutshell: Assembling Components tel , version 1-24 Nov 20 For each OP G the controller: Activates PROD, CONS, FIFO through Reads their output control ports (report) PROD report d w g w req w FIFO report G report req r d r controller CONS g r report Bouhadiba - Ph.D. Defense 42 September 15th / 45

36 Overview of 42 & Examples [GPCE07] Components & Assemblies 42 in a Nutshell: Assembling Components tel , version 1-24 Nov 20 For each OP G the controller: Activates PROD, CONS, FIFO through Reads their output control ports (report) Manages a temporary memory (reqr, dr,...) PROD report d w g w req w FIFO report G report req r d r controller CONS g r report Bouhadiba - Ph.D. Defense 42 September 15th / 45

37 Overview of 42 & Examples [GPCE07] Components & Assemblies 42 in a Nutshell: Assembling Components tel , version 1-24 Nov 20 For each OP G the controller: Activates PROD, CONS, FIFO through Reads their output control ports (report) Manages a temporary memory (reqr, dr,...) Sets global output values PROD report d w g w req w FIFO report G report req r d r controller CONS g r report Bouhadiba - Ph.D. Defense 42 September 15th / 45

38 Overview of 42 & Examples [GPCE07] Components & Assemblies 42 in a Nutshell: Assembling Components tel , version 1-24 Nov 20 C o n t r o l l e r i s { v a r M : b o o l ; f o r OP G do : { / d e f i n e s g. dw, dr, reqw,... : f i f o ( 1, i n t ) ; M := random ( ) ; i f (M) { PROD. ; reqw. put ; reqw. g e t ; FIFO. ; gw. put ; gw. g e t ; a := FIFO. r e p o r t ; / r e a d s oc. i f ( a==ok ){ / o u t p u t c o n t r o l PROD. ; dw. put ; dw. g e t ; FIFO. ; / a c t i v a t e s FIFO.... }... } e l s e { CONS. ; r e q r. put ; r e q r. g e t ; FIFO. ; g r. put ; g r. g e t ; a := FIFO. r e p o r t ;... } } } For each OP G the controller: Activates PROD, CONS, FIFO through Reads their output control ports (report) Manages a temporary memory (reqr, dr,...) Sets global output values PROD report d w g w req w FIFO report G report req r d r controller CONS g r report Bouhadiba - Ph.D. Defense 42 September 15th / 45

39 Overview of 42 & Examples [GPCE07] Components & Assemblies 42 in a Nutshell: Assembling Components tel , version 1-24 Nov 20 C o n t r o l l e r i s { v a r M : b o o l ; f o r OP G do : { / d e f i n e s g. dw, dr, reqw,... : f i f o ( 1, i n t ) ; M := random ( ) ; i f (M) { PROD. ; reqw. put ; reqw. g e t ; FIFO. ; gw. put ; gw. g e t ; a := FIFO. r e p o r t ; / r e a d s oc. i f ( a==ok ){ / o u t p u t c o n t r o l PROD. ; dw. put ; dw. g e t ; FIFO. ; / a c t i v a t e s FIFO.... }... } e l s e { CONS. ; r e q r. put ; r e q r. g e t ; FIFO. ; g r. put ; g r. g e t ; a := FIFO. r e p o r t ;... } } } For each OP G the controller: Activates PROD, CONS, FIFO through Reads their output control ports (report) Manages a temporary memory (reqr, dr,...) Sets global output values PROD report d w g w req w FIFO report G report req r d r controller CONS g r report Bouhadiba - Ph.D. Defense 42 September 15th / 45

40 Overview of 42 & Examples [GPCE07] Components & Assemblies 42 in a Nutshell: Assembling Components tel , version 1-24 Nov 20 C o n t r o l l e r i s { v a r M : b o o l ; f o r OP G do : { / d e f i n e s g. dw, dr, reqw,... : f i f o ( 1, i n t ) ; M := random ( ) ; i f (M) { PROD. ; reqw. put ; reqw. g e t ; FIFO. ; gw. put ; gw. g e t ; a := FIFO. r e p o r t ; / r e a d s oc. i f ( a==ok ){ / o u t p u t c o n t r o l PROD. ; dw. put ; dw. g e t ; FIFO. ; / a c t i v a t e s FIFO.... }... } e l s e { CONS. ; r e q r. put ; r e q r. g e t ; FIFO. ; g r. put ; g r. g e t ; a := FIFO. r e p o r t ;... } } } For each OP G the controller: Activates PROD, CONS, FIFO through Reads their output control ports (report) Manages a temporary memory (reqr, dr,...) Sets global output values PROD report d w g w req w FIFO report G report req r d r controller CONS g r report Bouhadiba - Ph.D. Defense 42 September 15th / 45

41 Overview of 42 & Examples [GPCE07] Components & Assemblies 42 in a Nutshell: Assembling Components tel , version 1-24 Nov 20 C o n t r o l l e r i s { v a r M : b o o l ; f o r OP G do : { / d e f i n e s g. dw, dr, reqw,... : f i f o ( 1, i n t ) ; M := random ( ) ; i f (M) { PROD. ; reqw. put ; reqw. g e t ; FIFO. ; gw. put ; gw. g e t ; a := FIFO. r e p o r t ; / r e a d s oc. i f ( a==ok ){ / o u t p u t c o n t r o l PROD. ; dw. put ; dw. g e t ; FIFO. ; / a c t i v a t e s FIFO.... }... } e l s e { CONS. ; r e q r. put ; r e q r. g e t ; FIFO. ; g r. put ; g r. g e t ; a := FIFO. r e p o r t ;... } } } For each OP G the controller: Activates PROD, CONS, FIFO through Reads their output control ports (report) Manages a temporary memory (reqr, dr,...) Sets global output values PROD report d w g w req w FIFO report G report req r d r controller CONS g r report Bouhadiba - Ph.D. Defense 42 September 15th / 45

42 Overview of 42 & Examples [GPCE07] Components & Assemblies Summary of 42 Basics tel , version 1-24 Nov 20 Summary of 42 Hierarchical model = modeling heterogeneity in the same spirit as Ptolemy Controllers are expressed as programs identification of the basic primitives for describing MoCCs Separation of control/data to enforce the FAMAPASAP more details later Bouhadiba - Ph.D. Defense 42 September 15th / 45

43 Input Data Ports Overview of 42 & Examples [GPCE07] Explicit Specification of Components (Contracts) Control Contracts for 42 Components tel , version 1-24 Nov 20 id1 id2 id3 c0 Input Control Ports ic2 ic1 atomic step internal memory oc2 oc1 Output Control Ports c1 od1 od2 od3 Output Data Ports oc1:{a, b, c} oc2:{t, F} c2 Bouhadiba - Ph.D. Defense 42 September 15th / 45

44 Input Data Ports Overview of 42 & Examples [GPCE07] Explicit Specification of Components (Contracts) Control Contracts for 42 Components tel , version 1-24 Nov 20 id1 id2 id3 ic1 c0 Input Control Ports ic2 ic1 atomic step internal memory oc2 oc1 Output Control Ports ic2 ic1 c1 od1 od2 od3 Output Data Ports oc1:{a, b, c} oc2:{t, F} ic2 c2 Allowed activation sequences Bouhadiba - Ph.D. Defense 42 September 15th / 45

45 Input Data Ports Overview of 42 & Examples [GPCE07] Explicit Specification of Components (Contracts) Control Contracts for 42 Components tel , version 1-24 Nov 20 id1 id2 id3 {id1} ic1 c0 Input Control Ports ic2 ic1 atomic step internal memory oc2 oc1 Output Control Ports {id1} ic1 {od2} {} ic2 c1 od1 od2 od3 {od2} Output Data Ports oc1:{a, b, c} oc2:{t, F} {id2} ic2 c2 Allowed activation sequences Data dependencies (Required, Provided) {od1; od3=l} Bouhadiba - Ph.D. Defense 42 September 15th / 45

46 Input Data Ports Overview of 42 & Examples [GPCE07] Explicit Specification of Components (Contracts) Control Contracts for 42 Components tel , version 1-24 Nov 20 id1 id2 id3 Input Control Ports ic2 ic1 atomic step internal memory oc2 oc1 Output Control Ports {id1} ic1/α = oc2{od2} c0 {id1} ic1/α = oc2{od2} {} ic2 c1 od1 od2 od3 Output Data Ports oc1:{a, b, c} oc2:{t, F} {id2} ic2/β = oc1{od1; od3=l} c2 Allowed activation sequences Data dependencies (Required, Provided) Control information Bouhadiba - Ph.D. Defense 42 September 15th / 45

47 Input Data Ports Overview of 42 & Examples [GPCE07] Explicit Specification of Components (Contracts) Control Contracts for 42 Components tel , version 1-24 Nov 20 id1 id2 id3 Input Control Ports ic2 ic1 atomic step internal memory oc2 oc1 Output Control Ports [α = T ]{id1} ic1/α = oc2{od2} {id1} ic1/α = oc2{od2} c0 {} ic2 c1 od1 od2 od3 Output Data Ports oc1:{a, b, c} oc2:{t, F} [α = F ]{id2} ic2/β = oc1{od1; od3=l} c2 Allowed activation sequences Data dependencies (Required, Provided) Control information Conditional activations. Bouhadiba - Ph.D. Defense 42 September 15th / 45

48 Input Data Ports Overview of 42 & Examples [GPCE07] Explicit Specification of Components (Contracts) Control Contracts for 42 Components tel , version 1-24 Nov 20 id1 id2 id3 Input Control Ports ic2 ic1 atomic step internal memory oc2 oc1 Output Control Ports [α = T ]{id1} ic1/α = oc2{od2} {id1} ic1/α = oc2{od2} c0 c1 od1 od2 od3 Output Data Ports oc1:{a, b, c} oc2:{t, F} {} ic2 {if (β=a) then od2;} [α = F ]{id2} ic2/β = oc1{od1; od3=l} c2 Allowed activation sequences Data dependencies (Required, Provided) Control information Conditional activations. Conditional data dependencies. Bouhadiba - Ph.D. Defense 42 September 15th / 45

49 Overview of 42 & Examples [GPCE07] What are 42 Contracts used for? tel , version 1-24 Nov contracts (+ the Architecture Description Language) PROD report FIFO report Explicit Specification of Components (Contracts) controller CONS report Bouhadiba - Ph.D. Defense 42 September 15th / 45

50 Overview of 42 & Examples [GPCE07] What are 42 Contracts used for? tel , version 1-24 Nov contracts (+ the Architecture Description Language) PROD report FIFO report Explicit Specification of Components (Contracts) controller CONS report Bouhadiba - Ph.D. Defense 42 September 15th / 45

51 Overview of 42 & Examples [GPCE07] What are 42 Contracts used for? tel , version 1-24 Nov contracts (+ the Architecture Description Language) Testing controllers/components consistency PROD report FIFO report Explicit Specification of Components (Contracts) controller CONS report Bouhadiba - Ph.D. Defense 42 September 15th / 45

52 Overview of 42 & Examples [GPCE07] What are 42 Contracts used for? tel , version 1-24 Nov contracts (+ the Architecture Description Language) Testing controllers/components consistency Contract Interpretation PROD report FIFO report Explicit Specification of Components (Contracts) controller CONS report Bouhadiba - Ph.D. Defense 42 September 15th / 45

53 Overview of 42 & Examples [GPCE07] What are 42 Contracts used for? tel , version 1-24 Nov contracts (+ the Architecture Description Language) Testing controllers/components consistency Contract Interpretation PROD report FIFO report Explicit Specification of Components (Contracts) controller CONS report Bouhadiba - Ph.D. Defense 42 September 15th / 45

54 Overview of 42 & Examples [GPCE07] What are 42 Contracts used for? tel , version 1-24 Nov contracts (+ the Architecture Description Language) Testing controllers/components consistency Contract Interpretation Testing component/contract consistency? PROD report FIFO report Explicit Specification of Components (Contracts) controller CONS report Bouhadiba - Ph.D. Defense 42 September 15th / 45?

55 Hardware Simulation by Interpreting Contracts [COORD09] Contents tel , version 1-24 Nov 20 1 Introduction & Sources of Inspiration 2 Overview of 42 & Examples [GPCE07] 3 Hardware Simulation by Interpreting Contracts [COORD09] Contract Interpretation Contract Interpretation for Hardware Simulation Executing Embedded Software on Hardware Models 4 Using 42 Together with Existing Approaches [EMSOFT09] 5 Some Related Work 6 Summary Bouhadiba - Ph.D. Defense 42 September 15th / 45

56 Hardware Simulation by Interpreting Contracts [COORD09] Contract Interpretation Contract Interpretation: Principle tel , version 1-24 Nov 20 [α = n]{}/α = end{} ctrl Async {}{} {}/α = end{} b a1 a2 b1 b2 Contract A Contract B a A B {b}{} a3 end end [α = y]{}{a} {a}{} b3 {}{b} Bouhadiba - Ph.D. Defense 42 September 15th / 45

57 Hardware Simulation by Interpreting Contracts [COORD09] Contract Interpretation Contract Interpretation: Principle tel , version 1-24 Nov 20 [α = n]{}/α = end{} ctrl Async {}{} {}/α = end{} b a1 a2 b1 b2 Contract A Contract B a A B {b}{} a3 a1 b1 available={} α = [α = y]{}{a} end end The controller maintains: {a}{} The current state of each contract The set of available data The values of the variables(α) b3 {}{b} Bouhadiba - Ph.D. Defense 42 September 15th / 45

58 Hardware Simulation by Interpreting Contracts [COORD09] Contract Interpretation Contract Interpretation: Principle tel , version 1-24 Nov 20 [α = n]{}/α = end{} ctrl Async {}{} {}/α = end{} b a1 a2 b1 b2 Contract A Contract B a A B {b}{} a3 a1 b1 A. available={} α = A. B. a1 b2 available={} α = [α = y]{}{a} a2 b1 available={} α = y a2 b1 available={} α = n end end For each global activation : {a}{} b3 Depending on the available data it selects a component and activates it The set of available data is updated The output controls are given non-deterministic values {}{b} Bouhadiba - Ph.D. Defense 42 September 15th / 45

59 Hardware Simulation by Interpreting Contracts [COORD09] Contract Interpretation Contract Interpretation: Principle tel , version 1-24 Nov 20 [α = n]{}/α = end{} ctrl Async {}{} {}/α = end{} b a1 a2 b1 b2 Contract A Contract B a A B {b}{} a3 a1 b1 A. available={} α = A. B. a1 b2 available={} α = B. a1 b3 available={b} α = [α = y]{}{a} a2 b1 A. available={} α = y A. A. a2 b1 available={} α = n a1 b3 A. available={a} α = end a3 b1 available={a} α = y B. end a3 b2 available={a} α = B. a3 b3 available={a, b} α = {a}{} b3 {}{b} Bouhadiba - Ph.D. Defense 42 September 15th / 45

60 Hardware Simulation by Interpreting Contracts [COORD09] Contract Interpretation Contract Interpretation: Principle tel , version 1-24 Nov 20 [α = n]{}/α = end{} ctrl Async {}{} {}/α = end{} b a1 a2 b1 b2 Contract A Contract B a A B {b}{} a3 a1 b1 A. available={} α = A. B. a1 b2 available={} α = B. a1 b3 available={b} α = [α = y]{}{a} a2 b1 A. available={} α = y A. A. a2 b1 available={} α = n a1 b3 A. available={a} α = end end a3 b1 available={a} α = y B. Example execution path a3 b2 available={a} α = B. a3 b3 available={a, b} α = {a}{} b3 {}{b} Bouhadiba - Ph.D. Defense 42 September 15th / 45

61 Hardware Simulation by Interpreting Contracts [COORD09] Contract Interpretation Contract Interpretation: Principle tel , version 1-24 Nov 20 [α = n]{}/α = end{} ctrl Async {}{} {}/α = end{} b a1 a2 b1 b2 Contract A Contract B a A B {b}{} a3 a1 b1 A. available={} α = A. B. a1 b2 available={} α = B. a1 b3 available={b} α = [α = y]{}{a} a2 b1 A. available={} α = y A. A. a2 b1 available={} α = n a1 b3 A. available={a} α = end end a3 b1 A. available={a} α = y B. Example execution path a3 b2 available={a} α = B. a3 b3 available={a, b} α = {a}{} b3 {}{b} Bouhadiba - Ph.D. Defense 42 September 15th / 45

62 Hardware Simulation by Interpreting Contracts [COORD09] Contract Interpretation Contract Interpretation: Principle tel , version 1-24 Nov 20 [α = n]{}/α = end{} ctrl Async {}{} {}/α = end{} b a1 a2 b1 b2 Contract A Contract B a A B {b}{} a3 a1 b1 A. available={} α = A. B. a1 b2 available={} α = B. a1 b3 available={b} α = [α = y]{}{a} a2 b1 A. available={} α = y A. A. a2 b1 available={} α = n a1 b3 A. available={a} α = end end requires b X a3 b1 A. available={a} α = y B. Example execution path a3 b2 available={a} α = B. a3 b3 available={a, b} α = {a}{} b3 {}{b} Bouhadiba - Ph.D. Defense 42 September 15th / 45

63 Hardware Simulation by Interpreting Contracts [COORD09] Contract Interpretation for Hardware Simulation Modeling Hardware with 42: Case Study tel , version 1-24 Nov 20 Embedded Software #d e f i n e width 240 #d e f i n e h e i g h t 240 #d e f i n e g r e e n 0x0000AABB... i n t main ( ) { w h i l e ( 1 ) { // w r i t i n g t h e g r e e n image / f o r ( i n t x =0; x<width h e i g h t ) write mem ( g r e e n ) ; w r i t e l c d (0 x, 0 x1 ) ; w a i t i n t e r r u p t ( ) ; // w r i t i n g t h e b l u e image / f o r ( i n t x =0; x<width h e i g h t ) write mem ( b l u e ) ; w r i t e l c d (0 x, 0 x1 ) ; w a i t i n t e r r u p t ( ) ; // w r i t i n g t h e r e d image / f o r ( i n t x =0; x<width h e i g h t ) write mem ( r e d ) ; w r i t e l c d (0 x, 0 x1 ) ; w a i t i n t e r r u p t ( ) ; } } CPU Interrupt LCD (display) address r/w status data address r/w status data BUS address r/w status data MEM Bouhadiba - Ph.D. Defense 42 September 15th / 45

64 Hardware Simulation by Interpreting Contracts [COORD09] Contract Interpretation for Hardware Simulation Modeling Hardware with 42: Case Study tel , version 1-24 Nov 20 Embedded Software #d e f i n e width 240 #d e f i n e h e i g h t 240 #d e f i n e g r e e n 0x0000AABB... i n t main ( ) { w h i l e ( 1 ) { // w r i t i n g t h e g r e e n image / f o r ( i n t x =0; x<width h e i g h t ) write mem ( g r e e n ) ; w r i t e l c d (0 x, 0 x1 ) ; w a i t i n t e r r u p t ( ) ; // w r i t i n g t h e b l u e image / f o r ( i n t x =0; x<width h e i g h t ) write mem ( b l u e ) ; w r i t e l c d (0 x, 0 x1 ) ; w a i t i n t e r r u p t ( ) ; // w r i t i n g t h e r e d image / f o r ( i n t x =0; x<width h e i g h t ) write mem ( r e d ) ; w r i t e l c d (0 x, 0 x1 ) ; w a i t i n t e r r u p t ( ) ; } } CPU Interrupt LCD (display) address r/w status data address r/w status data BUS address r/w status data MEM Bouhadiba - Ph.D. Defense 42 September 15th / 45

65 Hardware Simulation by Interpreting Contracts [COORD09] Contract Interpretation for Hardware Simulation Modeling Hardware with 42: Case Study tel , version 1-24 Nov 20 Embedded Software #d e f i n e width 240 #d e f i n e h e i g h t 240 #d e f i n e g r e e n 0x0000AABB... i n t main ( ) { w h i l e ( 1 ) { // w r i t i n g t h e g r e e n image / f o r ( i n t x =0; x<width h e i g h t ) write mem ( g r e e n ) ; w r i t e l c d (0 x, 0 x1 ) ; w a i t i n t e r r u p t ( ) ; // w r i t i n g t h e b l u e image / f o r ( i n t x =0; x<width h e i g h t ) write mem ( b l u e ) ; w r i t e l c d (0 x, 0 x1 ) ; w a i t i n t e r r u p t ( ) ; // w r i t i n g t h e r e d image / f o r ( i n t x =0; x<width h e i g h t ) write mem ( r e d ) ; w r i t e l c d (0 x, 0 x1 ) ; w a i t i n t e r r u p t ( ) ; } } CPU Interrupt LCD (display) address r/w status data address r/w status data BUS address r/w status data MEM Bouhadiba - Ph.D. Defense 42 September 15th / 45

66 Hardware Simulation by Interpreting Contracts [COORD09] Contract Interpretation for Hardware Simulation Modeling Hardware with 42: Case Study tel , version 1-24 Nov 20 Embedded Software #d e f i n e width 240 #d e f i n e h e i g h t 240 #d e f i n e g r e e n 0x0000AABB... i n t main ( ) { w h i l e ( 1 ) { // w r i t i n g t h e g r e e n image / f o r ( i n t x =0; x<width h e i g h t ) write mem ( g r e e n ) ; w r i t e l c d (0 x, 0 x1 ) ; w a i t i n t e r r u p t ( ) ; // w r i t i n g t h e b l u e image / f o r ( i n t x =0; x<width h e i g h t ) write mem ( b l u e ) ; w r i t e l c d (0 x, 0 x1 ) ; w a i t i n t e r r u p t ( ) ; // w r i t i n g t h e r e d image / f o r ( i n t x =0; x<width h e i g h t ) write mem ( r e d ) ; w r i t e l c d (0 x, 0 x1 ) ; w a i t i n t e r r u p t ( ) ; } } CPU Interrupt LCD (display) address r/w status data address r/w status data BUS address r/w status data MEM Bouhadiba - Ph.D. Defense 42 September 15th / 45

67 Hardware Simulation by Interpreting Contracts [COORD09] Contract Interpretation for Hardware Simulation Modeling Hardware with 42: Case Study tel , version 1-24 Nov 20 Embedded Software #d e f i n e width 240 #d e f i n e h e i g h t 240 #d e f i n e g r e e n 0x0000AABB... i n t main ( ) { w h i l e ( 1 ) { // w r i t i n g t h e g r e e n image / f o r ( i n t x =0; x<width h e i g h t ) write mem ( g r e e n ) ; w r i t e l c d (0 x, 0 x1 ) ; w a i t i n t e r r u p t ( ) ; // w r i t i n g t h e b l u e image / f o r ( i n t x =0; x<width h e i g h t ) write mem ( b l u e ) ; w r i t e l c d (0 x, 0 x1 ) ; w a i t i n t e r r u p t ( ) ; // w r i t i n g t h e r e d image / f o r ( i n t x =0; x<width h e i g h t ) write mem ( r e d ) ; w r i t e l c d (0 x, 0 x1 ) ; w a i t i n t e r r u p t ( ) ; } } CPU Interrupt LCD (display) address r/w status data address r/w status data BUS address r/w status data MEM Bouhadiba - Ph.D. Defense 42 September 15th / 45

68 Hardware Simulation by Interpreting Contracts [COORD09] Contract Interpretation for Hardware Simulation Modeling Hardware with 42: Case Study tel , version 1-24 Nov 20 Embedded Software #d e f i n e width 240 #d e f i n e h e i g h t 240 #d e f i n e g r e e n 0x0000AABB... i n t main ( ) { w h i l e ( 1 ) { // w r i t i n g t h e g r e e n image / f o r ( i n t x =0; x<width h e i g h t ) write mem ( g r e e n ) ; w r i t e l c d (0 x, 0 x1 ) ; w a i t i n t e r r u p t ( ) ; // w r i t i n g t h e b l u e image / f o r ( i n t x =0; x<width h e i g h t ) write mem ( b l u e ) ; w r i t e l c d (0 x, 0 x1 ) ; w a i t i n t e r r u p t ( ) ; // w r i t i n g t h e r e d image / f o r ( i n t x =0; x<width h e i g h t ) write mem ( r e d ) ; w r i t e l c d (0 x, 0 x1 ) ; w a i t i n t e r r u p t ( ) ; } } CPU Interrupt LCD (display) address r/w status data address r/w status data BUS address r/w status data a b c d MEM Bouhadiba - Ph.D. Defense 42 September 15th / 45

69 Hardware Simulation by Interpreting Contracts [COORD09] Contract Interpretation for Hardware Simulation Modeling Hardware with 42: Case Study tel , version 1-24 Nov 20 Embedded Software #d e f i n e width 240 #d e f i n e h e i g h t 240 #d e f i n e g r e e n 0x0000AABB... i n t main ( ) { w h i l e ( 1 ) { // w r i t i n g t h e g r e e n image / f o r ( i n t x =0; x<width h e i g h t ) write mem ( g r e e n ) ; w r i t e l c d (0 x, 0 x1 ) ; w a i t i n t e r r u p t ( ) ; // w r i t i n g t h e b l u e image / f o r ( i n t x =0; x<width h e i g h t ) write mem ( b l u e ) ; w r i t e l c d (0 x, 0 x1 ) ; w a i t i n t e r r u p t ( ) ; // w r i t i n g t h e r e d image / f o r ( i n t x =0; x<width h e i g h t ) write mem ( r e d ) ; w r i t e l c d (0 x, 0 x1 ) ; w a i t i n t e r r u p t ( ) ; } } a b c d ok CPU Interrupt LCD (display) address r/w status data address r/w status data BUS address r/w status data MEM Bouhadiba - Ph.D. Defense 42 September 15th / 45

70 Hardware Simulation by Interpreting Contracts [COORD09] Contract Interpretation for Hardware Simulation Modeling Hardware with 42: Case Study tel , version 1-24 Nov 20 Embedded Software #d e f i n e width 240 #d e f i n e h e i g h t 240 #d e f i n e g r e e n 0x0000AABB... i n t main ( ) { w h i l e ( 1 ) { // w r i t i n g t h e g r e e n image / f o r ( i n t x =0; x<width h e i g h t ) write mem ( g r e e n ) ; w r i t e l c d (0 x, 0 x1 ) ; w a i t i n t e r r u p t ( ) ; // w r i t i n g t h e b l u e image / f o r ( i n t x =0; x<width h e i g h t ) write mem ( b l u e ) ; w r i t e l c d (0 x, 0 x1 ) ; w a i t i n t e r r u p t ( ) ; // w r i t i n g t h e r e d image / f o r ( i n t x =0; x<width h e i g h t ) write mem ( r e d ) ; w r i t e l c d (0 x, 0 x1 ) ; w a i t i n t e r r u p t ( ) ; } } a b c d ok CPU Interrupt LCD (display) ok address r/w status data address r/w status data BUS address r/w status data MEM Bouhadiba - Ph.D. Defense 42 September 15th / 45

71 Hardware Simulation by Interpreting Contracts [COORD09] Contract Interpretation for Hardware Simulation Modeling Hardware with 42: Case Study tel , version 1-24 Nov 20 Embedded Software #d e f i n e width 240 #d e f i n e h e i g h t 240 #d e f i n e g r e e n 0x0000AABB... i n t main ( ) { w h i l e ( 1 ) { // w r i t i n g t h e g r e e n image / f o r ( i n t x =0; x<width h e i g h t ) write mem ( g r e e n ) ; w r i t e l c d (0 x, 0 x1 ) ; w a i t i n t e r r u p t ( ) ; // w r i t i n g t h e b l u e image / f o r ( i n t x =0; x<width h e i g h t ) write mem ( b l u e ) ; w r i t e l c d (0 x, 0 x1 ) ; w a i t i n t e r r u p t ( ) ; // w r i t i n g t h e r e d image / f o r ( i n t x =0; x<width h e i g h t ) write mem ( r e d ) ; w r i t e l c d (0 x, 0 x1 ) ; // w await i t i ninterrupt() t e r r u p t ( ); ; } } Interrupt status data address r/w LCD (display) status data X a b c d bug (Synchronization) ok CPU ok address r/w status data BUS address r/w MEM Bouhadiba - Ph.D. Defense 42 September 15th / 45

72 Hardware Simulation by Interpreting Contracts [COORD09] Contract Interpretation for Hardware Simulation Modeling Hardware with 42: Case Study tel , version 1-24 Nov 20 Embedded Software #d e f i n e width 240 #d e f i n e h e i g h t 240 #d e f i n e g r e e n 0x0000AABB... i n t main ( ) { w h i l e ( 1 ) { // w r i t i n g t h e g r e e n image / f o r ( i n t x =0; x<width h e i g h t ) write mem ( g r e e n ) ; w r i t e l c d (0 x, 0 x1 ) ; w a i t i n t e r r u p t ( ) ; // w r i t i n g t h e b l u e image / f o r ( i n t x =0; x<width h e i g h t ) write mem ( b l u e ) ; w r i t e l c d (0 x, 0 x1 ) ; w a i t i n t e r r u p t ( ) ; // w r i t i n g t h e r e d image / f o r ( i n t x =0; x<width h e i g h t ) write mem ( r e d ) ; w r i t e l c d (0 x, 0 x1 ) ; // w await i t i ninterrupt() t e r r u p t ( ); ; } } ok CPU Interrupt LCD (display) ok address r/w status data address r/w status data BUS address r/w status data X a b c d bug (Synchronization) Xbug (Data) MEM Bouhadiba - Ph.D. Defense 42 September 15th / 45

73 Hardware Simulation by Interpreting Contracts [COORD09] Contract Interpretation for Hardware Simulation Modeling Hardware with 42: The 42 Model tel , version 1-24 Nov 20 CPU resp C acd C report report intr acd L LCD report target resp LT resp L acd LT BUS acd M resp M Contract Interpreter MEM Bouhadiba - Ph.D. Defense 42 September 15th / 45

74 Hardware Simulation by Interpreting Contracts [COORD09] Contract Interpretation for Hardware Simulation Modeling Hardware with 42: The contracts (CPU) tel , version 1-24 Nov 20 {respc}/α=report{} [α =LT]{}{acdC; target=l} {intr=t}{} {intr=t}{} c3 {resp C }/α=report; report =IT{} c3 {resp C }/α=report; report =IT{} c4 {intr=t}{} c4 {}/α=report{} {intr=t}{} c1 {intr=t}{} c1 {}/α=report{} c0 [α=mt]{}{acd C ; target=m} [α=mt]{}{acd C ; target=m} c2 {intr=t}{} c2 {intr=t}{} The contract of the CPU is in fact the contract of (CPU + Software) {respc}/α=report{} [α=lt]{}{acdc; target=l} Bouhadiba - Ph.D. Defense 42 September 15th / 45

75 Hardware Simulation by Interpreting Contracts [COORD09] Contract Interpretation for Hardware Simulation Modeling Hardware with 42: The contracts (CPU) tel , version 1-24 Nov 20 {respc}/α=report{} [α =LT]{}{acdC; target=l} {intr=t}{} {intr=t}{} c3 {resp C }/α=report; report =IT{} c3 {resp C }/α=report; report =IT{} c4 {intr=t}{} c4 {}/α=report{} {intr=t}{} c1 {intr=t}{} c1 {}/α=report{} c0 [α=mt]{}{acd C ; target=m} [α=mt]{}{acd C ; target=m} c2 {intr=t}{} c2 {intr=t}{} The contract of the CPU is in fact the contract of (CPU + Software) {respc}/α=report{} [α=lt]{}{acdc; target=l} Bouhadiba - Ph.D. Defense 42 September 15th / 45

76 Hardware Simulation by Interpreting Contracts [COORD09] Contract Interpretation for Hardware Simulation Modeling Hardware with 42: The contracts (CPU) tel , version 1-24 Nov 20 {respc}/α=report{} [α =LT]{}{acdC; target=l} {intr=t}{} {intr=t}{} c3 {resp C }/α=report; report =IT{} c3 {resp C }/α=report; report =IT{} c4 {intr=t}{} c4 {}/α=report{} {intr=t}{} c1 {intr=t}{} c1 {}/α=report{} c0 [α=mt]{}{acd C ; target=m} [α=mt]{}{acd C ; target=m} c2 {intr=t}{} c2 {intr=t}{} The contract of the CPU is in fact the contract of (CPU + Software) {respc}/α=report{} [α=lt]{}{acdc; target=l} Bouhadiba - Ph.D. Defense 42 September 15th / 45

77 Hardware Simulation by Interpreting Contracts [COORD09] Contract Interpretation for Hardware Simulation Modeling Hardware with 42: The contracts (CPU) tel , version 1-24 Nov 20 {respc}/α=report{} [α =LT]{}{acdC; target=l} {intr=t}{} {intr=t}{} c3 {resp C }/α=report; report =IT{} c3 {resp C }/α=report; report =IT{} c4 {intr=t}{} c4 {}/α=report{} {intr=t}{} c1 {intr=t}{} c1 {}/α=report{} c0 [α=mt]{}{acd C ; target=m} [α=mt]{}{acd C ; target=m} c2 {intr=t}{} c2 {intr=t}{} The contract of the CPU is in fact the contract of (CPU + Software) {respc}/α=report{} [α=lt]{}{acdc; target=l} Bouhadiba - Ph.D. Defense 42 September 15th / 45

78 Hardware Simulation by Interpreting Contracts [COORD09] Contract Interpretation for Hardware Simulation Modeling Hardware with 42: The contracts (CPU) tel , version 1-24 Nov 20 {respc}/α=report{} [α =LT]{}{acdC; target=l} {intr=t}{} {intr=t}{} c3 {resp C }/α=report; report =IT{} c3 {resp C }/α=report; report =IT{} c4 {intr=t}{} c4 {}/α=report{} {intr=t}{} c1 {intr=t}{} c1 {}/α=report{} c0 [α=mt]{}{acd C ; target=m} [α=mt]{}{acd C ; target=m} c2 {intr=t}{} c2 {intr=t}{} The contract of the CPU is in fact the contract of (CPU + Software) {respc}/α=report{} [α=lt]{}{acdc; target=l} Bouhadiba - Ph.D. Defense 42 September 15th / 45

79 Hardware Simulation by Interpreting Contracts [COORD09] Contract Interpretation for Hardware Simulation Detecting Synchronization Bugs by Executing Contracts tel , version 1-24 Nov 20 If the software doesn t wait for the interrupt = We don t have the software yet. We execute only the contracts. Synchronization Bug: The contract doesn t wait for interrupts Detection: Deadlock during contract interpretation Bouhadiba - Ph.D. Defense 42 September 15th / 45

80 Hardware Simulation by Interpreting Contracts [COORD09] Executing Embedded Software on Hardware Models Detecting SW Bugs by Executing the SW Against the Contract tel , version 1-24 Nov 20 a int main(){ while (true){ int x =... while(x>0){ x - -;... b write mem(adr, data);... d write lcd(adr2, data2);... } e f } wait interrupt(); if(y!=0) write mem(adr, data)... software wrapper controller report soft.o controller CPU (wrapper) report {intr=t}{} acd c4 c4 {}/α=report{} target {resp C }/α=report{} [α =LT]{}{acd C ; target=l} c3 c1 c2 c0 {intr=t}{} {resp C }/α=report; report2=it{} {resp C }/α=report; report2=it{} {intr=t}{} {}/α=report{} [α=mt]{}{acd C ; target=m} [α=mt]{}{acd C ; target=m} {intr=t}{} {intr=t}{} c3 {intr=t}{} c1 c2 {intr=t}{} Bouhadiba - Ph.D. Defense 42 September 15th / 45 {resp C }/α=report{} [α=lt]{}{acd C ; target=l}

81 Hardware Simulation by Interpreting Contracts [COORD09] Executing Embedded Software on Hardware Models Detecting SW Bugs by Executing the SW Against the Contract tel , version 1-24 Nov 20 a int main(){ while (true){ int x =... while(x>0){ x - -;... b write mem(adr, data);... d write lcd(adr2, data2);... } e f } wait interrupt(); if(y!=0) write mem(adr, data)... software wrapper controller report soft.o controller CPU (wrapper) report cpu. {intr=t}{} acd c4 c4 {}/α=report{} target {resp C }/α=report{} [α =LT]{}{acd C ; target=l} c3 c1 c2 c0 {intr=t}{} {resp C }/α=report; report2=it{} {resp C }/α=report; report2=it{} {intr=t}{} {}/α=report{} [α=mt]{}{acd C ; target=m} [α=mt]{}{acd C ; target=m} {intr=t}{} {intr=t}{} c3 {intr=t}{} c1 c2 {intr=t}{} Bouhadiba - Ph.D. Defense 42 September 15th / 45 {resp C }/α=report{} [α=lt]{}{acd C ; target=l}

82 Hardware Simulation by Interpreting Contracts [COORD09] Executing Embedded Software on Hardware Models Detecting SW Bugs by Executing the SW Against the Contract tel , version 1-24 Nov 20 a int main(){ while (true){ int x =... while(x>0){ x - -;... b write mem(adr, data);... d write lcd(adr2, data2);... } e f } wait interrupt(); if(y!=0) write mem(adr, data)... software wrapper controller report soft.o controller CPU (wrapper) report activates SW cpu. {intr=t}{} acd c4 c4 {}/α=report{} target {resp C }/α=report{} [α =LT]{}{acd C ; target=l} c3 c1 c2 c0 {intr=t}{} {resp C }/α=report; report2=it{} {resp C }/α=report; report2=it{} {intr=t}{} {}/α=report{} [α=mt]{}{acd C ; target=m} [α=mt]{}{acd C ; target=m} {intr=t}{} {intr=t}{} c3 {intr=t}{} c1 c2 {intr=t}{} Bouhadiba - Ph.D. Defense 42 September 15th / 45 {resp C }/α=report{} [α=lt]{}{acd C ; target=l}

83 Hardware Simulation by Interpreting Contracts [COORD09] Executing Embedded Software on Hardware Models Detecting SW Bugs by Executing the SW Against the Contract tel , version 1-24 Nov 20 atomic a int main(){ while (true){ int x =... while(x>0){ x - -;... b write mem(adr, data);... d write lcd(adr2, data2);... } e f } wait interrupt(); if(y!=0) write mem(adr, data)... software wrapper controller report wait_interrupt() soft.o controller CPU (wrapper) report activates SW cpu. {intr=t}{} acd c4 c4 {}/α=report{} target {resp C }/α=report{} [α =LT]{}{acd C ; target=l} c3 c1 c2 c0 {intr=t}{} {resp C }/α=report; report2=it{} {resp C }/α=report; report2=it{} {intr=t}{} {}/α=report{} [α=mt]{}{acd C ; target=m} [α=mt]{}{acd C ; target=m} {intr=t}{} {intr=t}{} c3 {intr=t}{} c1 c2 {intr=t}{} Bouhadiba - Ph.D. Defense 42 September 15th / 45 {resp C }/α=report{} [α=lt]{}{acd C ; target=l}

84 Hardware Simulation by Interpreting Contracts [COORD09] Executing Embedded Software on Hardware Models Detecting SW Bugs by Executing the SW Against the Contract tel , version 1-24 Nov 20 atomic a int main(){ while (true){ int x =... while(x>0){ x - -;... b write mem(adr, data);... d write lcd(adr2, data2);... } e f } wait interrupt(); if(y!=0) write mem(adr, data)... software wrapper controller report wait_interrupt() soft.o controller CPU (wrapper) report activates SW cpu. Reports on SW activity {intr=t}{} acd c4 c4 {}/α=report{} target {resp C }/α=report{} [α =LT]{}{acd C ; target=l} c3 c1 c2 c0 {intr=t}{} {resp C }/α=report; report2=it{} {resp C }/α=report; report2=it{} {intr=t}{} {}/α=report{} [α=mt]{}{acd C ; target=m} [α=mt]{}{acd C ; target=m} {intr=t}{} {intr=t}{} c3 {intr=t}{} c1 c2 {intr=t}{} Bouhadiba - Ph.D. Defense 42 September 15th / 45 {resp C }/α=report{} [α=lt]{}{acd C ; target=l}

85 Hardware Simulation by Interpreting Contracts [COORD09] Executing Embedded Software on Hardware Models Detecting SW Bugs by Executing the SW Against the Contract tel , version 1-24 Nov 20 atomic a int main(){ while (true){ int x =... while(x>0){ x - -;... b write mem(adr, data);... d write lcd(adr2, data2);... } e f } wait interrupt(); if(y!=0) write mem(adr, data)... software wrapper controller report wait_interrupt() soft.o c controller {...}/...report = IT CPU (wrapper) report activates SW cpu. Reports on SW activity {intr=t}{} acd c4 c4 {}/α=report{} target {resp C }/α=report{} [α =LT]{}{acd C ; target=l} c3 c1 c2 c0 {intr=t}{} {resp C }/α=report; report2=it{} {resp C }/α=report; report2=it{} {intr=t}{} {}/α=report{} [α=mt]{}{acd C ; target=m} [α=mt]{}{acd C ; target=m} {intr=t}{} {intr=t}{} c3 {intr=t}{} c1 c2 {intr=t}{} Bouhadiba - Ph.D. Defense 42 September 15th / 45 {resp C }/α=report{} [α=lt]{}{acd C ; target=l}

86 Hardware Simulation by Interpreting Contracts [COORD09] Summary tel , version 1-24 Nov 20 Executing Embedded Software on Hardware Models Contracts are non-deterministic abstractions of the behavior of components and allow for early execution Contract execution detects synchronization bugs Executing contract together with implementation allows to check their consistency Bouhadiba - Ph.D. Defense 42 September 15th / 45

87 Using 42 Together with Existing Approaches [EMSOFT09] Contents tel , version 1-24 Nov 20 1 Introduction & Sources of Inspiration 2 Overview of 42 & Examples [GPCE07] 3 Hardware Simulation by Interpreting Contracts [COORD09] 4 Using 42 Together with Existing Approaches [EMSOFT09] TLM with SystemC 42-ization of SystemC/TLM Typical Uses of 42 Contracts with SystemC-TLM 5 Some Related Work 6 Summary Bouhadiba - Ph.D. Defense 42 September 15th / 45

88 Using 42 Together with Existing Approaches [EMSOFT09] Motivation tel , version 1-24 Nov 20 TLM = Transaction-Level Modeling + Widely used + Powerful (large systems, heterogeneous models,...) + Intrinsically component-based Very informal, models are mixed with the simulation mechanics Motivation Prose a clear definition of TLM components Simplify the simulation Focus on Control Flow and Synchronizations Find bugs earlier Bouhadiba - Ph.D. Defense 42 September 15th / 45

89 Using 42 Together with Existing Approaches [EMSOFT09] TLM in practice (SystemC) tel , version 1-24 Nov 20 T3 modulex T2 irq write read DMA T1 Bus write TLM with SystemC Memory read write Threads Functions Bouhadiba - Ph.D. Defense 42 September 15th / 45

90 Using 42 Together with Existing Approaches [EMSOFT09] TLM in practice (SystemC) tel , version 1-24 Nov 20 T3 Some Guidelines: modulex T2 irq write read DMA T1 Bus write TLM with SystemC Memory read write Threads Functions Bouhadiba - Ph.D. Defense 42 September 15th / 45

91 Using 42 Together with Existing Approaches [EMSOFT09] TLM in practice (SystemC) tel , version 1-24 Nov 20 T3 modulex T2 irq write read Some Guidelines: Inside a module: Shared variables Events (wait, notify) DMA e1 T1 Bus write TLM with SystemC Memory read write Threads Functions Bouhadiba - Ph.D. Defense 42 September 15th / 45

92 Using 42 Together with Existing Approaches [EMSOFT09] TLM in practice (SystemC) tel , version 1-24 Nov 20 T3 modulex T2 irq DMA e1 T1 write read Bus Some Guidelines: Inside a module: Shared variables Events (wait, notify) Between modules: Function calls through ports... write TLM with SystemC Memory read write Threads Functions Bouhadiba - Ph.D. Defense 42 September 15th / 45

93 Using 42 Together with Existing Approaches [EMSOFT09] TLM in practice (SystemC) tel , version 1-24 Nov 20 T3 modulex T2 irq write read Some Guidelines: Inside a module: Shared variables Events (wait, notify) Between modules: DMA e1 T1 Bus Function calls through ports... write TLM with SystemC Memory read write Threads Functions A non-preemptive scheduler manages the execution of threads Bouhadiba - Ph.D. Defense 42 September 15th / 45

94 Using 42 Together with Existing Approaches [EMSOFT09] TLM in practice (SystemC) tel , version 1-24 Nov 20 T3 modulex T2 irq DMA e1 T1 write read Bus Some Guidelines: Inside a module: Shared variables Events (wait, notify) Between modules: Function calls through ports... write TLM with SystemC Memory modulex : : T2(){ w h i l e ( t r u e ){ x = 4 2 ; w h i l e ( x > 0){ y = p. r e a d ( addrm + x )ˆ0 xff ; p. w r i t e ( addrm, x ) ; } p. w r i t e ( addrd+0x0, addrm ) ; p. w r i t e ( addrd+0x1, 4 2 ) ; p. w r i t e ( addrd+0x4, 0 x ) ; w a i t ( e0 ) ;... e2. n o t i f y ( ) ; }... } read write modulex : : i r q ( i n t n){... Threads Functions A non-preemptive e0. n o t i f y ( ) ; scheduler manages the execution... w a i t ( e2 ) ; of threads } Example Implementation of modulex Bouhadiba - Ph.D. Defense 42 September 15th / 45

95 Using 42 Together with Existing Approaches [EMSOFT09] Structural Correspondence tel , version 1-24 Nov 20 module1::t1(){ while(true){ x++;...; p2.f2(x);...; wait(e1);...; } }... module2::f2(int x){...; y = x * 42;...; notify(e2);...;...; } } ization of SystemC/TLM p2 module1 T1 f1 p1 module2 T2 f2 p1 p2 Bouhadiba - Ph.D. Defense 42 September 15th / 45

96 Using 42 Together with Existing Approaches [EMSOFT09] Structural Correspondence tel , version 1-24 Nov 20 module1::t1(){ while(true){ x++;...; p2.f2(x);...; wait(e1);...; } }... ctrl main callf1 ctrl module f1 callf1 endf1 module1 n e1 module2::f2(int x){...; y = x * 42;...; notify(e2);...;...; } }... contf2 T1 contf2 f2 C endf1 f2 C resp enq f2d f1d 42-ization of SystemC/TLM f2 p2 module1 T1 callf2 ctrl module callf2 e2 f1 p1 endf2 module2 endf2 f1 C e3 module2 T2 f2 p1 p2 T2 f1 C Bouhadiba - Ph.D. Defense 42 September 15th / 45

97 Using 42 Together with Existing Approaches [EMSOFT09] Structural Correspondence tel , version 1-24 Nov ization of SystemC/TLM module1::t1(){ module2::f2(int x){ module1 module2 while(true){...; An activation of the main component witht1op x++; y = x * 42; f1 corresponds T2 f2 to what...; happens in the...; SystemC-TLMp2 model p1 when p1 the p2 p2.f2(x); notify(e2); scheduler elects a new thread to execute....;...; wait(e1);...;...; } } } } ctrl main callf1 ctrl module f1 callf1 endf1 module1 n e1 contf2 T1 contf2 f2 C endf1 f2 C resp enq f2d f1d ctrl module callf2 f2 callf2 e2 endf2 module2 endf2 f1 C e3 T2 f1 C Bouhadiba - Ph.D. Defense 42 September 15th / 45

98 Using 42 Together with Existing Approaches [EMSOFT09] Structural Correspondence tel , version 1-24 Nov 20 module1::t1(){ while(true){ x++;...; p2.f2(x);...; wait(e1);...; } }... ctrl main callf1 ctrl module f1 callf1 endf1 module1 n e1 module2::f2(int x){...; y = x * 42;...; notify(e2);...;...; } }... contf2 T1 contf2 f2 C endf1 f2 C resp enq f2d f1d 42-ization of SystemC/TLM f2 p2 module1 T1 callf2 ctrl module callf2 e2 f1 p1 endf2 module2 endf2 f1 C e3 module2 T2 f2 p1 p2 T2 f1 C Bouhadiba - Ph.D. Defense 42 September 15th / 45

99 Using 42 Together with Existing Approaches [EMSOFT09] Structural Correspondence tel , version 1-24 Nov 20 module1::t1(){ while(true){ x++;...; p2.f2(x);...; wait(e1);...; } }... ctrl main callf1 ctrl module f1 callf1 endf1 module1 n e1 module2::f2(int x){...; y = x * 42;...; notify(e2);...;...; } }... contf2 T1 contf2 f2 C endf1 f2 C resp enq f2d f1d 42-ization of SystemC/TLM f2 p2 module1 T1 callf2 ctrl module callf2 e2 f1 p1 endf2 module2 endf2 f1 C e3 module2 T2 f2 p1 p2 T2 f1 C Bouhadiba - Ph.D. Defense 42 September 15th / 45

100 Using 42 Together with Existing Approaches [EMSOFT09] Structural Correspondence tel , version 1-24 Nov 20 module1::t1(){ while(true){ x++;...; p2.f2(x);...; wait(e1);...; } }... ctrl main callf1 ctrl module f1 callf1 endf1 module1 n e1 module2::f2(int x){...; y = x * 42;...; notify(e2);...;...; } }... contf2 T1 contf2 f2 C endf1 f2 C resp enq f2d f1d 42-ization of SystemC/TLM f2 p2 module1 T1 callf2 ctrl module callf2 e2 f1 p1 endf2 module2 endf2 f1 C e3 module2 T2 f2 p1 p2 T2 f1 C Bouhadiba - Ph.D. Defense 42 September 15th / 45

101 Using 42 Together with Existing Approaches [EMSOFT09] Structural Correspondence tel , version 1-24 Nov 20 module1::t1(){ while(true){ x++;...; p2.f2(x);...; wait(e1);...; } }... ctrl main callf1 ctrl module f1 callf1 endf1 module1 n e1 module2::f2(int x){...; y = x * 42;...; notify(e2);...;...; } }... contf2 T1 contf2 f2 C endf1 f2 C resp enq f2d f1d 42-ization of SystemC/TLM f2 p2 module1 T1 callf2 ctrl module callf2 e2 f1 p1 endf2 module2 endf2 f1 C e3 module2 T2 f2 p1 p2 T2 f1 C Bouhadiba - Ph.D. Defense 42 September 15th / 45

102 Using 42 Together with Existing Approaches [EMSOFT09] Structural Correspondence tel , version 1-24 Nov 20 module1::t1(){ while(true){ x++;...; p2.f2(x);...; wait(e1);...; } }... ctrl main callf1 ctrl module f1 callf1 endf1 module1 n e1 module2::f2(int x){...; y = x * 42;...; notify(e2);...;...; } }... contf2 T1 contf2 f2 C endf1 f2 C resp enq f2d f1d 42-ization of SystemC/TLM f2 p2 module1 T1 callf2 ctrl module callf2 e2 f1 p1 endf2 module2 endf2 f1 C e3 module2 T2 f2 p1 p2 T2 f1 C Bouhadiba - Ph.D. Defense 42 September 15th / 45

103 Using 42 Together with Existing Approaches [EMSOFT09] Structural Correspondence tel , version 1-24 Nov 20 module1::t1(){ while(true){ x++;...; p2.f2(x);...; wait(e1);...; } }... ctrl main callf1 ctrl module f1 callf1 endf1 module1 n e1 module2::f2(int x){...; y = x * 42;...; notify(e2);...;...; } }... contf2 T1 contf2 f2 C endf1 f2 C resp enq f2d f1d 42-ization of SystemC/TLM f2 p2 module1 T1 callf2 ctrl module callf2 e2 f1 p1 endf2 module2 endf2 f1 C e3 module2 T2 f2 p1 p2 T2 f1 C Bouhadiba - Ph.D. Defense 42 September 15th / 45

104 Using 42 Together with Existing Approaches [EMSOFT09] Structural Correspondence tel , version 1-24 Nov 20 module1::t1(){ while(true){ x++;...; p2.f2(x);...; wait(e1);...; } }... ctrl main callf1 ctrl module f1 callf1 endf1 module1 n e1 module2::f2(int x){...; y = x * 42;...; notify(e2);...;...; } }... contf2 T1 contf2 f2 C endf1 f2 C resp enq f2d f1d 42-ization of SystemC/TLM f2 p2 module1 T1 callf2 ctrl module callf2 e2 f1 p1 endf2 module2 endf2 f1 C e3 module2 T2 f2 p1 p2 T2 f1 C Bouhadiba - Ph.D. Defense 42 September 15th / 45

105 Using 42 Together with Existing Approaches [EMSOFT09] Structural Correspondence tel , version 1-24 Nov 20 module1::t1(){ while(true){ x++;...; p2.f2(x);...; wait(e1);...; } }... ctrl main callf1 ctrl module f1 callf1 endf1 module1 n e1 module2::f2(int x){...; y = x * 42;...; notify(e2);...;...; } }... contf2 T1 contf2 f2 C endf1 f2 C resp enq f2d f1d 42-ization of SystemC/TLM f2 p2 module1 T1 callf2 ctrl module callf2 e2 f1 p1 endf2 module2 endf2 f1 C e3 module2 T2 f2 p1 p2 T2 f1 C Bouhadiba - Ph.D. Defense 42 September 15th / 45

106 Using 42 Together with Existing Approaches [EMSOFT09] Structural Correspondence tel , version 1-24 Nov ization of SystemC/TLM module1::t1(){ module2::f2(int x){ module1 module2 while(true){...; An activation of the main component witht1op x++; y = x * 42; f1 corresponds T2 f2 to what...; happens in the...; SystemC-TLMp2 model p1 when p1 the p2 p2.f2(x); notify(e2); scheduler elects a new thread to execute....;...; wait(e1);...;...; } } } } The 42 model behaves like the SystemC one ctrl main callf1 n contf2 - - But is less efficient ctrl module callf1 contf2 We use 42 control contracts e1 f2d f1 T1 endf1 module1 f2 C endf1 f2 C resp enq f1d ctrl module callf2 We will not re-write SystemC in 42 f2 callf2 e2 endf2 module2 endf2 f1 C e3 T2 f1 C Bouhadiba - Ph.D. Defense 42 September 15th / 45

107 Using 42 Together with Existing Approaches [EMSOFT09] 42-ization of SystemC/TLM Extracting Control Contracts From SC-TLM Code tel , version 1-24 Nov 20 a a while ( true ){ x++; e3. n o t i f y ( ) ; e4. n o t i f y ( ) ; b w a i t ( e1 ) ; i f ( x < 42){ c p. f ( x ) ; d p. g ( x ) ; } y=x +1; while ( y < 5){ y++; e w a i t ( e2 ) ; } } b c d States correspond to wait statements or function calls. e Bouhadiba - Ph.D. Defense 42 September 15th / 45

108 Using 42 Together with Existing Approaches [EMSOFT09] 42-ization of SystemC/TLM Extracting Control Contracts From SC-TLM Code tel , version 1-24 Nov 20 a a while ( true ){ x++; e3. n o t i f y ( ) ; e4. n o t i f y ( ) ; b w a i t ( e1 ) ; i f ( x < 42){ c p. f ( x ) ; d p. g ( x ) ; } y=x +1; while ( y < 5){ y++; e w a i t ( e2 ) ; } } b c d States correspond to wait statements or function calls. Data values are abstracted e Bouhadiba - Ph.D. Defense 42 September 15th / 45

109 Using 42 Together with Existing Approaches [EMSOFT09] 42-ization of SystemC/TLM Extracting Control Contracts From SC-TLM Code tel , version 1-24 Nov 20 {}{e3;e4} I call the function f a a while ( true ){ x++; {e1}/f C {fd} {}contf/g C {gd} e3. n o t i f y ( ) ; b c d e4. n o t i f y ( ) ; {}contg{e3;e4} b w a i t ( e1 ) ; {e1}{e3;e4} i f ( x < 42){ {}contg{} c p. f ( x ) ; {e2}{e3;e4} e d p. g ( x ) ; {e2}{} } y=x +1; while ( y < 5){ States correspond to wait statements or y++; function calls. e w a i t ( e2 ) ; } Data values are abstracted } {e1}{} Bouhadiba - Ph.D. Defense 42 September 15th / 45

110 Using 42 Together with Existing Approaches [EMSOFT09] 42-ization of SystemC/TLM Lightweight Execution for SystemC-TLM tel , version 1-24 Nov 20 module1 module2 T1 f1 T2 f2 p2 p1 p1 p2 ctrl main callf1 n contf2 enq callf2 ctrl module ctrl module callf2 e3 callf1 contf2 e1 f2d f2 e2 f1 T1 T2 endf1 f2 C endf2 f1 C module1 module2 endf1 f2 C resp f1d endf2 f1 C Bouhadiba - Ph.D. Defense 42 September 15th / 45

111 Using 42 Together with Existing Approaches [EMSOFT09] 42-ization of SystemC/TLM Lightweight Execution for SystemC-TLM tel , version 1-24 Nov 20 Extract Contracts From SystemC module1 module2 T1 f1 T2 f2 p2 p1 p1 p2 ctrl main callf1 n contf2 enq callf2 ctrl module ctrl module callf2 e3 callf1 contf2 e1 f2d f2 e2 f1 T1 T2 endf1 f2 C endf2 f1 C module1 module2 endf1 f2 C resp f1d endf2 f1 C Bouhadiba - Ph.D. Defense 42 September 15th / 45

112 Using 42 Together with Existing Approaches [EMSOFT09] 42-ization of SystemC/TLM Lightweight Execution for SystemC-TLM tel , version 1-24 Nov 20 Extract Contracts From SystemC Execute Contracts instead of Code ctrl main callf1 n contf2 enq ctrl module callf1 f1 endf1 module1 e1 T1 contf2 f2 C endf1 f2 C resp f2d f1d f2 p2 callf2 ctrl module callf2 e2 e3 endf2 module2 endf2 module1 T1 f1 p1 f1 C T2 p1 f1 C module2 T2 f2 p2 Bouhadiba - Ph.D. Defense 42 September 15th / 45

113 Using 42 Together with Existing Approaches [EMSOFT09] 42-ization of SystemC/TLM Lightweight Execution for SystemC-TLM tel , version 1-24 Nov 20 Extract Contracts From SystemC Execute Contracts instead of Code Produces a super-set of SystemC executions ctrl main callf1 n contf2 enq ctrl module callf1 f1 endf1 module1 e1 T1 contf2 f2 C endf1 f2 C resp f2d f1d f2 p2 callf2 ctrl module callf2 e2 e3 endf2 module2 endf2 module1 T1 f1 p1 f1 C T2 p1 f1 C module2 T2 f2 p2 Bouhadiba - Ph.D. Defense 42 September 15th / 45

114 Using 42 Together with Existing Approaches [EMSOFT09] Contents tel , version 1-24 Nov 20 1 Introduction & Sources of Inspiration 2 Overview of 42 & Examples [GPCE07] Typical Uses of 42 Contracts with SystemC-TLM 3 Hardware Simulation by Interpreting Contracts [COORD09] 4 Using 42 Together with Existing Approaches [EMSOFT09] TLM with SystemC 42-ization of SystemC/TLM Typical Uses of 42 Contracts with SystemC-TLM 5 Some Related Work 6 Summary Bouhadiba - Ph.D. Defense 42 September 15th / 45

115 Using 42 Together with Existing Approaches [EMSOFT09] Typical Uses of 42 Contracts with SystemC-TLM TL-Modeling with SystemC: an Example tel , version 1-24 Nov 20 DMA Memory Bus Bouhadiba - Ph.D. Defense 42 September 15th / 45

116 Using 42 Together with Existing Approaches [EMSOFT09] Typical Uses of 42 Contracts with SystemC-TLM TL-Modeling with SystemC: an Example tel , version 1-24 Nov 20 DMA Memory Bus Reuse of existing components (e.g., DMA, Memory, Bus) Bouhadiba - Ph.D. Defense 42 September 15th / 45

117 Using 42 Together with Existing Approaches [EMSOFT09] Typical Uses of 42 Contracts with SystemC-TLM TL-Modeling with SystemC: an Example tel , version 1-24 Nov 20? DMA Memory Bus Reuse of existing components (e.g., DMA, Memory, Bus) Part of the functionality is not implemented Bouhadiba - Ph.D. Defense 42 September 15th / 45

118 Using 42 Together with Existing Approaches [EMSOFT09] Typical Uses of 42 Contracts with SystemC-TLM TL-Modeling with SystemC: an Example tel , version 1-24 Nov 20? DMA Memory Bus Extract control contracts from existing SC-TLM components Bouhadiba - Ph.D. Defense 42 September 15th / 45

119 Using 42 Together with Existing Approaches [EMSOFT09] Typical Uses of 42 Contracts with SystemC-TLM TL-Modeling with SystemC: an Example tel , version 1-24 Nov 20? DMA Memory Bus Extract control contracts from existing SC-TLM components Write new contracts for the missing ones Bouhadiba - Ph.D. Defense 42 September 15th / 45

120 Using 42 Together with Existing Approaches [EMSOFT09] Typical Uses of 42 Contracts with SystemC-TLM TL-Modeling with SystemC: an Example tel , version 1-24 Nov 20? DMA Memory Bus Extract control contracts from existing SC-TLM components Write new contracts for the missing ones Execute the contracts with 42 controllers Bouhadiba - Ph.D. Defense 42 September 15th / 45

121 Using 42 Together with Existing Approaches [EMSOFT09] Typical Uses of 42 Contracts with SystemC-TLM TL-Modeling with SystemC: an Example tel , version 1-24 Nov 20? DMA Memory Bus Extract control contracts from existing SC-TLM components Write new contracts for the missing ones Execute the contracts with 42 controllers Find Synchronization Bugs Bouhadiba - Ph.D. Defense 42 September 15th / 45

122 Using 42 Together with Existing Approaches [EMSOFT09] Typical Uses of 42 Contracts with SystemC-TLM TL-Modeling with SystemC: an Example tel , version 1-24 Nov 20 - If there is a bug, the new contract is not compatible with the extracted ones? - Modify the new contract DMA until Memory synchronization bugs are fixed Bus Extract control contracts from existing SC-TLM components Write new contracts for the missing ones Execute the contracts with 42 controllers Find Synchronization Bugs Bouhadiba - Ph.D. Defense 42 September 15th / 45

123 Using 42 Together with Existing Approaches [EMSOFT09] Typical Uses of 42 Contracts with SystemC-TLM Executing the Implementation against the Contract tel , version 1-24 Nov 20 Component implementation:.... modulex : : T(){ a w h i l e ( t r u e ){ x++; e3. n o t i f y ( ) ; e4. n o t i f y ( ) ; b w a i t ( e1 ) ; i f ( x < 42){ c p. f ( x ) ; d p. g ( x ) ;..... T a {e1}{e3;e4} Contract of T {}{e3;e4} {e1}/f C {fd} b {e1}{} {e2}{e3;e4} ctrl (main+module) c e Bouhadiba - Ph.D. Defense 42 September 15th / 45

124 Using 42 Together with Existing Approaches [EMSOFT09] Typical Uses of 42 Contracts with SystemC-TLM Executing the Implementation against the Contract tel , version 1-24 Nov 20 Component implementation:.... modulex : : T(){ a w h i l e ( t r u e ){ x++; e3. n o t i f y ( ) ; e4. n o t i f y ( ) ; b w a i t ( e1 ) ; i f ( x < 42){ c p. f ( x ) ; d p. g ( x ) ;..... T a {e1}{e3;e4} Contract of T {}{e3;e4} {e1}/f C {fd} b {e1}{} {e2}{e3;e4} ctrl (main+module) 1-selection c e Bouhadiba - Ph.D. Defense 42 September 15th / 45

125 Using 42 Together with Existing Approaches [EMSOFT09] Typical Uses of 42 Contracts with SystemC-TLM Executing the Implementation against the Contract tel , version 1-24 Nov 20 Component implementation:.... modulex : : T(){ a w h i l e ( t r u e ){ x++; e3. n o t i f y ( ) ; e4. n o t i f y ( ) ; b w a i t ( e1 ) ; i f ( x < 42){ c p. f ( x ) ; d p. g ( x ) ; activation T a {e1}{e3;e4} Contract of T {}{e3;e4} {e1}/f C {fd} b {e1}{} {e2}{e3;e4} ctrl (main+module) 1-selection c e Bouhadiba - Ph.D. Defense 42 September 15th / 45

126 Using 42 Together with Existing Approaches [EMSOFT09] Typical Uses of 42 Contracts with SystemC-TLM Executing the Implementation against the Contract tel , version 1-24 Nov 20 Component implementation:.... modulex : : T(){ a w h i l e ( t r u e ){ x++; e3. n o t i f y ( ) ; e4. n o t i f y ( ) ; b w a i t ( e1 ) ; i f ( x < 42){ c p. f ( x ) ; d p. g ( x ) ; resume 2-activation T a {e1}{e3;e4} Contract of T {}{e3;e4} {e1}/f C {fd} b {e1}{} {e2}{e3;e4} ctrl (main+module) 1-selection c e Bouhadiba - Ph.D. Defense 42 September 15th / 45

127 Using 42 Together with Existing Approaches [EMSOFT09] Typical Uses of 42 Contracts with SystemC-TLM Executing the Implementation against the Contract tel , version 1-24 Nov 20 Component implementation:.... modulex : : T(){...notify() a w h i l e ( t r u e ){ x++; e3. n o t i f y ( ) ; e4. n o t i f y ( ) ; b w a i t ( e1 ) ; i f ( x < 42){ c p. f ( x ) ; d p. g ( x ) ; resume 2-activation T e3 e4 a {e1}{e3;e4} Contract of T {}{e3;e4} {e1}/f C {fd} b {e1}{} {e2}{e3;e4} ctrl (main+module) 1-selection c e Bouhadiba - Ph.D. Defense 42 September 15th / 45

128 Using 42 Together with Existing Approaches [EMSOFT09] Typical Uses of 42 Contracts with SystemC-TLM Executing the Implementation against the Contract tel , version 1-24 Nov 20 Component implementation:.... modulex : : T(){ a w h i l e ( t r u e ){ x++; e3. n o t i f y ( ) ; e4. n o t i f y ( ) ; b w a i t ( e1 ) ; i f ( x < 42){ c p. f ( x ) ; d p. g ( x ) ; resume 4-wait(...) 4-suspend 2-activation T e3 e4 a {e1}{e3;e4} Contract of T {}{e3;e4} {e1}/f C {fd} b {e1}{} {e2}{e3;e4} ctrl (main+module) 1-selection c e Bouhadiba - Ph.D. Defense 42 September 15th / 45

129 Using 42 Together with Existing Approaches [EMSOFT09] Typical Uses of 42 Contracts with SystemC-TLM Executing the Implementation against the Contract tel , version 1-24 Nov 20 Component implementation:.... modulex : : T(){ a w h i l e ( t r u e ){ x++; e3. n o t i f y ( ) ; e4. n o t i f y ( ) ; b w a i t ( e1 ) ; i f ( x < 42){ c p. f ( x ) ; d p. g ( x ) ; resume 4-wait(...) 4-suspend 2-activation T e3 e4 a {e1}{e3;e4} Contract of T {}{e3;e4} {e1}/f C {fd} b {e1}{} {e2}{e3;e4} ctrl (main+module) 1-selection 5- finished c e Bouhadiba - Ph.D. Defense 42 September 15th / 45

130 Using 42 Together with Existing Approaches [EMSOFT09] Typical Uses of 42 Contracts with SystemC-TLM Executing the Implementation against the Contract tel , version 1-24 Nov 20 Component implementation:.... modulex : : T(){ a w h i l e ( t r u e ){ x++; e3. n o t i f y ( ) ; a Contract of T {}{e3;e4} 6-compatibility? {e1}/f C {fd} e4. n o t i f y ( ) ; b w a i t ( e1 ) ; i f ( x < 42){ {e1}{e3;e4} b c c p. f ( x ) ; d p. g ( x ) ; 4-wait(...) This..... execution 4-suspend step should notify e3 and e4 (calls to e.notify()). Otherwise, the implementation {e2}{e3;e4} does not re-spect the contract. 2-activation 3-resume ctrl (main+module) 1-selection T e3 e4 5- finished {e1}{} Bouhadiba - Ph.D. Defense 42 September 15th / 45

131 Using 42 Together with Existing Approaches [EMSOFT09] Summary tel , version 1-24 Nov 20 Use of 42 with an existing approach (TLM) Typical Uses of 42 Contracts with SystemC-TLM Separation of the semantics of models from the execution mechanics Support for reasoning on component synchronizations A tool for extracting control contracts from SystemC code [Master 1, P. Delahaye, 20] Possibility of connection to verification tools Bouhadiba - Ph.D. Defense 42 September 15th / 45

132 Contents tel , version 1-24 Nov 20 Some Related Work 1 Introduction & Sources of Inspiration 2 Overview of 42 & Examples [GPCE07] 3 Hardware Simulation by Interpreting Contracts [COORD09] 4 Using 42 Together with Existing Approaches [EMSOFT09] 5 Some Related Work 6 Summary Bouhadiba - Ph.D. Defense 42 September 15th / 45

133 Some Related Work tel , version 1-24 Nov 20 Some Related Work Ptolemy 42 Simulation tool for heterogeneous E.S. Semantics of heterogeneity Catalogue of predefined MoCCs Programmable MoCCs Modeling discrete/continuous systems focuses on discrete ones Fractal Language independent component-based approach Dedicated to design and deployment Does not deal with MoCCs Similar Virtual Prototyping Central notion Formal Models for Embedded Systems Formal Verification = Reduced expressiveness Favor expressiveness Describing MoCCs and Heterogeneity with TAG machines Operational description of MoCCs Bouhadiba - Ph.D. Defense 42 September 15th / 45

134 Contents tel , version 1-24 Nov 20 Summary 1 Introduction & Sources of Inspiration 2 Overview of 42 & Examples [GPCE07] 3 Hardware Simulation by Interpreting Contracts [COORD09] 4 Using 42 Together with Existing Approaches [EMSOFT09] 5 Some Related Work 6 Summary Bouhadiba - Ph.D. Defense 42 September 15th / 45

135 Contributions tel , version 1-24 Nov 20 Summary A language-independent component-based model for heterogeneous embedded systems, and reuse of existing code An executable specification language for components A rich set of examples for modeling MoCCs and heterogeneity A complete case-study on the use of 42 with existing approaches Bouhadiba - Ph.D. Defense 42 September 15th / 45

136 Summary A tool for describing/executing 42 models tel , version 1-24 Nov 20 Bouhadiba - Ph.D. Defense 42 September 15th / 45

ESE566 REPORT3. Design Methodologies for Core-based System-on-Chip HUA TANG OVIDIU CARNU

ESE566 REPORT3. Design Methodologies for Core-based System-on-Chip HUA TANG OVIDIU CARNU ESE566 REPORT3 Design Methodologies for Core-based System-on-Chip HUA TANG OVIDIU CARNU Nov 19th, 2002 ABSTRACT: In this report, we discuss several recent published papers on design methodologies of core-based

More information

Intel CoFluent Methodology for SysML *

Intel CoFluent Methodology for SysML * Intel CoFluent Methodology for SysML * UML* SysML* MARTE* Flow for Intel CoFluent Studio An Intel CoFluent Design White Paper By Thomas Robert and Vincent Perrier www.cofluent.intel.com Acronyms and abbreviations

More information

Hardware Virtualization for Pre-Silicon Software Development in Automotive Electronics

Hardware Virtualization for Pre-Silicon Software Development in Automotive Electronics Hardware Virtualization for Pre-Silicon Software Development in Automotive Electronics Frank Schirrmeister, Filip Thoen fschirr@synopsys.com Synopsys, Inc. Market Trends & Challenges Growing electronics

More information

Efficient Monitoring of Loose-Ordering Properties for SystemC/TLM

Efficient Monitoring of Loose-Ordering Properties for SystemC/TLM Efficient Monitoring of Loose-Ordering Properties for SystemC/TLM Yuliia Romenska, Florence Maraninchi To cite this version: Yuliia Romenska, Florence Maraninchi. Efficient Monitoring of Loose-Ordering

More information

Codesign: The World Of Practice

Codesign: The World Of Practice Codesign: The World Of Practice D. Sreenivasa Rao Senior Manager, System Level Integration Group Analog Devices Inc. May 2007 Analog Devices Inc. ADI is focused on high-end signal processing chips and

More information

The Kiel Reactive Processor

The Kiel Reactive Processor The Kiel Reactive Processor Reactive Processing beyond the KEP Claus Traulsen Christian-Albrechts Universität zu Kiel Synchron 2007 29. November 2007 Claus Traulsen The Kiel Reactive Processor Slide 1

More information

A case study of mobile SoC architecture design based on transaction-level modeling

A case study of mobile SoC architecture design based on transaction-level modeling A case study of mobile SoC architecture design based on transaction-level modeling Eui-Young Chung School of Electrical & Electronic Eng. Yonsei University 1 EUI-YOUNG(EY) CHUNG, EY CHUNG Outline Introduction

More information

High Performance or Cycle Accuracy?

High Performance or Cycle Accuracy? CHIP DESIGN High Performance or Cycle Accuracy? You can have both! Bill Neifert, Carbon Design Systems Rob Kaye, ARM ATC-100 AGENDA Modelling 101 & Programmer s View (PV) Models Cycle Accurate Models Bringing

More information

Networked Embedded Systems: Design Challenges

Networked Embedded Systems: Design Challenges Networked Embedded Systems: Design Challenges Davide Quaglia Electronic Systems Design Group University of Verona 3 a giornata nazionale di Sintesi Logica, Verona, Jun 21, 2007 Outline Motivation Networked

More information

Architectures and Platforms

Architectures and Platforms Hardware/Software Codesign Arch&Platf. - 1 Architectures and Platforms 1. Architecture Selection: The Basic Trade-Offs 2. General Purpose vs. Application-Specific Processors 3. Processor Specialisation

More information

Laboratoryof Electronics, Antennas and Telecommunications (UMR 7248)

Laboratoryof Electronics, Antennas and Telecommunications (UMR 7248) INSIS Laboratoryof Electronics, Antennas and Telecommunications (UMR 7248) LEAT - Université Nice-Sophia Antipolis, UMR CNRS 7248 Campus Sophi@Tech - Bâtiment Forum 930 route des Colles, BP 145, 06903

More information

Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification

Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification Introduction Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification Advanced Topics in Software Engineering 1 Concurrent Programs Characterized by

More information

Multiprocessor System-on-Chip

Multiprocessor System-on-Chip http://www.artistembedded.org/fp6/ ARTIST Workshop at DATE 06 W4: Design Issues in Distributed, CommunicationCentric Systems Modelling Networked Embedded Systems: From MPSoC to Sensor Networks Jan Madsen

More information

BY STEVE BROWN, CADENCE DESIGN SYSTEMS AND MICHEL GENARD, VIRTUTECH

BY STEVE BROWN, CADENCE DESIGN SYSTEMS AND MICHEL GENARD, VIRTUTECH WHITE PAPER METRIC-DRIVEN VERIFICATION ENSURES SOFTWARE DEVELOPMENT QUALITY BY STEVE BROWN, CADENCE DESIGN SYSTEMS AND MICHEL GENARD, VIRTUTECH INTRODUCTION The complexity of electronic systems is rapidly

More information

Layered Approach to Development of OO War Game Models Using DEVS Framework

Layered Approach to Development of OO War Game Models Using DEVS Framework Layered Approach to Development of OO War Game Models Using DEVS Framework Chang Ho Sung*, Su-Youn Hong**, and Tag Gon Kim*** Department of EECS KAIST 373-1 Kusong-dong, Yusong-gu Taejeon, Korea 305-701

More information

Laboratory of Electronics, Antennas and Telecommunications (UMR 7248)

Laboratory of Electronics, Antennas and Telecommunications (UMR 7248) INSIS Laboratory of Electronics, Antennas and Telecommunications (UMR 7248) LEAT - Université Nice-Sophia Antipolis, UMR CNRS 7248 Campus Sophi@Tech - Bâtiment Forum 930 route des Colles, BP 145, 06903

More information

Von der Hardware zur Software in FPGAs mit Embedded Prozessoren. Alexander Hahn Senior Field Application Engineer Lattice Semiconductor

Von der Hardware zur Software in FPGAs mit Embedded Prozessoren. Alexander Hahn Senior Field Application Engineer Lattice Semiconductor Von der Hardware zur Software in FPGAs mit Embedded Prozessoren Alexander Hahn Senior Field Application Engineer Lattice Semiconductor AGENDA Overview Mico32 Embedded Processor Development Tool Chain HW/SW

More information

Motivation and Contents Overview

Motivation and Contents Overview Motivation and Contents Overview Software Engineering Winter Semester 2011/2012 Department of Computer Science cs.uni-salzburg.at Dr. Stefan Resmerita 2 Course Contents Goals Learning about commonly used

More information

A Generic Network Interface Architecture for a Networked Processor Array (NePA)

A Generic Network Interface Architecture for a Networked Processor Array (NePA) A Generic Network Interface Architecture for a Networked Processor Array (NePA) Seung Eun Lee, Jun Ho Bahn, Yoon Seok Yang, and Nader Bagherzadeh EECS @ University of California, Irvine Outline Introduction

More information

Assessing trade-offs between energy consumption and security in sensor networks: simulations or testbeds?

Assessing trade-offs between energy consumption and security in sensor networks: simulations or testbeds? Assessing trade-offs between energy consumption and security in sensor networks: simulations or testbeds? F. Maraninchi 1, Grenoble INP/Ensimag, VERIMAG mainly summarizing discussions with: Laurent Mounier,

More information

Testing of Digital System-on- Chip (SoC)

Testing of Digital System-on- Chip (SoC) Testing of Digital System-on- Chip (SoC) 1 Outline of the Talk Introduction to system-on-chip (SoC) design Approaches to SoC design SoC test requirements and challenges Core test wrapper P1500 core test

More information

Design and Implementation of an On-Chip timing based Permutation Network for Multiprocessor system on Chip

Design and Implementation of an On-Chip timing based Permutation Network for Multiprocessor system on Chip Design and Implementation of an On-Chip timing based Permutation Network for Multiprocessor system on Chip Ms Lavanya Thunuguntla 1, Saritha Sapa 2 1 Associate Professor, Department of ECE, HITAM, Telangana

More information

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson CS 3530 Operating Systems L02 OS Intro Part 1 Dr. Ken Hoganson Chapter 1 Basic Concepts of Operating Systems Computer Systems A computer system consists of two basic types of components: Hardware components,

More information

Chapter 11 I/O Management and Disk Scheduling

Chapter 11 I/O Management and Disk Scheduling Operating Systems: Internals and Design Principles, 6/E William Stallings Chapter 11 I/O Management and Disk Scheduling Dave Bremer Otago Polytechnic, NZ 2008, Prentice Hall I/O Devices Roadmap Organization

More information

Systems on Chip Design

Systems on Chip Design Systems on Chip Design College: Engineering Department: Electrical First: Course Definition, a Summary: 1 Course Code: EE 19 Units: 3 credit hrs 3 Level: 3 rd 4 Prerequisite: Basic knowledge of microprocessor/microcontroller

More information

How To Design A Single Chip System Bus (Amba) For A Single Threaded Microprocessor (Mma) (I386) (Mmb) (Microprocessor) (Ai) (Bower) (Dmi) (Dual

How To Design A Single Chip System Bus (Amba) For A Single Threaded Microprocessor (Mma) (I386) (Mmb) (Microprocessor) (Ai) (Bower) (Dmi) (Dual Architetture di bus per System-On On-Chip Massimo Bocchi Corso di Architettura dei Sistemi Integrati A.A. 2002/2003 System-on on-chip motivations 400 300 200 100 0 19971999 2001 2003 2005 2007 2009 Transistors

More information

Efficient Software Development Platforms for Multimedia Applications at Different Abstraction Levels

Efficient Software Development Platforms for Multimedia Applications at Different Abstraction Levels Efficient Software Development Platforms for Multimedia Applications at Different ion Levels Katalin Popovici 1 Xavier Guerin 1 1 TIMA Laboratory 46 Avenue Felix Viallet F38031, Grenoble, FRANCE {FirstName.LastName@imag.fr}

More information

Establishing Great Software Development Process(es) for Your Organization. By Dale Mayes DMayes@HomePortEngineering.com

Establishing Great Software Development Process(es) for Your Organization. By Dale Mayes DMayes@HomePortEngineering.com Establishing Great Software Development Process(es) for Your Organization By Dale Mayes DMayes@HomePortEngineering.com Class: ETP-410 Embedded Systems Conference San Francisco 2005 Abstract: There are

More information

Project Plan. Project Plan. May13-06. Logging DC Wattmeter. Team Member: Advisor : Ailing Mei. Collin Christy. Andrew Kom. Client: Chongli Cai

Project Plan. Project Plan. May13-06. Logging DC Wattmeter. Team Member: Advisor : Ailing Mei. Collin Christy. Andrew Kom. Client: Chongli Cai Project Plan May13-06 Logging DC Wattmeter Team Member: Ailing Mei Andrew Kom Chongli Cai Advisor : Collin Christy Client: Garmin International David Hoffman Qiaoya Cui Table of Contents Need Statement...

More information

COMPUTERS ORGANIZATION 2ND YEAR COMPUTE SCIENCE MANAGEMENT ENGINEERING UNIT 5 INPUT/OUTPUT UNIT JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ

COMPUTERS ORGANIZATION 2ND YEAR COMPUTE SCIENCE MANAGEMENT ENGINEERING UNIT 5 INPUT/OUTPUT UNIT JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ COMPUTERS ORGANIZATION 2ND YEAR COMPUTE SCIENCE MANAGEMENT ENGINEERING UNIT 5 INPUT/OUTPUT UNIT JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ Tema 5. Unidad de E/S 1 I/O Unit Index Introduction. I/O Problem

More information

Run-Time Scheduling Support for Hybrid CPU/FPGA SoCs

Run-Time Scheduling Support for Hybrid CPU/FPGA SoCs Run-Time Scheduling Support for Hybrid CPU/FPGA SoCs Jason Agron jagron@ittc.ku.edu Acknowledgements I would like to thank Dr. Andrews, Dr. Alexander, and Dr. Sass for assistance and advice in both research

More information

Modeling and Validation of a Data Process Unit Control for Space Applications

Modeling and Validation of a Data Process Unit Control for Space Applications Modeling and Validation of a Data Process Unit Control for Space Applications Wan Hai, Huang Chongdi, Wang Yuhui, He Fei and Gu Ming Key Lab of ISS of MOE, TNList, School of Software, Tsinghua University,

More information

Building Blocks for PRU Development

Building Blocks for PRU Development Building Blocks for PRU Development Module 1 PRU Hardware Overview This session covers a hardware overview of the PRU-ICSS Subsystem. Author: Texas Instruments, Sitara ARM Processors Oct 2014 2 ARM SoC

More information

Concept Engineering Adds JavaScript-based Web Capabilities to Nlview at DAC 2016

Concept Engineering Adds JavaScript-based Web Capabilities to Nlview at DAC 2016 KAL - Large IP Cores: Memory Controllers: SD/SDIO 2.0/3.0 Controller SDRAM Controller DDR/DDR2/DDR3 SDRAM Controller NAND Flash Controller Flash/EEPROM/SRAM Controller Dear , Concept Engineering

More information

Methods and Tools For Embedded Distributed System Scheduling and Schedulability Analysis

Methods and Tools For Embedded Distributed System Scheduling and Schedulability Analysis Methods and Tools For Embedded Distributed System Scheduling and Schedulability Analysis Steve Vestal Honeywell Labs Steve.Vestal@Honeywell.com 18 October 2005 Outline Background Binding and Routing Scheduling

More information

Serial Communications

Serial Communications April 2014 7 Serial Communications Objectives - To be familiar with the USART (RS-232) protocol. - To be able to transfer data from PIC-PC, PC-PIC and PIC-PIC. - To test serial communications with virtual

More information

SSC - Concurrency and Multi-threading Java multithreading programming - Synchronisation (I)

SSC - Concurrency and Multi-threading Java multithreading programming - Synchronisation (I) SSC - Concurrency and Multi-threading Java multithreading programming - Synchronisation (I) Shan He School for Computational Science University of Birmingham Module 06-19321: SSC Outline Outline of Topics

More information

A Hardware and Software Monitor for High-Level System-on-Chip Verification

A Hardware and Software Monitor for High-Level System-on-Chip Verification A Hardware and Software Monitor for High-Level System-on-Chip Verification M. El Shobaki and L. Lindh International Symposium on Quality Electronic Design, 2001 Presenter: Gu, Ruei-Ting What s the problem?

More information

EEM870 Embedded System and Experiment Lecture 1: SoC Design Overview

EEM870 Embedded System and Experiment Lecture 1: SoC Design Overview EEM870 Embedded System and Experiment Lecture 1: SoC Design Overview Wen-Yen Lin, Ph.D. Department of Electrical Engineering Chang Gung University Email: wylin@mail.cgu.edu.tw Feb. 2013 Course Overview

More information

SoC Curricula at Tallinn Technical University

SoC Curricula at Tallinn Technical University SoC Curricula at Tallinn Technical University Margus Kruus, Kalle Tammemäe, Peeter Ellervee Tallinn Technical University Phone: +372-6202250, Fax: +372-6202246 kruus@cc.ttu.ee nalle@cc.ttu.ee lrv@cc.ttu.ee

More information

What is a System on a Chip?

What is a System on a Chip? What is a System on a Chip? Integration of a complete system, that until recently consisted of multiple ICs, onto a single IC. CPU PCI DSP SRAM ROM MPEG SoC DRAM System Chips Why? Characteristics: Complex

More information

Agenda. Michele Taliercio, Il circuito Integrato, Novembre 2001

Agenda. Michele Taliercio, Il circuito Integrato, Novembre 2001 Agenda Introduzione Il mercato Dal circuito integrato al System on a Chip (SoC) La progettazione di un SoC La tecnologia Una fabbrica di circuiti integrati 28 How to handle complexity G The engineering

More information

Modeling a GPS Receiver Using SystemC

Modeling a GPS Receiver Using SystemC Modeling a GPS Receiver using SystemC Modeling a GPS Receiver Using SystemC Bernhard Niemann Reiner Büttner Martin Speitel http://www.iis.fhg.de http://www.iis.fhg.de/kursbuch/kurse/systemc.html The e

More information

Design and Verification of Nine port Network Router

Design and Verification of Nine port Network Router Design and Verification of Nine port Network Router G. Sri Lakshmi 1, A Ganga Mani 2 1 Assistant Professor, Department of Electronics and Communication Engineering, Pragathi Engineering College, Andhra

More information

An Ultra-low low energy asynchronous processor for Wireless Sensor Networks

An Ultra-low low energy asynchronous processor for Wireless Sensor Networks An Ultra-low low energy asynchronous processor for Wireless Sensor Networks.Necchi,.avagno, D.Pandini,.Vanzago Politecnico di Torino ST Microelectronics Wireless Sensor Networks - Ad-hoc wireless networks

More information

Switched Interconnect for System-on-a-Chip Designs

Switched Interconnect for System-on-a-Chip Designs witched Interconnect for ystem-on-a-chip Designs Abstract Daniel iklund and Dake Liu Dept. of Physics and Measurement Technology Linköping University -581 83 Linköping {danwi,dake}@ifm.liu.se ith the increased

More information

Dr.-Ing. Rainer Rasche dspace GmbH Rathenaustrasse 26 33102 Paderborn automotive testing expo June 22, 2010

Dr.-Ing. Rainer Rasche dspace GmbH Rathenaustrasse 26 33102 Paderborn automotive testing expo June 22, 2010 Combining Two Worlds: Precise Real-Time- Based and Convenient PC-Based Testing Dr.-Ing. Rainer Rasche dspace GmbH Rathenaustrasse 26 33102 Paderborn nd automotive testing expo June 22, 2010 Agenda Testautomation

More information

Chapter 2 Features of Embedded System

Chapter 2 Features of Embedded System Chapter 2 Features of Embedded System Abstract This chapter will introduce the basic elements of embedded systems (or dedicated systems). The integrated control systems represent one of the areas of modern

More information

MPSoC Virtual Platforms

MPSoC Virtual Platforms CASTNESS 2007 Workshop MPSoC Virtual Platforms Rainer Leupers Software for Systems on Silicon (SSS) RWTH Aachen University Institute for Integrated Signal Processing Systems Why focus on virtual platforms?

More information

Application of UML in Real-Time Embedded Systems

Application of UML in Real-Time Embedded Systems Application of UML in Real-Time Embedded Systems Aman Kaur King s College London, London, UK Email: aman.kaur@kcl.ac.uk Rajeev Arora Mechanical Engineering Department, Invertis University, Invertis Village,

More information

Information and Communication Technologies. Raúl Mateos Gil. Electronic DESCRIPTION OF THE RESEARCH RESULTS

Information and Communication Technologies. Raúl Mateos Gil. Electronic DESCRIPTION OF THE RESEARCH RESULTS Ref.: TIC_UAH_08 Industrial Sector Researcher Department Information and Communication Technologies Raúl Mateos Gil Electronic Contact Details 91 885 65 63 91 885 65 91 raul@depeca.uah.es Web Site Title

More information

COMPUTER ARCHITECTURE. Input/Output

COMPUTER ARCHITECTURE. Input/Output HUMBOLDT-UNIVERSITÄT ZU BERLIN INSTITUT FÜR INFORMATIK COMPUTER ARCHITECTURE Lecture 17 Input/Output Sommersemester 2002 Leitung: Prof. Dr. Miroslaw Malek www.informatik.hu-berlin.de/rok/ca CA - XVII -

More information

Microtronics technologies Mobile: 99707 90092

Microtronics technologies Mobile: 99707 90092 For more Project details visit: http://www.projectsof8051.com/rfid-based-attendance-management-system/ Code Project Title 1500 RFid Based Attendance System Synopsis for RFid Based Attendance System 1.

More information

Embedded Systems. introduction. Jan Madsen

Embedded Systems. introduction. Jan Madsen Embedded Systems introduction Jan Madsen Informatics and Mathematical Modeling Technical University of Denmark Richard Petersens Plads, Building 321 DK2800 Lyngby, Denmark jan@imm.dtu.dk Wireless Sensor

More information

Certification Authorities Software Team (CAST) Position Paper CAST-13

Certification Authorities Software Team (CAST) Position Paper CAST-13 Certification Authorities Software Team (CAST) Position Paper CAST-13 Automatic Code Generation Tools Development Assurance Completed June 2002 NOTE: This position paper has been coordinated among the

More information

COMPUTER HARDWARE. Input- Output and Communication Memory Systems

COMPUTER HARDWARE. Input- Output and Communication Memory Systems COMPUTER HARDWARE Input- Output and Communication Memory Systems Computer I/O I/O devices commonly found in Computer systems Keyboards Displays Printers Magnetic Drives Compact disk read only memory (CD-ROM)

More information

Accellera Systems Initiative completes SystemC AMS 2.0 standard for mixed-signal design of electronic systems

Accellera Systems Initiative completes SystemC AMS 2.0 standard for mixed-signal design of electronic systems INDUSTRY QUOTE SHEET March 19, 2013 Accellera Systems Initiative completes SystemC AMS 2.0 standard for mixed-signal design of electronic systems ASTC With increasing systems integration, most embedded

More information

Technology to Control Hybrid Computer Systems

Technology to Control Hybrid Computer Systems INFORMATION TECHNOLOGY Hynomics (formerly HyBrithms Corporation, formerly Sagent Corporation) Technology to Control Hybrid Computer Systems Businesses and industries, both large and small, increasingly

More information

Chapter 19: Real-Time Systems. Overview of Real-Time Systems. Objectives. System Characteristics. Features of Real-Time Systems

Chapter 19: Real-Time Systems. Overview of Real-Time Systems. Objectives. System Characteristics. Features of Real-Time Systems Chapter 19: Real-Time Systems System Characteristics Features of Real-Time Systems Chapter 19: Real-Time Systems Implementing Real-Time Operating Systems Real-Time CPU Scheduling VxWorks 5.x 19.2 Silberschatz,

More information

Memory Characterization to Analyze and Predict Multimedia Performance and Power in an Application Processor

Memory Characterization to Analyze and Predict Multimedia Performance and Power in an Application Processor WHITE PAPER Memory Characterization to Analyze and Predict Multimedia Performance and Power in an Application Processor Yu Bai Staff Engineer, APSE Marvell November 2011 www.marvell.com Introduction: Nowadays,

More information

Software engineering for real-time systems

Software engineering for real-time systems Introduction Software engineering for real-time systems Objectives To: Section 1 Introduction to real-time systems Outline the differences between general-purpose applications and real-time systems. Give

More information

DIPLODOCUS: An Environment for. the Hardware/Software Partitioning of. Institut Mines-Telecom. Complex Embedded Systems

DIPLODOCUS: An Environment for. the Hardware/Software Partitioning of. Institut Mines-Telecom. Complex Embedded Systems DIPLODOCUS: An Environment for Institut Mines-Telecom the Hardware/Software Partitioning of Complex Embedded Systems Ludovic Apvrille, ludovic.apvrille@telecom-paristech.fr ETR 2013, Toulouse, France Goals

More information

Outline. Introduction. Multiprocessor Systems on Chip. A MPSoC Example: Nexperia DVP. A New Paradigm: Network on Chip

Outline. Introduction. Multiprocessor Systems on Chip. A MPSoC Example: Nexperia DVP. A New Paradigm: Network on Chip Outline Modeling, simulation and optimization of Multi-Processor SoCs (MPSoCs) Università of Verona Dipartimento di Informatica MPSoCs: Multi-Processor Systems on Chip A simulation platform for a MPSoC

More information

Technical Note. Micron NAND Flash Controller via Xilinx Spartan -3 FPGA. Overview. TN-29-06: NAND Flash Controller on Spartan-3 Overview

Technical Note. Micron NAND Flash Controller via Xilinx Spartan -3 FPGA. Overview. TN-29-06: NAND Flash Controller on Spartan-3 Overview Technical Note TN-29-06: NAND Flash Controller on Spartan-3 Overview Micron NAND Flash Controller via Xilinx Spartan -3 FPGA Overview As mobile product capabilities continue to expand, so does the demand

More information

Early Hardware/Software Integration Using SystemC 2.0

Early Hardware/Software Integration Using SystemC 2.0 Early Hardware/Software Integration Using SystemC 2.0 Jon Connell, ARM. Bruce Johnson, Synopsys, Inc. Class 552, ESC San Francisco 2002 Abstract Capabilities added to SystemC 2.0 provide the needed expressiveness

More information

Using a Generic Plug and Play Performance Monitor for SoC Verification

Using a Generic Plug and Play Performance Monitor for SoC Verification Using a Generic Plug and Play Performance Monitor for SoC Verification Dr. Ambar Sarkar Kaushal Modi Janak Patel Bhavin Patel Ajay Tiwari Accellera Systems Initiative 1 Agenda Introduction Challenges Why

More information

Center for Hybrid and Embedded Software Systems

Center for Hybrid and Embedded Software Systems Center for Hybrid and Embedded Software Systems College of Engineering, University of California at Berkeley Presented by: Edward A. Lee, EECS, UC Berkeley Citris Founding Corporate Members Meeting, Feb.

More information

NIOS II Based Embedded Web Server Development for Networking Applications

NIOS II Based Embedded Web Server Development for Networking Applications NIOS II Based Embedded Web Server Development for Networking Applications 1 Sheetal Bhoyar, 2 Dr. D. V. Padole 1 Research Scholar, G. H. Raisoni College of Engineering, Nagpur, India 2 Professor, G. H.

More information

Example-driven Interconnect Synthesis for Heterogeneous Coarse-Grain Reconfigurable Logic

Example-driven Interconnect Synthesis for Heterogeneous Coarse-Grain Reconfigurable Logic Example-driven Interconnect Synthesis for Heterogeneous Coarse-Grain Reconfigurable Logic Clifford Wolf, Johann Glaser, Florian Schupfer, Jan Haase, Christoph Grimm Computer Technology /99 Overview Ultra-Low-Power

More information

Development of Low Cost Private Office Access Control System(OACS)

Development of Low Cost Private Office Access Control System(OACS) Development of Low Cost Private Office Access Control System(OACS) Sadeque Reza Khan Prime University, Department of Electrical and Electronic Engineering, Dhaka-1216, Bangladesh sadeque_008@yahoo.com

More information

Formal Verification by Model Checking

Formal Verification by Model Checking Formal Verification by Model Checking Natasha Sharygina Carnegie Mellon University Guest Lectures at the Analysis of Software Artifacts Class, Spring 2005 1 Outline Lecture 1: Overview of Model Checking

More information

Hardware in the Loop (HIL) Testing VU 2.0, 182.117, WS 2008/09

Hardware in the Loop (HIL) Testing VU 2.0, 182.117, WS 2008/09 Testen von Embedded Systems Hardware in the Loop (HIL) Testing VU 2.0, 182.117, WS 2008/09 Raimund dkirner Testing Embedded Software Testing the whole system including the physical environment is not possible

More information

Doctor of Philosophy in Computer Science

Doctor of Philosophy in Computer Science Doctor of Philosophy in Computer Science Background/Rationale The program aims to develop computer scientists who are armed with methods, tools and techniques from both theoretical and systems aspects

More information

7a. System-on-chip design and prototyping platforms

7a. System-on-chip design and prototyping platforms 7a. System-on-chip design and prototyping platforms Labros Bisdounis, Ph.D. Department of Computer and Communication Engineering 1 What is System-on-Chip (SoC)? System-on-chip is an integrated circuit

More information

sel4: from Security to Safety Gernot Heiser, Anna Lyons NICTA and UNSW Australia

sel4: from Security to Safety Gernot Heiser, Anna Lyons NICTA and UNSW Australia sel4: from Security to Safety Gernot Heiser, Anna Lyons NICTA and UNSW Australia 1 OS Trade-Offs Usability Minix Android Linux Trustworthiness Minix Android L4 sel4 Performance Linux L4 sel4 2015 Gernot

More information

ICECCS 08/Workshop «UML&AADL 2008», April, 2, 2008

ICECCS 08/Workshop «UML&AADL 2008», April, 2, 2008 Contract-based approach to analyze software components Abdelhafid Zitouni Lionel SEINTURIER Mahmoud BOUFAIDA Laboratory LIRE LIFL-INRIA ADAM Laboratory LIRE University of Constantine University of Lille

More information

Computer Engineering: Incoming MS Student Orientation Requirements & Course Overview

Computer Engineering: Incoming MS Student Orientation Requirements & Course Overview Computer Engineering: Incoming MS Student Orientation Requirements & Course Overview Prof. Charles Zukowski (caz@columbia.edu) Interim Chair, September 3, 2015 MS Requirements: Overview (see bulletin for

More information

Middleware. Peter Marwedel TU Dortmund, Informatik 12 Germany. technische universität dortmund. fakultät für informatik informatik 12

Middleware. Peter Marwedel TU Dortmund, Informatik 12 Germany. technische universität dortmund. fakultät für informatik informatik 12 Universität Dortmund 12 Middleware Peter Marwedel TU Dortmund, Informatik 12 Germany Graphics: Alexandra Nolte, Gesine Marwedel, 2003 2010 年 11 月 26 日 These slides use Microsoft clip arts. Microsoft copyright

More information

Java Embedded Applications

Java Embedded Applications TM a One-Stop Shop for Java Embedded Applications GeeseWare offer brings Java in your constrained embedded systems. You develop and simulate your Java application on PC, and enjoy a seamless hardware validation.

More information

Hardware Implementation of Improved Adaptive NoC Router with Flit Flow History based Load Balancing Selection Strategy

Hardware Implementation of Improved Adaptive NoC Router with Flit Flow History based Load Balancing Selection Strategy Hardware Implementation of Improved Adaptive NoC Rer with Flit Flow History based Load Balancing Selection Strategy Parag Parandkar 1, Sumant Katiyal 2, Geetesh Kwatra 3 1,3 Research Scholar, School of

More information

Pedraforca: ARM + GPU prototype

Pedraforca: ARM + GPU prototype www.bsc.es Pedraforca: ARM + GPU prototype Filippo Mantovani Workshop on exascale and PRACE prototypes Barcelona, 20 May 2014 Overview Goals: Test the performance, scalability, and energy efficiency of

More information

Below is a diagram explaining the data packet and the timing related to the mouse clock while receiving a byte from the PS-2 mouse:

Below is a diagram explaining the data packet and the timing related to the mouse clock while receiving a byte from the PS-2 mouse: PS-2 Mouse: The Protocol: For out mini project we designed a serial port transmitter receiver, which uses the Baud rate protocol. The PS-2 port is similar to the serial port (performs the function of transmitting

More information

Demystifying Data-Driven and Pausible Clocking Schemes

Demystifying Data-Driven and Pausible Clocking Schemes Demystifying Data-Driven and Pausible Clocking Schemes Robert Mullins Computer Architecture Group Computer Laboratory, University of Cambridge ASYNC 2007, 13 th IEEE International Symposium on Asynchronous

More information

Networking Remote-Controlled Moving Image Monitoring System

Networking Remote-Controlled Moving Image Monitoring System Networking Remote-Controlled Moving Image Monitoring System First Prize Networking Remote-Controlled Moving Image Monitoring System Institution: Participants: Instructor: National Chung Hsing University

More information

FPGA Prototyping Primer

FPGA Prototyping Primer FPGA Prototyping Primer S2C Inc. 1735 Technology Drive, Suite 620 San Jose, CA 95110, USA Tel: +1 408 213 8818 Fax: +1 408 213 8821 www.s2cinc.com What is FPGA prototyping? FPGA prototyping is the methodology

More information

Introduction to Operating Systems. Perspective of the Computer. System Software. Indiana University Chen Yu

Introduction to Operating Systems. Perspective of the Computer. System Software. Indiana University Chen Yu Introduction to Operating Systems Indiana University Chen Yu Perspective of the Computer System Software A general piece of software with common functionalities that support many applications. Example:

More information

Service-centric Software Engineering

Service-centric Software Engineering Service-centric Software Engineering Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 31 Slide 1 Objectives To explain the notion of a reusable service, based on web service standards, that

More information

Firmware version: 1.10 Issue: 7 AUTODIALER GD30.2. Instruction Manual

Firmware version: 1.10 Issue: 7 AUTODIALER GD30.2. Instruction Manual Firmware version: 1.10 Issue: 7 AUTODIALER GD30.2 Instruction Manual Firmware version: 2.0.1 Issue: 0.6 Version of the GPRS transmitters configurator: 1.3.6.3 Date of issue: 07.03.2012 TABLE OF CONTENTS

More information

Design of a High Speed Communications Link Using Field Programmable Gate Arrays

Design of a High Speed Communications Link Using Field Programmable Gate Arrays Customer-Authored Application Note AC103 Design of a High Speed Communications Link Using Field Programmable Gate Arrays Amy Lovelace, Technical Staff Engineer Alcatel Network Systems Introduction A communication

More information

Hybrid Platform Application in Software Debug

Hybrid Platform Application in Software Debug Hybrid Platform Application in Software Debug Jiao Feng July 15 2015.7.15 Software costs in SoC development 2 Early software adoption Previous Development Process IC Development RTL Design Physical Design

More information

Service-centric Software Engineering. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 31 Slide 1

Service-centric Software Engineering. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 31 Slide 1 Service-centric Software Engineering Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 31 Slide 1 Objectives To explain the notion of a reusable service, based on web service standards, that

More information

http://www.springer.com/0-387-26232-6

http://www.springer.com/0-387-26232-6 http://www.springer.com/0-387-26232-6 Chapter 2 TRANSACTION LEVEL MODELING An Abstraction Beyond RTL Laurent Maillet-Contoz and Frank Ghenassia STMicroelectronics, France Abstract: Key words: Transaction

More information

Providing Safe, User Space Access to Fast, Solid State Disks. Adrian Caulfield, Todor Mollov, Louis Eisner, Arup De, Joel Coburn, Steven Swanson

Providing Safe, User Space Access to Fast, Solid State Disks. Adrian Caulfield, Todor Mollov, Louis Eisner, Arup De, Joel Coburn, Steven Swanson Moneta-Direct: Providing Safe, User Space Access to Fast, Solid State Disks Adrian Caulfield, Todor Mollov, Louis Eisner, Arup De, Joel Coburn, Steven Swanson Non-volatile Systems Laboratory Department

More information

An Implementation Of Multiprocessor Linux

An Implementation Of Multiprocessor Linux An Implementation Of Multiprocessor Linux This document describes the implementation of a simple SMP Linux kernel extension and how to use this to develop SMP Linux kernels for architectures other than

More information

fakultät für informatik informatik 12 technische universität dortmund Data flow models Peter Marwedel Informatik 12 TU Dortmund Germany

fakultät für informatik informatik 12 technische universität dortmund Data flow models Peter Marwedel Informatik 12 TU Dortmund Germany 12 Data flow models Peter Marwedel Informatik 12 TU Dortmund Germany Models of computation considered in this course Communication/ local computations Communicating finite state machines Data flow model

More information

A Scalable VISC Processor Platform for Modern Client and Cloud Workloads

A Scalable VISC Processor Platform for Modern Client and Cloud Workloads A Scalable VISC Processor Platform for Modern Client and Cloud Workloads Mohammad Abdallah Founder, President and CTO Soft Machines Linley Processor Conference October 7, 2015 Agenda Soft Machines Background

More information

CAN & LIN Development Tool CLDT1004 HS CAN

CAN & LIN Development Tool CLDT1004 HS CAN HW Features : 1 x High Speed CAN Bus up to 1 Mbit/s 4 x digital Signal Output / Trigger Output easy synchronization between CAN Messages and physical HW Outputs SW Features : Can Bus Analyzing Tool Can

More information

ELEC 5260/6260/6266 Embedded Computing Systems

ELEC 5260/6260/6266 Embedded Computing Systems ELEC 5260/6260/6266 Embedded Computing Systems Spring 2016 Victor P. Nelson Text: Computers as Components, 3 rd Edition Prof. Marilyn Wolf (Georgia Tech) Course Topics Embedded system design & modeling

More information

Embedded Systems Lecture 9: Reliability & Fault Tolerance. Björn Franke University of Edinburgh

Embedded Systems Lecture 9: Reliability & Fault Tolerance. Björn Franke University of Edinburgh Embedded Systems Lecture 9: Reliability & Fault Tolerance Björn Franke University of Edinburgh Overview Definitions System Reliability Fault Tolerance Sources and Detection of Errors Stage Error Sources

More information

Video Conferencing Unit. by Murat Tasan

Video Conferencing Unit. by Murat Tasan Video Conferencing Unit by Murat Tasan Video Conferencing Standards H.320 (ISDN) Popular in small business sector H.323 (Internet) More common with advancing cable modem and broadband access to homes H.324

More information