KŘÍŽ, L. Vývoj algoritmu pro optimalizaci hodinově vyvážených buněk v digitálně standardní knihovně [online]. Brno: Vysoké učení technické v Brně. Fakulta elektrotechniky a komunikačních technologií. 2024.
Student Lukáš Kříž se ve své bakalářské práci zaměřil na problematiku analýzy a optimalizace hodinově vyvážených buněk v CMOS technologii. Cílem práce bylo prozkoumat dopad těchto buněk na stabilitu hodinového signálu na čipu a následně vyvinout algoritmus pro jejich optimalizaci. Práce je strukturovaná, i když v některých částech by mohlo být logické členění jasnější. Text v některých kapitolách nebo podkapitolách je příliš dlouhý a není rozdělen na menší odstavce nebo podkapitoly, což může ztížit čtení a pochopení problematiky. Grafy, tabulky a obrázky jsou většinou dobře zpracované, ale v některých případech by odkazy na ně v textu mohly být konzistentnější nebo by kvalita obrázků mohla být lepší. Například je v textu zmínka "viz obrázek níže" bez čísla obrázku. Bylo by lepší uvádět přesné odkazy, jako např. "viz Obrázek 2.1", a zajistit, aby všechny grafy, tabulky a obrázky byly správně číslovány a popsány. Struktura, formátování a správnost citací jsou dodrženy. Text obsahuje několik drobných gramatických chyb, technických a stylistických nepřesností, které mají malý vliv na kvalitu práce. Po stylistické stránce je možné zmínit například Obr. 2.3, který vypadá nedokončeně. Dále se v textu objevují špatná skloňování některých slov. Na druhou stranu student využívá relevantní odbornou literaturu a cituje z mnoha zdrojů. Student v bakalářské práci vysvětluje základy algoritmů a popisuje některé běžně dostupné a relativně jednoduché algoritmy. V práci se student věnuje primárně optimalizaci pomocí diferenciální evoluce. Samotná diferenciální evoluce je vysvětlena na jednu stránku, kde bych očekával detailnější zaměření právě na vybranou metodu. Student v této části práce mohl popsat i jiný algoritmus, který by byl vhodný podobně jako diferenciální evoluce. V tomto případě mohla být vysvětlena například optimalizace hejnem částic. Dále by bylo vhodné detailně popsat, jak se počítá fitness skóre v optimalizačním algoritmu. V celém textu není zmínka o tom, jak se daná kvalita obvodu počítá. Student dále mohl využít i další mutační strategii a porovnat je mezi sebou pro dosažení ještě lepších výsledků. Student v práci používá pouze standardní mutační strategii zvanou DE/rand/1. Práce, i přes drobné chyby a nepřesnosti v textu, je považována za splněnou. Navržený algoritmus může být použit pro optimalizaci buněk v digitálních standardních knihovnách. Je nutné podotknout, že student velmi pravidelně konzultoval problémy a řešil všechny vzniklé problémy proaktivně. Na základě těchto poznatků hodnotím práci 82 body a doporučuji ji k obhajobě.
Práce je zaměřena do oblasti optimalizace elementárních prvků v digitální technice, konkrétně na jejich hodinové vyvážení. Práce je kvalitní a seznamuje čtenáře s problematikou implementace základních digitálních prvků pomocí komplementárních párů NMOS a PMOS tranzistorů, jako jsou invertory, buffery, AND a OR hradla. Jsou zde rozebrány základní parametry (včetně rovnic), které ovlivňují časování takovýchto obvodů; jedná se především o zpoždění doby hrany hodinového signálu, samotné doby hran a střídu. U některých technologických pasáží by mohl být text více srozumitelný a vhodný tak i pro ne-experty na danou problematiku. Nejsou zde ale opomenuty žádné aspekty , které k práci patří. V textu je jen několik překlepů, technických nepřesností nebo technických slangů; srozumitelnost textu to ale neovlivňuje. Posloupnost několika jednoduchých vět by bylo vhodné spojit do souvětí. Při prvním použití anglické zkratky je vhodné její význam rozepsat. Umístění několika obrázků je v textu zbytečně daleko od místa jejich citování (až několik stran). Řešená problematika je pedagogicky vhodně rozdělena do dvou kroků, kdy jsou nejprve detailně popsány struktury základních prvků (INV, BUF, AND, OR) a sledované parametry jsou ručně vypočítány. Teprve následně je simulace těchto obvodů provedena automatizovaně prostřednictvím skriptu v jazyce Python. Oba výsledky jsou vzájemně porovnány. V tomto kroku je navíc simulována i struktura základního multiplexoru 2-to-1. Jsou uvažovány dva formáty netlistů pro simulované obvody: Spice a Spectre, jejichž struktura je v textu taktéž vysvětlena na jednoduchém příkladu. Pro simulaci parametrů jsou použity dva algoritmy: dělení intervalů a diferenciální evoluce. V textu je ale představeno vícero algoritmů a s ohledem na implementační část, tak nejsou důležité. Velmi detailně jsou v textu popsány jednotlivé funkce, napsané v jazyce Python. Pro lepší pochopení bych do textu přidal také vývojový diagram. Oceňuji úvahu o nutnosti efektivního využívání datové paměti během simulací včetně použití garbage collectoru. Součástí práce je i krátký skrip v Matlabu; zde prosím o nepoužívání českých komentářů. V Python skriptu by bylo vhodné uvažovat o vytvoření třídy pro definované funkce. Práci považuji za přínosnou a její užitečnost by zvýšilo publikování skriptů na online platformě typu GitHub.
eVSKP id 159030