--- /dev/null
+\documentclass{minimal}
+\pagestyle{empty}
+
+\usepackage{pstricks}
+\usepackage{pst-node}
+
+\begin{document}
+
+\begin{psmatrix}[mnode=oval, colsep=3cm, rowsep=3cm]
+[name=add]{\shortstack{\textbf{ADD}}} & &
+[name=sub]{\shortstack{\textbf{SUB}}} \\
+%
+[mnode=R,name=res]{sys\_res\_n} &
+[name=idle]{\shortstack{\textbf{idle}}}\\
+%
+[name=mul]{\shortstack{\textbf{MUL}}} & &
+[name=div]{\shortstack{\textbf{DIV}}} \\
+\end{psmatrix}
+
+\psset{arrows=->, shortput=nab}
+
+\ncline[linestyle=dotted]{res}{idle}
+
+\ncarc[arcangle=20]{idle}{add}\ncput*[npos=.50]{\shortstack{do\_calc $\uparrow$\\opc == ADD}}
+\ncarc[arcangle=20]{add}{idle}\ncput*[npos=.50]
+
+\ncarc[arcangle=20]{idle}{sub}\ncput*[npos=.50]{\shortstack{do\_calc $\uparrow$\\opc == SUB}}
+\ncarc[arcangle=20]{sub}{idle}
+
+\ncarc[arcangle=20]{idle}{mul}\ncput*[npos=.50]{\shortstack{do\_calc $\uparrow$\\opc == MUL}}
+\ncarc[arcangle=20]{mul}{idle}
+
+\ncarc[arcangle=20]{idle}{div}\ncput*[npos=.50]{\shortstack{do\_calc $\uparrow$\\opc == DIV}}
+\ncarc[arcangle=20]{div}{idle}
+\end{document}
\subsection{ALU}
-opcodes: NOP, ADD, MUL, DIV, DONE (als enum)
+\begin{figure}[!ht]
+\includegraphics[width=0.9\textwidth]{sm/alu.pdf}
+\centering
+\caption{Statemachine der ALU}
+\label{fig:alu}
+\end{figure}
+%TODO: eventuell zweierkomplement statt SUB?
+Folgende Opcodes werden von uns als enum definiert:
+\begin{quote}
+NOP, SUB, ADD, MUL, DIV, DONE
+\end{quote}
+wobei NOP und DONE von der ALU nicht bearbeitet werden sollen.
+
+In jedem State wird die entsprechende Berechnungsart durchgef\"uhrt und danach der Abschluss der
+Berechnung mit \emph{calc\_done} signalisiert. Wichtig zu beachten ist dabei, dass sich die
+Rechenoperationen in der Ausf\"uhrungszeit unterscheiden k\"onnen.
+
\subsection{History}
Dieses Modul stellt die zentrale Speicherstelle f\"ur die verschiedenen Module da.