pstricks: kleines beispiel vom herrn perner und makefile spass von mir
[hwmod.git] / spec / spec.tex
index 5ec2655ca491ad203e063584abbdf58a55a14730..64a6a64a0c60ef6a328554e6a4f4ad3ea1ecc13d 100644 (file)
@@ -46,7 +46,7 @@ EXPRESSION = OPERAND \{ OPERATOR OPERAND \} ;
 
 \req{Dabei soll Punkt- vor Strichrechnung gelten}
 
-\req{Die Zahlen dürfen im Zahlenbereich eines signed long liegen ($-2^31$ bis $2^31-1$)}
+\req{Die Zahlen dürfen im Zahlenbereich eines signed long liegen ($-2^{31}$ bis $2^{31}-1$)}
 
 \req{Die Eingabe darf aus 70 Zeichen bestehen}
 
@@ -74,6 +74,31 @@ EXPRESSION = OPERAND \{ OPERATOR OPERAND \} ;
 
 In Abbildung \ref{fig:arch} ist der Aufbau des Taschenrechners zu sehen. Der Taschenrechner besteht aus folgenden Modulen:
 
+Bla:
+
+ps/2 schickt zeichen an controller, der nimmt nur gewünschte chars und schreibt die in die history
+in die editierbare ``eingabezeile''.
+
+dann bei einem "enter" sagt er dem parser dass der was hackeln soll
+
+der holt sich selbstständig den string aus der history und analysiert ihn mal - also ob es ein gültiger string ist
+
+dann brauchen wir schleifen, eine äußere für die strichrechnung und eine innere für die punktrechnung (k.a. wie das in vhdl geht)
+
+jedenfalls müssen bei z.b. a + b * c die b*c zuerst ausgerechnet werden
+
+diese einzelnen rechnungen - also z.b. b*c - schickt der parser an die alu die das ausrechnet und dann asynchron an den parser zurückschickt - das geht so lange weiter bis der ganze string abgearbeitet ist
+
+der parser muss bei den zwischenrechnungen die zwischenergebnisse im speicher behalten
+
+wenn er fertig ist liefert er das ergebnis an die history und benachrichtigt den controller dass er fertig ist
+
+achja, die zahlen zur/von der history muss der parser zum converter schicken - das geht leider nicht als zwischenstufe zwischen parser und history weil der parser sich einen erst zu analysierenden string von der history holt - es ist auch nicht sinnvoll zwischen alu und parser, weil zwischenergebnisse nicht neu umgewandelt werden müssen
+
+der controller verursacht dann den zeilenvorschub um 2 zeilen in der history (ringpuffer, index vorandrehen). eigentlich braucht der controller dem display modul nichts mitteilen, oder?
+
+es sollte vielleicht der controller das display modul veranlasen sich die daten aus der history zu holen (könnte auch die history)
+
 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!
 
@@ -170,6 +195,13 @@ wie schauen interne strukturen aus? (speicher, logische bloecke, parallele proze
 \subsection{PS/2}
 
 \subsection{RS232}
+%test, TODO
+\begin{figure}[!ht]
+\includegraphics[width=0.9\textwidth]{sm/rs232-rs.pdf}
+\centering
+\caption{Statemachine zum Empfangen auf der RS232 Schnittstelle (8N1)}
+\label{fig:rs232-rs}
+\end{figure}
 
 \subsection{History}