Tato práce se zabývá tvorbou modulárního emulátoru pro platformu RISC-V, který je zároveň možné použít pro výukové účely.
V první části práce je provedena analýza architektury RISC-V z komerčního a technického hlediska, dále jsou zde na teoretické úrovni popsány různé techniky emulace. Následně je věnován prostor analýze současných knihoven pro emulaci instrukční sady RISC-V a knihoven pro tvorbu uživatelského rozhraní.
Druhá část práce se týká především analýzy staré verze tohoto emulátoru, a popisem vytvořeného software.
Práce je zakončena sadou testovacích programů, které jsou otestovány zároveň na emulátoru a reálném hardwarovém zařízení. Důraz je zde kladen především na zhodnocení věrohodnosti a spolehlivosti emulace.
Anotace v angličtině
This thesis deals with the development of a modular emulator for the RISC-V platform, which can also be used for educational purposes.
In the first part of the thesis, the RISC-V architecture is analyzed from a commercial and technical point of view, and various emulation techniques are described at a theoretical level. Subsequently, space is devoted to an analysis of current libraries for emulation of the RISC-V instruction set and libraries for the creation of graphical user interfaces.
The second part of the thesis is mainly concerned with the analysis of the old version of this emulator, and with the description of the developed software.
The thesis concludes with a set of test programs that are tested simultaneously on the emulator and on a real hardware device. The emphasis here is mainly on evaluating the plausibility and reliability of the emulation.
Tato práce se zabývá tvorbou modulárního emulátoru pro platformu RISC-V, který je zároveň možné použít pro výukové účely.
V první části práce je provedena analýza architektury RISC-V z komerčního a technického hlediska, dále jsou zde na teoretické úrovni popsány různé techniky emulace. Následně je věnován prostor analýze současných knihoven pro emulaci instrukční sady RISC-V a knihoven pro tvorbu uživatelského rozhraní.
Druhá část práce se týká především analýzy staré verze tohoto emulátoru, a popisem vytvořeného software.
Práce je zakončena sadou testovacích programů, které jsou otestovány zároveň na emulátoru a reálném hardwarovém zařízení. Důraz je zde kladen především na zhodnocení věrohodnosti a spolehlivosti emulace.
Anotace v angličtině
This thesis deals with the development of a modular emulator for the RISC-V platform, which can also be used for educational purposes.
In the first part of the thesis, the RISC-V architecture is analyzed from a commercial and technical point of view, and various emulation techniques are described at a theoretical level. Subsequently, space is devoted to an analysis of current libraries for emulation of the RISC-V instruction set and libraries for the creation of graphical user interfaces.
The second part of the thesis is mainly concerned with the analysis of the old version of this emulator, and with the description of the developed software.
The thesis concludes with a set of test programs that are tested simultaneously on the emulator and on a real hardware device. The emphasis here is mainly on evaluating the plausibility and reliability of the emulation.
Seznamte se s architekturou RISC-V a nejrozšířenějšími implementacemi její instrukční sady.
Analyzujte dostupná řešení pro emulaci a ladění programů pro tuto architekturu.
Navrhněte nástroj, který umožní emulovat platformu RISC-V s možností definovat a konfigurovat periferie odděleně od jeho jádra a provádět úkony související s laděním.
Implementujte tento nástroj jako modulární, umožněte vytvářet periferie definované v dynamicky linkovaných knihovnách.
Otestujte řešení na sadě standardních úloh a zhodnoťte dosažené výsledky.
Zásady pro vypracování
Seznamte se s architekturou RISC-V a nejrozšířenějšími implementacemi její instrukční sady.
Analyzujte dostupná řešení pro emulaci a ladění programů pro tuto architekturu.
Navrhněte nástroj, který umožní emulovat platformu RISC-V s možností definovat a konfigurovat periferie odděleně od jeho jádra a provádět úkony související s laděním.
Implementujte tento nástroj jako modulární, umožněte vytvářet periferie definované v dynamicky linkovaných knihovnách.
Otestujte řešení na sadě standardních úloh a zhodnoťte dosažené výsledky.