From: Bernhard Urban Date: Tue, 23 Mar 2010 20:34:47 +0000 (+0100) Subject: statemachine: scanner X-Git-Tag: spec-abgabe1~28 X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=hwmod.git;a=commitdiff_plain;h=616304691e79f2443dab19ee972e7e3fa8d1b22a statemachine: scanner --- diff --git a/spec/sm/scanner.pdf b/spec/sm/scanner.pdf new file mode 100644 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 index 0000000..ff4307b --- /dev/null +++ b/spec/sm/scanner.tex @@ -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} diff --git a/spec/spec.tex b/spec/spec.tex index b0226e9..d1cf16d 100644 --- a/spec/spec.tex +++ b/spec/spec.tex @@ -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