ASIC verifikáció I. 2013.11.18.

Slides:



Advertisements
Hasonló előadás
T ESZTELÉS. C ÉLJA Minél több hibát találjunk meg! Ahhoz, hogy az összes hibát fölfedezzük, kézenfekvőnek tűnik a programot az összes lehetséges bemenő.
Advertisements

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Alkalmazott Informatikai Tanszék 2012/13 1. félév 4. Előadás Dr. Kulcsár Gyula egyetemi docens.
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék 5.5. Model Based Architecture módszerek BelAmI_H Spring.
A normalizálás az adatbázis-tervezés egyik módszere
Rendszertervezés GIMP.
Tevékenység alapú költségszámítás
Prototype Kft. Prototype kft. - Alapítás ban - 8 alkalmazott - A Stratasys Inc. képviselet - MK-Technology GmbH képviselet - GOM GmbH képviselet.
96 csatornás QAM modulátor 96 csatornás QAM modulátor Kötetlen beszélgetés arról, hogy milyen irányba fejlődik a híradástechnika Készítette: Zigó József.
Rendszerfejlesztés gyakorlat - © Fülöp Lajos
Az integrált áramkörök (IC-k) tervezése
Fontosabb fogalmak Képesség :
A webes tesztelés jövője
A projektmenedzsment fogalma
Az igazolás Igazolás (verification) Igazolás (verification) Próbapad (vizsgálati összeállítás) Próbapad (vizsgálati összeállítás) Órajel előállítás Órajel.
ASIC verifikáció I
Az integrált áramkörök (IC-k) típusai
Domain tesztelés bemutatása PHP tesztelés
ASIC verifikáció II
Programozás alapjai A programozás azt a folyamatot jelenti, melynek során a feladatot a számítógép számára érthető formában írjuk le. C++, Delphi, Java,
Programozási alapismeretek 9. előadás. ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás2/
OSI Modell.
A verem működése fpga-n
RFID labor az Intézetünkben
Szintézis Keresztes Péter, 2005 A GAJSKI-KUHN DIAGRAM Alapelv: Rendezzük a digitális- rendszerek leírásait célok és szintek szerint.
Memóriák.
Modellezés és tervezés c. tantárgy Óbudai Egyetem Neumann János Informatikai Kar Alkalmazott Matematikai Intézet Mérnöki Informatikus MSc 9. Előadás és.
Funkciópont elemzés: elmélet és gyakorlat
Megvalósíthatóság és költségelemzés Készítette: Horváth László Kádár Zsolt.
Gazdálkodási modul Gazdaságtudományi ismeretek II. Vezetés és kommunikációs ismeretek KÖRNYEZETGAZDÁLKODÁSI MÉRNÖKI MSc TERMÉSZETVÉDELMI MÉRNÖKI MSc.
Szervezetfejlesztési Program
MTA KRTK Regionális Kutatások Intézete Tájékoztató a Vidékfejlesztési Albizottság i üléséről Finta István Ph.D.
Szoftvertechnológia Szoftvergyártás 2..
Szoftvertechnológia Rendszertervezés.
A website teljesítményének vizsgálata, fejlesztése 1. Forrás: WebTrends Analysis Suite, Advanced Edition White Paper (
WEB MES (webes gyártásirányító rendszer) Kiss Miklós (G-5S8)
2009. december 8. Pomázi Gyula SZTE felsőoktatási stratégiai szakértő
Rendelkezésre álló erőforrások pontos ismerete Kiosztott feladatok közel „valósidejű” követése Átláthatóság Tervezési folyamatok támogatása.
Project Monitoring and Control (PMC)
Önálló labor munka Csillag Kristóf 2005/2006. őszi félév Téma: „Argument Mapping (és hasonló) technológiákon alapuló döntéstámogató rendszerek vizsgálata”
Programtesztelés. Hibák keletkezésének okai nem egyértelmű vagy hiányos kommunikáció fejlesztés közben maga a szoftver bonyolultsága programozói (kódolási)
Boole-algebra (formális logika).
Szintaktikai, szemantikai szabályok
3.2. A program készítés folyamata Adatelemzés, adatszerkezetek felépítése Típus, változó, konstans fogalma, szerepe, deklarációja.
Topológia felderítés hibrid hálózatokban
ONTOLÓGIA és TUDÁSREPREZENTÁCIÓ Szőts Miklós Alkalmazott Logikai Laboratórium
1 Add az APK-t! Add az APK-t! Automatizált apptesztelés 2013/10/13.
Integrált áramkörök tesztelése (minőségellenőrzés)
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke 2. zárthelyi megoldásai december 2.
A PLC és használatának előnyei
VÉGES AUTOMATA ALAPÚ TERVEZÉSI MODELL
Rendszertervezés Alapfogalmak; Az informatikai rendszer
Rendszerek stabilitása
Hibaterjedés-analízis
Tényekre alapozott oktatáspolitika és gyakorlat ONK 2011, Szimpózium a tények, bizonyítékok természetéről, szerepéről az oktatásban Evidence Based Education.
Mi a különbség a számítógépek és a Laptop-ok felépítése között?
© evosoft Hungary Kft | XYZ – Prezentáció címe V1.0 Csak belső használatra1 evosoft Hungary Kft. Bevezetés a verifikáció világába November.
Funkciós blokkok A funkciós blokkok áttekintése Az alkalmazás előnyei.
Kőnig Tibor, Lippé Szabolcs, Árvai Zoltán. IdőpontCím 09:15-09:45Az alkalmazás-életciklus menedzselése – Áttekintés (Kőnig Tibor) 09:45-10:30Az életciklus-kezelés.
A website teljesítményének vizsgálata, fejlesztése 1. Forrás: WebTrends Analysis Suite, Advanced Edition White Paper (
CMMI 1.3 – Verifikáció Készítette: Kis Gergely. Bevezetés A specifikációt, követelményt vetjük össze a kész/készülő termékkel Itt nem vizsgáljuk, hogy.
Mobil alkalmazások fejlesztése Vonalkód leolvasó Symbian alapú mobiltelefonra Készítette: Tóth Balázs Viktor.
Forgalom-szimuláció eltérő közegekben Max Gyula BMGE-AAIT 2008.
Continuous delivery: cél a működő szoftver
FPGA Készítette: Pogrányi Imre.
Szoftvermenedzsment A szoftver fogalma programmodulok rendszerdokumentáció konfigurációs adatok, és ezeket tároló fájlok felhasználói dokumentáció a szoftver.
Maven és Ant Build eszközök bemutatása
Bevezetés a programozásba Algoritmikus gondolkodás
MINŐSÉG BS 4778 "Egy termék vagy szolgáltatás jellemzőinek és sajátosságainak összessége, amelyek együttesen egy adott szükséglet kielégítésére képesek".
SZAKKÉPZÉSI ÖNÉRTÉKELÉSI MODELL ÖNÉRTÉKELÉSI SZINTEK
Az SZMBK Intézményi Modell
Előadás másolata:

ASIC verifikáció I. 2013.11.18

Bemutatkozás

Bevezetés a funkcionális verifikációba Tartalom Verifikációs alapfogalmak A verifikáció fogalma A tesztelés és a verifikáció közti különbség Miért van szükség a verifikációra? A verifikáció szerepe az ASIC fejlesztés folyamatában Mibe kerül egy bug? A verifikáció helye az ASIC fejlesztés folyamatában A verifikáció fajtái HDL testbench alapú verifikáció Bug-ok felfedése irányított teszttel Bug-ok felfedése randum stimulussal Constrained random szimuláció Tipikus megközelítés A verifikációs környezet felépítése constrained random stimulus esetén Pszeudó-random generálás

Bevezetés a funkcionális verifikációba Tartalom A verifikáció teljességének mérése A verifikációs terv (vPan) Coverage gyűjtés Automatizált check-ek Az automatizált check-ek csoportosítása A lefedettség növelése A verifikációs projekt életciklusa A verifikációs koncepciók ASIC-ek verifikációs szintjei Black box verifikáció White box verifikáció Gray box verifikáció Melyiket válasszuk? BB, WB, GB? A verifikációs környezet Modul vs. rendszer szintű verifikáció

Bevezető Mottó Brian W. Kernighan, 1974 A hibakeresés kétszer olyan nehéz feladat, mint maga a kód megírása. Így, ha a lehető legjobb tudásod szerint írtad meg a kódot, az azt jelenti, hogy nem leszel képes felfedni a hibáit. Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. Brian W. Kernighan, 1974

Verifikációs alapfogalmak Mi a verifikáció? Verifikáció: funkciókat tekintve teljesülnek-e a specifikált célok, kritériumok Mit verifikálunk? Az HDL leírás (pre-silicon) funkcionális viselkedését verifikáljuk Mihez viszonyítva verifikálunk? A specifikáció a referencia Mi biztosítja, hogy a specifikáció hibátlan? A specifikáció nem hibátlan Több szem többet lát: architect != designer != verifikációs mérnök

Verifikációs alapfogalmak A tesztelés és a verifikáció közi különbség Verifikáció Gyártás előtt, nem darabonként RTL leíráson Gate level netlistán Tervezési hibák felfedezése Teszt Gyártás után, minden darabon Elkészült ASIC-en Gyártási hibák kiszűrése

A verifikációs feladat Miért van szükség a verifikációra? Mert hibák maradhatnak a termékben A tesztelő mérnökök nem tudnak minden eshetőségre, az állapotok legkülönfélebb együttállására gondolni, ezekre így nincs teszt Hogy lehet olyan eseményeket letesztelni, amik létezését nem is sejtjük? Ne a mérnöknek kelljen kitalálnia az összes verifikálandó esetet Szükség van egy bizonyos fokú automatizációra A megoldás a random verifikáció

Verifikációs alapfogalmak Miért van szükség a verifikációra? Egy példa: Milyen típusú hibákat kell(ene) a verifikációnak felfedeznie? Ha a telefonom ASIC lenne… I. Példa: Rádió/MP3 hallgatás közben a fülhallgató kihúzása leállítja a lejátszást 1) rádió hallgatás 2) Kihúz, leáll a lejátszás 3) MP3 hallgatás 4) Kihúz, leáll a rádió, indul a MP3 (kihangosítón) II. Példa: Ha Rádió/MP3 hallgatás közben csörög a telefon, a fülhallgató ugyan elnémul, de az éppen játszott médiát rákeveri a csengőhangra (kihangosítón)

Miért van szükség a verifikációra? Egy másik példa: A verifikációs feladat Miért van szükség a verifikációra? Egy másik példa: DMA RAM start Mem. write final data request grant address write Data IF ? request grant write

HDL implementation & Verification Verifikációs alapfogalmak A verifikáció helye az ASIC fejlesztés folyamatában A verifikáció az ASIC tervezés 70%-át teszi ki Időben Költségben Specification HDL implementation & Verification „Olcsó” Synthesis Layout „Drága” Production Testing & Validation

Verifikációs alapfogalmak Mibe kerül egy bug? Gyártási költség: Néhány millió $ A bug-os chip költségei VHDL-modul chip rendszer megrendelő idő alacsony magas Egy bug javításának költsége Talált bug-ok száma Funkcionális verifikáció Tesztelés szintjei (később)

FUNKCIONÁLIS VERIFIKÁCIÓ Verifikációs alapfogalmak A verifikáció helye az ASIC fejlesztés folyamatában Hogyan bizonyosodunk meg a működés helyességéről? Ellenőrzés (verifikáció) több ponton Koncepció ellenőrzés Azt írtad le amit kigondolta(to)k? Specifikáció FUNKCIONÁLIS VERIFIKÁCIÓ Azt kódoltad le (HDL), amit leírtak? HDL (RTL) leírás ellenőrzés A tape-out úgy működik ahogy kell (HDL)? Tape out ellenőrzés A chip működése egyezik a tape-out-tal? Szilicium

A Verifikáció fajtái Verifikációs alapfogalmak Összefoglalva néhány szóban Verifikációs alapfogalmak A verifikáció és a tesztelés közti különbség fontossága A verifikáció része a flow-ban 70% A bug-ok javítási költsége nő az idő előrehaladtával Több helyen kell ellenőrízni, ezek közül csak egy a funkcionális verifikáció A következő rész témája A Verifikáció fajtái Felosztás a szimulációban alkalmazott gerjeszések (stimulusok) fajtái alapján

A verifikáció fajtái HDL testbench alapú verifikáció DUV és a verifikációs környezet is HDL Teljesen zárt környezet (a testbench modulnak nincsenek portjai) DUV TB Stimulus Testbench Monitor Write (0xCAFE, 0x0101) Read(0x2011) Ez a megközelítés bonyolult ASIC-ek esetén már nem használható hatékonyan, mert a tesztek nehezen olvashatóak megírásuk fárasztó és időigényes túl sok corner case-t kell lefedni a HDL nyelv nem magas szintű tesztelésre való stb...

A verifikáció fajtái Bug-ok felfedése írányított teszttel HDL egy állapota Tesztelni kívánt állapot BUG-os állapot Nem “üzemi” állapot A teszt által bejárt állapot mindig egy utat jár be csak olyan hibát tud felfedni, amire a mérnök „gondolt” bonyolultabb RTL -> több teszt

A verifikáció fajtái Bug-ok felfedése random stimulussal Random teszt HDL egy állapota BUG-os állapot Nem “üzemi” állapot A teszt által bejárt állapot futás1 futás2 rejtett hibákat könyebben, nagyobb valószínűséggel derít fel jobban képes lefedni az előre meghatározott verifikációs teret egy teszt több futás alatt más utakat járhat be “eldugott” állapotok felfedése időigényes

A verifikáció fajtái Constrained random szimuláció futás2 futás1 HDL egy állapota BUG-os állapot Nem “üzemi” állapot A teszt által bejárt állapot Állapotok egy tartománya egy tesztre A verifikációs teret felosztjuk kisebb egységekre A szűkített tartományon belül egy teszt hatékonyabban működik egy teszt több futás alatt más utakat járhat be, de a lehetőségek száma csökkent a verifikációs tér szűkítésével Ki lehet zárni a nem üzemi állapotokat (use case)

A verifikáció fajtái Tipikus megközelítés Több tartományt definiálunk, melyekre külön teszteket írunk Vannak állapotok, amelyeknek az elérése random stimulussal, nehézkes, sok időt vesz igénybe. Az ilyen eseteket (corner case) irányított tesztekkel szokás verifikálni. C HDL egy állapota BUG-os állapot Nem “üzemi” állapot A teszt által bejárt állapot tesztA futás1 tesztA futás2 Állapotok egy tartománya egy tesztre Corner case tesztB futás2 tesztB futás1 tesztC futás2 tesztC futás1 direkt teszt C Kulcs állapotok

verifikációs környezet A verifikáció fajtái A verifikációs környezet felépítése constrained random stimulus esetén Egyes szélsőséges esetek túl ritkán fordulnának elő A valószínűségek súlyozásával a tesztek viselkedése behatárolható Például a legrövidebb és a leghosszabb ethernet csomag tesztelése Feltételesen random stimulus használatával a nem használt (nem use case) állapotok kihagyása az értékeket tovább lehet szűkíteni egy kívánt tartományra (TC-kben) A DUV funkcióinak tesztelése felosztható az egyes TC-k között verifikációs tool testcase (TC) verifikációs környezet szabályok a < 64 b > 128 constrained solver DUV 0101011010 0101100101 szabályok a > 5 b < 10 stimulus generálás

A verifikáció fajtái Pszeudó-random generálás: seed Hogy tudunk megbizonyosodni hogy a felfedezett BUG-ot sikeresen javították? futás seed 123456 futás seed 789101 seed 123456

A Verifikáció teljességének mérése Összefoglalva néhány szóban A Verifikáció fajtái Testbench alapú szimuláció Irányíott teszt (a testbech alapú szimuláció stimulusa) Verifikáció random stimulussal Feltételes (constrained) random stimulus A következő rész témája A Verifikáció teljességének mérése vPlan Coverage Check-ek

A verifikáció teljességének mérése A verifikációs terv (vPlan) A vPlan a verifikációs folyamat talán legfontosabb dokumentuma. Útmutatást nyújt Környezet felépítése Test scenario Coverage Check

A verifikáció teljességének mérése Coverage gyűjtés Hogyan kaphatunk visszajelzést a verifikáció teljességéről? A kulcs állapotokra coverage-t gyűjtünk Egy jel változása Feldolgozni kívánt adat hossza Cím tartomány És még sok minden más… A coverage –ra a cél 100%! Regresszió

A verifikáció teljességének mérése Coverage gyűjtés Coverage gyűjtés… nélkül több 100 (1000) feltétel mellett kellene teszteket futtatni, hogy megfelelőnek érezzük a verifikáció teljességét nélkül soha nem lehetünk arról meggyőződve, hogy mennyire sikerült elérni a verifikációs céljainkat, mivel nincs semmilyen visszajelzés esetén biztosak lehetünk abban, hogy elértük a célunkat HDL egy állapota BUG-os állapot Nem “üzemi” állapot A teszt által bejárt állapot futás1 futás2   “Kulcs” állapotok

A verifikáció teljességének mérése Automatizált check-ek A check-ek ellenőrzik a DUV működését automatikuasn Az ellenőrizni kívánt funkciók a vPlan-ben vannak definiálva A verifikálni kívánt funkciók Az implementálás módját, azellenőrízni kívánt funkciók check-ekre való felbontását a verifikációs mérnök dönti el Statikus és dinamikus check-ek Statikus, amikor a check-ek folyamatosan aktívak A dinamikus check-ek tesztenként külön kapcsolhatóak

A verifikáció teljességének mérése Az automatizált check-ek csoportosítása Négy fő funkcionális szempont szerint lehet a check-eket csoportosítani Kimenetek/bemenetek Az adott bemeneti gerjesztésre a megfelelő kiemeneti válasz érkezik (scoreboard) Rendszerszemlélet Milyen érvényes ill. értelmes gerjsztések érkezhetnek a modult magában foglaló rendszertől Belső működés Néhány kritikus belső állapot ill. logika ellenőrzése Protokol Protokol teljesítése (timing checks)

A verifikáció teljességének mérése A lefedettség növelése CDV (coverage driven verification) folyamata Tervezési fázis Eredmény értelmezése Verifikációs környezet Verifikációs terv (vplan) Eredmények (coverage jelentés) Tesztek, Stimulusok Specifikáció olvasás Coverage, check tervezése vplan frissítése Környezet javítása Constraint-ek újradefiniálása

A verifikáció teljességének mérése A verifikációs project életciklusa idő magas alacsony Néhány variáció kipróbálása Tesztek írása, automatizált random tesztek, coverage gyűjtés A nehezen elérhető állapotok tesztelése Kezdő fázis Random tesztek futtatása Maradék corner-case-ek lefedése Random tesztek debuggolására fordított energia Lefedettség, a verifikáció során talált bug-ok száma

Verifikációs koncepciók Összefoglalva néhány szóban A Verifikáció teljességének mérése A verifikációs terv (vPlan) fontossága A coverage szerepe a verifikáció sikerében Automatizált check-ek A következő rész témája (opcionális) Verifikációs koncepciók Felosztás a design hierachia alapján Felosztás a verifikációs környezet felépítése alapján

Verifikációs koncepciók ASIC-ek verifikációs szintjei A verifikációs szintek kiválasztása Nem kell minden szinten Komplex rendszerek esetében két szinten szokás verifikálni Comprehensive functional verification the complete industry cycle - szerző: Bruce Wile,John C. Goss,Wolfgang Roesner

Verifikációs koncepciók ASIC-ek verifikációs szintjei Designer szint (macro) Általában az RTL designer végzi Egyszerű, a design-kód megfelel-e az alapvető követelményeknek (lefordul-e, stb…) Formális verifikáció HDL testbench alapú egyszerű verifikáció Modul szint Komplex rendszereknél szükséges Egy logikai egység teljes funkcionális vizsgálata Megléte előfeltétele egy magasabb szintű verifikációnak (pl.: chip, system) Comprehensive functional verification the complete industry cycle - szerző: Bruce Wile,John C. Goss,Wolfgang Roesner

Verifikációs koncepciók ASIC-ek verifikációs szintjei Az, hogy melyik szinteteket kell választani függ… A modul, ill. a rendszer bonyolultságától A modul fontosságától, a rendszerben betöltött szerepétől A specifikácitól, hogy tartalmaz-e külön a modulra leírást, vagy a modul funkióit csak rendszer szinten írja le Comprehensive functional verification the complete industry cycle - szerző: Bruce Wile,John C. Goss,Wolfgang Roesner

DUV Device Under Verification Verifikációs koncepciók Black box verifikáció A koncepció jellemzői Referencia modell a specifikáció alapján HDL megvalósítás nem ismert Vizsgálat a be/kimeneti jelek alapján Gate-level verifikációnál csak ez használható Problémák Hibás megvalósítás mellett lehet “működőképes” Pl.: belső FIFO mélysége Nehéz megtalálni a pontos hibát, csak a hatásait érzékeljük DUV Device Under Verification Reference Model ? = stimulus

DUV Device Under Verification Verifikációs koncepciók White box verifikáció Tulajdonságok A HDL implementáció ismert (átlátszó struktúra) Előnyök: Hártányok A működés vizsgálata a HDL belső jelei alapján Könnyű a kívánt feltételeket megteremteni (pl.: számláló értéke) Implementáció függő – RTL update  testbench változtatása Nincs aktív referencia (csak az írásos specifikáció) Csak azok a funkciók vannak tesztelve, amire a mérnök gondolt DUV Device Under Verification stimulus

DUV Device Under Verification Verifikációs koncepciók Gray box verifikáció Tulajdonságok Referencia modell a specifikáció alapján A funkciók HDL megvalósítása részben ismert Kívánt feltételek létrehozása (pl.: számláló értéke) A funkcinális működés vizsgálata Kimeneti- és speciális esetben a belső jelek alapján is Gate level verifikáció esetén a belső jeleket nem használjuk (black box lesz) DUV Device Under Verification Reference Model ? = stimulus

Verifikációs koncepciók Melyiket válasszuk? BB, WB, GB? Ideális verifikáció Black Box megközelítés Teljes verifikáció A logika megfelelően működik a bemenetek összes kombinációjára A kimeneti jelek ellenőrzése az összes esetben A teljes verifikáció alkalmazása nem praktikus egy komplex rendszer funkcionális verifikációjának minden lépésében Az elvek azonben mindig irányadóak! Akkor melyik megközelítést kell választani? Azt, amelyik az adott feladatra a leginkább megfelelő  A legtöbb környezet tipikusan GB

Verifikációs koncepciók Referencia modell és check-ek Alapvető megfontolások A felhasznált belső jelek helyes értékét, és az azt előállító logikát mindenképpen tesztelni kell Reference Model stimulus ? =

Verifikációs környezet Verifikációs koncepciók A verifikációs környezet A verifikációs környezet Szigorú módszertan Újra felhasználhatóság Verifikációs komponensek (modul, interfész) DUV Verifikációs környezet Interfész komponens Referencia Modell 10110 01010 ?=  checker coverage

Kérdés? Most jönne: Modul szintű és rendszer szintű verifikáció. Idő?

Verifikációs koncepciók Modul vs. Top-level szintű verifikáció Top-level (chip) szintű verifikáció esetén A DUV-ot nem a környezet hajtja meg, hanem a valós HDL A DUV-ot egy kívánt állapotba csak indirekt módon (a meghajtó HDL modulon keresztül) lehet eljuttatni Bonyolultabb tesztekre és, nagyobb rendszerismeretre van szükség A DUV esetleg már modul szinten verifikálva volt

Verifikációs koncepciók DUV Verifikációs környezet Aktív interfész komponens Referencia Modell 10110 01010 ?=  checker coverage Modul szint DUV Referencia modell Passzív interfész komponens 10110 01010 ?=  HDL modul (aktív) HDL modul Chip szint

Verifikációs koncepciók Top level szintű verifikáció Top-level (chip) szintű verifikáció esetén A szubmodulok viselkedését kevésbé kimerítően vizsgáljuk A lényeg a teljes chip működésének vizsgálata (pin-ek meghajtása) toplevel DUV ?= HDL 

Verifikációs koncepciók Rendszer szintű verifikáció Rendszer (system level) szintű verifikáció esetén Kizárólag a rendszer szintű működés vizsgálatára öszpontosítunk A lényeg, hogy hogyan működik két (vagy több) chip együtt toplevel1 DUV ?= HDL   toplevel2

Verifikációs koncepciók Újra felhasználhatóság (reuse) A funkcionális verifikáció módszertanának egyik alapja az újra felhasználhatóság. Lényege, hogy egy modul verifikációs környezetét plusz munka nélkül tudjuk használni egy másik ASIC esetén is my_asic_1 my_asic_2 dma_env dma_env my_dma module my_dma module

Előretekintés Az e-verifikáció Néhány szó az e-verifikáció-ról Alapja az e-nyelv (aspektus orientált) Strukúráját az eRM, oVM, uVM határozza meg Coding guideline Mappa szerkezet Elnevezési szabályok, stb… Az e-verifikációhoz tartozó tool a Specman Fejlesztője a Cadence A Specman nem tartalmazza a szimulátort, használható Modelsim (Mentor) IES (Incisive Enterprise Simulator - Cadence)

Formális verifikáció Balotai Péter Összefoglalva néhány szóban Coverage (Metric) driven functional verification A következő rész témája Ezeke csak arra az esetre ha marad időm Formális verifikáció Balotai Péter

Formális verifikáció dióhéjban Mit verifikáljunk formálisan? Miről lesz szó? Formális verifikáció dióhéjban Mit verifikáljunk formálisan? Assertion-vezérelt szimuláció DUT inicializálása Automatkus check-ek PSL példák Cadence IEV tool áttekintés

Formális verifikáció dióhéjban Verification Mi is az a formális verifikáció? Egy digitális rendszer helyes működésének vizsgálata formális matematikai módszerek segítségével, egy adott formális specifikációra való tekintettel. Simulation Formal Verification Directed stimulus Constrained random st. Assertion Driven Sim. Property checking Equivalence checking vektorok nincs szimuláció nincsenek vektorok

Formális verifikáció dióhéjban Alapja a property Egyértelmű, félreérthetetlen kijelentés a digitális rendszer és annak környezete működéséről Önmagában nincs gyak. értelme, de felhasználható, mint Constraint: a környezet működésére vonatkozó szabály Assertion: a DUT működésére vonatkozó szabály Coverage: állapotok elérhetőségére vonatkozó megállapítás FIFO can’t be full and empty at the same time Empty must be asserted until a write occurs No read when empty FIFO clk Write Read Full Empty

Terminológia 000 Állapottér: 8 Elérhető: 5 Átmérő: 3 Elérhető állapotok száma és az átmérő függ a kezdeti állapottól Verifikációs komplexitás függ a DUT-tól és a property-ktől Egy assertion PASS állapotú, ha minden elérhető állapotban igaz 001 100 010 011 101 110 111

Állapottér formális vizsgálata Nincs új elérhető állapot → a teljes elérhető állapottér felderített Assertion PASS: a használt constraint-ek mellett nincs olyan állapot, amiben az assertion-ben leírt formális állítás ne lenne igaz Assertion FAIL: létezik egy állapot, amiben a DUT megsérti a formális követelményt → ellenpélda az aktuális állapottól vissza a kezdeti állapotig (legrövidebb) Assertion EXPLORED: az aktuális mélységig nem derítettük fel a teljes állapotteret, de nem találtunk olyan állapotot, amiben a formális követelményt megsértené a DUT Exploring… Új állapotok Kezdeti állapot 0 1 2 3 4 5 6 7 Átmérő Mélység (crank)

Mit verifikáljunk formálisan? Kihívások: DUT komplexitása Méret: összefügg az állapotok számával és a bemenetekkel Átmérő: számlálók esetén óriási az állapottér A specifikáció (property-k) minősége Nem teljes Hibás Túl nagy megkötés a bemenetekre (constraint-ek) A formális verifikáció relatíve kis design-okra jó Előnyök: Nem kell hozzá testbench Gyorsan el lehet kezdeni a tesztelést Szimulációval nehezen megtalálható hibák gyors felfedése

Assertion-vezérelt szimuláció Random stimulus a constraint-ek alapján Mindez testbench nélkül Tesztek nélkül Formal Analysis Assertion-Driven Simulation Matematikai módszerek Szimuláció Szélességi bejárás Lineáris Statikus Dinamikus prove search IFV + IEV IEV

Assertion-vezérelt szimuláció Constraint-ek nélkül: minden teljesen random FIFO clk Write Read Full Empty Empty until write clk Write Write1 !hibás működés Read Read1 Read2 Full Empty

Assertion-vezérelt szimuláció Constraint-ek használata: életszerű gerjesztés FIFO clk Write Read Full Empty No read when empty Empty until write clk Write Write1 Write1 Read Read1 Read2 Full Empty

Assertion-vezérelt szimuláció előnyei Szimulációs környezet testbench nélkül Constraint-ek felhasználhatók, mint assertion-ök integráláskor Stimulus generálás property-ből: vizualizáció segíti a hibakeresést elősegíti a DUT működésének intuitív megértését

FF-ok állapota betöltve Kezdeti állapot a formal DUT inicializálása Időegység: crank Órajel setup: TCL parancs clock –add clk1 –initial 0 –offset 2 –width 1 –period 3 A reset jelet deaktiváljuk force rst_n 0 run 4 init –load –current constraint –add –pin rst_n 1 –reset prove/search clk1 FF-ok állapota betöltve = Kezdeti állapot a formal tool számára rst_n

Automatikus check-ek Deadcode check: elérhető egyáltalán a kódrészlet? FSM check-ek: elérhető minden állapot? És az állapotátmenetek? (rajz) Busz check-ek: több modul hajthatja → X Toggle check: minden bit megmozgatható? Range overflow check: tömbműveletek esetén előfordulhat? Az automatikus check-ek RTL hibákat fedhetnek fel Megmutathatják, ha túl sok a megkötés értékekre, kombinációkra

Formális nyelvek

PSL példák Property Assertion Constraint Cover property p_addr_nonzero = always (addr > 0); Assertion output_no_underflow : assert never (read && empty) @(posedge clk); a_pin_GPIO8_Y1 : assert always ( (logic1) -> (( GPIO8_Y1 ) = ( SPI_S_IN ))); Constraint alternate_b_0 : assume always (GPIO_MODE_0( 1 downto 0) = "10"); Cover request_with_done : cover {grant; busy[*]; done && req} @(posedge clk);

IEV tool

Köszönjük a figyelmet! Stubna Ágoston ASIC fejlesztő / verifikációs mérnök evosoft Hungary Kft. agoston.stubna@evosoft.com Balotai Péter ASIC fejlesztő / verifikációs mérnök evosoft Hungary Kft. peter.balotai@evosoft.com