From: Bernhard Urban Date: Fri, 26 Mar 2010 15:05:36 +0000 (+0100) Subject: modifizierter fabb patch X-Git-Tag: spec-abgabe1~11 X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=hwmod.git;a=commitdiff_plain;h=9ddedde9fae4933c9dad575a370e3fcfb4f96e66 modifizierter fabb patch --- diff --git a/spec/spec.tex b/spec/spec.tex index 3e74402..628d28a 100644 --- a/spec/spec.tex +++ b/spec/spec.tex @@ -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}