architekturüberlegungen
authorfabb <Administrator@.(none)>
Fri, 19 Mar 2010 16:43:29 +0000 (17:43 +0100)
committerfabb <Administrator@.(none)>
Fri, 19 Mar 2010 16:43:29 +0000 (17:43 +0100)
spec/Architektur.dia [new file with mode: 0644]
spec/Architektur.png [new file with mode: 0644]
spec/ProtocolHeader.sty
spec/spec.tex

diff --git a/spec/Architektur.dia b/spec/Architektur.dia
new file mode 100644 (file)
index 0000000..b3b8eb8
Binary files /dev/null and b/spec/Architektur.dia differ
diff --git a/spec/Architektur.png b/spec/Architektur.png
new file mode 100644 (file)
index 0000000..6cbe73e
Binary files /dev/null and b/spec/Architektur.png differ
index c7f307a9b187e4919600f0a1aa3360fda2c364e0..748fe2aeb03f9520469cc9f27e1c513a93f77702 100644 (file)
 \newcommand{\req}[1]{\r
        \noindent\r
        \addtocounter{reqcounter}{1}\r
-       %\\\r
        \textbf{Req \arabic{reqcounter}} #1\\\r
        \label{Req \arabic{reqcounter}} %this could be done better with a second argument, but that's tiresome to write in the text\r
 }
\ No newline at end of file
index 84fccdc4eda489de7f176d8937dfefc0a1cd21ec..5ec2655ca491ad203e063584abbdf58a55a14730 100644 (file)
@@ -6,14 +6,6 @@
 \begin{document}
 \MakeTitleAndTOC
 
-% howto use graphics
-% \begin{figure}[!ht]
-% \includegraphics[width=\textwidth]{ftol_pic.pdf}
-% \centering
-% \caption{Ein kleines, fehlertolerantes Computersystem}
-% \label{fig:angabe}
-% \end{figure}
-
 %\chapter %for use with report class
 \section
 {Einleitung}
@@ -41,13 +33,13 @@ wie schaut syntax aus der eingabe?
 
 \req{Der Syntax für so eine Eingabe - eine \textbf{Expression} - sieht folgendermaßen aus:
 
-DIGIT = ``0`` \textbar ``1`` \textbar ``2`` \textbar ``3`` \textbar ``4`` \textbar ``5`` \textbar ``6`` \textbar ``7`` \textbar ``8`` \textbar ``9`` ;
+DIGIT = '0' \textbar '1' \textbar '2' \textbar '3' \textbar '4' \textbar '5' \textbar '6' \textbar '7' \textbar '8' \textbar '9' ;
 
 UNSIGNED = DIGIT { DIGIT } ;
 
-OPERAND = [``-``] UNSIGNED ;
+OPERAND = ['-'] UNSIGNED ;
 
-OPERATOR = ``+`` \textbar ``-`` \textbar ``*`` \textbar ``/`` ;
+OPERATOR = '+' \textbar '-' \textbar '*' \textbar '/' ;
 
 EXPRESSION = OPERAND \{ OPERATOR OPERAND \} ;
 }
@@ -58,7 +50,7 @@ EXPRESSION = OPERAND \{ OPERATOR OPERAND \} ;
 
 \req{Die Eingabe darf aus 70 Zeichen bestehen}
 
-\req{Die Eingabe erfolgt über eine PS/2-Tastatur, 'Enter' schließt die Eingabe ab und berechnet das Ergebnis, 'Backspace löscht das zuletzt eingegebene Zeichen'}
+\req{Die Eingabe erfolgt über eine PS/2-Tastatur, 'Enter' schließt die Eingabe ab und berechnet das Ergebnis, 'Backspace' löscht das zuletzt eingegebene Zeichen}
 
 \subsection{Ausgabe}
 
@@ -73,56 +65,87 @@ EXPRESSION = OPERAND \{ OPERATOR OPERAND \} ;
 
 \section{High-Level Design Description}
 
-TODO In Abbildung X ist der Aufbau des Taschenrechners zu sehen. Der Taschenrechner besteht aus folgenden Modulen:
+\begin{figure}[!ht]
+\includegraphics[width=\textwidth]{Architektur.png}
+\centering
+\caption{Die Architektur des Taschenrechners}
+\label{fig:arch}
+\end{figure}
+
+In Abbildung \ref{fig:arch} ist der Aufbau des Taschenrechners zu sehen. Der Taschenrechner besteht aus folgenden Modulen:
+
+TODO Module soll der Parser in einer "`Schleife"' alle Teilberechnungen an die ALU weiterleiten und zB Zwischenergebnisse speichern? Die ALU könnte dann nur 2 Zahlen addieren/bla.
+Da in der History Zahlen als Character Strings abgelegt sind müssen diese für die ALU in Binärdarstellung umgewandelt werden - und Umgekehrt natürlich!
 
 %\subsection{Module}
 
-was gibts fuer module? vorschlag:
 \begin{itemize}
-\item VGA - ist gegeben.
-\item PS/2 - ist gegeben.
-\item RS232 - TODO. baudrate? kodierung? (8N1?)
-\item Historymodul - Verwaltung des dahinterliegenden Buffers
-\item Parser - wertet ein gegeben Buffer aus.
-\item Controlmodul - soll das Bindeglied zwischen allen Modulen sein, nimmt eingabe entgegen, legt berechnungen im buffer ab, ...?
-\item Modul für die Kommunikation zum PC? oder gleich im Historymodul implementieren? oder ins
-Controlmodul mit rein packen?
+\item VGA - Ansprechen des Monitors
+\item PS/2 - Empfangen von Keyboard-Eingaben
+\item RS232 - Senden und Empfangen von Nachrichten vom/zum PC TODO. baudrate? kodierung? (8N1?)
+\item Historymodul - Verwaltung des dahinterliegenden Buffers von vergangenen Berechnungen
+\item Displaycontroller - Veranlasst das VGA Modul, einen Teil der History am Monitor anzuzeigen
+\item Parser - wertet ein gegeben Buffer aus und liefert entweder einen Fehler zurück oder gibt die einzelnen Berechnungen von je zwei Zahlen (?) an die ALU weiter
+\item Converter - konvertiert Dezimalzahlen in Binärzahlen und umgekehrt TODO oder in Parser integrieren? Oder gibt's eine Library-Funktion dafür?
+\item ALU - führt die tatsächlichen Berechnungen durch
+\item Controlmodul - soll das Bindeglied zwischen allen Modulen sein, nimmt Eingabe von PS/2 Modul oder von der Board-Paripherie entgegen, legt Berechnungen im Buffer ab, ...?
+\item Modul für die Kommunikation zum PC - sendet eine vom PC eintreffende Bufferübermittlungsanforderung an den Controller weiter und übermittelt die History an den PC
 \end{itemize}
 
 %\subsection{Interfaces}
 
 \subsection{Externe Interfaces}
 
+\subsubsection{Physikalische Interfaces}
+
+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.
 
+\subsubsection{Logische Interfaces der Module}
+
+\paragraph{VGA}
 
-\subsection{Interfaces der Module}
+How to control the VGA component ?= schnittstelle + beschreibung des vga moduls?
 
-\subsubsection{VGA}
+\paragraph{PS/2}
 
-\subsubsection{PS/2}
+ebenso hier?
 
-\subsubsection{RS232}
+\paragraph{RS232}
 
-\subsubsection{History}
+\paragraph{History}
 
-\subsubsection{Parser}
+\paragraph{Parser}
 
-\subsubsection{Control}
+\paragraph{Control}
 
-\subsection{Verhalten der Interfaces}
+\subsubsection{Verhalten der Interfaces}
 
 welche tasten als input erlauben (haben numblock und normale ziffern unterschiedliche scancodes?)?
+
 wie werden ueberlaeufe behandelt?
+
 fehlerhafte eingaben?
+
 wie schaut die ausgabe aus?
+
 was ausgaben bei fehler?
+
 wie kann download oder upload einer history gestartet werden?
+
 wie kann auf die history zugegriffen werden?
+
 soll in der eingabe auch mit pfeiltasten (links,rechts) gescrolled werden koennen?
 
 
@@ -137,7 +160,9 @@ alle Module hier genauer beschreiben
 
 %TODO
 wie wollen wir das design implementieren?
+
 event sequence diagrams! UML?
+
 wie schauen interne strukturen aus? (speicher, logische bloecke, parallele prozesse, state machines)
 
 \subsection{VGA}