modifizierter fabb patch
authorBernhard Urban <lewurm@gmail.com>
Fri, 26 Mar 2010 15:05:36 +0000 (16:05 +0100)
committerBernhard Urban <lewurm@gmail.com>
Fri, 26 Mar 2010 15:05:36 +0000 (16:05 +0100)
spec/spec.tex

index 3e74402dfaa04e7fb785fb7867321438559f647e..628d28a7c8e633e766fc57b7e627d216251368c9 100644 (file)
@@ -93,27 +93,8 @@ Berechnungs-Endergebnis wird jedoch wieder in einzelne Charakter umgerechnet und
 \end{itemize}
 
 
-\subsection{Physikalische Interfaces}
-
-%TODO die pins sind wahrscheilich gefragt
-%wie ist das mit dem clock? externe ungenaue clock + interne pll oder wie?
-
-Interface zum key pad
-
-Interfaces zu VGA, PS/2, RS232
-
-Reset und Clock!
-
-Active Low oder Active High
-
-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.
-
 \begin{landscape}
-\subsection{Logische Interfaces der Module}
+\subsection{Logische und physikalische Interfaces der Module}
 
 \subsubsection{VGA}
 \THEAD
@@ -287,22 +268,69 @@ p\_finished & in & 1 & std\_logic & Parser & Auswertung fertig \ZE
 
 
 \subsection{Verhalten der Interfaces}
+\paragraph{Erlaubte Keyboard-Eingaben}
+
+Als erlaubte Eingabetasten werden die Ziffern \emph{`0'} bis \emph{`9'} am Numpad, die Zeichen
+\emph{`/'}, \emph{`*'}, \emph{`-'} und \emph{`+'} am Numpad, die beiden Enter-Tasten und die Backspace-Taste akzeptiert. Dabei wird auf jede gedrückte Taste nur einmal reagiert. Alle anderen Tasten auf der Tastatur werden ignoriert.
+%warum nur numpad? weil / und * dann über eine shift-kombination erreicht werden müssen und die scancode-behandlung würd ich mir nicht antun wollen
+%ob numlock gedrückt ist oder nicht sollt egal sein - ändert die scancodes nicht AFAIK
+%wird auf eine taste wirklich nur einmal reagiert wenn man z.B. die 0 hält und CTRL drückt und wieder los lässt?
+
+Während eine Berechnung durchgeführt wird, sind die Tastatureingaben wirkungslos.
+
+%wie wärs mit einem easter egg...
+
+\paragraph{Overflows}
+Tritt ein Overflow während der Berechnung auf -- entweder in einem Zwischenergebnis, oder im
+Endergebnis -- dann wird der Fehlerstring ``ERROR'' in der Ergebniszeile ausgegeben.
+%TODO aufwendigere fehlermeldung? zb "ERROR: OVERFLOW"
+
+\paragraph{Fehlerhafte Eingaben}
+Entspricht eine zu berechnende Eingabezeile nicht dem Format der Regular Expression aus Requirement
+Req.2, so wird der Fehlerstring ``ERROR'' in der Ergebniszeile ausgegeben.
+%TODO aufwendigere fehlermeldung? zb "ERROR: FEHLERHAFTE EINGABE"
+
+Liegt der Wert eines Zahlen-Literals außerhalb dem Wertebereich eines Signed Long, dann wird der
+Fehlerstring ``ERROR'' am Bildschirm ausgegeben.
+%TODO aufwendigere fehlermeldung? zb "ERROR: ZAHL ZU GROSS"
+
+\paragraph{Bildschirm-Layout}
+Die erste Berechnung nach dem Reset f\"angt links oben an. Die Eingabezeile wandert nach der Eingabe
+von Berechnungen ``runter'', d.h. \"uber der aktuellen Eingabezeile befinden sich die Ein- bzw.
+Ausgaben der vergangenen Berechnungen. 
+Wird das Ende des Bildschirms erreicht, so wird automatisch weitergescrollt (entsprechend
+verschwinden dann vergangene Berechnungen inkl. Ergebnisse vom Bildschirm).
+%TODO vielleicht in entsprechend ähnlichem requirement etwas abstrakter werden wie in der angabe
 
-welche tasten als input erlauben (haben numblock und normale ziffern unterschiedliche scancodes?)?
+Die Eingabezeile wird ebenso dargestellt wie die Eingabe erfolgt ist (Leerzeichen werden dargestellt), von der ersten Textspalte bis zur 70.
+%TODO vielleicht vor jede zeile präfix "IN3: " / "OUT3: "?
 
-wie werden ueberlaeufe behandelt?
+Alle Textausgaben sind in weißer Schrift dargestellt.
 
-fehlerhafte eingaben?
+\paragraph{Fehlermeldungen}
+Fehlermeldungen werden als Strings wie ein korrektes Ergebnis in die entsprechende Ausgabezeile geschrieben.
 
-wie schaut die ausgabe aus?
+Fehlerhafte Eingaben und Fehlermeldungen werden ebenso am Bildschirm dargestellt wie korrekte. Bei Abfrage der History über RS232 werden daher auch fehlerhafte Ein- und Ausgaben dazugezählt.
 
-was ausgaben bei fehler?
+\paragraph{Taster}
+Bei Drücken des Buttons \emph{A} wird eine einmalige Übertragung des History-Inhalts über
+die RS232-Schnittstelle veranlasst.
+Der Taster wird sowohl beim Drücken, als auch beim Loslassen entprellt mit einer Entprellzeit von 100ms.
 
-wie kann download oder upload einer history gestartet werden?
+\paragraph{RS232}
+Die Kommunikation über RS232 erfolgt über 8N1-Codierung ohne Handshake.
 
-wie kann auf die history zugegriffen werden?
+Bei Senden des Zeichens \emph{` \textbackslash n'} vom PC an den FPGA über die RS232 Schnittstelle wird
+eine einmalige Übertragung des History-Inhalts über die RS232-Schnittstelle veranlasst, ebenso wie
+beim Drücken des Buttons \emph{A}.
+%oder doch ein anderes zeichen?
 
-soll in der eingabe auch mit pfeiltasten (links,rechts) gescrolled werden koennen?
+Der History Inhalt wird im ASCII Format über die RS232 Schnittstelle an den PC gesendet. Dabei wird
+mit der 1. Eingabe begonnen, dann die 1. Ausgabe, die 2. Eingabe usw. Die aktuelle Eingabezeile
+wird NICHT mit übertragen. Die Ein- und Ausgabezeilen werden nur bis zum letzten erlaubten
+Eingabe- bzw. Ausgabezeichen gesendet. Nach jeder Zeile folgt ein \emph{` \textbackslash n'} Zeichen.
+%TODO das format hat irgendwie anders geheißen bild ich mir ein
+%oder doch immer die volle zeilenlänge von 70 zeichen senden weil einfacher?
 
 
 \subsection{Testfälle}