De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification.

Verwante presentaties


Presentatie over: "HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification."— Transcript van de presentatie:

1 HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

2 HM-ES-th2 Les 9 Electronic System Level Design and Verification

3 UPPAAL  UPPAAL is een geïntegreerde tool voor het modeleren, valideren en verifiëren van real-time systemen.  Een UPPAAL model bestaat uit een netwerk van timed finite state machines, uitgebreid met datatypes.  UPPAAL is gratis te gebruiken voor niet-commercieel gebruik in het hoger onderwijs. Voor commercieel gebruik moet worden betaald. 54

4 UPPAAL model  Een UPPAAL model bestaat uit:  Globale declaraties  Types  Bounded integers  Arrays  Structs  Variabelen  Functies (in C syntax)  Channels (voor synchronisatie)  Clocks (voor het bijhouden van de tijd)  Proces templates  Grafisch weergegeven als een timed FSMD (Finite State Machine with Data)  Lokale declaraties  System declarations  Instantieert processen 55

5 UPPAAL proces  Een UPPAAL proces wordt grafisch weergegeven en bestaat uit:  Toestanden (positions)  Overgangen (transitions) eventueel voorzien van:  Guard (voorwaarde waaronder transition mogelijk is)  Synchronization (rendezvous via een channel):  c!  synchroniseer met c? op channel c  c?  synchroniseer met c! channel c  Update:  Toekenningen aan variabelen.  Reset van de tijd 56

6 UPPAAL template  We kunnen een UPPAAL proces definiëren als een template met parameters (vergelijkbaar met een C++ template)  Er kunnen verschillende instances van deze template worden aangemaakt (met verschillende argumenten) 57

7 UPPAAL voorbeeld  Dining Philosophers 58

8 Dining Philosophers 59

9 Dining Philosophers 60 start position position name reference parameter

10 Dining Philosophers 61 synchronization guard update

11 Dining Philosophers 62 bounded integer

12 Dining Philosophers 63

13 UPPAAL Model  We kunnen een UPPAAL model:  Simuleren (valideren)  Checken (verifiëren)  Met behulp van Requirement Specification Language (Query Language)  Subset van TCTL = Timed Computation Tree Logic 64

14 Requirement Specification Language  Proposities  Vergelijkingen bijvoorbeeld a>3 bijvoorbeeld Init.i==5 (lokale variabele i in proces Init)  Proces bevind zich in een bepaalde toestand bijvoorbeeld P0.Eat  Expressies met meerdere proposities  Propositielogica: &&, and, ||, or, !, not, imply  Predicatenlogica: A (voor alle), E (er is een)  Linear Temporal Logic: [] (altijd), <> (ooit) 65

15 Requirement Specification Language 66 ExpressieBetekenisGelijk aan E<> pEr is een pad waar ooit p A[] pVoor alle paden altijd p! (E<> !p) E[] pEr is een pad waarvoor altijd p A<> pVoor alle paden ooit p! (E[] !p) p --> qLeid totA[] (p imply A<> q) A[] !deadlockEr kan nooit een deadlock optreden

16 Dining Philosophers 67

17 Dining Philosophers 68

18 Diagnostic trace van deadlock 69

19 Dining Philosophers  Wat is het verschil tussen het UPPAAL model en het op het practicum bestudeerde SPIN model? 70 In het UPPAAL model kan een filosoof een vork niet neerleggen, maar alleen doorgeven aan een andere filosoof Huiswerk! Pas het model aan zodat een vork neergelegd kan worden!

20 71 UPPAAL Huiswerk! Bestudeer: “Uppaal 4.0: Small Tutorial” en bedenk vragen!

21 HM-ES-th2 Les 10 Electronic System Level Design and Verification

22 Uitwerking huiswerk 73 chan pickup[5]; chan laydown[5]; P0 = Philo(pickup[0], laydown[0], pickup[1], laydown[1]); P1 = Philo(pickup[1], laydown[1], pickup[2], laydown[2]); P2 = Philo(pickup[2], laydown[2], pickup[3], laydown[3]); P3 = Philo(pickup[3], laydown[3], pickup[4], laydown[4]); P4 = Philo(pickup[4], laydown[4], pickup[0], laydown[0]); F0 = Fork(pickup[0], laydown[0]); F1 = Fork(pickup[1], laydown[1]); F2 = Fork(pickup[2], laydown[2]); F3 = Fork(pickup[3], laydown[3]); F4 = Fork(pickup[4], laydown[4]); system F0, F1, F2, F3, F4, P0, P1, P2, P3, P4; chan& pickup_left, chan& laydown_left, chan& pickup_right, chan& laydown_right chan& pickup, chan& laydown Declarations: System declarations: Fork: Philo:

23 E<> (P0.Eat && P2.Eat) 74

24 E<> (P0.Eat && P2.Eat) 75

25 Verifier 76

26 Tijd in UPPAAL  Tijd wordt bijgehouden in clocks (er kunnen meerdere clocks zijn)  Bijvoorbeeld: clock c;  Clocks worden “vanzelf” (allemaal gelijk) opgehoogd  Clocks kan gereset worden  Bijvoorbeeld c:=0  We kunnen een invariant bij een toestand gebruiken  Bijvoorbeeld: c<=5  We kunnen een guard bij een overgang gebruiken  Bijvoorbeeld: c>=3 77

27 Voorbeeld CounterTest1 78 CounterTest: System declarations: CT = CounterTest(); system CT; invariant guard

28 Verify CounterTest1 79 Is dit wat je verwacht?

29 Voorbeeld CounterTest2 80 CounterTest: System declarations: CT = CounterTest(); system CT; urgent state (de tijd kan niet verhoogd worden in een urgent state)

30 Verify CounterTest2 81

31 Voorbeeld timed model 82 Lamp: System declarations: system Lamp, User; Declarations: clock c; chan press; User: Wat wordt hier gemodelleerd?

32 Simulation (in state Low) 83

33 Simulation (in state Low) 84

34 Verification 85


Download ppt "HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification."

Verwante presentaties


Ads door Google