Hardwarearchitekturen und Rechensysteme

121
Folien zur Vorlesung Hardwarearchitekturen und Rechensysteme von Prof. Dr. rer. nat. U. Brinkschulte Prof. Dr.-Ing. L. Hedrich (basierend auf Materialien von Prof. Dr.-Ing. K. Waldschmidt) Lehrstuhl für Eingebettete Eingebettete Systeme Systeme Hardwarearchitekturen und Rechensysteme 3. Boolesche Funktionen und Boolesche Algebra

description

Hardwarearchitekturen und Rechensysteme. 3. Boolesche Funktionen und Boolesche Algebra. Motivation. Die Boolesche Algebra wird benötigt für die Modellierung digitaler Schaltnetze und Schaltwerke, insbesondere für die Beschreibung, Analyse und Optimierung digitaler Schaltungen. Gliederung. - PowerPoint PPT Presentation

Transcript of Hardwarearchitekturen und Rechensysteme

Page 1: Hardwarearchitekturen und Rechensysteme

Folien zur Vorlesung Hardwarearchitekturen und Rechensysteme vonProf. Dr. rer. nat. U. BrinkschulteProf. Dr.-Ing. L. Hedrich(basierend auf Materialien von Prof. Dr.-Ing. K. Waldschmidt)

Lehrstuhl fürEingebettete SystemeEingebettete Systeme

Hardwarearchitekturen und Rechensysteme

3. Boolesche Funktionen und Boolesche Algebra

Page 2: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:2

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

MotivationDie Boolesche Algebra wird benötigt für die Modellierung digitaler Schaltnetze und Schaltwerke, insbesondere für die

• Beschreibung,• Analyse und• Optimierung

digitaler Schaltungen.

Page 3: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:3

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Gliederung3.1 Boolesche Funktionen3.2 Boolesche Algebra3.3 Darstellung Boolescher Funktionen

3.3.1 KV-Diagramme3.3.2 Schaltpläne3.3.3 Zweistufige Normalformen3.3.4 Vektordarstellung3.3.5 Binäre Entscheidungsgraphen

3.4 Optimierung Boolescher Funktionen3.4.1 Graphisches Verfahren3.4.2 Verfahren von Quine/McCluskey

Page 4: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:4

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

3.1 Boolesche FunktionenReelle Funktionen einer Variablen:

x

y

f

Page 5: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:5

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Reelle und Boolesche FunktionenReelle Funktionen in n Variablen:

Boolesche Funktionen in n Variablen:

Page 6: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:6

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Funktion einer VariablenAlle Booleschen Funktionen einer Variablen:

1

0

f 2 f 3

f 1y

1

0

1

y

0

x

x0 1

0 1

0

1

y

0

y

x

x10

1

0

f

Page 7: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:7

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Alle Booleschen Funktionen einer Variablen

heißt Negation von . Bei analoger Interpretation des Minuszeichens wäre die Schreibweise ebenfalls erlaubt. Für Funktionen gilt entsprechend:

Literal:Die Größe heißt Literal. Literale sind als Quasivariable zu verstehen.

Page 8: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:8

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Einheitswürfel

Die Funktionswerte y aller Funktionen fi(x0; x1) können nur die Eckpunkte des Einheitswürfels belegen. Für jede Belegung der Funktionsargumente kann eine Boolesche Funktion genau einen von zwei Werten annehmen. Es existieren insgesamt 24 = 16 verschiedene Boolesche Funktionen mit zwei Variablen.

1

1

0 00

1

1x0

x

y

Page 9: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:9

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Booleschen Funktionen von zwei VariablenAlle Booleschen Funktionen von zwei Variablen:

Page 10: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:10

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Boolesche Funktionen von zwei VariablenProminente Funktionen zweier Variablen:

In der Praxis kommen NAND- und NOR-Gatter häufig vor, weil sie technologisch einfach zu realisieren sind.

Page 11: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:11

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Bemerkungen zu Booleschen Funktionen Die in der Infix-Schreibweise verwendeten Booleschen Operatoren entstammen der Booleschen Algebra. Die Negation besitzt die höchste Priorität. Die Konjunktion () besitzt eine höhere Priorität als die Disjunktion () .

Oft wird in Booleschen Ausdrücken der Konjungtionsoperator () weggelassen.

Die Äquivalenz entspricht der Negation der Antivalenz.

Die Antivalenz entspricht der einstelligen dualen Addition. Die Konjunktion entspricht dem Übertrag der einstelligen Addition. Gleichheit und Äquivalenz sollten nicht verwechselt werden.

Page 12: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:12

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Funktionen von n VariablenAuch bei mehr als zwei Variablen ist eine graphische Darstellung aufgrund des diskreten Wertebereichs möglich. Diese Darstellungen werden jedoch schnell unübersichtlich.

Vierdimensionaler Hyperwürfel mit eingetragenen Funktionswerten für genau eine Funktion

2

0

0

1

0

1

1

1

10

0

1

0

1

0 0

0

1

1

1

1

0

= 0x3

= 1x3

x0

x1

x

0

Page 13: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:13

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Funktionen von n Variablen Zur Darstellung Boolescher Funktionen eignen sich Funktionstafeln, in denen für jede Eingangsbelegung x der zugehörige Funktionswert notiert wird. Die Funktionstafel einer Booleschen Funktion in n Variablen hat genau 2n Zeilen.

Funktionstafel:

sind die Wahrheitswerte der Funktion.

Page 14: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:14

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Bemerkungen Es existieren 22n verschiedene Funktionen von n Variablen. Eine Funktionsspalte hat 2n Zeilen. Die Werte können als Dualzahl der Länge 2n interpretiert werden. Eine Dualzahl der Länge l kann aber 2l verschiedene Werte annehmen. Sind zwei Funktionen f1 und f2 voneinander verschieden, so sind auch deren Inverse voneinander verschieden.

Page 15: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:15

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Beispiel - Die 2-von-3 FunktionDie 2-von-3 Funktion liefert genau dann eine 1, wenn mindestens 2 der 3 Eingangsvariablen den Wert 1 haben.

Funktionstafel: 3-dimensionaler Hyperwürfel:

1

2

0

0

1

1

0

1

0 0

0

1

1

1

x 0

x 1

x

0

Page 16: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:16

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

3.2 Boolesche AlgebraEine Verknüpfungsstruktur , auf deren Trägermenge T zwei zweistellige Verknüpfungen definiert sind und eine einstellige Verknüpfung (Negation), heißt genau dann Boolesche Algebra, wenn die folgenden Axiome erfüllt sind.

Page 17: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:17

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Idempotenzgesetze

Beweis:11. Idempotenzgesetz der Konjunktion

12. Idempotenzgesetz der Disjunktion

Page 18: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:18

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Reduktionsgesetze

Beweis:13. Reduktionsgesetz der Konjunktion

14. Reduktionsgesetz der Disjunktion

Page 19: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:19

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Eindeutigkeit des inversen ElementsZu jedem existiert genau ein inverses Element , so dass gilt:

Beweis:

Aus der Eindeutigkeit des inversen Elements folgt:

Page 20: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:20

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Absorptionsregeln

Beweis:

Page 21: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:21

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Zusammenfassung

Page 22: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:22

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Gesetze von DeMorganGesetze: Wahrheitstafel:

Diese beiden Regeln haben große Bedeutung für die Umformung von Booleschen Ausdrücken. Sie lassen sich auf beliebige Variablenzahl verallgemeinern:

Page 23: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:23

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Der Shannon'sche InversionssatzJede nur mit den Operatoren für AND, OR und NOT gebildete Boolesche Funktion kann dadurch negiert werden, dass die Operatoren für AND und OR miteinander vertauscht werden und jedes Literal negiert wird. Außerdem sind 0 und 1 zu vertauschen.

Hinweis:In Booleschen Ausdrücken wird oft der Konjunktionsoperator ()

weggelassen.

Beispiel:

Page 24: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:24

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Der Shannon'sche EntwicklungssatzJede Boolesche Funktion kann durch eine Variable xi und die entsprechenden Co-Faktoren dargestellt werden:

Beispiel: Entwicklung nach den Variablen a und b

Page 25: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:25

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Das AND-OR-NOT-SystemJede Boolesche Funktion kann ausnahmslos durch alleinige Verwendung der Operatoren AND, OR und NOT dargestellt werden.

Ist eine Boolesche Funktion durch einen Booleschen Ausdruck gegeben, so liefert n-maliges Anwenden des Entwicklungssatzes einen Booleschen Ausdruck für f im AND-OR-NOT-System.Operatoren, die nicht im AND-OR-NOT-System enthalten sind, werden durch Anwendung auf eine Konstante eliminiert.

Page 26: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:26

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Vollständige OperatorsystemeNeben dem AND-OR-NOT-System gibt es noch andere so genannte vollständige Operatorsysteme. Vollständig weist auf die Darstellbarkeit jeder denkbaren Booleschen Funktion hin.Zum Nachweis der Vollständigkeit eines Operatorsystems genügt es zu zeigen, dass die Grundfunktionen AND, OR und NOT darstellbar sind.

Das NAND-System:

Das NOR-System:

Page 27: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:27

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

3.3 Darstellung Boolescher Funktionen2.3.1 KV-Diagramme2.3.2 Schaltpläne2.3.3 Zweistufige Normalformen2.3.4 Vektordarstellung2.3.5 Binäre Entscheidungsgraphen

Page 28: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:28

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

KV-DiagrammeKarnaugh-Veitch-Diagramme sind spezielle Venn-Diagramme (bekannt aus der Mengenalgebra), die zur Darstellung und insbesondere auch zur Minimierung Boolescher Funktionen verwendet werden, wenn die Zahl der Variablen nicht größer als 4 ist.Ein KV-Diagramm für eine Boolesche Funktion ist eine quadratische oder eine rechteckige (bestehend aus zwei Quadraten) Tafel, die aus Feldern zusammengesetzt wird, in die die Funktionswerte der Booleschen Funktion eingetragen werden.Definition:

Ein KV-Diagramm von ist eine graphische Darstellung der Funktionstabelle von f , wobei jeder Zeile der Tabelle genau ein numeriertes Feld im KV-Diagramm entspricht. Die Feldnummer entspricht der Zeilennummer, wenn die Variablen mit fallendem Index notiert werden.KV-Diagramme sind ein Ersatz für die Funktionstabelle einer Booleschen Funktion.

Page 29: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:29

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Konstruktion von KV-DiagrammenEin KV-Diagramm für eine Funktion in n Variablen entsteht induktiv durch eine Verdopplung einer KV-Tafel für n-1 Variablen durch Spiegelung. Die jeweils neu hinzukommende Variable hat in der alten Tafel den Wert 0, in der neuen den Wert 1.

3

x 1

x 2

x 0

x 0

x 1

x 2

x 0

x 1

x 3

x 2

x 1

x 0

x

Page 30: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:30

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Konstruktion von KV-DiagrammenBei 5 Variablen muss man sich auch benachbarte Felder in der 3. Dimension vorstellen, daher sind die Diagramme mit 5 Variablen zwar möglich aber nicht mehr sehr anschaulich.

Page 31: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:31

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

KV-Diagramm für die 2-von-3 Funktion

1

0 0 1 0

1 1 10

0 0 1 0

1 1 10

x 2

x 1

x 0

x 0

x x

x 1

xxx 2x x

2 0

2 10

Page 32: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:32

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Die ersten 4 Einheitshyperwürfel

0

00

1

0 1

1

0 10

1

0 1 00

1

0 1

1

= 0x 3 = 1x 3

x 0

x 1

x 2

x 0

x 1

x 0

x 2

x 1

x

Page 33: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:33

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

EinheitshyperwürfelDie KV-Diagramme für Schaltfunktionen von k Variablen k {1,2,3,4} entsprechen umkehrbar eindeutig den Einheitshyperwürfeln der Dimension k.Veranschaulicht wird dies durch eine planare Zeichnung der Hyperwürfel:

000 001

010 011

100101

110111

00 01

10 11

0 1

Page 34: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:34

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

3.3.2 SchaltpläneSchaltpläne sind gerichtete Graphen, die die Verknüpfungsoperatoren und die Klammerstruktur von Schaltfunktionen in einer in der Elektrotechnik üblichen genormten Art und Weise ausdrücken.

Für die Knoten werden Gatterzeichen nach DIN verwendet. Sich kreuzende Kanten im Schaltplan haben in einer korrespondierenden physikalischen Realisierung genau dann eine (elektrische) Verbindung, wenn sie mit einem Punkt versehen sind. Negationen werden durch Kreise an den Gattereingängen oder Gatterausgängen repräsentiert.

Page 35: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:35

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Gattertypen

&

1

1

1

DIN 40700 DIN-Vorgänger USAGatter-Typ

AND

OR

NOT

Antivalenz (XOR)

Äquivalenz (XNOR)

Page 36: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:36

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Beispiele für einfache Schaltpläne

Page 37: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:37

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Graphische Negation von Schaltfunktionen Ausgangsfunktion:

1. Negation des Ausgangs

f1

&

&

11

&

1

ab

c

d

f1

&

&

11

&

1

Negation

ab

c

d

Page 38: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:38

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Graphische Negation von Schaltfunktionen2. Anwendung der Regel von DeMorgan

Negierte Funktion

1&

&

11

&

&

ab

c

d

f

f&&

&&

1

1

1

ab

c

d

Page 39: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:39

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

KonjunktionstermeKonjunktionsterm:

Ein Konjunktionsterm ist eine Konjunktion von Literalen.

Jede Variable tritt höchstens einmal auf.

Minterm:Ein Minterm Mi ist ein Konjunktionsterm maximaler Länge, d.h. es kommen sämtliche Literale genau einmal in Mi vor.Es existiert genau eine Belegung der Literale in Mi, mit der Mi den Wert 1 annimmt.

Minterm einer Schaltfunktion:Ein Term Mi ist Minterm einer Booleschen Funktion f , wenn f für die Belegung den Wert 1 annimmt, für die auch Mi den Wert 1 annimmt.

Page 40: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:40

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

MintermeMinterme einer Booleschen Funktion f entsprechen umkehrbar eindeutig

1. denjenigen Zeilen der Funktionstabelle, die als Funktionswert die 1 haben.2. denjenigen Quadraten des KV-Diagramms dieser Funktion, die den Wert 1 tragen

Bemerkung:• Minterme werden mit fallenden Indizes notiert• die duale Interpretation der 1-Belegung eines Minterms entspricht exakt der

Zeilennummer seiner Position in der Funktionstabelle

Beispiel:

Page 41: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:41

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

DisjunktionstermeDisjunktionsterm:

Ein Disjunktionsterm entsteht durch die disjunktive Verknüpfung von Literalen.

Jede Variable tritt höchstens einmal auf.

Maxterm:Ein Maxterm ist ein Disjunktionsterm maximaler Länge (analog Minterm). Im KV-Diagramm stellt sich der Maxterm als genau eine 0 dar. Die restlichen Felder sind mit 1 belegt (invers zum KV-Diagramm eines Minterms).

Page 42: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:42

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

MaxtermeBeispiel:

2

0

1 1 1 1

111

1 1 1 1

1111x 3

x 0

x 1

x

Page 43: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:43

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Minterme und Maxterme in einer Funktionstabelle

Beispiel:

x2x1x0 y

0 0 0 0 Maxterm x2 x1 x0

0 0 1 0 Maxterm x2 x1 x0

0 1 0 1 Minterm x2 x1 x0

0 1 1 1 Minterm x2 x1 x0

1 0 0 0 Maxterm x2 x1 x0

1 0 1 1 Minterm x2 x1 x0

1 1 0 1 Minterm x2 x1 x0

1 1 1 0 Maxterm x2 x1 x0

Page 44: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:44

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Implikant und PrimimplikantImplikantEin Implikant I von f ist ein Konjunktionsterm, der f impliziert.

I = 1 f = 1Für jede Belegung, bei der I den Wert 1 annimmt, nimmt auch f den Wert 1 an.

PrimimplikantEin Primimplikant ist ein Implikant von f , der nicht mehr verkürzbar ist. Eine systematische Methode zur Bestimmung aller Primimplikanten muss unabhängig davon sein,

- in welcher Form die Boolesche Funktion angegeben ist und - in welcher Reihenfolge die Booleschen Rechenregeln zur Minimierung

der Funktion angewendet werden.

Page 45: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:45

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Algorithmus zur Verkürzung eines ImplikantenDie Prüfung, ob ein Implikant I verkürzbar ist, läuft wie folgt ab:

für alle Literale xk in I I um das Literal xk verkürzen zu Ik

Restliche Literale xi von Ik mit 1 bzw. 0 belegen, so dass gilt: Ik = 1 Wenn für alle nicht belegten Literale gilt: f = 1, dann ist Ik ein Implikant der Funktion und I kein Primimplikantende

Umkehrschluss: Wenn ein Implikant nach obigem Algorithmus nicht verkürzbar ist,

ist er Primimplikant.

Page 46: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:46

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Beispiel – Primimplikanten (1)Funktion: KV-Diagramm:

Implikanten:

1

1

1

111

1 1 1

1b

a

d

c

Page 47: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:47

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Beispiel – Primimplikanten (2)Verkürzung des Implikanten :

Primimplikant:

Verkürzung des Implikanten :

verkürzter Implikant: ist kein Primimplikant

Verkürze ab um a:

Verkürze ab um b:

Page 48: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:48

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Beispiel – Primimplikanten (3)Verkürzung des Implikanten :

verkürzter Implikant: ist kein Primimplikant

Page 49: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:49

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Beispiel – Primimplikanten (4)Schlussfolgerung:

Bei dem Implikanten I = d handelt es sich um einen Primimplikanten, weil er nicht verkürzt werden kann:

Die Implikanten I2 und I3 können durch den Primimplikanten I = d ersetzt werden. Für die Funktion f gilt:

Page 50: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:50

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Beispiel – Primimplikanten (5)Funktion: KV-Diagramm:

Primimplikanten:

1

1

1

111

1 1 1

1b

a

d

c

Page 51: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:51

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Implikat und PrimimplikatImplikatEin Implikat I von f ist ein Disjunktionsterm, der von f impliziert wird.

I = 0 f = 0Für jede Belegung, bei der I den Wert 0 annimmt, nimmt auch f den Wert 0 an.

PrimimplikantEin Primimplikat ist ein Implikat von f , der nicht mehr verkürzbar ist.

Page 52: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:52

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

3.3.3 Zweistufige NormalformenDisjunktive Normalform (DNF):

Die DNF einer Schaltfunktion f ist die Disjunktion von Konjunktionstermen, die Implikanten dieser Funktion sind.

Konjunktive Normalform (KNF):Ein Boolescher Ausdruck liegt genau dann in konjunktiver

Normalform vor, wenn er eine Konjunktion von Disjunktionstermen darstellt.

Page 53: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:53

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Kanonische NormalformenDie zweistufige Normalform einer Funktion ist nicht eindeutig bestimmt.Beispiel: Disjunktive Normalformen der 2-von-3 Funktion

Kanonische disjunktive Normalform (KDNF):Eine zweistufige disjunktive Normalform (DNF), die nur Minterme enthält, heißt kanonische disjunktive Normalform.

Kanonische konjunktive Normalform (KKNF):Eine zweistufige konjunktive Normalform (KNF), die nur Maxterme enthält, heißt kanonische konjunktive Normalform.

Die kanonischen Normalformen einer Booleschen Funktion sind, bis auf die Permutation der Terme und Literale innerhalb der Terme, eindeutig bestimmt.

Page 54: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:54

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Kanonische DNFDie KDNF einer Booleschen Funktion läßt sich direkt aus der Funktionstabelle ableiten.Beispiel: Die 2-von-3 Funktion

Page 55: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:55

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Konjunktive NormalformDie KNF einer Funktion f lässt sich leicht aus der DNF von ableiten. Hierzu ist lediglich der Shannon’sche Inversionssatz anzuwenden, d.h. es müssen alle Operatoren vertauscht und die Literale negiert werden.Beispiel: Die 2-von-3 Funktion

In der kanonischen Konjunktiven Normalform (KKNF) werden analog zur KDNF ausschließlich Maxterme als Disjunktionsterme verwendet.Beispiel: Die 2-von-3 Funktion

Page 56: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:56

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Vergleich boolescher FunktionenEine kanonische Normalform ermöglicht den direkten Vergleich auf Gleichheit zweier boolescher Funktionen. Dies kann verwendet werden um

- die Äquivalenz zweier Gatterschaltungen zu zeigen Vorgehen: 1. Forme die Gatterschaltungen in eine kanonische Form um 2. Ordne diese und zeige durch direkten Vergleich der Literale die Äquivalenz oder die Nichtäquivalenz.

- die Äquivalenz einer Gatterschaltung mit einer booleschen Funktion zu zeigen. Z.B. beschreibt die boolesche Funktion die Funktionsbeschreibung (Spezifikation) einer Schaltung und die Gatterschaltung ist die Implementierung

Problem: KKNF und KDNF sind unter Umständen sehr groß 2n (Min/Maxterme)

Page 57: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:57

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

3.3.4 VektordarstellungDie Größe

heißt Vektor mit den Elementen oder Komponenten xi.

Eine Funktion

lässt sich durch

Darstellen.

Page 58: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:58

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

VektoroperationenNegation:

Zweistellige Operationen:

Das Symbol steht stellvertretend für einen beliebigen Operator.Vektorreduktion:

Beispiel:

Page 59: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:59

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Beispiel – Äquivalenz zweier BinärzahlenMit Hilfe der gezeigten Formalismen kann die Äquivalenz zweier Binärzahlen wie folgt geschrieben werden:

Page 60: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:60

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

MatrixoperationenMatrix:

Transposition:

Negation:

Zweistellige Operationen:

Page 61: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:61

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

MatrixoperationenVerallgemeinerte Multiplikation:

Die Symbole und stehen für beliebige Matrixoperationen.

Zur Darstellung einer Vektorfunktion (Bündelfunktion) Y = f (X) in kanonischer Form werden die folgenden Matrixoperationen definiert: Die Elemente yij von AM BM bzw. AM BM entstehen aus der Konjunktion Ai Bj bzw. der Disjunktion Ai Bj der Spalten- (Bj) und Zeilenvektoren (Ai):

Page 62: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:62

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

VektordarstellungBei der Vektordarstellung werden Boolesche Funktionen durch Matrizen spezifiziert.

Die Zeilen der Matrizen können beliebig permutiert sein, jedoch muss die Zuordnung der Eingangsbelegungen zu den Funktionswerten erhalten bleiben.

M=

Y j

Y j

X

X

Y

i

X i

C M=D

Page 63: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:63

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Beispiel – Halbaddierer

Page 64: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:64

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Beispiel – Halbaddierer: ausführliche Darstellung der einzelnen Schritte:

[x0,x1] 0 0 1 10 1 0 1 =

[[x0,x1] [0,0], [x0,x1] [0,1], [x0,x1] [1,0], [x0,x1] [1,1]] =

[(x00)(x10), (x00)(x11), (x01)(x10), (x01)(x11)] =

[(x0x1), (x0x1), (x0x1), (x0x1)] =

[x0x1, x0x1, x0x1, x0x1]

alle möglichen Minterme

Page 65: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:65

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Beispiel – Halbaddierer: ausführliche Darstellung der einzelnen Schritte:

0 00 10 11 0

=[x0x1, x0x1, x0x1, x0x1]

KDNF

[[x0x1, x0x1, x0x1, x0x1] [0 0 0 1], [x0x1, x0x1, x0x1, x0x1] [0 1 1 0]] =

[x0x10 x0x10 x0x10 x0x11, x0x10 x0x11 x0x11 x0x10] =

[x0x1, x0x1 x0x1 ]

Page 66: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:66

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Strukturdarstellung – KDNF

m-1

0

D1

&

&

&

k 0

k 1

&C0

&

&

C1

1

1

1

y 1

y 0

&

&

k 0

0 0c

k 1

c 1 0

1

d 0 1

x 1

d 0 0

x 0

X

T

T

T

K

K

K

K Y

&

D r-1 k r-1

C m-1y

D

Page 67: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:67

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

3.3.5 Binäre EntscheidungsgraphenBei Binären Entscheidungsgraphen (Binary Decision Diagrams (BDD)) handelt es sich um eine Datenstruktur zur kompakten Darstellung und günstigen algorithmischen Handhabung Boolescher Funktionen. Die Darstellung entspricht einem gerichteten, azyklischen Graphen, dem ein Entscheidungsprozeß zugrunde liegt.Beispiele:

1

0 1a

0 0

0 1a

1

b

a0 1

10

10

Page 68: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:68

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Konstruktion von BDDs – FunktionstafelBDD der Funktion :

Page 69: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:69

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Konstruktion von BDDs – Shannon‘scher Entwicklungssatz (1)Entwicklung nach a:

Entwicklung nach b:

0

0 1

b

c

1

a

1

1

0 1

cb

a

Page 70: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:70

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Konstruktion von BDDs – Shannon‘scher Entwicklungssatz (2)Entwicklung nach c:

Bemerkung:Die Teil-Graphen des BDD entsprechen den Co-Faktoren, die durch den Shannon’schen Entwicklungssatz entstehen.

b

a

0

0

0 1

1

1c

0 1

Page 71: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:71

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Weitere binäre Entscheidungsgraphen Sortierte BDDs (Ordered BDD (OBDD)):

Ein BDD heißt sortiert, wenn auf jedem Pfad die Reihenfolge der Variablen einer einheitlichen, festen Ordnung unterliegt.Bemerkung:Für eine Boolesche Funktion f gibt es auch bei gegebener Ordnung i. A. mehrere OBDDs, die nicht isomorph sind.

Reduzierte OBDDs (ROBDDs)Ein OBDD heißt reduziert, wenn die Knotenanzahl minimal ist.Bemerkungen:Für eine gegebene Variablen-Ordnung ist der reduzierte OBDD einer Funktion f bis auf Isomorphien eindeutig bestimmt und jeder andere BDD enthält mehr Knoten. Die Knoten werden mit der Terminal-, der Eliminations- und der Isomorphieregel reduziert. Die Reduktion ist abgeschlossen, wenn keine dieser Regeln mehr angewendet werden kann.

Page 72: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:72

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Reduktionsregeln – TerminalregelFasse sämtliche Terminalknoten (Blätter) mit gleichem Wert zusammen, so dass lediglich zwei Terminale mit den Werten 0 bzw. 1 im Graphen verbleiben. Ausgehend von den Terminalen werden Ebene für Ebene sukzessive die Eliminations- und die Isomorphieregel angewendet.Beispiel: Die 2-von-3 Funktion

Page 73: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:73

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Reduktionsregeln – EliminationsregelWenn beide Kanten (0 und 1) eines gegebenen Knotens v zum gleichen Knoten u führen, dann eliminiere v und lenke alle eingehenden Kanten auf u um. Beispiel: Die 2-von-3 Funktion

u

0

u

v1

Page 74: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:74

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Reduktionsregeln – IsomorphieregelWenn zu dem gerade durchlaufenen Nichtterminalknoten v ein bereits durchlaufener Knoten u mit gleichem Variablen-Index existiert, dessen Kanten beide jeweils zu den gleichen Knoten wie die von v führen, dann eliminiere v und lenke alle eingehenden Kanten zum verbleibenden Knoten u um.Beispiel: Die 2-von-3 Funktion

1v u

1 0 10u

0

Page 75: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:75

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Kosten der ROBDD-DarstellungDie Knotenanzahl eines ROBDD ist von der Variablenordnung abhängig.Beispiel:

1

a

0

b

1

c

0d

10

10

0

1

0

a

1

c0

c1

b

1

b

0d

10

1 0

10

0 1

Page 76: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:76

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

FunktionstypenFunktionen können bzgl. der OBDD-Darstellung in Funktionsklassen

eingeteilt werden:1. Die Größe des BDDs wächst unabhängig von der Variablenreihenfolge

polynomial mit der Anzahl der Variablen.Beispiel: (Paritätsfunktion)Der BDD der Paritätsfunktion enthält 2n + 1 Knoten.

2. Die Größe des BDDs hängt stark von der Variablenreihenfolge ab.Beispiel:Die Variablenordnung = x0 < x1 < …< x2n-1 führt zu einer Darstellung mit 2n+2 Knoten,

wohingegen die Variablenordnung = x0 < xn < x1 < xn+1 < …< x2n-1 zu einer Darstellung mit 2n+1 Knoten führt.

3. Die Größe des BDDs wächst unabhängig von der Variablenreihenfolge exponentiell mit der Anzahl der Variablen.Beispiel: Multiplikation zweier n-Bit Zahlen

Der Aufwand für das Finden der optimalen Reihenfolge ist NP-vollständig.

Page 77: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:77

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Operationen auf BDDs (1)Die Verknüpfung zweier BDDs basiert auf einer Erweiterung des Entwicklungssatzes:

Das Symbol steht stellvertretend für einen beliebigen Booleschen Operator. (, , , , usw.)Die Beziehung wird auf die beiden BDDs für f und g startend mit den jeweiligen Wurzelknoten in der Variablenreihenfolge angewendet.

Bemerkung: Die Variablenreihenfolge muß für beide BDDs einheitlich sein. Die Verknüpfung von f und g zu h = f g hat im worst case eine Bearbeitungsdauer, die dem Produkt der Größe der beiden Graphen entspricht (O(| f || g |)).

Page 78: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:78

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Operationen auf BDDs (2)Es seien vf und vg die zu einem bestimmten Zeitpunkt betrachteten Knoten der

beiden Graphen:1. Sind beide Knoten Nonterminalknoten mit gleichen Bezeichnern, wird im

Verknüpfungsgraphen der Knoten v = vf = vg erzeugt und der Algorithmus rekursiv auf die Kinder von vf und vg angewendet. Die Verknüpfung von n0(vf) und n0(vg) ergibt n0(v), die Verknüpfung von n1(vf) und n1(vg) ergibt n1(v). (Entwicklungssatz vollständig angewendet)

2. Sind beide Knoten Nonterminalknoten mit verschiedenen Bezeichnern oder ist nur einer der Knoten ein Nonterminalknoten, so sei vf der Knoten der in der Variablenreihenfolge vor dem Knoten vg kommt. Im Verknüpfungsgraphen wird der Knoten v = vf erzeugt und der Algorithmus wird rekursiv auf die Kinder von vf und vg angewendet. Die Verknüpfung von n0(vf) und vg ergibt n0(v), die Verknüpfung von n1(vf) und vg ergibt n1(v). (Entwicklungssatz auf f angewendet)

3. Sind beide Knoten Terminalknoten, ergibt sich der Funktionswert aus der Verknüpfung beider Einzelfunktionen, W(vf vg) = W(vf) W(vg).

Page 79: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:79

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Beispiel – Operationen auf BDDs (1)Die Verknüpfung

wird bei einer angenommenen Variablenordnung = a < b < c durch die folgenden ROBDDs dargestellt:

Entwickungssatz:

g(a,b,c)a

c

1 0

b

c

10

f(a,b,c)10

0 1 0

0

1

1

Page 80: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:80

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Beispiel – Operationen auf BDDs (2)Anwendung der Regel 2:Die beiden Wurzelknoten der Funktionen f(a,b,c) und g(a,b,c) besitzen verschiedene Bezeichner und der Knoten a kommt in der Variablenreihenfolge vor dem Knoten b. Für beide Belegungen der Variablen a werden die Co-Faktoren der Funktionen f(a,b,c) und g(a,b,c) gebildet, indem die Kanten des Knoten a verfolgt werden.

g(a,b,c)a

c

1 0

b

c

10Regel 2 (Entwicklungssatz auf f anwenden)

f(a,b,c)10

0 1 0

0

1

1

a

1

0 1

f(0,b,c)

b

c

100

0

1

1

g(0,b,c)

b

c

100

0

1

1

c

1 00 1

f(1,b,c) g(1,b,c)

Page 81: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:81

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Beispiel – Operationen auf BDDs (3)Anwendung der Regel 2:Die Co-Faktoren f(0,b,c) und g(0,b,c) besitzen verschiedene Bezeichner.

g(a,b,c)

c

100 1

b

a

c

1 0

b

c

10

b

c

100

0

1

1

c

1 00 1

b

c

100

0

1

1

a

1

01 1

Regel 2

Regel 2

f(a,b,c)10

0 1 0

0

1

1

0 1

0 1

g(0,1,c)f(0,1,c)f(0,0,c) g(0,0,c)

Page 82: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:82

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Beispiel – Operationen auf BDDs (4)Anwendung der Regel 2:Die Co-Faktoren f(1,b,c) und g(1,b,c) besitzen verschiedene Bezeichner.

g(a,b,c)

c

100 1

b b

a

c

1 0

b

c

10

b

c

100

0

1

1

c

1 00 1

b

c

100

0

1

1

a

1

01 1

Regel 2

Regel 2

f(a,b,c)10

0 1 0

0

1

1

Regel 2

0 1

0 1 0 1

c

1 00 1 0

g(1,0,c)f(1,0,c)

c

100 1

c

1 00 1

f(1,1,c) g(1,1,c)

Page 83: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:83

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Beipiel – Operationen auf BDDs (5)Anwendung der Regel 3:Da es sich bei beiden Knoten um Terminalknoten handelt, ergibt sich der Wert der verknüpften Funktionen als Verknüpfung der Co-Faktoren f(0,0,c) und g(0,0,c).Bemerkung:Erst bei Anwendung der Regel 3 wird die Verknüpfung (in diesem Beispiel ) durchgeführt!

g(a,b,c)

c

100 1

c

1 00 1

c

1 00 1

c

100 1

b b

a

c

1 0

b

c

10

b

c

100

0

1

1

c

1 00 1

b

c

100

0

1

1

a

1

1

01 1 0

Regel 2

Regel 2

f(a,b,c)10

0 1 0

0

1

1

Regel 2

Regel 3

0 1

0 1 0 1

Page 84: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:84

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Beipiel – Operationen auf BDDs (6)Anwendung der Regel 2:Die Co-Faktoren f(0,1,c) und g(0,1,c) besitzen jeweils verschiedene Bezeichner.Anwendung der Regel 2:Die Co-Faktoren f(1,0,c) und g(1,0,c) besitzen jeweils verschiedene Bezeichner.

g(a,b,c)

c

100 1

c

1 00 1

c

1 00 1

c

100 1

b b

00011101

cc

a

c

1 0

b

c

10

b

c

100

0

1

1

c

1 00 1

b

c

100

0

1

1

a

1

1

01 1 0

Regel 2

Regel 2

f(a,b,c)10

0 1 0

0

1

1

Regel 2

Regel 2 Regel 2Regel 3

0 1

0 1 0 1

1010

Page 85: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:85

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Beipiel – Operationen auf BDDs (7)Anwendung der Regel 1:Die beiden betrachteten Knoten besitzen den gleichen Bezeichner. Für beide Belegungen der Variablen c werden die Co-Faktoren bestimmt, indem die Kanten des Knoten c zu den Terminalen verfolgt werden.

1001

g(a,b,c)

c

100 1

c

1 00 1

c

1 00 1

c

100 1

b b

00011101

ccc

a

c

1 0

b

c

10

b

c

100

0

1

1

c

1 00 1

b

c

100

0

1

1

a

1

1

01 1 0

Regel 2

Regel 2

Regel 1

f(a,b,c)10

0 1 0

0

1

1

Regel 2

Regel 2 Regel 2Regel 3

0 1

0 1 0 1

1010 0 1

Page 86: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:86

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Beipiel – Operationen auf BDDs (8)Anwendung der Regel 3:Bei allen noch nicht betrachteten Knoten handelt es sich um Terminale. Bemerkung:Der verknüpfte OBDD ist durch die erzeugte Knoten und Terminale gegeben.

g(a,b,c)

c

100 1

c

1 00 1

c

1 00 1

c

100 1

b b

100100011101

ccc

a

c

1 0

b

c

10

b

c

100

0

1

1

c

1 00 1

b

c

100

0

1

1

a

1101111

1

01 1 0

Regel 2

Regel 2

Regel 1

f(a,b,c)10

0 1 0

0

1

1

Regel 2

Regel 2 Regel 2

Regel 3 Regel 3Regel 3Regel 3Regel 3Regel 3

Regel 3

0 1

0 1 0 1

1010 0 1

Page 87: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:87

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Beispiel – Operationen auf BDDs (9)

c

100 1

c

1 00 1

c

1 00 1

c

100 1

b b

100100011101

ccc

a

c

1 0

b

c

10

b

c

100

0

1

1

c

1 00 1

b

c

100

0

1

1

a

1101111

1

01 1 0

b

1

c

1

c

1 1

c

1 0 1

b

a

0 10 1 0 1

100 1

0 1

Regel 2

Regel 2

Regel 1

f(a,b,c)10

0 1 0

0

1

1

Regel 2

Regel 2 Regel 2

Regel 3 Regel 3Regel 3Regel 3Regel 3Regel 3

Regel 3

0 1

0 1 0 1

1010 0 1

g(a,b,c)

Page 88: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:88

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Beispiel – Operationen auf BDDs (10)

1

c

0

b

a

0 1

1 0

0 1

b

1

c

1

c

1 1

c

1 0 1

b

a

0 10 1 0 1

100 1

0 1

Reduktion

Page 89: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:89

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

3.4 Optimierung Boolescher FunktionenDie Optimierung boolescher Funktionen kann nach folgenden Kriterien erfolgen: Verzögerungszeit

Die Zeit die ein Signal benötigt um vom Eingang durch alle Gatter hindurch zum Ausgang zu gelangen. Dies wird in späteren Kapiteln noch explizit behandelt. Ein grobes Maß ist die Verschachtelungstiefe der booleschen Ausdrücke.

FlächenbedarfDie Anzahl und Größe der Gatter. Ein Maß dafür wird in diesem

Kapitelvorgestellt.

Die Verfahren zur Flächenoptimierung bei schon minimalem Zeitbedarf sind: 3.4.1 Graphisches Verfahren im KV-Diagramm 3.4.2 Verfahren von Quine/McCluskey

Page 90: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:90

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Optimierung von NormalformenKanonische Normalformen lassen sich oft zu einfacheren, nicht kanonischen Normalformen umformen, die zum Teil oder ganz aus unvollständigen Termen bestehen. Dies gilt auch für nicht kanonische Normalformen.Beispiel:

Allerdings lässt sich nicht jede kanonische Normalform vereinfachen.Beispiel:

Page 91: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:91

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Optimierung von Normalformen (2)Satz von Quine:

Eine minimale Normalform besteht aus einer Teilmenge aller Primimplikanten.

Vorgehensweise zur Optimierung von Normalformen:1. Alle Primimplikanten bestimmen.2. Auswahl einer kostenminimalen Teilmenge aller Primimplikanten bestimmen, die alle

Minterme der Funktion überdeckt.

Vergleichskriterium (Kosten): = #Literale + #Terme#Literale = Anzahl der Eingänge der ersten Ebene einer zweistufigen Implementierung#Terme = Anzahl der Eingänge der zweiten Ebene einer zweistufigen Implementierung

Ziel der Optimierung von Normalformen ist die Minimierung von .

Page 92: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:92

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Beispiel – Vergleichskriterium Für eine Implementierung der Funktion

werden 1 AND-Gatter mit drei Eingängen, 1 AND-Gatter mit zwei Eingängen und 1 OR-Gatter mit zwei Eingängen benötigt.

Page 93: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:93

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

3.4.1 Graphisches VerfahrenBei der graphischen Methode zur Minimierung von Schaltnetzen ist vor allem die Intuition des Schaltungsentwicklers gefragt, da es auf das Erkennen von Symmetrien ankommt.Diese Vorgehensweise ist nur für Schaltungen geringer Komplexität geeignet.Vorgehensweise:

1. Ermittlung aller Primimplikanten P( f ) einer Funktion f2. Auswahl derjenigen {p1, p2, … , pk} P(f), für die

(a) NF(f) = p1 p2 … pk = f(b) = min

Die Menge P( f ) läßt sich direkt aus dem KV-Diagramm entnehmen. Die Suche nach NFmin( f ) läßt sich durch Klassifizierung der Primimplikanten erleichtern.

Page 94: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:94

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Klassifizierung der PrimimplikantenKern-Primimplikant PK:

Ein Primimplikant p ist ein Kern-Primimplikant, d.h. p PK, falls p von der Disjunktion aller übrigen p P( f ) nicht überdeckt wird.Bemerkung: Ein Kern-Primimplikant überdeckt mindestens einen Minterm, der von keinem anderen Primimplikanten überdeckt wird.

Absolut eliminierbare Primimplikanten PA:Ein Primimplikant p ist ein absolut eliminierbarer Primimplikant, d.h. p PA, falls p von der Disjunktion aller PK überdeckt wird.Bemerkung: Ein absolut eliminierbarer Primimplikant wird vollständig von Kern-Primimplikanten überdeckt.

Relativ eliminierbare Primimplikanten PR:Ein Primimplikant p ist ein relativ eliminierbarer Primimplikant, d.h. p PR, falls p von der Disjunktion von P( f ) - PA überdeckt wird. Bemerkung: Ein relativ eliminierbarer Primimplikant überdeckt nur mehrfach überdeckte Minterme, wobei nicht alle von Kern-Primimplikanten überdeckt werden.

Page 95: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:95

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Minimale NormalformSatz:Die minimale Normalform NFmin( f ) besteht nur noch aus den Kern-Primimplikanten PK und einer Auswahl relativ eliminierbarer Primimplikanten p PR derart, dass kein Primimplikant von der Disjunktion der übrigen p NFmin( f ) überdeckt wird.

Im allgemeinen erfüllen für eine gegebene Funktion f mehrere NF diese Bedingung. Von ihnen wird diejenige ausgewählt, für die der Kostenwert minimal ist.

Page 96: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:96

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Beispiel – Minimale Normalform

b

minimale NFPrimimplikanten irredundante NF

1 1

1 1

1111

1 1

1 1

1 1

1111

1 1

1 1

1 1

1111

1 1

a

b

c

d d

b

a

c

a

c

d

irredundante und

Page 97: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:97

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Optimierung unvollst. spezif. FunktionenVorgehensweise:

1. Alle irredundanten disjunktiven Normalformen für die Funktion aufstellen.2. Für jede Form nach 1 diejenigen don’t cares zu Implikanten machen, die zur

Elimination von Literalen in einem Term oder zur Verschmelzung mehrerer Terme führen.

3. Auswahl einer minimalen Form aus 2.

Beispiel:

a

1

1 1

0

00

0 11

1 1

0

0

- -

0

a

c

b b

c

Page 98: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:98

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Ermittlung minimaler konjuktiver NFVorgehensweise:

1. Inversion der gegebenen Funktion f (vertauschen von 0 und 1).2. Ermittlung der minimalen disjunktiven NF für f nach bekanntem Verfahren.3. Algebraische Umwandlung der negierten disjunktiven Minimalform in eine konjunktive

NF mit Hilfe des Gesetzes von DeMorgan oder Anwendung des Shannon’schen Inversionssatzes.

a

1

1 1

0

01

0 1

b

c

a

0

0 0

1

10

1 0

b

c

Page 99: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:99

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Ermittlung minimaler konjuktiver NFOder einfach direkt durch Zusammenfassung der 0-Stellen und Inversion der Variablen:

a

1

1 1

0

01

0 1

b

c

Page 100: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:100

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

3.4.2 Verfahren von Quine/McCluskeyVorgehensweise:

1. Ermittlung aller Primimplikanten P( f ) einer Funktion f2. Auswahl derjenigen {p1,p2,… ,pk} P(f), für die

a) NF(f) = p1 p2 … pk = fb) = min

Page 101: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:101

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Bestimmung aller PrimimplikantenIdee von Quine:

Wiederholte Anwendung aller möglichen Verschmelzungsbeziehungen:

Hilfreiche Verfeinerung von McCluskey:1. Statt Minterme werden die eindeutig zugeordneten Argument-n-Tupel notiert.2. Terme (l-Tupel) gleicher Länge l kommen jeweils in eine eigene Spalte. Durch

Verschmelzung weggefallene Variablen werden durch „-“ gekennzeichnet.

Page 102: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:102

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Algorithmus # Zunächst alle Primimplikanten bestimmen1) Aufstellen der Mintermform2) Bestimmung der Primimplikanten durch Verschmelzung # Ab hier nun die Lösung des Überdeckungsproblems Solange noch nicht alle Minterme abgedeckt Solange noch Veränderungen in der Primimplikanten-Minterm-Tabelle 3) Aufstellen der Primimplikanten-Minterm-Tabelle 4) Aufsuchen der Kern-Primimplikanten 5) Reduzierte Überdeckungsmatrix 6) Auslassen doppelt erfasster Minterme 7) Auslassen bereits erfasster Terme 8) Auslassen ungünstiger Primimplikanten 9) Primimplikanten zweiter Art Ende von „Solange noch Veränderungen 11) Aufsuchen der einfachsten PrimimplikantenkombinationEnde Solange noch nicht alle Minterme abgedeckt

Page 103: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:103

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Bestimmung aller Primiplikanten1) Aufstellen der Mintermform

Eine gegebene Boolesche Funktion wird durch Anwendung der inversen Elemente in die Mintermform überführt.

Page 104: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:104

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Bestimmung aller Primimplikanten2) Bestimmung der Primimplikanten durch Verschmelzung

• Die Minterme werden, sortiert nach der Anzahl der Einsen, in einer Liste (Implikantentabelle) untereinander angeordnet.

• Danach werden alle Minterme dahingehend verglichen, ob sie sich nur in einer Variable unterscheiden, die einmal negiert und einmal nicht negiert vorkommt. Hierfür müssen nur Minterme benachbarter Gruppen verglichen werden.

Page 105: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:105

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Bestimmung aller Primimplikanten• Existieren solche Terme, dann werden

sie zusammengefasst, wobei ein verkürzter Term entsteht. Die verkürzten Terme werden in einer zweiten Spalte angeordnet.

• Die Terme und unterscheiden sich nur in der Variablen c und können daher durch den verkürzten Term dargestellt werden.

Page 106: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:106

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Bestimmung aller Primimplikanten• Anschließend werden die

verkürzten Terme verkürzt. Das Verfahren terminiert, wenn keine Verkürzung mehr möglich ist.

Page 107: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:107

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Bestimmung aller Primimplikanten• Abschließend werden

alle Terme mit einem Stern markiert, die zu mindestens einer Verkürzung herangezogen wurden.

• Alle nicht markierten Terme werden als Primimplikanten oder Primterme bezeichnet.

Page 108: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:108

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

ÜberdeckungsproblemAus der Menge der Primimplikanten muß die Teilmenge bestimmt werden, deren Primimplikanten alle Minterme überdeckt und zu minimalen Kosten führt. Dieses Problem kann mit dem Rucksackproblem verglichen werden und ist somit NP-hart.

Heuristik:Aus der Menge der Primimplikanten sukzessive solche auswählen,

die möglichst viele, noch nicht überdeckte Minterme neu überdecken. Für die Lösung der Heuristik gilt:

Page 109: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:109

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Überdeckungsproblem3) Aufstellen der Primimplikanten-Minterm-Tabelle

Primimplikanten und Minterme werden in einer Tabelle derart angeordnet, dass die Minterme die Spaltenbezeichnung bilden und die Primimplikanten die Zeilenbezeichnung.

Page 110: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:110

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

ÜberdeckungsproblemJedes Feld der Tabelle, in dem sich die Zeile eines Primimplikanten mit der Spalte eines in ihm enthaltenen Minterms kreuzt, wird mit einem Stern gekennzeichnet.

Die Disjunktion einer Anzahl von Primimplikanten, deren Sterne das Schema horizontal überdecken ist äquivalent zur Ausgangsfunktion. Aufgabe: Finde die einfachste horizontale Überdeckung hinsichtlich .

Page 111: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:111

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Zum Vergleich: Alle Primimplikanten im KV-Diagramm

1

1

1

1

1

1

11 1

a

b

c

d

1

Kern-Primimpl.

Relative eliminierbare P.

Page 112: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:112

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Überdeckungsmatrix4) Aufsuchen der Kern-Primimplikanten

Wenn in der Überdeckungsmatrix Spalten mit nur einem einzigen Stern auftreten, so bedeutet das, dass der Primimplikant der zugehörigen Zeile in der endgültigen Form enthalten sein muß. Bei den Primimplikanten handelt es sich um Kern-Primimplikanten. Im 4.Schritt werden alle Spalten ermittelt, die nur einen Stern enthalten und die zugehörigen Kern-Primimplikanten markiert.

Kern-Primimplikanten:

Page 113: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:113

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Überdeckungsmatrix5) Reduzierte Überdeckungsmatrix

Im 5.Schritt wird aus der Überdeckungsmatrix eine reduzierte Überdeckungsmatrix gebildet, in der die Kern-Primimplikanten und alle überdeckten Minterme nicht mehr auftreten.

Page 114: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:114

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Überdeckungsmatrix6) Auslassen doppelt erfasster Minterme

Hat in der Überdeckungsmatrix eine Spalte in mindestens den Feldern Sterne, in denen auch eine andere Spalte Sterne hat, dann kann dieser Minterm ausgelassen werden (Spaltendominanz).

Beispiel:

Die Spalte wird von der Spalte dominiert und kann entfernt werden.

Page 115: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:115

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Überdeckungsmatrix7) Auslassen bereits erfasster Terme

Durch den 6.Schritt können Zeilen entstehen, die keinen Stern mehr enthalten. Die entsprechenden Primimplikanten können

weggelassen werden.

Page 116: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:116

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Überdeckungsmatrix8) Auslassen ungünstiger Primimplikanten

Ein Primimplikant p1 dominiert einen Primimplikanten p2, wenn mindestens alle Minterme, welche von p2 überdeckt werden auch von p1 überdeckt werden (Zeilendominanz). Primimplikanten, welche von Primimplikanten mit geringeren oder gleichen Kosten dominiert werden, können weggelassen werden.

Beispiel:

Die Zeilen können entfernt werden.

Page 117: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:117

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Überdeckungsmatrix8) Auslassen ungünstiger Primimplikanten

Ursprüngliches Beispiel

Page 118: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:118

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Überdeckungsmatrix9) Primimplikanten zweiter Art

Nach der Durchführung von Schritt 8 können Spalten auftreten, die wiederum nur einen Stern enthalten. Die dazugehörigen Implikanten heißen Primimplikanten zweiter Art.

Page 119: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:119

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Das ganze im KV-Diagramm

Primimplikanten

1

1

1

1

1

1

11 1

a

b

c

d

1

Minimale Überdeckung

1

1

1

1

1

1

11 1

a

b

c

d

1

Kern-Primimplikanten

Relative eliminierbare Pi.

Bemerkung: im KV-Diagramm können die Kosten nur indirektabgelesen werden

Page 120: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:120

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Überdeckungsmatrix10) Iterative Überdeckung

Die Schritte 5-9 werden so lange durchgeführt, bis sie terminieren.

11) Aufsuchen der einfachsten PrimimplikantenkombinationFinde die einfachste horizontale Überdeckung der

Überdeckungsmatrix aus Schritt 10, die alle noch nicht erfassten Minterme überdeckt.

Schritt 11 ist der einzige unsystematische in diesem Verfahren.

Page 121: Hardwarearchitekturen und Rechensysteme

HWR · K3Nr.:121

Uwe Brinkschulte Eingebettete Systeme Lars Hedrich Entwurfsmethodik

Überdeckungsmatrix11) Aufsuchen der einfachsten Primimplikantenkombination

Anderes Beispiel mit 5 Variablen: Die Funktion

liefert nach allen Schritten bis einschließlich 10) folgende Tabelle: