\section{Grundlagen der Latches}

\subsection{Rückkopplungsprinzip}

In den letzten paar Kapitel haben wir hauptsächlich kombinatorische Schaltungen untersucht. Kombinatorische Schaltungen nehmen mehrere Eingänge und kombinieren sie durch logische Bauelemente zu einem Ausgang. Im Gegensatz zu kombinatorische Schaltungen können sequentielle Schaltungen ihren Ausgang als Eingang wiederverwenden. Dieser wird auch Rückkopplung genannt.

\includegraphics[width=\linewidth]{fig/Fig_10.png} \cite{Luisier2024}

Dieses Prinzip der Rückkopplung ist eine essenzielle Basis für Bauelemente, deren Aufgabe es ist Informationen zu speichern. Diese fungieren meistens als Kippschaltungen (Latches). Wir unterscheiden zwischen zwei Verschiedene Latches.

\begin{enumerate}
	\item SR-Latch (Set/Reset Latch)
	\item D-Latch (Data Latch)
\end{enumerate}

\dfn{SR-Latch}{
	Der SR-Latch ist ein Kippschalter, welcher 2 Eingänge hat und 2 Ausgänge, wobei einer der Ausgänge die Inversion des anderen ist. Eines der Eingänge setzt den Zustand des Ausgangs auf 1 während der andere Eingang den Ausgang auf 0 setzt (zurücksetzt). Werden beide Eingänge nicht beschaltet, so bleiben die Eingänge in ihren vorherigen Zustand.

	\begin{center}
		\begin{tikzpicture}[circuit logic IEC]
			\node[nor gate] (nor1) at (0,0) {};
			\node[nor gate] (nor2) at (0,-2) {};
			\path[draw] (nor1.input 1) --++(left:10mm) node[point, label=180:S] {};
			\path[draw] (nor2.input 2) --++(left:10mm) node[point, label=180:R] {};
			\path[draw] (nor1.input 2) --++(left:5mm) --++(down:5mm);
			\path[draw] (nor2.input 1) --++(left:5mm) --++(up:5mm);
			\path[draw] (nor1.output) --++(right:10mm) --++(1,-2) --++(right:10mm) node[point, label=0:$\bar{\text{Q}}$] {};
			\path[draw] (nor2.output) --++(right:10mm) --++(1,2) --++(right:10mm) node[point, label=0:$\text{Q}$] {};
			\path[draw] (nor1.output) --++(right:5mm) --++(down:5mm) --++ (-1.75,-0.85);
			\path[draw] (nor2.output) --++(right:5mm) --++(up:5mm) --++ (-1.75,0.85);
		\end{tikzpicture}
	\end{center}

	\begin{minipage}{0.5\linewidth}
		\begin{center}
			\begin{circuitikz}[european]
				\tikzset{flipflop srlatch/.style={flipflop,
							flipflop def={t1=S, t3=R, t6=Q, t4=$\bar{\text{Q}}$, n4=1}
						}}
				\node[flipflop srlatch]{};
			\end{circuitikz}
		\end{center}
	\end{minipage}
	\begin{minipage}{0.5\linewidth}
		\begin{tabular}{| c | c | c | c |}
			S & R & $\text{Q}_{n+1}$ & $\bar{\text{Q}}_{n+1}$ \\
			\hline
			0 & 0 & $\text{Q}_n$     & $\bar{\text{Q}}_n$     \\
			0 & 1 & 0                & 1                      \\
			1 & 0 & 1                & 0                      \\
			1 & 1 & X                & X                      \\
		\end{tabular}
	\end{minipage}

	\nt{
		Bei einem SR-Latch dürfen die Eingänge nicht gleichzeitig beschaltet werden, da dies zu einem Fehler führt.
	}
}

SR-Latches können auch taktgesteuert sein. Dies bedeutet, dass der Ausgang nur verändert wird, sobald der Takteingang beschaltet ist.

\begin{minipage}{0.5\linewidth}
	\begin{center}
		\begin{circuitikz}[european]
			\tikzset{flipflop srlatch/.style={flipflop,
						flipflop def={t1=S, t3=R, t6=Q, t4=$\bar{\text{Q}}$, n4=1}
					}}
			\path[draw] node[flipflop srlatch](srlatch){}
			(srlatch.pin 1)--++(left:5mm)
			node[and port](and1){}
			(and1.out)
			(srlatch.pin 3)--++(left:5mm)
			node[and port](and2){}
			(and2.out);
			\path[draw] (and1.in 1) --++(left:10mm) node[point, label=180:S] {};
			\path[draw] (and2.in 2) --++(left:10mm) node[point, label=180:R] {};
			\path[draw] (and2.in 1) --++(up:6mm)--++(left:10mm) node[point, label=180:T] {};
			\path[draw] (and1.in 2) --++(down:6mm);
		\end{circuitikz}
	\end{center}
\end{minipage}
\begin{minipage}{0.5\linewidth}
	\begin{center}
		\begin{circuitikz}[european]
			\tikzset{flipflop srlatch/.style={flipflop,
						flipflop def={t1=S, t2=T, t3=R, t6=Q, t4=$\bar{\text{Q}}$, n4=1}
					}}
			\node[flipflop srlatch]{};
		\end{circuitikz}
	\end{center}
\end{minipage}


\subsection{D-Latch (Data-Latch)}

\dfn{D-Latch}{
	Der D-Latch ist ein Kippschalter, welcher 1 Eingang hat und 2 Ausgänge. Der Eingang ist in Vergleich zum SR-Latch allein zuständig für das Setzen und Rücksetzen des Ausgangs bzw. des invertierten Ausgangs. Wie beim SR-Latch können D-Latches auch Taktgesteuert sein.


}

Taktgesteuerte Latches haben jedoch einen Nachteil. Sie sind sehr empfindlich zu Störungen. Deswegen eignet es sich eher, Flip-Flops zu verwenden, welche Taktflankengesteuert sind.
