Fakulta informačních technologií MI-NFA, zimní semestr 2011/2012 Jan Schmidt 9. Praktická verifikace EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI Pravidla, postupy Testovací prostředí Techniky pokročilé verifikace 1
Něco navrhnout není všechno specifikace část návrhového postupu syntetický krok implementace simulace analytické kroky časová analýza analýza příkonu analýza plochy simulace report report report srovnání (verifikace) report 2
Verifikace a testování Verifikace je proces, který ověří, že obvod byl navržen podle specifikace Testování je proces, který ověří, že obvod byl vyroben podle návrhu.
Verifikace Verifikace srovnává specifikaci a implementaci. Bez specifikace není verifikace. Specifikace je typicky textový dokument (neformální specifikace), který popisuje fyzické, elektrické, funkční a časové vlastnosti obvodu, který bude navržen.
Formy verifikace verifikace simulací (Modelsim ) verifikace v simulačním prostředí (testbench), který produkuje stimuly a sbírá-kontroluje odezvy formální verifikace (Formality, Conformal) formální důkaz funkčních vlastností obvodu statická časová analýza (STA) (PrimeTime) automatická kontrola časových vlastností obvodu
Verifikační prostředí Design under Verification (DUV) generátor stimulů & kontrola odezvy TESTBENCH RTL VHDL funkční verifikace Netlist + SDF časová verifikace
Struktura verifikačního prostředí Nejjednodušší: jeden proces, který generuje stimuly a kontroluje odezvu Více procesů může kontrolovat různé části specifikace VHDL konfigurací můžeme volit úroveň detailu popisu (RTL, netlist s časováním) verifikační případ (test case)
Rozvinuté verifikační prostředí modely externích bloků Design Under Verification kontrola odezvy generátory stimulů vstupní data řízení verifikace skript výstupní data
Kontrola odezvy a generátory stimulů Standardní chování standardní kontrola Generátory např. transakcí na sběrnici Kontrola dodržení protokolu např. na sběrnici Samostatné procesy verifikační IP makrobloky (jádra)
Složky verifikace Verifikační prostředí Verifikační IP Metodika verifikace Standardní komponenty (knihovna) Simulátor Jazyky Kontrola modelu
Kontrola modelu Teorie: abstraktní poznatek červený a zelený signál jsou neslučitelné Model: konkrétní systém, který teorii vyhovuje semafor na křižovatce semafor na nádraží semafor na železničním modelu (pokud nejsou zpackané řídící obvody) Kontrola modelu: ověření, zda implementace vyhovuje teorii, tj. zda má určitou vlastnost
Úzká místa simulace Tvorba stimulů Provedení simulace Vyhodnocení výstupu Ladění návrhu Útěk k software Neefektivní co se týče příkonu a plochy Kdo bude verifikovat software?
Provedení simulace Paralelní systémy Dedikovaný hardware speciální HW struktura pro daný simulační algoritmus cenová efektivita? (~20 běžných strojů) Emulace část HW naživo úschova a obnova stavu FPGA
Nebudeš simulovat na zbytečně nízké úrovni K odladění bootloaderu nepotřebujeme přesná časování jednotek procesoru Modely na úrovni instrukce (simulátory procesoru) Modely na úrovni transakce (čtení z paměti ) Modely na úrovni cyklu sběrnice
Stimuly příliš mnoho možností vstupu Vymezené náhodné (constrained random) stimuly příliš velké systémy Spec. jazyky (Vera, SystemVerilog, SystemC) problém řiditelnosti jak popsat omezení vstupů? jak řídit simulaci, aby pokryla i okrajové případy (corner cases)?
Metriky pokrytí Strukturní metriky měří pokrytí strukturními jednotkami kódu (příkaz, větvení, výraz...) Funkční metriky body verifikačního plánu důležité funkce, obsažené ve specifikaci
Vyhodnocení výstupu odezva chybné části implementace se projeví na výstupu se zpožděním, maskovaně nebo vůbec ne problém pozorovatelnosti simulaci specifikace a implementace nelze srovnat přímočaře
Ladění K nápravě chyby je třeba porozumět příčině Náhodně generované stimuly nedávají smysl Výstup popisuje příznaky, ne příčinu Chybí informace o chování vnitřních signálů resimulace (emulované bloky?)
Aserce Výroky, vložené do kódu Použití: okrajové případy kontrola modelu (statická verifikace) kontrola při simulaci (dynamická verifikace) popis přípustného vstupu bloku řízení verifikace (sběr statistik) pozorovatelnost řiditelnost
Property Specification Language (PSL) Booleovská vrstva: výrazy (Verilog, VHDL), které se týkají jednoho okamžiku Temporální vrstva: výroky o posloupnostech v (diskrétním) čase (LTL, CTL) Verifikační vrstva: direktivy nástrojům Modelová vrstva: popis okolí, je-li třeba LTL: Linear Time Logic, logika lineárního času CTL: Computational Tree Logic, logika výpočetních posloupností
Kombinované techniky Aserce: dokázaná, má protipříklad, nedokázaná, částečně dokázaná Kontrola modelu z daného počátečního stavu po daný počet kroků (radius důkazu) Kontrola modelu u problematických bloků (hot spots) Celek: dynamická verifikace řízená statistikami
Pokrytí stavového prostoru stavy, pokryté dynamickou verifikací výchozí stav stavy, pokryté statickou verifikací stavy dosažitelné k kroky (radius kontroly modelu) stavy, dosažené hledáním protipříkladu do hloubky
Problémová místa Místo Kontrolovaná tvrzení Metoda správa zdrojů, arbitry rozhraní automaty rozhraní přechod mezi hodinovými doménami exkluzivní alokace, korektní dealokace protokol zatížení rozhraní časové specifikace časové závislosti, hazardy rekonvergentních signálů integrita dat čtení dat před přepsáním, tok dat kontrola modelu na arbitru, kontrola předpokladů monitory protokolu aserce z časových diagramů aserce z časových diagramů, statická kontrola návrhových pravidel kontrola modelu, verifikační knihovna
Metriky pro aserce Pokrytí konstruktů HDL složitost aserce Strukturní pokrytí indukované funkční simulací Množství stavů pokrytých částečnými důkazy
Zdroje asercí Formální modely známých struktur (např. fronta): knihovny Standardy, definice protokolů Popis na vyšší úrovni abstrakce např. automatový popis versus proudově pracující implementace
Open Verification Methodology Verifikační prostředí Verifikační IP Metodika OVM Knihovna tříd OVM OVM SystemVerilog SystemVerilog simulátor SystemC SystemC simulátor
OVM Mentor Graphics AVM, Cadence URM Komunikace mezi bloky na úrovni transakcí pojem transakce kompatibilní se SystemC standardní rozhraní, metody rozhraní Standardní fáze simulace (záchytné body pro verifikační IP) konstrukce elaborace simulace report Podpora generování vymezených náhodných stimulů
Stavební bloky OVM sběrnce AMBA Verifikace AMBA Generátor odezvy Generátor sekvencí Monitor: kontrola protokolu kontrola pokrytí podle Information Qarterly 7(1), 2008