spec: signale ein wenig umbenannt; layout angepasst
[hwmod.git] / spec / speck.tex
index 736d92c6f1b2634843bb626549f86db8b290f350..34cba26b3aa669a138a6f7789f97efa04896a686 100644 (file)
@@ -116,14 +116,14 @@ free & out & 1 & std\_logic & Display & signalisiert Bereitschaft \ZE
 
 \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
@@ -152,13 +152,13 @@ rx\_new & in & 1 & std\_logic & RS232 & signalisiert ein neu empfangendes Byte \
 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
@@ -177,10 +177,10 @@ ps2\_data & inout & 1 & std\_logic & Tastatur & Datenleitung zum Keyboard \ZE
 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
@@ -189,18 +189,18 @@ 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
@@ -366,6 +366,7 @@ aktuellen Berechnung entspricht. Danach soll eine RS232 \"Ubertragung (einmal pe
 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}
@@ -433,6 +434,9 @@ gesetzt werden.
 auf high gesetzt werden.
 \end{itemize}
 
+\subsection{PS/2}
+siehe \textit{hwmod\_ipcores.pdf}
+
 
 \subsection{PC-Kommunikation}
 \begin{figure}[!ht]
@@ -454,9 +458,6 @@ Spaltencounter erh\"oht.
 \end{itemize}
 
 
-\subsection{PS/2}
-siehe \textit{hwmod\_ipcores.pdf}
-
 \subsection{Scanner}
 \begin{figure}[!ht]
 \includegraphics[width=0.9\textwidth]{sm/scanner.pdf}
@@ -466,19 +467,19 @@ siehe \textit{hwmod\_ipcores.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}
@@ -491,6 +492,32 @@ in den Buffer zu \"ubernehmen.
 \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() {
@@ -535,32 +562,6 @@ procedure c1() {
 }
 \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]
@@ -605,17 +606,5 @@ Ist das History Modul mit der Speicheranfrage fertig, wird das andere Modul \"ub
 \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}