ein paar kleinere fixes
authorBernhard Urban <lewurm@gmail.com>
Fri, 26 Mar 2010 15:44:37 +0000 (16:44 +0100)
committerBernhard Urban <lewurm@gmail.com>
Fri, 26 Mar 2010 15:44:37 +0000 (16:44 +0100)
spec/TODO
spec/sm/pckomm.pdf
spec/sm/pckomm.tex
spec/sm/scanner.pdf
spec/sm/scanner.tex
spec/spec.tex

index 7008177f3255c3c0058bf67863c32e766a133e7d..f72f653d93a6c6b135ff7b0e392580f2e7d857a4 100644 (file)
--- a/spec/TODO
+++ b/spec/TODO
@@ -1,16 +1,7 @@
-Requirement Specification
-       o done.
-
 High Level Design Description
        o nochmals drueber arbeiten am schluss (z.b. bin2dez converter rausnehmen).
        o arch bild aktualisieren.
 
-Verhalten der Interfaces
-       o abstrakt oder auf unsere Modul-Interfaces bezogen? die Beispiele von den Folien sehen eher
-       abstrakt aus. 
-       o Verhalten bei Ueberlauf. Division durch 0. (=> als ergebnis soll "Error" da stehen?)
-       o Eingabe von unguetligen Zeichen (=> sollen nicht angezeigt werden).
-
 Testfälle für alle Requirements
        o um zb. die History zu füllen sind 50+ Eingaben zu tätigen, kann mit anderen Testfällen
        kombiniert werden
index e20522586c6962b5865b0eb3f4c0ed2d7450f901..4a44056f35a5b911f0be9a18bc54dbc9ac8063c9 100644 (file)
Binary files a/spec/sm/pckomm.pdf and b/spec/sm/pckomm.pdf differ
index cdfd1a62d465b89648d56eb75f70e6929ec6d72f..e9b397fe3701f1361be5c322f1cd8bdecff24865 100644 (file)
@@ -18,8 +18,9 @@
 
 \ncline[linestyle=dotted]{res}{idle}
 
-\ncarc[arcangle=20]{idle}{zeile}\ncput*[npos=.50]{rx\_new$\uparrow$}
-\ncarc[arcangle=-10]{idle}{zeile}\ncput*[npos=.50]{btn$\uparrow$}
+\ncarc[arcangle=30]{idle}{zeile}\ncput*[npos=.50]{\shortstack{rx\_new$\uparrow$
+\&\&\\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 60f7a37b950c891c76c02a5fa9299dc9eab00963..4e645b724a0609ff5fde7cd6631635c0d943676d 100644 (file)
Binary files a/spec/sm/scanner.pdf and b/spec/sm/scanner.pdf differ
index d0e5ce2215d3fc442bdff3b8e74df4143979e25b..db92b563792d74667dcacfe502fd5a655961619c 100644 (file)
@@ -6,12 +6,16 @@
 
 \begin{document}
 
-\begin{psmatrix}[mnode=oval, colsep=3cm, rowsep=2cm]
+\begin{psmatrix}[mnode=oval, colsep=2cm, rowsep=2cm]
 [mnode=R,name=res]{sys\_res\_n} &
 [name=idle]{\shortstack{\textbf{idle}\\bs = 0\\take=0\\do\_it=0}} &
 [name=take]{\shortstack{\textbf{\"ubernehmen}\\take = 1\\char = $b_0$}} \\
 %%
 [name=doit]{\shortstack{\textbf{enter}\\do\_it = 1}} &
+&
+[name=mod]{\shortstack{\textbf{mod}\\$b_0$ = data}} \\
+%%
+&
 [name=read]{\shortstack{\textbf{read}\\$b_0$ = data}} &
 [name=bs]{\shortstack{\textbf{l\"oschen}\\backspace = 1}} \\
 \end{psmatrix}
 
 \ncline[linestyle=dotted]{res}{idle}
 
-\ncarc[arcangle=35]{idle}{read}\ncput*[npos=.33]{new\_data$\uparrow$}
-\ncarc[arcangle=35]{read}{idle}\ncput*[npos=.33]{ung\"ultiges byte}
+\ncarc[arcangle=25]{idle}{read}\ncput*[npos=.43]{new\_data$\uparrow$}
+\ncarc[arcangle=25]{read}{idle}\ncput*[npos=.43]{ung\"ultiges byte}
 
 \ncarc[arcangle=-25]{read}{bs}\ncput*[npos=.50]{$b_0 == 0x0e$}
 \ncarc[arcangle=25]{read}{doit}\ncput*[npos=.50]{$b_0 == 0x1c$}
-\ncarc[arcangle=-20]{read}{take}\ncput*[npos=.40]{g\"ultiges zeichen}
 
-\ncarc[arcangle=-15]{bs}{idle}
+\ncarc[arcangle=0]{read}{mod}\ncput*[npos=.40]{$b_0 == 0xe0$}
+\ncarc[arcangle=-40]{mod}{take}\ncput*[npos=.40]{g\"ultiges zeichen}
+\ncarc[arcangle=-25]{mod}{idle}\ncput*[npos=.53]{ung\"ultiges byte}
+
+\ncarc[arcangle=0]{bs}{idle}
 \ncarc[arcangle=25]{doit}{idle}\ncput*[npos=.50]{finished\_result$\uparrow$}
 \ncarc[arcangle=-25]{take}{idle}
 \end{document}
index 628d28a7c8e633e766fc57b7e627d216251368c9..e51c562298d1552f99693c58a1e0a62a51b58f21 100644 (file)
@@ -53,7 +53,9 @@ EXPRESSION = OPERAND \{ OPERATOR OPERAND \} ;
 
 \req{Die Anzeige der Ein- und Ausgaben erfolgt über einen VGA Monitor.}
 
-\req{Es wird pro Zeile eine Eingabe oder Ausgabe angezeigt. Die aktuelle Eingabezeile befindet sich zuoberst, darunter das Ergebnis der vorigen Rechnung, darunter die Eingabe der vorigen Rechnung und so weiter}
+\req{Es wird pro Zeile eine Eingabe oder Ausgabe angezeigt. Die aktuelle Eingabezeile wandert nach
+unten, dar\"uber befindet sich das Ergebnis der vorigen Rechnung, dar\"uber die Eingabe der
+vorigen Rechnung usw.}
 
 \req{Auf die in zuvor angegebene Methode sollen zusätzlich zur aktuellen Eingabezeile die letzten 14 Ein- und Ausgaben dargestellt werden}
 
@@ -122,7 +124,7 @@ auszulesen \ZE
 new\_result & in & 1 & std\_logic & History & Aufforderung der History das aktuelle Ergebnis
 auszulesen \ZE
 zeile & out & 5 & std\_logic\_vector & History & Zeilenadressierung ($2 * 15$ Zeilen $=30$) \ZE
-spalte & out & 7 & std\_logic\_vector & History & Spaltenadressierung (71 Ziechen inklusive \textbackslash 0) \ZE
+spalte & out & 7 & std\_logic\_vector & History & Spaltenadressierung (71 Zeichen inklusive \textbackslash 0) \ZE
 get & out & 1 & std\_logic & History & Signalisiert Speicheranforderung \ZE
 done & in & 1 & std\_logic & History & Signalisiert dass Daten anliegen \ZE
 char & in & 8 & character & History & enth\"alt angeforderne Daten \ZE
@@ -150,7 +152,7 @@ tx\_new & out & 1 & std\_logic & PC-Kommunikation & Signalisiert dass das anlieg
 \subsubsection{PC-Kommunikation}
 %Auf eine vom PC eintreffende Bufferübermittlungsanforderung oder ein Drücken des entsprechenden Board-Buttons, liest es Zeichen für Zeichen aus dem History Modul aus und leitet es an das RS232 Modul weiter
 \THEAD
-btn & in & 1 & std\_logic & externer Button & zum Triggern der RS232 Kommunikation \ZE
+btn\emph{A} & in & 1 & std\_logic & externer Button & zum Triggern der RS232 Kommunikation \ZE
 
 rx\_data & in & 8 & std\_logic\_vector & RS232 & Datenfeld f\"ur das Empfangen \ZE
 rx\_new & in & 1 & std\_logic & RS232 & Signalisiert ein neu empfangendes Byte \ZE
@@ -195,7 +197,7 @@ finished & in & 1 & std\_logic & Parser & Auswertung fertig \ZE
 %Wertet die Eingabezeile der History aus und liefert als Antwort entweder einen Fehler zurück oder gibt die einzelnen Berechnungen von je zwei Zahlen an die ALU weiter, die vom History Modul ausgelesenen zusammenhängenden Dezimalstellen werden mit dem Bin/Dez-Converter Modul in Binärzahlen umgerechnet, das Berechnungs-Endergebnis wird wieder in mit dem Converter Modul in einzelne Charakter umgerechnet und in der History gespeichert
 \THEAD
 h\_rw & in & 1 & std\_logic & History & 0 = read (Expression), 1 = write (Ergebnis) \ZE
-h\_spalte & in & 7 & std\_logic\_vector & History & Spaltenadressierung (71 Ziechen inklusive \textbackslash 0) \ZE
+h\_spalte & in & 7 & std\_logic\_vector & History & Spaltenadressierung (71 Zeichen inklusive \textbackslash 0) \ZE
 h\_rget & in & 1 & std\_logic & History & Signalisiert Leseanforderung \ZE
 h\_rdone & out & 1 & std\_logic & History & Signalisiert dass Daten anliegen \ZE
 h\_read & in & 8 & character & History & enth\"alt angeforderne Daten \ZE
@@ -247,13 +249,13 @@ s\_backspace & in & 1 & std\_logic & Scanner & Signalisiert Backspace (letztes Z
 d\_new\_eingabe & out & 1 & std\_logic & Display & Fordert Display auf die Eingabe auszulesen \ZE
 d\_new\_result & out & 1 & std\_logic & Display & Fordert Display auf das Ergebnis auszulesen \ZE
 d\_zeile & in & 5 & std\_logic\_vector & Display & Zeilenadressierung ($2 * 15$ Zeilen $=30$) \ZE
-d\_spalte & in & 7 & std\_logic\_vector & Display & Spaltenadressierung (71 Ziechen inklusive \textbackslash 0) \ZE
+d\_spalte & in & 7 & std\_logic\_vector & Display & Spaltenadressierung (71 Zeichen inklusive \textbackslash 0) \ZE
 d\_get & in & 1 & std\_logic & Display & Signalisiert Speicheranforderung \ZE
 d\_done & out & 1 & std\_logic & Display & Signalisiert dass Daten anliegen \ZE
 d\_char & out & 8 & character & Display & enth\"alt angeforderne Daten \ZE
 
 p\_rw & in & 1 & std\_logic & Parser & 0 = read (Expression), 1 = write (Ergebnis) \ZE
-p\_spalte & in & 7 & std\_logic\_vector & Parser & Spaltenadressierung (71 Ziechen inklusive \textbackslash 0) \ZE
+p\_spalte & in & 7 & std\_logic\_vector & Parser & Spaltenadressierung (71 Zeichen inklusive \textbackslash 0) \ZE
 p\_rget & in & 1 & std\_logic & Parser & Signalisiert Leseanforderung \ZE
 p\_rdone & out & 1 & std\_logic & Parser & Signalisiert dass Daten anliegen \ZE
 p\_read & in & 8 & character & Parser & enth\"alt angeforderne Daten \ZE
@@ -403,6 +405,8 @@ einen Takt lang high). Der Scanner befindet sich so lange in diesem Zustand bis
 Ergebnis berechnet hat.
 \item \textbf{l\"oschen}: Teilt dem History Modul mit das letzte Zeichen im Buffer zu l\"oschen
 (\emph{backspace} ist einen Takt lang high).
+\item \textbf{mod}: Da wir nur Zeichen des Numpads \"ubernehmen wollen, ist dieser Zwischenstate
+n\"otig.
 \item \textbf{\"ubernehmen}: Wenn ein g\"ultiges Zeichen laut Requirements eingegeben wurde, wird
 jenes Zeichen an \emph{char} angelegt und \emph{take} wird einen Takt lang high gesetzt. Das History
 Modul wird dadurch getriggert das anliegende Zeichen in den Buffer zu \"ubernehmen.