ports, direction yet missing
authorfabb <Administrator@.(none)>
Mon, 22 Mar 2010 19:17:27 +0000 (20:17 +0100)
committerfabb <Administrator@.(none)>
Mon, 22 Mar 2010 19:17:27 +0000 (20:17 +0100)
spec/Architektur.dia
spec/Architektur.png
spec/spec.tex

index a6376af90fa536a7130b959a0f65326507de9782..b78826ecf345d47bb34ed954c977037814efb2b0 100644 (file)
Binary files a/spec/Architektur.dia and b/spec/Architektur.dia differ
index a9f001d6ba9d6378095ccab96b2e1b8e5e874f0b..ff39fb8e23c65d894163cfe7d7b310386cfd8d69 100644 (file)
Binary files a/spec/Architektur.png and b/spec/Architektur.png differ
index 6a05cab36c3cb0bb38ee64bf0d03924aed250a51..cfc7fa1aa1afe3cb91491671fa952d51f6b33c4c 100644 (file)
@@ -85,7 +85,7 @@ In Abbildung \ref{fig:arch} ist der Aufbau des Taschenrechners zu sehen. Der Tas
 \item History - Verwaltung des dahinterliegenden Buffers von vergangenen Berechnungen und der aktuellen Eingabezeile, bei Aktualisierung der aktuellen Eingabezeile und bei Empfang eines Ergebnisses vom Parser Modul signalisiert es das an das Display Modul
 \item Parser - 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
 \item Bin/Dez-Converter - Konvertiert 10 CP850-codierte Dezimalziffern mit Vorzeichen in eine Binärzahl und umgekehrt %TODO oder in Parser integrieren? Oder gibt's eine Library-Funktion dafür?
-\item ALU - führt die tatsächlichen Berechnungen von Addition, Subtraktion, Multiplikation und Division durch
+\item ALU - Führt die tatsächlichen Berechnungen von Addition, Subtraktion, Multiplikation und Division durch
 \item Display - Liest einzelne Zeichen aus der History aus und leitet diese an das VGA Modul weiter, um sie in der entsprechenden Zeile anzeigen zu lassen
 \item 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
 \end{itemize}
@@ -143,22 +143,42 @@ Ersteres wuerde ich unter Logisches Interface verstehen.
 %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!
 
-TODO: zusätzlich brauchen wir überall noch ein Reset- und ein Clock-Pin.
-
 \paragraph{VGA}
 
 TODO: How to control the VGA component ?= schnittstelle + beschreibung des vga moduls?
 
+vorgegeben:
+
+allgemein: sys\_clk, sys\_res\_n
+
+zu den hardware pins: vga\_clk, vga\_res\_n, vsync\_n, hsync\_n, ? bits r, ? bits g, ? bits b
+
+zum modul display: 8 bit command, 32 bit command\_data, 1 bit free
+
 \paragraph{PS/2}
 
 ebenso hier?
 
+vorgegeben:
+
+allgemein: sys\_clk, sys\_res\_n
+
+zum modul scanner: 1 bit new\_data, 8 bit data
+
+zu den hardware pins: 1 bit ps2\_clk, 1 bit ps2\_data
+
 \paragraph{RS232}
 
 TODO
 
 %Senden und Empfangen von Nachrichten vom/zum PC über die serielle Schnittstelle
-Wir brauchen: externe Pins für die Schnittstelle (Data carrier detect, Receive data, Transmit data, Data terminal ready, Signal ground, Data set ready, Request to send, Clear to send, Ring indicator ?brauchen wir die alle?), zum modul pc-kommunikation: 8 Empfangsbits, 1 Received Flag, 8 Sendebits, 1 Sendflag
+Wir brauchen:
+
+allgemein: sys\_clk, sys\_res\_n
+
+externe Pins für die Schnittstelle (Data carrier detect, Receive data, Transmit data, Data terminal ready, Signal ground, Data set ready, Request to send, Clear to send, Ring indicator ?brauchen wir die alle?)
+
+zum modul pc-kommunikation: 8 Empfangsbits, 1 Received Flag, 8 Sendebits, 1 Sendflag
 
 \begin{table}%
 \begin{tabular}{lcr}
@@ -174,7 +194,11 @@ TODO
 
 %Empfängt die Scan-Codes vom PS/2 Modul und leitet nur für die Eingabezeile erlaubte Zeichen dekodiert in das CP850 Format an die History weiter, bei einem empfangenen Enter wird der Beginn der Berechnung an das Parser Modul signalisiert
 
-Wir brauchen: ein Pin zum externen Button, zum modul rs232: 8 Empfangsbits, 1 Received Flag, 8 Sendebits, 1 Sendflag, zum modul history: 5 bit zeile (2*14+1), 7 bit spalte (71 zeichen - 0 am ende notwendig?), 1 get bit, 1 done bit, 8 daten bits
+allgemein: sys\_clk, sys\_res\_n
+
+von modul ps/2: 8 bit data, 1 bit new\_data
+
+an modul history: 8 bit char, 1 bit take, 1 bit backspace, an modul parser: 1 bit do\_it
 
 \paragraph{History}
 
@@ -182,18 +206,76 @@ TODO
 
 %Verwaltung des dahinterliegenden Buffers von vergangenen Berechnungen und der aktuellen Eingabezeile, bei Aktualisierung der aktuellen Eingabezeile und bei Empfang eines Ergebnisses vom Parser Modul signalisiert es das an das Display Modul
 
+allgemein: sys\_clk, sys\_res\_n
+
+zum modul pc-kommunikation: 5 bit zeile (2*14+1), 7 bit spalte (71 zeichen - 0 am ende notwendig?), 1 get bit, 1 done bit, 8 daten bits
 
+vom modul scanner: 8 bit char, 1 bit take, 1 bit backspace
+
+an modul display: 1 bit new\_eingabe, 1 bit new\_result, 5 bit zeile (2*14+1), 7 bit spalte (71 zeichen - 0 am ende notwendig?), 1 get bit, 1 done bit, 8 daten bits
+
+an modul parser: 5 bit zeile (2*14+1), 7 bit spalte (71 zeichen - 0 am ende notwendig?), 1 get bit, 1 done bit, 8 daten bits, 8 bit write\_result, 1 bit first\_result\_char, 1 bit write\_char, ? 1 bit finnnnnished\_result (triggert fortschalten des ringpuffer pointers)
 
 \paragraph{Parser}
 
+TODO
+
+%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
+
+allgemein: sys\_clk, sys\_res\_n
+
+zu modul history: 5 bit zeile (2*14+1), 7 bit spalte (71 zeichen - 0 am ende notwendig?), 1 get bit, 1 done bit, 8 daten bits, 8 bit write\_result, 1 bit first\_result\_char, 1 bit write\_char, ? 1 bit finnnnnished\_result (triggert fortschalten des ringpuffer pointers)
+
+an modul bin/dez-converter: 11*8 bit char (vorzeichen + dezimalstellen; ok, das ist ein overkill...), 32 bit binärstellen, 1 bit do\_deztobin, 1 bit do\_bintodez, 1 bit bintodez\_done, 1 bit deztobin\_done (?)
+
+zu modul alu: 32 bit operator1, 32 bit operator2, 32 bit result, 1 bit do\_calc, 1 bit calc\_done
+
 \paragraph{Bin/Dez-Converter}
 
+TODO
+
+%Konvertiert 10 CP850-codierte Dezimalziffern mit Vorzeichen in eine Binärzahl und umgekehrt
+
+allgemein: sys\_clk, sys\_res\_n
+
+zum modul parser: 11*8 bit char (vorzeichen + dezimalstellen; ok, das ist ein overkill...), 32 bit binärstellen, 1 bit do\_deztobin, 1 bit do\_bintodez, 1 bit bintodez\_done, 1 bit deztobin\_done (?)
+
 \paragraph{ALU}
 
+TODO
+
+%Führt die tatsächlichen Berechnungen von Addition, Subtraktion, Multiplikation und Division durch
+
+allgemein: sys\_clk, sys\_res\_n
+
+zum parser: 32 bit operator1, 32 bit operator2, 32 bit result, 1 bit do\_calc, 1 bit calc\_done
+
 \paragraph{Display}
 
+TODO
+
+%Liest einzelne Zeichen aus der History aus und leitet diese an das VGA Modul weiter, um sie in der entsprechenden Zeile anzeigen zu lassen
+
+allgemein: sys\_clk, sys\_res\_n
+
+zum modul history: 1 bit new\_eingabe, 1 bit new\_result, 5 bit zeile (2*14+1), 7 bit spalte (71 zeichen - 0 am ende notwendig?), 1 get bit, 1 done bit, 8 daten bits
+
+zum modul vga: 8 bit command, 32 bit command\_data, 1 bit free
+
 \paragraph{PC-Kommunikation}
 
+TODO
+
+%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
+
+allgemein: sys\_clk, sys\_res\_n
+
+ein Pin zum externen Button
+
+zum modul rs232: 8 Empfangsbits, 1 Received Flag, 8 Sendebits, 1 Sendflag
+
+zum modul history: 5 bit zeile (2*14+1), 7 bit spalte (71 zeichen - 0 am ende notwendig?), 1 get bit, 1 done bit, 8 daten bits
+
 \subsubsection{Verhalten der Interfaces}
 
 welche tasten als input erlauben (haben numblock und normale ziffern unterschiedliche scancodes?)?