Electronic System Level Design and Verification

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

description

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 . - PowerPoint PPT Presentation

Transcript of Electronic System Level Design and Verification

Page 1: Electronic System Level Design and Verification

HM-ES-th2 Les 9 en 10

Electronic System Level Design and Verification

Page 2: Electronic System Level Design and Verification

HM-ES-th2 Les 9

Electronic System Level Design and Verification

Page 3: 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: 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: 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: 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: Electronic System Level Design and Verification

UPPAAL voorbeeldDining Philosophers

7

Page 8: Electronic System Level Design and Verification

Dining Philosophers

8

Page 9: Electronic System Level Design and Verification

Dining Philosophers

9

start position

position name

reference parameter

Page 10: Electronic System Level Design and Verification

Dining Philosophers

10

synchronization

guard

update

Page 11: Electronic System Level Design and Verification

Dining Philosophers

11

bounded integer

Page 12: Electronic System Level Design and Verification

Dining Philosophers

12

Page 13: 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: 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: 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: Electronic System Level Design and Verification

Dining Philosophers

16

Page 17: Electronic System Level Design and Verification

Dining Philosophers

17

Page 18: Electronic System Level Design and Verification

Diagnostic trace van deadlock

18

Page 19: 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: Electronic System Level Design and Verification

20

UPPAAL

Huiswerk!Bestudeer:

“Uppaal 4.0: Small Tutorial” en bedenk vragen!

Page 21: Electronic System Level Design and Verification

HM-ES-th2 Les 10

Electronic System Level Design and Verification

Page 22: 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: Electronic System Level Design and Verification

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

23

Page 24: Electronic System Level Design and Verification

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

24

Page 25: Electronic System Level Design and Verification

Verifier

25

Page 26: 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: Electronic System Level Design and Verification

Voorbeeld CounterTest1

27

CounterTest:

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

invariant

guard

Page 28: Electronic System Level Design and Verification

Verify CounterTest1

28Is dit wat je verwacht?

Page 29: 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: Electronic System Level Design and Verification

Verify CounterTest2

30

Page 31: 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: Electronic System Level Design and Verification

Simulation (in state Low)

32

Page 33: Electronic System Level Design and Verification

Simulation (in state Low)

33

Page 34: Electronic System Level Design and Verification

Verification

34