bakalářská práce

UVM verifikace komponent pro sběrnice MFB a MVB

Text práce 1.69 MB

Autor práce: Bc. Yaroslav Marushchenko

Ak. rok: 2024/2025

Vedoucí: Ing. Jiří Matoušek, Ph.D.

Oponent: Ing. Marcela Zachariášová, Ph.D.

Abstrakt:

Práce se zabývá návrhem a implementací funkční verifikace zvolených FPGA komponent využívajících sběrnice Multi Value Bus (MVB) a Multi Frame Bus (MFB) jako vstupní a výstupní rozhraní. Funkční verifikace jsou navrženy na základě metodiky Universal Verification Methodology (UVM). Implementace všech verifikací je realizována v jazyce SystemVerilog s využitím frameworku vytvořeného sdružením CESNET. Součástí práce je návrh verifikačního prostředí, vytvoření verifikačního plánu a jeho implementace. Navržená prostředí zahrnují měření funkčního pokrytí, které umožňuje zhodnotit úplnost provedených testů, a kontrolní příkazy assert, jež slouží k odhalování případných chyb v návrhu během simulačního procesu. Práce dále analyzuje dosažené výsledky funkční verifikace, diskutuje naplnění stanoveného verifikačního plánu a zkoumá dosaženou míru funkčního pokrytí. Dosažené výsledky mohou sloužit jako základ pro další funkční verifikace podobných FPGA komponent.

Klíčová slova:

Funkční verifikace, Verifikační plán, UVM, SystemVerilog, FPGA, Multi-sběrnice, MVB, MFB

Termín obhajoby

19.06.2025

Výsledek obhajoby

obhájeno (práce byla úspěšně obhájena)

znamkaBznamka

Klasifikace

B

Průběh obhajoby

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm B.

Otázky k obhajobě

  1. Prečo neboli komponenty verifikované univerzálne? Bez zamerania sa na konkrétne nastavenia generických parametrov? Variabilita týchto nastavení je totiž vo verifikačných scenároch veľmi nízka.
  2. Je nejaká prekážka v tom cieliť vo funkčnom pokrytí na všetky kombinácie vytýčených vlastností v rámci verifikačného plánu? Bolo by na základe implementovaných testov dosiahnuté 100% funknčné pokrytie?

Jazyk práce

čeština

Fakulta

Ústav

Studijní program

Informační technologie (BIT)

Složení komise

prof. Ing. Lukáš Sekanina, Ph.D. (předseda)
Ing. Marcela Zachariášová, Ph.D. (člen)
Ing. Tomáš Milet, Ph.D. (člen)
Ing. Miloš Musil, Ph.D. (člen)
Ing. Petr Veigend, Ph.D. (člen)

Posudek vedoucího
Ing. Jiří Matoušek, Ph.D.

Student byl po celou dobu řešení bakalářské práce nadprůměrně aktivní a ne zcela jednoduché zadání zvládl i s rozšířeními splnit v nemalém předstihu před termínem pro odevzdání. Bakalářskou práci jako celek proto hodnotím známkou A.

Kritérium hodnocení Slovní hodnocení
Informace k zadání

Cílem bakalářské práce bylo implementovat a použít UVM verifikační prostředí pro komponenty používané k práci se sběrnicemi MFB a MVB, které byly vyvinuty sdružením CESNET. Navzdory o něco náročnějšímu zadání (náročnost spatřuji především v nutnosti zvládnout poměrně komplexní metodiku UVM a proprietární sběrnice MFB a MVB) byly všechny body zadání splněny a student pro každou ze sběrnic verifikoval ne jednu komponentu (jak požaduje zadání), ale rovnou dvě komponenty. S výsledky bakalářské práce jsem proto velmi spokojen.

Práce s literaturou

Student získával studijní materiály buď na základě vlastní aktivity nebo na základě doporučení odborného konzultanta. Následné využití získaných studijních materiálů však již bylo zcela v jeho režii.

Aktivita během řešení, konzultace, komunikace

Student byl velmi aktivní po celou dobu řešení bakalářské práce. Své řešení často konzultoval i několikrát týdně a na konzultace byl vždy řádně připraven.

Aktivita při dokončování

Jak implementační práce, tak technická zpráva byly dokončeny ve značném předstihu před termínem pro odevzdání. Úplná verze technické zprávy prošla před odevzdáním detailním připomínkováním z moji strany a zapracováním vznesených připomínek ze strany studenta.

Publikační činnost, ocenění

Implementovaná verifikační prostředí jsou dostupná v repozitáři "ndk-fpga" sdružení CESNET na GitHub. Vzhledem k zaměření práce na verifikaci konkrétních MFB a MVB komponent však nelze očekávat jejich další využití, minimálně ne v aktuální podobě.

Výsledný počet bodů navržený vedoucím: 95

Známka navržená vedoucím: A

S ohľadom na náročnosť zadania a praktické využitie hodnotím prácu ako vydarenú, mám ale zopár výhrad k realizácii funkčného pokrytia, konštruktom assert a hranici, ktorá bola stanovená pre pokrytie kódu. Preto hodnotím stupňom B. 

Kritérium hodnocení Slovní hodnocení Body
Náročnost zadání

Stupeň hodnocení: obtížnější zadání

Prácu hodnotím ako náročnejšiu, pretože sa jedná o problematiku UVM verifikácie, ktorá sa na bakalárskom stupni neučí. Študent sa zároveň musel zoznámiť s pomerne komplikovaným UVM frameworkom od združenia Cesnet a vhodne skombinovať existujúce komponenty testbenchu so svojimi rozšíreniami. 

Prezentační úroveň technické zprávy

Práca má jasne daný koncept, kapitoly na seba dobre nadväzujú. Teoretická časť o UVM je v poriadku, je tam pár nezrovnalostí, ale s ohľadom na náročnosť UVM je to tolerovateľné. Horšie je to s popisom frameworku od združenia Cesnet, z ktorého sa vychádzalo a komponent, ktoré bolo cieľom verifikovať. Uvítala by som nejaké jednoduché príklady. Komponenty síce nie sú zložité, ale príklad často nahradí 1000 slov. Ďalšie časti práce boli v poriadku. 

75
Formální úprava technické zprávy

Typografická aj jazyková stránka práce je v poriadku.

95
Realizační výstup

Študent naimplementoval štyri kompletné verifikačné prostredia, pomocou ktorých boli objavené chyby vo verifikovaných komponentách. Doporučila by som viac komentovať výsledný kód. Verifikačný plán je minimalistický, ale s ohľadom na zameranie práce je to v poriadku. Nevidím ale dôvod, prečo by nemal byť cieľ pokrytia kódu 100%. Jedná sa o pomerne jednoduché komponenty. Tiež mi príde, že funkčné pokrytie malo obsahovať viac cross konštrukcí, ktoré by cielili na rôzne kombinácie vlastností z verifikačného plánu. Assert konštrukcie mohli byť vlastné a cielené na dané komponenty, nie iba znovupoužité z existujúceho prostredia. Celkovo hodnotím 80b pretože najnáročnejšia časť práce bola splnená, ale s doplnkovými časťami kódu sa dalo viac vyhrať. Študent sa často odkazuje na odborného konzultanta v určitých rozhodnutiach, ale mala by to byť jeho vlastná úvaha. Taktiež odôvodenie, prečo sa nejaká časť obvodu nedá zverifikovať (nedosiahnuteľný kód a pod.) by mala byť z pohľadu verifikácie kritickejšia. Tj. musí byť jasne odôvodnené, prečo sa pridáva konkrétny waiver. To mi v práci chýbalo.

80
Využitelnost výsledků

Výsledky sú prakticky použiteľné a sú súčasťou repozitára Cesnet.

Rozsah splnění požadavků zadání

Stupeň hodnocení: zadání splněno s drobnými výhradami

Študent splnil zadanie, ale u bodu 5 v podstate iba prepoužil existujúce assert príkazy pre použité zbernice z existujúceho UVM prostredia od Cesnet. Podľa zadania som očakávala príkazy, ktoré sa budú viazať priamo na verifikované komponenty a nie na zbernice, cez ktoré tečú data do/z komponent. 

Rozsah technické zprávy

Stupeň hodnocení: je v obvyklém rozmezí

Rozsah práce je v poriadku.

Práce s literaturou

Výber zdrojov je s ohľadom na zameranie práce v poriadku.

95
Otázky k obhajobě:
  1. Prečo neboli komponenty verifikované univerzálne? Bez zamerania sa na konkrétne nastavenia generických parametrov? Variabilita týchto nastavení je totiž vo verifikačných scenároch veľmi nízka.
  2. Je nejaká prekážka v tom cieliť vo funkčnom pokrytí na všetky kombinácie vytýčených vlastností v rámci verifikačného plánu? Bolo by na základe implementovaných testov dosiahnuté 100% funknčné pokrytie?
Výsledný počet bodů navržený oponentem: 80

Známka navržená oponentem: B

Odpovědnost: Mgr. et Mgr. Hana Odstrčilová