\section{Zähler}

\subsection{Asynchronzähler}

In Kapitel \ref{sec:ffcirc} haben wir gelernt, dass man T-Flipfops verketten kann, um $n$-Bit Dualzähler zu erstellen. Das Problem mit diesen sogenannten Asynchronzähler ist die Zeitverzögerung der T-Flipflops. Je mehr Bits der Dualzähler hat, desto mehr T-Flipflops haben wir und desto länger braucht der letzte T-Flipflop zum Schalten für den MSB. Deshalb müssen bei Asynchronzähler die maximale Taktfrequenz des Taktsignals berücksichtigt werden. Dies limitiert die Geschwindigkeit des Dualzählers.

\subsection{Modulo-$n$ (mod-$n$) Zähler}

In manchen Fällen möchte man nicht das volle Pottential von Asynchronzähler verwenden. Man möchte nur bis zu einer bestimmten Dualzahl hochzählen. In diesem Fall kommen Modulo-$n$ Zähler ins Spiel. Wie die $n$-Bit Dualzähler bestehen Modulo-$n$ Zähler aus T-Flipfops mit dem Unterschied, dass die T-Flipflops einen Reset Eingang haben. Die Ausgänge der T-Flipflops sind mit einem AND Gatter verbunden. Sobald die Zahl $n+1$ am Ausgang liegt, werden die Reset-Eingänge von den Flipflops beschaltet und der Zähler fängt wieder bei 0 an. Soll der Zähler bei einer anderen Zahl anfangen zu zählen, so muss bei den Flipflops mit einem Set-Eingang gearbeitet werden.

\begin{minipage}{0.15\linewidth}
	\includegraphics[width=\linewidth]{fig/Fig_13.png} \cite{Luisier2024}
\end{minipage}
\begin{minipage}{0.5\linewidth}
	\begin{center}
		\begin{circuitikz}[european]
			\draw (0,0) node[flipflop T, dot on notQ, add async SR](tff1){}
			(tff1.pin 3) --++(left:10mm) node[point, label=180:CLK] {}
			(tff1.pin 6) --++(right:10mm) --++(down:17mm) --++(right:5mm)
			node[flipflop T, dot on notQ, anchor=pin 3, add async SR](tff2){}
			(tff2.pin 6) --++(right:10mm) --++(down:17mm) --++(right:5mm)
			node[flipflop T, dot on notQ, anchor=pin 3, add async SR](tff3){}
			(tff3.pin 6) --++(right:5mm) --++(up:20mm) node[point, label=90:$\text{Q}_{III}$] {}
			(tff3.pin 6) --++(right:5mm) --++(up:5mm) --++(right:5mm)
			node[and port, number inputs=3, anchor=in 3](and){}
			node [notcirc, left] at (and.bin 1) {}
			(and.in 1) --++(left:80mm)
			(and.in 2) --++(left:42.5mm)
			(and.out) --++(down:35mm) --++(left:115.5mm)
			(tff1.down) --++(down:4mm)
			(tff2.down) --++(down:4mm)
			(tff3.down) --++(down:4mm);
			\path[draw] (tff1.pin 6) --++(right:5mm) --++(up:20mm) node[point, label=90:$\text{Q}_I$] {};
			\path[draw] (tff2.pin 6) --++(right:5mm) --++(up:20mm) node[point, label=90:$\text{Q}_{II}$] {};
		\end{circuitikz}
	\end{center}
\end{minipage}

\subsection{Synchronzähler}

Beim Asynchronzähler ist das Taktsignal der Flipflops immer vom vorherigen Ausgang des Flipflops abhängig (ausser beim ersten Flipflop). Im Gegensatz zu dem haben die Flipflops von Synchronzähler das gleiche Taktsignal und schalten gleichzeitig. Synchronzähler werden meistens als Medwedjew-Automaten implementiert.

\begin{minipage}{0.5\linewidth}
	\includegraphics[width=\linewidth]{fig/Fig_13.png} \cite{Luisier2024}
\end{minipage}
\begin{minipage}{0.5\linewidth}
	\includegraphics[width=\linewidth]{fig/Fig_14.png} \cite{Luisier2024}
\end{minipage}

\nt{
	Rückwärtszähler können auch durch Medwedjew-Automaten realisiert werden. Es muss zusätlich ein weiterer Eingang hinzugefügt werden, welcher die Zählrichtung bestimmt.

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

\nt{
	In Kapitel \ref{sec:ffcirc} haben wir gesehen, dass T-Flipflops als Freqenzteiler fungieren können. Dies kann auch mit einem Medwedjew-Automaten und ein AND Gatter realisiert werden. Das AND Gatter ist mit einem T-Flipflop verbunden, welcher beschaltet wird, sobald die Zahl erreicht wird.

	\includegraphics[width=\textwidth]{fig/Fig_16.png} \cite{Luisier2024}
}

