From: fabb Date: Fri, 19 Mar 2010 16:43:29 +0000 (+0100) Subject: architekturüberlegungen X-Git-Tag: spec-abgabe1~46 X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=hwmod.git;a=commitdiff_plain;h=bb51f6643c4460d65ec12e0e9f996767c12e2a3b architekturüberlegungen --- diff --git a/spec/Architektur.dia b/spec/Architektur.dia new file mode 100644 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 index 0000000..6cbe73e Binary files /dev/null and b/spec/Architektur.png differ diff --git a/spec/ProtocolHeader.sty b/spec/ProtocolHeader.sty index c7f307a..748fe2a 100644 --- a/spec/ProtocolHeader.sty +++ b/spec/ProtocolHeader.sty @@ -136,7 +136,6 @@ \newcommand{\req}[1]{ \noindent \addtocounter{reqcounter}{1} - %\\ \textbf{Req \arabic{reqcounter}} #1\\ \label{Req \arabic{reqcounter}} %this could be done better with a second argument, but that's tiresome to write in the text } \ No newline at end of file diff --git a/spec/spec.tex b/spec/spec.tex index 84fccdc..5ec2655 100644 --- a/spec/spec.tex +++ b/spec/spec.tex @@ -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}