1 / 53

Electronic System Level Design and Verification

Electronic System Level Design and Verification. HM-ES-th2 Les 1 t/m 4. Electronic System Level Design and Verification. HM-ES-th2 Les 1. Electronic System Level Design. Toetsing. Kies samen met een andere student een onderwerp m.b.t. Embedded Systems en ….

von
Télécharger la présentation

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 1 t/m 4

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

  3. Electronic System Level Design

  4. Toetsing Kiessamen met eenandere student eenonderwerp m.b.t. Embedded Systems en … • Schrijfeen Essay (2/3 van cijfer) • Wat is verschiltussen Essay en een Paper? • Uitgebreidehandleiding:http://www1.aucegypt.edu/academic/writers/index.htm • Proposal inleveren 29 november = volgende week! • Inleveren 20 december 2013! • GeefeenPresentatie (1/3 van cijfer) • Week 6 en 7 (na de kerst) • 15 minuten per 2 studenten + practicum moetvoldoendezijn.

  5. Criteria (zie BB)

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

  7. Stelling / vraag (voorbeelden) • OpenCL(Open Computing Language) is een goed alternatief voor HLS (High-Level Synthesis). • Zie: http://www.eejournal.com/archives/articles/20121106-opencl/?printView=true • Alle 8 bits microcontrollers zullen uiteindelijk vervangen worden door 32 bits microcontrollers. • Zie: http://www.edn.com/Home/PrintView?contentItemId=4398890 • … (nog aanvullen) …

  8. Electronic System Level Design and Verification • Validatie versus Verificatie • Hebben we het goedegemaakt? • Hebben we het goedgemaakt?

  9. Verificatie • Testen. • Probeer maar wat… • Maar wanneer ben je klaar? • FormeleVerificatie. • Wiskundigbewijs… • Maar hoe langduurtdat? Alternatief? Test coverage Peer review

  10. Motiverend voorbeeld Doetie het of Doetie het niet ?

  11. Bewijs het maar…

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

  13. Parallellisme • Waarom is verificatie lastig bij parallellisme? • Stel we hebben t samenwerkende taken met elk satomic (ondeelbare) sequentiële (opeenvolgende) stappen. T1 = T1.1, T1.2, … T1,s • Het aantal mogelijke volgordes v waarin de t * s stappen uitgevoerd kunnen worden is: Er is misschien maar 1 volgorde waarin het fout gaat! t = 2, s = 2  v = 6 t = 4, s = 3  v = 369600 t = 4, s = 9  v = 2,14528E+19

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

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

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

  17. Voorbeeld int x = 0; task t1() { for (inti = 0; i < 3; i++) { x = x + 1; } } task t2() { for (inti = 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

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

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

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

  21. SPIN en PROMELA • Met dank aan Gerard Holzmann Huiswerk! Bestudeerartikel over het gebruik van SPIN en PROMELA en bedenk vragen!

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

  23. Wat kun je bewijzen… • Welkeeigenschappen van eensysteem 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: alsereen request binnenkomtdanzaleraltijdeen reply gestuurdworden.Ander voorbeeld: de ATM geeft pas geld nadat het van eenrekening is afgeboekt.

  24. Hoe kom je aaneen model? • Hoe kom je aan het model wat je kuntchecken? • Top down = ideaalRequirements → Model → ImplementatieZie: FromSpecificationtoImplementation: A PROMELA to C Compilerhttp://www.mathematik.uni-stuttgart.de/~floeff/publications/96-enstparis-s2-report.pdf (1996) • Bottom up = praktijkImplementatie → ModelZie: Model Checking C Programs by Translating C to Promelahttp://uu.diva-portal.org/smash/record.jsf?pid=diva2:235718 (2009)

  25. PROMELA bouwstenen • Welkesoortobjectenkom 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 • Watdoet:a==b -> count++ • Watdoet:a==b; count++ • Watdoet:a==b -> count++;a!=b -> count-- • Watdoet:if:: a==b -> count++:: a!=b -> count-- fi

  27. Message channel chanmq = [2] of { byte, short } • Watalseenprocesdoet:mq ! 4, 3456;mq ! 2, 9012;mq ! 2, 5678;mq ! 1, 1234 • Watalseenanderprocesdoet:mq ? 2, var1 • Watalseenanderprocesdoet:mq ? var2, var3

  28. Message channel chanmq = [2] of { byte, short } • Watalseenprocesdoet:mq ! 4, 3456;mq ! 2, 9012;mq ! 2, 5678;mq ! 1, 1234 • Watalseenanderprocesdoet:mq?? 2, var1 • Watalseenanderprocesdoet:mq ? var2, var3

  29. Message channel chanmq = [2] of { byte, short } • Watalseenprocesdoet:mq!! 4, 3456;mq!! 2, 9012;mq!! 2, 5678;mq!! 1, 1234 • Watalseenanderprocesdoet:mq ? 2, var1 • Watalseenanderprocesdoet:mq ? var2, var3

  30. Rendezvous chanmq = [0] of { byte, short } • Watalseenprocesdoet:mq ! 4, 3456;mq ! 2, 9012;mq ! 2, 5678;mq ! 1, 1234 • Watalseenanderprocesdoet:mq ? 2, var1 • Watalseenanderprocesdoet:mq ? var2, var3

  31. SPIN • De SPIN modelcheckerkaneen PROMELA model: • Random simuleren • Interactiefsimuleren • Verificeren • “Guided” simuleren Watzijn de verschillen? Waneergebruik je wat?

  32. atomic versus d_step • Wat is het verschil? • Wanneergebruik je wat? • Gegeven is datbeenglobalevariabele is die door diverse processenwordtbeschreven.Wat is verschiltussen:a==b -> a = a + benatomic { 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. Werktdezemutural exclusion? boolwantp = false, wantq = false; byte critical = 0; activeproctype 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. Werktdezemutural exclusion? boolwantp = false, wantq = false; byte turn = 1; boolcsp = false, csq = false; activeproctype 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 ookliveness • LTL: []<>csp && []<>csq • SPIN Translatevertaaltdit in never statement

  39. SPIN Verify

  40. Puzzel voor de volgende les • http://www.hellam.net/maths2000/frogs.swf • 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!

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

  42. Kikkers • Hoe modelleren we het probleem (3 mannetjeskikkers links en 3 vrouwtjeskikkersrechts) • Modelleer de 7 stenen • Definieer de oplossingalseenpropositie (ietswatwaar of onwaarkanzijn) solution • Modelleer het gedrag van de kikkers. • Check de LTL formule[]!solution • SPIN vindteenfout! • Gebruik Guided Simulation om de oplossingtezien.

  43. Modelleerstenen en solution mtype = {free, male, female} mtypestone[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; Kanook met eenlus…

  45. GedragVersie 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. GedragVersie 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

More Related