rechnerstrukturen ws 2012/13 - tu...
Post on 29-Aug-2020
4 Views
Preview:
TRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Realisierung mit Gattern
Datenblatt von Texas Instruments (www.ti.com)
FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk40
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
Programmable Logic Array (PLA)
Datenblatt von Lattice (www.latticesemi.com)
FinkRechnerstrukturen ¶ · º » Boole. Fkt. KV-Diagramme (Wiederholung) Wdh. Quine/McClusk42
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
”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
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
top related