From 8ad73da1e5727d68e7df61486cc34aa6d5edb4a5 Mon Sep 17 00:00:00 2001 From: fabb Date: Fri, 19 Mar 2010 18:48:29 +0100 Subject: [PATCH] wok flow --- spec/Architektur.dia | Bin 3034 -> 3079 bytes spec/spec.tex | 24 ++++++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/spec/Architektur.dia b/spec/Architektur.dia index 17a0869ac5bf596a791eb065e6ff16d29ff55978..176168ffab3ca7db92c74398f11efe51e2db777c 100644 GIT binary patch delta 83 zcmV-Z0IdJo7l#0NMYC7}^)GybB(K)h%w`=gDnay?NEVF@I)NGJo^x|4->z!3?+n0C|2BLjV8( diff --git a/spec/spec.tex b/spec/spec.tex index 5ec2655..9b6bbf6 100644 --- a/spec/spec.tex +++ b/spec/spec.tex @@ -74,6 +74,30 @@ 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! -- 2.25.1