ZÁHORA, J. Návrh aritmetické jednotky v plovoucí řádové čárce pro obvody FPGA [online]. Brno: Vysoké učení technické v Brně. Fakulta elektrotechniky a komunikačních technologií. 2025.

Posudky

Posudek vedoucího

Dvořák, Vojtěch

Student Jakub Záhora vypracoval diplomovou práci s názvem Návrh aritmetické jednotky v plovoucí řádové čárce pro obvody FPGA. Cílem práce bylo nejprve se seznámit s reprezentací čísel v plovoucí řádové čárce a s řešením aritmetických operací jako je sčítání, násobení a odčítání, a následně tyto základní operace popsat jako funkce v prostředí Matlab. Takto vytvořený model pak slouží jako reference pro popis těchto operací v jazyce VHDL a díky bitové ekvivalenci těchto dvou úrovní modelů by měl usnadnit přechod z abstraktního modelování algoritmů v prostředí Matlab/Simulink do obvodového zapojení v obvodu FPGA. Text práce je rozdělen na teoretickou část, zabývající se představením čísel reprezentovaných v plovoucí řádové čárce, a praktickou část implementující tyto operace nejprve v prostředí Matlab a následně v jazyce VHDL. K samotnému textu práce mám několik připomínek. Úroveň popisu aritmetických operací v teoretickém úvodu je nevhodně zvolena. Pro představení samotného postupu při výpočtech je popis příliš detailní a pro čtenáře těžko uchopitelný. Na tento popis se pak student odkazuje v další kapitole, která popisuje funkce v Matlabu. Avšak v tomto případě je tento popis naopak až příliš abstraktní - chybí informace o použitých datových typech, nastavení šířek jednotlivých částí čísla či o implementaci dílčích operací. V teoretickém úvodu jsou pak popsány zvlášť operace sčítání a odčítání, přestože v případě čísel ve formátu plovoucí řádové čárky je rozdíl pouze v negaci znaménkového bitu a v ostatních krocích jsou tyto operace zcela identická. V popisu hardwarového zapojení jsou kapitoly nevhodně strukturovány, kdy nejprve jsou popsány dílčí bloky jednotlivých komponent a až nakonec je čtenář seznámen se zapojením těchto komponent dohromady. V některých schématech pak jsou komponenty, které nejsou blíže popsány, a např. u schématu komponenty provádějící násobení pak v blokovém schématu samotná operace násobení chybí. Schémata také používají nestandardní způsob značení šířky signálů, kdy šířka je uvedena v závorce za jednotlivými signály. Na některé tyto nedostatky byl student upozorněn v průběhu tvorby textu, avšak zřejmě z časových důvodů už tyto podněty nestihl do textu zapracovat. Po odborné stránce je práce na ucházející úrovni. Navržené modely funkcí v prostředí Matlab jsou ověřeny proti operacím v datovém typu double, které jsou počítány procesorem, a v tomto případě jsou považovány za referenční implementaci. VHDL popis je následně ověřen oproti bitově přesným modelům v Matlabu. Jak v případě modelů v Matlabu, tak i popisu v jazyce VHDL, je však prostor pro zlepšení. Skript sloužící pro ověření funkcí v Matlabu je příliš složitý a stejného efektu by bylo možné dosáhnout pomocí několika málo smyček. V důsledku je pak obtížné postup testování ověřit. Zároveň některé soubory obsahují definici více funkcí, což není standardní způsob popisu pro Matlab a nastává problém s kompatibilitou u různých verzí softwaru. V modelu v jazyce VHDL je pak celá komplexní logika výpočtu popsána jako jeden kombinační blok a důsledkem je nízký pracovní kmitočet. Avšak vzhledem k faktu, že cílem práce nebylo provést optimalizaci popisu pro konkrétní obvod FPGA, lze tento technický nedostatek akceptovat a konstatovat, že zadání práce je v tomto bodu splněno. V průběhu semestru student pravidelně docházel na konzultace a prezentoval dosažené výsledky. Bohužel však vícekrát nebylo uděláno to, na čem jsme se domluvili, a tudíž se některé i jednoduché úkoly neúměrně protahovaly. Důsledkem pak bylo i to, že studentovi zbylo jen málo času na tvorbu samotného textu práce. I přes připomínky uvedené výše však považuji zadání práce za splněné a navrhuji hodnocení D/60bodů.

Navrhovaná známka
D
Body
60

Posudek oponenta

Šťáva, Martin

V diplomové práci "Návrh aritmetické jednotky v plovoucí řádové čárce pro obvody FPGA" se student seznámil s reprezentací čísel ve formátu pohyblivé řádové čárky a implementoval bitově přesný model aritmetické jednotky v prostředí MATLAB se základními operacemi (sčítání, odčítání, násobení) s možností nastavení bitové šířky jednotlivých částí čísla. Aritmetická jednotka byla popsána v jazyce VHDL, testována vůči referenčním modelům z MATLAB a implementována pro cílovou platformu FPGA včetně odhadu pracovní frekvence a spotřeby prostředků. Zadání práce je tedy splněno. Prezentační úroveň práce je nízká. Textová část působí dojmem narychlo sepsaného textu. První tři kapitoly (str. 11 až 24) jsou věnovány výkladu teorie číselných reprezentací a formátu IEEE 754 s nadměrným množstvím ukázek výpočtů dle standardu IEEE 754. Studentova vlastní práce, tj. návrh a implementace aritmetické jednotky a její verifikace, je popsána na pouhých 18 stranách. Celkový rozsah textové části práce (úvod až závěr) činí 34 stran, což leží pod spodní hranicí doporučeného rozsahu pro diplomovou práci. Ani formální stránka diplomové práce nepůsobí dobrým dojmem. Typografické zásady nejsou plně dodrženy – v průběžném textu je často použit znak spojovníku namísto unárního mínusu, jednohlásková slova na konci řádků narušují čtivost textu, odkazy na tabulky či obrázky jsou uváděny podle anglo-amerických typografických zvyklostí, např. „V Tabulka 2.4...“ namísto správného československého tvaru "V tabulke 2.4..." nebo lépe "V tab. 2.4..."; dále zápis čísel ve vědecko-technickém formátu je stěží pochopitelný (např. v tab. 5.2 ve sloupci „Max. prac. frekvence“ přímo nevhodný) apod. Kapitoly jsou číslovány, ale jejich struktura a logické propojení působí roztříštěně a snižuje srozumitelnost autorova postupu. Jazykovou stránku vzhledem ke slovenštině nemohu kvalifikovaně posoudit, i když některými syntaktickými prostředky jazyka podobnými češtině (jako např. větnými čárkami) student na mnoha místech šetřil, což dále zhoršuje čitelnost textu práce. Student používá většinou (až na výjimky) relevantní odborné zdroje, jejich počet je spíše základní. Výjimkou z relevantnosti je wikipediový zdroj [7] -- jedná se pouze o výňatek ze základní normy pro práci s čísly v pohyblivé řádové čárce; na magisterské úrovni bych zde předpokládal práci s původním textem standardu IEEE 754! Ani literární odkazy nejsou v práci zcela korektně citovány, např. zdroje [11] či [13] v soupisu literatury nejsou nikde v textu odkázány. Pokud je autor skutečně pročítal, ale v práci přímo nepoužil, nemají být v seznamu literatury uvedeny. Ani formátování seznamu literatury není formálně v pořádku, neboť nedodržuje doporučenou normu ISO 690! Prohloubení rešeršní části o další odborné zdroje a jejich vhodnější logické provázání by mohlo práci více přiblížit čtenáři a podpořit srozumitelnost textu. Po odborné stránce je implementace funkční, ale samotný přínos práce nepovažuji na magisterské úrovni za dostatečný. Student sice prokázal pochopení problematiky aritmetiky ve formátu s pohyblivou řádovou čárkou, ale omezil se jen na základní implementaci v FPGA, jejíž rychlost je v řádu pouhých desítek MHz (viz tab. 5.2) s nízkou latencí, a pro praktické použití ve výpočetně-náročných úlohách proto jen velmi, velmi omezeně použitelná (navržené bloky lze včlenit do větších systémů a omezeně použít např. v DSP aplikacích). Za smysluplné považuji testování shody výstupů mezi implementacemi v MATLAB a VHDL i zohlednění parametrizovatelnosti návrhu. Diplomová práce Bc. Jakuba Záhory splňuje zadání, nicméně celkové zpracování a odborný přínos neodpovídají plně očekávané úrovni magisterské závěrečné práce. Z formálního i obsahového hlediska vykazuje práce řadu nedostatků. Vzhledem k tomu, že návrh je funkční a student prokázal alespoň základní orientaci v dané problematice, práci po velkém váhání doporučuji k obhajobě.

Navrhovaná známka
E
Body
50

Otázky

eVSKP id 168697