80 likes | 339 Views
Harjutused. Otsustusdiagrammid ROBDD süntees. Shannoni arendus Optimaalse järjekorra leidmine Muutujate dünaamiline ümberjärjestamine SAT Karakteristliku võrrandi loomine SAT-i lahendamine. Harjutused. Ekvivalentsuskontroll Kasutades ROBDD Kasutades SAT-i Sümbolsimuleerimine
E N D
Harjutused • Otsustusdiagrammid • ROBDD süntees. Shannoni arendus • Optimaalse järjekorra leidmine • Muutujate dünaamiline ümberjärjestamine • SAT • Karakteristliku võrrandi loomine • SAT-i lahendamine Digitaalsüsteemide verifitseerimise kursus
Harjutused • Ekvivalentsuskontroll • Kasutades ROBDD • Kasutades SAT-i • Sümbolsimuleerimine • Seotud muutujate valemid • Koodikate • Leida lause-, harude-, teede- ja ümberlülituste-kate • Leida olekute, üleminekute kate • Genereerida testid 100 % avaldiste katte jaoks Digitaalsüsteemide verifitseerimise kursus
Otsustusdiagrammid • ROBDD süntees. Shannoni arendus • f = ¬a¬bcd + a¬bc + ¬abc + abc + ab¬cd + a¬b¬cd • 1) Koosta binaarne otsustuspuu • 2) Redutseeri see ROBDD-ks • 3) Kirjuta välja selle BDD funktsioon Digitaalsüsteemide verifitseerimise kursus
Otsustusdiagrammid • BDD süntees. Leidke optimaalne muutujate järjekord • f = ab + a¬b¬c¬d + a¬bcd + ¬abc + ¬ab¬cd + ¬a¬bcd • Järjestage dünaamiliselt ümber 2. ja 3. muutuja Digitaalsüsteemide verifitseerimise kursus
SAT • Loo karakteristlik võrrand • f = ¬ac + b¬c + a¬b • Lahenda SAT ülesanne Digitaalsüsteemide verifitseerimise kursus
Ekvivalentsuskontroll • Kas võrrandid f ja g on ekvivalentsed? • f = ¬ac + b¬c + a¬b • g = a¬c + ¬bc + ¬ab • Kontrolli SAT abil • Kontrolli ROBDD abil Digitaalsüsteemide verifitseerimise kursus
Koodikate void Function(int x,y,z) { int a, b, c; a=0; if(x) { a = 1;} else { if(a==0) { a = 1;} else { a = a + 1;} } if(y) { if(x) { a = 2;} } if(z) { b=c;} } • Genereeri minimaalse pikkusega test maksimaalse lausekatte jaoks • (sisendid x, y & z) • 2) Genereeri minimaalse pikkusega test maksimaalse harudekatte jaoks • 3) Genereeri minimaalse pikkusega test maksimaalse teedekatte jaoks • 4) Genereeri minimaalse pikkusega test maksimaalse ümberlülituste katte jaoks • 5) Millised laused/harud ei ole saavutatavad (nn. dead code)? • 6) Millised teed ei ole aktiveeritavad? Digitaalsüsteemide verifitseerimise kursus
Väited (assertions) • Millal on jada S1|=>S2 tõene? • S1=INT ##[0,3] TASK; S2=HDLR ##[1,4] DONE a) b) c) Digitaalsüsteemide verifitseerimise kursus