statemachine: scanner
authorBernhard Urban <lewurm@gmail.com>
Tue, 23 Mar 2010 20:34:47 +0000 (21:34 +0100)
committerBernhard Urban <lewurm@gmail.com>
Tue, 23 Mar 2010 20:34:47 +0000 (21:34 +0100)
spec/sm/scanner.pdf [new file with mode: 0644]
spec/sm/scanner.tex [new file with mode: 0644]
spec/spec.tex

diff --git a/spec/sm/scanner.pdf b/spec/sm/scanner.pdf
new file mode 100644 (file)
index 0000000..2662ad0
Binary files /dev/null and b/spec/sm/scanner.pdf differ
diff --git a/spec/sm/scanner.tex b/spec/sm/scanner.tex
new file mode 100644 (file)
index 0000000..ff4307b
--- /dev/null
@@ -0,0 +1,33 @@
+\documentclass{minimal}
+\pagestyle{empty}
+
+\usepackage{pstricks}
+\usepackage{pst-node}
+
+\begin{document}
+
+\begin{psmatrix}[mnode=circle, colsep=3cm, rowsep=2cm]
+[mnode=R,name=res]{sys\_res} &
+[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=read]{\shortstack{\textbf{read}\\$b_0$ = data}} &
+[name=bs]{\shortstack{\textbf{l\"oschen}\\backspace = 1}} \\
+\end{psmatrix}
+
+\psset{arrows=->, shortput=nab}
+
+\ncline[linestyle=dotted]{res}{idle}
+
+\ncarc[arcangle=35]{idle}{read}\ncput*[npos=.33]{new\_data$\uparrow$}
+\ncarc[arcangle=35]{read}{idle}\ncput*[npos=.33]{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=-20]{read}{take}\ncput*[npos=.40]{g\"ultiges zeichen}
+
+\ncarc[arcangle=-15]{bs}{idle}
+\ncarc[arcangle=25]{doit}{idle}\ncput*[npos=.50]{finnnnnished\_result$\uparrow$}
+\ncarc[arcangle=-25]{take}{idle}
+\end{document}
index b0226e90c90318179f7a8ebb44cfb134881ec988..d1cf16d4fa532884ef35dfbffd597c3dcc28a41e 100644 (file)
@@ -32,7 +32,7 @@ exportieren bzw. importieren.
 
 DIGIT = '0' \textbar '1' \textbar '2' \textbar '3' \textbar '4' \textbar '5' \textbar '6' \textbar '7' \textbar '8' \textbar '9' ;
 
-UNSIGNED = DIGIT { DIGIT } ;
+UNSIGNED = DIGIT \{ DIGIT \} ;
 
 OPERAND = ['-'] UNSIGNED ;
 
@@ -200,7 +200,7 @@ von modul ps/2: 8 bit data (in), 1 bit new\_data (in)
 
 an modul history: 8 bit char (out), 1 bit take (out), 1 bit backspace (out)
 
-an modul parser: 1 bit do\_it (out)
+an modul parser: 1 bit do\_it (out), 1 bit finnnnnished\_result
 
 \paragraph{History}
 
@@ -232,6 +232,9 @@ an modul bin/dez-converter: 11*8 bit char (vorzeichen + dezimalstellen; ok, das
 
 zu modul alu: 32 bit operator1 (out), 32 bit operator2 (out), 32 bit result (in), 1 bit do\_calc (out), 1 bit calc\_done (in)
 
+zu modul scanner: 1 bit finnnnnished\_result (out) (selbe signal wie an history modul. kann man das
+doppelt nehmen?)
+
 \paragraph{Bin/Dez-Converter}
 
 TODO
@@ -328,12 +331,40 @@ wie schauen interne strukturen aus? (speicher, logische bloecke, parallele proze
 \label{fig:rs232-rs}
 \end{figure}
 
+\subsection{Scanner}
+\begin{figure}[!ht]
+\includegraphics[width=0.9\textwidth]{sm/scanner.pdf}
+\centering
+\caption{Statemachine zum Scannen des Inputs der PS/2 Schnittstelle}
+\label{fig:rs232-rs}
+\end{figure}
+
+\begin{itemize}
+\item \textbf{idle}: Setz alle Steuersignale \emph{backspace}, \emph{take} und \emph{do\_it} low.
+\item \textbf{read}: Bei steigender Flanke auf \emph{new\_data} wird das anliegende Byte des
+PS/2-Modules \"ubernommen. Je nach Wert wird in den n\"achsten Zustand gewechselt.
+\item \textbf{enter}: Wurde die Entertaste gedr\"uckt wird der Parser getriggert (\emph{do\_it} ist
+einen Takt lang high). Der Scanner befindet sich so lange in diesem Zustand bis der Parser das
+Ergebnis berechnet hat.
+\item \textbf{l\"oschen}: Teilt dem History Modul mit das letzte Zeichen im Buffer zu l\"oschen
+(\emph{backspace} ist einen Takt lang high).
+\item \textbf{\"ubernehmen}: Wenn ein g\"ultiges Zeichen laut Requirements eingegeben wurde, wird
+jenes Zeichen an \emph{char} angelegt und \emph{take} wird einen Takt lang high gesetzt. Das History
+Modul wird dadurch getriggert das anliegende Zeichen in den Buffer zu \"ubernehmen.
+\end{itemize}
+
+
 \subsection{History}
 
 \subsection{Parser}
 
-\subsection{Control}
+\subsection{Bin/Dez-Converter}
+
+\subsection{ALU}
+
+\subsection{Display}
 
+\subsection{PC-Kommunikation}
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %LISTINGS