spec: signale ein wenig umbenannt; layout angepasst spec_final
authorBernhard Urban <lewurm@gmail.com>
Fri, 30 Apr 2010 17:51:12 +0000 (19:51 +0200)
committerBernhard Urban <lewurm@gmail.com>
Fri, 30 Apr 2010 17:51:12 +0000 (19:51 +0200)
spec/TODO
spec/sm/alu.tex
spec/sm/display.tex
spec/sm/parser.tex
spec/sm/pckomm.tex
spec/speck.tex

index a3ccaeb4ad1da3fe6515fffe8b30a47fa3d427fc..6964ae48369c8d56066348b6d3c1fc0ff87560b0 100644 (file)
--- a/spec/TODO
+++ b/spec/TODO
@@ -1,4 +1,3 @@
-- signale einheitlicher benennen
 - buttonmodul (mit debouncing) fuer power-on-reset und rs232 dump
 - PLL
 - am liebsten haette ich (das gilt auch fuer unsere spezifikation) moore-state-machines.
index 47adeebb936706926a6f4f1bfad6c1644c2eaaa9..483f75fb4d773dc4e9cb5cd458b73aa581db8130 100644 (file)
 
 \ncline[linestyle=dotted]{res}{idle}
 
-\ncarc[arcangle=20]{idle}{add}\ncput*[npos=.50]{\shortstack{do\_calc$\uparrow$ \&\&\\opc = ADD}}
+\ncarc[arcangle=20]{idle}{add}\ncput*[npos=.50]{\shortstack{do\_calc$\uparrow$ \emph{\textbf{and}}\\opc = ADD}}
 \ncarc[arcangle=20]{add}{idle}
 
-\ncarc[arcangle=20]{idle}{sub}\ncput*[npos=.50]{\shortstack{do\_calc$\uparrow$ \&\&\\opc = SUB}}
+\ncarc[arcangle=20]{idle}{sub}\ncput*[npos=.50]{\shortstack{do\_calc$\uparrow$ \emph{\textbf{and}}\\opc = SUB}}
 \ncarc[arcangle=20]{sub}{idle}
 
-\ncarc[arcangle=20]{idle}{mul}\ncput*[npos=.50]{\shortstack{do\_calc$\uparrow$ \&\&\\opc = MUL}}
+\ncarc[arcangle=20]{idle}{mul}\ncput*[npos=.50]{\shortstack{do\_calc$\uparrow$ \emph{\textbf{and}}\\opc = MUL}}
 \ncarc[arcangle=20]{mul}{idle}
 
-\ncarc[arcangle=20]{idle}{div}\ncput*[npos=.50]{\shortstack{do\_calc$\uparrow$ \&\&\\opc = DIV}}
+\ncarc[arcangle=20]{idle}{div}\ncput*[npos=.50]{\shortstack{do\_calc$\uparrow$ \emph{\textbf{and}}\\opc = DIV}}
 \ncarc[arcangle=20]{div}{idle}
 \end{document}
index e50da4d46d3ecf3f3b133353db0d7f17d302cdc3..62bdc6b5122b074f99683209e0e5f2babcc4aca6 100644 (file)
@@ -24,8 +24,8 @@
 \ncarc[arcangle=0]{zeile}{idle}\ncput*[npos=.50]{$s>71$}
 \nccircle[angleA=0]{zeile}{.80cm}\ncput*[npos=0.5]{$s\le71$}
 
-\ncarc[arcangle=0]{idle}{eingaddr}\ncput*[npos=.50]{new\_eingabe$\uparrow$}
-\ncarc[arcangle=0]{idle}{ergaddr}\ncput*[npos=.50]{new\_result$\uparrow$}
+\ncarc[arcangle=0]{idle}{eingaddr}\ncput*[npos=.50]{d\_new\_eingabe$\uparrow$}
+\ncarc[arcangle=0]{idle}{ergaddr}\ncput*[npos=.50]{d\_new\_result$\uparrow$}
 
 \ncarc[arcangle=0]{eingaddr}{zeile}
 \ncarc[arcangle=0]{ergaddr}{zeile}
index 51d11c82ec8bffc483d8b81f34d1f69548de3439..2bd3382c40d00c974768da381725c38300e6b812 100644 (file)
@@ -54,6 +54,6 @@
 \ncarc[arcangle=0]{int}{null}\ncput*[npos=.50]{aktop = '\textbackslash 0'}
 \ncarc[arcangle=0]{null}{calc}
 
-\ncarc[arcangle=0]{calc}{read}\ncput*[npos=.50]{int\_done$\uparrow$}
+\ncarc[arcangle=0]{calc}{read}\ncput*[npos=.45]{else}
 \ncarc[arcangle=0]{calc}{done}\ncput*[npos=.50]{aktop = DONE}
 \end{document}
index e9b397fe3701f1361be5c322f1cd8bdecff24865..58055172448fbc081540d0449eeb796ccd9bbdd1 100644 (file)
@@ -19,7 +19,7 @@
 \ncline[linestyle=dotted]{res}{idle}
 
 \ncarc[arcangle=30]{idle}{zeile}\ncput*[npos=.50]{\shortstack{rx\_new$\uparrow$
-\&\&\\rx\_data='\textbackslash 0'}}
+\emph{\textbf{and}}\\rx\_data='\textbackslash 0'}}
 \ncarc[arcangle=0]{idle}{zeile}\ncput*[npos=.50]{btn$\uparrow$}
 
 \ncarc[arcangle=40]{zeile}{idle}\ncput*[npos=.50]{$z>50$}
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}