Rechnerstrukturen WS 2012/13 - TU...

60
Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze KV-Diagramme (Wiederholung) Algorithmus von Quine und McCluskey (Wiederholung) Unvollst¨ andig definierte Funktionen Einleitung Minimalpolynome f¨ ur partiell definierte Funktionen Hazards Einleitung Schaltungshazards Programmierbare Bausteine Einleitung Einsatz von PLAs Hinweis: Folien teilweise a. d. Basis von Materialien von Thomas Jansen 22. August 2012 Fink Rechnerstrukturen ¶·º» Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McC 1

Transcript of Rechnerstrukturen WS 2012/13 - TU...

Page 1: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Rechnerstrukturen WS 2012/13

◮ Boolesche Funktionen und Schaltnetze

◮ KV-Diagramme (Wiederholung)

◮ Algorithmus von Quine und McCluskey (Wiederholung)

◮ Unvollstandig definierte Funktionen◮ Einleitung◮ Minimalpolynome fur partiell definierte Funktionen

◮ Hazards◮ Einleitung◮ Schaltungshazards

◮ Programmierbare Bausteine◮ Einleitung◮ Einsatz von PLAs

Hinweis: Folien teilweise a. d. Basis von Materialien von Thomas Jansen 22. August 2012

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk1

Page 2: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Minimalpolynombestimmung mit KV-Diagramm

Wieso suchen wir eigentlich Minimalpolynome?

Aufgabe Bestimme fur f : {0, 1}4 → {0, 1} ein Minimalpolynom.

Vorgehen

1. Eintragen der Funktion ins KV-Diagramm

2. Finden aller maximaler Zweierpotenz-Rechtecke

3. Finden eines Primimplikanten fur jedes Rechteck

4. Finden einer Uberdeckung aller Einsen durch eine minimaleMonomauswahl

jetzt noch ein Beispielf : {0, 1}4 → {0, 1} mit (1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1)

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk2

Page 3: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Eintragen der Funktion ins KV-Diagramm

f : {0, 1}4 → {0, 1} mit (01,

10,

21,

31,

40,

51,

60,

71,

80,

91,

100 ,

111 ,

120 ,

130 ,

141 ,

151 )

1

1

1

1

1

1

1

1

1

00

01

11

10

00 01 11 10

x1 x2

x3 x4

0 = (00 00)21 = (00 01)22 = (00 10)23 = (00 11)24 = (01 00)25 = (01 01)26 = (01 10)27 = (01 11)28 = (10 00)29 = (10 01)2

10 = (10 10)211 = (10 11)212 = (11 00)213 = (11 01)214 = (11 10)215 = (11 11)2Fink

Rechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk3

Page 4: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Finden aller maximaler Zweierpotenz-Rechtecke

f : {0, 1}4 → {0, 1} mit (1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1)

00

01

11

10

00 01 11 10

x1 x2

x3 x4

1

1

1

1

1

1

1

1

1

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk4

Page 5: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Finden eines Primimplikanten fur jedes Rechteck

f : {0, 1}4 → {0, 1} mit (1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1)

00

01

11

10

00 01 11 10

x1 x2

x3 x4

1

1

1

1

1

1

1

1

1

x3 x4

x1 x2 x3x1 x2 x4x1 x2 x3

x1 x2 x4x1 x2 x4

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk5

Page 6: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Uberdeckung aller Einsen durch minimale Monomauswahl

f : {0, 1}4 → {0, 1} mit (1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1)

erforderlich

erforderlich

erforderlich

erforderlich

beste Wahl

00

01

11

10

00 01 11 10

x1 x2

x3 x4

1

1

1

1

1

1

1

1

1

x3 x4

x1 x2 x3x1 x2 x4x1 x2 x3

x1 x2 x4x1 x2 x4

also x3 x4 ∨ x1 x2 x4 ∨ x1 x2 x3 ∨ x1 x2 x4 ∨ x1 x2 x4Minimalpolynom

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk6

Page 7: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Fazit KV-Diagramme

Mit KV-Diagrammen effizient beide Schritte zurMinimalpolynomberechnung durchfuhrbar

1. Bestimmung aller Primimplikanten

2. Bestimmung einer minimalen Uberdeckung

fur Funktionen f : {0, 1}n → {0, 1} fur n ∈ {3, 4}

klar Das reicht nicht aus.

Wie bestimmen wir Minimalpolynome fur f : {0, 1}n → {0, 1}fur großeres n?

klar Wir suchen einen Algorithmus.

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk7

Page 8: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Der Algorithmus von Quine und McCluskey

Willard van Orman Quine (1955)Edward J. McCluskey (1956)

Algorithmus von Quine/McCluskey

Eingabe Fkt. f als Liste aller Minterme zu einschlagigen IndizesAusgabe Minimalpolynom zu f

1. Berechne PI, Menge aller Primimplikanten von f .

2. Berechne minimale f uberdeckende Auswahl aus PI.

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk8

Page 9: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Algorithmus von Quine/McCluskey: Erster Teil

Algorithmus 11 (Berechnung von PI)

Eingabe L0: Liste aller Minterme zu einschlagigen Indizes von f

Ausgabe PI: Menge aller Primimplikanten zu f

1. i := 0; PI := ∅

2. So lange Li 6= ∅

3. Li+1 := {m | ∃x : {m x ,mx} ⊆ Li} (Resolution)

4. PI := PI ∪ {m ∈ Li | m hat keine echte Verkurzung in Li+1}

5. i := i + 1

6. Ausgabe PI

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk9

Page 10: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Beispiel PI-Berechnung1. i := 0; PI := ∅

2. So lange Li 6= ∅

3. Li+1 := {m | ∃x : {m x ,mx} ⊆ Li}

4. PI := PI ∪ {m ∈ Li | m hat keine echte Verkurzung in Li+1}

5. i := i + 1

6. Ausgabe PI

PI = {x1 x2 x3, x1 x2 x4, x1 x2 x4, x1 x2 x3, x3 x4}

L0 = {x1 x2 x3 x4, x1 x2 x3 x4, x1 x2 x3 x4, x1 x2 x3 x4,

x1 x2 x3 x4, x1 x2 x3 x4, x1 x2 x3 x4, x1 x2 x3 x4}

L1 = {x1 x2 x3, x1 x3 x4, x2 x3 x4, x1 x2 x4, x2 x3 x4, x1 x2 x4,

x1 x3 x4, x1 x2 x3}

L2 = {x3 x4}

L3 = ∅FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk10

Page 11: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Der Algorithmus von Quine und McCluskey

Algorithmus von Quine/McCluskey

Eingabe Fkt. f als Liste aller Minterme zu einschlagigen IndizesAusgabe Minimalpolynom zu f

1. Berechne PI, Menge aller Primimplikanten von f .√

2. Berechne minimale f uberdeckende Auswahl aus PI.

schwieriges kombinatorisches Problem

nur heuristische Losungmit gewissen Freiheitsgraden

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk11

Page 12: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Das Uberdeckungsproblem

Aufgabe Finde minimale Uberdeckung von f mit PI.

PI-Tafel◮ eine Zeile fur jeden Primimplikanten◮ eine Spalte fur jede Eins-Eingabe

◮ Eintrag =

{

1 Primimplikant uberdeckt Eins-Eingabe

0 sonst

klar PI-Tafel meist riesig groß

klar verkleinern

dazu Verkleinerungsregeln

Freiheit durch◮ Reihenfolge der Regelanwendung◮ Art der Regelanwendung

Problem Losung oft trotzdem nicht ablesbar

Losung Backtracking oder HeuristikenFinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk12

Page 13: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Beispiel PI-Tafel

<

Streichung uberdeckender Spalten

x1 x2 x3x3 x4

x1 x2 x4x1 x2 x3

x1 x2 x4

0010 0011 0101 0111 1001 1011 1110 1111

1 1

1 1 1 1

1 1

1 1

1 1

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk13

Page 14: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Beispiel PI-Tafel

<

Streichung uberdeckender Spalten

x1 x2 x3x3 x4

x1 x2 x4x1 x2 x3

x1 x2 x4

0010 0101 0111 1001 1011 1110 1111

1

1 1 1

1 1

1 1

1 1

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk14

Page 15: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Beispiel PI-Tafel

<

Streichung uberdeckender Spalten

x1 x2 x3x3 x4

x1 x2 x4x1 x2 x3

x1 x2 x4

0010 0101 1001 1011 1110 1111

1

1 1

1

1 1

1 1

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk15

Page 16: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Beispiel PI-Tafel

Streichung uberdeckter Zeilen

x1 x2 x3x3 x4

x1 x2 x4x1 x2 x3

x1 x2 x4

0010 0101 1001 1110 1111

1

1

1

1 1

1

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk16

Page 17: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Beispiel PI-Tafel

Kernimplikanten-Zeilen

x1 x2 x3x1 x2 x4x1 x2 x3

x1 x2 x4

0010 0101 1001 1110 1111

1

1

1 1

1

also f (x1, . . . , x4) = x1 x2 x3 ∨ x1 x2 x4 ∨ x1 x2 x3 ∨ x1 x2 x4

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk17

Page 18: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Unvollstandig definierte Funktionen

formal f : {0, 1}n → {0, 1, ∗}

Bedeutung f (x) = ∗ Funktionswert fur x egal (“don’t care”)

klar Schaltnetz realisiert immer eine

”normale“ boolesche Funktion

Definition

f ′ : {0, 1}n → {0, 1} heißt Realisierung (oder auch Erweiterung) vonf : {0, 1}n → {0, 1, ∗} ⇔ ∀x ∈ {0, 1}n : (f ′(x) = f (x)) ∨ (f (x) = ∗)

klar großere Freiheiten

Wie nutzen wir die?

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk18

Page 19: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Wahl der Realisierung

Wunsch Finde Realisierung f ′ mit minimalem Minimalpolynom.

nutzliche Begriffe

◮ minimale Erweiterung f0 von f

f0(x) :=

{

f (x) falls f (x) ∈ {0, 1}

0 sonst

◮ maximale Erweiterung f1 von f

f1(x) :=

{

f (x) falls f (x) ∈ {0, 1}

1 sonst

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk19

Page 20: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Uber extreme Erweiterungen

Beobachtungen

◮ Primimplikanten von f0 sind keine echten Verkurzungen vonPrimimplikanten von f1

◮ Primimplikanten von f1 konnen echte Verkurzungen vonPrimimplikanten von f0 sein

Warum?klar zusatzliche Einsen verkurzen Primimplikanten hochstens

Also hat f1 das kurzere Minimalpolynom?

So allgemein gilt das nicht!

denn f1 kann viel mehr Primimplikanten haben

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk20

Page 21: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Uber unvollstandige definierte Funktionen

Satz 12

Minimalpolynome einer unvollstandig definierten Funktionf : {0, 1}n → {0, 1, ∗} enthalten ausschließlich Primimplikanten von f1.

Beweis Sei p = m1 ∨m2 ∨ · · · ∨mk Minimalpolynom von f .

Beobachtung p ist Realisierung von f .

Sei mi beliebiger Primimplikant in p.Beobachtung mi ist Implikant von f1.denn mi (x) = 1 ⇒ (f (x) = 1) ∨ (f (x) = ∗) ⇒ f1(x) = 1also Verkurzung m′ von mi ist Primimplikant von f1aber Ersetzen wir mi in p durch m′, erhalten wir Polynom fur f

klar m′ kann nicht echte Verkurzung von mi sein,sonst ware p nicht Minimalpolynom zu f

also mi Primimplikant von f1FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk21

Page 22: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Minimalpolynome unvollstandig definierter Funktionen

Algorithmus

1. Berechne Menge aller Primimplikanten PI(f1) zu f1.

2. Berechne minimale Uberdeckung von f0 durch Monome ausPI(f1).

also algorithmisch keine neuen Probleme

Einwand Vielleicht lasst sich f0 gar nicht so uberdecken?

Beobachtung Uberdeckung von Nullen von f0 unproblematisch

Wieso eigentlich?Primimplikanten von f1 konnen nur Einsen oderdon’t cares von f uberdecken!

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk22

Page 23: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Hazards

argerlich, aber unvermeidlich Abweichungen zwischenModell und Realitat

Das gilt auch fur technisch realisierte Schaltnetze.

Was passiert, wenn die Eingabe wechselt?

klar Die Ausgabe kann wechseln.

Wunsch

◮ wenn f die Ausgabe wechselt, wechselt das Schaltnetz genaueinmal seine Ausgabe

◮ wenn f die Ausgabe nicht wechselt, wechselt das Schaltnetz seineAusgabe nicht

Realitat Schaltnetz kann Ausgabe”zwischendurch“ wechseln.

Das heißt Hazard.FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk23

Page 24: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Hazards: Begriffe

Hazards sind

◮ statisch Ausgabewert soll gleich bleiben, andert sich aber.

◮ dynamisch Ausgabewert soll sich andern, andert sich abermehrfach.

◮ Funktionshazard”schon in der Funktionsdefinition enthalten“

◮ Schaltungshazard Hazard, der kein Funktionshazard ist

also vier verschiedene Falle

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk24

Page 25: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Statischer Funktionshazard

Definition

f : {0, 1}n → {0, 1} hat statischen Funktionshazard, wenn esa = a1a2 · · · an ∈ {0, 1}n und b = b1b2 · · · bn ∈ {0, 1}n mit a 6= b undf (a) = f (b) gibt, sowie c = c1c2 · · · cn ∈ {0, 1}n mit ci ∈ {ai , bi} furalle i ∈ {1, 2, . . . , n} und f (c) 6= f (a).

Beispielx1 x2 x3 f (x1, x2, x3)

0

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

1

0

0

1

0

0

0

0

1

0x3

00 01 11 10x1 x2

1

1

a = 000, f (a) = 1

b = 011, f (b) = 1

c = 010, f (c) = 0

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk25

Page 26: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Dynamischer Funktionshazard

Definition

f : {0, 1}n → {0, 1} hat dynamischen Funktionshazard, wenn esa, b ∈ {0, 1}n mit a 6= b und f (a) 6= f (b) gibt, sowie c = c1c2 · · · cnund c ′ = c ′1c

′2 · · · c

′n mit ci ∈ {ai , bi}, c

′i∈ {ci , bi} (i ∈ {1, 2, . . . , n})

und f (c) 6= f (a) sowie f (c) 6= f (c ′).

Beispielx1 x2 x3 f (x1, x2, x3)

0

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

1

0

0

1

0

0

1

0

1

0x3

00 01 11 10x1 x2

1

1

1

0

a = 000, f (a) = 1

b = 111, f (b) = 0

c = 001, f (c) = 0

c ′ = 011, f (c ′) = 1

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk26

Page 27: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Zusammenfassung: Statische/Dynamische Hazards

Wir haben korrektes Schaltnetz S fur f .

Wir betrachten Eingabewechsel von a auf b.

1. Funktionswert bleibt gleich: f (a) = f (b)Am Ausgang von S liegt kurzzeitig ein anderer Wert an.statischer Hazard

2. Funktionswert andert sich: f (a) 6= f (b)Am Ausgang von S andert sich der Wert mehrfach.dynamischer Hazard

Weitergehende Klassifikation

◮ Manche Hazard heißen Funktionshazards.

◮ Die ubrigen Hazards heißen Schaltungshazards.

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk27

Page 28: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Wie kommt es zum Funktionshazard?

Betrachte Eingabewechsel von a nach b mitentweder f (a) = f (b) statischoder f (a) 6= f (b) dynamisch

Es gibt statisch: 1 andere Eingabe c

dynamisch: 2 andere Eingaben c , c ′

zwischen a und b,so dass der Funktionswert beim Weg von a nach b

statisch uber c wechseltdynamisch uber c und c ′ mehrfach wechselt

zentral andere Eingaben echt”dazwischen“

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk28

Page 29: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Was bedeutet”dazwischen“?

in Bezug auf Eingabewechsel

◮ Wertanderung einiger Eingabebits (alle Bits mit ai 6= bi)

◮ nicht vollig gleichzeitig

◮ also”dazwischen“ = kann als Zwischenschritt bei Wertanderung

der Eingabebits vorkommen

beim Blick auf KV-Diagramm

◮ auf einem kurzsten Weg von a nach b

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk29

Page 30: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Kurzeste Wege im KV-Diagramm

10

11

01

00

x3 x4

00 01 11 10x1 x2

a = 0000

b = 1110

Beobachtung 3 Bits verschiedenkurzeste Wege haben Lange 3(i.a.: n unterschiedliche Bits ⇒ kurzeste Weglange = n)

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk30

Page 31: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Funktionshazards

klar Funktionshazards sind in Realisierungen vonSchaltnetzen nicht zu vermeiden

zur Kenntnis nehmen Es gibt Hazards.

fur uns interessanter Schaltungshazards

Definition Schaltzungshazard Funktion hatbezuglich a, b keinen Hazard,Schaltnetz aber schon

Fragen

1. Wie kann das passieren?

2. Kann man das vermeiden?FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk31

Page 32: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Definition Schaltungshazard

Definition

Schaltnetz S fur f hat einen statischen Schaltungshazard, wenn esa, b ∈ {0, 1}n gibt, so dass f bezuglich a, b keinen statischenFunktionshazard hat, aber beim Eingabewechsel von a nach b amAusgang von S nicht notwendig stabil f (a) anliegt.

Definition

Schaltnetz S fur f hat einen dynamischen Schaltungshazard, wenn esa, b ∈ {0, 1}n gibt, so dass f bezuglich a, b keinen dynamischenFunktionshazard hat, aber beim Eingabewechsel von a nach b amAusgang von S mehr als ein Funktionswertwechsel auftreten kann.

Beachte: Auftreten nicht garantiert!

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk32

Page 33: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Beispiel statischer Schaltungshazard

f (x1, x2, x3) = x1 x2 ∨ x2 x3

x1 x2 x3 f (x1, x2, x3)

0

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

0

1

0

0

0

1

1

1

a = 111, f (a) = 1

b = 101, f (b) = 1

klar kein Funktionshazard

Gar kein c zwischen a und b!

x1&

x2

1&

x3

≥ 1

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk33

Page 34: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Vermeidung von Schaltungshazards

Wir konzentrieren uns auf

◮ statische Schaltungshazards,

◮ Schaltnetze, die direkt Polynome realisieren.

Sind in solchen Schaltnetzen Schaltungshazards ganz vermeidbar?

gute Nachricht ja

schlechte Nachricht nicht kostenlos

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk34

Page 35: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Wie vermeidet man statische Schaltungshazards?

Satz

Sei S ein Schaltnetz, das direkt ein Polynom p einer booleschenFunktion f realisiert. S hat genau dann keinen statischenSchaltungshazard, wenn S fur jeden Primimplikanten von f einUnd-Gatter enthalt.

Beweis durch Widerspruch:statischer Schaltungshazard ⇔ ein Primimplikant fehlt

Beweistrategie

1. Beweise: statischer Schaltungshazard ⇒ ein Primimplikant fehlt

2. Beweise: Primimplikant fehlt ⇒ statischer Schaltzungshazard

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk35

Page 36: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Hazard ⇒ Primimplikant fehlt

Voraussetzungen◮ Es gibt statischen Hazard bezuglich a und b.◮ Es gibt keinen Funktionshazard bezuglich a und b.◮ a und b unterscheiden sich in genau einem Bit

1. Fall f (a) = f (b) = 0klar alle Und-Gatter permanent 0also Wert am Ausgang permanent 0

also kein Hazard√

2. Fall f (a) = f (b) = 1Sei ma Minterm zu a, mb Minterm zu b

Beobachtung ∃Monom m,Variable x : {ma,mb} = {mx ,mx}klar m ist Implikant von f

also S enthalt Und-Gatter fur Verkurzung m′ von m

Beobachtung Dieses Und-Gatter ist permant 1 (da unabh. von x).

also Wert am Ausgang permanent 1 also kein Hazard√

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk36

Page 37: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Primimplikant fehlt ⇒ Hazard

Voraussetzungen

◮ S realisiert direkt Polynom p fur f

◮ ∃Primimplikant m von f : kein Und-Gatter fur m in S

Definiere Eingaben a und b.

◮ xi ∈ m ai = bi = 1

◮ xi ∈ m ai = bi = 0

◮ sonst ai = 0, bi = 1

Beobachtung m(a) = m(b) = 1also f (a) = f (b) = 1Beobachtung kein Hazard ⇔ ein Und-Gatter permanent 1klar So ein Und-Gatter realisiert Verkurzung von m.also So ein Und-Gatter gibt es in S nicht.also Hazard

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk37

Page 38: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Zusammenfassung: Hazards

Fazit Hazards

◮ Hazards sind argerlich.Wann liegt der richtige Funktionswert vor?

◮ Funktionshazards sind so nicht vermeidbar.

◮ Statische Schaltungshazards konnen mit zusatzlichem Aufwandvermieden werden.

◮ Eine grundsatzliche Losung ist wunschenswert.

mogliche grundsatzliche Losung: Taktung der Schaltung ⇒ spater

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk38

Page 39: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Realisierung von Schaltnetzen

Gedanken zur Anwendung

1. Problem

2. boolesche Funktion

3. Schaltnetz-Entwurf

4. Schaltnetz-Realisierung

Realisierungen

◮ hoch-integrierte Schaltungteuer Lohnt sich nur bei großen Stuckzahlen.

◮ direkte Umsetzung mit Gatternumstandlich

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk39

Page 40: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Realisierung mit Gattern

Datenblatt von Texas Instruments (www.ti.com)

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk40

Page 41: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Alternative Realisierung

◮ massenhaft produzierte

◮ darum preisgunstige

◮ nach der Fertigstellung in ihrer Funktion noch beeinflussbare

◮ funktional vollstandige

◮ also universelle Standardbausteine

Programmable Logic Array (PLA)

Varianten PAL, PROM, FPGA, . . .(zum Teil eingeschrankte Funktionalitat)

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk41

Page 42: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Programmable Logic Array (PLA)

Datenblatt von Lattice (www.latticesemi.com)

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk42

Page 43: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

PLA Grundbausteine

y f1(x , y)

x

f2(x , y)

t

Name Typ f1(x, y) f2(x, y)

Identer 0 y x

Addierer 1 x ∨ y x

Multiplizierer 2 y x y

Negat-Multiplizierer 3 y x y

klar funktional vollstandig

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk43

Page 44: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

PLA

t4,0

t3,0

t2,0

t1,0

t0,0

t4,1

t3,1

t2,1

t1,1

t0,1

t4,2

t3,2

t2,2

t1,2

t0,2

t4,3

t3,3

t2,3

t1,3

t0,3

t4,4

t3,4

t2,4

t1,4

t0,4

t4,5

t3,5

t2,5

t1,5

t0,5

t4,6

t3,6

t2,6

t1,6

t0,6

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk44

Page 45: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

PLA fur f : {0, 1}3 → {0, 1}

1 1 1 1 1 1

0

x3

x2

x1

t3,0

t2,0

t1,0

t0,0

t3,1

t2,1

t1,1

t0,1

t3,2

t2,2

t1,2

t0,2

t3,3

t2,3

t1,3

t0,3

t3,4

t2,4

t1,4

t0,4

t3,5

t2,5

t1,5

t0,5

f (x1, x2, x3)

Wie wahlt man die Bausteintypen?FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk45

Page 46: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

PLA: Bausteinwahl

klar jede Funktion als Polynom darstellbar

Erinnerung Polynom = Disjunktion einiger Monome

erster Schritt

Wie realisieren wir Monome?

exemplarisch am Beispiel x1 x2 x4

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk46

Page 47: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

PLA: Monomrealisierung

Beispiel Monom x1 x2 x4

1

x1

x2

x3

x4

Erinnerung

Name Typ fr(o, l) fu(o, l)

Identer 0 l o

Addierer 1 o ∨ l o

Multiplizierer 2 l o l

Negat-Multiplizierer 3 l o l

2 x11 ∧ x1 = x1

3 x2x1 x2

0 x3x1 x2

2 x4

x1 x2 x4

also jedes Monom leicht realisierbar

◮ falls Variable fehlt Typ 0

◮ falls xi vorkommt Typ 2

◮ falls xi vorkommt Typ 3

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk47

Page 48: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

PLA: Polynomrealisierung

gesehen fur f : {0, 1}n → {0, 1}k verschiedene Monome m1, m2, . . . , mk

in n Zeilen und k Spalten realisierbar

Wie konnen wir f realisieren, z. B. f = m1 ∨m2 ∨m4?

0

m1 m2 m3 m4

Erinnerung

Name Typ fr(o, l) fu(o, l)

Identer 0 l o

Addierer 1 o ∨ l o

Multiplizierer 2 l o l

Negat-Multiplizierer 3 l o l

1m1

1m1 ∨m2

0m1 ∨m2

1 m1 ∨m2 ∨m4

Ist das sinnvoll?klar furf : {0, 1}n → {0, 1}

nichtaber furf : {0, 1}n → {0, 1}m

schonFinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk48

Page 49: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

PLA: Ein konkretes Beispiel

Beispiel f (x1, x2, x3, x4) = x1 x2 x4 ∨ x2 x3 x4 ∨ x1 x3 x4 ∨ x2 x3

0

x4

x3

x2

x1

1 1 1 1

f (x1, . . . , x4)1 1 1 1

2 2 2 0

0 2 2 2

2 2 0 3

3 0 3 0

Und-Teil

Oder-Teil

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk49

Page 50: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Fazit zur PLA-Nutzung

also Wir konnen jede Funktion f : {0, 1}n → {0, 1}m,fur deren Polynom insgesamt k Implikanten ausreichen,mit einem PLA mit n +m Zeilen und k Spalten realisieren.

klar Wir wunschen uns k klein.

dafur Minimalpolynome

Wie findet man Minimalpolynome fur Funktionenf : {0, 1}n → {0, 1}m?

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk50

Page 51: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Minimalpolynome fur f : {0, 1}n → {0, 1}m

Notation statt f : {0, 1}n → {0, 1}m

(f1, f2, . . . , fm) mit fi : {0, 1}n → {0, 1}

fur i ∈ {1, 2, . . . ,m}

Definition Ein Minimalpolynom fur f : {0, 1}n → {0, 1}m

ist (p1, p2, . . . , pm) mit minimalen Kosten,dabei ist pi Polynom fur fi . Bei den Kostenzahlen mehrfach vorkommende Monome nur einmal.

Also suchen wir Minimalpolynome pi fur fi? Nein!

Beispiel p1(x1, x2, x3) = x1 x3 ∨ x2 x3 ist Minimalpolynomp2(x1, x2, x3) = x1 x2 ∨ x2 x3 ist Minimalpolynom

p′1(x1, x2, x3) = x1 x2 x3 ∨ x2 x3 stellt auch p1 darp′2(x1, x2, x3) = x1 x2 ∨ x1 x2 x3 stellt auch p2 dar

Gesamtkosten (p1, p2) = (n +m)× k = (3 + 2)× 4Gesamtkosten (p′1, p

′2) = (n +m)× k ′ = (3 + 2)× 3

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk51

Page 52: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Monome fur Minimalpolynome fur f : {0, 1}n → {0, 1}k

Welche Monome ubernehmen die Rolle der Primimplikanten?

Definition Ein Monom m ist ein multipler Primimplikantvon f = (f1, f2, . . . , fk) mit fi : {0, 1}

n → {0, 1},wenn m Primimplikant von

i∈Ifi ist fur eine

nicht-leere Menge I ⊆ {1, 2, . . . , k}.

Theorem Minimalpolynome fur f : {0, 1}n → {0, 1}k enthaltennur multiple Primimplikanten von f .

Beweis und Algorithmus zur Berechnung → Skript

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk52

Page 53: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Multiple Primimplikanten berechnen

Wie finden wir alle multiplen Primimplikanten?

Theorem m ∈ PI

(

i∈Ifi

)

⇒ ∀i ∈ I : ∃mi ∈ PI(fi) : m =∧

i∈Imi

Beweis

klar m ∈ PI

(

i∈I

fi

)

ist fur alle i ∈ I Implikant von fi

Sei mi ∈ PI(fi) Verkurzung von m (i ∈ I )klar

i∈Imi ist Verkurzung von m

weil m ∈ PI

(

i∈Ifi

)

, kann∧

i∈Imi keine echte Verkurzung

von m sein

also∧

i∈I

mi = m

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk53

Page 54: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Berechnung aller multipler Primimplikanten

Algorithmusberechnet fur I ⊆ {1, 2, . . . , k} die Menge MI der multiplenPrimimplikanten m =

i∈Imi

1. Fur i ∈ {1, 2, . . . , k} berechne M{i} := PI(fi ).

2. M :=k⋃

i=1

{

{i}}

; M ′ :=k⋃

i=1

M{i}.

3. Wiederhole

4. Fur I , J ∈ M mit I ∩ J = ∅

5. MI∪J := {m 6= 0 | m = m′m′′ mit m′ ∈ MI , m′′ ∈ MJ ,

keine echte Verkurzung von m in MI∪J}.

6. M := M ∪ {I ∪ J}; M ′ := M ′ ∪MI∪J .

7. So lange, bis M ′ eine Iteration unverandert bleibt.

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk54

Page 55: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Minimalpolynomberechnung fur f : {0, 1}n → {0, 1}m

Algorithmus

1. Fur alle fi berechne alle Primimplikanten.

2. Berechne alle multiplen Primimplikanten.(ergeben sich potentiell als paarweise Verknupfung“normaler”Primimplikanten)

3. Berechne eine moglichst gunstige Uberdeckung.

also gunstigste Darstellung fur PLA-Realisierungenmit uns bekannten Mitteln berechenbarallerdings sehr aufwendig

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk55

Page 56: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

PLA als ROM

Aufgabe Speichere 2n”Worter“ der Lange m.

w0 = w0,0w0,1w0,2 · · ·w0,m−1 ∈ {0, 1}m

w1 = w1,0w1,1w1,2 · · ·w1,m−1 ∈ {0, 1}m

w2 = w2,0w2,1w2,2 · · ·w2,m−1 ∈ {0, 1}m

......

w2n−1 = w2n−1,0w2n−1,1w2n−1,2 · · ·w2n−1,m−1 ∈ {0, 1}m

Benutze PLA mit n+m Zeilen, 2n Spalten

Beobachtung m · 2n Zellen fur m · 2n zu speichernde Bitsmindestens erforderlich

Adressierung mit jeweils n Bitsin n zusatzlichen Zeilen

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk56

Page 57: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Beispiel

n = 3, m = 6

23 = 8 Worterjeweils 6 Bits

x0

x1

x2

1 1 1 1 1 1 1 1

0 w0,5 w1,5 w2,5 w3,5 w4,5 w5,5 w6,5 w7,5

0 w0,4 w1,4 w2,4 w3,4 w4,4 w5,4 w6,4 w7,4

0 w0,3 w1,3 w2,3 w3,3 w4,3 w5,3 w6,3 w7,3

0 w0,2 w1,2 w2,2 w3,2 w4,2 w5,2 w6,2 w7,2

0 w0,1 w1,1 w2,1 w3,1 w4,1 w5,1 w6,1 w7,1

0 w0,0 w1,0 w2,0 w3,0 w4,0 w5,0 w6,0 w7,0

3 3 3 3 2 2 2 2

3 3 2 2 3 3 2 2

3 2 3 2 3 2 3 2 Beobachtung

Und-Teil fest

nur von Großeabhangig

Anmerkung

PLAs mit festem

Und-Teil werden

als PROM

verkauft.

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk57

Page 58: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Zwischen-Fazit PLAs

PLAs sind preiswerte, universelle Bausteine, die

◮ beliebige boolesche Funktionen leicht realisierbar machen,

◮ Minimalpolynomdarstellungen motivieren,

◮ Speicherung von 2n Wortern der Lange m in einem(n +m)× 2n-PLA erlauben.

Nachteil nur einmal programmierbar

Wie kann man PLAs beliebig neu programmierbar machen?

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk58

Page 59: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

”Software“-PLAs

Typ

f2(x , y)

f1(x , y)

x

y

Typ s t f1(x , y) f2(x , y)

0 0 0 y x

1 0 1 x ∨ y x

2 1 0 y x y

3 1 1 y x y

klar vier verschiedene Typen, mit zwei Bits codierbar

Idee erweitere PLA-Baustein um zwei zusatzliche Eingaben,die den Baustein-Typ codieren

jetzt f1 und f2 als Funktionen von (s, t, x , y) darstellen

◮ f1(s, t, x , y) = y ∨ s t x

◮ f2(s, t, x , y) = s x ∨ s x(t ⊕ y)

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk59

Page 60: Rechnerstrukturen WS 2012/13 - TU Dortmundpatrec.cs.tu-dortmund.de/lectures/WS12/rechnerstrukturen/... · 2012. 9. 5. · Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze

Bemerkung zum Einsatz

klar fur ein n×m-PLA werden zur Programmierung2nm Bits gebraucht.

Beobachtung Man kann diese 2nm Bits gutin einem PROM speichern.

Fazit

◮ einfache und gunstige Realisierung von booleschen Funktionen

◮ besonders geeignet fur kleine Stuckzahlen

◮ besonders geeignet bei nur temporarem Gebrauch

FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk60