From 5ba83939df7961d7fa22efe1825d82d3eef22fdc Mon Sep 17 00:00:00 2001 From: Sebastian Zug Date: Mon, 6 Nov 2023 13:10:58 +0100 Subject: [PATCH] Revise CMcC method --- 04_Schaltnetze.md | 91 +++++++++++++++++++++++++---------------------- 1 file changed, 49 insertions(+), 42 deletions(-) diff --git a/04_Schaltnetze.md b/04_Schaltnetze.md index f87a689..5abd75d 100755 --- a/04_Schaltnetze.md +++ b/04_Schaltnetze.md @@ -169,7 +169,7 @@ Wie muss also die Schaltung für diese Aufgabe umgesetzt werden? | 0 | 1 | 0 | 1 | 0 | | $x_3 + \overline{x_2} + x_1 + \overline{x_0}$ | | 0 | 1 | 1 | 0 | 1 | $\overline{x_3} \cdot x_2 \cdot x_1 \cdot \overline{x_0}$ | | | 0 | 1 | 1 | 1 | 1 | $\overline{x_3} \cdot x_2 \cdot x_1 \cdot x_0$ | | -| 1 | 0 | 0 | 0 | 1 | $x_3 \cdot \overline{x_2} \cdot \overline{x_1} \cdot \overline{x_0}$ | | +| 1 | 0 | 0 | 0 | 1 | $x_3 \cdot \overline{x_2} \cdot \overline{x_1} \cdot \overline{x_0}$ | 0, 8: - 0 0 0 ○ ○ (x̄2x̄1x̄0) | | 1 | 0 | 0 | 1 | 1 | $x_3 \cdot \overline{x_2} \cdot \overline{x_1} \cdot x_0$ | | | 1 | 0 | 1 | 0 | 1 | $x_3 \cdot \overline{x_2} \cdot x_1 \cdot \overline{x_0}$ | | | 1 | 0 | 1 | 1 | 1 | $x_3 \cdot \overline{x_2} \cdot x_1 \cdot x_0$ | | @@ -216,13 +216,7 @@ y =& \overline{x_3} x_2 x_1 \overline{x_0} + \overline{x_3} x_2 x_1 & \textcolor{red}{ x_3 \overline{x_2} x_1 \overline{x_0}}+ x_3 \overline{x_2} x_1 x_0 +\\ & x_3 x_2 \overline{x_1 }\,\overline{x_0} + x_3 x_2 \overline{x_1} x_0 + \\ & \textcolor{red}{ x_3 \overline{x_2} x_1 \overline{x_0}} + x_3 x_2 x_1 \overline{x_0} -\end{aligned} -$$ - -Damit ergibt sich die oben genannten Gleichung in der ersten Vereinfachungsstufe zu - -******************************************************************************** - +\end{aligned}0, 8: - 0 0 0 ○ ○ (x̄2x̄1x̄0) {{2-3}} $$ \begin{aligned} @@ -378,7 +372,7 @@ Die Minterme werden in tabellarischer Form entsprechend der Zahl der "1"en sorti | $m_x$ | $x_3$ | $x_2$ | $x_1$ | $x_0$ | OK | | --------------- | ---------- | ---------- | ---------- | ---------- | --- | | @blue($m_8$) | @blue($1$) | @blue($0$) | @blue($0$) | @blue($0$) |. | -| $m_6$ | $0$ | 1 | 1 | 0 |. | +| $m_6$ | $0$ | 1 | 1 |0, 8: - 0 0 0 ○ ○ (x̄2x̄1x̄0) 0 |. | | $m_9$ | 1 | 0 | 0 | 1 |. | | $m_{10}$ | 1 | 0 | 1 | 0 |. | | $m_{12}$ | 1 | 1 | 0 | 0 |. | @@ -517,8 +511,6 @@ Visualisierung der generierten Primimplikanten Offenbar werden die Minterme bis auf zwei Ausnahmen mehrfach durch die Primimplikaten abgedeckt. Hier ist eine weitere Minimierung notwendig. -### Primimplikatentafel und minimale Überdeckung - Die als zweite Quine'sche Tabelle bezeichnete Primimplikatentafel fasst die Primimplikanten und die zugehörigen Minterme zusammen. @@ -530,56 +522,53 @@ Die als zweite Quine'sche Tabelle bezeichnete Primimplikatentafel fasst die Prim | $P_4$ | | | | | | | | x | x | | $P_5$ | x | | | | | | | | x | -Zielstellung ist nun die Generierung einer minimalen Überlappung. -**Spaltendominanzprüfung** +### Lösung der minimalen Überdeckung -Die Spalten werden paarweise darauf verglichen, ob nicht eine Spalte existiert, in der die markierten Primterme eine Teilmenge der markierten Primterme der anderen Spalte sind. Ist dies der Fall, so kann die Spalte mit der Obermenge gestrichen werden, denn es müssen alle Konjunktionen erfasst werden und daher ist die Konjunktion mit der Obermenge durch Auswahl der Konjunktion mit der Teilmenge ebenfalls erfasst. +> Ziel: Die Minterme sollen nur noch in einer Zeile erscheinen. + + {{0-1}} +******************************************************************* -Beginnen wir mit $m_{13}$. Hier kann $m_{12}$ gestrichen werden, weil $m_{13}$ den Minterm $m_{12}$ vollständig dominiert. +__1. Intuitiver Ansatz__ + +Die Minterme $m_{13}$, $m_{11}$ und $m_{7}$ kommen nun in jeweils einem Primimplikanten vor. Folglich sind diese sogenannte essentielle Primimplikanten ($P_1, P_2, P_4$). | | $m_{14}$ | $m_{13}$ | $m_{12}$ | $m_{11}$ | $m_{10}$ | $m_{9}$ | $m_{8}$ | $m_{7}$ | $m_{6}$ | | ----- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | ------- | ------- | -| $P_1$ | | | | x | x | @blue(x) | @blue(x) | | | -| $P_2$ | | @gray(x) | @blue(x) | | | @blue(x) | @blue(x) | | | -| $P_3$ | x | | @blue(x) | | x | | @blue(x) | | | -| $P_4$ | | | | | | | | x | x | +| @blue($P_1$) | | | | @gray(x) | x | x | x | | | +| @blue($P_2$) | | @gray(x) | x | | | x | x | | | +| $P_3$ | x | | x | | x | | x | | | +| @blue($P_4$) | | | | | | | | @gray(x)| x | | $P_5$ | x | | | | | | | | x | - -| | $m_{14}$ | $m_{13}$ | $m_{11}$ | $m_{10}$ | $m_{9}$ | $m_{8}$ | $m_{7}$ | $m_{6}$ | -| ----- | -------- | -------- | -------- | -------- | -------- | -------- | ------- | ------- | -| $P_1$ | | | @gray(x) | x | @blue(x) | @blue(x) | | | -| $P_2$ | | @blue(x) | | | @blue(x) | @blue(x) | | | -| $P_3$ | x | | | x | | @blue(x) | | | -| $P_4$ | | | | | | | x | x | -| $P_5$ | x | | | | | | | x | + +| | $\overline{x}_1\,\overline{x}_0$ | $\overline{x}_1x_0$ | $x_1x_0$ | $x_1\overline{x}_0$ | +| -------------------------------- | -------------------------------- | ------------------- | ---------------- | ------------------- | +| $\overline{x}_3\,\overline{x}_2$ | 0 | 0 | 0 | 0 | +| $\overline{x}_3 x_2$ | 0 | 0 | $m_7$ ($P_4$) | $m_6$ ($P_4$, $P_5$) | +| $x_3 x_2$ | $m_{12}$ ($P_2$, $P_3$) | $m_{13}$ ($P_2$) | 0 | $m_{14}$ ($P_3$, $P_5$) | +| $x_3 \overline{x}_2$ | $m_{8}$ ($P_1$, $P_2$, $P_3$) | $m_{9}$ ($P_1$, $P_2$)| $m_{11}$ ($P_1$) | $m_{10}$ ($P_1$, $P_3$) | - -| | $m_{14}$ | $m_{13}$ | $m_{11}$ | $m_{7}$ | -| ----- | -------- | -------- | -------- | ------- | -| $P_1$ | | | x | | -| $P_2$ | | x | | | -| $P_3$ | x | | | | -| $P_4$ | | | | x | -| $P_5$ | x | | | | -**Zeilendominanzprüfung** +> Statement 1: $m_2$ ist in $P_2$ enthalten. Wenn $P_2$ essentiell ist, dann ist die Weiterführung der Spalte für $m_{13}$ nicht notwendig. Es ist automatisch abgedeckt. -Jetzt vergleicht man die Zeilen (Primterme) der Tabelle paarweise, ob nicht eine Zeile existiert, in denen die markierten Minterme eine Teilmenge der markierten Minterme der anderen Zeile sind. Ist dies der Fall, so kann der Primterm mit der Teilmenge gestrichen werden, denn man kann für jede Markierung des gestrichenen Primterms den anderen Primterm als Ersatz nehmen. Die Relation ist hier also genau umgekehrt wie bei der Spaltendominanz. +> Statement 2: $m_{11}$ ist nur in $P_1$ enthalten und schließt damit $m_{10}$, $m_{9}$ und $m_{8}$ ein. Die zwei letztgenannten werden aber auch schon durch $P_2$ abgedeckt. - +> Statement 3: $P_4$ deckt automatisch $m_6$ ab. + + | | $m_{14}$ | $m_{13}$ | $m_{11}$ | $m_{7}$ | | ----- | -------- | -------- | -------- | ------- | | $P_1$ | | | x | | | $P_2$ | | x | | | -| $P_3$ | @gray(x) | | | | +| $P_3$ | x | | | | | $P_4$ | | | | x | -| $P_5$ | @gray(x) | | | | +| $P_5$ | x | | | | -Keine dominanten Zeilen aber Dopplung eines Minterms - Welchen sollen wir entfernen? +$P_3$ und $P_5$ decken ein und den selben Minterm ab. Welcher sollte gewählt werden? $$ \begin{aligned} @@ -593,7 +582,25 @@ $$ > Ergebnis: Unsere relevanten Primimplikanten sind $y = P_1 + P_2 + P_3 + P_4 = \overline{x}_3 x_2 x_1 + x_3\,\overline{x}_2 + x_3 \overline{x}_1 + x_3 \overline{x}_0$. -> Für das Verfahren von Quine-McCluskey exisitieren webbasierte Lösungen [Link Uni Marburg](https://www.mathematik.uni-marburg.de/~thormae/lectures/ti1/code/qmc/), die zum Ausprobieren einladen. + +******************************************************************* + + {{1-2}} +******************************************************************* + +2. Formeller + +**Spaltendominanzprüfung** + +Die Spalten werden paarweise darauf verglichen, ob nicht eine Spalte existiert, in der die markierten Primterme eine Teilmenge der markierten Primterme der anderen Spalte sind. Ist dies der Fall, so kann die Spalte mit der Obermenge gestrichen werden, denn es müssen alle Konjunktionen erfasst werden und daher ist die Konjunktion mit der Obermenge durch Auswahl der Konjunktion mit der Teilmenge ebenfalls erfasst. + +**Zeilendominanzprüfung** + +Man vergleicht die Zeilen (Primterme) der Tabelle paarweise, ob nicht eine Zeile existiert, in denen die markierten Minterme eine Teilmenge der markierten Minterme der anderen Zeile sind. Ist dies der Fall, so kann der Primterm mit der Teilmenge gestrichen werden, denn man kann für jede Markierung des gestrichenen Primterms den anderen Primterm als Ersatz nehmen. Die Relation ist hier also genau umgekehrt wie bei der Spaltendominanz. + +> Für das Verfahren von Quine-McCluskey exisitieren webbasierte Lösungen [Link Uni Marburg](https://www.mathematik.uni-marburg.de/~thormae/lectures/ti1/code/qmc/), die zum Ausprobieren einladen. Hier ist aber das Vorgehen etwas anders - die final identifizierten essentiellen Primimplikanten werden extrahiert. + +******************************************************************* ## Schaltungssynthese