420 likes | 720 Views
Mudelikontroll on tehnika omaduste kontrolliks. Formaalne verifitseerimine: mudelikontroll. M udelikontroll. Kui v õrreldavad skeemid on järjestik-skeemid ja olekute vastavus pole teada, siis ei tule ekvivalentsuskontroll kõne alla
E N D
Mudelikontroll on tehnika omaduste kontrolliks Formaalne verifitseerimine: mudelikontroll Digitaalsüsteemide verifitseerimise kursus
Mudelikontroll • Kui võrreldavad skeemid on järjestik-skeemid ja olekute vastavus pole teada, siis ei tule ekvivalentsuskontroll kõne alla • Mudelikontroll käib läbi kogu olekuruumi (piiratud või piiramatu), et kontrollida, kas skeem vastab mingile omadusele • Mudelikontrolli on tarvis kui verifitseeritakse mittetäielikke ja abstratseid spetsifikatsioone Digitaalsüsteemide verifitseerimise kursus
Omaduste liigid • Ohutuse omadus (safety property) ütleb, et mingi soovimatu nähtus ei tohi esineda • Eluline omadus (liveness property) ütleb, et mingid vajalikud tingimused peavad kehtima • Õigluse omadus (fairness property) ütleb, et mingid olekud läbitakse korduvalt Digitaalsüsteemide verifitseerimise kursus
Omadused automaadina Vaatleme, kuidas suhtlevad TLC ja omaduste automaat kui omadusteks on: • Põhja-lõuna suunalisel liiklusel on erinev tuli kui ida-lääne suunalisel • Valgusfoor peab järgima tsüklit R,G,Y,R,G,Y.... Digitaalsüsteemide verifitseerimise kursus
Omadused automaadina Digitaalsüsteemide verifitseerimise kursus
Temporaalstruktuur ja arvutuspuud • Omaduste automaadi kasutamine on üldjuhul väga kohmakas • Seepärast kasutatakse teisi lähenemisi: temporaalloogikat, arvutuspuid, Kripke struktuure jt. Digitaalsüsteemide verifitseerimise kursus
Temporaalstruktuur ja arvutuspuud • Olekudiagramm ja olekujada Digitaalsüsteemide verifitseerimise kursus
Temporaalstruktuur ja arvutuspuud • Atomaadi üleminekute puu Digitaalsüsteemide verifitseerimise kursus
Kripke struktuuride süntees • Jaga olekusse sisenevad üleminekud sisendväärtuste järgi gruppidest • Loo iga grupi jaoks olek • Märgi olek tõeste sisendbittidega ja olekubittidega • Kustuta sisendite väärtused kaartelt Digitaalsüsteemide verifitseerimise kursus
Kripke struktuuride süntees Digitaalsüsteemide verifitseerimise kursus
Kripke struktuuride süntees Digitaalsüsteemide verifitseerimise kursus
Kripke struktuurid: arvutuspuu Digitaalsüsteemide verifitseerimise kursus
Temporaal-loogika • Vaatleme kolme loogikat: • LTL (linear temporal logic), • CTL (computation tree logic) ja • CTL* • Temporaal-loogikas kaht tüüpi valemeid: oleku valemid ja tee valemid Digitaalsüsteemide verifitseerimise kursus
Temporaal-loogika: LTL • LTL vaatleb ühte teed • 2 temporaaloperatsiooni: X(neXt) ja U(Until) • LTL-i valemid: • iga Boole’i muutuja on LTL valem • kui f ja g on LTL valemid, siis ~f ja f+g on LTL valemid • kui f ja g on LTL valemid, siis fUg ja Xg on LTL valemid Digitaalsüsteemide verifitseerimise kursus
Temporaal-loogika: LTL • Saab tuletada keerulisemaid operatsioone nagu: • Fg = TRUE U g, s.t. g saab kunagi tõeseks • Gf = ~(F~f), s.t. f on alati (globally) tõene • fRg = ~(~f U ~g), s.t. f peab olema väär kuni g saab tõeseks (Release operatsioon) Digitaalsüsteemide verifitseerimise kursus
Temporaal-loogika: LTL Digitaalsüsteemide verifitseerimise kursus
Temporaal-loogika: CTL, CTL* • Vaatleme hargnemistega aja mudelit, kus on paralleelselt mitu teed (vt. arvutuspuu!) • CTL kasutab samu temporaaltehteid kui LTL, kuid lisab kvantorid A (kõigi teede jaoks) ja E (eksisteerib tee) • CTL* on võimsam CTL-st, kuna lubab tehteid tee valemitega • CTL on seevastu lihtsam verifitseerida Digitaalsüsteemide verifitseerimise kursus
Temporaal-loogika: CTL • CTL-s kaheksa operaatorit: AX,EX,AG,EG,AF,EF,AU ja EU • Nende kirjeldamiseks piisab vaid kolmest: EX,EG ja EU AXf = ~EX(~f) AF(f) = ~EG(~f) AG(f) = ~EF(~f) EF(f) = E( TRUE U f) A(fUg) = (~E(~gU(~f)(~g)))(~EG(~g)) Digitaalsüsteemide verifitseerimise kursus
Temporaal-loogika: CTL • Operatsioon AX(f): Digitaalsüsteemide verifitseerimise kursus
Temporaal-loogika: CTL • Operatsioon EX(f): Digitaalsüsteemide verifitseerimise kursus
Temporaal-loogika: CTL • Operatsioon AG(f): Digitaalsüsteemide verifitseerimise kursus
Temporaal-loogika: CTL • Operatsioon EG(f): Digitaalsüsteemide verifitseerimise kursus
Temporaal-loogika: CTL • Operatsioon AF(f): Digitaalsüsteemide verifitseerimise kursus
Temporaal-loogika: CTL • Operatsioon EF(f): Digitaalsüsteemide verifitseerimise kursus
Temporaal-loogika: CTL • Operatsioon A(fUg): Digitaalsüsteemide verifitseerimise kursus
Temporaal-loogika: CTL • Operatsioon E(fUg): Digitaalsüsteemide verifitseerimise kursus
LTL, CTL ja CTL* väljenduslikkus Digitaalsüsteemide verifitseerimise kursus
Temporaal-loogika: System Verilog Assertions • Väidete loengus vaadeldud System Verilog Assertions on ka temporaalne keel! Digitaalsüsteemide verifitseerimise kursus
Omadusekontroll automaatides • Kirjeldame omadused automaadina nii, et teatud olekud kirjeldavad omaduse tõesust (või selle mittekehtimist) • Kombineerime skeemi automaadi ja omaduse automaadi • Omadus kehtib ainult siis kui tõesuse olek on saavutatav (mittekehtimise olekud pole saavutatavad) Digitaalsüsteemide verifitseerimise kursus
Omadusekontroll automaatides: täringumängu näide • A ja B viskavad täringuid. Kui A saab rohkem silmasid, siis A skoor kasvab 1 võrra, kui skoor ei ole 2. Kui on 2, siis läheb nulli tagasi. • Siis ka B skoor väheneb 1 võrra, kui pole 0. • Kui B saab rohkem silmasid, siis samad reeglid, kuid A ja B vahetatud. • Kui A, B silmad võrdsed, siis seis ei muutu Digitaalsüsteemide verifitseerimise kursus
Omadusekontroll automaatides: täringumängu näide • Kontrollime kahte omadust: • Kas seis võib jääda viiki 1:1? • Kas seis võib jääda viiki 2:2? Digitaalsüsteemide verifitseerimise kursus
Omadusekontroll automaatides: täringumängu näide Digitaalsüsteemide verifitseerimise kursus
Omadusekontroll automaatides: täringumängu näide Digitaalsüsteemide verifitseerimise kursus
Keelte sisalduvus: ω-automaat • ω-automaat võtab vastu (kinnitab) lõpmatuid jadasid • E on kinnitav kaar • Jada 0 101 101 ... kinnitatakse, sest ta läbib E lõpmatu palju kordi • Jadad 001111111111... ja 0 1000 1000 1000 ei kinnitata Digitaalsüsteemide verifitseerimise kursus
Keelte sisalduvus: ω-automaat • ω-automaadi poolt kinnitatud jadad on automaadi keel • Abstraktsem versioon süsteemist on omadus (property, P), detailsem on realisatsioon (design D) • D vastab abstraktsema P spetsifikatsioonile kui iga D kinnitatud jada on kinnitatud ka P poolt, s.t. L(D) L(P) Digitaalsüsteemide verifitseerimise kursus
Keelte sisalduvus verifitseerimisel • Verifitseerime: kas L(D) L(P)? • Konstrueerime omaduse automaadi P täiendautomaadi ¬P • Kombineerime automaadid: D ׬P • L(D) L(P), siis kui L(D ׬P) = Ø Digitaalsüsteemide verifitseerimise kursus
Keelte sisalduvus verifitseerimisel Digitaalsüsteemide verifitseerimise kursus
Sümbolarvutus ja mudelikontroll • Eelnevas kirjeldatud graafialgoritmid töötasid automaatidel ja Kripke struktuuridel • Need ei ole rakendatavad suurte skeemide jaoks, sest skeemis, milles 100 trigerit on 2100 olekut... • Sümbolarvutuses teisendame graafide läbimise Boole’i funktsioonideks ja operatsioonideks – saame vaadelda suuremaid skeeme Digitaalsüsteemide verifitseerimise kursus
Sümbolarvutus ja mudelikontroll • Olekute läbimine edasisuunas: Digitaalsüsteemide verifitseerimise kursus
Kontranäite genereerimine • Viime läbi sümbolarvutust edasisuunas, kuni jõuame keelatud olekuni • Nüüd liigume keelatud olekust tagasi, kasutades jällegi sümbolarvutust • Tagasiliikudes kitsendame eelnevate olekute hulkade arvutust edasiliikudes läbitud hulkadega • Vajalik, et tagada algolekusse jõudmise! Digitaalsüsteemide verifitseerimise kursus
Kontranäite genereerimine Digitaalsüsteemide verifitseerimise kursus
Järjestikskeemide ekvivalents • Kuidas kontrollida ekvivalentsust skeemide puhul, kui nende olekud pole 1:1 vastavuses? • Tuleb uurida, ega kombineeritud skeemi ükski olek, mille väljundfun. = 1 ei ole saavutatav Digitaalsüsteemide verifitseerimise kursus