hm-es-th2 les 9 en 10 electronic system level design and verification

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

Upload: andrea-lambrechts

Post on 13-May-2015

216 views

Category:

Documents


1 download

TRANSCRIPT

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

HM-ES-th2 Les 9 en 10

Electronic System Level Design and Verification

Page 2: HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

HM-ES-th2 Les 9

Electronic System Level Design and Verification

Page 3: HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

UPPAALUPPAAL 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.

3

Page 4: HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

UPPAAL modelEen UPPAAL model bestaat uit:

Globale declaratiesTypes

Bounded integers Arrays Structs

VariabelenFuncties (in C syntax)Channels (voor synchronisatie)Clocks (voor het bijhouden van de tijd)

Proces templatesGrafisch weergegeven als een timed FSMD (Finite State Machine with Data)Lokale declaraties

System declarations Instantieert processen 4

Page 5: HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

UPPAAL procesEen 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

5

Page 6: HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

UPPAAL templateWe 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)

6

Page 7: HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

UPPAAL voorbeeldDining Philosophers

7

Page 8: HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

Dining Philosophers

8

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

Dining Philosophers

9

start position

position name

reference parameter

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

Dining Philosophers

10

synchronization

guard

update

Page 11: HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

Dining Philosophers

11

bounded integer

Page 12: HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

Dining Philosophers

12

Page 13: HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

UPPAAL ModelWe kunnen een UPPAAL model:

Simuleren (valideren)Checken (verifiëren)

Met behulp van Requirement Specification Language (Query Language) Subset van TCTL = Timed Computation Tree Logic

13

Page 14: HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

Requirement Specification LanguageProposities

Vergelijkingen bijvoorbeeld a>3bijvoorbeeld Init.i==5 (lokale variabele i in proces Init)

Proces bevind zich in een bepaalde toestand bijvoorbeeld P0.Eat

Expressies met meerdere propositiesPropositielogica: &&, and, ||, or, !, not, implyPredicatenlogica: A (voor alle), E (er is een)Linear Temporal Logic: [] (altijd), <> (ooit)

14

Page 15: HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

Requirement Specification Language

15

Expressie Betekenis Gelijk aan

E<> p Er is een pad waar ooit p

A[] p Voor alle paden altijd p ! (E<> !p)

E[] p Er is een pad waarvoor altijd p

A<> p Voor alle paden ooit p ! (E[] !p)

p --> q Leid tot A[] (p imply A<> q)

A[] !deadlock Er kan nooit een deadlock optreden

Page 16: HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

Dining Philosophers

16

Page 17: HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

Dining Philosophers

17

Page 18: HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

Diagnostic trace van deadlock

18

Page 19: HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

Dining PhilosophersWat is het verschil tussen het UPPAAL model en het op

het practicum bestudeerde SPIN model?

19

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!

Page 20: HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

20

UPPAAL

Huiswerk!Bestudeer:

“Uppaal 4.0: Small Tutorial” en bedenk vragen!

Page 21: HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

HM-ES-th2 Les 10

Electronic System Level Design and Verification

Page 22: HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

Uitwerking huiswerk

22

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:

Page 23: HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

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

23

Page 24: HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

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

24

Page 25: HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

Verifier

25

Page 26: HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

Tijd in UPPAALTijd wordt bijgehouden in clocks (er kunnen meerdere

clocks zijn)Bijvoorbeeld: clock c;

Clocks worden “vanzelf” (allemaal gelijk) opgehoogdClocks kan gereset worden

Bijvoorbeeld c:=0We kunnen een invariant bij een toestand gebruiken

Bijvoorbeeld: c<=5We kunnen een guard bij een overgang gebruiken

Bijvoorbeeld: c>=3

26

Page 27: HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

Voorbeeld CounterTest1

27

CounterTest:

System declarations:CT = CounterTest();system CT;

invariant

guard

Page 28: HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

Verify CounterTest1

28Is dit wat je verwacht?

Page 29: HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

Voorbeeld CounterTest2

29

CounterTest:

System declarations:CT = CounterTest();system CT;

urgent state (de tijd kan niet verhoogd

worden in een urgent state)

Page 30: HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

Verify CounterTest2

30

Page 31: HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

Voorbeeld timed model

31

Lamp:

System declarations:system Lamp, User;

Declarations:clock c;chan press;

User:

Wat wordt hier gemodelleerd?

Page 32: HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

Simulation (in state Low)

32

Page 33: HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

Simulation (in state Low)

33

Page 34: HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification

Verification

34