From 4782b4c702bd12b121aaf7375109836148b8377b Mon Sep 17 00:00:00 2001 From: Roger Wolf <roger.wolf@kit.edu> Date: Mon, 4 Nov 2024 13:56:39 +0100 Subject: [PATCH] adding new file --- Schaltlogik/doc/Hinweise-Zaehler.md | 107 ++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 Schaltlogik/doc/Hinweise-Zaehler.md diff --git a/Schaltlogik/doc/Hinweise-Zaehler.md b/Schaltlogik/doc/Hinweise-Zaehler.md new file mode 100644 index 0000000..250d51e --- /dev/null +++ b/Schaltlogik/doc/Hinweise-Zaehler.md @@ -0,0 +1,107 @@ +# Hinweise für den Versuch Schaltlogik + +## Binärer 4-Bit-Zähler + +Mit 4 Bit lassen sich die Zahlen 0 bis 15, wie im folgenden gezeigt, binär darstellen: +$$ +\begin{equation*} +\begin{split} +\begin{array}{c|cccc} + & 2^{3} & 2^{2} & 2^{1} & 2^{0} \\ +\text{Clock Zyklus} & \mathrm{Q_{3}} & \mathrm{Q_{2}} & \mathrm{Q_{1}} & \mathrm{Q_{0}} \\ +\hline +0 & 0 & 0 & 0 & 0\\ +1 & 0 & 0 & 0 & 1\\ +2 & 0 & 0 & 1 & 0\\ +3 & 0 & 0 & 1 & 1\\ +4 & 0 & 1 & 0 & 0\\ +5 & 0 & 1 & 0 & 1\\ +6 & 0 & 1 & 1 & 0\\ +7 & 0 & 1 & 1 & 1\\ +8 & 1 & 0 & 0 & 0\\ +9 & 1 & 0 & 0 & 1\\ +10 & 1 & 0 & 1 & 0\\ +11 & 1 & 0 & 1 & 1\\ +12 & 1 & 1 & 0 & 0\\ +13 & 1 & 1 & 0 & 1\\ +14 & 1 & 1 & 1 & 0\\ +15 & 1 & 1 & 1 & 1\\ +\end{array} +\end{split} +\end{equation*} +$$ +Mit Hilfe geeignet hintereinander geschalteter JK-MS-FFs lassen sich **elektronische binäre Zähler** erzeugen, wie in den folgenden Abschnitten gezeigt. + +### $\mathrm{\overline{CLR}}$-Leitung + +Für die folgenden Schaltungen haben wir eine weitere $\mathrm{\overline{CLR}}$-Leitung zur Grundschaltung des JK-MS-FF zugefügt, wie in **Abbildung 1** gezeigt: + +--- + +<img src="../figures/JK-MS-FF-mit-clear.png" width="1000" style="zoom:100%;" /> + +**Abbildung 1**: (Realisierung eines JK-MS-FF mit $\mathrm{\overline{CLR}}$-Leitung) + +--- + +Das $\mathrm{\overline{CLR}}$-Signal ist mit den unteren NAND-Gattern zur Schaltung der RS-FFs im Bild verbunden, die den $\mathrm{\overline{Q}}$-Ausgang kontrollieren. Für $\mathrm{\overline{CLR}}=1$ (d.h. wenn die Leitung offen ist) agiert das JK-MS-FF, wie in der originalen Schaltung. Wird CLR von außen auf 1 gesetzt, dann ist $\mathrm{\overline{CLR}}=0$. Da die AND-Bedingung in diesem Fall nie erfüllt werden kann wird der Ausgang der NAND-Gatter damit automatisch auf 1 gesetzt. Damit lässt sich der Zähler von Hand auf die Zahl 0 zurücksetzen (siehe dritte Zeile von unten in der Funktionstabelle zum **Jack-Kilby-Flipflop [hier](https://gitlab.kit.edu/kit/etp-lehre/p1-praktikum/students/-/blob/main/Schaltlogik/doc/Hinweise-Speicher.md)**). + +### 4-Bit-Asynchronzähler + +Die Realisierung eines 4-Bit-Asynchronzählers ist in **Abbildung 2** gezeigt: + +--- + +<img src="../figures/Zaehler-asynchron.png" width="1000" style="zoom:100%;" /> + +**Abbildung 2**: (Realisierung eines 4-Bit Asynchronzählers mit Hilfe von vier JK-MS-FFs. Bei der $\mathrm{\overline{CLR}}$-Leitung handelt es sich um eine Erweiterung der originalen Schaltung des JK-MS-FF, wie in **Abbildung 1** gezeigt und im **Abschnitt $\mathrm{\overline{CLR}}$-Leitung** diskutiert) + +--- + +Für diese Schaltung werden vier JK-MS-FFs mit invertiertem Takteingang hintereinander geschaltet. Die Eingänge J und K aller Flipflops sind offen und damit auf 1 gesetzt, jedes Flipflop $i$ befindet sich also im **Toggle-Zustand**, in dem $\mathrm{Q}_{i}$ mit jedem Taktzyklus zwischen 0 und 1 wechselt. $\mathrm{\overline{Q}}_{i}$ wird nicht ausgelesen. $\mathrm{Q}_{i}$ setzt das $i$-te Bit und wird gleichzeitig als $\mathrm{C}_{i+1}$ auf den Takteingang des nächsten Flipflops weitergegeben. Beim nächsten Taktzyklus springt $\mathrm{Q}_{i+1}$ auf 1 und $\mathrm{Q}_{i}$ auf 0. Dieses Verhalten setzt sich fort, bis alle Bits auf 1 gesetzt sind. + +Da jedes JK-MS-FF zweiflankengesteuert ist, werden an jedem Flopflop zwei Änderungen des Takts benötigt um eine Änderung des Ausgangs herbeizuführen. Es werden also am $i$-ten FF zwei negative Flanken von $\mathrm{C}_{i}$ benötigt um in den Takteingang $\mathrm{C}_{i+1}$ des $i+1$​-ten FFs eine negative Flanke einzugeben. Hierdurch halbiert sich nach jedem FF der Takt, wie ist in **Abbildung 3** gezeigt: + +--- + +<img src="../figures/Ablaufdiagramm-Zaehler.png" width="1000" style="zoom:100%;" /> + +**Abbildung 2**: (Ablaufdiagramm des 4-Bit Asynchronzählers. $\mathrm{\overline{C}}$ ist der von außen vorgegebene Takt. Alle weiteren FFs werden durch den Ausgang des vorangehenden FFs getaktet) + +--- + +Hierbei handelt es sich um die einfachste Art einen digitalen binären Zähler zu realisieren. Da jede Stufe mit einem anderen Takt arbeitet bezeichnet man diese Art von Zähler als **asynchron**. + +Da sich der Takt mit jeder Stufe jedoch nicht nur halbiert, sondern sich noch zusätzlich die endliche Laufzeit durch ein JK-MS-FF hinzu addiert, verschiebt sich der Takt dieser Schaltung mit jeder weiteren Stufe und wird damit immer ungenauer. Um einen präzise getakteten Zähler mit sehr vielen Stufen zu bauen ist dieses Verfahren daher nicht geeignet. + +### 4-Bit-Synchronzähler + +Die Realisierung eines 4-Bit-Synchronzählers ist in **Abbildung 4** gezeigt: + +--- + +<img src="../figures/Zaehler-synchron.png" width="1000" style="zoom:100%;" /> + +**Abbildung 4**: (Realisierung eines 4-Bit Synchronzählers) + +--- + +Die J und K Leitungen sind in dieser Schaltung nicht mehr offen sondern direkt mit den Ausgängen $\mathrm{Q}_{i}$ der vorangehenden FFs verbunden, sie befinden sich daher, wie im Fall des Asynchronzählers, im Toggle-Zustand. Der Takt wird synchron von $\mathrm{\overline{C}}$ vorgegeben. Um sicherzustellen, dass jede weitere Stufe ihren Ausgangszustand nur mit der halben Frequenz der vorangehenden Stufe ändert ist der Ausgang von Stufe $i$ jeweils mit dem Ausgang von Stufe $i+1$ über ein AND-Gatter verknüpft. Jede Stufe ändert ihren Zustand also erst, wenn die vorangehende Stufe Ihren Zustand zuvor geändert hat. + +### Check + +- Sie sollten das JK-MS-FF anhand der Schaltung aus **Abbildung 1** um eine $\mathrm{\overline{CLR}}$-Leitung erweitern können und anhand der Schaltung erklären können, wie sich die $\mathrm{\overline{CLR}}$-Leitung auswirkt. +- Sie sollten die Funktionsweise des 4-Bit Asynchronzählers erklären können. +- Sie sollten erklären können, in welchen Taktzyklen jedes Bit des 4-Bit-Asynchronzählers seinen Ausgangszustand ändert. +- Sie sollten den 4-Bit-Asynchronzähler anhand der Schaltung aus **Abbildung 4** auf den 4-Bit-Synchronzähler erweitern können und die Vorteile des Synchron- gegenüber dem Asynchronzähler kennen. + +### Frage: + +- Was passiert, wenn Sie beim Asynchronzähler die Zahl 15 erreicht haben? +- Was passiert, wenn Sie beim Synchronzähler die Zahl 15 erreicht haben? +- Wieviele Takte müssen Sie warten, denn Sie die $\mathrm{\overline{CLR}}$-Leitung auf 0 setzen? + +# Navigation + +[Main](https://gitlab.kit.edu/kit/etp-lehre/p1-praktikum/students/-/tree/main/Schaltlogik) + -- GitLab