\section{Einfache Hardwarekomponente}

\subsection{Multiplexer und Demultiplexer}

Multiplexer ermöglichen das durch Steuersignale gewählte Aufschalten eines Eingangssignal aus mehreren möglichen: 

\begin{center}
	\includegraphics[width = 0.25\textwidth]{images/Multiplexer.jpg}
\end{center}

Demultiplexer nehmen Daten aus einem einzigen Kanal und verteilen es auf einen beliebigen Ausgang. 

\begin{center}
	\includegraphics[width = 0.25\textwidth]{images/Demultiplexer.jpg}
\end{center}


\subsection{Halb- und Volladdierer}

Halbaddierer sind Rechenschaltungen, die zwei Dualzahlen addieren. Ausgänge: SUM (Summe), CO (Carry, Übertrag)

\begin{center}
	\includegraphics[width = 0.25\textwidth]{images/Halbaddierer.jpg}
\end{center}

Volladdierer haben einen zusätzlichen Eingang CI (Carry in), dieser ermöglicht das Bilden von Mehrbit-Addierer. 

\begin{center}
	\includegraphics[width = 0.25\textwidth]{images/Volladdierer.jpg}
\end{center}


\subsection{Mehrbit-Addierer (Paralleladdierer)}

Ein \emph{Paralleladdierer} in Normalform ist sehr aufwendig zu realisieren, da $\sim n \cdot 2^{2n - 1}$ Min-/Maxterme verknüpft werden müssen. \emph{Vorteil}: Laufzeit unabhängig von Stellenanzahl \medskip

Ein \emph{Ripple-Carry Addierer} ist eine Kaskadierung von Volladdierer. Einfach skalierbar, leidet aber am 'ripple' Effekt, d.h. Laufzeiten addieren sich auf. \medskip

Der \emph{Carry-Look-Ahead Addierer} kombiniert die Vorteil der beiden, d.h. man kaskadiert die Addierer, aber berechnet die Überträge parallel zur Summenbildung. (Berechnungsaufwand linear zur Stellenanzahl, aber Laufzeit konstant) 


\subsubsection{Ripple-Carry Addierer mit Subtraktion}

Die Subtraktion erfolgt durch Bildung des 2er-Komplement: 

\begin{center}
	\includegraphics[width = 0.32\textwidth]{images/AddSub.jpg}
\end{center}


\subsection{Hardware Multiplizierer}

Folgt dem Prinzip der Bitweisen Multiplikation. Besteht aus folgender Basiszelle: 

\begin{center}
	\includegraphics[width = 0.32\textwidth]{images/HardwareMult.jpg}
\end{center}

Die Multiplikation mit negativen Zahlen im 2er-Komplement ist eher schwierig. Eine Möglichkeit ist der iterative Booth Algorithmus. 
