\subsubsection{Display}
\THEAD
-new\_eingabe & in & 1 & std\_logic & History &die aktuelle Eingabe ist zu aktualisieren \ZE
-new\_result & in & 1 & std\_logic & History & das Ergebnis ist zu aktualisieren \ZE
-zeile & out & 5 & std\_logic\_vector & History & Zeilenadressierung ($2 \cdot 15$ Zeilen $=30$) \ZE
-spalte & out & 7 & std\_logic\_vector & History & Spaltenadressierung (71
+d\_new\_eingabe & in & 1 & std\_logic & History &die aktuelle Eingabe ist zu aktualisieren \ZE
+d\_new\_result & in & 1 & std\_logic & History & das Ergebnis ist zu aktualisieren \ZE
+d\_zeile & out & 5 & std\_logic\_vector & History & Zeilenadressierung ($2 \cdot 15$ Zeilen $=30$) \ZE
+d\_spalte & out & 7 & std\_logic\_vector & History & Spaltenadressierung (71
Zeichen inkl. \textbackslash 0) \ZE
-get & out & 1 & std\_logic & History & signalisiert Speicheranforderung \ZE
-done & in & 1 & std\_logic & History & Daten liegen an \ZE
-char & in & 8 & character & History & enth\"alt angeforderne Daten \ZE
+d\_get & out & 1 & std\_logic & History & signalisiert Speicheranforderung \ZE
+d\_done & in & 1 & std\_logic & History & Daten liegen an \ZE
+d\_char & in & 8 & character & History & enth\"alt angeforderne Daten \ZE
\hline
command & out & 8 & std\_logic\_vector & VGA & Kommando an das VGA Modul \ZE
command\_data & out & 32 & std\_logic\_vector & VGA & Daten f\"ur das Kommando \ZE
tx\_data & in & 8 & std\_logic\_vector & RS232 & Datenfeld f\"ur das \"Ubertragen \ZE
tx\_new & in & 1 & std\_logic & RS232 & signalisiert dass das anliegende Byte gesendet werden soll \ZE
\hline
-zeile & out & 7 & std\_logic\_vector & History & Zeilenadressierung ($50 \cdot
+pc\_zeile & out & 7 & std\_logic\_vector & History & Zeilenadressierung ($50 \cdot
2$ Zeilen $=100$)\ZE
-spalte & out & 7 & std\_logic\_vector & History & Spaltenadressierung (71
+pc\_spalte & out & 7 & std\_logic\_vector & History & Spaltenadressierung (71
Zeichen inkl. \textbackslash 0) \ZE
-get & out & 1 & std\_logic & History & signalisiert Speicheranforderung \ZE
-done & in & 1 & std\_logic & History & Daten liegen an \ZE
-char & in & 8 & character & History & enth\"alt angeforderne Daten \ZE
+pc\_get & out & 1 & std\_logic & History & signalisiert Speicheranforderung \ZE
+pc\_done & in & 1 & std\_logic & History & Daten liegen an \ZE
+pc\_char & in & 8 & character & History & enth\"alt angeforderne Daten \ZE
\TEND
\newpage
new\_data & in & 1 & std\_logic\_vector & PS/2 & signalisiert neuen Scancode \ZE
data & in & 8 & std\_logic\_vector & PS/2 & Scancode laut Codepage 850 \ZE
\hline
-char & out & 8 & character & History & Zeichen das \"ubernommen werden soll \ZE
-take & out & 1 & std\_logic & History & signalisiert Datenfeld char \ZE
-done & in & 1 & std\_logic & History & signalisiert die \"Ubernahme der Daten \ZE
-backspace & out & 1 & std\_logic & History & letztes Zeichen soll gel\"oscht werden \ZE
+s\_char & out & 8 & character & History & Zeichen das \"ubernommen werden soll \ZE
+s\_take & out & 1 & std\_logic & History & signalisiert Datenfeld char \ZE
+s\_done & in & 1 & std\_logic & History & signalisiert die \"Ubernahme der Daten \ZE
+s\_backspace & out & 1 & std\_logic & History & letztes Zeichen soll gel\"oscht werden \ZE
\hline
do\_it & out & 1 & std\_logic & Parser & Auswertung beginnen (ENTER) \ZE
finished & in & 1 & std\_logic & Parser & Auswertung fertig \ZE
\subsubsection{Parser}
\THEAD
-h\_rw & out & 1 & std\_logic & History & 0 = read (Expression), 1 = write (Ergebnis) \ZE
-h\_spalte & out & 7 & std\_logic\_vector & History & Spaltenadressierung (71
+p\_rw & out & 1 & std\_logic & History & 0 = read (Expression), 1 = write (Ergebnis) \ZE
+p\_spalte & out & 7 & std\_logic\_vector & History & Spaltenadressierung (71
Zeichen inkl. \textbackslash 0) \ZE
-h\_rget & out & 1 & std\_logic & History & signalisiert Leseanforderung \ZE
-h\_rdone & in & 1 & std\_logic & History & Daten liegen an \ZE
-h\_read & out & 8 & character & History & enth\"alt angeforderne Daten \ZE
+p\_rget & out & 1 & std\_logic & History & signalisiert Leseanforderung \ZE
+p\_rdone & in & 1 & std\_logic & History & Daten liegen an \ZE
+p\_read & out & 8 & character & History & enth\"alt angeforderne Daten \ZE
-h\_wtake & out & 1 & std\_logic & History & signalisiert Schreibanforderung \ZE
-h\_wdone & in & 1 & std\_logic & History & Daten liegen an \ZE
-h\_write & in & 8 & character & History & enth\"alt zu schreibende Daten \ZE
+p\_wtake & out & 1 & std\_logic & History & signalisiert Schreibanforderung \ZE
+p\_wdone & in & 1 & std\_logic & History & Daten liegen an \ZE
+p\_write & in & 8 & character & History & enth\"alt zu schreibende Daten \ZE
-h\_finished & out & 1 & std\_logic & History & Auswertung fertig \ZE
+p\_finished & out & 1 & std\_logic & History & Auswertung fertig \ZE
\hline
opcode & out & 3 & enum OPS & ALU & die auszuf\"uhrende Art der Berechnung \ZE
op1 & out & 32 & SIGNED(32-1 downto 0) & ALU & erste Operand \ZE
per PC) in Gang gesetzt werden. Am PC sollen nur die letzten 50 Berechnungen ersichtlich sein.}
Erf\"ullt \textbf{Req 9, 10}
+\newpage
\section{Detailed Design Description}
\subsection{VGA}
siehe \textit{hwmod\_ipcores.pdf}
auf high gesetzt werden.
\end{itemize}
+\subsection{PS/2}
+siehe \textit{hwmod\_ipcores.pdf}
+
\subsection{PC-Kommunikation}
\begin{figure}[!ht]
\end{itemize}
-\subsection{PS/2}
-siehe \textit{hwmod\_ipcores.pdf}
-
\subsection{Scanner}
\begin{figure}[!ht]
\includegraphics[width=0.9\textwidth]{sm/scanner.pdf}
\end{figure}
\begin{itemize}
-\item \textbf{idle}: Setzt alle Steuersignale \emph{backspace}, \emph{take} und \emph{do\_it} low.
+\item \textbf{idle}: Setzt alle Steuersignale \emph{s\_backspace}, \emph{s\_take} und \emph{do\_it} low.
\item \textbf{read}: Bei steigender Flanke auf \emph{new\_data} wird das anliegende Byte des
PS/2-Modules \"ubernommen. Je nach Wert wird in den n\"achsten Zustand gewechselt.
\item \textbf{enter}: Wurde die Entertaste gedr\"uckt wird der Parser getriggert
(per Signal \emph{do\_it}). Der Scanner befindet sich so lange in diesem Zustand
bis der Parser das Ergebnis berechnet hat.
\item \textbf{l\"oschen}: Teilt dem History Modul mit das letzte Zeichen im
-Buffer zu l\"oschen (per Signal \emph{backspace}).
+Buffer zu l\"oschen (per Signal \emph{s\_backspace}).
\item \textbf{mod}: Da wir nur Zeichen des Numpads \"ubernehmen wollen, ist
dieser Zwischenzustand n\"otig, da Scancodes vom Numpad einen Modifier
mitschicken (\emph{0xe0}).
\item \textbf{\"ubernehmen}: Wenn ein g\"ultiges Zeichen laut Requirements
-eingegeben wurde, wird jenes Zeichen an \emph{char} angelegt und \emph{take}
+eingegeben wurde, wird jenes Zeichen an \emph{s\_char} angelegt und \emph{s\_take}
wird auf high gesetzt. Das History Modul wird dadurch getriggert um das Zeichen
in den Buffer zu \"ubernehmen.
\end{itemize}
\caption{Statemachine zum Parsen der aktuellen Expression}
\label{fig:parser}
\end{figure}
+\begin{itemize}
+\item \textbf{idle}: Das Modul ist unt\"atig und wartet auf eine steigende Flanke von \emph{do\_it}.
+
+\item \textbf{read char}: Lokale Variablen werden zur\"uckgesetzt und das n\"achste Zeichen wird vom
+History Modul angefordert.
+
+\item \textbf{sign}: Ggf. wird das Vorzeichen auf '-' gesetzt.
+
+\item \textbf{int}: Zeichen f\"ur Zeichen wird eingelesen und die Zahl wird daraus berechnet.
+
+\item \textbf{calc}: Punkt- und Strichrechnungen m\"ussen getrennt behandelt werden, daher ergibt
+sich dieses Konstrukt im Codebeispiel.
+
+\item \textbf{null}: Sonderbehandlung ist n\"otig wenn die Expression mit '\textbackslash 0'
+abgeschlossen wird.
+
+\item \textbf{done}: In diesem Zustand wird das Ergebnis das sich je nach \emph{opp} in
+\emph{strich} oder \emph{punkt} befindet als String in den Ergebnisbuffer des History Modules
+geschrieben. Danach wird \emph{p\_finished} bzw. \emph{finished} auf high gesetzt.
+
+\item \textbf{error}: Zwecks \"Ubersichtlichkeit wurden die Transitionen zu diesem Zustand
+vernachl\"assigt. Dieser Zustand wird erreicht sobald ein Grammatikfehler oder ein Fehler der ALU
+auftritt. Es wird der String ``Error'' in den Ergebnisbuffer geschrieben und
+\emph{p\_finished} bzw. \emph{finished} wird auf high gesetzt.
+\end{itemize}
+
\begin{lstlisting}
procedure exec() {
}
\end{lstlisting}
-\begin{itemize}
-\item \textbf{idle}: Das Modul ist unt\"atig und wartet auf eine steigende Flanke von \emph{do\_it}.
-
-\item \textbf{read char}: Lokale Variablen werden zur\"uckgesetzt und das n\"achste Zeichen wird vom
-History Modul angefordert.
-
-\item \textbf{sign}: Ggf. wird das Vorzeichen auf '-' gesetzt.
-
-\item \textbf{int}: Zeichen f\"ur Zeichen wird eingelesen und die Zahl wird daraus berechnet.
-
-\item \textbf{calc}: Punkt- und Strichrechnungen m\"ussen getrennt behandelt werden, daher ergibt
-sich dieses Konstrukt im Codebeispiel.
-
-\item \textbf{null}: Sonderbehandlung ist n\"otig wenn die Expression mit '\textbackslash 0'
-abgeschlossen wird.
-
-\item \textbf{done}: In diesem Zustand wird das Ergebnis das sich je nach \emph{opp} in
-\emph{strich} oder \emph{punkt} befindet als String in den Ergebnisbuffer des History Modules
-geschrieben. Danach wird \emph{finished} auf high gesetzt.
-
-\item \textbf{error}: Zwecks \"Ubersichtlichkeit wurden die Transitionen zu diesem Zustand
-vernachl\"assigt. Dieser Zustand wird erreicht sobald ein Grammatikfehler oder ein Fehler der ALU
-auftritt. Es wird der String ``Error'' in den Ergebnisbuffer geschrieben und
-\emph{finished} wird auf high gesetzt.
-\end{itemize}
-
\subsection{ALU}
\begin{figure}[!ht]
\emph{done}-Leitung benachrichtigt. Wurde das Signal vom entsprechenden
\emph{*\_\{get,take,do\}}-Signal quittiert kann der n\"achste Request
verarbeitet werden.
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%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}