Digitális eszközök típusai
A digitális eszközök típusai Digitális rendszer fogalma Több minden lehet digitális rendszer Jelen esetben digitális integrált áramköröket értünk a digitális rendszerek alatt Software - hardware dilemma Mikor használjunk hardvert szoftver helyett? Speciális kritériumok: Fogyasztás Sebesség Méret
A digitális eszközök típusai Szoftver hardver dilemma Szempontok Méret Sebesség Fogyasztás Fejlesztési idő Fejlesztési ktsg. Rugalmasság Hardver Szoftver
Hardverek
Hardverek néhány tulajdonsága Hardverek Mikrokontroller Mit tartalmaz? CPU Standard IF A/D Memória Tulajdonságok Kicsi Olcsó Egyszerűen programozható (C)
Hardverek néhány tulajdonsága Hardverek FPGA Építőelemek: logikai blokkok Ezek összeköttetése konfogirálható Újrakonfigurálható
Hardverek néhány tulajdonsága Hardverek ASIC Teljesen egyedi áramkör Nem újrakonfigurálható Drága technológia Gyors Alacsony fogyasztású Alkalmazás orientált Fajtáji a technológia alapján Full custom teljesen egyedi Standard cella előre definiált cellák felhasználása Gate Array a kész kapuk összekötése tervezhető Fajtáji az áramkör típusa alapján Digitális Analóg Mixed signal (digitális és analóg elemek egyaránt) ASIC-ek a szilícium lapkán
Hardverek néhány tulajdonsága Összehasonlítás ASIC FPGA uc Méret Sebesség Teljesítmény Fejlesztési idő Egységár PC & szoftver Fejlesztési mód Pl. HDL Pl. HDL Pl. C Know-How védelme
Digitális eszközök fejlesztése hardware leíró nyelvvel
Hardverfejlesztés Digitális rendszer absztrakciós szintjei 1 A vizsgálat céljától függően különböző nézőpontok szerint és eltérő felbontásban jeleníthetjük meg a digitális rendszert. Nézőpontok Strukturális (építőelemek) Viselkedási (működést leíró összefüggések) Fizikai (fizikai felépítés)
Hardverfejlesztés Digitális rendszer absztrakciós szintjei 2 Strukturális leírás végső soron minden tranzisztorokból épül fel, így a Kapuk Regiszter szintű elemek Modulok A regiszter szint (RTL) kezelhető bonyolultságú egységek a digitális rendszer alapelemeinek tekinthetők a megvalósított funkciók pl: Számláló Multiplexer Flip-flop (De)kóder
Hardverfejlesztés A HDL tervezés A digitális rendszerek tervezésének legelterjetebb eszköze a HDL HDL = Hardware Description Language Kifejezetten a hardver tervezés igényeihez lett fejlesztve Különbözik a hagyományos programozási nyelvektől A HDL tervezés és az absztrakciós szintek kapcsolata A rendszer HDL tervezésekor, a strukturális leírásban főleg RTL-t használunk
Hardverfejlesztés Hagyományos programozási nyelvek és a HDL nyelvek Párhuzamos utasítások Moduláris felépítés Digitális jelek, ki- és bemenetek Hardware közeli nézőpont Órajellel időzített függvények
Hardverfejlesztés HDL-lel Tervezés lépései HDL-el Specifikáció HDL implementálás és szimuláció Szintézis Verifikáció VHDL kód Netlist = végső, technológiai paraméterekkel rendelkező építőelemek és összeköttetésük
Hardverfejlesztés - kihívások Egy komplex rendszer: SoC / System on a chip Core2 Duo Pentium 8085
Digitális eszközök funkcionális verifikációja
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 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
A verifikáció szerepe A verifikáció szerepe az ASIC fejlesztés folyamatában A verifikáció az ASIC tervezés 70%-át teszi ki Időben Költségben Specifikáció HDL implementáció és HDL verifikáció Olcsó Szintézis Fizikai tervezés (layout) Drága Gyártás Teszt és validáció
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ó
A verifikációs feladat Miért van szükség a verifikációra? Egy példa: DMA RAM start Mem. write Mem. write data address request grant write Data IF Mem. write final request grant write
A verifikáció fajtái Bug-ok felfedése írányított teszttel mindig egy utat jár be csak olyan hibát tud felfedni, amire a mérnök gondolt bonyolultabb RTL -> több teszt 1. futás 2. futás 3. futás
A verifikáció fajtái Bug-ok felfedése random stimulussal rejtett hibákat könnyebben, 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 1. futás 2. futás 3. futás
A verifikáció fajtái Constrained random szimuláció 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) 1. futás 2. futás 3. futás
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 A verifikációs környezet felépítéséhez Milyen forgatókönyvek mentén kell tesztelni (test scenario) A lefedettség méréséhez szükséges kulcs állapotok (coverage) megállapítása Milyen funkciókat kell feltétlenül ellenőrizni (check)
A verifikáció teljességének mérése Coverage gyűjtés Megnézzük, hogy elértük-e az adott állapotot A coverage értékének a verifikáció végén 100%-osnak kell lennie Check-ek A verifikált modul, azaz DUV (Device Under Verification) működésének összehasonlítása egy elvárt működéssel (melyet a referencia modell valósít meg)
A verifikáció teljességének mérése A lefedettség növelése CDV (coverage driven verification) folyamata Specifikáció olvasás Coverage, check tervezése Tervezési fázis Verifikációs terv (vplan) Verifikációs környezet Tesztek, Stimulusok vplan frissítése Eredmény értelmezése Környezet javítása Constraint-ek újradefiniálása Eredmények (coverage jelentés)
Összefoglalás
Összefoglalás 1 Hardver eszközök fejlesztése speciális igények esetén Hardver eszközök és tulajdonságaik A felmerülő igények döntik el, hogy melyik a jobb Méret Sebesség Absztrakciós szintek és tengelyek Teljesítmény Fejlesztési idő Egységár ASIC FPGA uc A digitális rendszerek több féle képpen írhatók le RTL szint szerepe A HDL nyelvek A hardver fejlesztés speciális igényei Funkcionális egységek, blokkok Időben párhuzamos működés Fejlesztési mód Pl. HDL Pl. HDL Pl. C Know-How védelme órajel x Kód A Kód B Párhuzamos futás t
Összefoglalás 2 Egyre bonyolultabb digitális rendszerek (Moore törvénye) A tesztelés és verifikáció szerepe megnőtt Új igények a verifikációval szemben Direkt teszteket kiegészíteni Constrained random tesztekkel Check-ek: a működés helyességének a vizsgálata Coverage: megmutatja, hogy a tesztelni kívánt funkciók hány %-át értük el
Köszönöm a figyelmet! ASIC fejlesztő / verifikációs mérnök evosoft Hungary Kft. agoston.stubna@evosoft.com