Synthese und Analyse digitaler Schaltungen [2., überarb. Aufl. Reprint 2014] 9783486593907, 9783486258141

Das Buch vermittelt grundlegende Kenntnisse zur Synthese kombinatorischer (Schaltnetze) und sequentieller Schaltungen (S

215 108 17MB

German Pages 347 [348] Year 2001

Report DMCA / Copyright

DOWNLOAD PDF FILE

Recommend Papers

Synthese und Analyse digitaler Schaltungen [2., überarb. Aufl. Reprint 2014]
 9783486593907, 9783486258141

  • 0 0 0
  • Like this paper and download? You can publish your own PDF file online for free in a few minutes! Sign Up
File loading please wait...
Citation preview

Synthese und Analyse Digitaler Schaltungen von

Prof. Dr.-Ing. habil. Gerd Scarbata Technische Universität Ilmenau

2., überarbeitete Auflage

Oldenbourg Verlag München Wien

Die Deutsche Bibliothek CIP-Einheitsaufnahme -

Scarbata, Gerd: Synthese und Analyse digitaler Schaltungen / von Gerd Scarbata. 2., Überarb. Aufl.

München ; Wien ISBN 3-486-25814-1

:

Oldenbourg, 2001

-

-

© 2001 Oldenbourg Wissenschaftsverlag GmbH Rosenheimer Straße 145, D-81671 München Telefon: (089) 45051-0

www.oldenbourg-verlag.de Das Werk einschließlich aller Abbildungen ist urheberrechtlich geschützt. Jede Verwertung außerhalb der Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Bearbeitung in elektronischen Systemen. Lektorat: Sabine Ohlms Herstellung: Rainer Haiti

Umschlagkonzeption: Kraxenberger Kommunikationshaus, München Gedruckt auf säure- und chlorfreiem Papier Druck: R. Oldenbourg Graphische Betriebe Druckerei GmbH

Inhaltsverzeichnis Seite

Schaltalgebra Begriffsbestimmung

1

1

Boolesche Algebra,

2

Operationssystem der Schaltalgebra

4

3

Boolesche Funktionen

6

4

Boolesche Funktionen kombinatorischer

4.1

Begriffsbestimmung

4.2

Boolesche Basisfunktionen für eine Eingangsvariable

11

4.3

Boolesche Basisfunktionen für zwei Eingangsvariable Boolesche Funktionen für k > 2 Eingangsvariable

13

4.4

-

Schaltungen

8 8

18

Regeln der Schaltalgebra Inversionssatz (de Morgansches Theorem, de Morgansche Regel)

26

29

5.5.1

Einsetzungsregel Ersetzbarkeitsregel Absorptionsgesetze, Kürzungsregeln Expansionsgesetze Multiplikation mit "1"

5.5.2

Addition mit "0"

31

5.5.3

Ausmultiplizieren

32

5.5.4

Ausaddieren

32

6

Normalformen Boolescher Funktionen

33

6.1

Disjunktive Normalform (DNF), Kanonische DNF (KDNF) Konjunktive Normalform (KNF), Kanonische KNF (KKNF) Zusammenhänge zwischen KDNF und KKNF

33

5 5.1 5.2

5.3 5.4

5.5

6.2 6.3

Gesetze und

26

30 31

31 31

35

37

VI

Seite NAND Normalformen (NAND

6.6

NF) einer NAND-NF aus einer (K)DNF Bildung Bildung einer K-NAND-NF NOR Normalformen (NOR NF) Bildung einer NOR-NF aus einer (K)KNF Bildung einer NOR-NF aus einer (K)DNF Antivalente Normalform (ANF)

6.6.1

ANF für eine Variable

44

6.6.2

ANF für zwei Variable

45

6.6.3

ANF für k-Variable

45

7

Darstellung Boolescher Funktionen

51

7.1

Boolescher Ausdruck

51

7.2

Wahrheitstabelle

51

7.3

Karnaugh-Plan Graph Schaltung auf Gatter-Niveau Schaltung als Kontaktrealisierung Realisierung in positiver und negativer Logik Boolesche Funktionen mit der Ausgangsmenge (0, l,d) Boolesche Funktionen mit der Eingangsmenge (0,1,-)

51

6.4

6.4.1 6.4.2 6.5 6.5.1 6.5.2

7.4 7.5

7.6 7.7 7.8 7.9

8 8.1 8.2

8.2.1 8.2.2

8.2.3 8.3

-

-

-

-

Minimierung Boolescher Funktionen Minirnierung mit Theoremen und Gesetzen der Schaltalgebra Minimierung mit dem Karnaugh-Plan Karnaugh-Plan (K-Plan) Eintragung von Schaltfunktionen in den K-Plan Minimierungsvorschriften für den K-Plan Minirnierung nach Quine / Mc Cluskey (QMC)

39

40 41

41 42 43 44

52 53 53 54 55 56

59 59 60

60 64 69

83

Seite 8.3.1

Grundlagen des QMC-Minimierungsverfahrens

83

8.3.2

84

8.3.3

Erstellen der Tabellen für das QMC-Verfahren Minimierungsvorschiften für das QMC-Verfahren

8.4

Ermittlung minimaler Schaltfunktionen nach dem

87

Tafelauswahlverfahren

91

8.4.1

Primimplikanten und Kernprimimplikanten

91

8.4.2

Tafelauswahlverfahren für eine DNF

92

8.4.3

Tafelauswahlverfahren für eine KNF

98

9

Kombinatorische Schaltungen

10

Kontaktrealisierungen kombinatorischer Schaltungen

107

11

Realisierung kombinatorischer Schaltungen in "krauser" Logik

111

12

Basissysteme für die Realisierung kombinatorischer Schaltungen

112

13

Zweistufige Realisierungen kombinatorischer Schaltungen Realisierung einer DNF als UND/ODER-Schaltung Realisierung einer KNF als ODER/UND-Schalrung Realisierung einer DNF und KNF mit dem Basissystem UND/NEG

115

bzw. NAND

117

13.1 13.2 13.3

13.4

13.5 13.6

14

14.1

-

Begriffsbestimmung

105

116 116

Realisierung einer KNF und DNF mit dem Basissystem ODER/NEG bzw. NOR

118

Realisierung einer KDNF mit dem Basissystem ANTIVALENZ/UND Realisierung einer KKNF mit dem Basissystem ÄQUIVALENZ/ODER

119

Mehrstufige Realisierungen kombinatorischer Schaltungen Zergliedernde Faktorisierungsmethode

123

121

124

VIII

Seite

14.2

Aufbauende Faktorisierungsmethode

125

14.3

Faktorisierung auf Karnaugh-Plan-Basis Faktorisierung mit NAND-Realisierung Faktorisierung mit NOR-Realisierung

126

14.3.1 14.3.2

15

15.1 15.2 15.3 15.4

15.5

Realisierung kombinatorischer Schaltungen mit programmierbarer Logik (PLD) PROM (Programmable Read Only Memory) PLA (Programmable Logic Array) PAL (Programmable Array Logic) PML (Programmable Macro Logic) Programmiertechnologien für PLD

127 135

143 144 148 152 156 157

Realisierung kombinatorischer Schaltungen mit Multiplexern

159

17

Kombinatorische Grundschaltungen

171

17.1

Komparator (Vergleicher) Komparatoren für einstellige Binärzahlen Komparatoren für zweistellige Binärzahlen

171

174

17.2.2

Multiplexer/Demultiplexer Multiplexer Demultiplexer

17.3

Addierer

180

17.3.1

181

17.3.3

Schaltungsrealisierung für Halbaddierer Schaltungsrealisierung für Volladdierer Addition zweier zweistelliger Binärzahlen, Kaskadierung

17.4

Kodewandler

185

16

17.1.1

17.1.2 17.2 17.2.1

17.3.2

171 172

175 177

181 183

IX

Seite

18

Dynamisches Verhalten kombinatorischer Schaltungen

190

18.1

Funktionenhasard

191

18.2

Strukturhasard

194

19 19.1

Sequentielle Schaltungen Begriffsbestimmungen

19.2

MOORE- und MEALY-Automaten

204

19.3

206

19.4

Automatengraphen und Automatentabellen Vollständigkeit und Widerspruchsfreiheit

19.5

Partielle Automaten

214

19.6

Äquivalenz von Automaten Äquivalenz von MOORE- und MEALY-Automaten

214

Automatenzustandskodierung und -zustandsreduzierung Flip-Flop (FF), Bistabile Trigger Flip-Flop-Typen (FF-Typen) RS-Flip-Flop (RS-FF) D-Flip-Flop (D-FF) DV-Flip-Flop (DV-FF) T-Flip-Flop (T-FF) JK-Flip-Flop (JK-FF) Reduzierte Wahrheitstabellen für Flip-Flops Konvertierung von Flip-Flop-Typen Schieberegister Entwurf synchroner Zähler und Teiler Entwurf asynchroner Zähler und Teiler Entwurf komplexer Schaltungen auf der Basis von

220

19.7

19.8 19.9

19.9.1 19.9.2 19.9.3 19.9.4

19.9.5 19.9.6

19.9.7 19.9.8 19.10 19.11 19.12 19.13

-

Automaten

MOORE- und MEALY-Automaten 19.14

199 199

211

217

230 230 230 237 243 245

252

263 265

267 269 295

312

Stabilitätsuntersuchungen von rückgekoppelten digitalen Schaltungen mittels Schnittmethode

322

X

Seite

20

Literaturverzeichnis

332

21

Sachregister

334

Vorwort Inhalt und Darstellung der 1. Auflage des vorhegenden Lehrbuches haben sich bewährt. Deshalb sind in der 2. Auflage die erforderlichen Überarbeitungen, wenige Ergänzungen aber keine wesentlichen Änderungen vorgenommen worden. Im Jahr 2000 ist eine ins vietnamesische übersetzte Ausgabe des Lehrbuches mit dem Inhalt der hier vorhegenden 2. Auflage im Wissenschaftsverlag in Hanoi erschienen und findet auch dort an Universitäten und Hochschulen sowie an Aus- und Weiterbildungsstätten z.B. im Telekommunikationsbereich rege Resonanz. Das Buch enthält die wesentlichen Verfahren zur Synthese optimierter digitaler Schaltungen unterschiedlicher Komplexität, die z. B. mit Booleschen Gleichungen, Wahrheitstabellen, Signaldiagrammen oder mit Automatentabellen bzw. Automatengraphen beschrieben sein können. Einführend werden die Grundlagen der Booleschen Algebra behandelt. Neben den Gesetzen und Regeln zur Verknüpfung von Variablen sind die mathematischen Beziehungen zwischen den Ein- und Ausgangsgrößen kombinatorischer Schaltungen als Schaltfunktionen in ihren verschiedenen Normalformen dargestellt. Minimierungsverfahren für diese Schaltfunktionen nach Karnaugh, Quine/Mc Cluskey einschließlich der spezifischen Tafelauswahlverfahren für Kernprimimplikanten werden anhand zahlreicher Beispiele ausführlich interpretiert. Daran schließen sich die Synthese zweistufiger kombinatorischer Schaltungen und mehrstufige Realisierungen mittels Faktorisierungsmethoden auf Karnaugh-Plan-Basis an.

Ein weiterer Abschnitt beschreibt die kombinatorischen Standardschaltungen und die Realisierung von Schaltfunktionen mit Multiplexerbausteinen und vorstrukturierter

programmierbarer Logik. Als ein besonderer Schwerpunkt dieses Buches wird die Synthese von sequentiellen Schaltungen auf der Basis von MOORE- und MEALY-Automaten vermittelt. Dies betrifft sowohl Standardschaltungen, wie Flip-Flops, synchrone und asynchrone Zähler und Teiler, als auch komplexe Schaltungen im Sinne von "flachen" Automaten. Der überwiegende Teil dieses Lehrbuches basiert auf den seit vielen Jahren vom Autor gehaltenen Grundlagenvorlesungen "Digitale Schaltungstechnik" und „Synthese digitaler Schaltungen" an der Fakultät Elektrotechnik und Informationstechnik bzw. der Fakultät Informatik und Automatisierung an der Technischen Universität Ilmenau. Die systematische Einarbeitung in den dargestellten Stoff setzt Grundlagenkenntnisse der Mathematik und z. T. der Elektronik voraus. Zahlreiche Beispiele unterstützen die Anschaulichkeit der vermittelten Theorie. Geschrieben wurde das Buch vorzugsweise für Studenten und Mitarbeiter an Universitäten und Hochschulen der Studiengänge Elektrotechnik und Informatik, die den Entwurf und die Analyse digitaler Schaltungen zum Gegenstand haben. Aber auch für den Fachmann in Forschungs- und Entwicklungsbereichen, der sich mit mikroelektronischen Schaltungen und Systemen auseinandersetzt, ist es ein nützliches Nachschlagewerk.

Bei der Abfassung dieses Buches habe ich vielfältige Unterstützung erfahren. Meine wissenschaftlichen Assistenten erprobten die hier vermittelten Synthese- und Analysemethoden in zahlreichen Übungsveranstaltungen mit Studenten. Vor allem möchte ich Herrn Dr. rer. nat. Th. Böhme danken, der maßgeblich an der Ausarbeitung der Abschnitte zur Booleschen Algebra und zu den automatentheoretischen Grundlagen der sequentiellen Systeme beteiligt war. Frau Dipl.-Ing. U. Rommel und Frau I. Heyer erarbeiteten mit Engagement und Ausdauer die Druck vorlagen. Zahlreiche Hinweise zur Systematisierung und Darstellung des Stoffes verdanke ich Herrn Dr.-Ing. habil. A. Kühlmann, den Herren Dr. rer. nat. J. Rempel, Dr. rer. nat. A. Müller und Prof. Dr. rer. nat. J. Kelber, Herrn Dr.-Ing. Chr. Schröder, Frau Dipl.-Ing. Chr. Wisser und den Herren Dr.-Ing. K. Pahnke, Dipl.-Ing. R. Selent, Dr.-Ing. T. Krenzer und Dr.-Ing. St. Arlt.

Ilmenau, Sommer 2001

Prof.

Dr.-Ing. habil. G. Scarbata

1 Boolesche

Algebra, Schaltalgebra Begriffsbestimmung -

Basis für eine Synthese und Analyse digitaler Schaltungen ist die Schaltalgebra als eine spezielle Form der Booleschen Algebra. Letztere wurde nach dem englischen Mathematiker G. Boole (1815-1864) benannt und damit dessen 1854 erschienenes Buch "The Laws of Thoughf und andere seiner Arbeiten zum Kalkül der formalen Logik honoriert. Nach [1.1] ist die Boolesche Algebra ein Tripel '

A:

=

(X-*),

(1.1)

in dem und * zweistellige Operatoren und X eine endliche Menge sind. Die Operatoren einer solchen Algebra (1.1) genügen für x2, x„ Xo 6 X folgenden Bedingungen:

1.1.1 Kommutative Beziehungen x1TXo xiAx0

=

=

(1.2.a) (1.2.b)

x0'x1 x0*x1

1.1.2 Assoziative Beziehungen

(x2 Xj) (x2 xx) » *

x« Xo

*

=

=

x2 x2

» a

(Xl xo) (Xl Xo)

(1.3.a) (1.3.b)

" *

1.1.3 Distributive Beziehungen x2 x2

1.1.4

1.2

» a

(x, x«) (x2 x,) (x2 Xo) (Xl Xo) (x2 Xl) » (x2 x,,) a

=

»

t

=

a

a

(1.4.a) (1.4.b)

v

*

Adjunktive bzw. Absorptive Beziehungen x, (Xl xo) x, Xi (x, x«) x,

(1.5.a) (1.5.b)

Für die Operatoren T und A existiert je ein neutrales Element n. und n,: VxeX: x»n. =n. tx x,

(1.6.a)

a

»

=

T

*

=

=

x

1.3

a

n.

=

n. aX

Es gibt die einstellige welche die Menge X

gelten:

x*x=n.,

XAX

=

(1.6.b)

x.

Operation (außer diesem Symbol ist auch "/" üblich), eindeutig auf sich abbildet, wobei folgende Beziehungen "~"

(1.7.a) (1.7.b)

=n,

x=x.

Der

Operator

Negation.

"""

hat bei der hier

beabsichtigten Interpretation

die

Bedeutung der

1 Boolesche Algebra,

2

Schaltalgebra Begriffsbestimmung -

Mit diesen drei Bedingungen läßt sich die in (1.1) folgt erweitem:

A':

=

(X; t,

f,

,

n„

dargestellte algebraische Struktur wie

(1.8)

n,).

Man kann eine solche Struktur auf verschiedene Weise inhaltlich

interpretieren,

z.

B.

mengentheoretisch (dann handelt es sich um eine Boolesche Mengenalgebra): Dafür wählt man X {M,0}, wobei M eine nichtleere und 0 die leere Menge bezeichnen und interpretiert T, » und als die Operationen der Vereinigung, der Durchschnittsund des zur Übergangs Komplementärmenge, wofür wir die in der Mengenbildung theorie üblichen Symbole u, n und benutzen: =

"~"

~

A*: ({M,o}; u, =

n,

~,

0,

(1.9)

M).

Die Operationstabellen für u (Vereinigung), n (Durchschnitt) und 0- und M-Menge haben dann folgenden Inhalt:

M

0

M

0

M

0

M

0

0

M

M

0

M

M

~

(Komplement) der

M M

(1.10) digitalen Schaltungstechnik benutzen wir eine andere Interpretation, und zwar diejenige, von der Boole ursprünglich ausgegangen ist: In der

S:

=

({n„ n.};*, *,/, n„ n.).

(1.11)

+ und * Mit nT 0 und n. 1 sowie vereinfacht sich (1.11) zu der für die tale Schaltungstechnik instrumentierbaren Struktur: =

S:

=

=

=

=



({0,1};+,-,/, 0,1).

digi(1.12)

Dabei sind 0 und 1 Symbole (nicht die ganzen Zahlen 0 und 1 !) für die neutralen Elebezüglich der Operationen "+" (ODER) bzw. "•" (UND). Die Operationstabellen für die Schaltalgebra sind:

mente

0

1

0

1

0

1

0

0

1

1

0

1

/

(1.13) Die Darstellungen (1.10) und (1.13) verdeutlichen, daß die Boolesche Booleschen Mengenalgebra isomorph ist.

Schaltalgebra der

1 Boolesche Algebra,

Schaltalgebra Begriffsbestimmung

3

-

Neben den Operationssymbolen (+, -, /) sind auch andere gebräuchlich, teilweiser Anlehnung an die Mengenalgebra (u, n, ~):

Operation ODER

(DISJUNKTION) UND

(KONJUNKTION) NEGATION

(KOMPLEMENT)

+

Xo

Xi Xo

=

-

Ix

m

x'

(V, A, ') in

x, ODER Xo

x, V Xo

XiUNDxo

X[ A Xo

X[Xo

*

B.

Sprechweise

Symbole X!

z.

-

h x

x

-

-

NEGATION von x KOMPLEMENT von x

2

Operationssystem der Schaltalgebra

Die bereits für die Boolesche Algebra generell definierten Beziehungen (1.2für die Schaltalgebra S:

({0,1}; +,-,/, 0,1)

=

mit x, x2, xls Xg

e

2.1 Kommutative

(2.1)

{0,1} sinngemäß: Beziehungen

(2. La) (2.1.b)

x, + Xo =Xo + X! Xi'Xo =Xo'Xj 2.2 Assoziative

Beziehungen

(x2 + x,) + x„ (x2 xo x« •



2.3 Distributive x2 x2

+

2.5

x2



(xj + xo) (x! x«) •

(X! Xo) (x2 + Xj) (x2 + Xo) (x, + Xo) (x2 x,) + (x2 Xo) =



(xj + Xo) + (x, Xo) •



(2.2.a) (2.2.b)







(2.3.a) (2.3.b)

Absorptive Beziehungen

=

=

x, xl

(2.4.a) (2.4.b)

Operationen mit den neutralen Elementen 0 und 1 0 =0 + x 1 1 +x 0 0 x 1 1 x

x + x

2.6

x2 +

Beziehungen

2.4 Adjunktive bzw. x, x,

=

=

=



1.7) gelten

+

x



x



=

=

=

=



=

=



=

x

1 0 x

(2.5.a) (2.5.b) (2.5.c) (2.5.d)

Komplementbildung (Negation) Ix

=

x

=

x

x

x + x

=

1

x-ïï =0.

(2.6.a) (2.6.b) (2.6.c) (2.6.d)

2

Operationssystem der Schaltalgebra

5

Die Tabelle 2.1 enthält eine Zusammenfassung der Operationen (UND), + (ODER) und (Komplementbildung) mit einer Variable xeX und den neutralen Elementen 0 und 1. •

"~"

xe0,l

x



x



X

0 1 0 1



X



+ + +

X X

X

=

0

=

x

=

0

=

x

0 1 0 1

+



x X

x



X



X

+

X

0 +0 =0 0+1=1 1+0=1 1+1=1

1 X

1

= ...

0-0=0 0-1=0 1-0=0 1-1=1

x

X...=

x

0,1

X

X

0 1

1 0

+ +

1 0

+ +

1... 1 0... =0 =

1-1-1... 1 0-0-0... =0 =



+

1 =0 1=1 0 1

Tabelle 2.1

Basis-Operationen in der Schaltalgebra

3 Boolesche Funktionen Die folgenden Definitionen dienen der Begriffsbestimmung der Booleschen Funktion. Die Boolesche Menge {0,1} bezeichnen wir im weiteren mit X. 3.1 3.2

Ein Element 0 oder 1 der Booleschen

Menge X bezeichnet man als Konstante.

Ein Symbol x, das ein beliebiges Element der Booleschen Menge X repräsentieren

kann, bezeichnet man als Variable x e X. 3.3

f(xk.,,...,xK,...,x0) mit den Variablen \k.u...,xKf...,\0 als Abbild f der Menge X in die Menge X wird als Boolesche Funktion bezeichnet, wenn sie mit den folgenden Vorschriften gebildet werden kann:

3.3.1

sei eine Konstante. Dann sind f(xk_,,...,xK,...,x0) = a und f(xi.i,...,x1c,..^x0) = x,. Boolesche Funktionen. Bei der ersten spricht man von einer konstanten Funktion, bei der zweiten von einer Projektionsfunktion. a

f(xk.„...,xKf...,x0) eine Boolesche Funktion ist, dann ist f(xk_j,...,xK,...,x0) ebenfalls eine Boolesche Funktion, die wir auch mit f (^.„....x^...»^) bezeichnen.

3.3.2 Wenn

3.3.3 Wenn f1(xk.,,...,xlc,...,x0) und f 0(xk.!,...,xK,...,x0) Boolesche Funktionen sind, dann sind fi(xk.!, xK,..., x0) und xK,..., Xq) + f0(xk.„ fi(xk.,,..., xK,..., Xo)- f0(xk_i,..., xK,..., x0) ebenfalls Boolesche Funktionen. ...,

...,

Eine Funktion heißt also genau dann eine Boolesche Funktion, wenn sie mit Hilfe einer endlichen Anzahl wiederholter Anwendungen der unter 3.3.1 bis 3.3.3 genannten Vorschriften erzeugt werden kann. Das heißt, eine Boolesche Funktion kann erzeugt werden aus konstanten Funktionen und aus Projektionsfunktionen durch eine endliche Anzahl von Anwendungen der Operationen ", "+", und "•". Die Projektionsfunktion f(x) = x einer einzigen Variable x ist offenbar die identische Funktion. Die Bildung einer Booleschen Funktion mit Hilfe der Vorschriften 3.3.1 3.3.3 soll an einem folgenden Beispiel für zwei Variable x, und x0 nachvollzogen werden. Gegeben seien z. B. zwei Projektionsfunktionen für je eine Variable Xq bzw. x, ""

-

Mittels

f(x0)

=

f(Xi)

=

(3. La) (3.1.b)

x0 x,

Komplementbildung nach Vorschrift 3.3.2 erhalten wir aus (3.1)

fTV" fTxTT

=

xo

=

x,.

(3-2-a) (3.2.b)

Führen wir mit diesen vier Funktionen (3.1) und (3.2) entsprechend der Vorschrift 3.3.3

3 Boolesche Funktionen

7

B. die UND-Operation aus, Variable z.

f0(xl5Xo) fl(Xi,Xo) f2(x„Xo) f3(x1,Xo)

=

=

=

=

erhalten wir vier neue Boolesche Funktionen für zwei

so

f (x1)- £

(x0) f (X^ -f(Xo) f(xj f (x0) ffo) f(Xo)

=

(3.3.a) (3.3.b) (3.3.c) (3.3.d)

XjXo

=X!Xo



=



=

x^o X,Xo-

Eine Auswahl der Funktionen (3.3) kann man nun z. B. mittels ODER-Operationen in eine Funktion ffo.Xo) überführen. Diese Auswahl kann unter Zuhilfenahme der in 3.3.1 definierten konstanten Funktion geschehen. Wir führen dazu UND-Verknüpfungen zwischen den Funktionen (3.3) und den konstanten "0" bzw. "l"-Funktionen beispielsweise wie folgt durch und unterziehen diese UND-verknüpften Terme der ODER-Operation: -

f(xl5Xo)

=

0



fo(x„Xo) + 1 f^x^Xo) + 1 f2(x!,Xo) + 0 f3(x1;Xo). •





(3.4)

Als Ergebnis erhalten wir

f(x„Xo) f^X^Xo) + f2(x„Xo) =X!Xo + XjXo.

(3.5)

=

Mit der für (3.4) getroffenen Auswahl (insgesamt gibt es 16 Auswahlmöglichkeiten für die vier Funktionen (3.3)) erhalten wir eine ANTIVALENZ-Verknüpfung (3.5) für die Variable X! und Xo- Das Symbol + für eine solche ANTIVALENZ-Verknüpfung ermöglicht die verkürzte Schreibweise

f(x„Xo)

=

(3.6)

X! f Xo.

Die komplette tabellarische Zuordnung der Funktionswerte "0" und "1" einer Booleschen Funktion zu den möglichen Kombinationen der "0" und "1" Belegungen für die Variable xk.1,...,xie,...,x0 nennt man Wahrheitsstabelle oder Schaltbelegungstafel. Für die ANTIVALENZ Funktion zweier Variablen gilt folgende Wahrheitsstabelle: -

-

Xfl

f,

£,

f,

f

0

0

1

0

0

0

0

0

1

0

1

0

0

1

1

0

0

0

1

0

1

1

1

0

0

0

1

0

Tabelle: 3.1 Wahrheitsstabelle der Booleschen Funktionen f0

f3 (3.3) und der ANTIVALENZ-Funktion f (3.5) -

4 Boolesche Funktionen kombinatorischer

4.1

Schaltungen

Begriffsbestimmungen

Analysieren wir zunächst eine kombinatorische Schaltung K, die eine Boolesche Funkf(x.) realisiert, wobei diese Funktion in Form einer Wahrheitstabelle als ANTIVALENZ-Verknüpfung der beiden Eingangsvariablen x, und Xß vorgegeben sein soll. Der Ausgang dieser kombinatorischen Schaltung sei y, wie im Bild 4.1.1 dargestellt. tion y

=

y=

o i 2 3

0 0 1 1

x

0 1 0 1

,*xn 0 1 1 0

K

Bild 4.1.1 Wahrheitstabelle und Blockschaltbild für eine kombinatorische

Schaltung (ANTIVALENZ-Funktion)

Jede der möglichen Eingangsbelegungen x. für k Variable läßt sich durch einen Vektor

(xk.„...,xK,...,x0)

=

x

(4.1.1)

darstellen. Offenbar gibt es e 2k verschiedene solche Vektoren. Diese werden im folgenden mit x0,...,xt,...jie.l bezeichnet, wobei wir vereinbaren, daß für =



=

(xe>k.i'-'xe,K'->xe,oX

e

(4.1.2)

{0,...,e-l}

e

gilt. k-1

e

=

Exw-2K

(4.1.3)

K=0

d. h. Xe ist die in Vektorform angeordnete binäre Darstellung der natürlichen Zahl Die Menge der Vektoren x,, läßt sich auch durch eine Matrix darstellen:

X

=

X

e

X

e-1,

e.

(4.1.4)

d.h.: X

Ä0,k-1

...

X £, k-1

...

A0,K

...

A0,0

(4.1.5)

=

X

=

e-1,

X E.

K

k-1

X e,

K

...

X e, 0

X

e-1,

e

=

o,

l

e-1

k

=

o, 1

k-1

...

K

...

X

e-1,

0

(4.1.6)

4.1

9

Begriffsbestimmungen

Eingangsbelegung x^ über die Schdtfunktion y f(x) zugeordnete Ausgangsbelegung bezeichnen wir mit Die der

ye

=

=

(4.1.7)

f(xje{0,l}. ordnen wir

möglichen Ausgangsbelegungen (Spaltenvektor)

Diese

zu

einer

einspaltigen

Matrix

'y, y*

(4.1.8)

-

an.

Für die möghchen e

=

2k Eingangsbelegungen sind insgesamt a

=

2e

=

22 Ausgangsfunk-

Eingangsvariablen B. für x, und Xo mit ihren 16 kombinatoe 2k 4 möglichen Eingangsbelegungen gibt es insgesamt a 2e rische Schaltungen, die diese möglichen 16 Ausgangsfunktionen realisieren. Die ANTIVALENZ-Funktion im Bild 4.1.1 ist eine von diesen. Alle 16 Funktionen sind in Tabelle 4.3.1 enthalten. Alle a Ausgangsfunktionen bilden demgemäß eine Menge von Vektoren: tionen definierbar. Also für zwei =

z.

=

=

=

(4.1.9)

{Vj,,...,^,...,^.!}. Diese Menge läßt sich auch durch eine Matrix darstellen:

(4.1.10)

X=[Yo,...,ya,...,y_a.1] d.h.: J

Y

=

1

0,0

I y

y

e.o

[

0

e-1,

a-1

E,

a-l

(4.1.11)

e.o

y e-l, a-l

a

=

0,

e-l,

ye,Av,yE){-i) (&&...&(&...JtrfjÜ) =

Ye

KiA werden mit f0,..., fM

(4.1.14)

welche wir in Form eines Zeilenvektors mit 0-Elementen anordnen. Betrachten wir nun wieder alle e möglichen Eingangsbelegungen, so erhalten wir (wie soeben beschrieben) für jede dieser Eingangsbelegungen x^. einen Zeilenvektor y^. Insgesamt erhält man also e Zeilenvektoren y0>-••>&>•••>& i» welche wir zu einer Matrix o, o

Yf

o

,x

0

I

,

M

=

6,0

-1,0

-[y..x]

E

=

*

=

0.e-1 0-, fi-1

£

,X

E,

I

5-1

(4.1.15)

' e-l.B-1

(4.1.16)

anordnen. Die Matrix tritt hier also an die Stelle des Spaltenvektors in (4.1.8) und entspricht nicht etwa der Matrix Y (4.1.11 bis 4.1.12). Die betrachtete kombinatorische Schaltung K ist

durch die Matrix Xf eindeutig bestimmt. Umgekehrt entspricht jeder 0-1-Matrix mit e Zeilen und t Spalten genau einer kombinatorischen Schaltung mit k Eingängen und l

Ausgängen.

Da es 2 T Matrizen gibt, gibt es also auch genausoviele kombinatorische Schaltungen K mit k Eingängen und i Ausgängen. Sie entstehen aus allen Kombinationen der kombi-

natorischen Schaltungen K0,...,Kit...,Kt.ï.

4.2 Boolesche Basisfunktionen für eine Eingangsvariable

Da es a

=

2

=

11

T verschiedene kombinatorische

Schaltungen mit k Eingängen und einem

Ausgang gibt, können also insgesamt a" solche Kombinationen und also genau a' kombinatorische Schaltungen K gebildet werden. Daraus ergibt sich ferner, daß es sinnvoll ist, sich auf die Betrachtung von kombinatorischen Schaltungen mit höchstens

Ausgängen zu beschränken. Besitzt eine kombinatorische Schaltung mit k Eingängen mehr als a Ausgänge, so gibt es offenbar stets mindestens zwei "äquivalente" Ausgänge y„ fa(x) und y0. L^x), d. h. faÖO 4'GO für alle möglichen Eingangsbelegungen x.. Wir setzen daher im folgenden stets Í a voraus. Im Unterschied zu einer sequentiellen Schaltung, die in nachfolgenden Abschnitten dieses Buches behandelt wird, realisiert die kombinatorische Schaltung eindeutig die definierte Funktion y f(x), ohne daß dabei interne Schaltungszustände, die bei sequentiellen Schaltungen durch Signalrückführungen gezielt erzeugt werden, einen Einfluß haben. Die kombinatorische Schaltung besitzt also keinerlei interne Speicher. Im Bild 4.1.3 ist eine solche Schaltung mit der Wahrheitsstabelle und den zeitlich willkürlich determinierten Signalverläufen dargestellt, die dieses Verhalten veranschaulicht. a

=

=

=

=

H

x0H

y

=

l

0 0 0 0 1 1 1 1

&

f(x) (x,+Xo)x2 =

Bild 4.1.3

0 0 1 1 0 0 1 1

0 0 0 0 0 1 1 1

0 1 2 3

6 7

Beispiel für eine kombinatorische Schaltung

Die Funktionswerte "0" und "1" am Ausgang y der kombinatorischen Schaltung stellen sich für jede an den Eingängen angelegte Kombination (xt2,xe^1,xe0) über die Schaltfunktion y f(x.) sofort eindeutig ein, wenn man die Signallaufzeiten durch das ODER- und UND-Element zunächst ideal mit Null annimmt. (Unterschiedliche Signallaufzeiten können zu Fehlem am Ausgang y führen!) =

4.2 Boolesche Basisfunktionen für eine

Eingangsvariable

Für eine kombinatorische

Schaltung sollen die Eingangsvariablen xeX={0,l} und die Ausgangsvariablen yeY {0,l} sein. Diese Eingangs- bzw. Ausgangsvariablen lassen sich jeweils in einem Binärraum B2k darstellen, wobei B2 die Menge der Symbole "0" und "1" und k die Anzahl der Eingangsvariablen x sind. Für eine Eingangsvariable Xo existiert mit k 1 ein eindimensionaler Binärraum B2' =

-

-

=

.

4 Boolesche Funktionen kombinatorischer Schaltungen

12

(e=0)

o

K

«i

(e=l) Bild 4.2.1

Eingangsraum B2' für eine Variable x„

Jeder der beiden Endpunkte für Xo im Bild 4.2.1 stellt eine Eingangsbelegung für die kombinatorische Schaltung dar und zwar für e 0 : Xo 0 und für e 1 : Xo 1. =

Es existieren e

=

=

=

=

2k 21 2 Eingangsbelegungen mit dem laufenden Index e 0,1 : =

=

xo

=

0, 0

=

K

e, 0

Bild 4.2.2 Eingangsbelegungen für eine Variable x,,

Da jeder Eingangsbelegung x^0 zwei Ausgangsbelegungen mit "0" und "1" zugeordnet werden können, ergeben sich mit B2' B2' B22 insgesamt a 2° 22 4 Ausgangsbelegungen mit dem laufenden Index a 0,1,2,3 für eine Eingangsvariable Xo: =



=

=

=

=

0 e,0

K

y«,

o

(e=0) =0)

y3 y0 x^#\

y0- o

a

yo, o yo, i yo, 2 yo, 3 yi.o yi, 1 yi,2 yi,3

K

0101

0011

yf=

y0

(6=1) Bild 4.2.3 Ein- und Ausgangsbelegungen für eine kombinatorische Schaltung mit einer Variablen Xo

4.3 Boolesche Basisfunktionen für zwei Eingangsvariable

13

(4.2.1) sind die Wahrheitstabellen aller kombinatorischen Schaltungen mit einer Eingangsvariablen Xo und einer Ausgangsvariablen y dargestellt: In

y0 y,iJ y* y, o 11 o i 0 0 111

(4.2.1)

Aus den Wahrheitsstabellen ist ersichtlich, daß y0 y, y2 y3

0

= =

=

=

x0 Xo 1

(konstant 0) (identisch "xo negiert") (identisch "xo") und (konstant 1)

(4.2.2)

sind. Stellt man sich in (4.2.1) eine Symmetrielinie (gestrichelt) zwischen den ersten beiden Funktionen und den anderen beiden vor, so ist zu erkennen, daß die Funktionen links bzw. rechts dieser Syrnmetrielinie durch Spiegeln bei gleichzeitiger Komplementbildung ineinander überführbar sind: y0

=

und

y3

(4.2.3)

yi=y2.

4.3 Boolesche Basisfunktionen für zwei

Eingangsvariable

Für eine kombinatorische Schaltung sollen die Eingangsvariablen xeX={0,l} und die Ausgangsvariablen y e Y {0,1} sein. Diese Eingangs- bzw. Ausgangsvariablen lassen sich jeweils in einem Binärraum B2k darstellen, wobei B2 die Menge der Symbole "0" und "1" und k die max. Anzahl der Eingangsvariablen x sind. Für zwei Eingangsvariable Xj und Xo existiert mit k 2 ein zweidimensionaler Binärraum B22: =

-

-

=

K

Bild 4.3.1

Eingangsraum B22 für zwei Variable x, und x x^o) genau einem Ausgangspunkt ye e {0,1}, also ergeben sich mit B22 B22 B24 insgesamt a 2e 2t 16 mögliche Ausgangsfunktionen mit dem laufenden Index a 0,l,...,15für zwei Eingangsvariable x, und Xq-. •

=

=

=

=

=

(a=15)

1

yf=

K

(e=2)

0,1

[xE,k]

0,0

X 1, 1 1,0

01

X2,l X2,0

10

X3,0

11

X

X

3, 1

(e=0)

00 K

'o,o -'o, y 3

1,0

y '

y 2,0 y'

Bild 4.3.3

Eingangsbelegungen und Ausgangsfunktionen Schaltung K mit einem Ausgang y

1

1, 1 2, 1

...

...

y0,i5

yi,15 y

...

2, 15

o 0 0 0

i

0 0 0

y 3,0 y3 3. 1 3, 15 zwei Variable x, und x 0 einer kombinatorischen für

4.3 Boolesche Basisfunktionen für zwei Eingangsvariable

15

jeder möglichen Ausgangsfunktion ya genau eine kombinatorische Schaltung K entspricht, existieren a 2e kombinatorische Schaltungen. Für den Fall zweier Eingangsvariablen gibt es also 16 kombinatorische Schaltungen, die in der folgenden Tabelle 4.3.1 dargestellt sind. Da

=

3210 1010 1100

Schaltfunktion

0000

y0=o

0001

y,

0010

y2=x

=

x

0011

y3

=

"x

0100

y4=

"

0101

y5=

x

0110

y6=x

Verhaltensbe-

Operationsschreibung symbole konst.

j+x

i4-

NOR Inhibition

1N

y9= x"

1010

yio=x

1011

yn=x

1100

yi2=

x

1101

yi3=

x

'

Ä

0

X0

Negation Inhibition

3>xo

x

0+x j x0

Negation

x7x,x', —iX

Antivalenz

*

©

AND, UND

x

M2

l/X0

NAND

1001

x o

XlÇ

Olli

y8=

neuere

0

xi

1000

Schaltzeichen

&, -,A

Konjunktion

xo+xrxo Äquivalenz

=

ft

Identität + x

,

Implikation

X!

3X0

Identität

Implikation

+ x

*

Is

Ao

XlC X0 1110 y14=x 1111

y15= i

+ x

,

OR, ODER

Disjunktion konst. 1

Tabelle 4.3.1/1 Schaltfunktionen für zwei Variable x, und Xu

+,V

1-

4 Boolesche Funktionen kombinatorischer

16

3210 1010 1100

Schaltfunktion

Verhaltensbe-

schreibung

0000

y0=o

0001

y

x1+x0

0010

y2=

x

0011

y3= xi

konst.

0

iTo

0101

y5="xo

0110

y6=

Olli

y7= xrxo

1000

y8= xi'xo

Inhibition

Negation

ix o+x ix o

Antivalenz

Konjunktion

y9

xixo+xrx,

1010

yio-

x o

Identität

1011

yn=

x

1100

yi2=

x i

1101

yi3=

xi+x0

1111

1* auch:

2* auch:

x

y.5=i

i+



-t>

3>

AND, UND

Äquivalenz

i+x o

1*

NAND

1001

1110 yi4=

3>

NOR

Negation

y4

x

USA

Inhibition

ix o

0100

x

Schaltzeichen ältere

2*

O-

Implikation Identität

x

o

Implikation OR, ODER

Disjunktion konst. 1

:g>.®>.£> l|T)-

Tabelle 4.3.1/2 Schaltfunktionen für zwei Variable x, und x,¡

5>

Schaltungen

4.3 Boolesche Basisfunktionen für zwei Eingangsvariable

17

Stellt man sich in Tabelle 4.3.1 eine Symmetrielinie (gestrichelt) zwischen den oberen acht Funktionen y0 bis y7 und den unteren acht Funktionen y8 bis y15 vor, so ist zu erkennen, daß für zwei Eingangsvariable die eine Gruppe durch Spiegeln um diese Symmetrielinie bei gleichzeitiger Komplementbildung in die jeweils andere überführt

werden kann, d.h. z. B.: y7 y8, y5 y10 usw. Im folgenden sollen einige Basisfunktionen aus Tabelle 4.3.1, die nicht trivial sind, führlicher spezifiziert werden. =

=

1. NOR-Funktion: Diese Funktion ist genau dann "1",

aus-

beide Eingangsvariablen "0" sind. Eine in der "1" initialisiert bereits den Ausgangswert "0".

wenn

Eingangsbelegung (xc „ x,.0) beteiligte 2. INHIBITION

INHIBITION heißt Verriegelung, z. B. y2 x ,x 0 mit dem Symbol Xo h-> x, besitzt die Eigenschaft, daß für X[ 1 die Verriegelung von Xo mit einer konstanten "0" am Ausgang wirksam ist. Für x, 0 hingegen ist der Ausgang gleich x„. =

=

=

&

&

0

x1=l

x

1=0

3. ANTIVALENZ

Die ANTIVALENZ-Funktion x¡ i Xq ist genau dann "1", wenn eine von beiden Eingangsvariablen "1" ist. Damit ist diese Operation gleich der binären Addition und wird deshalb auch als Addition-modulo-2 (M2) bezeichnet. In der Literatur ist für diese Operation mit zwei Eingangsvariablen auch die Bezeichnung Exklusiv-ODER (1 und nur 1) anzutreffen mit folgendem Schaltzeichen: =

1

Exklusiv-ODER bedeutet "Ausschließliches ODER", d. h. der Funktionswert ist nur für den Fall gleich "1", wenn die Anzahl der "1 "-Variablen in den Eingangsbelegungen gleich der im Symbol "=1" des Schaltzeichens angegebenen Zahl (hier 1) ist. Sind keine Eingangsvariablen gleich "1" oder mehr als eine Eingangsvariable gleich "1", so ist der Funktionswert "0" (siehe auch Tabelle 4.4.1 und 4.4.2). 4. NAND-Funktion

Diese Funktion ist genau dann "0", wenn beide Eingangsvariablen "1" sind. Eine in der Eingangsbelegung (x^, x^) beteiligte "0" sorgt bereits für den Ausgangswert "1". 5.

ÄQUIVALENZ

Die

ÄQUIVALENZ-Funktion

Eingangsvariablen "0" ist.

x,

-

Xq ist genau dann "0",

wenn

eine

von

beiden

4 Boolesche Funktionen kombinatorischer Schaltungen

18

6. IMPLIKATION

Die IMPLIKATIONS-Funktion yn x, + Xo ist genau dann "0", wenn X! die Variable Xo impliziert (Xj-Xg), d. h. Xi muß größer Xo sein, was mit x, 1 und x0 0 auch gegeben ist. =

=

=

Die Booleschen Basisfunktionen für zwei oder mehr Variablen werden von Schaltungen realisiert, für die symbolisch die Schaltzeichen nach Tabelle 4.3.1 stehen. Diese Schaltungen nennt man auch Gatter bzw. im englischen "Gate", was soviel wie "Tor", "Pforte", "Weg" bedeutet. Ein Gatter kann mehrere Eingänge aufweisen, aber nur einen Ausgang. Die "Tor"-Funktion solcher Gatter kann man mit Beschallungen wie im Bild 4.3.4 illustrieren und damit diese Bezeichnung begründen. Durch die Beschattung eines Gattereinganges mit "1" bzw. "0" ist seine "Tor"-Funktion so festgelegt, daß die Variable x negiert bzw. nicht negiert "durchgeschaltet" wird oder aber keine Durchschaltung der Variablen x erfolgt.

0 &

h-x

M

X

&

b-

X

x-t

&

&

rP

b-x

Vx

hx

Bild 4.3.4 Darstellung der "Tor"-Funktion von Gattern mit zwei Eingängen

4.4 Boolesche Funktionen für k

>

2

Eingangsvariable

Für mehr als zwei Eingangsvariable k > 2 sind die im Abschnitt 4.3 behandelten Booleschen Basisfunktionen entsprechend zu erweitem. Zunächst werden die Eingangsräume für kombinatorische Schaltungen für drei und vier Eingangsvariable bestimmt: Für drei Eingangsvariable x2, x, und Xo existiert mit k 3 ein dreidimensionaler Binärraum B23, die Anzahl der Ein- bzw. Ausgangsbelegungen sind entsprechend (4.1.6) und (4.1.8) =

e

=

2k

=

8

und

a

=

2e

=

256.

19

4.4 Boolesche Funktionen für k>2 Eingangsvariable

'0,0

yf

=

'0,

1

0, 255

y l.o y 1,

1

1,255

y7,0

l

y 7,

...

y 7,255

Bild 4.4.1 Ein- und Ausgangsbelegungen für eine kombinatorische Schaltung mit drei Variablen

Noch drastischer steigt die Anzahl der theoretisch möglichen Ausgangsfunktionen ya für vier Eingangsvariable. Es existieren hier für e 2k 16 Eingangsbelegungen insgesamt =

a

=



=

65536

Ausgangsfunktionen.

=

4 Boolesche Funktionen kombinatorischer

20

Schaltungen

1110-

(e=14)

X

K

=

(e=l) 0001 15

y 0,0

yf

=

A

y0,

1

...

y 1,0 y 1,

1

...

1

...

y

'l5,0 y'lS,

15

y 0,65535 y 1,65535

y

MS,65535

Bild 4.4.2 Ein- und Ausgangsbelegungen für vier Variablen

Weiter definieren wir die interessierenden Booleschen Funktionen für beliebig viele Eingangsvariable xk.1,...,xK,...,x0 und fuhren dabei geeignete symbolische Abkürzungen für die auszuführenden logischen Operationen ein: ODER-Funktion k-l

£ xK

=

K=0

Xk_!

+

xk.2 +...+ xK +...+ X,

+

(4.4.1)

x«.

Die k-stelhge ODER-Funktion ist genau dann "1", variablen gleich "1" ist.

wenn

mindestens eine der Eingangs-

Das Symbol £ steht für die dis unktive Verknüpfungsvorschrift von Termen.

NOR-Funktion

I^k =*„-!+xk_2

+

.

+x

+.

+

X1+X0

(4.4.2)

4.4 Boolesche Funktionen für k>2 Eingangsvariable

21

Die k-stellige NOR-Funktion ist genau dann "1", wenn alle Eingangsvariablen gleich "0" sind. Bereits eine Eingangsvariable mit dem Wert "1" bewirkt, daß die NOR-Funktion "0" ist. irND-Funktion k-1

P|xK K=0

=

xk., xk.2 •



• ...

x,,



(4.4.3)

X! Xo. •

...

Die k-stellige UND-Funktion ist genau dann "1", wenn alle sind. Das Symbol

Eingangsvariablen gleich "1"

\~\ steht für die konjunktive Verknüpfungsvorschrift von Termen.

NAND-Funktion FT

I"] K=0

_

xK= x^



xk_2

•.. .-

xK

•.

.

.•

xx



x0.

(4.4.4)

k-stellige NAND-Funktion ist genau dann "0", wenn alle Eingangsvariablen "1" sind. Bereits eine Eingangsvariable mit dem Wert "0" bewirkt, daß die NAND-Funktion "1" ist. Die

ANTIVALENZ k-1

XK 0 K=0

=

Xk.!

T-

Xk.2

T-

...

+ XK i

f Xj f Xfl.

...

(4.4.5)

Die k-stellige ANTIVALENZ-Funktion ist genau dann "1", wenn die Anzahl der Variablen, die in der Eingangsbelegung x«. gleich "1" sind, ungerade ist. Das Symbol

© steht für die antivalente Verknüpfungsvorschrift von Termen.

ÄQUIVALENZ k-1

0 xK K=0

=

xk.!

~

xk.2

-

~ ...

xK

-

~ ...

x,

-

x«.

(4.4.6)

k-stellige ÄQUIVALENZ-Funktion ist genau dann "0", wenn die Anzahl der Variablen, die in der Eingangsbelegung Xj, gleich "0" sind, ungerade ist. Die Das

Symbol

(~)

steht für die äquivalente Verknüpfungsvorschrift von Termen.

Außerdem gilt: k-i

k-i

© xK 0 xK K=0 =

für k-ungerade

K=0

und

ï=ï

k_!

© xK © .

K=0

K=0

xK

für k-gerade.

4 Boolesche Funktionen kombinatorischer Schaltungen

22

folgende Tabelle 4.4.1 stellt die Ein- und Ausgangsbelegungen für zwei und drei Eingangsvariable x^ für ausgewählte Boolesche Funktionen gegenüber, die in mehr oder weniger enger Beziehung zueinander stehen. Die

ODER

Exklusiv-Oder ANTIVALENZ 1 und I 2 und nur 1 nur 2 Addition M2

ÄQUIVALENZ 0 1 1

0 1

0 0 1

1 >1 Tabelle 4.4.1

=2

=1

2 Eingangsvariable

Exlusiv-ODER

(m

0 0

0

1 1

1 0 1

0 0 1 1

0 1 0 1

aus

-Element

k)

(m und

z.B. m=2

m=l

1

0 0 0 0 1 1 1 1

23

0 1

0 0 0

0 0 0 1 0 1 1

1

0

1

m)

nur

m>2

k>3

0 =m

=2

=2 x

h

,

H

y

Tabelle 4.4.2 Wahrheitstabelle für Exklusiv-ODER und (m aus k)-Elemente nach Definition (DIN 40900)

Weitere Eigenschaften von ANTIVALENZ- und ÄQUIVALENZ-Funktionen für kVariable sind für k 2 (stellvertretend für eine gerade Anzahl von Eingangsvariablen) und für k 3 (stellvertretend für eine ungerade Anzahl von Eingangsvariablen) z. B. =

=

folgende:

für k = 2 Variable: -

x~

0=

x

x

0

l=x

X

~

•1

X

H

1

x=

~X

x -

Für eine

=

+ 1

=

x -r x

Xj~Xo

0

xl + x0

i0

=

x1+x0

x1+xo=x1~x0

gerade Anzahl

Komplement

zur

x

x

0 x

=

X

0

(4.4.7)

-

—|

1

-4

*.

r- x

(4.4.8)

(4.4.9)

x1i-xD =

x1~xo

von

-d *

Eingangsvariablen

ANTIVALENZ-Funktion.

(4.4.10)

ist die

ÄQUIVALENZ-Funktion

das

4 Boolesche Funktionen kombinatorischer Schaltungen

24

X!

~

Xo

X, i- Xo -

Xj

-r

-q

Xc

(4.4.11)

4>

-

H

A

*

(4.4.12)

Xj+Xfl

Xj~Xo

Xj~X0

Xj

Xl"X0

Xl'~X0

(4.4.13)

x^x0

(4.4.14)

Xo

~

Xi + x«

=

für k

3

=

xx+x0

-

=

_

Variable:

X"X~X=XHfX=X

(4.4.15)

=

(4.4.16)

X2

~

Xj

~

Xo

X2

-r

Xl

r

Xo

Für eine ungerade Anzahl Eingangsvariable ist die ÄQUIVALENZ-Funktion gleich der ANTIVALENZ-Funktion.

Beweis für (4.4.16): X2

X2

~

~

Xj



Xj

~

Xq Xo

X2

t

Xj

X2^X1 =

t ~

a~Xo + l

Xo, Xo

^

~

Xq

a

T

1



Xq

=a~x0=a + Xo X2 + Xj + Xfl. =

3-Variablen-Verknüpfung kann für die ÄQUIVALENZ und ANTIVALENZ in jeweils zwei aufeinanderfolgende 2-Variablen-Verknüpfungen umgewandelt werden: Die

Y

=

X1~X0~X2

=

(Xl~Xo)+X2 Xj+Xo+X2 =

=

Xj~Xo~X2

(4.4.17)

25

4.4 Boolesche Funktionen für k>2 Eingangsvariable

x

,

H

K,...,xEi0)-mE= 22 yc-m,,

(6.1.6)

Verwendung dieses Symbols J2 (formell: Summe, Disjunktion) kann man eine weitere verkürzte Schreibweise für eine KDNF definieren, in der nur noch die Indexe e der beteiligten Minterme m,, berücksichtigt werden: Unter

So, 2, 3, 4, 7.

f(x)

(6.1.7)

Die Vorschrift (6.1.6) stellt das Expansionstheorem für die Ermittlung einer KDNF aus einer beliebig gegebenen Schaltfunktion f(x) dar. Seine ausführliche Schreibweise ist:

f(x)

=

Sye-nie Z^e-nie t=0 E=0

=

fiXym,

=

!(Xt,k-i>-">xE)K,.-.,xel, Xjo)

m,.

f(0,...,0,...,0,0Hxk.1-...-xK-...-x1-x0) +

35

6.2 Konjunktive Normalform (KNF), Kanonische KNF (KKNF)

+

! +

f(0,...,0,...,0,l)-(xk.1-...-xK-...-x1-x0) +

f(l,...,l,...,l,l)-(xk.1-...-xK-...-x1-x0)

(6.1.8)

.

Ist eine Schaltfunktion f(x) mit k-Variablen gegeben, so ist für jede der e 2k möglichen Eingangsbelegungen x,. die Ausgangsbelegung ye f(xj zu ermitteln. Ist ye 1, so wird der Minterm m,. Bestandteil der KDNF, anderenfalls nicht. =

=

=

Gegeben sei z. B. f(x)

=

x2x,

+

x! x 0: m

X2 Xl X0 0

0

0

0

1

1

0

0 1

1

1

0 0

0 1

1

0 1

1

KDNF:

6.2

f(x)

=

0 1 1 1

X2 X 1 X0

X2X X2X X2 X

1

1 1

X

0

X

0

X

0

0

x2x,x0 + x2XjX0 + x2x1x0+ x^x,,.

Konjunktive Normalform (KNF), Kanonische KNF (KKNF)

Die KNF ist eine Konjunktion von Termen, die aus disjunktiv verknüpften Variablen bzw. deren Komplement bestehen. Für eine Schaltfunktion f(x) mit drei Variablen x2, x„ Xo kann die KNF z. B. aus zwei Termen bestehen:

f(x) (x1+x0>(x2+x1+x0).

(6.2.1)

=

Sind in einem Term alle in der Schaltfunktion f(x) vorkommenden Variablen xk.„...,xw...,x0 in negierter oder nicht negierter Form disjunktiv verknüpft, so bezeichnet man diese als Maxterme ° Mc oder auch als Elementardisjunktionen. 0

Die e

=

Bezeichnung

"Maxterm

M,"

kann

man

so

interpretieren,

daß

nur

für eine der

möglichen

2k Eingangsbelegungen, nämlich für die mit dem Index e, M, den Wert "0" annimmt. Für die restlichen 2k-1

Eingangsbelegungen ist M, gleich "1" ("maximale Anzahl "T'en).

Eine KNF, die ausschließlich Maxterme Me konjunktiv verknüpft, heißt kanonische konjunktive Normalform (KKNF). Die KNF (6.2.1) kann man z. B. mit dem Expansionsgesetz "Addition mit "0" (5.5.5) in eine KKNF umwandeln:

36

6 Normalformen Boolescher Funktionen

fix) (xi+x^Xj+Xi+Xj^ f(x) (x2x2+Xfi-x0>(x2+x1+Xo) f(x) (x2+x1+x0)-(x2+x1+x0)-(x2+x1+x0).

(6.2.1) (6.2.2) (6.2.3)

=

=

=

Die KKNF

(6.2.3) enthält drei Maxterme Me. insgesamt sind für eine KKNF mit kEingangsvariablen 2k mögliche Maxterme definiert. Die Maxterme ME sind den e 2k Eingangsbelegungen einer Schaltfunktion fest zugeordnet. Ist die Variable x^. in der Eingangsbelegung x,. gleich "1", geht sie negiert in den Maxterm ME ein, ist die Variable xK in der Eingangsbelegung x,, gleich "0", geht sie nicht negiert in den Maxterm Me ein. Bestandteil einer KKNF sind nur diejenigen Maxterme ME, für die ye f(xtik.1,...,x(!ilp...,xei0) 0 ist. Diese Zusammenhänge lassen sich übersichtlich aus der folgenden Wahrheitstabelle ableiten: =

=

=

Maxterme

Ausgangsbelegungen

y=f(x„x,x„) y 'e £2 E,l e,o '

M, 0

0

0 0 0

0 1

1 1

0 0

1 1



M0=x2+x M

x2+x

+ x.

M M

x2 + x

+x

1 0

3= x2+x

+

x~

1 1

M4=x2+x M ~x~2+x

+

x(

1

1

M

1

M7=x2+x

+XJ +

1

=

,

6

='x.+x ¿

Tabelle 6.2.1 Wahrheitstabelle für die Schaltfunktion f(x)

+x

,

x



0 0 1

.

(6.2.1 )

Die KKNF für f(x) läßt sich aus der Tabelle 6.2.1 wie folgt aufschreiben:

fix) [f(0,0,0)+M0]-[f(0,0,l)+M1]-...-[f(l,l,l)+M7]. =

(6.2.4)

Die Funktionswerte yE f(xE) f(xe2,xM,x,.o) sind die Ausgangsbelegungen der Schaltfunktion f(x), die mit den relevanten Maxtermen ME disjunktiv zu verknüpfen sind und mit ihrem Wert "1" oder "0" darüber entscheiden, welche der Maxterme ME Bestandteile der KDNF von f(x) sind bzw. welche es nicht sind. Für die Beispielfunktion (6.2.3) ergibt sich damit: =

=

(6.2.5)

f(x) M, M5 M6, =





oder allgemein

«»-D [f(xEjk.„...,xEiK,...,xE;0)

+

ME].

(6.2.6)

6.3 Zusammenhänge zwischen KDNF und KKNF

37

Unter Verwendung dieses Symbols |~] (formell: Produkt, Konjunktion) kann man eine weitere verkürzte Schreibweise für eine KKNF definieren, in der nur noch die Indexe e der beteiligten Maxterme Me berücksichtigt werden:

f(x)=n 1,5,6.

(6.2.7)

Die Vorschrift (6.2.6) stellt das Expansionstheorem für die Ermittlung einer KKNF einer beliebig gegebenen Schaltfunktion f(x) dar. Seine ausführliche Schreibweise ist:

f(x)

M [ye + Me]

=

=

1=0

U

=

= •



Il [fto + mj

aus

=

t=0

[f(Xe,k-l,->XE,K,...,Xejl,Xej0) + ME]

=

[f(0,...,0,...,0,0)+xk.1+...+xK+...+x1+Xo] [f(0,...,0,...,0,l)+xk.1+...+xK+...+x,+x0]





(6.2.8)

[f(l,...,l,...,l,l)+x~k.1+...+x"K+...+x>x"0].

Ist eine Schaltfunktion mit k Variablen gegeben, so ist für jede der e 2k möglichen Eingangsbelegungen x,. die Ausgangsbelegung yE f(xe) zu ermitteln. Ist ye 0, so wird der Maxterm Me Bestandteil der KKNF, anderenfalls nicht. =

=

Gegeben sei z. B. f(x)

=

x2x,

+

X!x0: M

X2 X, X0 0

0

0

0

0 0 0

0 1 1

1 0 1

0 1

1 1

0 0

0 1

1

1

1 1

0 1

1 0

1

KKNF:

6.3

=

0

X2 + Xl + X_0 x2+xi + x0

x2+x1+x0

1

x2+x1 + x0

f(x)=(x2+x1+x0)-(x2+x1+x0)-(x2+x1+x0)-(x2+x1+x0)

Zusammenhänge zwischen KDNF und KKNF

Jede Schaltfunktion f(x) läßt sich in Form ihrer KDNF und KKNF darstellen. Beide sind ineinander überführbar. Ist die Schaltfunktion f(x) z. B. in ihrer KDNF gegeben, so läßt sich die ihr äquivalente KKNF sofort formell aufschreiben und umgekehrt. Eine dafür

38

6 Normalformen Boolescher Funktionen

relevante Vorschrift wird am folgenden Beispiel verdeutlicht.

Gegeben sei eine Schaltfunktion f(x) mit drei Variablen (k 3, =

f(x)

nio + m,

=

+

e

=

2k 8) als KDNF: =

m4 + m,.

(6.3.1)

Für f(x) stellen wir die Wahrheitstabelle für die laufenden Indexe 0

y0 =a yi =y0 + 80 3 + 80 y2 =y0 + a1 a + a1 y3 - y0 * yi + y2 + «o,

(6.6.19)

=

=

=

a +

a« + a, + %.

Diese Vorgehensweise zur Ermittlung der Koeffizientenbeziehungen läßt sich beliebig auf k-Variable erweitern. An einer Beispielfunktion f(x) wird die Umwandlung ihrer KDNF und KKNF in eine ANF gezeigt.

X2 xi xo 0 1 0 1

0 0 1

1 1 1

1 1

0 0 1 1

m

0 1 1

0 1 0

0 1 1 0

1

0

M

M0=X2+X,+ X0 f(x) m!=*2X1X0 m2=X2XlX0

M3=X2+X1+X0|

m4=x2xixo

y2-m2* •

4>

ms=x2x,xo

5

M6=X2+X1+X0 M7=X2 + X1+X0

y,^ + y2-m2 + y4-m4 + y5-m5 mj + m2 + m4 + m5

=

2

l^S)

2

1

0

^^

1

0

^*"2

1

^Hl*

ANF aus KDNF:

f(x) =yJ-m1fy2-m2fy4-m4+y5-m5 —

=

+ =

+

M

„].

XjXjXo^f X2X1X0-fX2X1X0'fX2X1Xo

(x2fl)(x1 + l)x0+(x2fl)x1(x0+l)-fx2(x1fl)(x0'fl)

X2(Xj + l)xa

X2X1X0'fX2X0+X1X0-fX0+X2X1X0-fX2X1'fX,X0'/-X1 + x2x1x0'fx2x1+x2Xo-/-x2+x2x1Xo'i-x2Xo

[y3^ m jj.

y -m, *

4, y -m

KDNF: =

*

Vj-m,* 4,

Tabelle 6.6.3 Wahrheitstabelle für eine Beispielfunktion f(x)

f(x)

f(x) =[y0

=

*

5

[y6 *Mei[y7 * m 7]

49

6.6 Antivalente Normalform (ANF)

mit (4.4.9): =

Xo i X! i x2 + x2Xo.

KKNF:

f(x)

=

=

=

ANF

aus

[y0+M0]-[y3+M3]-[y6+M6]-[y7+M7]

Mo M3 M6 M7 •





(x2+xl+x0)-(x2+x ,+x0)(l+XîXiX8)

=

=

1}

Mo

Xo + x, + x2 + X2Xo =

=

x2 + Xj

+

Xo

=

(x2T-x1+x2x1)-fx0-/-(x2+x1fX2X,)Xo

Xz+x^XjX^Xo-fXjXo+XjXo+x^Xo.

Zusammengefaßt aus Abschnitt 4.2 und 4.3 sind die erforderlichen Umrechnungsbeziehnungen für KDNF, KKNF und ANF: x + x x -f x

x,+Xo

=1 =0 x, + x„ + XjXo =

x

i 1

=

x

+ 0

=x

Xi

T

Xo

X[X0 —

Xi + Xo

x

=

+

XjXo

(x^XoXxj+ïïo).

(6.6.20)

6 Normalformen Boolescher Funktionen

50

Analog lassen sich die Umrechnungsbeziehungen für KDNF, KKNF und einer äquivalenten Normalform angeben, die mit den Operationen ÄQUIVALENZ und DISJUNKTION ebenfalls eine spezielle Algebra darstellt, aber in der praktischen Schaltungstechnik nicht so verbreitet wie die ANF ist: =0 =1 X xi Xo x, X 1 =x x~ 0 x x~ x X

~



=

~

Xo

~

(xx + Xo)

~

=

Xj~Xo X! Xo ~

XjXqT XjXo _

=

(X1-rX0)-(Xi+X0).

(6.6.21)

7

Darstellung Boolescher Funktionen

Es existiert eine große Vielfalt von Darstellungsmögüchkeiten für Boolesche Funktionen. Ihre Anwendung richtet sich nach dem Charakter der Schaltungssynthese bzw. -analyse. Einige häufig vorkommende Darstellungen sollen am Beispiel der Funktion f(x) (7.1.1) vorgestellt und erläutert werden.

7.1 Boolescher Ausdruck Die Schaltfunktion f(x) wird z. B. als DNF DNF:

f(x)

=

x2X!

+

aufgeschrieben:

x,Xo + x2x, x0.

(7.1.1)

7.2 Wahrheitstabelle Hier stellt man die Eingangsbelegungen (xEk.1,...,xeK,...,xE0) einer Schaltfunktion f(x) dar, sowie die zugeordneten Funktionswerte in Form der Ausgangsbelegungen Yt

~

l(xEjt-i,-",xEiK,...,xEo)-

x2 0 0 0 0 1 1 1 1

7.3

x

0

1

x

0

0 1

1 1

0 1 1

1

0 0

o

0

0 1

(7.2.1)

1

0 0

Karnaugh-Plan

Der Karnaugh-Plan (K-Plan) ist eine graphische Darstellung der Schaltfunktion f(x). Die Felder des K-Planes stellen mit einer festzulegenden Anordnung der beteiligten Variablen die laufenden Eingangsbelegungen x,. dar. In diese trägt man die Ausgangsbelegungen yE für die gegebene Schaltfunktion f(x) ein, z. B.:

7 Darstellung Boolescher Funktionen

52

ye=yo Xe

2£o =

=

F"

(.^0,2'^0,l'^0,o)

=

o

(x2,xlsx0)

(0,0,0)

E=0

(7.3.1) 1J Der Unterstrich wurde hier zur Unterscheidung der Eingangsbelegung & und der Variablen x 0 verwendet (siehe S. 25)

7.4

nochmals

Graph

Ein

Graph besteht aus Knoten und Kanten. Die Knoten sind den beteiligten Eingangsbelegungen der Schaltfunktion f(x) zugeordnet. Sie enthalten die Ausgangsbelegungen yE der Schaltfunktion f(x) für jede Belegung x,,. Die Kanten verbinden immer Knoten, die bezüglich ihrer Belegung die Hamming-Distanz2) 1 haben, d. h. die sich in einer Stelle unterscheiden.

(e=6)

(e=o)

m



110

x, xo 0

0

0 0

0 1

0

1

1 1

0 0

1

1

1

1

0

0 1

1

0

0 1 1

0 0

000

x 2 x i x o

(7.4.1)

Die Hamming-Distanz zweier Eingangsbelegungen (oder allgemein zweier 0-1-Vektoren gleicher Dimension) ist die Anzahl derjenigen Eingangsvariablen (Komponenten), in welchen sich diese unterscheiden.

7.6

Schaltung als Kontaktrealisierung

7.5

53

Schaltung auf Gatter-Niveau

Eine Schaltfunktion läßt sich z. B. in einer sogenannten krausen Logik (direktes gatterbezogenes Abbild der gegebenen Terme von f(x)) realisieren:

f(x) XjX, + X,Xo + x2x,x"0 =

(7.5.1)

h y=f(x)

7.6

Schaltung als Kontaktrealisierung -

x2x«äo

X2XjX0

Dieser Kontaktplan ist für die Beispielfunktion f(x) (7.1.1) als KDNF dargestellt. Das Relais wird dabei als "stromlos" angenommen, d. h. der Xo-Kontakt ist geöffnet. Für jede Variable xK gibt es ein solches Relais, das jeweils mit der erforderlichen Anzahl von Schließern (AK) und Öffnern (RK) versehen sein muß. Ist im gegebenen Beispiel kein Relais unter Strom, entspricht dies der Eingangsbelegung Xe 0 (x2 Xj x„ 0). Damit gibt es im Kontaktplan keinen geschlossenen Signalpfad zwischen der "1" am Eingang und dem Ausgang y. y0 0 wird durch den Widerstand R gewährleistet. Für e 1 z. B. schließen die AK von Xo, demzufolge wird yj 1 usw. =

=

=

=

=

=

=

7

54

7.7

Darstellung Boolescher Funktionen

Realisierung in positiver und negativer Logik

Man unterscheidet logische Pegel mit High-H und Low-L (auch Hoch-H und Tief-T üblich) Spannungspegel, wie z. B: +U, 0, -U und logische Zustände 0 und 1 als bereits definierte neutrale Elemente der Booleschen Algebra. Die Zuordnung dieser drei Begriffskategorien kann wie folgt geschehen. +U 0

H

0 1 -u 0

H

oder

+U 0

0 0 -u 1

(7.7.1)

negative Logik

positive Logik Tabelle 7.7.1 Definition der Begriffe positive und negativ Logik

Um die Notwendigkeit einer Zuordnung von logischen Pegeln und Spannungspegeln zu den logischen Zuständen 0 und 1 zu begründen, wird folgende einfache Schaltung

analysiert:

logische Pegel:

A

(7.7.2)

"Or D,

R

Ï

L L H H

L H H H

L H L H

positive Logik ergibt: H^l L->0

x

i

y

=

x,

+

Xg, ODER-Funktion

(7.7.3) negative Logik ergibt: H^O x L^l1 1 0 0

Für den Anwender

y

=

xl-x0, UND-Funktion

(7.7.4) von

Bauelementen ist

es

also

unbedingt ratsam,

die

Kataloge der

55

7.8 Boolesche Funktionen mit der Ausgangsmenge (0,l,d)

Halbleiterhersteller unter Beachtung solcher Zuordnungen (7.7.1)

zu

nutzen, falls

logische Pegel H und L zur Anwendung kommen. 7.8 Boolesche Funktionen mit der

Ausgangsmenge (0,1/d)

Eingangsbelegungen x«. aus der Menge e 2k in einer Schaltung nicht auftreten, oder es kann auch gleichgültig sein, welchen Wert 0 oder 1 die Ausgangsfunktion y f(x) bei einer bestimmten Eingangsbelegung x^ arinimmt. In beiden Fällen spricht man von einem unbestimmten Zustand am Ausgang der Schaltung und bezeichnet ihn mit "d" (von don't care unbestimmt), "d" eröffnet zusätzliche Freiheitsgrade für die Minimierung von Schaltfunktionen. Vergleicht man z. B. die folgenden Es kommt vor, daß bestimmte

=

=

-

beiden Wahrheitstabellen ohne und mit don't care, rung die sich für f^x) dank f4 f5 d ergibt: =

so

erkennt man die Kostenreduzie-

=

,

X2 0 0

=

i

xo

f0(x)

0 1

1

0 0

X2 Xl X0 f,(x) 0 0

x2x

1

0 0

0 1

1

0 0

0

1 0

0

0

1 1

0 0 0

1 1

y0

x

f0(x)

=

0 0 1 1

x2x1

1

+

X2X 1X0

x2x1x0

1 1

0 0

d d

1 1

1 1

0

y,

=

X2X0

1

f,(xL

x¡ +

x2Xo

(7.8.1)

Zur Blockbildung1' wurden hier die "d" mit "1" angenommen. Faßt man Blöcke zur KNF aus Nullen zusammen, so können dann die "d" vereinbarungsgemäß als "0" interpretiert

werden, falls sie zur Bildung von Blöcken beitragen können. Die logischen Operationen mit 0, 1 und d ergeben sich für einige ausgewählte Beispiele wie folgt:

UND 0 1 d 0 1 d

ODER 0 1 d

0 0 0 0 1 d Odd

0 1 d

NAND 0 1 d 0 1 d siehe Abschnitt 8.2.3

1 1 1 1 0 d 1 d d

NEG

0 1 d 1 1 1 d 1 d

NOR 0 1 d 0 1 d

1 0 d 0 0 0 d 0 d

(7.8.2)

7 Darstellung Boolescher Funktionen

56

In der

Schaltalgebra kommt auch eine fünfwertige Logik mit einem unbestimmten dynamischen Zustand "u" zur Anwendung, der aber nicht im Sinne der Erzeugung von Freiheitsgraden für die Schaltungsminimierung gedacht ist. "u" charakterisiert die ausgangsseitige Verhaltensweise von logischen Gattern bei gleichzeitigem Auftreten von positiven Î und negativen 1 Flanken an deren Eingängen. Für die NAND- und NORVerknüpfung z. B. sind die logischen Operationen wie folgt aufzuschreiben: NAND

0

0 1 Û 0 u 11111

0 1

lOltu 1 ö ö U U

1

Û

1 tf 1 u

V

U

0 1 0 v u 1 0 v Û u 0 0 0 0 0 D 0 il u u Û 0 u ft u u 0 u u u

NOR

Û

u

ft

U

v

u

u

u

U

(7.8.3)

7.9 Boolesche Funktionen mit der

Eingangsmenge (0,1,-)

Das Symbol "-" in einer Eingangsbelegung x^ (xeik.i,...,xt(IC,...sxi>0) repräsentiert immer beide alternativen Belegungen 0 und 1 für die relevante Variable xK, für die "-" steht: =

0.2

0 1

0 0

(7.9.1)

Stellt man diese Beziehungen für zwei Variable X[ und Xo vollständig dar, folgende Wahrheitstabelle mit dem zugeordneten Graph:

x 1 x 0

0,2

0

1,3

1

0,1 2,3

0 1

->

x,

x

0

so

ergibt sich

Qp>

(u)x 1

m-

(01)xixo

x

0

(7.9.2)

7.9 Boolesche Funktionen mit der Eingangsmenge (0,1,-)

57

Das Symbol "-" ist also die Vorschrift für die Vereinigung zweier mit der HammingDistanz 1 benachbarter Belegungen x^. bei Eliminierung derjenigen Variablen, die ihren Wert in diesen beiden Belegungen ändert, z. B.: Xixo

XjXp

(7.9.3)

Xq.

Für drei Variable x2, x1; Xg ergeben sich folgende Kombinationen mit einem pro Eingangsbelegung x^\

Symbol "-"

X2X1X0 0 0 0 1 1 0 1 1

0,4

1,5 2,6 3,7

0,2

1,3

-

4,6

-

5,7

-

0 1 0 1

-

0,1 0 2,3 0

4,5 6,7

1 1

0 1 0

x 2 x , x 0

1

(7.9.4) Auch hier ist zu erkennen, daß die Knoten alle beteiligten Eingangsbelegungen darstellen. Ein Symbol "-" vereinigt jeweils zwei benachbarte Belegungen (Knoten) zu einem sogenannten Zweierblock (zu einer Zweiergruppe) bei Eliminierung einer Variablen. Der Term des Zweierblocks steht im Graph an der Kante zwischen den beiden vereinigten Knoten. Der in diesem Term enthaltene "-" repräsentiert die eliminierte Variable. Diese

Beide z.B.

lassen sich auf zwei Symbole "-" pro Eingangsbelegung erweitem. Beziehungen "-" stehen dann für vier mögliche Kombinationen der eliminierten Variablen,

:

X2

X2X1X0 0,2,4,6

>

X

1

X

0

0 2

0 0 0 1

0 0

4 6

1 1

0 1

0

0

(7.9.5)

58

7.9 Darstellung Boolescher Funktionen

Damit werden vier benachbarte Belegungen (Knoten) zu einem Viererblock zusammengefaßt bei Eliminierung von 2 Variablen. Der resultierende Term repräsentiert im Graph eine Fläche, wie die folgende Darstellung zeigt:

0,2,4,6 1,3,5,7 0,1,4,5 2,3,6,7 0,1,2,3 4,5,6,7

^

x,

0 1

0 1

(7.9.6)

8

Minimierung Boolescher Funktionen

Eine Minimierung Boolescher Funktionen verfolgt im allgemeinen das Ziel, alle in der Funktion redundanten Variablen und Terme zu eliminieren, um für die Schaltung ein Kostenminimum zu realisieren. Spezielle Minimierungsverfahren oder -Vorschriften zielen aber auch auf praktische Lösungen ab, die nicht "um jeden Preis" das Aufwandsminimum zum Ergebnis haben. Als wesentliche Verfahrensweisen zum Minimieren von Schaltfunktionen werden hier behandelt: * *

*

die Anwendung der Theoreme und Gesetze der Schaltalgebra, die Erstellung des Karnaugh-Planes mit anschließender Blockbildung und die Nutzung des tabellarischen Verfahrens nach Quine/ Mc Cluskey.

Ergebnis dieser drei Verfahren ist immer eine zweistufige Schaltungsstruktur, die beispielsweise auch in den weitverbreiteten Programmierbaren Logik-Bausteinen (PLD) Verwendung findet. 8.1 Minimierung mit Theoremen und Gesetzen der Schaltalgebra Zur Anwendung kommen hier vorwiegend die Absorptionsgesetze und Kürzungsregeln (5.4.1) bis (5.4.10), die Basisoperationen in Tabelle 2.1 sowie die Expansionsgesetze

(5.5.1), (5.5.5), (5.5.9) und (5.5.10).

Beispiel: l\/\.J'^

mit X!

=



+

x^o

A

A

-,

T

i

A ry A | A

A

T A

A —

A

,,

=

,

A

ry

A sy A | A.

l

n

T A ^

A

A

,

A

r,

T A

n

\"/—

9i

A

n

i

A

-,

A

+

t

n

A ,

x2)x1x0 + x2x0 + x2x1x0

1:

»

n

,.

,

f(x)= x2x1 + (x2 x

A.

I

(5.4.2):

í\^á\j~~'

mitx+

r\

9

r\

o

i

n

r\

8 Minimierung Boolescher Funktionen

60

mit T(x)-l

T(x) (5.5.1)

=

f(x)= XjXj + A ry

l^A.^—

A

i

i

XjXq+XjÍX.+XjJXq+X.XjXq A

t

A

n

*t" Á

n

Ä

,

A

n

i

A

A

,

A ,

f(x)= x2x1(l+x0)

x1x0

+

+

(x2 + x2)x1x0

f(x)= XjXj + XjXq + XjXq Die erfolgreiche Anwendung dieser Gesetze und Regeln hängt von den Intuitionen und der Erfahrung des Ausführenden ab. Zu erkennen ist, daß der Minimierung von Schaltfunktionen häufig die Anwendung von Expansionsgesetzen vorausgeht. Erst danach sind Absorptionsgesetze und Kürzungsregeln effektiv anwendbar. Häufig wird deshalb vor der Minimierung zunächst die Kanonische Form der Schaltfunktion erstellt. Diese Vorgehensweise nutzen die Verfahren nach Karnaugh und

Quine/Mc Cluskey. 8.2

Minimierung mit dem Karnaugh-Plan

8.2.1

Karnaugh-Plan (K-Plan)

Karnaugh-Plan ist eine geometrische Anordnung von Feldern, die alle e 2k Eingangsvariablen repräsentieren und in die alle Ausgangsbelegungen ye {0,l,d} der Schaltfunktion f(x) eingetragen werden. Wesentlich ist, daß horizontal und vertikal benachbarte Felder des K-Planes immer die Hamming-Distanz 1° haben, sich also in nur einer Stelle der Belegungen x

modifizierter m3 : 0 1 1.

(8.3.1.1)

Zur Minimierung einer (K)KNF werden die nicht negierten Variablen x,. der Maxterme M. durch eine "0", die negierten Variablen xK durch eine "1" ersetzt, also für k 3 erhält man z. B.: =

M3

=

x2 +

x! +

x0

==>

modifizierter M3: 0 1 1.

(8.3.1.2)

QMC-Minimierungsverfahrens sind also die Binärwörter derjenigen Eingangsbelegungen x^ gruppenweise nach der Anzahl der in ihnen enthaltenen 'T'en angeordnet, für die yE f(x) in ihrer KDNF "1" und in ihrer KKNF "0" ist. Das Erstellen dieser Tabellen für das Minimierungsverfahren nach Quine / Mc Cluskey wird im folgenden Abschnitt an Beispielen verdeutlicht. In den Tabellen des

=

8 Minimierung Boolescher Funktionen

84

8.3.2 Erstellen der Tabellen für das

QMC-Verfahren

Abhängigkeit von der Form, in der die zu rninimierende Schaltfunktion y f(x) gegeben ist, lassen sich die QMC-Tabellen auf unterschiedliche Weise aufstellen. In

*

=

Boolescher Ausdruck. Wahrheitstabelle

Gegeben sei der Boolesche Ausdruck fix) (x2 + x,) (x, + x«) =

(8.2.2.1)

~

als Beispiel für eine Schaltfunktion aus dem Abschnitt 8.2.2. Die dort bereits ermittelte Wahrheitstabelle wird mit den relevanten Mintermen m,,, den Maxtermen ME und ihren modifizierten Formen ergänzt. modifizier-

X2 0 0 0 0 1 1 1 1

X

1

0 0 1 1 0 0 1 1

X0

m

0

0

1 0

1 o

m,

=

ter

m

x2xixo

0

0

1

1

1

0

0

1

1

m3= x2XjX0

0

0 1 0

1

m4=x2lr1xo

1

o 1

m6=X2XlX0

1

1

o

1

modifizierter M

M

.

.

M0=X2+X1+X0

0

0

0

M2=X2+X1 + X0

0

1

o

M5=X2 + X,+ X0

1

0

1

M7=x2+xi + x0

1

1

1

0

Tabelle 8.3.1 Wahrheitstabelle mit den modifizierten Min- und Maxtermen für die Schaltfunktion nach (8.2.2.1 )

Die QMC-Tabellen lassen sich mit den in 8.3.1 Tabelle 8.3.1 aufstellen:

getroffenen Aussagen unmittelbar aus der

QMC-Tabelle

DNF-Minimierung

KNF-Minimierung

(ye=0)

(yE=D X2 Xl X0 i 4

0 1

0 0

1 0

3~ "ö"-:i— T 6

1

1

0

gruppen-

weise Anordnung der e nach Anzahl der"l"en

X2 X, 0 0

0

X0 0

l—o_ 0

1

~i—r

(8.3.2.1)

8.3

*

Minimierung nach Quine / Mc Clusky (QMC)

85

Boolescher Ausdruck, DNF

Gegeben sei die Funktion i(x)

X3X¡ X o

+

X2Xq

+

(8.2.2.2)

X3 X j X o-



Nach (7.9) lassen sich durch die

folgenden Korrelationen 1-10 -1-1

(8.2.2.3)

10 0

aller Eingangsbelegungen ermitteln, für die modifizierten Minterme mod.m,.:

f(x) gleich "1" ist. Daraus ergeben sich die

modifizierte

1

03_+ B3,7, =

IIXÏ

X2AQ

"T

X2XQ

1

X2AJ

1

XjXq.

(8.4.1.4) (8.4.1.5)

8 Minimierung Boolescher Funktionen

92

Die minimale Form für fix) läßt sich nach einer QMC-Minimierung prinzipiell mit dem Tafelauswahlverfahren ermitteln. Dieses Verfahren wird für die DNF und KNF getrennt behandelt. 8.4.2 Tafelauswahlverfahren für eine DNF

Gegeben sei für drei Variable (k

=

3)

fix) =£ 0,2,3,5,7. Die

(8.4.1.1)

Minimierung von fix) nach QMC ergibt X2 X, X0

X2 Xl X0

0__0_0 o_ j_o_ 0

1

1

j__0_l_ 1

1

1

y

y

y y

y

y

y

0 0

0,2 2,3 3,7 5,7

y

V,

7

2

0

2 1

1^)

2^K)'

(8.4.2.1)

Um die ininimalen Formen für fix) zu ermitteln, benötigt man zunächst die Kemprimimplikanten p^. Primimplikanten, wie z. B. auch die vier in (8.4.2.1), sind Terme, die sich nicht weiter vereinfachen lassen. Diese vier Primimplikanten implizieren in ihrer Gesamtheit alle Minterme m,, der Schaltiunktion fix), die in (8.4.1.1) mit ihren Indexen e gegeben sind. So wird z. B. der Minterm irio x^Xo vom Primimplikanten pD x2x0 impliziert, da =

=

nio + pD =

PdId+Pd

Ä

rs

Ä | Ä

r.

\~

Ä ij Ä

X2/ o__i_o_/ o

i

i

0,2 2,3 3,7 5,7

¿

y y

j__o_i_y i

i

i

0 2

>3 5 7

y y

X

X X

(X)

x-x

(8.4.2.4) f(x) B0,2 + B5i7 + B2,3 =

f(x) B0,2 + B5>7 + B3>7 =

=

x2x0 + x2Xo

=

x2x0

+

x2X!

(8.4.2.5) +

x2Xq + x,Xo.

8 Minimierung Boolescher Funktionen

94

Weitere

Beispiele

für die

Tafelauswahlverfahren

Beispiel

Minimierung

einer DNF nach QMC mit anschließendem

1:

Gegeben sei die KDNF für k

=

4 Variable

fix) =£o, 1,2,3,4,5,10,11,12,13,14,15.

(8.4.2.6)

Ermittlung der Primimplikanten pD:

1 2

4_ 3 5 10 12 11 13 14

15

y y y y y y y y y

1

0 0 0 0 0 10 0 _i_o_o 0 0 11 0 10 1 10 10

y y y y

_1_1__0_0_

y y y y

y y y y y y

10 11 110 1

_1_1_1_0_ 1111

0,1 0,2 0,4 1,3

y y y

0_ _P_P_0_°_

y y y y y y y

0 0 0 0 00-0

y y y y

0

y y y y y y y y

0

0 1,5 2,3 0 0 0 2,10 0 1 0 4,5 1 0 4,12 1 0 3,11 1 0 5,13 10,11 1 0 1 1 10,14 0 1 12,13 1 12,14 1 11,15 1 13,15 1 1 14,15 1 1 1 -

-

-

-

y y y

-

y y y y y y y y

-

x3 x2 0,1,2,3 0,1,4,5 0,2,1,3 0,4,1,5 2,3,10,11 2,10,3,11 4,5,12,13 4,12,5,13 10,14,11,15 12,14,13,15 10,11,14,15 12,13,14,15

0 0 0

X

j

x0

0-0 0--

-

-

Pdo

y y y y

Pdi

-

J>_-_9_-01-

-01-10-

^_1_0_-^ 1 1 11-1 1 11--

-

-

-

PD2

PD3 Pd4 PDS

(8.4.2.7)

8.4 Ermittlung minimaler Schaltfunktionen nach dem Tafelauswahlverfahren

95

Minimierte DNF:

ftx)

=

Pdo + Pdi

+

Pd2 + Pds

+

(8.4.2.8)

Pd4 + Pds

Tafelauswahlverfahren: f'DO

'Dl

'D2

'D3

'D4

^D5

0

0 1 4 5

2 3 10 11

4 5 12 13

10

12 13 14 15

1 2

Pd..

3 X X X X

0 1 2

_3_ 4 5

i

I

11 14 15

X X X X

X

X X

X

10

X

X

11

X

X

12 13 14

X X

' i

x

I

(8.4.2.9)

X X X

Ix Ix

15

Kemprimimplikanten sind hier nicht vorhanden. Es gibt zwei Lösungen für die minimale DNF, die sich aus je drei Primimplikanten zusammensetzen: f(x)

=

Pdo + Pds

+

Pd4

=

+

+

Pds

=

X3X2 + x2x,

+

x3Xj

(8.4.2.10) f(x)

=

Pdi

Pd2

x3xi + x2xi + x3x2.

Beispiel 2: Gegeben sei die KDNF f(x) für k

D m, f(x) eeE,D

E=

=

=

4 Variable in der Form

{2,5,9,14}, D {3,7,11,15} =

(8.4.2.11)

Menge (E für eins) der Indexe e, für die yE f(x,,3, x^2, x,^, x^) 1 (siehe 6.1.1) ist und D (D für don't care) ist die Menge der Indexe e, für die ye f(xe>3,x(Ji2,xe>1,xeJ)) d ist. Da bei der Minimierung solcher Funktionen mit unbestimmten Ausgangswerten d nach Quine/Mc Cluskey im Gegensatz zum KarnaughVerfahren nicht sofort zu überblicken ist, in welcher Weise diese don't care-Menge D in die Blockbildung zweckmäßig einbezogen werden kann, setzt man für die Minimierung E ist die

=

=

Tabelle =

=

einer DNF zunächst alle d

=

1. Die eventuell dabei entstehende Redundanz wird mit dem

8 Minimierung Boolescher Funktionen

96

abschließenden Tafelauswahlverfahren eliminiert.

Ermittlung der Primimplikanten für fix) nach (8.4.2.11):

2_ J)_0_1_0 3 5

0 0 11 0 10 1

9^ J _°_°_ L 7 11 14

Olli 10 11

15

1111

1

_i_i_o_



_2,3_ o_o_i_^Pdo o

3,7

y y y y y

i

i

y

o i i y 3,11 i Pdi 5,7 oí 9,11 _1_0_-_1„PD2 i i i y 7,15 i i y 11,15 i 14,15 1 1 1 PD3 -

-

y y y y y y y

-

-

y y y

-

(8.4.2.12) 1 1

3,7,11,15 3,11,7,15

1 1

p D4

Minimierte DNF:

f(x)

-

Pdo + Pdi

+

Pd2 + Pds

+

(8.4.2.13)

Pd4

Tafelauswahlverfahren:

Spalte der Tafel sind immer nur diejenigen Minterme nij. bzw. die für sie stehenden modifizierten Minterme bzw. ihre Indexe e einzutragen, die Bestandteil der Menge E der zu minimierenden Funktion sind. Damit werden alle redundanten Blöcke, die evtl. infolge der Einbeziehung von don't care entstanden sind, eliminiert. In die linke

Pdo Pdi Pd2 Pd3 Pd4 2

5

9

14

3

7

11

15

3 7 11

15 2

5

9 14



(8.4.2.14)

8.4 Ermittlung minimaler Schaltfunktionen nach dem Tafelauswahlverfahren

97

Pdo bis Pdj sind

Kemprimimplikanten pDK. Der Primimplikant pD4 ist ein aus "d" Ausgangswerten gebildeter Viererblock, der zur Implikation von Mintermen n\ der E Menge (8.4.2.11) nicht benötigt wird.

-

-

Die minimale DNF ist also:

ftx) t(x)

-



Pdo

+

Pdi

+

Pd2 + Pds

(8.4.2.15) X 3 X 2X[ + X 3X2Xo +

X3 X 2Xo

+

X3X2X[.

Beispiel 3;

Gegeben sei die KDNF f(x) Ausgangswerte d (don't care) f(x)

=

? nie,

E

eeE,D x

0 4

3

x2

X

j

x

10 0

_8_ J _?_0_°_ 10

10

10

_1_2 2_J__9_JL 7 11 13

0 1 1 i o i i i o

1 i i

=

=

4 Variable mit einer

Menge

D unbestimmter

{0,4,11,12}, D= {7,8,10,13}

(8.4.2.16)

0

JO _p_o_o_ 0

für k

y y

0,4 0,8 4,12 8,10 8,12 10,11 12,13

y y y y y y y y y y

Pdo y

o

0

o

-_o_p_o_ -

i

o

10

-

-

y y

o y 0 pm

J _-_0_°_ y 10 1

1

1 0

pD2 pD3 -

y

0 0

0,4,8,12 0,8,4,12

0 p D4 0

(8.4.2.17)

Bereits hier ist zu erkennen, daß der zunächst mit "1" angenommene "d"-Ausgangswert für e 7 kein Bestandteil der minimierten DNF sein wird, da er nicht in die Blockbildung einbezogen wurde. Man müßte dieses Single e 7 als Primimplikant p^ also nicht weiter bis zum Tafelauswahlverfahren mitführen. Trotzdem soll an diesem Beispiel gezeigt werden, daß mit dem Tafelauswahlverfahren auch solche redundanten Singles ermittelt werden, falls sie in der QMC-Tabelle nicht bereits als solche erkannt werden. In diesem Fall ist also die minimierte DNF: =

=

ftx)

=

Pdo + Pdi

+

Pd2 + Pds

+

Pd4-

(8.4.2.18)

8 Minirnierung Boolescher Funktionen

98

Tafelauswahlverfahren: Pdo Pdi Pd2 Pds Pd4 7

8

10

12

10

11

13

0 4 8 12

-F-(g)

0 4 11 12

-i-(S>PdK2

-^>PdK4

(8.4.2.19)

-X-—X

Das Ergebnis ist:

f(X)

f(x)

=

=

pD4 + Pd2

(8.4.2.20)

x,x0 + x3x2Xl.

Der Kemprimimplikant p^ impliziert die Minterme nio, m4 und m12, der Kemprimimplikant PDK2 imphziert mn. Für p^ und pti existiert keine Bezugsbasis in Form relevanter Minterme. pD3 impliziert m12, ist aber redundant, da m12 von pDK4 bereits abgedeckt ist.

8.4.3 Tafelauswahlverfahren für eine KNF

Gegeben sei für vier Variable (k 4) =

fix) n 5,10,12,13,14.

(8.4.3.1)

=

Die Minirnierung von fix) nach QMC x

3

x2

X

j

x

0

5 10

0 10 1 10 10

12 13

J._1_0_0_

y y

110 1 1110

y y y y

14

ergibt:

y y

5,13 -10 1 10,14 1-10 12,13 11012,14 11-0

(8.4.3.2)

f(x) (x2+x1+Xo)(x3+x1+Xo)(x3+x2+x1)(x3+x2+x0). =

Um die minimalen Formen für fix) zu ermitteln, benötigt man aus den Primimplikanten pK zunächst die Kemprimimplikanten p y^. Die vier Primimplikanten p K in (8.4.3.2) implizieren in ihrer Gesamtheit alle Maxterme ME der Schaltfunktion fix), die in (8.4.3.1) mit den Indexen e gegeben sind.

99

8.4 Ermittlung minimaler Schaltfunktionen nach dem Tafelauswahlverfahren

So wird z.B. der Maxterm M5 x3 + x2 + x1 pK=x2 + x, + x0 impliziert, da =

=

Ms (qK+pK)

=(x3+x2+Xi+x0Xx2+x1+x())

Pk PK





x0 vom Primimplikanten

=(qk+_X2+X1+Xo)(X2+Xl+Xo)

=

=

qK(x2+x,+x0)+(x2+Xi+Xo) (qK+1XX2+Xi+xo) X2+X,+X0

=

=

=

=

(8.4.3.3)

ist, wobei mit % die ODER Verknüpfung derjenigen im Minimierungsverfahren eliminierten Variablen in Me bezeichnet sind (hier x3), um die sich Me vom Primimplikanten pK unterscheidet. Wird einer der beteiligten Maxterme Mc nur von einem einzigen Primimplikanten pK impliziert, so ist letzterer ein Kemprimimplikant p,^ und damit notwendigerweise Bestandteil der minimalen Schaltfunktionen. Im Tafelauswahlverfahren werden alle beteiligten Maxterme Me und die mit dem QMCVerfahren ermittelten Primimplikanten pK in einer Tafel gegenübergestellt. Auf diese Weise lassen sich die Implikationsbeziehungen, nämlich welcher Primimplikant welche Maxterme impliziert, anschaulich kennzeichnen und die minimalen Schaltfunktionen exakt ermitteln. Für das hier behandelte Beispiel ergibt sich folgendes Bild: -

Pko

Pki

Pk2

Pk3

(x2+xi + x0) (x3+x1 + x0) (x3+x2+x,) (x3+x2 + x0) 5

x3+x2+x

+ x,

10

x3+x2+x

+x

12

X

+X2+X

+ x

13 14

x

+x2+x x3+x2+x

+x

3

3

I

-¿i

KKO

r

KKl

X

-x

x

x

.

+x

-x

,

X

(8.4.3.4) (8.4.3.4) werden die Maxterme M5 und MI0 jeweils nur von einem einzigen Primimplikanten und zwar von pK0 x2 + X] + x0 bzw. pK1 x 3 + x , + x0 impliziert. Dies ist durch einen Kreis um die Kreuzungspunkte gekennzeichnet. pK0 und pK1 sind also Kemprimimplikanten pK0 Pkko> und pK1 Pkki pm impliziert neben M, auch M13, und Pkk! impliziert neben M10 auch M14. Also muß die minimale Schaltfunktion neben p KKo und Pkki noch durch einen Primimplikanten ergänzt werden, der M 12 impliziert. Dafür kommen p^ oder p^ in Frage und damit zwei Lösungen für die minimale In Tafel

=

=

=

=



Schaltfunktion f(x):

ftx) ftx)

=

Pkko Pkk! Pk2

=

Pkko Pkki Pk3





=

'

=

(ÏÏ2+X1+ÏÏ0)(X3+X1+X0XX3+X2+Xl) (X2+Xi+Xo)(x3+Xi+Xo)(x3+X2+Xo)-

(8.4.3.5)

8 Minimierung Boolescher Funktionen

100

Für die Darstellung der Tafeln z. B. in (8.4.3.4) bietet sich eine bequemere verkürzte Form an, in der man anstelle der Maxterme ME nur die Indexe e und anstelle der Primimplikanten pK nur die Indexgruppen aus den QMC-Tabellen schreibt, die bei der Blockbildung B 2K entstehen. Für das Beispiel in (8.4.3.2) ergibt sich: =

1 •I

*5

1

fi

5 10

0 10 1 10 10

12

_1_1 _p_p_

13 14

5 10 12 12 13 14 13 14

5,13 -10 1

y y

110 1 1110

10,14 12,13 12,14

y y

y y y y

1-10 11011-0

5 10 12

-f-è

13

|-X

14-X

X X

X X

(8.4.3.6) fix)

B543 B1oj4 Bi2,i3_ '

'

fix)

(x2+x1+x0Xx3+x1+xaXx3+x2+x1)

(8.4.3.7)

1*10,14 Bl2>l4 ( x 2+Xj+x 0)( x 3+ x ,+XoX x 3+ x 2+Xo).

"5,13 =

'

'

Weitere Beispiele für die Tafelauswahlverfahren

Minimierung

einer KNF nach

QMC mit anschließendem

Beispiel 1 :

Gegeben sei die KKNF für k

=

4 Variable

f(x) ri0,l,3,7,8,9,ll,12,15 =

(8.4.3.8)

101

8.4 Ermittlung minimaler Schaltfunktionen nach dem Tafelauswahlverfahren

Ermittlung der Primimplikanten pK: e

x

3

x2

X

j

x

0

J) o_o_o_o_v 1

ooo

0,1

y

0,8 1,3 1,9 8,9 8,12 3,7 3,11 9,11 7,15 11,15

y y y y y

i

J[ _i_o_p_o_y 3 oo i i 9 loo i 12 i i o o 7 0 111 11

15

y y y y y y y y y y y

j_o_i_i_y i

i

i

y y

i

o o

y

o

-_o_o_o_yy -

o o -oo i o o

-

i i

y y y

_L_z_P_9_Pko -

0 o

-

i i

i i

y y y

1 _P_ -Z—1^ -

i

i

-

i i

i i

y y

-

X2 X 1 X 0 -00-

X

3

0,1,8,9 0,8,1,9 -_o_o_Kl -0-1 1,3,9,11 1,9,3,11 r J)—-—1— PK2 11 3,7,11,15 1 1 Pk3 3,11,7,15

(8.4.3.9)



-

-

In der QMC-Tabelle der Zweierblöcke bleibt als Primimplikant B812

=

pK0, in der Vierer-

block Tabelle gibt es drei Primimplikanten -

und

f\l,8,9 ^1,3,9,11

PKI' =Pk2 B37iU)i5 Pkj. =

=

Die ntinimierte KNF ist:

fix)

=

=

Pko Pki Pk2 PK3 "



*

( x 3+x1+x0)(x2+x1)(x2+ X o)( x,+X o). _

_

(8.4.3.10)

8 Minimierung Boolescher Funktionen

102

Tafelauswahlverfahren: P

KO

P

8 12

Kl

P

K2

0

1

1

3 9 11

8 9

P

K3

Pko. Pki und pK,

3 7

werden als

Pkko> Kemprimimplikanten Pkki und Pkk3 für die rninimale KNF benötigt, p^ entfällt als

11 15

redundant.

0 1 3 7

-4-4-

8 9 11 12 15

x I -x—x

-X

\—

X X —x

Die minimale KNF ist:

ftx)

=

Pkko Pkki Pkiü '

*

=

(Xs^i+XaX^+XiXXi+Xo)

(8.4.3.11)

Beispiel 2; Gegeben sei die KKNF für k

ftx)

=

J1DïvL_. N

=

=

4 Variable in der Form

{0,3,7,8,11,12,15},

N ist die Menge

D

=

{1,6,9,13,14}

(8.4.3.12)

(N für Null) der Indexe e, für die ye ^xe>3,xej2,xti„xtj0) 0 (siehe 6.2.1) ist, und D (D für don't care) ist die Menge der Indexe e, für die ye f(xe;3,xE;2,x1.ij,x(.0) d ist. Für die Ermittlung der Primimplikanten pK setzt man zunächst alle ye d 0, um eine mögliche Einbeziehung der d in die zu bildenden Blökke zu gewährleisten. Eventuell dabei entstehende Redundanz wird mit dem abschließen=

Tabelle =

=

=

=

den Tafelauswahlverfahren eliminiert.

=

8.4 Ermittlung minimaler Schaltfunktionen nach dem Tafelauswahlverfahren

X3 X2

X

1

X0 y

0,1

0 0

y y y y y

0,8

JZ_°__9_°_

0

o__o__9_o_y

1

oooi

8^ j__0_0_0_y 3 oo

i

j_ j.

15

y y y y

lili

X

3

0,1,8,9 0,8,1,9 1,3,9,11 1,9,3,11 8,9,12,13 8,12,9,13

3,7,11,15 3,11,7,15 6,7,14,15 6,14,7,15 9,11,13,15 9,13,11,15 12,13,14,15 12,14,13,15

X2

X

1 1 1 1

PX3

-

-

1 1

y y y

-001 10 0-

y y

J_^_0_0

y

0 0 0

1 1 1 1

1

1 0 1 1 1

-

1 1 1 1 1 1 0

0 0

1 -

1

1

1-11 11-1 111-

y y

y y y y y y y y y y y y y y y y

y y y y

0

pK0

-

1 1 1 1

1

0 0 0 0-

-

-

X

0-

1,3 0 0-1 1,9 8,9 8,12 3,7 3,11 6,7 6,14 9,11 9,13 12,13 12,14 7,15 11,15 13,15 14,15

y y y 6 oiio y y 9 îooi y y y y 12 j_j._o_o_y y y y y y 7 oiii 11 îo i i y y y 13 îioi y y y i o_y y y 14_

i

103

PK4

(8.4.3.13)

Pk5

-

-

1 1

-

-

-

-

Pk6

-

Die minimierte KNF ist

f(x)

=

pK0-pKr

••

'Pk6-

(8.4.3.14)

8 Minimierung Boolescher Funktionen

104

Tafelauswahlverfahren: P

KO

Kl

P

K2

8 9 12 13

P

K3

P

K4

3 7 11 15

14 15

-f-X--X-

-x

0 1 8 9 0 3 7 8 11 12 15

P

1 3 9 11

6 7

P

K5

9 11 13 15

P K6 12 13 14 15

(8.4.3.15)

1-X

-x-x

-T—t->f

-x— x— X

Pko ist Kemprirnimplikant p^. Zweckmäßig ist p^ einzubeziehen, da er vier Maxterme impliziert. M12 wird von p^ und pK6 impliziert, also existieren zwei minimale KNF:

f(x) f(x)

=

Pkko Pk3 Pk2

=

=

Pkko Po Pk6

=

*

*





fe+XiXXi+XoXXs+Xi)(x2+x1)(x,+x0)(x3+x2).

Die ebenfalls aus der Tafel (8.4.3.15) ableitbaren minimierten KNF und

f(x) f(x)

=

Pkko Pki* Pk4 Pk6

=

Pkko Pki" Pk4 Pkz

'

'

"

'

sind offensichtlich nicht minimal.

(8.4.3.16)

9 Kombinatorische

Schaltungen Begriffsbestimmung -

In Überemstimmung mit den im Abschnitt 4.1 gegebenen Definitionen ist eine kombinatorische Schaltung die Instrumentierung der Schaltfunktion y í(x). =

Die x*

xk.„...,xlc,...,x0 lassen sich als Eingangsbelegungen der kombinatorischen Schaltung zu folgender Matrix anordnen:

Eingangsvariablen

=

(xejt.iv,xe>K,...,xEt0) X

I

=

JLe

=

Xe.k-i

I

-

K e

=

e

=

0,...,(k-1)

2k

-

0,

K

...

...

XE,K

...

X

I e-1,

k-1

...

X0,0 X£,o

I

X

e-1,

k

...

X

e-1,

0

Anzahl der Eingangsvariablen xK

max.

=

...

I

JLe-1,

k

X

X0,k-1

—o

max.

Anzahl der Eingangsbelegungen x^

0,...,(e-l).

Eingangsbelegung x«. ergibt sich an jedem der 5-Ausgänge einer kombinatorischen Schaltung eine Ausgangsbelegung yE entsprechend der Schaltfunktion yE f^xj, wobei X 0,... ,(5-1) ist. Für jede

=

=

(xe>k.1,...,xej)C,...,xe>oJ



"1

Ko

H*x H-l



'-o -°

yE,o

=

yc,x

=

ye,M

fo(2ie)e{0,l}

fx(Se)e{o,i}

=

f«(xJe{o,i}

Eingangs- und Ausgangsbelegungen an einer kombinatorischen Schaltung mit k-Eingängen und {-Ausgängen

Bild 9.1

lassen sich

jeden der (»-Ausgänge einer kombinatorischen Schaltung Ausgangsfunktionen definieren in Form der folgenden Matrix: Für

0,0

y

=

[j_o- La -1,1]

e, 0

0

,

a

y

0

,

y

e,

A

=

=

2e

-

max.

Anzahl der Ausgangsfunktionen pro Ausgang À

0,...,(M).

a-1

I

y e-1.

a

a-1

I

a-1

a

=

2'

9 Kombinatorische

106

Schaltungen Begriffsbestimmung -

Weitere damit im Zusammenhang stehende Begriffe sind in Abschnitt 4 erläutert. Kombinatorische Schaltungen enthalten im Unterschied zu sequentiellen keinerlei interne Rückführungen und besitzen damit kein Speicherverhalten. Jeder Eingangsbelegung entspricht eine über y f(x)'' zugeordnete Ausgangsbelegung, die sich unter Berücksichtigung der internen Signallaufzeiten der Kombinatorik sofort nach Wirksamwerden der Eingangsbelegungen am Ausgang einstellt. Zur schaltungstechnischen Realisierung von Booleschen Funktionen muß zunächst eine Zuordnung der logischen Symbole "0" und "1" zu Spannungspegeln H (High) und L (Low) oder H (Hoch) und T (Tief) oder +U und -U (Speisespannung, Signalspannung) erfolgen. Im Abschnitt 7.7 wurden bereits die damit in unmittelbarem Zusammenhang stehenden Begriffe einer positiven bzw. negativen Logik erläutert. Die Synthese kombinatorischer Schaltungen erfolgt in der Mehrzahl aller Fälle auf Gatterniveau. Dazu werden sogenannte Basissysteme genutzt, die später noch beschrieben werden. Aber auch schaltungstechnische Realisierungen auf Relais- und Kontakte-Basis sind z. B. in speziellen Bereichen der Kommunikations- und Steuerungstechnik verbreitet. =

Der einfachen Schreibweise wegen werden im weiteren die Vektorunterstriche unter den Variablen weggelassen, z.B. anstelle von f(x) wird f(x) verwendet.

10

Kontaktrealisierungen kombinatorischer Schaltungen

werden mechanische Kontakte von Relais, Schützen u. a. elektromechanischen Baugruppen (falls nicht anders vereinbart) im Ruhezustand, im sogenannten stromlosen Zustand der Wicklungen der Relais und Schütze dargestellt.

Vereinbarungsgemäß

0,0

angenommen:

0,3

vier Arbeitskontakte

0,4

Relaiswicklung

0,7

(¿3 Betätigung

1x70) (1,1,1), in dem der Funktionswert y7 steht, dann kann dieses Feld bei gegebenen Nachbarschaftsbeziehungen z. B. Bestandteil eines oder der möglichen Zweierblöcke (x2-Xo), (-x-Xo) und (x x -) oder auch eines Viererblocks, z. B. (-x -), sein. Dabei ist Voraussetzung, daß die Ausgangsbelegungen y2, y3, y7 und y (14.3.2) diese Blockbildung ermöglichen. Dies ist der Fall, wenn sie alle gleiche Werte 1 oder 0 aufweisen. =

=

=

14.3

Faktorisierung auf Karnaugh-Plan-Basis

127

(x2-x0) JUl

i_l (x2x ,-) "3

/ ^7

* —

(- X | x 0 )

(14.3.1)

2X 1X 0 )

7 'X x

(14.3.2)

(~xl-) 14.3.1

y3

y7

y

Faktorisierung mit NAND-Realisierung

Gegeben sei die Schaltfunktion f(x) £ 1,3,5,6.

(14.3.3)

=

Die Faktorisierung kann man z. B. mit dem Single y7

& 1

¡Aj-

y

1

=

0 beginnen:

^T

(14.3.4)

14 Mehrstufige Realisierungen kombinatorischer Schaltungen

128

Die erste Teilfunktion T, als Ergebnis einer NAND-Verknüpfung ist im rechten K-Plan in (14.3.4) definiert. Der Wert Tj y7 0 stellt sich genau dann ein, wenn alle beteiligten Eingangsvariablen x2, x, und Xo "1" sind. Für alle anderen Eingangsbelegungen ist T, 1. Unter Berücksichtigung dessen, daß NAND-Gatter, die hier als Realisierungsbasis dienen sollen, immer den signifikanten Wert "0" am Ausgang dann erzeugen, wenn alle Eingänge "1" sind, wird auch die Stufe 2 der Schaltung spezifiziert. Blockbildungen mit y7 sind nach dem linken K-Plan in (14.3.5) mit y6 (Zweierblock &6¡ 7 ) und mit yy y3 und y5 (Viererblock B13(57) möglich. =

=

=

& 2,1

0 I

fB 1,3,5,7

H y

7

&

B 6,7

b-T.

0

(14.3.5)

Dafür sind die "1"-Werte von y6, y1; y3 und y5 zu negieren. Diese Negationen sind mit dem Überstreichen der Blöcke Bg 7 und B± 3 5 7 vermerkt. Sie werden später durch den Einsatz eines weiteren, negierenden Gatters (NAND) in der 3. Stufe der Schaltung wieder aufgehoben. Die mit der Blockbildung an den Ausgängen der NAND-Gatter der Stufe 2 dieser Schaltung entstehenden Teilfunktionen T2?1 und TX2 sind in den zugeordneten K-Plänen in (14.3.5) definiert. Das obere NAND-Gatter mit seinem Ausgang T2j repräsentiert die Zweierblockbildung Bg7 und erzeugt dafür einen Ausgangswert y6 0. Das untere NAND-Gatter repräsentiert die Viererblockbildung B 3 5 7 mit seinem Ausgang T^ und damit dreimal den Ausgangswert "0", nämlich für yu y5. Tj ist in beiden Fällen Bestandteil der Eingangsbeschaltungen beider NAND-Gatter der 2. Stufe. Wird für x2 x, Xo 1 diese Teilfunktion T[ y7 0, so sind T2rl und Tz2 gleich "1". Für diese Eingangsbelegungen liefern die Ausgangswerte von T^, und Ti2 also keine "0" für den Zweierblock B67 und für den Viererblock B sondern eine "1". Bezeichnet man die Menge der "0"-Ausgangswerte der Teilfunktionen T^ bzw. Ti2 jeweils mit M0 (TXI) und M0 (T22) und der Teilfunktion T, mit M0 (T^, so läßt sich demzufolge dieses Faktorisierungsprinzip mit der Differenz dieser "0"-Mengen in der 2. Stufe der Schaltung interpretieren: =

y3'und

=

=

=

=

=

,

14.3

Faktorisierung auf Karnaugh-Plan-Basis

129

Mo(T2jl) M/T,) M0(T2>1) n HO",) =

-

0

0

(14.3.6)

und

M0(T2j2) Mo(T,) Mo(T„) n M^T,) =

-

f\ (14.3.7) Die vollständige Belegung des K-Planes und damit die Funktion f(x) (14.3.3) wird durch die NAND-Verknüpfung von Ty und T22 erzeugt. Die mehrstufige Schaltung ist damit: &

&

& &

f(x)

(14.3.8)

Beispiel: Gegeben sei die Schaltfunktion

f(x)=E 0,1,3,5,6,7.

(14.3.9)

X2

& -

1

B 6,7

X 1

(14.3.10)

14 Mehrstufige Realisierungen kombinatorischer Schaltungen

130

Ti-f

& 2,1

ron

-B,

0

V1 B

& l2,2

2,6

(14.3.11) &

XH

&

&

h



&

(14.3.12)

Beispiel: Gegeben sei die Schaltfunktion f(x) =£o,2,4,5,7. 1.

(14.3.13)

Lösungsmöglichkeit:

ri]

&

111 B 5,7

(14.3.14)

14.3

131

Faktorisierung auf Kamaugh-Plan-Basis

& 2,1

U

¥

IT \i n

H

&

B 6,7

1,3,5,7

2,2

(14.3.15) & X

,

-H

&

& &

2.

f(x)

(14.3.16)

Lösungsmöglichkeit:

'0

I

I_I

&

0

B 1,3

(14.3.17)

132

14 Mehrstufige Realisierungen kombinatorischer Schaltungen

0

& P-T 2,1

B 0,1,4,5

0

H-^ 1

& '2,2

B 0,1,2,3

B

1,3,5,7

1

0

&

P-T.2,3

1

(14.3.18) &

& •0

&

H

&

f(x) &

(14.3.19) 3.

Lösungsmöglichkeit: Xo

1

J_4

&

11

B

0,2

(14.3.20)

14.3

Faktorisierung auf Kamaugh-Plan-Basis

133

&

T2.1

xo

T,-+

9-

J=JJ B

&

'2,2

2,6

0,1,2,3

(14.3.21) & x„ -H

&

&

f(x) &

(14.3.22)

dargestellten Schaltungen mehrstufiger Realisierungen für die Funktion f(x) (14.3.13) mit Hilfe dieser Faktorisierungsmethode verdeutlichen die mögliche Vielfalt der Lösungswege. Sie zeigen auch, daß nicht jeder verfolgte Weg zu kostengünstigeren

Die drei

Varianten führt. Trotzdem bietet dieses Verfahren insbesondere für Funktionen mit wenigen Variablen Wege zu mitunter interessanten und integrationsgünstigen Schaltungen. Dies wird abschließend am Beispiel der ANTIVALENZ- und ÄQUIVALENZFunktion für zwei Variable demonstriert: Gegeben sei die ANTIVALENZ-Funktion

f(x)

=

x, +x0

=

(14.3.23)

x1x0+x1x0.

Die Faktorisierung beginnt z. B. mit y3:

&

r„

(14.3.24)

14 Mehrstufige Realisierungen kombinatorischer Schaltungen

134

B1.3

& 2,1

1

Ti1

& '2,2

(14.3.25)

B 2,3

Vollständige Schaltung: &

ANTIVALENZ

&

&

f(x)

&

(14.3.26)

Gegeben sei die ÄQUIVALENZ-Funktion f(x)

=

Xj-Xo

=

X^o + XjXß.

(14.3.27)

Die Faktorisierung beginnt z. B. mit y3

1

0

&

(14.3.28)

r,

B 1,3

& 2,1 '

I_L -I

T,-

(14.3.29)

& 1

B 2,3

2,2

14.3

Faktorisierung auf Karnaugh-Plan-Basis

135

Vollständige Schaltung: &

xo^T—

ÄQUIVALENZ &

&

14.3.2

f(x)

(14.3.30)

Faktorisierung mit NOR-Realisierung

Gegeben sei die Schaltfunktion 1,3,5,6. f(x) £ k=3

(14.3.3)

=

Die Faktorisierung kann man mit dem Single y7

(14.3.4), beginnen.

=

0, ähnlich der Vorgehensweise nach

X

r,o i

5T

f

y7

(14.3.31) Die erste Teilfunktion Tj als Ergebnis einer NOR-Verknüpfung ist im rechten K-Plan in (14.3.31) definiert. Der Wert T, y7 1 stellt sich genau dann ein, wenn alle beteiligten Eingangsvariablen x2,Xj und Xq "1" sind. Für alle anderen Eingangsbelegungen ist Tj 0. Unter Berücksichtigung dessen, daß NOR-Gatter, die hier als Realisierungsbasis dienen, den signifikanten Wert "1" am Ausgang immer dann erzeugen, wenn alle Eingänge "0" sind, wird auch die Stufe 2 der Schaltung spezifiziert. Blockbildungen mit y7 sind nach dem linken K-Plan in (14.3.32) mit y6 (Zweierblock B6 7) und mit y,,y3 und y5 =

=

(Viererblock Bu 5 7) möglich.

=

14 Mehrstufige Realisierungen kombinatorischer Schaltungen

136

2,1

1 '

OLJ

-t/M B 6.7

1,3,5,7

l2,2

(14.3.32) Die mit der Blockbildung an den Ausgängen der NOR-Gatter der Stufe 2 dieser Schaltung entstehenden Teilfunktionen T24 und T2 2 sind in den zugeordneten K-Plänen in (14.3.32) definiert. Das obere NOR-Gatter mit seinem Ausgang TZI repräsentiert die Zweierblockbildung B67 und erzeugt dafür den Ausgangswert y6 1. Das untere NOR-Gatter repräsentiert die Viererblockbildung Bu>3)7 mit seinem Ausgang 1X2 und damit dreimal dem Ausgangswert "1", nämlich für yu y3 und y5. T, ist in beiden Fällen Bestandteil der Eingangsbeschaltungen beider NOR-Gatter der 2. Stufe. Wird für x2 x¡ Xo 1 diese Teilfunktion T, y7 =1, so sind T^, und T22 gleich "0". Für diese Eingangsbelegung liefern die Ausgangswerte von T^, und T%2 also keine "1" finden Zweierblock B6 7 und für den Viererblock BUA7) sondern eine "0". Bezeichnet man die Menge der "1 "-Ausgangswerte der Teilfunktionen T21 bzw. T%2 jeweils mit M! (Ty) und M, (Ti2) und der Teilfunktion T; mit M, (T¡), so läßt sich demzufolge dieses Faktorisierungsprinzip mit der Differenzbildung dieser "1"-Mengen in der 2. Stufe der Schaltung interpretieren: =

=

=

=

=

M1(T2>1)-M1(TI) MI(T2>1)n M.CT,) =

0 0

0

0

0

(14.3.33)

und

M1(T2>2)-M1(T1) M1(T2,2)n M^TA =

r\ (14.3.34)

14.3

Faktorisierung auf Karnaugh-Plan-Basis

137

Die vollständige Belegung des K-Planes und damit die Funktion f(x) (14.3.3) wird durch die ODER-Verknüpfung von T21 und T22 erzeugt. Die mehrstufige Schaltung ist damit 1

T2.1 1

_2 x

,

h-fW

-

(14.3.35)

'2,2

Beispiel: Gegeben sei die Schaltfunktion f(x)

=

xt +x0

=

(14.3.23)

x1x0+x1x0.

Die Faktorisierung beginnt z. B. mit y3:

n

o i

(14.3.36)

B 1.3

h 1

1

P-

T 2,1

ID1

(14.3.37) '2,2

B 2,3

Vollständige Schaltung:

°^

ANTIVALENZ 1

f(x)

(14.3.38)

14 Mehrstufige Realisierungen kombinatorischer Schaltungen

138

Beginnt man die Faktorisierung nicht mit y3, sondern mit y0, erhält man die gleiche Schaltung (links), aber mit nicht negierten Eingängen. Für die ÄQUIVALENZ-Funktion ergibt sich bei gleicher Vorgehensweise die rechte Schaltung. ÄQUIVALENZ

ANTIVALENZ

h. ^fW

1

-fix)

(14.3.39) Als abschließendes Beispiel zur Faktorisierung auf NOR-Basis soll die ANTIVALENZbzw. ÄQUIVALENZ-Funktion für drei Variable als mehrstufige Schaltung entworfen werden.

Gegeben sei:

f(x) =£l,2,4,7.

(14.3.40)

Ti

S 5'7

y7

(14.3.41)

y7

B

=

P-T.2,1

h x,

F rr B

rD7 B

1.1

P-T.2,2

6,7

P-T.2,3

(14.3.42)

14.3

Faktorisierung auf Kamaugh-Plan-Basis B

139

4,5,6,7,

x2,l

r

p-

XJ22 X

T,



UA7

x

Fr

T X2,2 T

-I' P-T3,2

2,3

0

'2.1 T H n

P-

_2,3

4B

T

3,3

1

2,3,6,7,

(14.3.43)

Vollständige Schaltung:

2,3

3.3

2,1

im

i

f(x)

L2,2 3,1

(14.3.44)

14 Mehrstufige Realisierungen kombinatorischer Schaltungen

140

Eine noch günstigere Schaltung erhält man bei Vermeidung der negierten Eingangsvariablen. Dazu ist die Faktorisierung mit y0 zu starten:

'0 I L

T,= y0

_

(14.3.45)

Di P-T 2,1

i i B

B

0,2

L

0,1

P-T2,2

_

X

0,2

,

B

Di

I 1

3

0,1

0,4

Tl2,3

0,4

(14.3.46)

14.3

Faktorisierung auf Kamaugh-Plan-Basis

141

B 0,1,4,5 1

'2,3

B 0,1,4,5

3,1

'2,2

r2,l

P-T3,2

0,1,2,3

U^ '0,1,2,3

2,1

P- T.3,3

r2. -4 =

B 0,2,4,6

J

B 0,2,4,6

(14.3.47)

Vollständige Schaltung: ANTIVALENZ

ÄQUIVALENZ '2,3

L2,2

1

3.1

T

3,3

f(x)

(14.3.48)

Hill '3,2

14 Mehrstufige Realisierungen kombinatorischer Schaltungen

142

Zusammenfassende Darstellung der formellen Schritte zur Faktorisierung auf K-PlanBasis *

Faktorisierung mit NAND-Realisierung mit Start im K-Plan i—i mit:

yE

=

0-

Weit» im K-Plan

1.

&

yE

=

mit:

Stufe

7

=0^0"

#i

o

Faktorisierung mit NOR-Realisierung

M-y

=

@-

15

Realisierung kombinatorischer Schaltungen Logik (PLD)

mierbarer

mit program-

Die Basis für die Mehrzahl aller programmierbaren Schaltungen (PLD Programmable Logic Device) ist die DNF bzw. die KDNF der zu realisierenden Schaltfunktion y f(x). Die Grundstruktur solcher PLD (Bild 15.1) besteht aus einer "UND"-Ebene, in der die Eingangsvariablen x,,.,,...,^ konjunktiv zu den erforderlichen Produkttermen der DNF bzw. KDNF verknüpft werden und aus einer "ODER"-Ebene, die diese Terme disjunktiv zu den gewünschten Ausgangsfunktionen yk verbindet. -

=

programmierbar

fest

& 'k-l

'n-1

m e-l

-y0

programmierbar y0 yx

-y\

~y..i

-y».i

b) Ausgangsfunktionen yx

a) Ausgangsfunktionen yx

als KDNF

als DNF

Bild 15.1 Grundstruktur programmierbarer Schaltungen (PLD) für kombinatorische Funktionen yk

=

fx(x)

a) des Bildes 15.1 werden die Schaltfunktionen yk als DNF realisiert. Die "UND"-Ebene muß programmierbar sein, da nur die für die Produktterme jeweils erforderlichen Eingangsvariablen und deren Komplemente konjunktiv zu verknüpfen sind. Die nachgeschaltete "ODER"-Ebene kann fest verdrahtet oder auch programmierbar gestaltet sein. Sind die Schaltfunktionen yx hingegen als KDNF zu erzeugen, so ist die "UND"-Ebene fest verdrahtet. Sie generiert alle e 2k möglichen Minterme m,, (siehe Abschnitt 6.1). Um danach in der "ODER"-Ebene die für jede Ausgangsfunktion yx erforderliche ist deren Prodisjunktive Verbindung unterschiedlicher Minterme m,, zu ermöglichen,"UND"die bzw. ob In grammierbarkeit zu gewährleisten. Abhängigkeit davon, man unterscheidet verdrahtet fest oder programmierbar gestaltet sind, "ODER"-Ebenen in der denen solcher drei Schaltungsprogrammierbarer Logik, Kategorien prinzipiell technik die folgenden Begriffe zugeordnet wurden (Bild 15.2). In der Anordnung

=

15 Realisierung kombinatorischer Schaltungen mit programmierbarer Logik (PLD)

144

PAL

PLA

PROM

(Programmable Array Logic)

(Programmable Logic Array)

(Programmable

Read Only Memory) &

&

& fest

k-1

me-1 m. m. programrmerbar

Bild 15.2

X'k-l i. ,

'k-l

*n-l

y0 —V^ y\

*n-l sk

^¡/

\is

j,

y0

programmierbar

•—yi.i

programmierbar

—I

-y|/

\|/ -

y* ym

-

fest

ry0

-yt.i

Kategorien der programmierbaren Logik als UND/ODER-Strukturen

Verbreitet sind aber auch mehrstufige Anordnungen von Grundgattern als sogenannte Programmierbare Macro Logic PML (Programmable Macro Logic). Unter Macros versteht man hier NAND-Gatter, mit denen sich kombinatorische Schaltfunktionen als NAND-Basissysteme realisieren lassen (siehe Abschnitt 13.3). Eine PML ist im Bild 15.3 dargestellt. -

*°7ñ x'tn k-i

Tn

Programmier-

oy0

bare

Ausgänge

Verbindungsmatrix

Rückführungen

Bild 15.3 Grundstruktur einer PML

In die

schaltungstechnischen Grundstiiikturen der Bilder 15.2 und 15.3 lassen sich alle gegenwärtigen Zeitpunkt bekannten programmierbaren kombinatorischen Schaltuneinordnen. Die Vielfalt solcher PLD entwickelt sich gegenwärtig stark innovativ. gen Beinahe jeder Halbleiterhersteller bietet in unterschiedlichen Technologien und Komplexität PLD an. Ein tabellarischer Überblick ist hierzu im PLD-Handbuch [15.1] gegeben. Im folgenden wird die prinzipielle Funktionsweise der hier spezifizierten vier PLD-Typen eingehender erläutert. zum

15.1 PROM

(Programmable

Read

Only Memory)

Bei diesen PLD handelt es sich um sogenannte nichtflüchtige ihrerseits in folgende Kategorien einteilen lassen:

ROM

Halbleiterspeicher, die sich

(Read Only Memory) wird beim Halbleiterhersteller für den speziellen Anwendungsfall maskenprogrammiert, ist also später inhaltlich nicht mehr -

zu

verändern.

15.1 PROM (Programmable Read Only Memory)

145

PROM

(Programmable ROM) ist vom Anwender zu programmieren, danach sind die einprogrammierten Daten nicht mehr veränderbar.

EPROM

(Electrically PROM) ist elektrisch vom Anwender programmierbar und UV-löschbar und danach wieder elektrisch programmierbar usw.

EAROM

(Electrically Alterable ROM) programmierbar.

EEPROM

(Electrically Erasable mierbar und löschbar.

-

-

-

ist elektrisch

PROM)- ist elektrisch

vom

Anwender mehrfach

vom

Anwender program-

EAROM und EEPROM sind unterschiedliche Bezeichnungen für den gleichen Halbleiterspeicher-Typ. Die Realisierung einfacher Schaltfunktionen mit Hilfe einer PROM-Struktur ist im Bild 15.1.1 dargestellt. x

,x ,x

0 x 0

-Minterme

m

m

ÄQUIVALENZ

NOR m

y0

m.

0 0

m

1 1

&

1&

festverdrahtete UND-Ebene

programmierbare ODER-Ebene

0 1 0 1

yi

i

i

o o 0

o o i

^HHHt

t

y0

=

m,

>^W

tm

-yi=m0+m3 -X

jX 0 +

X

jX 0

o Speicherelement (keine Verbindung) X Speicherelement (Verbindung programmiert)

Bild 15.1.1

PROM-Realisierung einer NOR- und ÄQUIVALENZ-Funktion für zwei Variable x, und x„

15 Realisierung kombinatorischer Schaltungen mit programmierbarer Logik (PLD)

146

Die innere Struktur der PROM richtet sich nach technologischen Gesichtspunkten und hängt auch z. B. davon ab, ob die Speicherorganisation bit- oder wortweise erfolgt. Unabhängig davon werden die Eingangsbelegungen für die Generierung der Ausgangsfunktionen immer über die Adreßeingänge AK (Bild 15.1.2) erzeugt. Die Ausgänge Dx sind bit- oder wortweise organisiert. Die Programmierung des Speicherinhaltes und damit die Implementierung der anwenderorientierten Schaltung ist unterschiedlich und wird nach Vorschrift der PROM-Hersteller vorgenommen. Im Bild 15.1.2 ist die Blockschaltung eines bitorganisierten 1 kbit-PROM dargestellt. Die Adreßbit A,, bis Ao werden für die Ansteuerung der Spalten und Zeilen geteilt. In dem angegebenen Beispiel dienen Ao bis A4 der Spaltenansteuerung, die Adressen A5 bis A> der Zeilenaktivierung der Speichermatrix.

Spalten-Dekoder (xo) Ao

(x1)A, (x2) A2 (x3) A3 (x4) A4

(x5) A5(X6)A6( X7) A7(xg) Ag-

ZeilenDekoder

D(y0)

programmierbare ODER-Matrix 32x32=1024

Speicherelemente

(x9) A9Bild 15.1.2

Bitorganisierter 1 kbit-PROM

Die 32 Ausgangsleitungen der Speichermatrix werden über einen 32 auf 1-Multiplexer in Abhängigkeit von der Belegung der Adreßbit A, bis A4 zum Ausgang D durchgeschal-

tet.

Ein solcher PROM könnte am Ausgang D eine Schdtfunktion y0 für max. 10 Eingangsvariablen xK erzeugen. Dafür ist jedes der 1024 Speicherelemente individuell

adressierbar.

Die folgende Wahrheitstabelle zeigt das Beispiel einer partiellen Programmierung eines solchen PROMs für eine gegebene ANTIVALENZ-Funktion y0 = f(x) mit drei Variablen Xjs X¡, Xq.

15.1 PROM (Programmable Read Only Memory)

147

Adresse

Ausgang Spalten

Zeilen A

9A g...A 5

0 0

0

0

...

...

A

4A 3A 2A

D ,

A

0

y0 0 1

00000 0 0 1 0 1 0 0 1 1

0

1 0

1 0 0 1 0 1 1 1 0 00111

0

1 0 0 1

In der Zeile 0 der

programmierbaren ODER-Matrix im Bild 15.1.2 werden dafür lediglich die Speicherelemente 0 bis 7 entsprechend der in der Wahrheitstabelle enthaltenen Werte für y0 anwenderspezifisch programmiert. Bei Nutzung aller e 2k (k-Anzahl der Adreßbit) Speicherelemente eines bitorganisierten PROM sind theoretisch e Ausgangsbelegungen für die Funktion y0 programmierbar. Im Bild 15.1.3 ist die Blockschaltung eines wortorganisierten 8-kbit-PROM dargestellt. Er enthält insgesamt 64 x 128 8192 Speicherelemente. Diese können zu 1024 8-bitWörtern anwenderspezifisch programmiert werden. =

=

(xo) Ao (ï,) A ,(x 2 ) A (x , ) A

MUX

MUX

*.

2

MUX

Di(yi}

-D7

, -

(x4) A4 (x5) A5

ZeilenDekoder

-^>



deren aktuelle logischen Werte 0 oder 1 mit Hilfe der Multiplexer-Adreßeingänge Ab.1,...,Alc,...,A0 auf seinen Ausgang y geschaltet werden. Ist zum Beispiel die max. Anzahl der Dateneingänge e 2k und =

-£ A-k'2 K=0

>

d. h. Ae ist die in Vektorform dann gilt: ye Das

=

angeordnete binäre Darstellung der natürlichen Zahl

De für A, (^......A.»--.A^o).

e,

(16.1)

=

Schaltsymbol eines solchen Multiplexers ist im Bild 16.1 dargestellt. Dateneingänge

MUX

D,

D

s

D.

Ausgang

y

Adreßeingänge Bild 16.1


x1) =x1x0

(V=*l)

=

X1X0

=

x1 + x0

=

Xl + X0

(x0=x1) =x1x0 + x1x0= (x^x^-ÍXj + Xo) =x1x0 + x0x"1

17 Kombinatorische Grundschaltungen

172

=

=

(x^XßWXo+x^

=x1 + x0 + x1 + :

(x0x1)

r^ i.

COMP

Bild 17.1.2 Einstelliger Komparator mit NOR-Gattem

NAND-Realisierung:

(x0>Xl) =Xlx0 (x0x =

=

=

(x¡>X¡f-Tx¡0) =

xo X

K

K

Xk-1 bezeichkurzzeitige, unerwünschte Ausgangssignale auftreten. Eine solche Erscheinungsein: verantwortlich können dafür net man als Hasard. Zwei prinzipielle Ursachen Ursache 1: Es kommt vor, daß beim Wechsel von einer Eingangsbelegung x¿ zu einer anderen Eingangsbelegung x^. nicht alle daran beteiligten Eingangssignale genau zum gleichen Zeitpunkt ihren dafür erforderlichen Pegel ändern.

gleichzeitiger Pegelwechsel Bild 18.1

verzögerter Pegelwechsel bei x,.

Verzögerter Pegelwechsel der Eingangssignale (z. B. bei Xo) als mögliche Ursache für einen Hasardfehler

bei x,, Aufgrund der im Vergleich zu den Signalen x, und x2 verzögerten Pegelwechsel einem undie zu die (0,0,1), entsteht am Eingang kurzzeitig Eingangsbelegung x, führen kann. der kombinatorischen am Schaltung erwünschten Signal Ausgang Eine solche Erscheinung bezeichnet man als Funktionenhasard. Ursache 2: Innerhalb einer kombinatorischen Schaltung können aufgrund der gegebenen schaltungstechnischen Struktur Signale unterschiedlich verzögert werden, die danach logisch zu einem Ausgangssignal verknüpft werden. Diese Erscheinungen können ebenfalls zu unerwünschten Ausgangssignalen =

führen. Man bezeichnet sie als Strukturhasard.

191

18.1 Funktionenhasard

&

&

X2 -1_I Bild 18.2 Die rechte Schaltung erhält mit dem für die zu Hasardfehlem führen kann.

Erzeugung von x0 eingefügten Negator eine Struktur, die

Geht man für die im Bild 18.2 gezeigte Schaltung davon aus, daß für die linke Struktur alle Eingangssignale x2, xl5 Xq und x0 zum gleichen Zeitpunkt ihren Pegel wechseln, so wird am Ausgang y kein Hasard zu erwarten sein. Das Einfügen des Negators in die rechte Struktur führt zur Verzögerung von x0. Dies kann für bestimmte Wechsel der Eingangsbelegungen zu Hasardfehlern führen.

18.1 Funktionenhasard Ein Funktionenhasard ist die Möglichkeit des Entstehens unerwünschter Ausgangssignale in Folge unterschiedlicher Verzögerungen der Pegelwechsel einzelner Eingangs-

signale.

Solche unerwünschten Ausgangssignale entstehen beim Übergang der Eingangsbelegungen z. B. von 2v in x«. einer kombinatorischen Schaltung. Ändert bei einem solchen Wechsel der Eingangsbelegung x¿ in \. das Ausgangssignal f(xj seinen logischen Zustand und tritt dabei die Möglichkeit des kurzzeitigen y Entstehens unbeabsichtigter Ausgangssignale auf, so handelt es sich um ein =

dynamisches Hasard:

yE.

=

f(Xe.) ye« =

=

f

(x£//)

Tritt beim Übergang der Eingangsbelegung von x¿ in x^,, ein zusätzlicher unerwünschter Wechsel des logischen Zustandes von y f(xj auf, so spricht man von einem dynamischen Hasardfehler. Im Bild 18.1.1 sind beide Erscheinungen eines dynamischen Hasards (Wechsel des Ausgangspegels von 1 auf 0) und eines Hasardfehlers für die =

Beispielfunktion (18.1.1) dargestellt: y

=

f(x)

=

x1x0

+

x2x1.

(18.1.1)

18 Dynamisches Verhalten kombinatorischer

192

y

=

Schaltungen

f(x.) x1x0+x2x1 =

^0

o

e"

e'

In beiden Fällen erfolgt der Übergang der Eingangsbelegungen von e' 3 nach e" Änderung des Ausgangspegels von ye, f(xXe,K>"->Xe,0 ZiMi-lvjZ^vvjZ^o) >

mit

e e

{0,...,e-l} und p e {0,...,m-l} dargestellt werden.

Ordnet man alle Vektoren des Eingangsraumes letztere mit k + n Spalten und d 2k+n Zeilen. =

von

K

zu

einer Matrix an,

ergibt sich

19.1

Begriffsbestimmungen

Ist z. B.

e

=

201

2k < m 2", =

so

hat diese Matrix schematisch folgende Struktur: 0, n-1

X0,x

X0,k-1

X0,0

Zu,n-1 Jm-1, n-1 0,

X E,

Xe.O

K

Z

"

X

e-1,

k-1

X

e-1,

K

X

e-l, 0

z

m-1 ,v

m-1,0

0,v

^.0

H, n-1 n-1

z

m-1, ,v

z •••

m-1,0 ,



0, n-1

Z

j

Q

m-1

Tabelle 19.1.1

z

n-1

Jm-1, ¿

Jn.o

H. v

"»».o

H.v

'

n-I

,

m-1,0

Matrix-Darstellung des Eingangsraumes der kombinatorischen Schaltung K eines Automaten

Analog entsprechen die Elemente des Ausgangsraumes von K umkehrbar eindeutig den Elementen der Zustandsmenge Z- Wir bezeichnen daher die Matrix der m 2" Zeilenvek=

toren Zm-i,-.^,. .,Zo ebenfalls mit Z

'

0,n-l

Z

=

*n

'

¡i, n-1

O.v u,v

">.

(19.1.1)

0

,

'

m

p

=

=

2n

v

=

-

max.

Zahl der Zustände zu

-

max.

Zahl der Zustandsvariablen z^v

0,...,m-l

n

0,...,n-l.

m-1

,0

Wird die Kodierung der Zustände nach dem Binärkode vorgenommen, dann ergibt sich u

=

E z(l>v-2v

(19.1.2)

v=0

Beispielsweise wird dann mit (19.1.2) für einen Automaten mit m

=

4 Zuständen z»-

19

202

Automaten

Sequentielle Schaltungen -

H.v

'|i.l 'H.0 0 0

0

1

1

0

1

1

Z3

Tabelle 19.1.2 Binärkodierung von 4 Zuständen z^ eines Automaten

Das im Bild 19.1.2 in der Rückführung dargestellte Zeitglied Weise realisiert werden: 1.

kann auf unterschiedliche

direkte Rückführung von Ausgängen auf die Eingänge ohne Zwischenschaltung von

2.

x

Speicherelementen (ungetaktet);

Rückführung über externe Speicherelemente (getaktet).

Werden die externen Speicherelemente alle von einem gemeinsamen externen Systemtakt geschaltet, spricht man von synchroner Betriebsweise, ansonsten von asynchroner Betriebsweise des Automaten (Bild 19.1.4).

19.1

Begriffsbestimmungen

203

S>

C

o

Bild 19.1.4 Betriebsweise für Automaten

Für die in Bild 19.1.4 -

-

-

spezifizierte Betriebsweise von Automaten

ungetaktet getaktet, asynchron getaktet, synchron

soll bereits hier zum Verständnis solcher Strukturen je ein Beispiel dargestellt werden (Bilder 19.1.5 7). Die Synthese bzw. Analyse solcher Schaltungen und Systeme erfolgt in den weiteren Abschnitten ausführlich. -

19

204

Sequentielle Schaltungen

Automaten -

z.

B. Kombinatorik

z.

B.

Rückführung

ungetaktetes RS-Flip-Flop

Bild 19.1.5 Ungetaktete Betriebsweise -

z.

B. Kombinatorik

z.

Bild 19.1.6 Getaktete asynchrone Betriebsweise

B.

Rückführung

Asynchroner Zähler von 0 bis 6, zyklisch, BCD-Kode -

z.

B. Kombinatorik

z.

Bild 19.1.7 Getaktete synchrone Betriebsweise

B.

Rückführung

Synchroner Zähler von 0 bis 6, zyklisch, BCD-Kode -

19.2 MOORE- und MEALY-Automaten

Fügt man zu der im Abschnitt 19.1 beschriebenen Struktur eines Automaten Ausgänge hinzu, erhält man die in der digitalen Schaltungstechnik üblichen Grundstrukturen für

sequentielle Schaltungen (Steuerwerke).

19.2 MOORE- und MEALY-Automaten

205

Im folgenden beschränken wir uns auf zwei Grundtypen, den MOORE- und MEALYAutomaten. Ein MOORE-Automat hat folgende Struktur:

K, z

r

-o-

K

Bild 19.2.1 Grundstruktur eines MOORE-Automaten

Die Ausgabe y ist hier eine Funktion des Momentanzustandes z, d. h. y wird ein MOORE-Automat durch ein 6-Tupel A

=

=

g(z). Formal (19.2.1)

(XZ,f,"zXg)

dargestellt, wobei das Eingabealphabet, X (X>-i>-- >S*>—>2o)» die Zustandsmenge, Z (zm.i,...,ZF.,Zo), die Überfühjungsfunktion, lz f(x,z), den Initialzustand, das Ausgabealphabet, X (Xb-i»-»Xp»-,Yo) und die Ausgabefunktion, y g(z)

X Z

=

=

f

=

°Z X

(19.2.2)

=

g

=

bezeichnet. In

Überemstimmung mit der im Bild 19.2.1 dargestellten Struktur ist g eine Abbildung

Z in X Ein MEALY-Automat hat folgende Struktur:

von

I K,

a

i

K, ^y

Bild 19.2.2 Grundstruktur eines MEALY-Automaten

Die Ausgabe y ist hier eine Funktion des Momentanzustandes z und der aktuellen Eingangsbelegung x, d. h. y h(x,z). =

Formal wird ein MEALY-Automat durch ein 6-Tupel A

=

(X,Z,f,az,X,h)

dargestellt, wobei

(19.2.3)

19

206

Sequentielle Schaltungen

Automaten -

X Z f

=

=

=

az X h

das Eingabealphabet, X (xe.1,...,xB(z(1,zj))

=

(19.4.2)

0

2¡.?jeZ

Disjunktion

J2 m 19.4.2 erstreckt sich über alle Konjunktionen Bfe^Z;) B(^,Zj) '

Gewichten unterschiedlicher Kanten (zH,z¡), I-1

(z^Zj); i * j.

X ,x

Bild 19.4.2 Beispiel für die Oberprüfung der Widerspruchsfreiheit eines Automatengraphen

Der im Bild 19.4.2

dargestellte Graph ist nicht widerspruchsfrei, da für z2 gilt:

Xj- X!Xo + x,Xj

+

JCj* XiXj

=

x,Xo

*

(19.4.3)

0.

In den modifizierten K-Plänen drücken sich mehrfach mit 1 belegten Feldern aus.

Widersprüche

durch das Auftreten

von

19

214

Sequentielle Schaltungen

Automaten -

19.5 Partielle Automaten Wir sind bisher davon ausgegangen, daß ein Automat in jedem Zustand in der Lage ist, jeden Buchstaben des Eingabealphabetes zu lesen. In technischen Systemen kann es sein, daß einige der möglichen Eingaben aus verschiedenen Gründen nicht relevant oder unerwünscht sind. Zur Beschreibung dieses Sachverhaltes verallgemeinert man den Automatenbegriff in der folgenden Weise. Ein partieller Automat A besteht aus einem endlichen Eingabealphabet X (Xd,...,^), einer endlichen Menge Z (Zm.i,"-,Zo) von Zuständen, einer Funktion p, welche jedem Zustand eine Menge von (erlaubten) Eingaben zuordnet und der Überfütamgsfunktion, welche festlegt, in welchen Zustand 'z ttX,z) der Automat A übergeht, falls der Momentanzustand z und die aktuelle Eingabe x^ ist. Die Überführungsfunktion ist hierbei nur für solche Paare (x^z) 6 X * Z erklärt, für welche gilt x--->'Z'y,W->Z,\lfi) mit p

e v e

{0,...,m-l} {0,...,n-l}

dargestellt werden. Zusammenhang zwischen der maximalen Anzahl der inneren Zustände m und der Anzahl der zu ihrer Darstellung benötigten Zustandsvariablen n ist damit Der

m

=

(19.8.2)

2".

Bisher sind wir davon ausgegangen, daß die Zuordnung der 0-1 inneren Zuständen Zy nach folgender Vorschrift erfolgt

-

Vektoren

zu

den

n-l

P

=

Ez,;2v. z^V

(19.8.3)

Z^ v=0

Ein Automat mit vier inneren Zuständen Zy = (Z0.Z1.Z2.Z3) würde also für eine solche Kodiervorschrift zwei Zustandsvariablen z^v (z^,i,z^0) erfordern. =

*n

H.v

"M >.2 0

Tabelle 19.8.1

0

0

1

1

0

1

1

Kodierung der inneren Zustände z„ (m=4) eines Automaten nach der Vorschrift (19.8.3)

Aus reahsierungstechnischer Sicht erweist sich jedoch die Kodierung nach der Vorschrift (19.8.3) nicht immer als vorteilhaft. Andere Zustandskodierungen ergeben hinsichtlich des Realisierungsaufwandes der Kombinatorik des Automaten oft günstigere Lösungen. Die aus der Literatur bekannten Kodierungstheorien für Automatenzustände darzustellen, würde den Rahmen dieses Buches sprengen. Es soll hier lediglich auf diese Problematik aufmerksam gemacht und relevante Literatur angegeben werden, die eine Einarbeitung des interessierten Lesers in solche Kodierungsvorschriften ermöglicht. In [19.4] z. B. sind Algorithmen zur Zustandskodierung synchroner Steuerwerke beschrieben. Ein von diesem Verfasser entwickeltes heuristisches Verfahren der

19.8 Automatenzustandskodierung und -zustandsreduzierung

221

Zustandskodierung ermittelt ein globales Optimum für den Realisierungsaufwand der Kombinatorik eines synchronen Automaten. Das Ergebnis einer Zustandskodierung nach diesem Verfahren wird im folgenden zur Motivation des Lesers dargestellt. Dabei erfolgt ein Vergleich zur Kodierung nach der Vorschrift (19.8.3). Gegeben sei ein Automatengraph für eine Impulsfolge Erkennungsschaltung. -

Bild 19.8.1

Automatengraph zur Erkennung der Impulsfolge "0010110"

Wird die Impulsfolge "0010110" erkannt, MEALY-Automaten ist folgende:

=

1. Die Struktur des

K,

K Z

erfolgt eine Ausgabe y

r4 FF0 FF1 r FF2

Bild 19.8.2 Blockschaltbild des MEALY-Automaten zur Impulsfolgeerkennung

Zur Kodierung der insgesamt 7 inneren Zustände Zy = (z0,Zi,..,z6) des Automaten genügen 3 Zustandsvariablen z^v (z^2, z^z^)- Erfolgt die Kodierung der inneren Zustände Zy mit diesen 3 Zustandsvariablen zM v nach der Vorschrift =

n-l

u=£ S.V-2V z

v=0

z

(19.8.3)

und werden für FFv im Bild 19.8.2 D-Flip-Flops ausgewählt, kann man mit der folgenden Automatentabelle den Realisierungsaufwand für die Kombinatorik K, ermitteln.

19

222

Sequentielle Schaltungen

Automaten -

D,

D2 e, p

Z

u,2

Z

u,l

Z

u,0

lyz

u,2

\yL

u,l

D0 \y£

u,0

0

0

1

0

0 0

0 0

0 0

0 0

1 0

1

2 3

0 0

0 0

1 1

0 0

1 0

0 0

2

4 5

0 0

1 1

0 0

0 0

1 1

0 1

3

6

0 0

1 1

1 1

1

7

0

0 0

4

8 9

0 0

0 0

0 1

0 0 1 0

5

10 11

0 0

1 1

0 1

0 1

1 0

6

12 13

1 1

0 0

0 0

0 0

0 0

0

0 1

1 0 2 0 2 3 4 0 2 5 1

6 0 0

Tabelle 19.8.2 MEALY-Automatentabelle mit der Kodierung der inneren Zustände z, nach der Vorschrift (19.8.3)

Die Ausgabefunktion y h(x,'z) soll hier unberücksichtigt bleiben. Für die Ermittlung der Ansteuerfunktionen der D-FF ergibt sich danach folgendes Blockschaltbild des =

Automaten.

D u2

=

>7L

2

Di lzt =

z

v¿v

V,

z

^ K, V

Do lzo =

v

Bild 19.8.3 Blockschaltbild des MEALY-Automaten zur Impulsfolgeerkennung mit FF-Spezifikation

Aus der Tabelle 19.8.2 lassen sich die Ansteuerfunktionen für die D-FF und danach die Kombinatorik Kf wie folgt ermitteln:

19.8 Automatenzustandskodierung und -zustandsreduzierung

U

Z2

= =

223

D2 Z^X + Z^jX r»

-. =

(19.8.4)

0 1

+

(19.8.5)

z2z,z0x

o 1

Zq

^O

^2^0 +

Z2Z!Z0x

210

2 1

0

(19.8.6)

1

0

Realisiert man Kf in wilder Logik, so beträgt der Aufwand 13 Gatter mit insgesamt 45 Eingängen. Die benötigten negierten Variablen zv stellen die Flip-Flop-Ausgänge Qv zur Verfügung, x wird als extern bereitgestellt angenommen. Der Takt C muß mit dem Grundtakt der an x. einlaufenden Impulsfolge synchronisiert sein. Wendet man hingegen das Kodierungsverfahren nach [19.4] an, so ergibt sich als eine

mögliche Lösung folgende Zuordnung:

19

224

Sequentielle Schaltungen

Automaten -

z

*» 0 1 2 3

Z

1

|x,l

z

1 0

1 1 1

1 1

u,0

1 1 0 0 1 0 1

0 0 0 0

0 0

4 5 6

Tabelle 19.8.3

u,2

Kodierungsvorschrift nach [19.4] für die inneren Zustände z„ der Impulsfolge-Erkennungsschaltung

Mit dieser Kodierungsvorschrift nach Tabelle 19.8.3 ergibt sich die folgende Automatentabelle zur weiteren Ermittlung der Ansteuerfunktion Dv für die Flip-Flops nach Bild 19.8.3

.

D„ e, p

0 1 2

3 4

5 6

10 11 2

3 0 1

8 9 6 7 12 13 14 15

Z

u.2

1 1

Z

n.1

z

n,0

1 1

0 0

0 0 0 0

0 0

0 0

1 1

0 0

0 0 0 0

1 1

0 0

1 1

1 1

0 0

1 1

1 1

lTZ

D,

D.

lZZ u,l >ZZ U.2 0 1 0 1

0 1

0 0 0 0 0 0

1 1

1 0

0 1 0 0

2 0 2 3

1 1

4 0

0 1 0

1 0 0 1 0

0 0 1

2 5

1

1

1

1 1

0 0

1 1

6 0 0

0 1

1

Tabelle 19.8.4 MEALY-Automatentabelle nach der Kodierung der inneren Zustände z,, nach der Vorschrift

[19.4]

19.8 Automatenzustandskodierung und -zustandsreduzierung

225

Die Ansteuerfunktionen für Dv lassen sich nun aus Tabelle 19.8.4 darstellen: z

h h

l

H

-

Zo

X

'

Z^ZiZa

1Zl =Z2Z1Z0X + Z2ZiX + Z,Z0X

0 0

0 0

z0

Z2

+ Z ¡ZqX

Realisiert man auch hier die Kombinatorik K, in wilder Logik, so beträgt der Aufwand nur noch 8 Gatter mit insgesamt 23 Eingängen. Der Kostenvergleich verdeutlicht den Vorteil einer Zustandskodierung nach [19.4] für das angegebene Beispiel: Verfahren Gatter-Anzahl

nach

nach

(19.8.3)

U941

13

8

38,5

45

23

49

Einsparung m%

Summe der

Eingänge Tabelle 19.8.5

für die Kombinatorik Kf bei verfahren der inneren Zustände z^ eines Automaten

Aufwandsvergleich

Anwendung

unterschiedlicher

Kodierungs-

19

226

Sequentielle Schaltungen

Automaten -

Einschränkend muß hier allerdings angemerkt werden, daß eine solche Kostenreduzierung unter Voraussetzungen gilt, die praktisch so nicht immer gegeben sind. Viele andere Einflußfaktoren, das technologische Umfeld für die schaltungstechnische Umsetzung der Automaten u. a., nehmen unmittelbaren Einfluß auf den Realisierungsaufwand. Trotzdem sind die Verfahren für die Zustandskodierung und für den Entwurf der hier behandelten Automaten von entscheidender Bedeutung. Ebenso ist zu berücksichtigen, daß die Zustandskodierung in engem Zusammenhang mit der Zustandsreduzierung steht. Es soll als Anschauungsbeispiel ein Algorithmus zur Zustandsreduzierung im Falle eines MEALY-Automaten beschrieben werden. Die Zustandsreduzierung bedeutet, daß im betrachteten Automaten bestimmte Klassen von Zuständen zu jeweils einem Zustand Es erweist sich zweckdienlich, diese Klassen durch eine zusammengefaßt werden. Äquivalenzrelation "~" auf Z zu erklären. Eine Äquivalenzrelation "~" auf Z nennt man verträglich, wenn sie der folgenden Bedingung genügt:

ffcZj) h(X,Zy) hOtZj)

(19.8.7) (19.8.8)

=

für alle seXein Verfahren zur Ermittlung einer verträglichen Äquivalenzrelation "~" angegeben, welche eine möglichst kleine Anzahl von Äquivalenzklassen besitzt. Gegeben sei ein MEALY-Automat A = (X,Zf,aZ,Y_,h) mit folgender Automatentabelle: Es wird

nun

0 1 2 3 4 5 6

0 0

0 1

10

11

0 0 0 0

1 2 2 3 4 4 4

0 0 1 4 5 5 5

3 3

1

3 2

3 3 4

6 6

0

0 0 0 0 0 0 0 0

0 1

10

11

0 0 0 0 1 0 1

0

0 0

0 0 0 0 0 0

0 0 0 0 0

Tabelle 19.8.6 MEALY-Automatentabelle für die Beispieldemonstration einer Zustandsreduzierung

19.8 Automatenzustandskodierung und -zustandsreduzierung

Der zugehörige Automatengraph hat dann

227

00/0

die folgende Gestalt:

11/0

01/0

(ll+01)/0

00/0 Bild 19.8.4 MEALY-Automatengraph nach Tabelle 19.8.6

Wir ermitteln zunächst aus der Automatentabelle alle diejenigen ungeordneten Paare verschiedener Zustände, welche der Bedingung (19.8.8) genügen. (Dies sind also alle Paare von Zuständen mit gleichem Ausgabeverhalten.) Wir ordnen diese Paare in der linken Spalte der folgenden Tabelle an.

äquivalente Paare nach (19.8.8) (0,1) (0,2) (0,3) (0,5) (1,2) (13) (1,5) (2,3) (2,5) (3,5) (4,6) Tabelle 19.8.7

Anordnung der Paare mit gleichem Ausgabeverhalten des Beispiel-MEALY-Automaten

19

228

Sequentielle Schaltungen

Automaten -

Spalte der Tabelle 19.8.7 tragen wir diejenigen Paare verschiedener Zustände ein, deren Äquivalenz gemäß (19.8.7) durch die Äquivalenz des entsprechenden Paares in der linken Spalte impliziert würde. Wir erklären dies am Beispiel des Paares In die rechte

(0,3).

0 0

0 0

0 110

11

10

3

4

3

1 2

3 4

Tabelle 19.8.8 Folgezustände des Zustandspaares (0,3) im Beispiel MEALY-Automat

Tabelle 19.8.8 enthält einen Auszug aus der Automatentabelle (19.8.6) und zeigt 4 mögliche Paare ((0,0),(1,3),(0,4),(3,3)) von Folgezuständen des Zustandspaares (0,3). Aus der Bedingung (19.8.7) ergibt sich, daß 0 und 3 nur dann äquivalent sein können, wenn auch (1,3) und (0,4) äquivalent sind. Damit erhält man folgende vollständig ausgefüllte Tabelle:

äquivalente nach

Paare

nach

(19.8.8)

(19.8.7) erforderliche

äquivalente Paare_ (0,1) (0,2)

(1,2) (1,2) (0,1)

(1,2)

(0,1)

Íft3f T*3)ift4f

£2¿¡r $#f toa¿ ß^f (4^ p^r (4,6)

(1,2)

Tabelle 19.8.9 Ermittlung äquivalenter Paare des Beispiel-MEALY-Automaten für eine Zustandsreduzierung nun alle diejenigen Paare in der rechten Spalte gestrichen (/), welche der Bedingung (19.8.8) nicht genügen. Wurde in einer Zeile auf der rechten Seite ein Paar gestrichen, so kann das entsprechende Paar auf der linken Seite nicht mehr äquivalent sein. Diese Paare werden nun ebenfalls gestrichen (/). Wir wiederholen diese Vorgehensweise, indem wir in der rechten Spalte alle Paare streichen (\), welche im letzten Schritt in der linken Spalte gestrichen wurden. Anschließend werden wieder alle Paare in der

Es werden

19.8 Automatenzustandskodierung und -zustandsreduzierung

229

linken Spalte gestrichen, in deren Zeile ein Paar auf der rechten Seite gestrichen wurde. Dies wird solange fortgesetzt, bis keine weiteren Streichungen erforderlich sind. Die verbleibenden Paare bilden dann die Äquivalenzrelation "~". Im Beispiel sind diese: (0,1), (1,2), (4,6), d.h. 0 1, 1 2, 4 6. Der Automat, welcher durch Identifikation der gemäß "~" äquivalenten Zustände aus A hervorgeht, hat die folgende Gestalt: -

0

0

-

0 1

~

10

11

(0,1,2) (0,1,2) (0,1,2) (0,1,2) 3 3 3 3 (4,6) (0,1,2) 5 (4,6) (4,6) (0,1,2) (4,6) 5 3 5 (4,6) (4,6)

01/1

0

0 110

0

0 0 1 0

0 0 0 0

0 0 0 0

11 0 0 0 0

(00+01+10)/0

11/0

(01+1

10/0

(ii+oiyo

Bild 19.8.5 Automatentafel und -graph des zustandsreduzierten MEALY-Automaten

Für Leser, die sich über diese oder andere Algorithmen und Vorschriften zur Automaten-Zustands-Kodierung und -Reduzierung informieren möchten, wird die nachfolgende Literatur angegeben, die Forschungsergebnisse auf diesem Gebiet anbietet:

[19.5], [19.6], [19.7], [19.8], [19.9], [19.10], [19.11.].

19

230

Sequentielle Schaltungen

Automaten -

19.9

Flip-Flops (FF),

19.9.1

Bistabile

Trigger

Flip-Flop-Typen (FF-Typen)

Flip-Flops sind sequentielle Schaltungen, die zwei stabile innere Zustände Zy aufweisen. Sie besitzen sogenannte Informationseingänge, die den FF-Typ spezifizieren und deren Belegung über die Änderung des inneren Zustandes Zy mit entscheidet. Die Mehrzahl aller FF-Typen haben komplementäre Ausgänge, die mit Q und Q bezeichnet werden. Bezüglich der möglichen Informationseingänge unterscheidet man folgende Flip-FlopTypen:

Bild 19.9.1

Flip-Flop-Typen nach Art ihrer Informationseingänge

Bezüglich der Betriebsweise von Flip-Flops unterscheidet man: Flip-Flop ungetaktet

getaktet

taktzustandsgetriggert

7

einstufig

7

taktflankengetriggert

zweistufig (Master-Slave-Prinzip)

Bild 19.9.2 Flip-Flop-Typen nach Art ihrer Betriebsweise

Ungetaktete Flip-Flops nehmen den gewünschten inneren Zustand sofort bei Anlegen der erforderlichen Signale an ihre Informationseingänge ein. Getaktete Flip-Flops besitzen einen zusätzlichen Takteingang, über den die Signale an den Informationseingängen zeitlich beeinflußbar den gewünschten inneren Zustand des Flip-Flops initiieren. Diese im Bild 19.9.2 dargestellten Betriebsweisen werden in den folgenden Abschnitten an konkreten Beispielen erläutert. 19.9.2 RS Flip-Flop (RS-FF) -

RS-Flip-Flop besitzt mit R und S zwei Informationseingänge, wobei R für Reset (Rücksetzen) und S für Set (Setzen) steht. Ist R aktiv, nimmt der Ausgang Q des Flip-

Ein

19.9 Flip-Flops (FF), Bistabile Trigger

231

Flops definitionsgemäß den Wert 0 an, ist S aktiv, wird Q 1. Dies bedeutet, daß eine gleichzeitige Aktivierung von R und S widersprüchlich und damit unzulässig ist. Ein ungetaktetes RS-Flip-Flop wird auch als RS- Grund -Flip-Flop (RS-GFF) bezeichnet. Seine Arbeitsweise ist im Bild 19.9.3 dargestellt. =

(e,p) S 0 1 2 3 4 5 6

R

R

o

0 0 0 0

7

i 0 0 1 1 d d

1 0 1 0 1 1 1 1

R

'Q S+RQ, =

RS

=

0-

Bild 19.9.3 Schaltbild, Wahrheitstabelle und Schaltfunktion für ein ungetaktetes RS-FF

In der Wahrheitstabelle erscheinen der Momentanzustand Q des FF und die Signale R und S als Eingangsgrößen. Damit existieren acht mögliche Eingangsbelegungen. 'Q ist der Folgezustand des RS-FF als Funktion der aktuellen Eingangsbelegungen:

*Q f(Q,S,R) =

=

S

+

RQ,

R-S

=

(19.9.2.1)

0

Die Beziehung (19.9.2.1) wird als Schaltfunktion des RS-FF bezeichnet. Wenn keiner der Informationseingänge des RS-FF aktiv ist (R S 0), wird das FF weder gesetzt, noch rückgesetzt. Der Momentanzustand Q bleibt unverändert. Diesen Zustand bezeichnet man als Speicherzustand des FF. R 1 und S 0 bedeutet, daß 'Q 0 wird, unabhängig vom Momentanzustand Q. 1 wird, unabhängig vom Die Belegung R 0 und S 1 bewirkt, daß 'Q =

=

=

=

=

=

=

=

Momentanzustand Q. Die Belegung R 1 und S 1 ist verboten. Dies kann man mit der Bedingung R-S gewährleisten. Diese ist Bestandteil der Schaltfunktion =

'Q

=

S-R

=

S + RQ =

=

0

(19.9.2.2)

0

die über den Karnaugh-Plan aus der Wahrheitstabelle ermittelt werden kann. Mit NAND- bzw. NOR -Gattern realisierte RS-GFF sind im Bild 19.9.4 dargestellt.

Bild 19.9.4 RS-GFF in NAND- und NOR-Realisierung

19

232

Sequentielle Schaltungen

Automaten -

Die Funktionsweise einer solchen Schaltung soll am Beispiel der NAND-Realisierung mit der Sclmittmethode (Abschnitt 19.13) analysiert werden. Dazu betrachten wir das GFF als ungetakteten Automaten und lassen an den beiden Ausgängen alle vier möglichen Belegungen zu, d.h. anstelle der komplementären FFAusgänge Q und Q fuhren wir die Zustandsvariablen z„ und z, ein. Danach schneiden wir die beiden Rückführungen an den Gatterausgängen auf und ermitteln die Schaltfunktion für die Folgezustandsvariablen \ und lzv

¡ö* -V

Zq

SZi

S

T

Z]

(19.9.2.3) =

Rz„=R (19.9.2.4)

Mit Hilfe der Beziehungen (19.9.2.3) und (19.9.2.4) erstellen wir die Automatentabelle und den -graphen für diese zu analysierende Schaltung: S R 0

0

0

1

1 0

1

1

0 0 0 1 1 0 1 1

0 0 0 1 1 0 1 1

0 0

0 1 1 0 1 1

0 0 0 1 1 0 1 1

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

1 1 0 0 1 1 0 0

FF

rückgesetzt

1 1 unerlaubter Zustand

1 1 1 1

1 1

instabiler Zustand

Bild 19.9.5 Automatentabelle und -graph eines NAND-GFF

Aus dem Automatengraphen ist ersichtlich, daß der Zustand z,, instabil ist und sofort mit dem Kantengewicht B0 3 1 in den Zustand Zj übergeht. Sind keine gezielten schaltungstechnischen Maßnahmen zur Vermeidung von z^ vorgesehen, ist dessen Existenz dadurch nur sehr kurzzeitig, z.B. beim Zuschalten der Versorgungsspannung. Der Zustand Zj ist unerlaubt, da der Automat als Flip-Flop arbeiten soll, also z„ Q und =

=

19.9 Flip-Flops (FF), Bistabile Trigger

Q

233

komplementär sein müssen. Da SR 0 bereits vereinbart wurde, muß für den FF-Betrieb die Eigenschleife an z3 entfallen, so daß nur die beiden erlaubten Zustände zx bzw. z¿ stabil eingenommen werden können. Diese Überlegungen führen zu folgendem realistischen Automatengraphen, der die Arbeitsweise eines RS-GFF repräsentiert. Zj

=

stets

=

R

„_.S

,_

FF rückgesetzt

FF gesetzt

nicht erlaubter, instabiler Zustand Bild 19.9.6 Automatengraph eines NAND-RS-GFF mit der Bedingung RS

Der Zustand Zj ist zwar unerwünscht und

=

0

instabil, wird aber bei jedem Umschalten des

GFF durchlaufen, d.h. Q und Q werden kurzzeitig beide "1". Ein Beispiel für den idealisierten Signalverlauf eines RS-GFF ist im Bild 19.9.7

dargestellt.

R

t ->

Bild 19.9.7

Beispiel Signalverlauf an einem ungetakteten RS-GFF -

Ein solches RS-GFF ist häufig Bestandteil anderer FF-Typen, insbesondere getakteter Schaltungen. Es wird u.a. auch verwendet als Latch (Eingangs-/Ausgangs-Puffer) und als hardwaremäßige Entprellung für mechanische Wechselkontakte (Bild 19.9.8).

234

19

Automaten

Sequentielle Schaltungen -

Bild 19.9.8 Einfache Entprellschaltung für Wechselkontakte mit RS-GFF

Das Wirkungsprinzip dieser Entprellschaltung für mechanische Kontakte beruht darauf, daß die gezeigten FF beim ersten Berühren des Mittel- und Schließkontaktes sofort umschalten. Auch wenn der Mittelkontakt in der Folgezeit durch "Prellen" noch mehrfach die Verbindung zu diesem Schheßkontakt vertiert, bleibt das FF solange in diesem neuen stabilen Zustand, bis der Mittelkontakt funktionsgemäß wieder in die andere

Position zum Öffnerkontakt bewegt wird. Von Interesse sind weiterhin getaktete RS-FF. Sie sind durch einen zusätzlichen Takteingang C gekennzeichnet. Im Bild 19.9.9 sind die NAND- und NORRealisierungen solcher FF spezifiziert.

Bild 19.9.9 Getaktete RS-FF in NAND- und NOR-Realisierung

Einbeziehung des Takteinganges C läßt sich über die Wahrheitstabelle für ein getaktetes RS-FF folgende realisierungsunabhängige Schaltfunktion ermitteln: Unter

19.9 Flip-Flops (FF), Bistabile Trigger

235

(e,p) C

S R Q 0 0 0 0 0 0 0 1 0 0 10

0 1

2

0

f

1 0

_3 0__°_ J_! 1_ 4 5 6

P-

0 0 0

10 0 10 1 110

0

1 0

R

rd

_7_ i_ J_ _!_} _L 8 9

10 0 0 10 0 1 10 10

10

0 1

I

RS

0

110 0 110 1 1110 1111

1 1 d d

=0_

'Q =CQ + CS + RQ

_11 J__P_ Jl_! 0_ 12 13 14 15

I

(19.9.2.5)

fürC

=

f(irC

=

0:1Q Q l:1Q S+RQ =

=

Bild 19.9.10 Schaltbild, Wahrheitstabelle und Schaltfunktion eines getakteten RS-FF

Bezüglich der Taktung von RS-FF sind alle der im Bild 19.9.2 dargestellten Betriebsarten möglich. Verbreitet sind insbesondere die einstufigen taktzustandsgetriggerten und die taktflankengetriggerten RS-FF. Dir Funktionsprinzip ist in den folgenden Bildern dargestellt.

S Takt aktiv

R

Q "71^

/i\

Jl

LyK"

Takt inaktiv Bild 19.9.11/1 Schaltbilder und Beispiel-Signalverläufe für einstufige getaktete RS-FF

t -4

19

236

Sequentielle Schaltungen

Automaten -

S

oc R

Takt

S R

inaktiv

I

Q t —>

/T

7^

Takt aktiv Bild 19.9.11/2 Schaltbilder und Beispiel-Signalverläufe für einstufige getaktete RS-FF

S -

>

R

r\_n_fi PR

t —>

0-1 -flankengetriggert

C -c>

ÏJ

R

U

lJ

R

t —>

C—I 1 -O-flankengetriggert

Bild 19.9.12 Schaltbilder und Beispiel-Signalverläufe für taktflankengetriggerte RS-FF

19.9 Flip-Flops (FF), Bistabile Trigger

19.9.3

D-Flip-Flop

237

(D-FF)

Ein D-FF besitzt einen Informationseingang D und einen Takteingang C, sowie die Ausgänge Q und Q. D steht für DELAY (Verzögern). Ein D-FF arbeitet immer getaktet. Das Signal am Informationseingang D wird mit dem Taktsignal in das FF eingegeben. Da in der Mehrzahl aller Fälle das Informationssignal D anliegt, bevor der nächste Taktimpuls wirksam wird, spricht man von einem Verzögerungs-FF. Die Verzögerungszeit tD ist die Differenz zwischen dem Moment des z.B. interessierenden "0-1" -Zustandswechsels des D-Signals am Informationseingang und seinem Erscheinen am Ausgang Q des D-FF infolge des Wirksamwerdens des Taktsignals C. Für ein einstufiges taktzustandsgetriggertes D-FF ergibt sich damit z.B. folgender Signalverlauf: D D

^C

++ Bild 19.9.13

t —>

Beispiel-Signalverlauf für ein einstufiges taktzustandsgetriggertes D-FF

Der am D-Eingang dieses FF anliegende Wert 0 oder 1 wird also bei aktivem Taktsignal in das FF übernommen. Bei passivem Taktsignal wird der jeweilige Wert von D gespeichert, der am Ende der Aktivphase des Taktes aktuell übernommen wurde. Damit läßt sich folgende Funktionsweise dieses FF definieren:

(e,p) 0 1 2

D

3 4

P-

5 6 7

C D Q 0 0 0 0 0 1 3 1 0 3 1 1 1 0 0 1 0 1 1 1 0 1 1 1

lQ o i 0 1 0 0 1 1

D

'Q=CQ + CD 'Q Q C=1:'Q D (19.9.3.1) C

=

0:

=

=

Bild 19.9.14 Schaltbild, Wahrheitstabelle und Schaltfunktion eines D-FF

Die Schaltung eines einstufigen taktzustandsgetriggerten D-FF unter Verwendung eines RS-GFF kann wie folgt entworfen werden. Geht man von einem mit NAND-Gates realisierten RS-GFF aus, ergeben sich für die vorzuschaltende Kombinatorik folgende Anforderungen:

19 Sequentielle Schaltungen Automaten

238

-

n D C

Q Q

RS-GFF "NAND"

K R

Speichern

Setzen

Rücksetzen

d 0

l l

0 1

1

o

1

1

i

0

Q

i

0

Forderung

}

S R=0 S+R l •

=

Bild 19.9.15 Blockschaltbild und Funktionstabelle für die Synthese eines D-FF unter Verwendung eines "NAND"RS-GFF

Setzt man die Funktionstabelle (Bild 19.9.15) für ein D-FF in einen Signalflußgraphen und ermittelt daraus die Wahrheitstabelle, so läßt sich die gesuchte Kombinatorik K über die Schaltfunktionen für R und S ermitteln.

um

Folgezustände i-¡

Bild 19.9.16/1

Signalflußgraph und Wahrheitstabelle für ein einstufiges, taktzustandsgetriggertes D-FF

19.9 Flip-Flops (FF), Bistabile Trigger

239

D

d R

1

R

1

d

lR Bild 19.9.16/2

=

lS

C+D

Ermittlung der Schaltfunktion für Taktzustandstriggerung

'R und1 S

zur

=

C

+

D

Synthese einer D-FF Schaltung mit einstufiger

Mit den Schdtfunktionen für 'R und ' S im Bild 19.9.16/2 ergeben sich folgende auf NAND-Basis realisierte Schaltungen für ein einstufiges taktzustandsgerriggertes D-FF.

iR

'S

=

=

C+D=C+D

C

+

D

=

C^D

=

=

CD,

'R

=

CD

'R

=

CD

=

DC+CC

C(D+C)

=

=

CDC

=

C"1!

b) Bild 19.9.17

Schaltungen für ein einstufiges taktzustandsgetriggertes RS-FF

Für die Synthese eines taktflankengetriggerten D-FF geht man von der Überlegung aus, daß bezüglich seiner Arbeitsweise folgende vier inneren Zustände zu unterscheiden sind.

19

240

Sequentielle Schaltungen

Automaten -

Í

D

D

Í

C-p

G) ® ®

FF rückgesetzt, FF gesetzt, FF gesetzt, FF rückgesetzt,

© © 0)

t —>

C sensitiv C insensitiv C sensitiv C insensitiv

Bild 19.9.18 Arbeitsweise eines taktflankengetriggerten D-FF

Geht man von einer Schaltung des D-FF aus, die jeweils mit der 0-1-Flanke den aktuellen Wert vom D-Eingang übernimmt und am Ausgang Q bereitstellt, so unterscheidet man die im Bild 19.9.18 dargestellten vier inneren Zustände des FF.

Die "low"-Zustände des Taktsignals C bezeichnet man als sensitive Zustände, da nur von diesen ausgehend wieder eine 0-1-Flanke wirksam werden kann. Unmittelbar nach dem Setzen bzw. Rücksetzen des D-FF ist die Schaltung für die Dauer des "high"-Zustandes von C insensitiv, d.h. dieser Taktzustand muß erst in Richtung "low" wieder verlassen werden, bevor eine neue 0-1-Flanke als "Arbeitsflanke" wirksam werden kann. Die Funktionsweise läßt sich in Form eines Signalflußgraphen wie folgt darstellen:

Bild 19.9.19

Signalflußgraph für ein taktflankengetriggertes D-FF (0-1-Flanke)

Eine unmittelbare schaltungstechnische Umsetzung dieses Signalflußgraphen ist möglich (10 NAND-Gatter und 4 Negatoren), aber in der Praxis nicht üblich. Auch taktflankengerriggerte D-FF werden unter Verwendung eines RS-GFF realisiert. Dies

241

19.9 Flip-Flops (FF), Bistabile Trigger

dann folgendes Blockschaltbild und den im standsreduzierten Signalflußgraphen.

ergibt

Vergleich

zum

Bild 19.9.19

zu-

r D

c^

Q Q

RS-GFF "NAND"

K

_D1FF_

R

Signalflußgraph für ein taktflankengetriggertes D-FF unter Verwendung eines

Bild 19.9.20 Blockschaltbild und RS-GFF

Unter Beachtung des Signalverlaufes von Bild 19.9.18 sowie der Darstellung im Bild 19.9.20 läßt sich die Funktionstabelle für das zu synthetisierende taktflankengetriggerte D-FF spezifizieren.

gesetzt,

rückgesetzt

setzen

C: 0-1-Flanke

d 0

1

1

t

0

1

i

1

C insensitiv d 1

1

Q *

gesetzt,

C sensitiv

Forderung: R-S 0, =

R

+

S

=

rücksetzen C: 0-1-Flanke 0

rückgesetzt

C insensitiv d

S

1

i

1 0

11

0

1

Tabelle 19.9.1 Funktionstabelle für ein taktflankengetriggertes D-FF auf der Basis eines "NAND"-RS-GFF

Sequentielle Schaltungen

19

242

Automaten -

Aus dieser Tabelle 19.9.1 lassen sich die Wahrheitstabellen, die Schaltfunktionen für S und R sowie die z.B. auch in NAND-Gattern realisierte Kombinatorik K ermitteln. D I-1

Momentanzustände C D S R

verboten 0

1

1 0

1

1

0 0 1 1

0 1 0 1

Folge-

zustände

R

lR '"S d 1 1 1

d 1 1 1

d 1 1 1

d 1 1 1

d 0 1 0

d

d 0 1 1

lR

'R

=

=

C

+

C+S+DR

=

S

+

DR

CSDR

D

H

I-

1

0 1

d 1 0 0

R

'S

'S

=

C

+

R+ D S

C+R+D S

=

CR D S

=

Bild 19.9.21 Wahrheitstabelle und Schaltfunktionen für die Kombinatorik K des taktflankengetriggerten D-FF

Damit

ergeben sich folgende Schaltungen "NAND"-Realisierung:

für das

taktflankengetriggerte

D-FF in

19.9 Flip-Flops (FF), Bistabile Trigger

243

'S

umgeformte Schaltfunktion aus dem

=

Bild 19.9.21

=

=

Bild 19.9.22

=

C+DS+R(S+S)

C+DS+RS+RS

C+S-(D+R) C-(SD-R)

Schaltungen für ein taktflankengetriggertes D-FF ("NAND"-Realisierung, aktive 0-1-Taktflanke)

19.9.4 DV

-

Flip-Flop (DV-FF)

Das DV-FF ist nach dem

Funktionsprinzip ein D-FF. Der zusätzliche Signaleingang V steht für "yorentscheiden". Ist er aktiviert, so arbeitet das DV-FF als D-FF. Ist er nicht aktiviert, wird die D-Operation nicht ausgeführt, d. h. der Takt C wird nicht wirksam. (e,p) C V

P

0 0 0 0 0 0 0 0

D

Q

0 0 0 0

0 0 0 1 1 o 1 1 10 0 1 0 1 1 1 0 1 1 1

Bild 19.9.23/1 Schaltbild und Wahrheitstabelle eines DV-FF

(e,p) C 8 9 10 11 12

13 14 15

V D

10

10 1 0 1 0 1 1 1 1

1 1 1 1

0 0 1 1 0 0 1 1

Q 0 1 0 1 0 1 0 1

0 1 0 1 0 0 1 1

19

244

Sequentielle Schaltungen

Automaten -

'Q CQ + VQ + CVD V 0:'Q Q V=1:'Q=CQ + CD C 0:'Q Q C=1:'Q D =

=

D

(19.9.4.1)

=

=

=

=

Bild 19.9.23/2 Schaltfunktion eines DV-FF

Ein einstufiges taktzustandsgetriggertes DV-FF in NAND-Realisierung läßt sich durch Hinzufügung des V-Eingangs in der relevanten Schaltung des D-FF im Bild 19.9.17 b) wie folgt darstellen:

t —>

Bild 19.9.24

Schaltung eines einstufigen taktzustandsgetriggerten DV-FF mit einem Beispiel-Signalverlauf

Der Einsatz von DV-FF z. B. in Schieberegistern und speziellen synchronen Zählern ermöglicht im Vergleich zu anderen FF-Typen Einsparungen bezüglich Verdrahtungsauf-

wand und Anzahl der erforderlichen logischen Verknüpfungsglieder.

19.9 Flip-Flops (FF), Bistabile Trigger

19.9.5

245

T-Flip-Flop (T-FF)

Man unterscheidet ungetaktete T-FF, die nur T als Signaleingang sowie die Ausgänge Q und Q aufweisen, und getaktete T-FF mit einem zusätzlichen Takteingang C. T steht für

"loggle" Triggern. -

(e,p) 0 1 2 3 4 5 6 7

T—1> >

P-

(e,p)

T

Q

'Q

0

0 0

0

1 1

0

o i i 0

1 2

3

1 1

'Q=TQ + TQ

p

1

T C

Q

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

0 1

0 1 0 1 1 0

1

(19.9.5.1)

'Q=CQ + TQ + TCQ (19.9.5.2) T 0:1Q Q T=1:'Q= CQ + CQ =



i

=

0)i ©i ©i

t —>

a) ungetaktet Bild 19.9.25

b) getaktet

Schaltbilder, Wahrheitstabellen, Schaltfunktionen und Beispiel Signalverläufe für ein a) ungetaktetes und b) getaktetes T-FF -

Ein ungetaktetes T-FF schaltet mit einer definierten Flanke des T-Signals in den jeweils komplementären Zustand. Ein getaktetes T-FF schaltet mit einer definierten Flanke des C-Signals dann in den jeweils komplementären Zustand, wenn T aktiv ist. T ist in diesem Fall also ein Enable-

Eingang.

19

246

Automaten

Sequentielle Schaltungen -

Schaltungssynthese für ein ungetaktetes T-FF Aus dem Signalverlauf im Bild 19.9.25 a) ist ersichtlich, daß es vier charakteristische, innere Zustände für ein solches FF gibt (p 0 3). Diese vier Zustände Zy lassen sich mit zwei Zustandsvariablen z, und Zg darstellen. Dazu benötigt man zwei interne FF (Bild 19.9.26 c)). Ordnet man die Aufeinanderfolge der vier inneren Zustände 0 bis 3 so wie im Bild 19.9.26 a) an, dann sind die Zustandsvariable Zo und der Ausgang Q des T-FF identisch. Auf eine spezielle Ausgabefunktion kann damit verzichtet werden (Bild 19.9.26 b)). =

...

01 T

r a) Zuordnung der inneren Zustände Zy zum Signalverlauf

0

b) Kodierung der inneren

Zustände Zy mit zx und z„

c) Blockstruktur eines T-FF Bild 19.9.26

Spezifikationen zur Synthese eines ungetakteten T-FF

Für die Blockstruktur des ungetakteten T-FF im Bild 19.9.26 läßt sich ein Automatengraph mit den vier inneren Zuständen Zy (Zq^Z^Zo) und dem Eingangssignal T wie —

folgt aufstellen.

19.9 Flip-Flops (FF), Bistabile Trigger

247

Bild 19.9.27 Automatengraph für ein ungetaktetes T-FF

Aus diesem Automatengraph läßt sich die Schaltung des T-FF über die Automatentabelle und die minimierten Schaltfunktionen für lz, und 1z0 ermitteln.

•z^TZo+TZt + fZjZo]* (e,p) 0 4 6 2 3 7 5 1

1z

0 0 1 1 1 1

0 0

0 0 0 0 1 1 1 1

0 1 1 1 1

0 0 0

!

17z0 0 0 0 1 1 1 1

% Tzo + Tz, + [z,^]' =

0

Es erweist sich als zweckmäßig, diese redundanten Terme für die Synthese der FF-Schaltung mit einzubeziehen. Damit erhält man symmetrische Schaltungsstrukturen, die einerseits die Verwendung von RS-GFF ermöglichen und andererseits weniger hasardgefährdet sind. Bild 19.9.28 Automatentabelle und Schaltfunktionen zur Synthese der T-FF-Schaltung

248

19

Sequentielle Schaltungen

Automaten -

Die Schdtfunktionen für 'z, und 'z0 sind für eine NAND-basierte umzuformen:

Schaltungsrealisierung

'z, =Tz0+ Tzj + z1z„ (T + z"0)Zl + Tz0 =

=

=

\

(T+^z^Tzj

(19.9.5.1)

T^z/TzÔ

TZo + TZj + Z,Z, KT + z^Zo+Tz, =

=(T+z1)z0+Tz1 =T-z1-z0-Tz1 Mit (19.9.5.1/2) ergibt sich unmittelbar die

(19.9.5.2)

Schaltung des ungetakteten

T-FF.

I .

Bild 19.9.29 "NAND"-basierte Schaltung eines ungetakteten T-FF

Schaltungssynthese für ein getaktetes T-FF Aus dem Signalverlauf im Bild 19.9.25 b) ist ersichtlich, daß es vier charakteristische innere Zustände Zy für ein solches FF gibt (p 0 3). Diese vier Zustände lassen Zy sich auch hier wie für das bereits synthetisierte ungetaktete T-FF mit zwei Zustandsvariablen zx und z0 und auch mit der gleichen Blockschaltung nach Bild 19.9.26 c) darstellen. =

...

19.9 Flip-Flops (FF), Bistabile Trigger

249

FF,

FF„

r t ->

a) Zuordnung der inneren Zustände Zy

zum

Signalverlauf

b) Blockschaltung eines getakteten T-FF

C+T

c) Automatengraph eines getakteten T-FF Bild 19.9.30

Spezifikationen zur Synthese eines getakteten T-FF

Aus diesem Automatengraph läßt sich die Schaltung des T-FF über die Automatentabelle und die Schaltfunktionen für lzx und lz0 ermitteln.

19

250

Sequentielle Schaltungen

Automaten -

C T 0

0

1

1

0

1

0

1

*H

I1",

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

1 0 0 1 1

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

0 0 1 1 1 0 1 0

0 0 0 0 1 1 1

für T 1 ergibt sich für die gewählte Kodierung von Zy=

0 0 1 1

1,

0 1

J

0 1

1 1

0

_0

0 1

0 1

0 0

0 0

1 1 1 1 0 0

0 1 1 1 1 0 0

0

1.

0 0 0 1 1

0

n

0 1

\ CTz0 + Cz, + TZl + (z,Z0)* =

\ Cz! + Czo + (z^)* =

Es erweist sich als zweckmäßig, diese redundanten Terme für die Synthese der FF-Schaltung mit einzubeziehen. Damit erhält man symmetrische Schaltungsstrukturen, die einerseits die Verwendung von RS-GFF ermöglichen und andererseits weniger hasardgefährdet sind.

Bild 19.9.31 Automatentabelle und Schaltfunktionen zur Synthese der T-FF-Schaltung

251

19.9 Flip-Flops (FF), Bistabile Trigger

Die Schdtfunktionen für lzx und umzuformen:

'z,, sind für eine NAND-basierte Schaltungsrealisierung

izx CTz0 + Cz! + Tz: + z,z0 =

=

=

=

CTz0 + z, (C+f+z0)

CTz0+z1(C+T+zb)

CTzÖ-^+CTZo]

(19.9.5.3)

CTzo+^CTzJ CTzo z^CTz,, •

Zq

^^0

1 =

=

=

=

Mit (19.9.5.3

Czx

+

Zo

10

(C+Zj)

Czj+ZqÍC+z,) Czj-tzj+Cz,]

C-z.+Czo-C Zj) Czt ZqC z, •

/4) ergibt sich unmittelbar die Schaltung eines getakteten T-FF.

I

C-±

Bild 19.9.32 NAND-basierte

Schaltung eines getakteten T-FF

(19.9.5.4)

19

252

Automaten

Sequentielle Schaltungen -

19.9.6

JK Flip-Flop (JK-FF) -

Das JK-FF ist prinzipiell getaktet. Neben dem Takt C besitzt es die Informationseingänge J und K. In ihrer Funktionsweise sind sie mit den S- und R-Eingängen eines RS-FF vergleichbar. Im Gegensatz zum RS-FF können jedoch beim JK-FF beide Eingänge J und K gleichzeitig aktiviert werdeiL_In diesem Fall schaltet das JK-FF jeweils in seinen komplementären Zustand ('Q Q). Daraus erklären sich die Bezeichnungen der Eingänge mit J für lump und K für KillDie im Bild 19.9.33 dargestellte Wahrheitstabelle verdeutlicht die Zusammenhänge zwischen den acht möglichen Eingangsbelegungen von J, K und Q und den Ausgangs=

belegungen für 'Q e {0,1}. (e,p)

J

K

Q 0 1 0

0 K

1 1 1

P-

0

K

>Q

=

J

Q

+

KQ

(19.9.6.1)

Bild 19.9.33 Schaltbild, Wahrheitstabelle und Schaltfunktion eines JK-FF

Nach ihrer Betriebsweise unterscheidet getriggerte JK-FF.

man

taktzustandsgetriggerte und taktflanken-

Taktzustandsgetriggerte JK-FF Taktzustandsgetriggerte JK-FF sind prinzipiell zweistufig, d. h. sie bestehen aus zwei internen Flip-Flops, die mit Master-FF (M) und Slave-FF (S) bezeichnet werden. Das Schaltbild und die Blockschaltung eines solchen JK-Master-Slave-FF (JK-MS-FF) ist im folgenden Bild dargestellt.

P-

Bild 19.9.34 Schaltbild und Blockschaltung eines taktzustandsgetriggerten JK-MS-FF

Die Winkelzeichen an den Ausgängen Q des JK-MS-FF kennzeichnen die Zweistufigkeit der Betriebsweise. Die Informationsübernahme von den Eingängen JK mittels Takt C geschieht in der Reihenfolge vom Master zum Slave stufenweise.

19.9 Flip-Flops (FF), Bistabile Trigger

253

Ein einstufiger Betrieb des JK-FF ist im Vergleich zum RS-FF deshalb nicht zu realisieren, weil die Belegung J K = 1 zulässig ist. Aus der Wahrheitstabelle im Bild 19.9.33 ist ersichtlich, daß für diese Belegung das FF bei aktivem Takt C in den jeweils komplementären Zustand schaltet. Für J K 1 und aktivem C würde ein solches einstufiges JK-FF ständig zwischen 1 und 0 am Ausgang Q hin- und herschalten, also schwingen. Das zweistufige JK-MS-FF hingegen vermeidet solche instabilen Zustände dadurch, daß der Takt C den Master und der dazu negierte Takt C den Slave schaltet. Damit ergibt sich die im Bild 19.9.35 dargestellte zweistufige Betriebsweise. =

=

Übernahme der JK-Belegung in den Master

=

Übernahme des in den Slave

Q -Wertes

Ausgabe Slave-Eingänge

Master-Eingänge

Master-Eingänge

Slave-Eingänge

sperren,

aktivieren

sperren,

aktivieren

Bild 19.9.35 Schaltverhalten eines taktzustandsgetriggerten JK-FF

Zum Zeitpunkt tM1, d. h. mit der 0-1-Flanke des Taktsignales C, wird der Slave vom Master getrennt, und es beginnt die Übernahme der Eingangsinformation von J und K in den Master. Zum Zeitpunkt tsl, d. h. mit der 1-0-Flanke von C wird die Übernahme der Eingangsinformation von J und K in den Master beendet. Der Slave überrtimmt

die aktuelle Information 'QM vom Masterausgang QM und stellt sie für den Zeitraum tsl bis ts2 am Ausgang mit 'Q 'QM des JK-MS-FF bereit, d. h. bis zur folgenden 1-0Flanke, mit der die neue Belegung von 2QM in den Slave übernommen wird. 2QM ist das Ergebnis der im Zeitraum t,^ bis tS2 inzwischen erneut erfolgten Informationsüberusw. Diese Betriebsweise eines zweistufigen, taktnahme von JK in den Master auch der folgende Beispiel-SignalverJK-MS-FF verdeutlicht zustandsgetriggerten =

...

lauf.

19

254

Sequentielle Schaltungen

Automaten -

JK

""_

i-1

i

r t ->

Bild 19.9.36 Beispiel-Signalverlauf für ein zweistufiges taktzustandsgetriggertes JK-MS-FF

Schaltungssynthese eines JK-MS-FF Die beiden Master- und Slave-FF eines JK-MS-FF ermöglichen die Realisierung der insgesamt vier inneren Zustände Zy (Zo,Zi,Z2,Z3), die für den zweistufigen Betrieb dieses FF erforderlich sind. Diese Zustände Zy kodieren wir mittels zweier Zustandsvariablen z, und z0, die wir gleich den Ausgängen des Master- bzw. Slave-FF setzen: -

zi

Daraus

Zo Zi Zi

Z3

=

Qm> Zo Qs=

ergeben sich folgende Spezifikationen:

(zx (zx (zx (z!

=

=

=

=

0, Zq 0), Master rückgesetzt (QM 0), Slave rückgesetzt 0, Zq 1), Master rückgesetzt (QM 0), Slave gesetzt 1, Zo 0), Master gesetzt (Qm Ó, Slave rückgesetzt Master 1, z„ 1), gesetzt (QK 1), Slave gesetzt =

=

=

=

=

=

=

=

(Qs 0), (Qs =1), (Qs 0), (Qs 1). =

= =

C C

'1 CH

Q=z. Z

Bild 19.9.37

M-FF

Olí 21

Spezifikation der vier inneren Zustände z^ eines JK-MS-FF

S-FF

1

19.9 Flip-Flops (FF), Bistabile Trigger

255

Diese vier Zustände Zy lassen sich im folgenden Automatengraphen für ein JK-MS-FF darstellen: Slave bleibt gesetzt Master nicht rücksetzen

C+CK

Master gesetzt

CQ

/

/ Slave

setzen

\

M rückgesetzt

¿M.

S gesetzt ,z

\

S

rückgesetzt

=1,^0=0/ /N

Master rücksetzen

CK

M gesetzt

CJ

Master setzen

M

\

i~0 ,z o V

S

rückgesetzt rückgesetzt

Slave rücksetzen



Master

Bild 19.9.38

rückgesetzt

Slave bleibt

rückgesetzt

Master nicht setzen

Automatengraph für ein JK-MS-FF

Die gestrichelt dargestellten Zustände Zi und Zq sind interne Zwischenstationen im Ablauf von "gesetzt" zu "rückgesetzt", der von CK ausgelöst wird, und umgekehrt von "rückgesetzf nach "gesetzt", der von CJ initiiert wird. Deshalb sind die beiden Zustände nur mit der Eigenschleife C versehen. Mit dem Übergang jeweils von C nach C erfolgt das Weiterschalten in die von CK bzw. CJ initiierten Zustände Zo bzw. Z3 über die Automatentabelle, die sich aus dem Graphen in Bild 19.9.38 unmittelbar ergibt. Über eine Minimierung mit dem Karnaugh-Plan erhält man die Schaltfunktionen für die beiden Zustandsvariablen lzx und \. '

19

256

Automaten

Sequentielle Schaltungen -

C

(E.P) 0,4,8,12 1,5,9,13 2,6,10,14 3,7,11,15 16

J

1

K

i

Odd

0 0 1 1

1

0

0

o 0 1

17 18 19

1

20 21 22 23

1

0

1

24

1

1

0

1

1

1

0 0 1 1 0 0 1 1

25 26 27

28 29 30 31

0 0 1 1

o 1 0 1

o 1 0 1

o 1 0 1 0 1 0 1 o 1 0 1

1 .

z,

0 0

0 o

1 1

1 1

0 0

o

1 1

0 1 o 1 0 1 0 1 0 1 0 1 0 1

z

o 0 1 0 1 0 1 1 1 0 1 0

Q=*o 0 1 0 1 0

1

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

Bild 19.9.39/1 Automatentabelle für die Zustandsvariablen z„ z¡ eines JK-MS-FF

K

h

h

'z, Cz, + Z;K -l-z^,, + =

+

JCz0

(19.9.6.2)

Bild 19.6.39/2 Schaltfunktion für die Zustandsvariable z, eines JK-MS-FF

19.9 Flip-Flops (FF), Bistabile Trigger

257

\ Cz, + Cz0 + (ZjZo)* =

(19.9.6.3)

Es erweist sich als zweckmäßig, diese redundanten Terme für die Synthese der FFSchaltung mit einzubeziehen. Damit erhält man symmetrische Schaltungsstrukturen, die einerseits die Verwendung von RS-GFF ermöglichen und andererseits weniger hasardgefährdet sind.

Bild 19.9.39/3 Schaltfunktion für die Zustandsvariable z„ eines JK-MS-FF

Die NAND-Realisierung des JK-MS-FF nen

(19.9.6.2 /3):

'z, z^C+K+z^+JCzj =

ergibt sich nach Umformung der Schaltfunktio-

1z0=Cz1+Cz0+z1z0 % C^I^+C z,] =

'z, Zj-CKzo+JCzj 'z, Zj-CKz,, JCZj =

=



1z0= Czj+z0-C Zq

Zj

CZj Zq'C Zj *

z0=Q

Bild 19.9.40 NAND-Schaltung eines JK-MS-FF

Die Schaltungssynthese hat als Master-FF ein RS-GFF mit der in Bild 19.9.40 dargestellAnsteuerung ergeben. Eine solche Schaltung birgt die Gefahr, daß während des aktiven Zustandes von C, also im Zeitbereich tM bis ts im Bild 19.9.35 eventuell auftretende Störspikes das RS-Master-FF so triggern können, daß ein unerwünschtes

ten

19

258

Automaten

Sequentielle Schaltungen -

Verhalten des gesamten JK-MS-FF eintritt. Ein solches Fehlverhalten dieses JK-MS-FF soll an einem Beispiel erläutert werden:

K ¿M

t —>

*

Beispiel

Signalverlauf für das unerwünschte während der aktiven C-Phase

Bild 19.9.41

Störimpuls auf dem K-Eingang

Reagieren

eines JK-MS-FF auf einen

Störimpuls

-

Nach der ersten 0-1 Flanke von C wird Qm 1. Mit der folgenden 1-0-Flanke wird dieser Wert vom Slave übernommen und erscheint am Ausgang Q des JK-MS-FF. Im weiteren Signalverlauf sind J K 0, d. h. Q 1 sollte gespeichert bleiben. Ein Fehlimpuls am K-Eingang setzt jedoch das R-S-Master-FF zurück. QM wird sofort 0, und mit der folgenden 1-0-Flanke wird unerwünscht Q 0. Um die Wahrscheinlichkeit eines solchen Fehlverhaltens des JK-MS-FF zu verringern, müßte man die aktive C-Phase, in der die Eingangsbelegungen JK ständig in das Master-FF übernommen werden, zeitlich verkürzen. Ideal wäre es, wenn z.B. mit der 0-1-Flanke von C die zu diesem Zeitpunkt gerade anhegende JK-Belegung in den Master übernommen wird und nach sicherer Übernahme dieser Information in das Master-FF sofort mit der 1-0-Flanke von C das Weiterschalten zum Slave-FF erfolgt. In diesem Fall könnte man vom zweiflankengetriggerten JK-FF entsprechend DIN 40900 sprechen. Das im Bild 19.9.41 demonstrierte Fehlverhalten eines JK MS FF könnte man auch mit einem D-FF als Master -FF umgehen. Ein D-FF folgt entsprechend seiner Schaltfunktion 'Q D während des aktiven Zustandes von C immer allen JK-Eingangsbelegungen. (Ein vorgeschalteter JK D Konverter ist dabei natürlich Voraussetzung!) =

=

=

=

=

-

-

=

-

259

19.9 Flip-Flops (FF), Bistabile Trigger

Bild 19.9.42

JK-MS-FF auf der Basis eines D-Master-FF aktiven Taktphase

zur

Vermeidung

von

Fehlschaltungen

während der

Dies bedeutet, daß zum Zeitpunkt ts der Taktflanke zur Übernahme des Masterinhaltes Qm in den Slave der letzte aktuelle Wert im Zeitbereich tM bis ts (Bild 19.9.35) dominierend für das Schaltverhalten des gesamten JK-MS-FF ist, unabhängig von der Vorgeschichte, die im Zeitbereich tM bis ts jeweils auftritt. Ein solches JK-MS-FF mit einem D-Typ-Master könnte in NAND-Realisierung wie im Bild 19.9.42 aussehen.

Taktflankengetriggertes JK-FF

zweiflankengetriggerte JK-FF bereits im vorhergehenden Abschnitt Aussagen getroffen wurden, wird hier die Synthese des einflankengetriggerten JK-FF dargestellt. Dabei geht man zweckmäßig wieder von einem RS-GFF aus, das über eine zu ermittelnDa über

de Kombinatorik angesteuert wird.

&

J K

C

>

J K C

K

&

> R

Bild 19.9.43/1 Schaltbild und Blockschaltung für ein taktflankengetriggertes JK-FF

19

260

Sequentielle Schaltungen

Automaten -

J

jf

jT~L

K

t —>

Bild 19.9.43/2 Beispiel-Signalverlauf für ein taktflankengetriggertes JK-FF

Für ein solches FF lassen sich vier innere Zustände unterscheiden: 1. JK-FF gesetzt, 2. JK-FF rückgesetzt, 3. JK-FF gesetzt, 4. JK-FF rückgesetzt,

C C C C

=

=

=

=

0, S 0, S 1, S 1, S

Diese vier inneren Zustände und die Automatengraphen darstellen.

Bild 19.9.44

=

=

=

=

1, 1, 0, 1,

R R R R

1 1

=

=

=

=

1 0.

Übergangsbedingungen kann man in Form eines

Automatengraph für ein einflankengetriggertes JK-FF

Aus diesem Automatengraph sind die gewünschten Schaltfunktionen für S und R über die Automatentabelle und mittels Karnaugh-Plan-Minimierung zu ermitteln.

19.9 Flip-Flops (FF), Bistabile Trigger

(641) 0,8,16,24 1,9,17,25 2,10,18,26 3,11,19,27 4,12,20,28 5,13,21,29 6,14,22,30 7,15,23,31 32,40,48,56 33,41,49,57 34,42,50,58 35,43,51,59 36,44,52,60 37,45,53,61 38,39 46,47 54,55 62 63

261

C J K

S R

's 'R

Odd

0 0

d d d 1

d d d 1

1 d 1 1

1 d 1 1

d d d 0

d d d 1 0

0 0 0 1

Odd

1 d

d

0 1 1 1 1

1 0 0 1 1

0 0 0 0

0 0 1 1

1 d d

1 d

1 1 1 1 1

0 0

1 1

1 1 1

0 0 1

d 1

0 1 1 0

tK

R

'S=C

+

R+JS

+

SKQ

(19.9.6.4) Bild 19.9.45/1 Automatentabelle und Schaltfunktion für S

zur

Synthese eines einflankengetriggerten JK-FF

19

262

Sequentielle Schaltungen

Automaten -

d d d d

d d

'R

d

=

RJQ (19.9.6.5)

C+S+KR

+

Bild 19.9.45/2 Schaltfunktion für R zur Synthese eines einflankengetriggerten JK-FF

Die NAND-Realisierung des einflankengetriggerten JK-FF ergibt sich nach Umformen der Schaltfunktionen (19.9.6.4 /5):

>S

=

'S

=

'S 'S

C+S+R(K+JQ) C-S-(R+(K-JQ))

C+R+S-(J+KQ), C-R(S+J-KQ),

'R

=

'R

=

=

cl+fS-ÍKQ),

'R

=

ÖS+(RK-JQ)

=

CR-SFKQ,

'R

=

CSRKJQ

19.9 Flip-Flops (FF), Bistabile Trigger

Bild 19.9.46

263

NAND-Schaltung eines einflankengetriggerten JK-FF

19.9.7 Reduzierte Wahrheitstabellen für

Flip-Flops

Für die Synthese komplexer sequentieller Schaltungen wie Zähler, Teiler, Schieberegister usw., in denen vorwiegend Master-Slave-FF bzw. einflankengetriggerte FF Verwendung

finden, sind reduzierte Wahrheitstabellen für die Ermittlung der anwendungsbezogenen Ansteuerfunktionen für diese FF effektiver einzusetzen als die bisher behandelten ausführlichen Tabellen. Eine ausführliche Tabelle für ein JK-FF enthält z. B. für den Übergang Q

=

0

-

'Q=l

beide dafür möglichen Eingangsbelegungen für J und K

J=l, K OundJ=l,K=l. =

Eine reduzierte Tabelle für ein JK-FF faßt diese beiden Eingangsbelegungen zusammen, d. h. für den Übergang

Q

=

0

-

'Q

=

1 steht die

Eingangsbelegung J 1, K =

Damit ergibt sich für die bisher behandelten Flip-Flops

=

d.

folgende Gesamtübersicht:

19

264

Sequentielle Schaltungen

Automaten -

reduzierte Wahrheitstabelle

Schaltbild

(Beispiele)

Schaltfunktion

Q Q S R S R

C

0 0 1 1

n

Q



0 d 1 0 0 1 d 0

0 1 0 1

q'q

D

o o 0 i 1 0 1 1

0

D -

p-

q'q

'Q

=

R

1 0 1

S S

RQ

+ =

0

lQ

=

D

Q

=

CQ

+

VQ

+

CVD

=

CQ

+

TQ

+

TCQ

=

JQ

C V D

o o

0 0 0 0

D V p-

->

0 1 1 1 1

1 1 1 1 1 0 d d 0

1 0 1 1 1

Q Q 0 0 0 1 1 1

c-fc>

0 1

0

T C

0 0 1 0

q

1 1

Q'Q

J K

J

0 0

0 d

K

0 1 1 0 1 1

1 d d 1 d 0

C

p-

1

'Q

Bild 19.9.47 Reduzierte Wahrheitstabellen für wichtige Flip-Flop-Typen

KQ

19.9 Flip-Flops (FF), Bistabile Trigger

19.9.8

265

Konvertierung von Flip-Flop-Typen

Die

Umwandlung von Flip-Flop-Typen untereinander bezieht sich hier auf die Informationseingänge. Gleiche Betriebsweise (z. B. einflankengetriggerte bzw. MasterSlave-FF) wird jeweils bei beiden ineinander zu überführenden Flip-Flops vorausgesetzt. Diese Aufgabe der Umwandlung von Flip-Flops beschränkt sich auf die Synthese einer Kombinatorik K, die dem umzuwandelnden FF vorgeschaltet wird und die gewünschten Informationseingänge in die des gegebenen FF überführt. Ist z. B. ein RS-FF in ein JK-FF zu konvertieren, so läßt sich die Aufgabenstellung wie folgt darstellen: zu

J

entwerfende

Kombinatorik

K

K

gewünschtes Bild 19.9.48

~\

FF

Darstellung der Konvertierungsstruktur eines RS- in ein JK-FF

Die Synthese der Kombinatorik K im Bild 19.9.48 erfolgt über die Erstellung der Wahrheitstabelle zunächst für das gesuchte Flip-Flop (hier JK) und danach für das gegebene

Flip-Flop (hier RS):

gesucht

gegeben (e,p)

J

K

Q

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

0 1 0 0 1 1

1 0

S 0 d 0 0

R

d 1

0

0

1

d 0 d 1 1 0

S

=

JQ

K

0

Bild 19.9.49 Wahrheitstabelle und Ermittlung der Schaltfunktionen für die RS- in JK-FF-Konvertierung

R

=

KQ

19

266

Sequentielle Schaltungen

Automaten -

Mit den Ansteuerfunktionen für S und R ergibt sich folgende endgültige &

Schaltung:

"i

K

C J

Q &

~it> JK-FF

Bild 19.9.50

Schaltung des aus einem RS-FF konvertierten JK-FF (zweistufig taktzustandsgetriggert)

Bild 19.9.51 /l

Konvertierungstabelle für einige Flip-Flop-Typen

19.10

Schieberegister

267

D-FF

RS-FF RS-FF "1

Q "1

3-

D-FF

P-

JK-FF D R

P-

P-

P-

RS=0

Bild 19.9.51 /2 Konvertierungstabelle für einige Flip-Flop-Typen

19.10

Schieberegister

Schieberegister bestehen aus taktflanken- oder zweistufigen taktzustandsgetriggerten Flip-Flops. Je nach Anwendungsbereich des Schieberegisters werden diese FF auf unterschiedliche Weise zusammengeschaltet. Die häufigsten Schieberegister-Anwendungen sind: 1.

serielle

Eingabe

*

serielle

*

parallele Ausgabe, in Form eines Speicherregisters;

0-1-Folgen; 2.

parallele Eingabe

Ausgabe,

also Links- bzw. Rechtsschieben

von

19

268

Sequentielle Schaltungen

Automaten -

3. serielle 4.

Eingabe

parallele Eingabe



->

parallele Ausgabe, z. B. als Seriell/Parallel-Wandler; serielle Ausgabe,

z.

B. als Parallel/Seriell-Wandler.

Synthese eines seriellen Schieberegisters Entworfen werden soll je ein 3stufiges Schieberegister für das Rechtsschieben von 0-1Folgen auf der Basis von D-FF und JK-FF. Man geht zweckmäßig davon aus, daß sich 0 befinden. Am Informationseingang E soll zu Beginn alle FF im Initialzustand Qv konstant eine 1 anliegen, die mit drei Taktzyklen in allen drei D-FF bzw. JK-FF eingeschoben wird. Demzufolge ist mit den Spezifikationen =

Knoten:

Kodierung von z mit z mv

Zustandsvariable z^\

Z2

=

Q2> Zl Ql> Zo Q0, =

=

=

z

-2V

v=0

folgender Automatengraph zu entwerfen: C

/—x C

C Takt aktiv -

C

-

Takt inaktiv.

Bild 19.10.1

Automatengraph für ein dreistufiges serielles Schieberegister

Automatengraph ergeben vorgegebenen D-FF bzw. JK-FF. Aus diesem

sich die

Ansteuerungsfunktionen

z.

B. für die

19.10

269

Schieberegister

D2 zi zo 0 0 0 0 1 1 1 1

D,

Dn

>z„ iz,

0 0 1 1

0

0

1

0 0 0

0 0

0

1 1

0

0 1

J2 Kj J, Kj Jo Ko 1 1 1 1

d d d d

1 1

d d d d 0 0 0 0

0 0 d d

d d 1 1

1 1 d

d d 0 0

d

0 d d 1 1 d d 0 0 d d 1 1 d d 0

D2 =1 D, =z2 Q2 D0 =z, Q, 1, K2 0 J2 =

=

=

=

K,:

J,:

Jl

=

Z2

=

Q2

K[

h-

z2— —

Q2

Ko: 0

1

Jo

=

Zi

=

Qi

0

K0 z1 =

Bild 19.10.2 Ermittlung der Ansteuerfunktionen für die D- bzw.

=

Q1

JK-Eingänge der Schieberegister -FF

Die

Schaltungen des dreistufigen seriellen Schieberegisters mit den vorgegebenen FFTypen sind damit: Eingang E

D

z2

=

Q, D

*i-Q,

D

-

>

Bild 19.10.3 /l

>

Schaltung für ein dreistufiges serielles Schieberegister mit D-FF

zo

=

Qo Ausgang

19

270

Sequentielle Schaltungen

Automaten -

J

J c

~1-

Q

C

K

K

Bild 19.10.3 /2

;o

~l-

J

Q

C

Q

K

13-

~l

=

Qo

A

Ausgang

Schaltung für ein dreistufiges serielles Schieberegister mit JK-FF

I

J

I

£

Qi A=Qo t —>

Bild 19.10.4

Beispiel-Signalverlauf für das "Durchschieben" register (einflankengetriggerte FF)

einer "1" in einem seriellen

dreistufigen

Schiebe-

dargestellten Grundschaltungen von Schieberegistern werden für bereits die genannten unterschiedlichen Anwendungen modifiziert und mit der erforderlichen "Randelektronik" ergänzt, z. B. für den Wechsel der Rechts-/Links-Schieberichtung oder die parallele Ein- und Ausgabe usw. Diese im Bild 19.10.3

19.11 Entwurf

synchroner Zähler und Teiler

Synchrone Zähler und Teiler sind sequentielle Schaltungen, die Flip-Flops und mindestens eine Kombinatorik Kj enthalten. Kj generiert die zur Funktion der Zähler und Teiler erforderlichen Ansteuerfunktionen für die Signaleingänge dieser Flip-Flops. Die Takteingänge aller Flip-Flops sind mit einem für alle einheitlichen Systemtakt C beschaltet. Damit ist gewährleistet, daß alle Ausgangssignale der entworfenen Zähler- und Teilerschaltungen zueinander synchron sind, d. h. ihre Flanken haben bei Verwendung gleicher Flip-Flop-Typen immer eine einheitliche, schaltungstechnisch bedingte zeitliche Zuordnung zum Systemtakt C. Externe Signale E, die den Zähler- und Teilerbetrieb anwendungsspezifisch beeinflussen sollen, werden ebenfalls von dieser Kombinatorik Kf verarbeitet. In den meisten Anwendungsfällen sind die Flip-Flop-Ausgänge Qv (v 0,...,n-l) und die Ausgänge der Zähler und Teiler identisch. Ist aus realisierungstechnischen Gründen eine Umkodierung dieser an Qv anliegenden Signale für die Ausgabe erforderlich, muß dafür eine zusätzliche Kombinatorik Kg vorgesehen werden (siehe Bild 19.11.1). =

19.11 Entwurf synchroner Zähler und Teiler

271

D

C

r

----HJi

*. L"

i_

n-1

Bild 19.11.1 Blockschaltbild eines synchronen Zählers bzw. Teilers

liegen der im folgenden darzustellenden Realisierung von Zähler- und Teilerschaltungen die bereits im Abschnitt 19.2 behandelten Modelle für MOORE- bzw. MEALY- Automaten zugrunde. Sinngemäß gelten auch hier die bereits dort definierten Zusammenhänge zwischen den beteiligten Eingangs-, Zustands- und Ausgangsvariablen. Als Flip-Flop können in Zählern und Teilern grundsätzlich alle im Abschnitt 19.9 beschriebenen Typen eingesetzt werden, die nach Art ihrer Informationseingänge klassifiziert sind. Die Entscheidung, ob man z. B. JK-FF oder D-FF oder andere Typen zur Schaltungssynthese verwendet, hängt vordergründig von anwendungsbezogenen Vorgaben ab. Zu beachten ist aber, daß bezüglich ihrer Betriebsweise nur zweistufige taktzustandsgetriggerte (Master-Slave-FF) oder taktflankengerriggerte Flip-Flop-Typen eingesetzt werden dürfen. Das im folgenden vorgestellte Syntheseverfahren gilt gleichermaßen für Zähler und Teiler. Beide Schaltungstypen generieren mit ihrem Systemtakt C Binärwörter mit p (0,...,m-l), die im Falle eines Zählers die gewünschten Qn (QWi.i»-»Qm,w-»Qma) Zählkodes bilden, im Falle eines Teilers die erforderlichen Folgen der Folgen eines Ausgangssignale darstellen (Bild 19.11.2). Damit

=

=

19

272

Automaten

Sequentielle Schaltungen -

Q2Qt Qo 0 1 3

o o 0

2

0 1 1 1 1

1 1 1 1 0 0

0

0

6 7 5

_4_ 0

o o

0 1 1 0 0 1

Qo

Qi

1

0

2

I 6

0

a)

Q2QiQo 0

o 0 0

1 2

3 4 5 6

1_

0 1 1 1 1

0

0

o 0

0

0 1 0 1 0

Qo

1

0 1

0

t —>

0

b) Bild 19.11.2 Automatentabellen und Signalverläufe für einen Beispiel-Zähler und -Teiler a) Graykode-Zähler (n 3 bit) b) Teiler mit den Ausgängen 1 :2 Teilerverhältais 1 :4 1 :8 =

Die maximale Anzahl der in Zähler- bzw. Teilerschaltungen zu generierenden BinärQ, ist mit m 2" (p 0,...,m-l) gleich der maximalen Anzahl der inneren Zustände Zy dieser Automaten. Die Darstellung dieser inneren Zustände Zy erfolgt durch die Zustandsvariablen z„, von denen mindestens wörter

=

n

=

=

ldm, v (0,...,n-l)

(19.11.1)

=

benötigt werden. Jede Zustandsvariable zv ist schaltungstechnisch durch ein Flip-Flop repräsentiert. Im allgemeinen sind die Zustandsvariablen zv mit den Flip-Flop-Ausgängen Qv identisch. Werden für den zu entwerfenden Zähler bzw. Teiler nicht alle m 2n maximal möglichen inneren Zustände Zy ausgeschöpft, so gilt: =

n^

=

fld m],

(19.11.2)

19.11 Entwurf synchroner Zähler und Teiler

273

wobei das Symbol [Ï] für die nächste ganze Zahl £ i steht. Im folgenden sollen Entwürfe von synchronen Zähler- und Teilerschaltungen demonstriert werden:

Beispiel 1: Synchroner Vorwärtszähler, BCD-Kode, zyklisch p (0,...,5), JK-Flip-Flops =

Anzahl der benötigten Flip-Flops: Automatentabelle :

Z2 Zi Z0 0 0

1 1

0 0

0 0

£\ 17Z0

[7Z2 lz

0

0 0 0 1 1 0

1 0 1

0 1

n

|ld m] [ld 6"|

=

=

=

3

J2 *2 J. K, Jo Ko

0 1 1 0 0 0

0 0 0 1

0 1 d d

d d

0 0

J 0 0 0 0 1 1 1 0 d 1 1 d

d 1 d 1 d 1

K

d d 1

0

(19.11.3)

Die Werte Jv und K^, für die Ansteuerfunktionen ermittelt man für jeden Momentanzustand z^v unter Berücksichtigung des erforderlichen Folgezustandes 'z^v und mit Hilfe der reduzierten Wahrheitstabellen für den verwendeten Flip-Flop-Typ (siehe Bild 19.9.7.1 bzw. rechte Tabelle 19.11.3). Für den Momentanzustand z. B. Zo (z^z^zj ist vor Wirksamwerden des ersten Taktimpulses z„2 0. Im Folgezustand 'z« Z\ (ZajZ^Zf,) ist ebenfalls 1zoa z12 0, also darf FF2 mit dem ersten Taktimpuls nicht gesetzt werden, d. h. J2 0 und K, d. So ergänzt man Schritt für Schritt alle Werte für Jv und Kv in der Automatentabelle. Ermittlung der Ansteuerfunktionen JV,KV f(zv,'zv): =

=

=

=

=

=

=

=

=

z.

J2 ZA>

•M

Z2Zq

K2



(19.11.4)

z,)

Ki -z,,

Jo 1» K„ —

1 —

274

19

Sequentielle Schaltungen

Automaten -

Schaltung in Form der Automatenstruktur nach Bild

19.11.1:

&

z2A Q;

&

z,4 Q,

K,

zo^Qo

Bild 19.11.3

Beispielschaltung

eines

zyklischen

Automaten

Üblich ist jedoch die Darstellung

ordnung" der beteiligten Flip-Flops,

BCD-Vorwärtszählers \i

(0,...,5) in

Form eines MOORE-

Zähler- und Teilerschaltungen mit "Reihenanbeginnend mit dem Flip-Flop 0. Ordnung von links:

von

Qo

Q2

Qi &

&

HJ

-le K

=

P-

P-

i-

Bild 19.11.4 Beispielschaltung eines zyklischen BCD-Vorwärtszählers

u

=

(0,... ,5)

Die Inbetriebnahme von realisierten Zähler- und Teilerschaltungen erfordert unter Umständen Maßnahmen zur gezielten Initialisierung der Flip-Flops. Dazu kann ein POWER-ON-RESET

genutzt werden, das beim Zuschalten der

Versorgungsspannung zum Zähler oder Teiler ein gezieltes Setzen oder Rücksetzen der

Flip-Flops in den Anfangszustand oder in einen der gültigen Zustände des Zähl- bzw. Teilerzyklus veranlaßt. Dies geschieht meistens mittels asynchron wirkenden Setz-(S-) bzw. Rücksetz-(R-)-Eingängen, mit denen die verwendeten Flip-Flops ausgestattet sind oder für diese Zwecke ausgestattet werden müssen. Andererseits kann man auf eine solche Rücksetz-Aktivität verzichten, wenn man nach dem Zuschalten der Versorgungsspannung den sich dabei dann

zufällig

einstellenden Pseudo-Zustand, der nicht dem

19.11 Entwurf synchroner Zahler und Teiler

275

Zähl- oder Teilerzyklus angehört, akzeptiert und sich davon überzeugt, daß dieser Pseudo-Zustand letztlich mit dem folgenden oder mehreren folgenden Taktzyklen zum gewünschten Betriebszyklus führt. Dieses Verhalten läßt sich mit Hilfe eines vollständigen Zustandsgraphen mit den 2" max. möglichen inneren Zuständen der entworfenen Schaltung darstellen und m kontrollieren. =

J2 1

0 0

0 0

1

0 0 1 1

Bild 19.11.5

0

^2

Jo Ko

K,

=1

Z0 Z0 0 0 0 1 0 0 0 1

0 0 0 1

0 1 0 1 0 1 0 1

1 0 1

0

0

0 1 0 1 0 0 0 0

»I*

=1 1 0 1 0

1 1 0 0 0 1

1 0 1

0

0

1 2 3 4 5 0 7 0

Vollständige Automatentabelle und Zustandsgraph für die entworfene Zählerschaltung

Zu diesem Zweck ordnet man tabellarisch alle m 2" möglichen inneren Zustände zr die ermittelten Ansteuerfunktionen JV,KV i(Zy) und die sich mit jedem Systemtakt C ergebenden Folgezustände xZy entsprechend der in Bild 19.11.5 dargestellten Tabelle an. Für jeden Momentanzustand p, repräsentiert durch Zy, wird der Folgezustand 'p> re_ präsentiert durch lZy, ermittelt. Im Ergebnis erhält man den ebenfalls in Bild 19.11.5 dargestellten vereinfachten Zustandsgraphen und damit sowohl eine Bestätigung der gewünschten Funktionsweise der entworfenen Schaltung (hier den Zählerzyklus p (0.5)), als auch das Einschwingverhalten bezüglich der nicht für den Funktionsablauf vorgesehenen Pseudo-Zustände (hier z6 und z?). Im gegebenen Fall kann also der Anwender entscheiden, ob bei Inbetriebnahme dieses Zählers die möglicherweise auftretenden z6 und/oder z, toleriert werden können, oder ob bei Nichtakzeptanz dieser Zustände eine gezielte Anfangsinitialisierung zusätzlich vorgesehen werden muß, die z. B. über spezielle Setz- bzw. Rücksetzimpulse der beteiligten Flip-Flops realisierbar ist. Es folgen zwei weitere Beispiele für den Entwurf des gleichen synchronen Vorwärtszählers mit dem gleichen Zählzyklus p. (0,...,5) in BCD-Kode, aber unter Verwendung von =

=

=

=

276

19

Sequentielle Schaltungen

Automaten -

D-Flip-Flops (Beispiel 2) bzw. RS-Flip-Flops (Beispiel 3). Der Entwurfsablauf entspricht der in Beispiel 1 bereits ausführlich dargestellten Reihenfolge von der Automatentabelle bis hin zum vollständigen Zustandsgraphen, der die exakte Funktionsweise und das Einschwingverhalten auch aus den nicht beteiligten Zuständen ausweist. Beispiel 2: synchroner Vorwärtszähler, BCD-Kode, zyklisch p (0,...,5) D-Flip-Flops =

Anzahl der benötigten Flip-Flops: n

=

ridml rid6l =

=

3

Automatentabelle : 1 z

0 0

1 1

0 0

0 0

0 0

0 1 0 1

0 1 1 0

0 1

iz

D2 Dl Do

0 1 1 0 0 0

D

0 0 1 1

1

0 1 0 1 0

0 1 0 1

(19.11.5)

Ermittlung der Ansteuerfunktionen Dv fOzv): =

z-,

0 ^2 ZlZo """ Z2Z0

-L/l

Zl Zn

I

Z^ZiZq

(19.11.6)

D„

19. 11 Entwurf synchroner Zähler und Teiler

277

Schaltung: &

&

D

~&ir~

C

Bild 19.11.6

&

D

C

D

P^

C

Schaltung eines synchronen zyklischen Vorwärtszählers, BCD-Kode, u (0,...,5) =

Vollständige Automatentabelle: Z2

D _1. D0=zo D2 lz2 Zi ZQ Z1ZQ+Z2Z0 z1z0 + z2z1z0

0 0

0 0

z

=

0 0 1

0+0 0+0 0+0 1+0 0

1

0+1 0+0 0+1 1+0

0 0 0 1 1 0 1 1

0+0 0+1 1+0 0+0 0+0 0+0

1+0 0+0

0 1 1 0 0 0 1 0

1 0 1

0 1 0 1 0

1 2 3 4 5 0 7 4

(19.11.7)

Vollständiger Automatengraph:

©

o--©--© Beispiel 3: synchroner Zähler, BCD-Kode, zyklisch 0 bis 5, RS-Flip-Flops Anzahl der benötigten Flip-Flops: n

=

fid ml fid 61 =

=

3

(19.11.8)

19

278

Sequentielle Schaltungen

Automaten -

Automatentabelle : z„

iz.

z2 Zj z0 0 0 0 0 1 1

0

0 1 0 1 0 1

0 1 1 0 0

0 1 1 0 0 0

0 0 0 1 1 0

»J

s2 R2 Sx Rx SoRo 0 0 0 1 d

0

0 1 d 0 0 0

0 0 1

d 0 0

0 1 0 1 0 1

1 d d

z

'Z

S R

0 0 0 0 1 1 1 0 0 1 1 d

d 0 1

0

(19.11.9)

Ermittlung der Ansteuerfunktionen: Sv, R^, f(zv,'zv): =

r—ÎL

H

Z„

0

0

0

(19.11.10)

b2 ZjZq

m Sj

R-2

Z¡Zq

o

o

Ri

z2z,Zo

0

o

&o

z0

1

=

z^

=

Zo

o

Ro

Schaltung:

&

Bild 19.11.7

Schaltung eines synchronen zyklischen Vorwärtszählers, BCD-Kode, p. (0,...,5) =

S c R

19.11 Entwurf synchroner Zähler und Teiler

279

Vollständige Automatentabelle: zizo zizo

z2 Zj 0 0

0

0 0 0 0

0 0 0

1 1

1 0 0 0 1

So Ro

R.

R.

0 1 0 0 0

0 0 0 1 1 0 1 1

1 0 0

Z2Z1Z0

z,z„

0 1 0 0 0 0 0 0

0 0 0

!z, 'u 1 2 3 4 5 0 7 4

1

0 1 0 1 0 1 0

1 0

0 0 1

(19.11.11)

Vollständiger Automatengraph:

(19.11.12)

Beispiel 4: Es wird eine synchrone Zählerschaltung entworfen, die ständig wechselnd die Zyklen Po (0,...,nvl) (0,...,3) und p! (0,...,mrl) (0,...,5) im BCD Kode realisiert. Verwendet werden z. B. JK-Flip-Flops. Die max. Anzahl der inneren Zustandsvariablen n, d. h. der erforderlichen Flip-Flops ist für beide Zyklen jeweils =

=

n«[Mm,"|-[Mtfl

=

=

=

-

3.

Zur notwendigen Unterscheidung der beiden Zyklen p0 und [ix kann eine weitere innere

Zustandsvariable, d. h. ein weiteres Flip-Flop FFu (U

Unterscheidung) verwendet werden. Im Bild 19.11.8 ist die Funktionsweise eines solchen Zählers als schematischer Zustandsgraph dargestellt.

=

19

280

Sequentielle Schaltungen

Automaten -

z.B.Q„=l

Zyklus p,

G—© Zyklus

z.

p0

B.

Qu

=

QM ist der Ausgang des zusätzlichen Flip-Flop FFu zur Unterscheidung der Zählzyklen u0 und p.,.

0

Bild 19.11.8 Schematische Darstellung der Arbeitsweise einer Schaltung mit zwei alternierenden Zählzyklen po

=

(0,...,3)undu1 (0,...,5) =

Die inneren Zustände Zy,a und z^\ dieser Zählerschaltung kodiert man zweckmäßig so, daß die Ausgänge Qv der dafür benötigten drei Flip-Flops sofort als Zählerausgänge (Q2>Qi>Qo) verwendbar sind. Das Unterscheidungs- Flip-Flop FFu wird so in diese Schaltung einbezogen, daß es ein zusätzliches bit und zwar das führende im damit vierstelligen Zustandskode bildet. Dazu legt man z. B. fest, daß für den Teilzyklus p0 Qu 0 und für den Teilzyklus p! Qv 1 sein soll. Damit ergibt sich folgende Tabelle und das Prinzipschaltbild des Automaten: -

-

=

=

Q —i»

%

^o m Q. 0 1 2

3

8 9 10 11 12 13

Q2Q,Qo '0, 0 0 0 0

0 0

0 0 0 0

0 0 1

1 1

1 0 0

Q.'Q/Qo 0

1

1 1 0

0

1

0 0 0 0

0 1 0 1 0 1

0 0 0 1 1 0

0

0 1 0

0 0 0

1 1 0

0 0

1 0 1 0 1 0 1 0

J

K,

0 0 0 1

d d d d d d

J2 Kj J, K, JoKo 0 1

d d 0 1 d d 0 0

d 1 d 1 d 1 d 1 d 1

(19.11.13)

19.11 Entwurf synchroner Zähler und Teiler

281

FFU

<

&

n&

&

V Bild 19.11.10

Schaltung eines synchronen Zählers mit externem Signal E, für E 0 erfolgt Vorwartszählen zyklisch von 0...7, für E 1 Rückwärtszählen zyklisch von 6.3, BCD-Kode =

=

19. 11 Entwurf synchroner Zähler und Teiler

285

Automatengraph:

(19.11.18)

Beispiel 6;

Es wird eine Teilerschaltung entworfen, die aus dem Systemtakt C an vier Ausgängen Signale im Teilerverhältnis 1:4 mit folgender Konfiguration generiert (Viertaktsystem):

(19.11.19)

Qi

i

i

t —>

Für die Schaltungssynthese sollen JK-Flip-Flops verwendet werden, die mit der 1^0Flanke die aktuelle Information Q^v e {0,1} am Ausgang Qv bereitstellen.

Automatentabelle :

% Q3Q2Q1 Qo 0001 0010 0100 1000

'Qs'Q^Q.'Qo 0010

0100 1000 0001

J3 K3 J2 K, J1 Kl JoKo 0 d 0 d 1 d d 1

0 d 1 d d 1 0 d

1 d 0 0

d 1

d d

d

0 0 1

1 d d d

(19.11.20)

19

286

Automaten

Sequentielle Schaltungen -

Ermittlung der Ansteuerfunktionen JV,KV f(Qv,'Qv): =

Ä À

Qi 0

J3 Q2 K3 l

0

J. Qo K, l

J2 Qi K2=l

=

=

=

=

=

Jo Q3 Ko=l =

(19.11.21)

Schaltung:

-S^

Q.1

s j c K

PR

M-* voreinstellen Bild 19.11.11

Schaltung eines synchronen Viertaktsystems zur Erzeugung der Signale nach (19.11.19)

Die für die Schaltung im Bild 19.11.11 abzuleitende vollständige Automatentabelle und der dazugehörige Automatengraph verdeutlichen die notwendige Voreinstellung der FlipFlops bei Inbetriebnahme dieser Teilerschaltung.

19.11 Entwurf synchroner Zähler und Teiler

287

Vollständige Automatentabelle:

J3K3 Q3Q2Q, Q< Q2 1 0000 0 1 0001 0 1 0010 0 1 0011 0 1 4 5 6

_1_ 8 9 10

J4 12 13 14 15

J2*2

J.K,

Q.

Qo

0

0 1

0 0 0

1 1

0 1 1

0 1 0 0

0 1

0

1 1

0 0 0 0

1 0

0 0

0 0

1 1

1 1

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

0

0 0 0

0100 1 1

0

0

0

1

0110 Olli 1000 1001 1010 1011

1100 1101 1110 1111

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

1 1 1 1

Q,

0 0

0

1

1

1

0 1 1

0

1 1

1

1

0 1 1

0 1

1 1 1

0

JoKo 0. 1 0 0 0 0 0 0 0 0

Qo

1 1 1 1

0 2 4

1 1 1 1

8 10

4

0

1

1

0

0 0 0

0

1 0

0

1 1 0 1 0

1 2 5 4 1 2 1

0

(19.11.22)

Vollständiger Automatengraph:

© 10,

(19.11.23) Aus dem vollständigen Automatengraphen (19.11.23) ist ersichtlich, daß die Schaltung eine gezielte Initialisierung erfordert, da die sich beim Einschalten möglicherweise ergebenden Zustände Qo und Q15 bzw. Q5 und Q10 zur Blockierung im Zustand Qo bzw. Q5 und Q10 zum parasitären Zyklus Q5 Q10 führen würden. «

Beispiel 7: Es wird eine

Teilerschaltung entworfen, die aus dem Systemtakt C folgende Ausgangssignale Q2, Q„ Q0 generiert:

Automaten

Sequentielle Schaltungen

19

288

-

Qo (19.11.24)

r r t —>

Für die Schaltungssynthese sollen JK-Flip-Flops verwendet werden, die mit der 1^0Flanke die aktuelle Information QHV e {0,1} am Ausgang Qv bereitstellen. Automatentabelle :

V % Q2Q,Qo Q2 Q, Qo J2 K, 0

0

1

1 1 0

0 1 0 0 0 1

1 1 0 0 0 1

i 0 1 0 0 0

1 1 0

0 1 0

J, K,

1 d 1 d 0 0

d 0 1 d d 1

Jo Ko 0 1 d d d 0

(19.11.25)

Ermittlung der Ansteuerfunktionen JV,KV f(Qv,1Qv): =

* Qi

l

I

0

J2 =Q,Qo+QiQo Qi+Qo K2 =1

J, Q2 =

K,

=

Q2

=

(19.11.26)

Jo

=

Q2 Qi

Ko Q2 =

19.11 Entwurf synchroner Zähler und Teiler

289

Schaltung: &

Bild 19.11.12

J C

C

J C

K

K

K

J

Schaltung eines synchronen Teilers zur Erzeugung der Signale nach (19.11.29)

Vollständiger Automatengraph:

©

©

©

(19.11.27)

Werden die Pseudo-Zustände Q5 und Q« nicht toleriert, so ist bei Inbetriebnahme dieser Teilerschaltung eine Anfangsinitialisierung in z. B. Qx vorzusehen.

Beispiel 8: Teilerschaltung entworfen, die aus dem Systemtakt C folgende Ausgangssignale Qv Q0,Qi,Q2 generiert:

Es wird eine =

Qo Qv

Qj

(19.11.28)

r 4>

-r> 2

I 7

I 1

I 6

I 4

t —>

Signalverlauf (19.11.24) von Beispiel 7 tritt hier ein Zustand ün Qy (Qy2>Qy,i>Qy,o) Teilerzyklus zweimal auf, nämlich Qy Qx (0,0,1). Mit seinen beiden Folgezustanden Q2 bzw. Qg ergeben sich nur für FF0 und FFj eindeutige Ansteuerfunktionen, denn der Ausgang Q0 des FF0 muß beim Übergang von Q^v Q, 0 auf Q^o und auch von Q! 0 auf Q60 von 1 auf 0 schalten und der Ausgang Q, des FF! muß bei diesen gleichen Übergängen von 0 auf 1 schalten. Im Unterschied

zum

=

=

-

=

290

19

Sequentielle Schaltungen

Automaten -

Nicht eindeutig hingegen ist das Schaltverhalten des FF2 festzulegen, denn beim Übergang von Q12 auf Q^ müßte sein Ausgang Q, den Wert 0 beibehalten, beim Übergang von Q, 2 auf Q6 2 jedoch müßte Q2 von 0 auf 1 schalten (siehe "->" in (19.11.28)). Dieses Dilemma läßt sich z. B. mit den folgenden zwei Lösungswegen umgehen. *

Lösung

1

:

Es wird ein zusätzliches, viertes Flip-Flop FF3 verwendet. Damit erhöht sich die Anzahl der zu kodierenden Signalzustände von ehemals m 23 8 auf ni 24 16. Die ursprünglichen in (19.11.28) dargestellten Kodierungen für die zu erzeugenden Ausgangssignale Qv Q0,Qi,Q2 werden beibehalten. Einem der zum Konflikt führenden Zustände Qy Qx wird mit dem Signal Q3 zusätzlich eine Q^v = Qu = 1 angefügt. Damit entsteht an dieser Stelle das Kodewort =

=

=

=

=

=

q;=q9=(i,o,o,i).

Für den zweiten ursprünglichen Zustand Q,,

=

Qx muß Q^v Q, 3 =

=

0 sein (Signalverlauf

Oj in (19.11.29)). Die restlichen Belegungen für Q^ e {0,1} mit p 2,7,6,4,3 sind für die Funktion der Teilerschaltung nicht entscheidend. Beeinflussen können diese lediglich den Realisierungsaufwand für die Ansteuerfunktionen JV,KV f(Qv,'Q„) der von

=

=

Flip-Flops.

Hier sind diese Belegungen alle

z.

gleich 0 gesetzt worden.

B. i

i

Qo

Q, 7

Q3 7

Qu=o

J |

16

t -^

9\

t

|

6

(19.11.29)

—>

Qu=i

Die Teilerschaltung wird nun mit vier Flip-Flops und damit für die erweiterte Zustandsfolge mit dem laufenden Index p' entworfen.

19. 11 Entwurf synchroner Zähler und Teiler

291

Automatentabelle :

'Q \l

Q:3

q/q/q

Q2QtQo

\i

0 0 1 0 1 1 0

0

0 1 0 1

1

0 1 1 0 0 1

0 0 1 0 0 0 0

0 1 0 1 1 0 0

1 1

0 1 0 1

0

0 1 1 0 0 1 1

J3 K3 J2 Kj J. Kl Jo Ko 0 0 1 d 0 0 0

0 1 d 1 d d 0

Ermittlung der Ansteuerfunktionen JV,KV fiQv/Qv):

1 d d 1 d 1 d

d 1 d d 0 1 d

1

d 0 1 d d 0

(19.11.30)

=

Ä À Qi J3 Q2Qo K3=i

K2=Q,+Qo

J2 Q3+Qo =

=

Ji 1 K, Q2+Qo =

=

(19.11.31)

Jo=Q2+Qi Schaltung:

Ko=Q,

Q0

Q> &

J C

-|K

Pn

il Bild 19.11.13

Schaltung eines synchronen Teilers zur Erzeugung der Ausgangssignale nach (19.11.28)

P

19 Sequentielle Schaltungen Automaten

292

-

Vollständiger Automatengraph:

©

0—©

il3

(19.11.32) *

Lösung 2:

Teilerzyklus im gegebenen Beispiel nicht alle m 2" 8 inneren Zustände Qy belegt (p 0 und p 5 fehlen!), kann einer der beiden Zustände Qx entweder mit Qo oder Q5 kodiert werden. Damit läßt sich diese Schaltung mit drei Flip-Flops realisieren. Q0 und Q[ können unmittelbar als Ausgangssignale genutzt werden, während das dritte Signal, hier mit y bezeichnet, über eine zusätzliche Kombinatorik Kg als Funktion von Q2*, Qi und O, asynchron erzeugt werden muß. Diese Lösung spart im Vergleich zur 1. Variante ein Flip-Flop ein, ist aber nicht mehr streng synchron bezüglich der Ausgangssignale und erfordert eine zusätzliche Kombinatorik. Da der

=

=

I

I-1

Qi p*



v-

=

=

(19.11.33) 5

I 6

I 4

t

—>

t —>

19. 11 Entwurf synchroner Zähler und Teiler

293

FF

JV,KV

K,

Q*2,Qi.Qo.

Qt 2*

Q* i Kt

Eine der

ursprüngüchen Zustandsbelegungen Q[ ist hier durch Q5 (Q*i,2,Qu>Qi,o) (101) ersetzt. Q2* repräsentiert diese Änderung, p ist der laufende Index für die neue Folge der inneren Zustände Qy*. Die Teilerschaltung wird nun mit den drei Flip-Flops, FF0, F¥x, und FF2 für die Zustandsfolge mit dem laufenden Index p* entworfen. =

=

*

Automatentabelle:

Q*Q,Qo 1Q* Qi'Qo i

0 0 1 1 1 1 0

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

0

1

1

0

0

1

0 1 1 1 1

1 1

0 1 0

J* K*

Q,Qo

Jt Kt Jo Ko

0 1 d d d d 0

d 0 1 d 1 d 1

1

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

d 0 1 d d 0

(19.11.34)

Ermittlung der Ansteuerfunktionen J^K^' iiQSK'QD=

J2*=Qo

K2* QiQo

K^QZ+Qo

Ji

=

l

(19.11.35)

19

294

Automaten

Sequentielle Schaltungen -

0

0

Jo=Q2*+Qi

0

K^Q,

Ermittlung der Ausgabefunktion y g(Q2*,Qi,Q0) =

0

0

(19.11.36)

y

=

=

Q2*Qo+3*Q.

Q2'Qi + Q, Qo

Schaltung:

Q,

y(= Q2) &

h Bild 19.11.14

M l

Q

&

He K

Schaltung eines synchronen Teilers zur Erzeugung der Ausgangssignale nach (19.11.28)

Vollständiger Automatengraph:

Q*2.Qi,Qo

©y.Q,Q,

D—0-Xz)— (19.11.37)

19.12 Entwurf asynchroner Zähler und Teiler

19.12 Entwurf

295

asynchroner Zähler und Teiler

Asynchrone Zähler und Teiler sind sequentielle Schaltungen, die bezüglich der prinzipiellen Vorgehensweise, wie die bereits in Abschnitt 19.11 behandelten synchronen Schaltungen, entworfen werden: -

-

-

-

-

Ermittlung der benötigten Flip-Flop-Anzahl n,,^, Aufstellen der Automatentabelle, Ermittlung der Ansteuerfunktionen für die Flip-Flops, Erstellung der Schaltung, Ermittlung evtl. Initialisierungsbedingungen bei Inbetriebnahme der Schaltung.

Von den synchronen Schaltungen unterscheiden sich die

asynchronen aber dadurch, daß alle dem bisher als nicht beteiligten Flip-Flops von Systemtakt bezeichneten Eingangsdiesem C werden. C Von takt geschaltet Eingangstakt wird bei asynchronen Schaltungen immer das der des in jedoch Reihenfolge Zählens bzw. Teilens erste Flip-Flop geschaltet. Für die restlichen Flip-Flops werden nach Möglichkeit Taktsignale von geeigneten Ausgängen der vorgelagerten Flip-Flops verwendet. Dies hat zwei Vorteile: 1.

Nicht alle

Flip-Flops müssen für die maximale Frequenz des Eingangstaktes C

ausgelegt sein. 2.

Da nicht alle Flip-Flops mit dem Eingangstakt C schalten, vereinfachen sich die Ansteuerfunktionen für diese Fhp-Flops, d. h. die Kombinatorik Kj im Bild 19.12.1 reduziert sich in ihrer Komplexität im Vergleich zu den synchronen Zähler- und

Teilerschaltungen.

Das Blockschaltbild für asynchrone Zähler und Teiler läßt sich damit korrespondierend mit dem Bild 19.11.1 für synchrone Schaltungen wie folgt darstellen:

19

296

Sequentielle Schaltungen

-

Automaten

Bild 19.12.1 Blockschaltbild eines asynchronen Zählers bzw. Teilers (z. B. mit D-FF)

zwingend nur noch auf den Takteingang C0 des 0-ten Flip-Flop Die Taktsignale Cv für die restlichen beteiligten Flip-Flops werden im Entgeschaltet. definiert. Sie können für einige weitere Flip-Flops gleich dem Eingangstakt wurfsprozeß C sein, andere rekrutieren sich aus den Ausgängen zv Qv der vorgeschalteten FlipFlops. Daraus erklärt sich der asynchrone Charakter dieser Schaltungen. Die Polaritätswechsel der generierten Ausgangssignale können, bezogen auf den Eingangstakt, mit unterschiedlichen Verzögerungen erfolgen, die vor allem durch interne Signallaufzeiten in den beteiligten Flip-Flops und in der Kombinatorik Kj hervorgerufen werden. Bezüglich der möglichen externen Signale E, der Ausgabekombinatorik Kg und der zu verwendenden Flip-Flop-Typen gelten für asynchrone Schaltungen die gleichen Aussagen, wie sie eingangs im Abschnitt 19.11 für synchrone Schaltungen bereits getroffen wurden. Der Entwurfsablauf beginnt mit der Ermittlung aller erforderlichen Taktsignale für die beteiligten Flip-Flops der asynchronen Zähler- bzw. Teilerschaltungen. Im folgenden wird zur Erläuterung der dabei erforderlichen Vorgehensweise die Automatentabelle stufenweise für eine Beispielschaltung entwickelt. Es soll z. B. ein asynchroner Zähler entworfen werden, der zyklisch im BCD-Kode vorwärts von 0 bis 5 zählt. Für die Schaltung sollen JK-Flip-Flops verwendet werden, die jeweils mit der 1 0 Flanke die aktuelle Information QMV e {0,1} an ihrem Ausgang Qv bereitstellen. Die Anzahl der benötigten Flip-Flops ist n [ld ni] [Id 6] 3 (siehe (19.11.2)). Im Unterschied zur synchronen Schaltung werden hier die Momentanzustände Zy Qy und die Folgezustände lZy xQy in der Automatentabelle nicht neben-, sondern untereinander geschrieben, um ihre zeitliche Zuordnung zu den Taktsignalen übersichtlich darstellen zu Der Eingangstakt C ist

=

-

=

=

=

=

=

-

297

19.12 Entwurf asynchroner Zähler und Teiler

können. Der erste Zustand in der Zähler- bzw. Teilerfolge (Beispiel: p 0) ist also nochmals am Ende des Zyklus unter den letzten Zustand (Beispiel: p 5) zu schreiben: =

=

(19.12.1)

Flip-Flop FF0 (Ausgang Q0) wird, wie bereits erklärt, mit dem Eingangstakt C beschaltet. Diesen Takt C kann man sich zur Verdeutlichung der Arbeitsweise dieses asynchronen Zählers rechts neben der Spalte mit den Momentan- und Folgezuständen Q^ bzw. xQy von oben nach unten als Rechteckfolge darstellen. Dies geschieht so, daß jeweils die 1 0 -Flanken zeitlich zwischen den Zuständen Q^ des FF0 angeordnet werden. Mit diesen 1 0 -Flanken erfolgt also der Übergang vom jeweils gegebenen Momentanzustand QM in den Folgezustand 'Q^o des Flip-Flop FF0. Da man aus Effektivitätsgründen diesen Zeitverlauf des Eingangstaktes C nicht immer wieder in dieser Rechteckform darstellen wird, kann man die Schaltzeitpunkte für die Übergänge am FF0 mit Pfeilen symbolisch wiedergeben: Das

-

v

-

(19.12.2)

Diese symbolischen Pfeile in (19.12.2) sind für das Flip-Flop FF0 immer zwischen Momentanzustand Q^o und Folgezustand 'Q^o anzuordnen, unabhängig davon, ob Q^o einem Zustandswechsel unterliegt oder nicht. Damit ist für die Ermittlung der Taktsignale Cv folgender Zwischenstand erreicht:

C0

=

C iC

C

c =?

=9

de

Ac

(19.12.3)

19

298

Sequentielle Schaltungen

Automaten -

Weiter ordnet man in der Folgezustandstabelle (19.12.2) für Qx und Q2 überall dort Pfeile an, wo im zeitlichen Ablauf ein Zustandswechsel Q^v erfolgt, d. h. wo eine 1-0 -Flanke des Taktsignals Cv erforderlich ist, um den Ausgang Qv des FFV von 1 auf 0 bzw. 0 auf 1 umzuschalten:

(19.12.4)

Im nächsten Schritt ist festzustellen, ob das benötigte Taktsignal Cv vom Ausgang Q^ des vorhergehenden FF bzw. von einem weiteren davorliegenden FF-Ausgang zur Verfügung gestellt werden kann. Im konkreten Beispiel bestätigt sich, daß für die Umschaltung von Q^ Qxx 0 auf QiX 1 und von QiX 1 auf Q44 0 der Ausgang Q0 jeweils eine 1 0 -Flanke liefert. D. h. Q0 kann zur Taktung des FF1! verwendet werden. Damit ist C, Q0. Man erhält: =

=

=

=

=

-

=

(19.12.5)

und

Ac

c2=?

(19.12.6) Wichtig ist es jetzt, im zeitlichen Ablauf für Q(l i zwischen den Zuständen QM 0 und Q0-1 0 ebenfalls einen Pfeil zu vermerken, da Q0 zu diesem Zeitpunkt auch eine 1-0 -Flanke liefert, obwohl sie für das FFj eigentlich nicht erforderlich wäre. =

=

19.12 Entwurf asynchroner Zähler und Teiler

Man erhält also

299

endgültig für Cx:

(19.12.7)

Weiter ist zu prüfen, ob das erforderliche Taktsignal C2 vom Ausgang Qx des vorhergehenden Flip-Flop bereitgestellt wird. Dies ist nicht der Fall, da Qx zum Zeitpunkt des Zustandswechsels Q52 = 1 auf Q02 0 keine 1-0 -Flanke liefert. Also ist nun zu prüfen, ob C2 vom Ausgang Q0 bereitgestellt wird. Das ist so, nur muß 0 anordnen, da ihn Q0 liefert, man einen Taktpfeil auch zwischen Q, 2 = 0 und Q^ unabhängig vom Bedarf seitens C2! Damit ergibt sich: =

=

Q2QiQo 0

0

1 2 3 4 5

0

VW1 0 1 ^0 ff-

0

0

0

(19.12.8)

?< K 3"/

zeitlich extrem vergrößert dargestellte Verzögerung zwischen 1-0 -Taktflanke Cv und Ausgangssignal Qv

®

am

Flip-Flop FFV Bild 19.12.8 Ausschnitt 19.12.7

aus

den

Signalverläufen

des

asynchronen Rückwärtszählers (Binärteiler 1:2")

in Bild

Im Bild 19.12.8 sind, von oben nach unten dargestellt, die Taktsignale Cv, die Ausgangssignale Qv und in drei Stufen die Indexe p, der sich im Betrieb des Zählers einstellenden Zustände ÇL. Dabei sind in der ersten Zeile die Indexe p derjenigen Zustände Ql angegeben, die sich nach einer Verzögerungszeit tp der verwendeten Flip-Flops einstellen, in der zweiten Zeile diejenigen mit 2tF Verzögerungszeit usw. Die eingekreisten p sind die Indexe der unerwünscht auftretenden Zwischenzustände aufgrund der asynchronen

Betriebsweise.

19.12 Entwurf asynchroner Zähler und Teiler

309

Beispiel 4: asynchroner Vorwärtszähler, zyklisch, p (2,..., 10), Binärkode, JK-FF, =

1

-

0 -Taktflanke

Taktermittlung: n \\d m] \\d 9] 4 Q3Q2Qt Qo =

=

=

2 3 4 5 6 7 8 9 10

~2

0 0

0

0,

f oN

l

} 0

(19.12.23)

,Zo)

aus

der

Schaltung

die Boolesche

(19.14.3)

ermitteln. Die Booleschen Funktionen ermöglichen ihrerseits das Aufstellen der Automatentabellen, die neben den Folgezustandsvariablen lz >v alle Eingangsbelegungen zu

324

19

Automaten

Sequentielle Schaltungen -

2« (xtx-i>—>xt,ie—>xtft)un^ Momentanzustandsvariablen z^v enthalten. Für einfache Schaltungen mit z. B. nur einer Rückführung und damit einer Zustandsvariablen, kann diejenige Eingangsbelegung x,., für die am Ausgang der Schaltung ein ständiger Wechsel zwischen 0 und 1 entsteht, mühelos aus der Automatentabelle abgelesen werden. Für umfangreichere Schaltungen empfiehlt sich die zusätzliche Verwendung des Automatengraphen, der bei angenommener Widerspruchsfreiheit ohne Eigenschleifen in den Knoten dargestellt werden kann. An einem Beispiel wird im folgenden die Stabilitätsanalyse einer Schaltung nach dieser =

Schnittmethode demonstriert. Die im Bild 19.14.2 dargestellte Schaltung sei gegeben. & Bild 19.14.2

Schaltung mit einer Rückführung

Für den Schnitt des Rückkopplungskreises gibt es hier zwei Möglichkeiten, die zwar zu unterschiedhchen Automatengraphen, aber zum gleichen Ergebnis bezüglich der Stabilitätsaussage führen.

Variante 1

Variante 2

&

&

+

4>

Bild 19.14.3 Resultierende kombinatorische Schaltung nach dem Schnitt im Rückkopplungszweig in zwei Varianten

Im weiteren ermittelt man die Schaltfunktion für 'z tabellen für beide Varianten auf.

Variante 1 Z= =

lZ=

(z+x1)x0 An T

^

fiz.x^x,,) und stellt die Automaten-

Variante 2

Xj'U+Xn) 'z= x1-(zx0 + zx0)

ZXj-fXo ^

=

1

+

zx1x0 0

1^^)

Z=X,+

Z

X0

+

ZXo

(19.14.4)

19.14

Stabilitätsuntersuchungen von rückgekoppelten digitalen Schaltungen mittels Schnittmethode

325

Aus den Automatentabellen ist zu erkennen, daß die Übergänge von 0 nach 1 und zurück 1 nach 0 für den inneren Zustand z bzw. 'z für die gleiche Eingangsbelegung x, 1 und Xo 0 (Zeilen e 4,5) erfolgen. Damit ist diejenige Eingangsbelegimg x