k331-BA_Normalformen_zweistufige_Synthese_DNF

Page 1

page-01.png

Kapitel 3 – Kombinatorische Logik

  1. Kombinatorische Schaltkreise
  2. Boolesche Algebren
  3. Boolesche Ausdrücke, Normalformen, zweistufige Synthese
    • 3.1 Boolesche Ausdrücke, Disjunktive Normalform
    • 3.2 zweistufige Logikminimierung
  4. Berechnung eines Minimalpolynoms
  5. Arithmetische Schaltungen
  6. Anwendung: ALU von ReTI

Albert-Ludwigs-Universität Freiburg
Prof. Dr. Armin Biere
Institut für Informatik

Page 2

page-02.png

Kombinatorische Schaltkreise – zweistufig

Ziel:
Wir werden zeigen, dass sich jede Boolesche Funktion als ein Polynom, d.h. als eine Disjunktion (ODER-Verknüpfung) von Monomen, die ihrerseits Konjunktionen (UND-Verknüpfungen) von Eingangsvariablen und negierten Eingangsvariablen sind, darstellen lässt.

Wir werden für solche Darstellungen Kostenkriterien aufstellen und diese optimieren.

Monome und Polynome sind spezielle Boolesche Ausdrücke. Beginne daher mit einer exakten Definition, was wir unter einem Booleschen Ausdruck verstehen.

Page 3

page-03.png

Boolesche Ausdrücke – allgemein

Formal vollständige Definition Boolescher Ausdrücke:

  • Syntax (korrekte Schreibweise) → Def. Boolescher Ausdrücke
  • Semantik (Bedeutung) → Interpretationsfunktion von

Page 4

page-04.png

Syntax Boolescher Ausdrücke

Sei eine endliche Menge von Variablen.
Sei ein Alphabet.

Definition:
Die Menge der vollständig geklammerten Booleschen Ausdrücke über ist die kleinste Teilmenge von , die folgendermaßen induktiv definiert ist:

  • , und , , sind Boolesche Ausdrücke
  • Sind und Boolesche Ausdrücke, so auch:
    • die Disjunktion ,
    • die Konjunktion ,
    • die Negation .

Bsp.: .

Page 5

page-05.png

Schreibweise von

Konvention: Negation bindet stärker als Konjunktion , Konjunktion bindet stärker als Disjunktion .

→ Klammern können weggelassen werden, ohne dass Mehrdeutigkeiten entstehen.

Man schreibt auch:

  • statt : ,
  • statt : ,
  • statt : , , .

→ So „vereinfachte" Ausdrücke entsprechen zwar nicht genau der obigen Definition, es gibt aber für jeden solchen Ausdruck einen äquivalenten vollständig geklammerten Ausdruck im Sinne der Definition.

Beispiel: Der äquivalente vollständig geklammerte Ausdruck für „" wäre „".

Page 6

page-06.png

Semantik Boolescher Ausdrücke

Definition:
Jedem Booleschen Ausdruck kann durch eine Interpretationsfunktion eine Boolesche Funktion zugeordnet werden.

wird folgendermaßen induktiv definiert:

ü

Page 7

page-07.png

Alternative Betrachtung der Semantik Boolescher Ausdrücke

Sei ein Boolescher Ausdruck.

für ein ergibt sich durch Ersetzen von durch in , für alle , und Rechnen in der Booleschen Algebra .

Bsp.:

Gilt für eine Boolesche Funktion , so sagen wir, dass ein Boolescher Ausdruck für ist, bzw. dass die Boolesche Funktion beschreibt.

In Zukunft schreiben wir auch statt .

Zwei Boolesche Ausdrücke und heißen äquivalent () genau dann, wenn .

Sie sind gleich, wenn .

Page 8

page-08.png

Beziehung zwischen Schaltkreisen und Booleschen Ausdrücken (1/2)

Zu jedem Ausgang eines Schaltkreises lässt sich durch „symbolische Simulation" ein Boolescher Ausdruck berechnen, der die entsprechende Boolesche Funktion darstellt.

Symbolische Simulation benutzt zur Simulation eines Schaltkreises keine festen Booleschen Werte an den Inputs, sondern Boolesche Variablen.

Es wird dann für jeden Knoten ein Boolescher Ausdruck zu der Funktion bestimmt, die der Knoten berechnet.

Page 9

page-09.png

Beziehung zwischen Schaltkreisen und Booleschen Ausdrücken (2/2)

( ist eine abkürzende Schreibweise für .)

Page 10

page-10.png

Spezielle Boolesche Ausdrücke: Literale

Definition:
Als Literal einer Booleschen Funktion wird der Ausdruck oder bezeichnet, wobei , , eine Eingangsvariable von ist.

  • (auch geschrieben) wird positives Literal genannt,
  • (auch geschrieben) wird negatives Literal genannt.

Anmerkung:
Eine andere Notation für ein negatives Literal ist oder .

Wie schon erwähnt bezeichnet das Literal die Boolesche Funktion mit genau dann, wenn und ...

... bezeichnet die Boolesche Funktion mit genau dann, wenn .

Page 11

page-11.png

Spezielle Boolesche Ausdrücke: Monome

Definition:
Ein Monom ist eine Konjunktion von Literalen, in der kein Literal mehr als einmal vorkommt und zu keiner Variable sowohl das positive als auch das negative Literal vorkommt. Außerdem ist „1" ein Monom.

  • und sind Monome,
  • ist kein Monom,
  • ist kein Monom.

Ein Monom heißt vollständig oder Minterm, wenn jede Variable entweder als positives oder als negatives Literal vorkommt.

Wenn drei Variablen betrachtet werden, ist ein Minterm, ist kein Minterm.

Für eine Eingabebelegung heißt

(Notation: , )

der zu gehörende Minterm.

Page 12

page-12.png

Monome als Beschreibung Boolescher Funktionen

Beispiel: Das Monom bezeichnet die Boolesche Funktion mit genau dann, wenn und . Wir schreiben vereinfachend auch .

Beispiel: Der Minterm bezeichnet die Boolesche Funktion mit genau dann, wenn .

Page 13

page-13.png

Spezielle Boolesche Ausdrücke: Polynome

Eine Disjunktion von paarweise verschiedenen Monomen heißt Polynom. Außerdem ist „0" ein Polynom. Sind alle Monome des Polynoms vollständig, so heißt das Polynom vollständig.

Beispiel: Bei einer Booleschen Funktion mit drei Variablen ist

ein Polynom,

ein vollständiges Polynom.

Das Polynom beschreibt die Boolesche Funktion mit genau dann, wenn oder . Wir schreiben vereinfachend auch .

Page 14

page-14.png

Disjunktive Normalform

Ein Polynom für heißt auch disjunktive Normalform (DNF) von . Ein vollständiges Polynom für heißt auch kanonische disjunktive Normalform (KDNF) von .

ist in DNF, aber nicht in KDNF.

Manchmal auch als Summe von Produkten bezeichnet, engl. „sum of products (SOP)"

nicht zu verwechseln mit Konjunktiver Normalform (KNF) bei SAT und in der Logik, engl. „conjunctive normal form (CNF)" bzw. „product of sums (POS)"

Page 15

page-15.png

Bestimmung der kanonischen disjunktiven Normalform

Für heißt die Erfüllbarkeitsmenge (ON-Menge) von .

Die KDNF ist gegeben durch:

Die KDNF ist (bis auf Anordnung von Literalen in Mintermen und von Monomen im Polynom) eindeutig.

Beispiel: KDNF für

0 0 0 1
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1

Anmerkung:
Analog zur Erfüllbarkeitsmenge ist als die Unerfüllbarkeitsmenge (OFF-Menge) definiert.

Page 16

page-16.png

Realisierungen von DNF

Erste Möglichkeit:
Benutze „gewöhnliche" UND- und ODER-Gatter.

Zweite Möglichkeit: PLAs (Programmable Logic Arrays)
Programmierbare logische Felder können nur Funktionen in DNF implementieren. Sie benötigen dafür weniger Transistoren als eine Realisierung mit UND- und ODER-Gattern.

Page 17

page-17.png

Realisierung durch Logikgatter

Bilde erst alle Monome durch UND-Gatter. Verbinde dann alle Monome mit ODER-Gattern.

Notation: Man verzichtet in der Regel auf die Abbildung von Invertern.

Die Kosten ergeben sich dann aus allen benötigten UND- und ODER-Gattern.

Page 18

page-18.png

Programmierbare logische Felder (PLA)

Zweistufige Darstellung zur Realisierung von Booleschen Polynomen.

mit

  • UND-Feld: Enthält Monom Literale, so werden Transistoren in der entsprechenden Zeile des UND-Feldes benötigt.
  • ODER-Feld: Besteht die Beschreibung von Funktion aus Monomen, so benötigt man Transistoren in der entsprechenden Spalte des ODER-Feldes.

Fläche: (Anzahl der benötigten Monome)

Page 19

page-19.png

PLAs: Realisierungsdetails

Beispiel:

Page 20

page-20.png

Realisierungsdetails, waagerechte Monomleitungen

Ein n-Kanal-Transistor leitet, wenn sein Gate mit 1 belegt ist. Wenn ein n-Kanal-Transistor leitet, dann zieht er die entsprechende Monomleitung auf 0.

Bsp.: Die erste Monomleitung ist genau dann 1, wenn beide Transistoren der Reihe sperren, d.h. wenn und .

⇒ Die Leitung realisiert die Funktion .

Page 21

page-21.png

Realisierungsdetails, senkrechte Funktionsleitungen

Ein n-Kanal-Transistor leitet, wenn sein Gate mit 1 belegt ist. Wenn n-Kanal-Transistor leitet, dann zieht er die entsprechende Leitung auf 0.

Bsp.: Der -Ausgang ist genau dann 1, wenn der Eingang des zugehörigen Inverters 0 ist.

Der Inverter-Eingang ist genau dann 0, wenn mindestens einer der drei Transistoren der Spalte leitet, d.h. wenn oder oder .

⇒ Der -Ausgang realisiert die Funktion .

Page 22

page-22.png

Kosten von PLA-Realisierungen von Monomen und Polynomen

Sei ein Monom, dann sind die Kosten von gleich der Anzahl der zur Realisierung von benötigten Transistoren im PLA, also .

Seien Polynome, dann bezeichne die Menge der in diesen Polynomen verwendeten Monome.

Die primären Kosten einer Menge von Polynomen sind gleich der Anzahl der benötigten Zeilen im PLA, um zu realisieren, also:

Die sekundären Kosten einer Menge von Polynomen sind gleich der Anzahl der benötigten Transistoren im PLA, also:

Page 23

page-23.png

Kombiniertes Kostenmaß

Sei im Folgenden die Kostenfunktion mit der Eigenschaft, dass für zwei Polynommengen und die Ungleichung

genau dann gilt, wenn

  • entweder
  • oder und

Page 24

page-24.png

Kosten der Realisierung

Welche der folgenden PLAs ist die kostengünstigste Lösung?

a. PLA 1 mit 10 Zeilen und 19 Transistoren.
b. PLA 2 mit 15 Zeilen und 30 Transistoren.
c. PLA 3 mit 12 Zeilen und 15 Transistoren.
d. PLA 4 mit 12 Zeilen und 19 Transistoren.