HM-ES-th2 Les 1 t/m 4 Electronic System Level Design and Verification.

Slides:



Advertisements
Verwante presentaties
1 Op Stap naar het SO. 2 • Waar gaat het om ? • Eerst even kijken naar het keuzewerkboek • Wat moest er zo dringend veranderen ? • Studiekeuzetaken !
Advertisements

> Met websitestatistieken naar een betere website Rick Koopman.
Sudoku puzzels: hoe los je ze op en hoe maak je ze?
De elektronische verzamelaanvraag Ruben Fontaine Markt- en Inkomensbeheer – dienst Aangiftes.
‘SMS’ Studeren met Succes deel 1
Elektrotechniek Elektrotechniek is een heel breed vakgebied.
Paulus' eerste brief aan Korinthe (20) 23 januari 2013 Bodegraven.
HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification.
NEDERLANDS WOORD BEELD IN & IN Klik met de muis
WAAROM? Onderzoek naar het meest geschikte traject voor de verlenging tot in Sint-Niklaas van het bestaande fietspad naast de Stekense Vaart en de Molenbeek.
BRIDGE Vervolgcursus Vervolg op starterscursus Bridgeclub Schiedam ‘59 info: Maandagavond: 19: – of
1 Resultaten marktonderzoek RPM Zeist, 16 januari 2002 Door: Olga van Veenendaal, medew. Rothkrans Projectmanagement.
November 2013 Opinieonderzoek Vlaanderen – oktober 2013 Opiniepeiling Vlaanderen uitgevoerd op het iVOXpanel.
Uitgaven aan zorg per financieringsbron / /Hoofdstuk 2 Zorg in perspectief /pagina 1.
1 COVER: Selecteer het grijze vlak hiernaast met rechtsklik & kies ‘change picture’ voor een ander beeld of verwijder deze slide & kies in de menubalk.
Global e-Society Complex België - Regio Vlaanderen e-Regio Provincie Limburg Stad Hasselt Percelen.
STAPPENPLAN GRAMMATICUS.
Ronde (Sport & Spel) Quiz Night !
Keuzeondersteunend model voor inbouwpakketten bij herbestemmingsprojecten Eindcolloquium Wiebrand Bunt.
Een Concert van het Nederlands Philharmonisch Orkest LES 4 1.
Een optimale benutting van vierkante meters Breda, 6 juni 2007.
Kb.1 Ik leer op een goede manier optellen en aftrekken
Tevredenheids- enquête 2012 P. Grouwels Inleiding Mogelijke antwoorden: Zeer goed: 4 sterren ****: volledig tevreden; Goed: 3 sterren ***:
‘Inleiding programmeren in Java’ SWI cursus: ‘Inleiding programmeren in Java’ 4e college Woe 19 januari 2000 drs. F. de Vries.
Mijn kind, Ik ben de Roos van Saron Hooglied 2,1 Zang : Betty Middler
9 januari 2013 Bodegraven 1. 1Korinthe 11 1 Wordt mijn navolgers, gelijk ook ik Christus navolg. 2.
Nooit meer onnodig groen? Luuk Misdom, IT&T
BZ voor de Klas 3 juni 2010.
Hoofdstuk 6: Controle structuren
FOD VOLKSGEZONDHEID, VEILIGHEID VAN DE VOEDSELKETEN EN LEEFMILIEU 1 Kwaliteit en Patiëntveiligheid in de Belgische ziekenhuizen anno 2008 Rapportage over.
Elke 7 seconden een nieuw getal
Logisch redeneren in wiskunde C
Softwarepakket voor het catalogeren en determineren van fruitsoorten
De grafiek van een lineair verband is ALTIJD een rechte lijn.
1 introductie 3'46” …………… normaal hart hond 1'41” ……..
Oefeningen F-toetsen ANOVA.
1Ben Bruidegom Hoe werkt een rekenmachine? Ben Bruidegom AMSTEL Instituut Universiteit van Amsterdam.
Wat levert de tweede pensioenpijler op voor het personeelslid? 1 Enkele simulaties op basis van de weddeschaal B1-B3.
TUDelft Knowledge Based Systems Group Zuidplantsoen BZ Delft, The Netherlands Caspar Treijtel Multi-agent Stratego.
Real-Time Systems (RTSYST) Week 2. Process/Thread states Scheduler = deel van OS dat de toestanden van processen/threads bepaald. OS gebruikt timerinterrupt.
Real-Time Systems (RTSYST) Week Priority inheritance voorbeeld taakprioexecutionrelease time d4EEQVE4 c3EVVE2 b2EE2 a1EQQQQE0.
13 maart 2014 Bodegraven 1. 1Korinthe Want gelijk het lichaam één is en vele leden heeft, en al de leden van het lichaam, hoe vele ook, een lichaam.
1 Datastructuren Heapsort (2e deel) College 5. 2 Vandaag  Heaps en Heapsort  (eind)  Nog sneller sorteren:  Ondergrenzen  Linair sorteren.
SIP File Recovery Tool. Agenda 18/10/2006Maken agenda + onderzoeken van verschillende filetypes 25/10/2006Uitzoeken hoe er effecient gelezen en geschreven.
Seminarie 1: Pythagoreïsche drietallen
Afrika: Topo nakijken en leren.
User management voor ondernemingen en organisaties
2009 Tevredenheidsenquête Resultaten Opleidingsinstellingen.
Ben Bruidegom 1 Sequentiële schakelingen Toestand uitgang bepaald door:  ingangen;  vorige toestand uitgang.
ribwis1 Toegepaste wiskunde – Differentieren Lesweek 7
Workshop Informatievaardigheden
1 Wie durft er nog in een vliegtuig, trein of auto te stappen? Over betrouwbaarheid van software Frits Vaandrager Institute for Computing and Information.
Op Stap naar het SO versie met oefeningen
ECHT ONGELOOFLIJK. Lees alle getallen. langzaam en rij voor rij
Hartelijk welkom bij de Nederlandse Bridge Academie Hoofdstuk 9 Het eerste bijbod 1Contract 1, hoofdstuk 9.
17/08/2014 | pag. 1 Fractale en Wavelet Beeldcompressie Les 5.
17/08/2014 | pag. 1 Fractale en Wavelet Beeldcompressie Les 3.
Fractale en Wavelet Beeldcompressie
Concurrency en Deadlock ICT Infrastructuren David N. Jansen Stallings hoofdstukken 5 en 6.
Waar gaat het nou toch om?!
12 sept 2013 Bodegraven 1. 2  vooraf lezen: 1Kor.7:12 t/m 24  indeling 1Korinthe 7  1 t/m 9: over het huwelijk  10 t/m 16: over echtscheiding  16.
13 november 2014 Bodegraven 1. 2 de vorige keer: 1Kor.15:29-34 indien er geen doden opgewekt worden...  vs 29: waarom dopen?  vs.30-32: waarom doodsgevaren.
1 Week /03/ is gestart in mineur De voorspellingen van alle groten der aarden dat de beurzen zouden stijgen is omgekeerd uitgedraaid.
Regels voor het vermenigvuldigen
1 DE ADVIEZEN VAN BEURSMAKELAAR BERNARD BUSSCHAERT Week
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
23 mei 2013 Bodegraven vanaf hoofdstuk 6: hoofdst.1: de wijsheid van de wereld hoofdst.2: de wijsheid van God hoofdst.3: Gods akker en Gods bouwwerk.
Python – For loop + strings
Transcript van de presentatie:

HM-ES-th2 Les 1 t/m 4 Electronic System Level Design and Verification

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

Electronic System Level Design 3

4 Toetsing Schrijf een Essay (2/3 van cijfer) Wat is verschil tussen Essay en een Paper? Uitgebreide handleiding: Proposal inleveren 29 november = volgende week! Inleveren 20 december 2013! Geef een Presentatie (1/3 van cijfer) Week 6 en 7 (na de kerst) 15 minuten per 2 studenten Kies samen met een andere student een onderwerp m.b.t. Embedded Systems en … + practicum moet voldoende zijn.

Criteria (zie BB) 5 CriteriumOmschrijving StellingWordt de (vraag)stelling op een duidelijke manier ingeleid, of komt deze als het ware uit de lucht vallen? Is de stelling eenvoudig en begrijpelijk geformuleerd? Is de stelling origineel? MethodeBeschrijft de auteur de gebruikte onderzoeksmethode op een duidelijke manier en wordt toegelicht waarom voor deze methode is gekozen? Presentatie van bevindingen Worden de gegevens overzichtelijk gepresenteerd? Analyse van bevindingenWorden de gegevens goed geanalyseerd? Worden alternatieven goed afgewogen en worden de gebruikte vergelijkingscriteria onderbouwd? Conclusies en aanbevelingen Volgen de conclusies logisch uit de analyse? Geven de conclusies een duidelijk antwoord op de stelling? Volgen de aanbevelingen logisch uit de conclusies? VormZijn er veel taalfouten? Is de tekst prettig leesbaar? Wordt op correcte wijze naar de literatuur verwezen?

Essay (voorbeelden) zie BB Wat is de toekomst van kunstmatige intelligentie in Embedded systemen? Beoordeling: 8. SystemC-AMS zal aansluiting moeten zoeken bij Matlab Simulink om succesvol te worden. Beoordeling: 8.5 Is Moore’s Law ooit een wet geweest? Beoordeling: 9 Is ARM marktleider op server gebied in 5 jaar? Beoordeling: 8 6

Stelling / vraag (voorbeelden) OpenCL (Open Computing Language) is een goed alternatief voor HLS (High-Level Synthesis). Zie: Alle 8 bits microcontrollers zullen uiteindelijk vervangen worden door 32 bits microcontrollers. Zie: … (nog aanvullen) … 7

8 Electronic System Level Design and Verification Validatie versus Verificatie Hebben we het goede gemaakt? Hebben we het goed gemaakt?

9 Verificatie Testen. Probeer maar wat… Maar wanneer ben je klaar? Formele Verificatie. Wiskundig bewijs… Maar hoe lang duurt dat? Test coverage Peer review Alternatief?

10 Motiverend voorbeeld Doet ie het of Doet ie het niet ?

11 Bewijs het maar…

Parallellisme Parallellisme zorgt voor snelheid en is om die reden vaak noodzakelijk. Als communicerende taken parallel uitgevoerd worden wordt de verificatie extra lastig E: denk aan race conditions en hazards en de oplossingen daarvoor (synchronisatie) in hardware. Problemen ontstaan vaak als deelsystemen worden samengevoegd. TI: denk aan multitasking en de problemen daarbij: Deadlock Starvation (livelock) Race conditions 12

Parallellisme 13 t = 2, s = 2  v = 6 t = 4, s = 3  v = t = 4, s = 9  v = 2,14528E+19 Er is misschien maar 1 volgorde waarin het fout gaat!

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

IPC Inter-Process Communication Als taken samenwerken moeten ze: Synchroniseren taak T 1 mag pas verder met stap T 1.a als taak T 2 stap T 2.b heeft uitgevoerd). Communiceren stap T 1.a van taak T 1 heeft data nodig die in stap T 2.b van taak T 2 wordt berekend. 15 Communiceren = Synchroniseren + Data Overdracht.

IPC Er zijn 2 hoofdvormen van Inter-Process Communication: Shared Memory Based Mutex (lock, unlock) Semaphore (wait, signal) Monitor (conditionele variabelen) Message Based Mailbox Message Queue. 16 TI studenten zijn hier al mee bekend, E studenten die ECV al hebben gedaan ook.

Voorbeeld 17 int x = 0; task t1() { for (int i = 0; i < 3; i++) { x = x + 1; } } task t2() { for (int i = 0; i < 3; i++) { x = x + 1; } } Wat is de waarde van x na afloop van dit programma als we ervan uitgaan dat memory synchronisatie juist werkt 3, 4, 5 of 6

Oplossing met mutex 18 int x = 0; mutex m; task t1() { for (int i = 1; i <= 3; i++) { m.lock(); x = x + 1; m.unlock(); } } task t2() { for (int i = 1; i <= 3; i++) { m.lock(); x = x + 1; m.unlock(); } }

Deadlock 19 mutex m1, m2; task t1() { m1.lock(); …; m2.lock(); …; m2.unlock(); …; m1.unlock(); } task t2() { m2.lock(); …; m1.lock(); …; m1.unlock(); …; m2.unlock(); }

SPIN en PROMELA Met SPIN kunnen we wiskundig bewijzen: dat een model van communicerende parallelle taken (beschreven in PROMELA) correct werkt en dat er geen deadlock optreed. 20

21 SPIN en PROMELA Met dank aan Gerard Holzmann Huiswerk! Bestudeer artikel over het gebruik van SPIN en PROMELA en bedenk vragen!

HM-ES-th2 Les 3 Electronic System Level Design and Verification

23 Wat kun je bewijzen… Welke eigenschappen van een systeem kun je bewijzen met model checking? Safety. Bijvoorbeeld: er komt nooit meer dan 1 proces tegelijk in dit stukje code (kritische gebied). Ander voorbeeld: Als er een trein passeert dan zijn de spoorbomen altijd geloten. Liveness. Bijvoorbeeld: proces A komt altijd een keer aan de beurt. Ander voorbeeld: als er geen treinen meer passeren dan gaan de spoorbomen na verloop van tijd weer open. General temporal. Bijvoorbeeld: als er een request binnenkomt dan zal er altijd een reply gestuurd worden. Ander voorbeeld: de ATM geeft pas geld nadat het van een rekening is afgeboekt.

24 Hoe kom je aan een model? Hoe kom je aan het model wat je kunt checken? Top down = ideaal Requirements → Model → Implementatie Zie: From Specification to Implementation: A PROMELA to C Compiler report.pdf (1996) report.pdf Bottom up = praktijk Implementatie → Model Zie: Model Checking C Programs by Translating C to Promela (2009)

25 PROMELA bouwstenen Welke soort objecten kom je tegen in een PROMELA model? Processes Statements == Expressies Message Channels Message channels Variables Basic data types: bit/bool, byte, short, int Compound data types: array, structure

26 Executability in PROMELA Wat doet: a==b -> count++ Wat doet: a==b; count++ Wat doet: a==b -> count++; a!=b -> count-- Wat doet: if :: a==b -> count++ :: a!=b -> count-- fi

27 Message channel chan mq = [2] of { byte, short } Wat als een proces doet: mq ! 4, 3456; mq ! 2, 9012; mq ! 2, 5678; mq ! 1, 1234 Wat als een ander proces doet: mq ? 2, var1 Wat als een ander proces doet: mq ? var2, var3

28 Message channel chan mq = [2] of { byte, short } Wat als een proces doet: mq ! 4, 3456; mq ! 2, 9012; mq ! 2, 5678; mq ! 1, 1234 Wat als een ander proces doet: mq ?? 2, var1 Wat als een ander proces doet: mq ? var2, var3

29 Message channel chan mq = [2] of { byte, short } Wat als een proces doet: mq !! 4, 3456; mq !! 2, 9012; mq !! 2, 5678; mq !! 1, 1234 Wat als een ander proces doet: mq ? 2, var1 Wat als een ander proces doet: mq ? var2, var3

30 Rendezvous chan mq = [0] of { byte, short } Wat als een proces doet: mq ! 4, 3456; mq ! 2, 9012; mq ! 2, 5678; mq ! 1, 1234 Wat als een ander proces doet: mq ? 2, var1 Wat als een ander proces doet: mq ? var2, var3

31 SPIN De SPIN modelchecker kan een PROMELA model: Random simuleren Interactief simuleren Verificeren “Guided” simuleren Wat zijn de verschillen? Waneer gebruik je wat?

32 atomic versus d_step Wat is het verschil? Wanneer gebruik je wat? Gegeven is dat b een globale variabele is die door diverse processen wordt beschreven. Wat is verschil tussen: a==b -> a = a + b en atomic { a==b -> a = a + b}

33 Linear-time Temporal Logic Until (weak W and strong U ) Always [] Eventually <> ![]p == <>!p []<>(p||q) == []<>p || []<>q []<>(p&&q) != []<>p && []<>q <>[](p&&q) == <>[]p && <>[]q <>[](p||q) != <>[]p || <>[]q

34 Werkt deze mutural exclusion? bool wantp = false, wantq = false; byte critical = 0; active proctype p() { do :: !wantq -> wantp = true; critical++; assert (critical == 1); critical--; wantp = false; od } active proctype q() { do :: !wantp -> wantq = true; critical++; assert (critical == 1); critical--; wantq = false; od }

35 SPIN Verify

36 SPIN Guided Simulation

37 Werkt deze mutural exclusion? bool wantp = false, wantq = false; byte turn = 1; bool csp = false, csq = false; active proctype p() { do :: wantp = true; do :: !wantq -> break; :: else -> if :: (turn == 1) :: (turn == 2) -> wantp = false; (turn == 1); wantp = true fi od; csp = true; assert (!(csp && csq)); csp = false; wantp = false; turn = 2 od } active proctype q() { do :: wantq = true; do :: !wantp -> break; :: else -> if :: (turn == 2) :: (turn == 1) -> wantq = false; (turn == 2); wantq = true fi od; csq = true; assert (!(csp && csq)); csq = false; wantq = false; turn = 1 od }

38 Check ook liveness LTL: []<>csp && []<>csq SPIN Translate vertaalt dit in never statement

39 SPIN Verify

40 Puzzel voor de volgende les Modeleer deze puzzel in PROMELA. Beweer dat het altijd waar is dat het doel van de puzzel niet bereikt zal worden. Verifeer met SPIN dat dit niet klopt. SPIN geeft een counter example → dit is de oplossing van de puzzel!

HM-ES-th2 Les 4 Electronic System Level Design and Verification

42 Kikkers Hoe modelleren we het probleem (3 mannetjes kikkers links en 3 vrouwtjes kikkers rechts) Modelleer de 7 stenen Definieer de oplossing als een propositie (iets wat waar of onwaar kan zijn) solution Modelleer het gedrag van de kikkers. Check de LTL formule []!solution SPIN vindt een fout! Gebruik Guided Simulation om de oplossing te zien.

43 Modelleer stenen en solution mtype = {free, male, female} mtype stone[7] #define solution (\ stone[0]==female && \ stone[1]==female && \ stone[2]==female && \ stone[3]==free)

44 init init { stone[0]=male; stone[1]=male; stone[2]=male; stone[3]=free; stone[4]=female; stone[5]=female; stone[6]=female; Kan ook met een lus…

45 Gedrag Versie 1 do :: (stone[0]==male && stone[1]==free) -> stone[0]=free; stone[1]=male :: (stone[0]==male && stone[2]==free) -> stone[0]=free; stone[2]=male :: (stone[1]==male && stone[2]==free) -> stone[1]=free; stone[2]=male :: (stone[1]==male && stone[3]==free) -> stone[1]=free; stone[3]=male :: (stone[1]==female && stone[0]==free) -> stone[1]=free; stone[0]=female

46 Gedrag Versie 1 :: (stone[2]==male && stone[3]==free) -> stone[2]=free; stone[3]=male :: (stone[2]==male && stone[4]==free) -> stone[2]=free; stone[4]=male :: (stone[2]==female && stone[1]==free) -> stone[2]=free; stone[1]=female :: (stone[2]==female && stone[0]==free) -> stone[2]=free; stone[0]=female :: … :: (stone[6]==female && stone[5]==free) -> stone[6]=free; stone[5]=female :: (stone[6]==female && stone[4]==free) -> stone[6]=free; stone[4]=female od }

47 SPIN LTL Translate

48 SPIN Verify

49 SPIN Guided Simulation

50 SPIN Guided Simulation

51 Versie 2: stone == process proctype stoneProc(byte n) { do :: atomic { (n stone[n]=free; stone[n+1]=male } :: atomic { (n stone[n]=free; stone[n+2]=male } :: atomic { (n>0 && stone[n]==female && stone[n-1]==free) -> stone[n]=free; stone[n-1]=female } :: atomic { (n>1 && stone[n]==female && stone[n-2]==free) -> stone[n]=free; stone[n-2]=female } od }

52 Init versie 2 init { byte i=0; do :: i==3 -> stone[i]=free; break :: else -> stone[i]=male; stone[6-i]=female; i++ od; atomic { byte j=0; do :: j==7 -> break :: else -> run stoneProc(j); j++ od }

53 Versie 3: frog == process Deze versie is gegeven als voorbeeld bij JSpin. Bedenk dat de manlijke en vrouwlijke kikkers zich anders gedragen => Maak 2 soorten processen. Elk proces krijgt bij aanmaken het nummer van de steen mee waar deze kikker begint. Deze variabele wordt gebruikt om bij te houden waar de kikker is.