Celem projektu jest praktyczna nauka architektur komputerów poprzez ich implementację w formie umożliwiającej syntezę na układy FPGA.
W ramach projektu powstaje rdzeń o nazwie Coreblocks, implementujący zestaw instrukcji [RISC-V](https://github.com/riscv/riscv-isa-manual/releases/download/Ratified-IMAFDQC/riscv-spec-20191213.pdf) (RV32I) w mikroarchitekturze out-of-order. Implementacja będzie miała w założeniu modularny charakter "generatora rdzeni", umożliwiający dodawanie, rekonfigurację i wymianę elementów składowych rdzenia bez głębokich zmian w kodzie.
Dalszymi celami projektu są:
* Integracja z generatorem układów SoC (System on Chip) [LiteX](https://github.com/enjoy-digital/litex), co umożliwi użycie rdzenia w charakterze mikrokontrolera.
* Budowa mechanizmów automatycznego testowania, umożliwiających sprawdzanie poprawności oraz parametrów wydajnościowych (np. maksymalna częstotliwość taktowania, liczba użytych zasobów FPGA) w miarę rozwoju projektu.
* Implementacja rozszerzeń architektury (na przykład: instrukcje mnożące i dzielące, instrukcje atomowe, operacje zmiennoprzecinkowe, instrukcje CSR).
* Implementacja [instrukcji uprzywilejowanych](https://github.com/riscv/riscv-isa-manual/releases/download/Ratified-IMFDQC-and-Priv-v1.11/riscv-privileged-20190608.pdf) oraz port [OpenSBI](https://github.com/riscv-software-src/opensbi).
* Implementacja i eksperymenty z różnymi rodzajami predyktorów skoków, pamięci cache, itp.
Długoterminowym celem projektu jest uruchomienie na zaimplementowanym rdzeniu systemu operacyjnego Mimiker.
Praca nad projektem będzie miała charakter zespołowy. Student, po przydzieleniu zadania, powinien zapoznać się z wybraną tematyką, ustalić koncepcję implementacji oraz zaprezentować i przedyskutować ją podczas spotkania projektowego. Opracowany kod oraz dokumentacja projektu będzie podlegać recenzji ze strony prowadzącego oraz innych studentów.
Przedmiot zalicza wymaganie projektu zespołowego. Można uczestniczyć w nim wielokrotnie.