C - next-internet.com
C - next-internet.com
C - next-internet.com
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Minimierungsverfahren<br />
Algebraische Verfahren:<br />
Vereinfachung mit Hilfe von Gesetzen der Booleschen Algebra<br />
Nelson- Verfahren (später)<br />
Graphische Verfahren<br />
KV-Diagramme<br />
Tabellarische Verfahren:<br />
Quine- McCluskey- Verfahren<br />
Consensus- Verfahren<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
Quine-McCluskey-Verfahren<br />
Arbeitet nach dem gleichen Prinzip wie KV-Diagramme:<br />
Terme , die sich in nur einer Variablen unterscheiden, werden zusammengefasst.<br />
Ausgangspunkt: Funktionstabelle einer Funktion.<br />
disjunktive wie konjunktive Minimalformen können erzeugt werden.<br />
Bei disjunktiven Minimalformen DMF (Primimplikanten) arbeitet man mit den<br />
Mintermen der Funktion. Bei konjunktiven Minimalformen KMF (Primimplikate)<br />
mit den Maxtermen.<br />
Das Verfahren wird im folgenden für DMF erläutert<br />
Ausgangspunkt sind die Minterme der Funktion<br />
Für KMF geht man analog mit den Maxtermen vor.<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
11-1 11<br />
11-2 11
Nr. 0. Ordnung<br />
2 00010<br />
4 00100<br />
5 00101<br />
6 00110<br />
10 01010<br />
12 01100<br />
18 10010<br />
13 01101<br />
14 01110<br />
22 10110<br />
26 11010<br />
30 11110<br />
Quine-McCluskey-Verfahren<br />
Nr. 1. Ordnung<br />
2,6<br />
2,10<br />
2,18<br />
4,5<br />
4,6<br />
4,12<br />
00-10<br />
0-010<br />
-0010<br />
0010-<br />
001-0<br />
0-100<br />
5,13<br />
6,14<br />
6,22<br />
10,14<br />
10,26<br />
12,13<br />
12,14<br />
18,22<br />
18,26<br />
0-101<br />
0-110<br />
-0110<br />
01-10<br />
-1010<br />
0110-<br />
011-0<br />
10-10<br />
1-010<br />
14,30<br />
22,30<br />
26,30<br />
-1110<br />
1-110<br />
11-10<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
4. Schritt:<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
Nr. 2. Ordnung<br />
2,6,10,14 0--10<br />
2,6,18,22 -0-10<br />
2,10,18,26 --010<br />
4,5,12,13 0-10-<br />
4,6,12,14 0-1-0<br />
6,14,22,30 --110<br />
10,14,26,30 -1-10<br />
18,22,26,30 1--10<br />
2,6,10,14,<br />
18,22,26,30 ---10<br />
A<br />
B<br />
Nr. 3. Ordnung<br />
Quine-McCluskey - Verfahren<br />
Umsetzen der entstehenden Primblöcke (Würfel) in<br />
Primimplikanten.<br />
Beispiel:<br />
0 - 1 0 - ⇒ e c b<br />
0 - 1 - 0 ⇒ e c a<br />
- - - 1 0 ⇒ b a<br />
1. Schritt der Minimierung ist fertig<br />
C<br />
11-3 11<br />
11-4 11
2. Schritt der Minimierung<br />
Auswahl einer minimalen Anzahl von<br />
Primimplikanten<br />
Die Primimplikanten werden zusammen mit den<br />
Nummern der Minterme, aus denen sie hervorgegangen<br />
sind, in die 2. Quinesche Tabelle<br />
(Überdeckungstabelle) eingetragen.<br />
Die Aufgabe besteht nun darin, diejenigen<br />
Primimplikanten zu finden, die alle Minterme überdecken<br />
und die Kosten dieser Überdeckung zu minimieren.<br />
Realisierungskosten eines Primimplikanten:<br />
z. B. die Anzahl der benötigten UND-Gatter-Eingänge<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
Quine-McCluskey – Verfahren: Auswahl<br />
einer minimalen Anzahl von Primimplikanten<br />
2. Quinesche Tabelle für obige 1. Quinesche Tabelle:<br />
Primimp.<br />
A<br />
B<br />
C<br />
2<br />
×<br />
4<br />
×<br />
×<br />
5<br />
×<br />
×<br />
×<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
6<br />
10<br />
×<br />
12<br />
×<br />
×<br />
13<br />
×<br />
14<br />
×<br />
×<br />
18<br />
×<br />
22<br />
×<br />
26<br />
×<br />
30<br />
×<br />
11-5 11<br />
Kosten<br />
3<br />
3<br />
2<br />
Kernprimimplikanten sind diejenigen Primimplikanten, die<br />
für ein einzelnes "×" in einer Spalte verantwortlich sind.<br />
Beispiel: C ist ein Kernprimimplikant, da nur C in den<br />
Spalten für die Minterme 2, 10, 18, 22, 26 und 30 ein "×" hat.<br />
A ist ebenfalls Kernprimimplikant.<br />
4,5,12,13 0-10-<br />
4,6,12,14 0-1-0<br />
2,6,10,14,<br />
18,22,26,30 ---10<br />
11-6 11<br />
A<br />
B<br />
C
Überdeckungsfunktion<br />
Wird in Schritt 3 mindestens eine Zeile gestrichen, kann durch<br />
erneute Anwendung der Regeln 1 - 3 eventuell eine weitere<br />
Reduktion der Größe der Überdeckungstabelle erzielt werden.<br />
Beispiel:<br />
Primimp.<br />
A<br />
B<br />
C<br />
2<br />
×<br />
4<br />
×<br />
×<br />
5<br />
×<br />
×<br />
×<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
6<br />
10<br />
×<br />
12<br />
×<br />
×<br />
13<br />
×<br />
Primimplikanten A und C überdecken alle Minterme<br />
14<br />
Minimalform: f = b c e ∨ a b<br />
Bearbeitung der Überdeckungstabelle<br />
Suchen die Kernprimimplikanten und streiche alle<br />
von ihnen überdeckten Minterme<br />
Ausnutzung der Regeln der Dominanz:<br />
×<br />
×<br />
18<br />
Spaltendominanz: Streichen aller dominierenden<br />
Minterme<br />
Zeilendominanz: Streichen aller dominierten<br />
Primimplikanten, falls sie nicht „teurer“ als ihre<br />
Dominierenden.<br />
Auswertung der reduzierten Überdeckungstabelle<br />
(Aufstellung der Überdeckungsfunktion der<br />
reduzierten Tabelle)<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
×<br />
22<br />
×<br />
26<br />
×<br />
30<br />
×<br />
Kosten<br />
3<br />
3<br />
2<br />
11-7 11<br />
11-8 11
Bearbeitung der Überdeckungstabelle<br />
Spaltendominaz:<br />
Spalten, die andere<br />
überdecken, können<br />
gestrichen werden.<br />
Zeilendominaz:<br />
Zeilen mit nur Einträgen, die andere<br />
Zeile hat, können gestrichen<br />
werden (falls sie nicht „billiger“<br />
sind)<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
1 2 3 4 5 6<br />
A x x<br />
B x x x x<br />
C x x<br />
D x x x<br />
E x x<br />
F x x<br />
1 2 3 4 5 6<br />
A x x<br />
B x x x x<br />
C x x<br />
D x x x<br />
E x x<br />
F x x<br />
Überdeckungsfunktion<br />
Systematischer Ansatz:<br />
Es wird eine "Überdeckungsfunktion" ü f<br />
aufgestellt, die für jeden Primimplikanten "x"<br />
eine Boolesche Variable w x enthält.<br />
Die Variable kennzeichnet, ob der betreffende<br />
Primimplikant in die vereinfachte Lösung für f<br />
aufgenommen wird oder nicht.<br />
11-9 11<br />
11-11 11 11
Primimp.<br />
A<br />
B<br />
C<br />
2<br />
×<br />
4<br />
×<br />
×<br />
Überdeckungsfunktion<br />
5<br />
×<br />
×<br />
×<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
6<br />
10<br />
×<br />
12<br />
×<br />
×<br />
13<br />
×<br />
14<br />
×<br />
×<br />
18<br />
×<br />
22<br />
Überdeckungsfunktion<br />
Überdeckungsfunktion für die 2. Quinesche Tabelle:<br />
ü f = w C ( w A ∨ w B ) w A (w B ∨ w C ) w C (w A ∨ w B )<br />
w A (w B ∨ w C ) w C w C w C w C<br />
= w C ( w A ∨ w B ) w A (w B ∨ w C )<br />
= ( w A w C ∨ w B w C ) (w A w B ∨ w A w C )<br />
= w A w B w C ∨ w A w C<br />
= w A w C<br />
In der Überdeckungsfunktion für 2. Quinesche Tabelle ist<br />
der Term mit der geringsten Variablenanzahl w A w C<br />
(3 + 2 = 5)<br />
Minimalform: f = b c e ∨ a b<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
×<br />
26<br />
×<br />
30<br />
×<br />
Kosten<br />
3<br />
3<br />
2<br />
11-12 11 12<br />
11-14 11 14
Motivation:<br />
Consensus-Verfahren<br />
Beispiel (KV-Diagramm):<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
0 1<br />
0 1<br />
a<br />
0<br />
0<br />
1 1<br />
ac ∨ b c = a c ∨ b c ∨ a b<br />
a c, b c, a b sind Würfel<br />
a b nennt man Consensusterm oder Consensus-Würfel<br />
Beachte: die Variable c kommt in a c und b c negiert<br />
und nicht negiert vor.<br />
Consensus-Verfahren<br />
Das Consensus-Verfahren kann als Erweiterung des Quine-<br />
McCluskey Verfahrens gesehen werden.<br />
Consensus-Regel:<br />
In der Booleschen Algebra gelten die beiden folgenden, hier<br />
für die Schaltalgebra beschriebenen Identitäten:<br />
x u ∨ x w = x u ∨ x w ∨ u w<br />
( x ∨ W ) · ( x ∨ U ) = ( x ∨ W ) · ( x ∨ U ) · ( U ∨ W )<br />
x ist eine beliebige Variable,<br />
u und w bzw. U und W sind beliebige Schaltfunktionen.<br />
(u und w sind meist Konjunktionen, U und W Disjunktionen in den<br />
unabhängigen Variablen)<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
c<br />
b<br />
11-15 11 15<br />
11-16 11 16
Consensus-Verfahren<br />
v ¢ = u·w Consensusterm zu x·u und x·w<br />
V ¢ = U∨W Consensusterm zu x ∨ W und x ∨ U<br />
Man schreibt auch:<br />
v ¢ = u·w = x·u ¢ x·w bzw.<br />
V ¢ = U ∨ W = ( x ∨ W ) ¢ ( x ∨ U)<br />
Beispiel:<br />
ac ∨ b c = a c ∨ b c ∨ a b<br />
v ¢ = a b<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
Consensus-Verfahren<br />
Consensus-Bildung im Würfelkalül:<br />
Schaltfunktion und Consensusterme werden als<br />
Würfel dargestellt.<br />
Definition 2.13:<br />
Es seien zwei Würfel C1 und C2 gegeben, und es gelte<br />
C 1 ¢ C 2 ≠ Ø. Dann heißt C ¢ = C 1 ¢ C 2 Consensus-Würfel.<br />
Im Beispiel: a c ⇒ 1 - 0 C 1<br />
b c ⇒ - 1 1 C 2<br />
v ¢ = a b ⇒ 1 1 - C ¢<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
11-17 11 17<br />
11-18 11 18
Consensus-Würfel<br />
Der Consensus-Würfel C ¢ ist der größte Würfel, der weder<br />
in C1 noch in C2 , wohl aber in C1 ∪ C2 enthalten ist,<br />
d.h. es gilt (C ¢ ⊄ C1 ) ∧ (C ¢ ⊄ C2 ) ∧ (C ¢ ⊆ {C1 ∪ C2 }), und es<br />
gibt keinen Würfel C ⊃ C ¢ mit den gleichen Eigenschaften.<br />
Beispiel (KV-Diagramm):<br />
Es gilt:<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
0 1<br />
0 1<br />
a<br />
0<br />
0<br />
1 1<br />
Der Consensus-Würfel existiert genau dann, wenn es in C 1 und<br />
C 2 genau eine komplementär belegte Komponente gibt!<br />
Verfahren zur Konstruktion :<br />
Consensus-Würfel<br />
Es seien C1 = {c11,...,c1n} und C2 = {c21,...,c2n} zwei Würfel mit einem Paar<br />
komplementär belegter Komponenten c1i und c2i (i ∈ {1,...,n}), d.h.<br />
(c 1i = 0) ∧ (c 2i = 1) oder (c 1i = 1) ∧ (c 2i = 0)<br />
Der Consensus-Würfel C ¢ = {c ¢1,...,c ¢n} wird dann nach folgender<br />
Vorschrift gebildet:<br />
1. Die Komponente c 1i im Würfel C 1 und die Komponente c 2i im Würfel C 2<br />
wird "don´t care" gesetzt, d.h. c 1i = – und c 2i = –<br />
2. Dann bildet man die Schnittmenge aus den entstandenen Würfeln:<br />
C ¢ = C 1 ∩ C 2<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
c<br />
b<br />
11-19 11 19<br />
11-20 11 20
Beispiel<br />
a c 1 - 0 C 1<br />
b c - 1 1 C 2<br />
- setzen ⇒ 1 - -<br />
- 1 -<br />
Schnittmenge bilden ⇒ 1 1 - C ¢<br />
v ¢ = a b<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
Sonderfälle bei der Consensus-Bildung:<br />
Sonderfall 1:<br />
x·u ∨ x·w = x·u ∨ x·w ∨ u·w<br />
(u→w) ist wahr für alle Belegungen der Variablen von<br />
u und w. ( u ist Implikant von w ) ⇒ u·w = u<br />
Dann ist: x·u ∨ x·w = x·u ∨ x·w ∨ u = u ∨ x·w<br />
Der Consensusterm absorbiert einen erzeugenden<br />
Term.<br />
Aus einem Implikanten entsteht ein kürzerer Implikant.<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
11-21 11 21<br />
11-22 11 22
Sonderfälle bei der Consensus-Bildung:<br />
Sonderfall 2:<br />
x·u ∨ x·w = x·u ∨ x·w ∨ u·w<br />
u = w für alle Belegungen der Variablen von u und w.<br />
Dann ist x·u ∨ x·w = x·u ∨ x·u = u.<br />
Hier verschmelzen beide erzeugenden Terme zu<br />
einem kürzeren.<br />
Es handelt sich um die Zusammenfassungsregel des<br />
Quine-McCluskey-Verfahrens.<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
Anwendung der Consensusbildung auf den<br />
Schaltnetzentwurf<br />
Durch erschöpfende Bildung von Consensus-Würfeln und<br />
Streichung aller Würfel, die in einem anderen enthalten<br />
sind, können für eine durch beliebige Menge von<br />
Implikanten (Einsblöcke) gegebene Schaltfunktion alle<br />
Primimplikanten gebildet werden.<br />
Consensus-Verfahren<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
11-23 11 23<br />
11-24 11 24
Unser Beispiel:<br />
Consensus-Verfahren<br />
0<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
1<br />
0 1<br />
a<br />
0<br />
0<br />
1 1<br />
Die Primimplikanten (1,–,0) und (–,1,1) erzeugen<br />
den Consensus-Würfel (1,1,–), der hier ebenfalls ein<br />
Primimplikant ist.<br />
Consensus-Verfahren zur Bestimmung aller<br />
Primimplikanten<br />
Gegeben: Eine Schaltfunktion durch eine beliebige Menge<br />
C = {C 1 ,...,C n } von Würfeln.<br />
(Bei unvollständig definierten Funktionen werden "don´t care“<br />
Belegungen zu 1 verfügt)<br />
1. Zu je zwei Würfeln C i ,C j ∈ C bildet man, falls möglich, den<br />
Consensus-Würfel C ¢ = C i ¢C j .<br />
2. Wenn C ¢ in keinem anderen Würfel aus C enthalten ist, wird<br />
C ¢ zu C hinzugefügt, und alle Würfel aus C, die in C ¢<br />
enthalten sind, werden aus C entfernt.<br />
3. Das Verfahren bricht ab, sobald nur noch Consensus-Würfel<br />
gebildet werden können, die in anderen Würfeln enthalten<br />
sind.<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
c<br />
b<br />
11-25 11 25<br />
11-26 11 26
Beispiel<br />
Eine Funktion y sei durch ihr KV-Diagramm gegeben:<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
b<br />
1 1<br />
0<br />
0<br />
1<br />
1<br />
X<br />
1<br />
Die "don´t care"-Belegungen X werden zu 1 verfügt.<br />
⇒ C = {(–,0,0,–), (–,0,1,1), (0,1,0,0)}, wobei C = (d,c,b,a).<br />
a<br />
0<br />
0<br />
0<br />
0<br />
c<br />
X<br />
Consensus-Verfahren<br />
Man stellt die Würfel in einer Liste dar:<br />
Nr. Gebildet aus Würfel Gestrichen wegen<br />
1 -,0,0,-<br />
2 -,0,1,1<br />
3 0,1,0,0<br />
Mit dem zweiten beginnend wird jeder Würfel mit jedem noch nicht<br />
gestrichenen, über ihm liegenden Würfel verglichen und der<br />
Consensus-Würfel gebildet, falls er existiert.<br />
Dieser Consensus-Würfel wird ans Ende der Liste geschrieben.<br />
Alle im neuen Würfel enthaltenen Würfel werden gestrichen.<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
0<br />
0<br />
0<br />
d<br />
11-27 11 27<br />
11-28 11 28
Consensus-Verfahren<br />
Das Verfahren endet, wenn keine Consensus-Würfel<br />
oder nur noch in anderen Würfeln enthaltene<br />
Consensus-Würfel gebildet werden können.<br />
Nr. Gebildet aus Würfel Gestrichen wegen<br />
1 -,0,0,-<br />
2 -,0,1,1<br />
3 0,1,0,0<br />
4<br />
5<br />
6<br />
2,1 -,0,-,1<br />
3,1 0,-,0,0<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
⊂ 4<br />
⊂ 5<br />
5,4 0,0,0,- ⊂ 1<br />
Ergebnis C = {(–,0,0,–),(–,0,–,1),(0,–,0,0)}<br />
Consensus-Verfahren<br />
Ergebnis C = {(–,0,0,–),(–,0,–,1),(0,–,0,0)} im KV-<br />
Diagramm dargestellt:<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
b<br />
1 1<br />
0<br />
0<br />
1<br />
1<br />
X<br />
1<br />
a<br />
Für eine Minimalform der Funktion y kann der Würfel<br />
(0,–,0,0) weggelassen werden, da die Einsstellen der<br />
Funktion auch durch die übrigen Würfel überdeckt werden.<br />
0<br />
0<br />
0<br />
0<br />
c<br />
X<br />
0<br />
0<br />
0<br />
d<br />
11-29 11 29<br />
11-30 11 30
Consensus-Verfahren<br />
Das Consensusverfahren dient nur der<br />
Bestimmung aller Primimplikanten.<br />
Das Überdeckungsproblem muss anders,<br />
z. B. wie bisher mit der 2. Quineschen Tabelle,<br />
gelöst werden.<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
Weitere Anwendung der Consensus-Bildung<br />
Prüfung, ob eine gegebene Überdeckung sämtliche<br />
Primimplikanten enthält:<br />
Man bildet zu jedem Würfelpaar den Consensus-<br />
Würfel.<br />
Falls jeder Consensus-Würfel schon von einem<br />
vorhandenen Würfel erfasst wird, dann enthält die<br />
Überdeckung alle Primimplikanten der Funktion.<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
11-31 11 31<br />
11-32 11 32
Weitere Anwendung der Consensus-Bildung<br />
Beispiel:<br />
y = d ∨ c ⋅ b ⋅ e ∨ e ⋅ a<br />
Da nur negierte Variablen vorkommen, kann man<br />
überhaupt keine Consensus-Würfel bilden.<br />
Der Ausdruck ist die Disjunktion aller<br />
Primimplikanten.<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
Nelson-Verfahren<br />
Das Verfahren von Nelson unterscheidet sich von den<br />
anderen dadurch, dass es die Primimplikanten aus den<br />
Nullstellen und die Primimplikate aus den Einsstellen<br />
der Funktion berechnet.<br />
Will man die Primimplikanten einer Funktion y<br />
berechnen, so benötigt man eine beliebige Menge an<br />
Implikaten {D 0 ,...,D r }, deren Konjunktion die Funktion<br />
vollständig beschreibt, d.h.<br />
y = D 0 ∧ ... ∧ D r<br />
Eventuelle "don´t care"-Belegungen werden zu 1 verfügt.<br />
Die Implikate werden nach und nach ausdistribuiert.<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
11-33 11 33<br />
11-34 11 34
Nelson-Verfahren<br />
Die so entstehenden Ausdrücke werden unter<br />
ausschließlicher Verwendung der elementaren<br />
booleschen Regeln vereinfacht:<br />
x ∨ x y = x x ( x ∨ y ) = x (Absorptionsgesetz)<br />
x · x = x x ∨ x = x (Idempotenzgesetz)<br />
x · x = 0 x ∨ x = 1 (Komplementregeln)<br />
x ∨ 0 = x x · 1 = x<br />
Es entsteht die Disjunktion aller Primimplikanten.<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
Beispiel<br />
f = (x 3 ∨ x 2 ) · (x 4 ∨ x 3 ) · (x 3 ∨ x 2 ∨ x 1 )<br />
=(x 3 x 4 ∨ x 3 x 3 ∨ x 2 x 4 ∨ x 2 x 3 ) · (x 3 ∨ x 2 ∨ x 1 )<br />
=x 3 x 4 x 3 ∨ x 2 x 4 x 3 ∨ x 2 x 3 x 3 ∨<br />
x 3 x 4 x 2 ∨ x 2 x 4 x 2 ∨ x 2 x 3 x 2 ∨<br />
x 3 x 4 x 1 ∨ x 2 x 4 x 1 ∨ x 2 x 3 x 1<br />
=x 3 x 4 x 2 ∨ x 3 x 4 x 1 ∨ x 2 x 4 x 1 ∨ x 2 x 3<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
11-35 11 35<br />
11-36 11 36
Nelson-Verfahren<br />
Das Verfahren liefert alle Primimplikanten<br />
Die Auswahl einer minimalen Überdeckung muss<br />
wie bisher vorgenommen werden, z.B.<br />
mit der 2. Quineschen Tabelle oder<br />
mit Hilfe von KV-Diagrammen<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
Beispiel<br />
Aus dem KV-Diagramm erkennt man, dass die Primimplikanten<br />
x 3 x 4 x 1 und x 2 x 4 x 1<br />
für eine vollständige Überdeckung der Einsstellen nicht benötigt<br />
werden.<br />
x 2<br />
1 1<br />
0<br />
0<br />
0<br />
x 1<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
0<br />
0 0 0 0<br />
x 3<br />
0<br />
— 1 1<br />
1 1<br />
x 4<br />
Nelson-Verfahren<br />
x 2<br />
1 1<br />
0<br />
0<br />
0<br />
x 1<br />
0<br />
0 0 0 0<br />
x 3<br />
0<br />
— 1 1<br />
1 1<br />
Implikate Primimplikanten<br />
x 4<br />
11-37 11 37<br />
11-38 11 38
Nelson-Verfahren<br />
Das duale Verfahren erzeugt aus einer beliebigen<br />
Menge an Implikanten {K 0 ,...,K r }, deren<br />
Disjunktion die Funktion vollständig beschreibt, d.h.<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
y = K 0 ∨... ∨ K r ,<br />
die Konjunktion aller Primimplikate.<br />
Eventuelle "don´t care"-Belegungen werden dann<br />
zu 0 verfügt.<br />
Nach Ausdistribution und Vereinfachung entsteht<br />
die Konjunktion aller Primimplikate.<br />
Vorgehensweise beim Minimieren<br />
Aufgabenstellung Primterme Auswahl<br />
Variablenanzahl ≤ 6 KV-Diagramm KV-Diagramm<br />
Überdeckungstabelle<br />
Geg. DF(KF)<br />
Ges. DMF(KMF)<br />
Geg. DF(KF)<br />
Ges. KMF(DMF)<br />
Consensus<br />
Quine-McCluskey<br />
Nelson<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
Überdeckungstabelle<br />
Überdeckungstabelle<br />
11-39 11 39<br />
11-40 11 40
Vergleich der Verfahren<br />
Das KV-Diagramm ist bei kleiner Variablenzahl für den<br />
Menschen, jedoch kaum für den Rechner geeignet.<br />
Das Consensus-Verfahren ist sehr rechnergeeignet.<br />
Das Consensus-Verfahren passt seine Rechenzeit der<br />
Anfangsüberdeckung weitgehend an. An einer Liste von<br />
Einzelbelegungen arbeitet das Verfahren länger als an<br />
einer minimalen Liste aus Primimplikanten.<br />
Anfängliche Würfelmenge aus möglichst wenigen, großen<br />
Würfeln zusammenstellen.<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
Vergleich der Verfahren<br />
Gegenüber dem Quine-McCluskey-Verfahren hat die<br />
Consensus-Methode die Vorteile, dass sie nur mit<br />
Würfeln zu arbeiten braucht und nur eine Liste<br />
verwendet, die durch laufende Streichungen kurz<br />
gehalten werden kann.<br />
Erfahrung: Bei sehr unvollständige Schaltfunktionen ist<br />
das Nelson-Verfahren am schnellsten, weil die<br />
Anfangsüberdeckung des Consensus-Verfahrens<br />
infolge der vielen Freistellenblöcke sehr umfangreich<br />
wird.<br />
Bei ganz oder fast vollständigen Funktionen ist das<br />
Consensus-Verfahren vorteilhaft.<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
11-41 11 41<br />
11-42 11 42
Erweiterter Minimierungsansatz<br />
Es wird versucht, mehrere Boolesche Funktionen gemeinsam zu<br />
minimieren.<br />
Implikanten werden mehrfach ausgenutzt.<br />
Diese Implikanten müssen nicht notwendigerweise<br />
Primimplikanten der einzelnen Funktionen sein.<br />
Bündelminimierung<br />
Prinzip im KV-Diagramm:<br />
Man sucht nach Implikanten, die in mehreren KV-<br />
Diagrammen vorkommen.<br />
Diese Koppelterme müssen für mehrere Funktionen nur<br />
einmal realisiert werden und sparen dadurch Kosten.<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
Beispiel:<br />
u :<br />
d<br />
Bündelminimierung<br />
1<br />
1<br />
0<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
1<br />
2 3<br />
1 1<br />
1 1<br />
10 11<br />
8 9<br />
a<br />
5<br />
7<br />
15<br />
13<br />
c<br />
4<br />
6<br />
14<br />
12<br />
b<br />
d<br />
0<br />
1<br />
2 3<br />
10 11<br />
8 9<br />
a<br />
1 1<br />
Ohne Koppelterme:<br />
u = a c ∨ c d v = a d ∨ c d<br />
Mit Koppeltermen:<br />
u = a c ∨ a c d v = c d ∨ a c d<br />
v :<br />
1<br />
1<br />
5<br />
7<br />
15<br />
13<br />
c<br />
1<br />
1<br />
4<br />
6<br />
14<br />
12<br />
b<br />
11-43 11 43<br />
11-44 11 44
Primkoppelterm<br />
Koppelterme müssen keine Primimplikanten sein<br />
(siehe Beispiel).<br />
Sie lassen sich im allgemeinen weiter<br />
vereinfachen, jedoch für jede Funktion in<br />
unterschiedlicher Weise.<br />
Koppelterme, die gleichzeitig Primimplikanten<br />
sind, heißen Primkoppelterme.<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
Beispiel:<br />
u :<br />
d<br />
1<br />
0<br />
Primkoppelterm<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
1<br />
2 3<br />
10 11<br />
8 9<br />
a<br />
1<br />
1 1<br />
1<br />
u = a d ∨ a c d ∨ b c d<br />
1<br />
5<br />
7<br />
15<br />
13<br />
c<br />
1<br />
1<br />
4<br />
6<br />
14<br />
12<br />
b<br />
d<br />
0<br />
1<br />
10 11<br />
8 9<br />
a<br />
2 1 3 1<br />
1 1 1<br />
v = b d ∨ a c d ∨ a b ∨ a c d a c d ist Primkoppelterm<br />
v :<br />
1<br />
5<br />
7<br />
15<br />
13<br />
c<br />
1<br />
1<br />
1<br />
4<br />
6<br />
14<br />
12<br />
b<br />
11-45 11 45<br />
11-46 11 46
Allgemeine Problematik<br />
Die Anzahl der Primimplikanten kann exponentiell mit der<br />
Anzahl der Eingabevariablen steigen (3 n /n Prim-implikanten)<br />
Das Überdeckungsproblem ist NP-vollständig<br />
Es besteht wenig Hoffnung, einen Algorithmus zu finden,<br />
der das Problem in einer Zeit löst, die polynomial mit<br />
der Anzahl der Variablen wächst.<br />
Meist liegt exponentielles Wachstum vor.<br />
Heuristische Verfahren<br />
Hierbei werden nicht notwendigerweise minimale Lösungen mit<br />
akzeptablem Zeit- und Speicherbedarf erzeugt.<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
Heuristische Minimierung<br />
Heuristiken entstehen aus Experimenten und<br />
Erfahrungen und liefern mit hoher Wahrscheinlichkeit (je<br />
nach Qualität der Heuristik) eine gute wenn nicht sogar<br />
die beste Lösung.<br />
Heuristiken entscheiden bei der Logikminimierung z.B., in<br />
welcher Reihenfolge welche Implikanten<br />
zusammengefasst werden sollten, um eine möglichst<br />
gute Lösung zu erreichen.<br />
Es wird eine Lösung auf direktem Weg berechnet wird,<br />
d.h. ohne Umweg über alle Primimplikanten<br />
Reduzierung von Speicherplatzbedarf und Rechenzeit<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
11-50 11 50<br />
11-51 11 51
Heuristische Minimierung<br />
Da der Lösungsweg jedoch durch Heuristiken bestimmt<br />
wird, die nur mit einer gewissen Wahrscheinlichkeit die<br />
richtigen Entscheidungen treffen und so in Spezialfällen<br />
"versagen„ können, gibt es keine Garantie dafür, dass<br />
die erreichte Lösung die bestmögliche ist.<br />
Die Abweichung von der bestmöglichen Lösung ist<br />
jedoch im Verhältnis zur Größe der Lösung und vor allem<br />
zur Rechenzeitersparnis vernachlässigbar klein.<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
Heuristische Verfahren zur Logikminimierung<br />
MINI-Algorithmus: entwickelte IBM in den 70er Jahren<br />
und für die meisten Probleme der damaligen Zeit eine<br />
sehr gute Lösung in akzeptabler Rechenzeit lieferte.<br />
PRESTO-Algorithmus: Anfang der 80er Jahre<br />
ESPRESSO-Algorithmus: von IBM und der University<br />
of California at Berkeley.<br />
Der bekannteste Algorithmus, der seit Anfang der 80er<br />
Jahre, als sich mit der nächsten VLSI-Integrationsstufe<br />
die Komplexität Integrierter Schaltungen noch weiter<br />
erhöhte, auch in kommerziellen Logiksynthese-<br />
Werkzeugen eingesetzt wird.<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
11-52 11 52<br />
11-53 11 53
Letzter Schritt beim Logikentwurf<br />
Abbildung einer abstrakten logischen Form auf realisierbare<br />
Bauelemente.<br />
Beispiel:<br />
Erhält man als Ergebnis der Minimierung einen UND-Term<br />
mit 17 Variablen, so kann man diesen Term nicht einfach auf<br />
ein UND-Gatter mit 17 Eingängen abbilden.<br />
Die technische Realisierbarkeit muss als Randbedingung<br />
beim Entwurf eingehalten werden.<br />
Um auch diesen Schritt zu automatisieren, werden meist<br />
Systeme verwendet, die bestimmte logische Formen nach<br />
festen Regeln auf Bausteine einer vorgegebenen Bibliothek<br />
abbilden.<br />
Institut für Rechnerentwurf und Fehlertoleranz<br />
Dr.-Ing. Dr. Ing. T. Asfour<br />
11-54 11 54