Grundlagen der Informatik Grundlagen der Digitaltechnik. Minimierung digitaler Schaltfunktionen Prof. Dr.-Ing. Jürgen Teich Dr.-Ing. Christian Haubelt Lehrstuhl für Hardware-Software Software-Co-Design Grundlagen der Digitaltechnik
Minimierung (Otimierung) Aus den schaltalgebraischen Ausdrücken ist ersichtlich, dass der Beschreibungsaufwand sinkt, je weniger Terme vorhanden sind bzw. je mehr Literale aus den Termen entfallen Bei der schaltungstechnischen Realisierung zeigt sich ebenfalls, dass entsrechende Aufwendungen für logische Gatter von den Termen und den verwendeten Literalen abhängen Technische Informatik I
Minimierung (Otimierung) Bei der DNF (KNF) benötigt man für jede Einsstelle (Nullstelle) einen Minterm (Materm) -> durch gezieltes Weglassen von Literalen in einem Minterm (Materm) kann dieser Term mehrere Einsstellen (Nullstellen) reräsentieren -> Anzahl der benötigten Terme und Literale wird reduziert -> Minimierung von Schaltfunktionen! Technische Informatik I
Minimierung Beisiele f ( = {(,0,0, )},,, ) & & & E = E = f (,,, ) = & & {(,0,0,),(,0,, )},,, ) & E = E = f ( = E = {(0,0,0, ),(0,0,, ),(,0,0, ),(,0,, )} E = Also: die Reduzierung von Literalen in einem Term hat auch die Reduzierung der Anzahl von Termen zur Folge Gesucht: Terme mit minimaler Anzahl von Literalen, die trotzdem nur Einsstellen (Nullstellen) der zu beschreibenden Funktion erfassen, werden Primterme genannt Technische Informatik I
Minimierung Primterme und Eins- bzw. Nullstellenüberdeckung Einsstellen (Nullstellen) verschiedener Primterme können überlaen (kosten)günstigste Auswahl von Primtermen gesucht, die alle Einsstellen (Nullstellen) der Funktion überdecken Überdeckungsroblem! das Gesamtroblem nennt man das Minimierungsroblem Bewertungskriterium zur Bewertung unterschiedlicher Lösungen des Minimierungsroblems wird die Summe der Anzahl von Literalen aller Primterme zuzüglich der Zahl der verwendeten Terme verwendet Technische Informatik I 5
Minimierung Beisiel: ( & & & ) ( & & ) ( & ) y = 5 L ( y) = + + + = Gesucht: Auswahl von Primtermen mit L(y) minimal Technische Informatik I 6
Minimierung am Symmetriediagramm Die Minimierung mit Symmetriediagramm stellt eine grahische Methode dar -> Ausnutzung der Symmetrierelationen Zusammenfassung von Belegungen zu maimalen Blöcken 0 0 0 0 0 0 0 - - 0 0 0 5 7 7 5 6 6 -> Finden aller Primblöcke (charakteristische Terme also Primterme) -> Überdeckung aller Einsstellen (bzw. Nullstellen) Technische Informatik I 7
Minimierung am Symmetriediagramm - Finden von Primblöcken (Primtermen) in Symmetriediagrammen - Sukzessive Bildung von Blöcken aus Einsstellen (Nullstellen) und Freistellen durch Siegelung von kleineren Blöcken (einzelne Einsstellen sind kleinste Blöcke) an allen möglichen Symmetrielinien Maimal zusammengefasste Blöcke von Einsstellen sind Primeinsblöcke, wenn keine Siegelung mehr möglich Technische Informatik I 8
Technische Informatik I 9
Minimierung am Symmetriediagramm Beisiel (): Gegeben: y = f (,,, ) durch die Angabe der Eins- und Nullstellen im Symmetriediagramm Gesucht: Kürzester algebraischer Ausdruck -> Disjunktive Minimalform (DMF) 0 Primterme zur Bildung einer DMF sezifizieren Primeinsblöcke -> werden Primimlikanten genannt (Primimlikate für Konjunktive Minimalform KMF) Die farbig dargestellten Primimlikanten überdecken Eins- und Freistellen 0 0 0 0 0 0 0-5 - 0 0 7 7 5 6 6 Technische Informatik I 0
Minimierung am Symmetriediagramm Beisiel (): Als Primimlikanten erhält man: w = w = w = w = w 5 = Vorgehensweise: -> Auswahl derjenigen Primimlikanten, die allein eine Einsstelle überdecken (diese müssen genommen werden) -> sogenannte Kerne -> sind durch die Kerne alle Einstellen überdeckt -> Minimallösung -> sonst: Auswahl weiterer Primimlikanten (Strategie + Bewertung notwendig!) Technische Informatik I
Mögliche Lösung: y = w w w 0 0 0 5 0 0 7 6 0 0-7 6-0 0 0 5 Technische Informatik I
Formale algebraische Minimierung -> Das Nelson/Petrick-Verfahren sehr leistungsfähiges algebraisches Verfahren Nelson-Verfahren: Bestimmung der Menge aller Primimlikanten (bzw. Primimlikate) Petrick-Verfahren: Bestimmung der kostenminimalen Auswahl von Primimlikanten zur Einsstellenüberdeckung (bzw.primimlikate zur Nullstellenüberdeckung) Alternativ: Ergebnis: grahisch mit Überdeckungstabelle + Regeln zur Abarbeitung/Vereinfachung kostenminimaler algebraischer Ausdruck der zu realisierenden Schaltfunktion Technische Informatik I
Nelson-Verfahren: Ziel: Vorgehensweise: Bestimmung aller Primimlikanten zur Bildung einer disjunktiven Minimalform DMF (dual dazu: alle Primimlikate für KMF) ) alle Freistellen werden zu Einsstellen verfügt: Einsstellenergänzung f E -> Bildung einer Nullblocküberdeckung für die Einsstellenergänzung f E der gegebenen (unvollständigen) Schaltfunktion: τ 0 = {B 0,B 0,...,B 0r } ) Aufstellen eines schaltalgebraischen Ausdrucks (KNF bzw. KMF) für die Einsvervollständigung f E : f E = W 0 & W 0 &... & W 0r Technische Informatik I
) Schrittweises Ausdistribuieren des Ausdrucks f E = W 0 & W 0 &... & W 0r aus ) + Umformen und Streichen überflüssiger Termanteile bzw. Terme Anwendung von Distributiv- und Absortionsgesetzen aus der konjunktiven Form die gewünschte disjunktive Form bestimmen Wiederholung: Distributivgesetz: (a v b) & (c v d) = (a &c) v (a &d) v (b &c) v (b &d) Absortionsgesetz: a v (a &b) = a Ferner gilt: a &a = a, bzw. a v a = a und a &a = 0, bzw. a v a = ) Streichen aller im. Schritt gefundenen Terme, die nur Freistellen überdecken Technische Informatik I 5
Technische Informatik I 6 Minimierungsmethoden Minimierungsmethoden Nelson-Verfahren: Beisiel: Man nehme eine Nullblocküberdeckung: Durch Ausdistribuieren + Umformung erhält man: 0 0-0 - ) & ( ) ( f E = 0 0-0 - Distributivgesetz gleiches Element Absortion Absortion ) & ( ) ( & ) ( f E = = = = = =
Satz: Jedes Minimalolynom einer Schaltfunktion f besteht ausschließlich aus Primimlikanten von f. Überdeckungsroblem (hier auch Auswahlroblem genannt) Bei dem Nelson-Verfahren erfolgte nur die Ermittlung aller Primterme Weiterhin gesucht: otimale Auswahl der Primterme, wobei eine vollständige Überdeckung aller Einsstellen der gewünschten Funktion gefordert ist. Technische Informatik I 7
Lösung: grahische Auswahl der Primterme mit Überdeckungstabelle -> für jeden Primterm wird angegeben, welche Einsstellen (bzw. Nullstellen) er überdeckt -> zur Bewertung wird eine Salte mit Kosten c k angefügt -> Überdeckungstabelle wird mit Hilfe bestimmter Regeln abgearbeitet (vereinfacht) -> Kernermittlung + Dominanzregel -> es ist auch eine algebraische Behandlung der otimalen Auswahl von Primtermen möglich -> Bildung des Petrick-Ausdrucks! Ergebnis: kostenminimale Überdeckung der Eins- bzw. Nullstellenmenge der Schaltfunktion Technische Informatik I 8
Überdeckungsroblem Beisiel: 0 0 0 - - 0 - - 0 0 0 5 7 6 7 5 6 k 5 6 7 j Pl 0 6 i c i c c c c 5 c 5 6 c 6 7 c 7 Technische Informatik I 9
Überdeckungsroblem Kernermittlung Wenn eine Einsstelle (Nullstelle) nur durch einen einzigen Primterm abgedeckt wird, nennt man den Primimlikanten (Primimlikaten) Kernimlikant (Kernimlikat) Kernimlikanten (Kernimlikate) müssen auf jeden Fall in die Überdeckungslösung aufgenommen werden Salten von Einsstellen (Nullstellen) in der Überdeckungstabelle, die von Kernimlikanten (Kernimlikaten) abgedeckt werden können gestrichen werden, und müssen in der weiteren Abarbeitung nicht mehr berücksichtigt werden Technische Informatik I 0
Kernermittlung und Vereinfachung der Überdeckungstabelle Beisiel: j k Pl 0 6 i c i c 5 6 7 c c c 5 c 5 6 c 6 7 c 7 Technische Informatik I
Dominanzregeln und Ihre Anwendung () Saltendominanzregeln: Saltendominanz in der Überdeckungstabelle: i i X X X X X X 5 i i X X X X X X 5 Technische Informatik I
Wenn die Salte i durch einen der beiden Terme oder überdeckt wird, so wird dadurch auch i überdeckt Also: Einsstelle der Salte i ist durch oder auch realisiert Man sagt: ( Vektor i ) dominiert ( Vektor i ) und schreibt: i i Dominierende Salten (hier: i ) können gestrichen werden Technische Informatik I
Dominanzregeln und Ihre Anwendung () Zeilendominanzregeln: i X X X X c i X X X X c i X c... i X c... i k X X X k c k i k X X X k c k Technische Informatik I
Wenn eine Zeile i (für Primterm ) nur Salten (Einsstellen) überdeckt, die auch von einer anderen Zeile i (für Primterm ) überdeckt werden (d.h. i wird von i dominiert: i i ) und zusätzlich für die Kosten c c gilt. Dann kann die Zeile i gestrichen werden. Weiterhin: Wenn i i, jedoch c < c und es eistieren keine Zeilen i k (Primterme k ), welche die restlichen Einsstellen der Zeile i überdecken können und weniger als die Differenz c -c kosten (d.h.: c c + c k ). Dann kann die Zeile i auch gestrichen werden. Technische Informatik I 5
Überdeckungsroblem Um die otimale Überdeckung der Schaltfunktion durch eine otimale Auswahl von Primtermen zu ermitteln, kann das Problem durch die vorgestellten Regeln grahisch vereinfacht oder komlett gelöst werden Achtung: Oft endet das Verfahren mit einer sog. zyklischen Resttabelle (wenn keine der Regeln mehr anwendbar ist, aber noch keine Überdeckung gefunden wurde) Technische Informatik I 6
Allgemeine Vorgehensweise: ) Kerne bestimmen und Streichen aller überdeckten Salten ( Einsstellen) ( leergewordene Zeilen können auch gestrichen werden) ) Saltendominanzen finden und dominierende Salten streichen ) Zeilendominanzen finden und dominierte Zeilen streichen nach Möglichkeit (hängt von Kosten ab) ) Schritte - wiederholen, bis Überdeckungstabelle nicht mehr reduziert werden kann (keine Änderung mehr möglich) Technische Informatik I 7
Beisiel: Zyklische Resttabelle k j Pl 0 6 i c i 5 6 5 6 7 7 Technische Informatik I 8
Lösung des Überdeckungsroblems mit Hilfe des Petrick-Verfahrens Das Petrick-Verfahren ist eine algebraische Methode, ähnlich dem Nelson-Verfahren. Es dient zur Bestimmung kostenminimaler Lösungen von Überdeckungsroblemen Es kann direkt nach dem Nelson-Verfahren zur kostenminimalen Auswahl von Primtermen verwendet werden Saltendominanzen und Zeilendominanzen können algebraisch in Form von Absortionsregeln bzw. Ausdistribuieren abgearbeitet bzw. bewiesen werden Petrick-Verfahren kann auch bei zyklischen Resttabellen verwendet werden! Technische Informatik I 9
Petrick-Ausdruck (PA) Der Petrick-Ausdruck ist algebraische Beschreibung der Überdeckungsbedingungen Ob der Primterm k zur Lösung gehört, wird mit der Booleschen Präsenzvariable (Auswahlvariable) k angegeben -> k = 0 => Primterm k ist nicht in Lösung enthalten -> k = => Primterm k ist Bestandteil der Lösung -> zur Überdeckung jeder Einsstelle muss mindestens ein Primterm zur Lösung gehören, der diese Stelle überdeckt Technische Informatik I 0
Petrick-Ausdruck besteht daher aus Termen von disjunktiv verknüften Präsenzvariablen -> für jede Einsstelle der Tabelle enthält der PA einen Term -> in jedem Term muss mindestens eine Präsenzvariable den Wert haben Diese Terme werden konjunktiv zum Petrick-Ausdruck verknüft -> der Petrick-Ausdruck muss immer eins liefern! Technische Informatik I
Beisiel: k j Pl 0 6 i c i c 5 6 7 c c c 5 c 5 6 c 6 7 c 7 PA = (5 6)& ( 6)& (5 7)& & ( )& ( 7)& ( ) = Im Petrick-Ausdruck kann man erfassen (beweisen!), dass die Präsenzvariablen der Kernimlikanten ( )immer einssein müssen! Technische Informatik I
Technische Informatik I Minimierungsmethoden Minimierungsmethoden Überdeckungsroblem (Auswahlroblem) Auch der Petrick-Ausdruck wird durch Distributionsregeln und Absortionsregeln vereinfacht Beisiel: ) & (... ) & ( ) & ( ) & ( & ) & ( ) & ( ) ( PA 7 5 7 6 6 5 5 7 6 7 5 7 6 6 5 5 7 6 7 7 5 6 6 5 = = = = = = = PA 7 5 7 6 6 5 5 7 6 = =
Überdeckungsroblem (Auswahlroblem) Damit der Petrick-Ausdruck wird, muss mindestens einer der disjunktiv verknüften konjunktiven Teilterme eins sein Jeder konjunktive Teilterm reräsentiert genau eine mögliche Lösung des Auswahlroblems Vergleich der Gesamtkosten K aller möglichen Lösungen Dadurch können diejenigen Überdeckungen mit minimalen Kosten ermittelt werden Zur Auswahl der otimalen Lösung werden die Kosten c k der Primterme k herangezogen (Anzahl der Literale von k ) Technische Informatik I
Beobachtung: Jeder Term stellt eine Überdeckung dar. Beisiel: Bestimmung einer kostenminimalen Überdeckung durch Evaluation und Vergleich der Kosten: PA = 67 5 56 67 57 = K=++++= 5 K=++++= 5 K=+++++5= 9 K=+++++5= 9 K=+++++5= 8 Technische Informatik I 5
Überdeckungsroblem (Auswahlroblem) Beisiel: PA= 6 7 5 5 6 6 7 5 7 = 6 7 K = 5 5 K = 5 5 6 K = 9 6 7 K = 9 5 7 K = 8 j k Pl 0 6 i ci c = c = c = c = 5 5 c 5 = 6 6 c 6 = 7 7 c 7 = Damit ergeben sich zwei kostenminimale Lösungen: 6 7 und 5 Technische Informatik I 6
Beisiel einer minimalen Überdeckung k j Pl 0 6 i c i 5 6 5 6 7 7 y = 5 Kosten K: ++++=5 Technische Informatik I 7
Beisiel: die zugehörigen disjunktiven Minimallösungen (DMF) mit nur Literalen und Termen (Kosten K=5) sind: y = und y = y 0 0 y 0 0 - - 0 - - 0 - - - - 0 0 0 0 y y Technische Informatik I 8
Quine/McCluskey /McCluskey-Verfahren Das Quine/McCluskey-Verfahren arbeitet ebenfalls in den zwei Schritten: Bestimmung der Primimlikanten und Lösung des Überdeckungsroblems. Das Verfahren lässt sich einfach in ein Programm zur automatischen Vereinfachung von Schaltfunktionen umsetzen. Technische Informatik I 9
Quine/McCluskey /McCluskey-Verfahren Vorgehensweise zur Bestimmung der Primimlikanten (): ) Bildung der Disjunktiven Normalform DNF (Alle Belegungen der Redundanzmenge werden zu gewählt und mit berücksichtigt) ) Sortiere die Imlikanten (der Länge i=n) derart, dass sie nach Anzahl ihrer negierten Literale j zu Klassen Q i,j zusammengefasst sind. ) Imlikanten benachbarter Klassen Q i,j und Q i,j- werden durch Anwendung des Distributivgesetzes zu einer neuen Klasse Q i-,j- zusammengefasst. Die zusammengefassten Terme der Klassen Q i,j und Q i,j- werden (als berücksichtigt) markiert. Reduktionsregel: ( & y) v ( & y) = & (y v y) = Ist ein zusammengefasster Term schon in der Klasse Q i-,j- enthalten, so wird dieser nicht ein weiteres Mal eingetragen. Technische Informatik I 0
Quine/McCluskey /McCluskey-Verfahren Vorgehensweise zur Bestimmung der Primimlikanten (): Der Arbeitsschritt wird wiederholt, bis keine weiteren Verkürzungen mehr möglich sind. ) Alle nicht beim Zusammenfassen von benachbarten Klassen Q i,j und Q i,j- berücksichtigten Terme sind die Primimlikanten. 5) Überdeckt ein Primimlikant nur Elemente der Redundanzmenge, so wird er verworfen. Technische Informatik I
Quine/McCluskey /McCluskey-Verfahren Beisiel (): ) DNF f = _ v v v v v v v Redundanzmenge wird mit berücksichtigt! _ ) Sortierung der Minterme Q, = { } Q, = {, } Q, = {,, } Q, = {, } Q,0 = { } 0 0 0-0 0 0 0 0 5 7 7 5 0-0 6 6 In der Klasse Q, befinden sich nur Imlikanten mit Literalen, wovon negierte Literale sind. Technische Informatik I
Quine/McCluskey /McCluskey-Verfahren Beisiel (): ) Zusammenfassen der Minterme Q, = { } Q, = {, } _ _ Q, = {,, } Q, = {, } Q,0 = { } - 0 0 5 0 --------------------------------------------------------------- Q, = { } // bleibt leer, da Q, leer ist und mit Q, zu Q, zusammengefasst wird. (zusammengefasste Terme markieren) Q, = { } _, _, _ Q, = {,, } Q,0 = {, } 0 0 0 0 0 0 0 5 Die Klassen Q, bis Q,0 sind alle als berücksichtigt markiert. Es gibt folglich keinen Primimlikanten, der vier Literale besitzt. 7 7-6 6 Technische Informatik I
Quine/McCluskey /McCluskey-Verfahren Beisiel (): ) rekursives Zusammenfassen der Minterme 0 0 0 5 Q, = { _} _ Q, = { } 0 0 _, _, _ 7 6 Q, = {,, } 0 0 - Q,0 = { } 7 6, --------------------------------------------------------------- - 0 0 0 5 Q, = { } Der Minterm ( Q, = { } & ) wird nur einmal in die Klasse Q,0 aufgenommen. Q,0 = { } An dieser Stelle ist keine weitere Vereinfachung möglich. _ 5) Primimlikanten auslesen: w = v v v v Die Auswahl der Primimlikanten (Lösung des Überdeckungsroblems) erfolgt beim Quine/McCluskey-Verfahren mit einer Überdeckungstabelle. Technische Informatik I
Zusammenfassung Problem I: Bestimmung der Primimlikanten: KV-Diagramme (grahisch) Nelson-Verfahren (algebraisch) Quine/McCluskey-Verfahren (tabellarisch) Problem II: kostenminimale Auswahl der Primimlikanten (Lösung des Überdeckungsroblems) KV-Diagramme (grahisch) Petrick-Verfahren (algebraisch) Überdeckungstabelle (tabellarisch) Technische Informatik I 5