In early 2018, more than a year before the official start of the project, after
searching for a subject for the diploma thesis, the idea of building a computer
from scratch had come up. Multiple suggestions on how to implement it and the
scope of the project were gathered. Originally, the goal was to
design a computer consisting of seperate plug-in cards, one instruction would
residing on each. This would open up the ``black box`` of modern processor
design, showing the basic components at a macroscopic scale.

The project's aim was later
redirected due to concerns about difficulty, and an FPGA-based design was opted
for instead. After
several months of implementation time, the project was split into two parts: the
peripherals and the core processor. During the development process, and to get
back to the original goal of making a processor understandable, the
peripherals changed from being implemented in VHDL back to hardware.
This increased the required effort, but would result in a far more
understandable final product.

The decision to use a RISC-V based processor was made at the beginning of the 
project because the core architecture is well documented and modular, and because
almost any feature not implemented inside the processor can be emulated using
software instead.

\subsection{Free software}
\label{sec:free-software}

For most of today's processors, documentation only exists on the execution of
programs (the runtime), not for their internals. In order the have the biggest
possible educational potential, this project is entirely "Free as in speech":
All involved software and hardware designs, as well as all the tools and
utilities required to create them, comply with the Free Software Foundation's
definition for Free software~\cite{fsf-definition}. They give the users the
rights to share, study and modify them at their will. In this thesis, the
capital-F ``Free'' is used to refer to this definition rather than the
meaning of ``free of charge'' or ``gratis''.
