Bachelor's Thesis

Implementation of RISC-V for FPGA circuits

Final Thesis 2.99 MB Appendix 9.01 MB

Author of thesis: Tadeáš Klusáček

Acad. year: 2025/2026

Supervisor: doc. Ing. Lukáš Fujcik, Ph.D.

Reviewer: Ing. Vojtěch Dvořák, Ph.D.

Abstract:

This thesis deals with the functions and differences between reduced and complex instruction sets with a description of their most known representatives, namely the x86 and ARM architectures. Furthermore, attention is paid to possible data path design styles and instruction-level parallelization. A separate chapter describes the RISC-V architecture in more detail, with emphasis on instruction encoding, extension sets and privileged modes. The main goal of the thesis is the design of a simple RISC-V processor for FPGA circuits, including its verification and subsequent demonstration on a development board.

Keywords:

RISC-V, instruction set architecture, microarchitecture, FPGA, processor, VHDL

Date of defence

16.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaBznamka

Grading

B

Process of defence

Student seznámil státní zkušební komisi s řešením své bakalářské práce. Zodpověděl otázky a připomínky oponenta. Dále odpověděl otázky komise: Proč procesory single cycle jsou pomalejší než pipe line? K čemu je přínosná vaše práce? Uvedené příklady nebyly pro výuku? Existují veřejně dostupné implementace RISC-V?

Language of thesis

Czech

Faculty

Department

Study programme

Microelectronics and Technology (BPC-MET)

Composition of Committee

doc. Ing. et Ing. Pavel Šteffan, Ph.D. (předseda)
doc. Ing. Vítězslav Novák, Ph.D. (místopředseda)
Ing. Michal Pavlík, Ph.D. (člen)
Ing. Vojtěch Dvořák, Ph.D. (člen)
Ing. Michal Jelínek, Ph.D. (člen)

Supervisor’s report
doc. Ing. Lukáš Fujcik, Ph.D.

Předkládaná práce se zabývá návrhem a implementací procesoru architektury RISC-V určeného pro realizaci v obvodech FPGA. Problematika otevřené instrukční sady RISC-V je v současnosti velmi aktuáln. Práce kombinuje teoretický rozbor procesorových architektur s praktickou realizací vlastního procesorového jádra.

Bakalářská práce má celkově 56 stran bez příloh a je rozdělena do šesti kapitol. První kapitola je věnována architektuře FPGA rodiny Artix-7 a použité vývojové desce Nexys A7. Druhá a třetí kapitola popisují základní principy procesorů, mikroarchitektur a instrukčních sad typu CISC a RISC. Čtvrtá kapitola se podrobně zabývá architekturou RISC-V, jejími instrukčními sadami a rozšířeními. Pátá kapitola představuje návrh jednotlivých bloků procesoru a jejich implementaci v jazyce VHDL. Poslední kapitola se věnuje implementaci návrhu na FPGA, analýze využitých prostředků a ověření funkčnosti pomocí testovacích a demonstračních programů.

Hlavním přínosem práce je návrh a implementace vlastního 32bitového procesoru architektury RISC-V v jazyce VHDL. Student navrhl jednotlivé funkční bloky procesoru, včetně dekodéru instrukcí, řadiče, registrového pole, aritmeticko-logické jednotky, paměťového subsystému a komunikačního rozhraní UART. Návrh byl následně úspěšně implementován na vývojové desce Nexys A7 a jeho funkčnost byla ověřena pomocí testovacích i demonstračních programů.

Po formální stránce je práce zpracována na velmi dobré úrovni. Přestože se v textu vyskytují drobné stylistické a jazykové nepřesnosti, nemají zásadní vliv na srozumitelnost ani odbornou úroveň práce. Jako nedostatek vidím nedostatečné komentáře ve VHDL popisech, které by mohly být detailnější a v některých případech dokonce úplně chybí. Rozsah práce, struktura kapitol i použitá literatura odpovídají požadavkům kladeným na bakalářské práce.

Je zřejmé, že student je podrobně obeznámen s danou problematikou. Během řešení své bakalářské práce student vše konzultoval a informoval o dosažených výsledcích s dostatečným předstihem.

Předložená bakalářská práce odpovídá zadání v plném rozsahu a všechny cíle byly splněny.
Na základě těchto faktů hodnotím práci stupněm B/88 bodů. Points proposed by supervisor: 88

Grade proposed by supervisor: B

Reviewer’s report
Ing. Vojtěch Dvořák, Ph.D.

Student Tadeáš Klusáček vypracoval bakalářskou práci na téma Implementace RISC-V pro obvody FPGA. Cílem práce bylo navrhnout jednoduchý procesor kompatibilní s instrukční sadou RISC-V a ověřit jeho funkci v obvodu FPGA.
Teoretická část práce je věnována popisu obvodu FPGA, pro který je procesor navržen, a obecnému představení procesoru, následně seznamuje čtenáře se specifikami architektur x86 a ARM a blíže představuje základní instrukční sadu RISC-V a některá volitelná rozšíření. V praktické části je představena architektura navrženého procesoru a popsány dílčí části. Navržený procesor implementuje povinnou část instrukční sady (tzv. RV32I) a vybraná rozšíření nad rámec zadání. Kladně hodnotím, že jedním z implementovaných rozšíření je RV32M pro násobení a dělení celých čísel a součásti jednotky ALU je i sekvenční dělička. Závěr praktické části je věnován výsledkům implementace, které jsou v textu pečlivě zpracovány, a testování, kde se ovšem čtenář nedozví, jaké konkrétní programy byly použity a jak vlastně testování dopadlo.
Po formální stránce je práce na průměrné úrovni. Už v kapitole úvodu jsou odstavce různě odsazeny, v kapitole 2 se objevují mezery mezi některými odstavci a na obrázcích jsou mnohdy některé signály vyznačeny jinou barvou, avšak není zřejmé proč. Uspořádání textu a pořadí kapitol místy působí dosti nelogicky. Např. při popisu samotného návrhu je nejprve popsán dekodér jako jedna z části datové cesty procesoru, následně řadič, tedy hlavní blok určující, která část datové cesty je v daném hodinovém taktu vykonávána, a následuje popis dalších části datové cesty. Po odborné stránce je práce na dobré úrovni, student se v dané problematice orientuje a řešení se zdá být funkční. Jedinou menší výtku mám, že pro implementaci zvolil jazyk VHDL ve verzi 2008, což zhoršuje kompatibilitu s jinými nástroji, než byly použity.
Zadání práce považuji za splněné a vzhledem k výtkám k textové části práce navrhuji hodnocení B/83 bodů. Topics for thesis defence:
  1. Jsou v návrhu použity nějaké specifické bloky z FPGA Artix-7? Je návrh přenositelný do jiného cílového obvodu? Co by bylo případně třeba změnit?
  2. Jaké testy byly provedeny pro ověření procesoru a jaký je jejich výsledek?
Points proposed by reviewer: 83

Grade proposed by reviewer: B

Responsibility: Mgr. et Mgr. Hana Odstrčilová