1 / 34

Electronic System Level Design and Verification

Electronic System Level Design and Verification. HM-ES-th2 Les 9 en 10. Electronic System Level Design and Verification. HM-ES-th2 Les 9. UPPAAL. UPPAAL is een geïntegreerde tool voor het modeleren , valideren en verifiëren van real-time systemen .

Download Presentation

Electronic System Level Design and Verification

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  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.

  4. UPPAAL model • Een UPPAAL modelbestaatuit: • Globaledeclaraties • Types • Bounded integers • Arrays • Structs • Variabelen • Functies (in C syntax) • Channels (voorsynchronisatie) • Clocks (voor het bijhouden van de tijd) • Proces templates • Grafischweergegevenalseen timed FSMD (Finite State Machine with Data) • Lokaledeclaraties • System declarations • Instantieertprocessen

  5. UPPAAL proces • Een UPPAAL proces wordt grafisch weergegeven en bestaat uit: • Toestanden (positions) • Overgangen (transitions) eventueelvoorzien van: • Guard (voorwaardewaaronder transition mogelijk is) • Synchronization (rendezvous via een channel): • c!  synchroniseer met c? op channel c • c?  synchroniseer met c! channel c • Update: • Toekenningenaanvariabelen. • Reset van de tijd

  6. UPPAAL template • We kunneneen UPPAAL procesdefiniërenalseen template met parameters (vergelijkbaar met een C++ template) • Erkunnenverschillende instances van deze template wordenaangemaakt (met verschillendeargumenten)

  7. UPPAAL voorbeeld • Dining Philosophers

  8. Dining Philosophers

  9. Dining Philosophers reference parameter position name start position

  10. DiningPhilosophers synchronization guard update

  11. DiningPhilosophers bounded integer

  12. DiningPhilosophers

  13. UPPAAL Model • We kunneneen UPPAAL model: • Simuleren (valideren) • Checken (verifiëren) • Met behulpvan Requirement Specification Language (Query Language) • Subset van TCTL = Timed Computation Tree Logic

  14. RequirementSpecification Language • Proposities • Vergelijkingenbijvoorbeeld a>3bijvoorbeeldInit.i==5 (lokalevariabelei in procesInit) • Procesbevindzich in eenbepaaldetoestandbijvoorbeeld P0.Eat • Expressies met meerdereproposities • Propositielogica: &&, and, ||, or, !, not, imply • Predicatenlogica: A (vooralle), E (er is een) • Linear Temporal Logic: [] (altijd), <> (ooit)

  15. RequirementSpecification Language

  16. Dining Philosophers

  17. Dining Philosophers

  18. Diagnostic trace van deadlock

  19. Dining Philosophers • Wat is het verschiltussen het UPPAAL model en het op het practicum bestudeerde SPIN model? In het UPPAAL model kaneenfilosoofeenvorknietneerleggen, maar alleendoorgevenaaneenanderefilosoof Huiswerk! Pas het model aanzodateenvorkneergelegdkanworden!

  20. UPPAAL Huiswerk! Bestudeer: “Uppaal4.0: Small Tutorial” en bedenk vragen!

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

  22. Uitwerkinghuiswerk chan& pickup_left, chan& laydown_left, chan& pickup_right, chan& laydown_right chan& pickup, chan& laydown Fork: Philo: System declarations: 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; Declarations: chanpickup[5]; chanlaydown[5];

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

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

  25. Verifier

  26. Tijd in UPPAAL • Tijdwordtbijgehouden in clocks (erkunnenmeerdere clocks zijn) • Bijvoorbeeld: clock c; • Clocks worden “vanzelf” (allemaalgelijk) opgehoogd • Clocks kangeresetworden • Bijvoorbeeldc:=0 • We kunneneen invariant bijeentoestandgebruiken • Bijvoorbeeld: c<=5 • We kunneneen guard bijeenoverganggebruiken • Bijvoorbeeld: c>=3

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

  28. Verify CounterTest1 Is ditwat je verwacht?

  29. Voorbeeld CounterTest2 CounterTest: urgent state (de tijdkannietverhoogdworden in een urgent state) System declarations: CT = CounterTest(); system CT;

  30. Verify CounterTest2

  31. Voorbeeld timed model Lamp: User: Watwordthiergemodelleerd? Declarations: System declarations: clock c; chan press; system Lamp, User;

  32. Simulation (in state Low)

  33. Simulation (in state Low)

  34. Verification

More Related