\documentclass[12pt,a4paper,titlepage,oneside]{article}
%\documentclass[12pt,a4paper,titlepage,oneside]{report}

\usepackage{ProtocolHeader}

\begin{document}
\MakeTitleAndTOC


% howto use graphics
% \begin{figure}[!ht]
% \includegraphics[width=\textwidth]{ftol_pic.pdf}
% \centering
% \caption{Ein kleines, fehlertolerantes Computersystem}
% \label{fig:angabe}
% \end{figure}

%\chapter %for use with report class
\section
{Einleitung}
%TODO
Es ist ein einfacher Taschenrechner der die Grundrechnungsarten Addition, Subtraktion,
Multiplikation und Division beherrscht in Hardware zu realisieren. Dabei soll als Input eine PS/2
Tastatur beziehungsweise als Output ein VGA Monitor dienen. Als zus\"atzliches Feature soll eine
History eingebaut werden, sodass vergangene Berechnungen wieder aus einem Buffer geladen werden
koennen. Au\ss{}erdem besteht die M\"oglichkeit eine solche History per RS232-Schnittstelle zu
exportieren bzw. importieren.


%\chapter
\section
{High-Level Design Description}

XXX

\subsection
{Requirement Spezifikation}

wie schaut syntax aus der eingabe? welche regeln gelten (punkt vor strich)?
wie lang darf die eingabe sein?
zahlentyp?
was soll am bildschirm angezeigt werden?
wie gross soll der buffer sein?
wie wird zum pc gesendet bzw. empfangen?

... requirements durchnummierieren (wegen testfaelle)


\subsection
{Module}

was gibts fuer module? vorschlag:
\begin{itemize}
\item VGA
\item PS/2
\item RS232
\item Historymodul fuer die Verwaltung des dahinterliegenden Buffers
\item Parser der die Eingabe auswertet
\item Controlmodul (nimmt eingabe entgegen, legt berechnungen im buffer ab, ...?)
\item Modul fuer die Kommunikation zum PC? oder gleich im Historymodul implementieren? oder ins
Controlmodul mit rein packen?
\end{itemize}


\subsection
{VGA}
ist gegeben.


\subsection
{PS/2}
ist gegeben.


\subsection
{RS232}
TODO. baudrate? kodierung? (8N1?)


\subsection
{History}
Verwaltet den dahinterliegenden Buffer fuer die History


\subsection
{Parser}
wertet ein gegeben Buffer aus.


\subsection
{Control}
soll das Bindeglied zwischen allen Modulen sein


\subsection
{Interfaces}

\subsubsection
{Physikalische Interfaces}
das ist mir noch nicht ganz klar was die da wollen. was meinen die z.b. mit ``interfaces
to VGA'' unter ``physical interfaces'' (seite 10 in der exercise.pdf)

``physikalisch'' im sinne der VHDL entity? oder doch den physischen stecker?
Ersteres wuerde ich unter Logisches Interface verstehen.


\subsubsection
{Logische Interfaces}


\subsubsection
{Verhalten der Interfaces}
welche tasten als input erlauben (haben numblock und normale ziffern unterschiedliche scancodes?)?
wie werden ueberlaeufe behandelt?
fehlerhafte eingaben?
wie schaut die ausgabe aus?
was ausgaben bei fehler?
wie kann download oder upload einer history gestartet werden?
wie kann auf die history zugegriffen werden?
soll in der eingabe auch mit pfeiltasten (links,rechts) gescrolled werden koennen?


\subsection
{Testf\"alle}
alle requirements muessen von testfaellen abgedeckt werden!


%\chapter
\section
{Detailed Design Description}
alle Module hier genauer beschreiben

wie wollen wir das design implementieren?
event sequence diagrams!
wie schauen interne strukturen aus? (speicher, logische bloecke, parallele prozesse, state machines)


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%LISTINGS
%\newpage
%\appendix
%\section{Listings}
%howto include src files
%\subsection{einfache Variante -- generierter Sourcecode}
%\label{att:einfachsrc}
%\lstinputlisting{../einfach/einfach.src}
%\lstinputlisting[firstnumber=24, firstline=24, lastline=34]{bla.src} %firstnumber shouldn't be necessary, but there is probably a bug

\end{document}

