From 00b4c25bc4f96e2b99a1d8a7b845eced6dbe26cf Mon Sep 17 00:00:00 2001 From: Bernhard Urban Date: Fri, 26 Mar 2010 20:00:03 +0100 Subject: [PATCH] spec: dies und das --- spec/Architektur.dia | 392 ++++++++++++++++--------------------------- spec/Architektur.png | Bin 15932 -> 19371 bytes spec/TODO | 6 +- spec/sm/alu.pdf | Bin 10034 -> 10030 bytes spec/sm/alu.tex | 8 +- spec/sm/parser.pdf | Bin 14012 -> 14007 bytes spec/sm/parser.tex | 2 +- spec/sm/scanner.pdf | Bin 14024 -> 14159 bytes spec/sm/scanner.tex | 18 +- spec/spec.tex | 7 +- 10 files changed, 165 insertions(+), 268 deletions(-) diff --git a/spec/Architektur.dia b/spec/Architektur.dia index 9c0bd63..527a887 100644 --- a/spec/Architektur.dia +++ b/spec/Architektur.dia @@ -68,16 +68,16 @@ - + - + - + @@ -85,13 +85,13 @@ - + - + - + @@ -126,13 +126,13 @@ - + - + - + @@ -249,13 +249,13 @@ - + - + - + @@ -290,13 +290,13 @@ - + - + - + @@ -331,13 +331,13 @@ - + - + - + @@ -372,13 +372,13 @@ - + - + - + @@ -413,13 +413,13 @@ - + - + - + @@ -454,13 +454,13 @@ - + - + - + @@ -495,54 +495,13 @@ - + - + - - - - - - - - - - - - - - - - - - - #Bin/Dez-Converter# - - - - - - - - - - - - - - - - - - - - - - - + @@ -575,16 +534,16 @@ - + - + - + - - + + @@ -603,15 +562,15 @@ - + - + - + - + @@ -644,16 +603,16 @@ - + - + - + - - + + @@ -668,20 +627,20 @@ - + - + - + - + - - + + @@ -697,19 +656,19 @@ - + - + - + - + - - + + @@ -728,16 +687,16 @@ - + - + - + - - + + @@ -756,16 +715,16 @@ - + - + - + - - + + @@ -784,16 +743,16 @@ - + - + - + - - + + @@ -808,19 +767,19 @@ - + - + - + - + - + @@ -853,16 +812,16 @@ - + - + - + - - + + @@ -881,16 +840,16 @@ - + - + - + - - + + @@ -909,44 +868,16 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - - + + @@ -965,16 +896,16 @@ - + - + - + - - + + @@ -993,16 +924,16 @@ - + - + - + - - + + @@ -1018,19 +949,19 @@ - + - + - + - + - - + + @@ -1045,16 +976,16 @@ - - + + - + - + - + @@ -1068,7 +999,7 @@ - + @@ -1081,48 +1012,17 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - - + + @@ -1141,16 +1041,16 @@ - + - + - + - - + + @@ -1169,16 +1069,16 @@ - + - + - + - - + + @@ -1197,16 +1097,16 @@ - + - + - + - - + + @@ -1222,19 +1122,19 @@ - + - + - + - + - - + + @@ -1249,20 +1149,20 @@ - + - + - + - + - - + + @@ -1277,7 +1177,7 @@ - + diff --git a/spec/Architektur.png b/spec/Architektur.png index ff39fb8e23c65d894163cfe7d7b310386cfd8d69..c3e88a89e6f6aa9726fb67b2dd87286693890df4 100644 GIT binary patch literal 19371 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

|kn-8S7pYE@)=u`^VkT4Tq`Q`o^hq(Lu_wUc8 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 delta 2293 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 diff --git a/spec/sm/parser.tex b/spec/sm/parser.tex index 5b4806b..51d11c8 100644 --- a/spec/sm/parser.tex +++ b/spec/sm/parser.tex @@ -55,5 +55,5 @@ \ncarc[arcangle=0]{null}{calc} \ncarc[arcangle=0]{calc}{read}\ncput*[npos=.50]{int\_done$\uparrow$} -\ncarc[arcangle=0]{calc}{done}\ncput*[npos=.50]{aktop == DONE} +\ncarc[arcangle=0]{calc}{done}\ncput*[npos=.50]{aktop = DONE} \end{document} diff --git a/spec/sm/scanner.pdf b/spec/sm/scanner.pdf index 4e645b724a0609ff5fde7cd6631635c0d943676d..39b9f0505460a5373a55d8f1b025f7b7912102b9 100644 GIT binary patch delta 6484 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 L00>mnQUd%3tfr?Y delta 6390 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 V>uzlW5cu;3U;s8Yc?|`?{{UmVn@#`# diff --git a/spec/sm/scanner.tex b/spec/sm/scanner.tex index db92b56..0c21a11 100644 --- a/spec/sm/scanner.tex +++ b/spec/sm/scanner.tex @@ -8,16 +8,16 @@ \begin{psmatrix}[mnode=oval, colsep=2cm, rowsep=2cm] [mnode=R,name=res]{sys\_res\_n} & -[name=idle]{\shortstack{\textbf{idle}\\bs = 0\\take=0\\do\_it=0}} & -[name=take]{\shortstack{\textbf{\"ubernehmen}\\take = 1\\char = $b_0$}} \\ +[name=idle]{\shortstack{\textbf{idle}\\bs:=0;\\take:=0;\\do\_it:=0;}} & +[name=take]{\shortstack{\textbf{\"ubernehmen}\\take:=1;\\char:=$b_0$;}} \\ %% -[name=doit]{\shortstack{\textbf{enter}\\do\_it = 1}} & +[name=doit]{\shortstack{\textbf{enter}\\do\_it:=1;}} & & -[name=mod]{\shortstack{\textbf{mod}\\$b_0$ = data}} \\ +[name=mod]{\shortstack{\textbf{mod}\\$b_0$:=data;}} \\ %% & -[name=read]{\shortstack{\textbf{read}\\$b_0$ = data}} & -[name=bs]{\shortstack{\textbf{l\"oschen}\\backspace = 1}} \\ +[name=read]{\shortstack{\textbf{read}\\$b_0$:=data;}} & +[name=bs]{\shortstack{\textbf{l\"oschen}\\backspace:=1;}} \\ \end{psmatrix} \psset{arrows=->, shortput=nab} @@ -27,10 +27,10 @@ \ncarc[arcangle=25]{idle}{read}\ncput*[npos=.43]{new\_data$\uparrow$} \ncarc[arcangle=25]{read}{idle}\ncput*[npos=.43]{ung\"ultiges byte} -\ncarc[arcangle=-25]{read}{bs}\ncput*[npos=.50]{$b_0 == 0x0e$} -\ncarc[arcangle=25]{read}{doit}\ncput*[npos=.50]{$b_0 == 0x1c$} +\ncarc[arcangle=-25]{read}{bs}\ncput*[npos=.50]{$b_0 = 0x0e$} +\ncarc[arcangle=25]{read}{doit}\ncput*[npos=.50]{$b_0 = 0x1c$} -\ncarc[arcangle=0]{read}{mod}\ncput*[npos=.40]{$b_0 == 0xe0$} +\ncarc[arcangle=0]{read}{mod}\ncput*[npos=.40]{$b_0 = 0xe0$} \ncarc[arcangle=-40]{mod}{take}\ncput*[npos=.40]{g\"ultiges zeichen} \ncarc[arcangle=-25]{mod}{idle}\ncput*[npos=.53]{ung\"ultiges byte} diff --git a/spec/spec.tex b/spec/spec.tex index cc9125e..29bdfca 100644 --- a/spec/spec.tex +++ b/spec/spec.tex @@ -113,7 +113,7 @@ command\_data & in & 32 & std\_logic\_vector & Display & Daten f\"ur das Kommand free & out & 1 & std\_logic & Display & Signalisiert Bereitschaft \ZE \TEND - +\newpage \subsubsection{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 \THEAD @@ -132,7 +132,7 @@ command\_data & out & 32 & std\_logic\_vector & VGA & Daten f\"ur das Kommando \ free & in & 1 & std\_logic & VGA & Signalisiert Bereitschaft \ZE \TEND - +\newpage \subsubsection{RS232} %Senden und Empfangen von Nachrichten vom/zum PC über die serielle Schnittstelle \THEAD @@ -146,7 +146,7 @@ tx\_data & out & 8 & std\_logic\_vector & PC-Kommunikation & Datenfeld f\"ur das tx\_new & out & 1 & std\_logic & PC-Kommunikation & Signalisiert dass das anliegende Byte gesendet werden soll \ZE \TEND - +\newpage \subsubsection{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 \THEAD @@ -165,6 +165,7 @@ char & in & 8 & character & History & enth\"alt angeforderne Daten \ZE \TEND +\newpage \subsubsection{PS/2} \THEAD new\_data & out & 1 & std\_logic\_vector & Scanner & Signalisiert neuen Scancode \ZE -- 2.25.1