IV. Digitale Schaltungen und Systeme - Universität...

26
A. Thiede Elektronik für den Maschinenbau 84 IV. Digitale Schaltungen und Systeme Trotz einiger immanenter Vorteile der Analogtechnik wie z.B. der geringeren Komplexität der Schaltungen ( typisch einige wenige bis einige hundert Transistoren ), der einfachen Kopplung an die analoge Außenwelt und dem Erreichen sehr hoher Frequenzen ( heute bei Verstärkern bis über 100 GHz ), erleben wir seit Jahren einen Trend zur Digitalisierung in verschiedensten Anwendungen. Die hierfür verantwortlichen Vorteile der Digitaltechnik sind vor allem die Möglichkeit der Datenregeneration, die guten Speichermöglichkeiten und die durch die Programmierbarkeit erreichbare hohe Flexibilität. Wir wollen uns daher im folgenden mit einigen Grundbegriffen der Digitaltechnik vertraut machen. 1. Logische Grundschaltungen 1.1. Logik-Beschreibung Bevor wir uns einigen logischen Grundschaltungen zuwenden können, müssen wir zunächst Möglichkeiten zur mathematischen Beschreibung logischer Funktionen kennenlernen. Bild IV.1 zeigt die Realisierung der Und-Funktion AND, die wir künftig mit " " kennzeichnen wollen, mit Hilfe der Reihenschaltung zweier Schalter, wobei A=1 bedeutet der Schalter A ist geschlossen und A=0 entsprechend für den offenen Schalter steht. Die Lampe brennt also, d.h. Y=1, genau dann, wenn A und B geschlossen, d.h. 1 sind. In gleicher Weise kann, wie in Bild IV.II gezeigt, die Oder-Funktion OR, die wir mit "+" bezeichnen wollen, durch die Parallelschaltung zweier Schalter realisiert werden. Hier brennt die Lampe genau dann, wenn A oder B geschlossen sind, was natürlich den Fall einschließt, dass beide Schalter geschlossen sind. Eine weitere wichtige logische Grundfunktion ist die Verneinung NOT, als Inversion oder Negation bezeichnet und mit " " gekennzeichnet. Sie ließe sich entsprechend Bild IV.3 realisieren. Die Lampe brennt, d.h. Y=1, genau dann, wenn der Schalter geöffnet, also x=0 ist. Bild IV.1: Schaltfunktion für logisches AND Bild IV.2: Schaltfunktion für logisches OR Bild IV.3: Schaltfunktion für logisches NOT Da sich logische Grundfunktionen als Schaltfunktionen darstellen lassen, wird dieses relativ junge Gebiet der Algebra als Schaltalgebra oder Boolsche Algebra bezeichnet. 1.2. Rechenregeln In der Boolschen Algebra gelten Kommutativität und Assoziativität wie gewohnt für beide Operationen A B B A + = + AB BA = Kommutativ IV.1 Y AB = A B Y x = x Y A B = + A B

Transcript of IV. Digitale Schaltungen und Systeme - Universität...

Page 1: IV. Digitale Schaltungen und Systeme - Universität Paderborngroups.uni-paderborn.de/hfe/lehre/Script_elt_4.pdf · Transistor-Transistor-Logik. Hierfür sind Multi-Emitter-Transistoren

A. Thiede Elektronik für den Maschinenbau

84

IV. Digitale Schaltungen und Systeme Trotz einiger immanenter Vorteile der Analogtechnik wie z.B.

• der geringeren Komplexität der Schaltungen ( typisch einige wenige bis einige hundert Transistoren ),

• der einfachen Kopplung an die analoge Außenwelt und • dem Erreichen sehr hoher Frequenzen ( heute bei Verstärkern bis über 100 GHz ),

erleben wir seit Jahren einen Trend zur Digitalisierung in verschiedensten Anwendungen. Die hierfür verantwortlichen Vorteile der Digitaltechnik sind vor allem

• die Möglichkeit der Datenregeneration, • die guten Speichermöglichkeiten und • die durch die Programmierbarkeit erreichbare hohe Flexibilität.

Wir wollen uns daher im folgenden mit einigen Grundbegriffen der Digitaltechnik vertraut machen.

1. Logische Grundschaltungen

1.1. Logik-Beschreibung Bevor wir uns einigen logischen Grundschaltungen zuwenden können, müssen wir zunächst Möglichkeiten zur mathematischen Beschreibung logischer Funktionen kennenlernen. Bild IV.1 zeigt die Realisierung der Und-Funktion AND, die wir künftig mit " ⋅ " kennzeichnen wollen, mit Hilfe der Reihenschaltung zweier Schalter, wobei A=1 bedeutet der Schalter A ist geschlossen und A=0 entsprechend für den offenen Schalter steht. Die Lampe brennt also, d.h. Y=1, genau dann, wenn A und B geschlossen, d.h. 1 sind. In gleicher Weise kann, wie in Bild IV.II gezeigt, die Oder-Funktion OR, die wir mit "+" bezeichnen wollen, durch die Parallelschaltung zweier Schalter realisiert werden. Hier brennt die Lampe genau dann, wenn A oder B geschlossen sind, was natürlich den Fall einschließt, dass beide Schalter geschlossen sind. Eine weitere wichtige logische Grundfunktion ist die Verneinung NOT, als Inversion oder Negation bezeichnet und mit " " gekennzeichnet. Sie ließe sich entsprechend Bild IV.3 realisieren. Die Lampe brennt, d.h. Y=1, genau dann, wenn der Schalter geöffnet, also x=0 ist. Bild IV.1: Schaltfunktion für logisches AND Bild IV.2: Schaltfunktion für logisches OR Bild IV.3: Schaltfunktion für logisches NOT Da sich logische Grundfunktionen als Schaltfunktionen darstellen lassen, wird dieses relativ junge Gebiet der Algebra als Schaltalgebra oder Boolsche Algebra bezeichnet.

1.2. Rechenregeln In der Boolschen Algebra gelten Kommutativität und Assoziativität wie gewohnt für beide Operationen A B B A+ = + A B B A⋅ = ⋅ Kommutativ IV.1

Y A B= ⋅

A B

Y x=x

Y A B= +

A

B

Page 2: IV. Digitale Schaltungen und Systeme - Universität Paderborngroups.uni-paderborn.de/hfe/lehre/Script_elt_4.pdf · Transistor-Transistor-Logik. Hierfür sind Multi-Emitter-Transistoren

A. Thiede Elektronik für den Maschinenbau

85

( ) ( )A B C A B C+ + = + + ( ) ( )A B C A B C⋅ ⋅ = ⋅ ⋅ Assoziativ IV.2 Anders als z.B. bei der Addition und Multiplikation gilt auch die Distributivität für beide Operationen

( ) ( ) ( )A B C A B A C+ ⋅ = + ⋅ + ( )A B C A B A C ⋅ + = ⋅ + ⋅ Distributiv IV.3 Besonders wichtig für die Umformung von logischen Ausdrücken ist das Gesetz von de Morgan A B A B+ = ⋅ A B A B⋅ = + Gesetz von de Morgan IV.4 Als neutrale Elemente werden die Elemente einer Algebra bezeichnet, die bezogen auf eine bestimmte Operation jedes beliebige Element x unverändert lassen. Beispiele wären die 0 bezüglich der Addition oder die 1 bezüglich der Multiplikation. In der Boolschen Algebra gilt x 0 x+ = x 1 x⋅ = neutrale Elemente IV.5 Weitere Rechenregeln sind x 1 1+ = x 0 0⋅ = IV.6 x x x+ = x x x⋅ = IV.7 x x 1+ = x x 0⋅ = IV.8

xx = IV.9 Bei häufiger Anwendung werden diese Rechenregeln natürlich sehr schnell zur Selbstverständlichkeit. Auch der gelegentliche Anwender kann sie sich aber mit Hilfe einfacher logischer Aussagen stets sehr schnell wieder vergegenwärtigen. So überprüft man z-B. die beiden Umformungen nach de Morgan aus Gleichung IV.4 mit Hilfe folgender Aussagen:

• Die Aussage, er fährt nicht einen Mercedes oder einen BMW, ist gleichbedeutend mit der Aussage, er fährt nicht einen Mercedes und er fährt nicht einen BMW.

• Die Aussage, er fährt nicht einen Mercedes und einen BMW, ist gleichbedeutend mit der Aussage, dass er nicht Mercedes oder nicht BMW fährt. Hierbei ist zu beachten, dass beide Aussagen nicht ausschließen, dass er weder Mercedes noch BMW fährt.

1.3. Logik-Funktionen Bild IV.4 zeigt die Symbole einiger wichtiger logischer Funktionen. Neben den bereits eingeführten Grundfunktionen AND, OR und NOT verwendet man häufig auch die negierte Und-Funktion NAND und die negierte Oder-Funktion NOR. Die Negation wird im logischen Symbol durch den Punkt am Ausgang kenntlich gemacht. Die Identitäts-Funktion gibt die am Eingang einliegende Größe stets unverändert wieder aus, führt also lediglich zu einer Verzögerung. Interessant ist die exklusive, also ausschließliche Oder-Funktion EXOR, die im Unterschied zum gewöhnlichen OR als ein "entweder oder" zu verstehen ist, also den Fall, dass sowohl A=1 als auch B=1 ausschließt bzw. in diesem Fall Y=0 ergibt. Sie wird mit ⊕ gekennzeichnet. Offensichtlich ergibt die EXOR-Funktion immer dann 1, wenn die Eingänge A und B voneinander verschieden sind. Die Negation hiervon wird als Äquivalenz bezeichnet. Hier wird Y genau dann 1, wenn beide Eingänge gleich, also beide 1 oder beide 0 sind. AND BAY ⋅= OR BAY += Ident 1Y = NAND BAY ⋅= NOR BAY += NOT AY = XOR BABABAY ⋅+⋅=⊕= Equiv BABABAY ⋅+⋅=⊕= Bild IV.4: Symbole wichtiger logischer Funktionen

& ≥1 1

=1

=1

& ≥1 1

Page 3: IV. Digitale Schaltungen und Systeme - Universität Paderborngroups.uni-paderborn.de/hfe/lehre/Script_elt_4.pdf · Transistor-Transistor-Logik. Hierfür sind Multi-Emitter-Transistoren

A. Thiede Elektronik für den Maschinenbau

86

Alle logischen Funktionen lassen sich entweder nur durch AND und NOT oder nur durch OR und NOT ausdrücken. Die Aussage ist von einiger praktischer Relevanz, da in vielen Schaltkreisfamilien, auf die im nächsten Abschnitt genauer einzugehen sein wird, nicht alle Funktionen verfügbar sind. Für die Umformung sind das Gesetz von de Morgan sowie die doppelte Negation entsprechend Gleichungen IV.4 und 9 sehr wichtig, wie im folgenden Beispiel verdeutlich wird.

( ) ( ) ( ) ( )A B A B A B A B A B A B A B A B A B A B A B⊕ = ⋅ + ⋅ = ⋅ ⋅ ⋅ = + ⋅ + = + ⋅ + = + + + IV.10

Als Schaltung ergibt sich entsprechend Gleichung IV.10

BA⊕ Bild IV.5: Realisierung der EXOR-Funktion mit 5 NOR- bzw. NOT-Gattern Diese algebraische Umformung führt aber nicht unbedingt auf die mit minimalem Aufwand mögliche Realisierung in Bild IV.6. BA⊕ Bild IV.6: Realisierung der EXOR-Funktion mit 4 NOR-Gattern Umgekehrt gelingt es sehr einfach, auf algebraischem Wege nachzuweisen, dass diese minimale Lösung tatsächlich mit dem Ergebnis von Gleichung IV.10 übereinstimmt, also ebenfalls die EXOR-Funktion realisiert.

( ) ( ) ( ) ( )( ) ( )

A+A+B+B+A+B A+A B+B+A B A+A A B + B+A B+B

1 A B + B+A 1 A B+B+A

= ⋅ ⋅ = ⋅ + ⋅ =

⋅ + ⋅ = + IV.11

1.4. Logikfamilien Unter einer Logikfamilie versteht man die Gesamtheit der als Bausteine verfügbaren logischen Funktionen, die in einer bestimmten Schaltungstechnik und Technologie gefertigt wurden. Wir werden hier nur auf die heute wichtigsten eingehen. a) Transistor-Transistor-Logik (TTL): Die ersten integrierten Schaltungen basierten auf Bipolartransistoren. Bild IV.7 zeigt ein NAND-Gatter in Transistor-Transistor-Logik. Hierfür sind Multi-Emitter-Transistoren notwendig, die sich jedoch leicht herstellen lassen. Wird einer der Eingänge auf das tiefe (engl. Low) Potential gelegt, so fließt wie rot

≥1

≥1 1

1

≥1

A

B

≥1

≥1

≥1

A

B

≥1

Page 4: IV. Digitale Schaltungen und Systeme - Universität Paderborngroups.uni-paderborn.de/hfe/lehre/Script_elt_4.pdf · Transistor-Transistor-Logik. Hierfür sind Multi-Emitter-Transistoren

A. Thiede Elektronik für den Maschinenbau

87

markiert ein Basis-Emitterstrom aus dem Eingang heraus. Der nachfolgende Transistor sperrt und der Ausgang wird auf ein hohes Potential (engl. High) von etwa UCC aufgeladen. Wird jedoch an beide Eingänge High angelegt, so muss der Strom wie grün markiert über die Basis-Kollektor-Diode fließen, öffnet den nachfolgenden Transistor und der Ausgang erreicht nahezu das Masse-Potential, ist also Low. Das entspricht aber genau der negierten Und-Funktion. Ferner sind in Bild IV.7 die typische Betriebspannung sowie die zulässigen Low- und High-Pegel für die Ein- und Ausgänge angegeben. UCC = 5 V ULE = 0 ... 0.7 V ULA = 0 ... 0.5 V UHE = 2 ... 5 V UHA = 2.4 ... 5 V

Es sei darauf hingewiesen, dass die am Ausgangs zu fordernden Pegelbereiche stets kleiner sein müssen, als der zugelassene Eingangspegelbereich. Der als Differenz entstehende Sicherheitsbereich wird als Rauschabstand (engl. Noise Margin) bezeichnet.

Bild IV.7: NAND-Gatter in TTL In dieser Schaltungstechnik sind nach wie vor verschiedenste, auch komplexe logische Funktionen verfügbar. Nachteile dieser Logikfamilie sind

• der relativ hohe Aufwand in Form zahlreicher Transistoren und schwer integrierbarer Widerstände • die relativ hohe Gatterverzögerung im Bereich von 2 ns ... 10 ns aufgrund der Diffusionskapazität • sowie die mit 2 mW ... 20 mW pro Gatter relativ hohe Verlustleistung.

Die Geschwindigkeit lässt sich steigern, wenn die Basis-Kollektor-Diode mit einer Schottky-Diode überbrückt wird, so dass die Diffusionskapazität dieses Übergangs unwirksam ist. In diesem Fall spricht man von Schottky-TTL. b) Emitter-gekoppelte-Logik (ELC): Bild IV.8 zeigt einen Inverter, also ein logisches NOT, in ECL sowie die typischen Versorgungsspannungen und Pegelbereiche. Diese Logikfamilie basiert auf dem Stromschaltprinzip, d.h. Ströme werden nicht ab- sondern nur zwischen zwei symmetrischen Zweigen umgeschaltet. UCC = 0 V, UCE = -5.2 V ULE = -1.850 ... –1.475 V ULA = -1.850 ... –1.650 V UHE = -1.105 ... –0.810 V UHA = -0.960 ... –0.810 V A Bild IV.8: Inverter in ECL

A B

UCC

BA ⋅

UCC

UEE

A A

Page 5: IV. Digitale Schaltungen und Systeme - Universität Paderborngroups.uni-paderborn.de/hfe/lehre/Script_elt_4.pdf · Transistor-Transistor-Logik. Hierfür sind Multi-Emitter-Transistoren

A. Thiede Elektronik für den Maschinenbau

88

Dazu wird die am Eingang erkennbare Differenzverstärkerstufe genutzt. Bei dem abgebildeten Inverter wird intern mit Hilfe zweier Dioden eine Referenzspannung erzeugt und über einen Sourcefolger auf den rechten Eingang des Differenzverstärkers gelegt. Typischer ist, dass an den zweiten Eingang der Differenzstufe jeweils die ja ebenso verfügbaren inversen Signale angelegt werden. Liegt der Eingang A auf High, also oberhalb der Referenz, so fließt der Strom durch den linken Zweig. Das Potential am Kollektor des linken Transistors fällt aufgrund des Spannungsabfalls am Widerstand und über einen weiteren Sourcefolger gelangt dieses Low an den Ausgang A . Der rechte Zweig des Differenzverstärkers führt dagegen nur wenig Strom, der Spannungsabfall am Widerstand ist gering und das Potential am Kollektor hoch, so dass über den entsprechenden Sourcefolger der Ausgang A auf High liegt. Nachteilig sind in dieser Logikfamilie

• der hohe Aufwand insbesondere für einfache Grundgatter und • die hohe Verlustleistung pro Gatter.

Wichtige Vorteile sind • der z.T. sehr geringe Aufwand für komplexere Funktionen wie EXOR, Addierer, Flip-Flops,

Frequenzteiler, Mux, Demux, usw., • die aufgrund des Stromschaltprinzips erreichbaren sehr geringen Gatterverzögerungszeiten von

weit unter 1 ns bis hin zu wenigen Picosekunden und • die aus dem differentiellen, also balancierten Aufbau resultierende Unanfälligkeit gegenüber

Störungen, die ja stets auf beide Signale gleichzeitig wirken und damit auf das Verhalten des nachfolgenden Differenzverstärkers keinen Einfluss haben.

Bild IV.9 zeigt, wie mit gegenüber dem Inverter kaum erhöhten Aufwand die EXOR-Funktion in einem ECL-Gatter realisiert werden kann, während man hierfür in anderen Schaltungstechniken, man vergleiche mit Bild IV.6 , mindestens 4 Gatter und damit auch 4 Gatterverzögerungszeiten benötigt. Hierzu werden die Ströme in einfach übereinander angeordneten Stromschaltern entsprechend der gewünschten logischen Funktion mehrfach verzweigt. Bild IV.9: EXOR-Gatter in ECL ECL-Gatter werden in Si und neuerdings insbesondere auch SiGe-Technologie heute vor allem für Anwendungen mit höchsten Geschwindigkeitsanforderungen eingesetzt, z.B. in Datenübertragungsstrecken mit Übertragungsraten von 40 Gbit/s und mehr. Eine ähnliche Schaltungstechnik lässt sich auch mit FET aufbauen, sie wird dann entsprechend Source-gekoppelte FET-Logik (SCFL) genannt.

UCC

UEE

B

B

A A

A B⊕

A B⊕

Page 6: IV. Digitale Schaltungen und Systeme - Universität Paderborngroups.uni-paderborn.de/hfe/lehre/Script_elt_4.pdf · Transistor-Transistor-Logik. Hierfür sind Multi-Emitter-Transistoren

A. Thiede Elektronik für den Maschinenbau

89

c) Enhancement-Enhancement-MOS-Logik (EE-MOS):

Bild IV.10 zeigt das Prinzip der EE-MOS-Logik. Der obere Transistor fungiert als aktive Last. Ist einer der Eingänge High, so schaltet der entsprechende Transistor ein, der Strom durch die aktive Last wird gegen Masse abgeleitet und der Ausgang ist Low. In diesem Beispiel haben wir also ein NOR-Gatter vor uns. Vorteile dieser Logikfamilie sind

● der geringe Aufwand und die damit mögliche kleine Chipfläche,

● die einfache Herstellbarkeit, da ja nur n-Kanal-Enhancement-FET, also lediglich ein Bauelemente-typ, benötigt werden sowie

Bild IV.10: NOR-Gatter in EE-MOS ● die geringe Verlustleistung pro Gatter Nachteilig ist dagegen,

• dass der High-Pegel gegenüber UCC um die Schwellspannung des Lasttransistors abgesenkt ist, da dieser Transistor ja sperrt, sobald sein Source und damit der Ausgang dieses Potential erreicht hat und

• dass aufgrund des relativ hohen Ausgangswiderstandes bzw. der geringen Treiberstärke die Eingangskapazitäten der folgenden Gatter nur relativ langsam umgeladen werden können.

d) Enhancement-Depletion-MOS-Logik (ED-MOS):

Bild IV.11 zeigt das Prinzip der ED-MOS-Logik. Als aktive Last wird hier ein Depletion-Transistor verwendet. Sein Gate kann direkt mit dem Source verbunden werden und es fließt solange Strom, bis UDS=0 geworden ist. Es wird also der ideale High-Pegel UDD erreicht. Dafür wird jedoch eine zusätzliche Dotierung nötig, um neben dem n-Kanal Enhancement-FET jetzt auch noch den n-Kanal Depletion-FET zu realisieren. Alle weitern Vor- und Nachteile entsprechen denen der EE-MOS-Logik.

Bild IV.11: NOR-Gatter in ED-MOS e) Komplementäre MOS-Logik (CMOS):

Die für CMOS gültigen Betriebspannungswerte und Pegel gelten auch für die EE-MOS- und die ED-MOS-Familie. UDD = 5 V ULE = 0 ... 0.8 V ULA = 0 … 0.1 V UHE = 2 ... 5 V UHA = 4.9 ... 5 V Aktuell wird jedoch die Betriebspannung auf 3.3 V bzw. sogar 1.5 V und noch darunter reduziert. Dies wird zum einen durch die Miniaturisierung und damit sinkenden Durchbruchspannungen erzwungen, bietet für mobile Geräte jedoch auch den Vorteil, dass bereits die Spannung von zwei oder einer 1.5 Zelle ausreicht.

Bild IV.12: NOR-Gatter in CMOS

UDD

A B

A+B

UDD

A B

A+B

UDD

A B

A+B

Page 7: IV. Digitale Schaltungen und Systeme - Universität Paderborngroups.uni-paderborn.de/hfe/lehre/Script_elt_4.pdf · Transistor-Transistor-Logik. Hierfür sind Multi-Emitter-Transistoren

A. Thiede Elektronik für den Maschinenbau

90

Bild IV.12 zeigt das Prinzip der CMOS-Logik. Sie zeichnet sich insbesondere dadurch aus, das kein statischer Strom fließt und also auch nur im Schaltmoment eine geringe elektrische Verlustleistung auftritt. Erreicht wird dies durch jeweils einen aus p-Kanal-Enhancement-FET bestehenden Strompfad, der zur positiven Betriebsspannung geschaltet wird, und einen aus n-Kanal-Enhancement-FET bestehenden Strompfad der zur Masse geschaltet wird. Die Verdrahtung ist so vorzunehmen, dass nie beide Pfade gleichzeitig leiten. In der Regel sollte aber jeweils ein Pfad leiten. Sind beide Pfade gesperrt, so ist der Ausgang hochohmig, das Gatter ist faktisch wirkungslos und man spricht von einem dritten Zustand, dem Tristate. Dieser wird z.B. benötigt, wenn mehrere Geräte über die gleiche Verbindung, später werden wir diese Bus nennen, kommunizieren. Die Vorteile der CMOS-Logik sind

• dass keine statische Verlustleistung auftritt, so dass neben dem Flächenaspekt nun auch aus der Sicht der maximal abführbaren Wärme höchste Integrationsgrade möglich werden,

• der Aufwand an Verdrahtung und Chipfläche gering ist und • ideale High- und Low-Pegel erreicht werden.

Nachteilig sind • die relativ komplexe Technologie, da sowohl n- als auch p-Kanal-FET hergestellt werden müssen,

die heute jedoch sehr gut und damit kostengünstig beherrscht wird, und • auch hier aufgrund des relativ hohen Ausgangswiderstandes bzw. der geringen Treiberstärke die

relativ langsame Umladung der Eingangskapazitäten der folgenden Gatter, wobei trotzdem durch die gerade in dieser Technologie am weitesten fortgeschrittene Miniaturisierung inzwischen sehr hohe Schaltgeschwindigkeiten erreicht werden.

Ursprünglich wegen der geringen Verlustleistung lediglich für Armbanduhren und Taschenrechner entwickelt, ist CMOS heute die am besten beherrschte und damit preiswerteste Technologie für integrierte Schaltkreise. Sie ermöglicht aktuell Durchmesser der Halbleiterscheiben (engl. Wafer) bis zu 30 cm, kleinste Abmessungen auf dem Chip im Bereich 200 nm, Integrationsgrade von mehr als 109 FET pro Chip und Taktfrequenzen über 1 GHz. Mit einem Anteil von mehr als 90 % dominiert diese Technologie klar den Markt der integrierten Schaltkreise.

2. Kombinatorische Automaten Nachdem wir Möglichkeiten der Realisierung von Schaltfunktionen in integrierten Schaltkreisen kennengelernt haben, wollen wir uns nun zunächst logischen Schaltungen zuwenden, deren Ausgänge lediglich von der jeweiligen Belegung der Eingänge mit 0 oder 1 abhängen. Jede Änderung am Eingang ergibt gegebenenfalls sofort, abgesehen von der stets auftretenden Verzögerung durch die Gatter, eine Änderung am Ausgang. Solche Automaten ohne Gedächtnis heißen kombinatorische Automaten.

2.1. Darstellung Jede Schaltfunktion SF ist im allgemeinsten Fall eine Abbildung eines Vektors von n Eingangsgrößen x auf einen Vektor von m Ausgangsgrößen y.

( )SF: f x y= x = {x0,...,xn} y = {y0,...,ym} IV.12

xn-1 ... x1 x0 m h 0 ... 0 0 m0 h0 0 ... 0 1 m1 h1 0 ... 1 0 m2 h2 0 … 1 1 m3 h3 . . .

. . . . . .

. . . . . .

. . . 1 … 1 1 m2

n-1 h2

n-1 Bild IV.13: Wahrheitstabelle für n Eingangsgrößen x = {x0,...,xn} und eine Ausgangsgröße y

Page 8: IV. Digitale Schaltungen und Systeme - Universität Paderborngroups.uni-paderborn.de/hfe/lehre/Script_elt_4.pdf · Transistor-Transistor-Logik. Hierfür sind Multi-Emitter-Transistoren

A. Thiede Elektronik für den Maschinenbau

91

Eine Möglichkeit der Darstellung dieser Abbildung ist die Wahrheitstabelle. In ihr werden alle möglichen Belegungen der Eingänge und das jeweils resultierende Ergebnis am Ausgang zusammengefasst. Bild IV.13 zeigt eine solche Tabelle für einen Ausgang y. mk sind die jeweiligen Elementar-konjunktionen, auch Minterme genannt, die sich ergeben, wenn alle Eingänge xn-1 ... x0 mit AND verknüpft und die jeweils 0 gesetzten xi negiert werden. m1 wäre also z.B.

1 n 1 n 2 1 0m x x ... x x− −= ⋅ ⋅ ⋅ ⋅ IV.13 hk ist das für die eine jeweilige Belegung der Eingänge mk resultierende Ergebnis. hk=f(mk) IV.14 hk ist also jeweils nur 0 oder 1. Die disjunktive Normalform der logischen Funktion f ist dann die Or-Verknüpfung aller der Elementarkonjunktionen mk, die hk=1 ergeben haben

( ) n n0 0 1 1 2 2 2 -1 2 -1y=f x h m h m h m ...h m= ⋅ + ⋅ + ⋅ + ⋅ IV.15 Das heißt aber, y wird genau dann und nur dann 1, wenn einer der so ausgewählten Or-verknüpften Minterme 1 wird, was wiederum nur dann geschieht, wenn exakt die entsprechende Kombination von 0 und 1 an den Eingängen angelegt wird. Die disjunktive Normalform kann also direkt aus der Wahrheitstabelle abgelesen werden, ist aber keineswegs immer die einfachste Form der algebraischen Darstellung der jeweiligen Schaltfunktion. Da jede unnötige logische Verknüpfung aber auch zusätzlichen Aufwand bei der Realisierung der Schaltung bedeutet, entsteht der Wunsch, die effektivste Darstellung zu finden. Dieser Wunsch führt auf das Problem der Minimierung von Schaltfunktionen.

2.2. Minimierung Wir wollen das Prinzip der Minimierung nach den einführenden, sehr abstrakten Betrachtungen nun lediglich an einem Beispiel demonstrieren:

Ein wassergekühlter Motor soll abschalten (y=1), wenn • die Kühlwassertemperatur > 95°C wird (x0=1) • die Kühlwassertemperatur < 5°Cwird (x1=1) • oder ein Notschalter betätigt wird (x2=1)

Natürlich findet man hier sofort die gesuchte Funktion y= x0 + x1 + x2 . Wir wollen nun prüfen, ob wir auch über den systematischen Lösungsweg zu diesem Ergebnis kommen und stellen zuerst die Wahrheitstabelle auf.

x2 x1 x0 m h 0 0 0

012 x x x 0

0 0 1 012 xx x 1

0 1 0 012 x xx 1

0 1 1 012 x xx φ

1 0 0 012 x x x 1

1 0 1 012 xx x 1

1 1 0 012 x xx 1

1 1 1 012 x xx φ Die Eingangskombinationen 011 und 111 können im praktischen Betrieb nicht auftreten, da das Wasser nicht gleichzeitig kälter als 5°C und wärmer als 95°C sein kann. Diese Fälle, auch Don't-Care-Terme genannt, markieren wir mit einem φ. Es soll uns später daran erinnern, dass wir das Ergebnis wahlweise 0 oder 1 setzen können, je nachdem, wie es für die Minimierung der Funktion günstiger ist. Aus der Wahrheitstabelle lesen wir damit für die Funktion heraus

Page 9: IV. Digitale Schaltungen und Systeme - Universität Paderborngroups.uni-paderborn.de/hfe/lehre/Script_elt_4.pdf · Transistor-Transistor-Logik. Hierfür sind Multi-Emitter-Transistoren

A. Thiede Elektronik für den Maschinenbau

92

0 1 2 3 4 5 6 7y 0 m 1 m 1 m m 1 m 1 m 1 m mφ φ= ⋅ + ⋅ + ⋅ + ⋅ + ⋅ + ⋅ + ⋅ + ⋅

1 2 3 4 5 6 7 1 m 1 m m 1 m 1 m 1 m mφ φ= ⋅ + ⋅ + ⋅ + ⋅ + ⋅ + ⋅ + ⋅

2 1 0 2 1 0 2 1 0 2 12 1 0 0 2 0 2 01 1x x x x x x x x x x x x x x x x x x x x x= ⋅ ⋅ + ⋅ ⋅ + + ⋅⋅ ⋅ ⋅⋅ + ⋅ ⋅ ⋅ + ⋅+ ⋅ Nun kann mit Hilfe algebraischer Umformungen versucht werden, diese Gleichung zu reduzieren, wobei die jetzt rot markierten φ-Terme genutzt, aber auch weggelassen werden können. Die Reduktion basiert auf der Überlegung, dass A B+A B A⋅ ⋅ = IV.16 ist. Wir müssen also Terme suchen, die sich bis auf eine Stelle gleichen und können diese dann zusammenfassen, indem die Eingangsvariable, in der sie sich unterscheiden, weggelassen wird. Dabei kann ein Term auch mehrfach verwendet werden, denn entsprechend Gleichung IV.7 kann jeder Term beliebig oft dupliziert werden. Bezogen auf unser Beispiel können wir auf diese Weise den ersten und fünften Term, den zweiten und sechsten Term, den dritten und siebenten Term, den vierten und sechsten Term sowie den fünften und siebenten Term zusammenfassen und erhalten

1 0 1 0 1 0 2 0 2 0y x x x x x x x x x x= ⋅ + ⋅ + ⋅ + ⋅ + ⋅ Nun können abermals der erste und dritte Term, der zweite und dritte sowie der vierte und fünfte Term zusammengefasst werden und wir erhalten wie erwartet

0 1 2y x x x= + + Es ist leicht nachvollziehbar, dass bereits bei relativ wenigen Eingangsgrößen, die Übersicht bei diesem Vorgehen schnell verloren geht. Die computergestützte Suche der Terme und deren Vereinfachung führen auf das Verfahren von Quine-McCluskey . Für bis zu vier Eingangsgrößen kann aber auch der Ungeübte die Minimierung sehr leicht mit einem grafischen Verfahren auf der Basis des Karnaugh-Diagramms durchführen. An die Seiten der Zeilen und Spalten werden zunächst alle möglichen Belegungen für maximal zwei Eingänge geschrieben. Dabei ist es wichtig, dass die richtige Reihenfolge gewählt wird. Zwischen zwei benachbarten Kombinationen darf sich nur eine Stelle ändern, um eben Terme, die sich nur an einer Stelle unterscheiden, leicht erkennen zu können. Bei der binären Zählung 00, 01, 10, 11 wäre dies aber nicht gewährleistet ! In den jeweiligen Schnittpunkt werden die Ergebnisse aus der Wahrheitstabelle übertragen, Don't-Care-Terme werden wieder mit φ markiert. x0x1 00 01 11 10

x2

0

0

1

φ

1

1

1

1

φ

1

Aus dem Karnaugh-Diagramm müssen nun alle Terme herausgelesen werden, die als Ergebnis eine 1 ergeben haben, wobei die mit 0 belegten Eingänge zu negieren sind. Gelingt es jedoch Blöcke von zwei, vier oder acht Feldern mit einer 1 zu finden, so kann auf Grund der Anordnung der Felder im Karnaugh-Diagramm sofort erkannt werden, welche der Eingangsgrößen entfallen kann, da sie bei der bestimmten Belegung der übrigen Eingänge auf das Ergebnis keinen Einfluss hat. In unserem Beispiel finden wir drei Blöcke von jeweils 4 Felder mit einer 1, wobei es sich auch hier als zweckmäßig erweist, die φ -Terme auf 1 zu setzen, um größere Blöcke zu erhalten. Isolierte φ -Terme würde man selbstverständlich 0 setzen, also nicht berücksichtigen. Wir lesen für unser Beispiel ab

20 1y= x xx + + und haben damit recht schnell wieder das erwartete Ergebnis erhalten.

Page 10: IV. Digitale Schaltungen und Systeme - Universität Paderborngroups.uni-paderborn.de/hfe/lehre/Script_elt_4.pdf · Transistor-Transistor-Logik. Hierfür sind Multi-Emitter-Transistoren

A. Thiede Elektronik für den Maschinenbau

93

2.3. Einige wichtige Anwendungen In diesem Abschnitt sollen einige weitere kombinatorische Schaltungen höherer Komplexität erläutert werden, die für praktische Anwendungen besonders interessant sind. a) Multiplexer: Bild IV.14: Allgemeines Schaltsymbol für Multiplexer und eine mögliche Schaltung zur Realisierung

eines 4:1 Multiplexers Ein Multiplexer schaltet in Abhängigkeit der Belegung der Steuereingänge S einen der Dateneingänge D auf den Ausgang Y durch.. In dem dargestellten Realisierungsbeispiel werden die zwei Steuersignale und das dazu inverse Signal in den vier Kombinationsmöglichkeiten so auf jeweils zwei Eingänge von insgesamt vier AND-Gatter verteilt. Folglich sind jeweils nur bei einem der vier AND-Gatter diese so beschalteten Eingänge gleichzeitig 1 . Damit ist der Ausgang dieses AND-Gatters gleich dem an seinem dritten Eingang angeschlossenen Dateneingang D, während alle anderen AND-Gatter deaktiviert sind, da von den Steuereingängen herrührend mindestens ein Eingang auf 0 liegt. Die Ausgänge der AND-Gatter werden schließlich noch in einem Or-Gatter zusammengefasst. Multiplexer sind u.a. dann interessant, wenn viele langsame Datenkanäle auf einen schnellen geschaltet werden sollen, wie wir in Kapitel VI sehen werden. b) Dekoder: Bild IV.15: Schaltsymbol eines Dekoders Bild IV.16: 7-Segment-Anzeige Ein Dekoder im engeren Sinne verknüpft allgemein k Eingangsgrößen x und kann daraus als Ergebnis bis zu 2k-1 verschiedene Ausgangsgrößen y erzeugen, von denen bei jeder Eingangsbelegung genau ein Ausgangs 1 wird. Selbstverständlich werden nicht bei jeder Anwendung alle möglichen Kombinationen der Eingänge und damit nicht alle Ausgänge gebraucht. Bei einem Dekoder im weiteren Sinne können für jede Eingangsbelegung auch mehrere Ausgänge 1 werden. Ein Beispiel gerade hierfür sind Dekoder für die in Bild IV.16 dargestellten, sogenannten 7-Segment-Anzeigen. Durch Aufleuchten oder Abschattung dieser 7-Segmente können alle Ziffern von 0 bis 9 dargestellt werden, so wie im Beispiel die Ziffer "2" erscheint. Zur Kodierung von 10 Ziffern benötigen wir mindestens 4 bit, k ist also 4. Relevant sind aber

S1

MUX

Sk

D1

D2k Y

&

&

&

&

≥1

1

S2

D1

Y

1 1 1

D2

D3

D4

S1

Dec y0 x0

xk-1 y2k

-1

Page 11: IV. Digitale Schaltungen und Systeme - Universität Paderborngroups.uni-paderborn.de/hfe/lehre/Script_elt_4.pdf · Transistor-Transistor-Logik. Hierfür sind Multi-Emitter-Transistoren

A. Thiede Elektronik für den Maschinenbau

94

nur 10 der damit möglichen 16 Eingangsbelegungen. Ebenso werden nur 7 Ausgänge benötigt, von denen aber stets mehrere 1 sind, bei der "2" z.B. 5 Ausgänge, bei der "8" sogar alle Ausgänge. Dekoder wurden lange Zeit aufgrund begrenzter Integrationsmöglichkeiten als sorgfältig minimierte Schaltnetzwerke realisiert. Insbesondere traf dies z.B. auf die Kodierung der Befehle im Mikroprozessor zu. Dieses Verfahren ist zeitaufwendig, fehleranfällig und erfordert bei kleinsten Änderungen eine vollständig neuen Entwurf. Wir werden auf eine wesentlich elegantere Methode zu sprechen kommen, nachdem wir im folgenden Abschnitt den Festwertspeicher eingeführt haben. c) Festwertspeicher (engl. Read-Only Memory, ROM) Bild IV.17: 4 x 4 bit ROM zur Erläuterung des Funktionsprinzips Ein ROM besteht, wie in Bild IV.17 dargestellt, aus einer Matrix von Transistoren. Die Drains der Transistoren einer Spalte sind untereinander verbunden und werden von einer aktiven Stromquelle gespeist. Jede Spalte bildet also entsprechend Bild IV.10 ein vielfaches NOR. Diese senkrechte Leitung heißt Bit-Line (BL). Senkrecht hierzu werden auch die Gates aller Transistoren einer Zeile untereinander verbunden. Diese Leitung heißt Word-Line (WL) und wird durch den Adressdekoder angesteuert. Der Adressdekoder ist ein Dekoder im engeren Sinne und schaltet in Abhängigkeit von der Adresse jeweils genau einen Eingang auf 1. Wird beispielsweise im Beispiel unseres 4 x x bit ROM die Kombination 10 angelegt, was ja dezimal der 2 entspricht, so wird die zweite Word-Line aktiviert, d.h. auf 1 gesetzt. Damit würden nun alle Bit-Lines auf 0 schalten, denn in jeder Spalte wäre ja einer der NOR-verknüpften Transistoren geöffnet. Damit dies nicht geschieht, werden gezielt einige der Gates entfernt. Somit werden also bei der Aktivierung der entsprechenden Word-Line alle die Spalten, in denen das Gate noch vorhanden ist, auf 0 geschaltet, und alle Spalten, in denen die Gates dieser aktivierten Zeile entfernt wurden, bleiben auf 1. Mit anderen Worten, das zeilenweise Entfernen bestimmter Gates definiert ein bestimmtes binäres Wort, das genau dann am Ausgang erscheint, wenn der Dekoder die entsprechende Word-Line, daher auch der Name, aktiviert, d.h. 1 setzt. In unserem Beispiel würden also auf den Adressen 00, 01, 10 und 11 die Worte 1101, 0111, 0100, 1111 stehen. Wie im vorigen Abschnitt angekündigt, können auf diese Weise sehr einfache komplexe Dekoder im weiteren Sinne, etwa Befehlsdekoder für Prozessoren, aufgebaut werden. Unser im Abschnitt b) soeben behandelter 7-Segment-Dekoder ließe sich z.B. ganz einfach realisieren, indem man einen ROM mit 4 Adresseingängen, 10 Word-Lines und 7 Bit-Lines aufbaut. In der jeder Ziffer zugeordneten Word-Line würde man dann die Gates so entfernen, dass gerade die Ausgänge auf 1 bleiben, die den zur Darstellung dieser Ziffer benötigten Segmenten zugeordnet sind. Diese Lösung ist natürlich hinsichtlich der Zahl der benötigten Transistoren nicht minimiert. Die Zahl der integrierbaren Transistoren ist dank der modernen CMOS-Technologie aber längst kein Problem mehr.

Adr

ess-

Dek

oder

A1

A0

UDD

WL0

WL3

WL2

WL1

BL0 BL1 BL2 BL3

Page 12: IV. Digitale Schaltungen und Systeme - Universität Paderborngroups.uni-paderborn.de/hfe/lehre/Script_elt_4.pdf · Transistor-Transistor-Logik. Hierfür sind Multi-Emitter-Transistoren

A. Thiede Elektronik für den Maschinenbau

95

Deshalb zieht man heute diese Lösung vor, da sie wesentlich übersichtlicher, einfacher zu entwerfen und flexibler ist. So könnte z.B. der Befehlssatz eines Prozessors einfach dadurch erweitert werden, dass man dem ROM eine entsprechende Zahl vom Word-Lines hinzufügt. Welche Gates eines ROM angeschlossen werden sollen, kann bei der Chipherstellung durch eine Metallisierungsebene definiert werden. Dieser Weg wird z.B. bei Prozessoren gewählt, da hier der Chiphersteller ja selbst den Befehlssatz kennt. Bei anderen Anwendungen kann aber der Wunsch entstehen, dem Kunden einen universellen Baustein zur Verfügung zu stellen, den dieser entsprechend seiner Aufgabe programmiert. In diesem Fall werden zunächst vom Chiphersteller alle Gates realisiert und anschließend vom Kunden gezielt weggebrannt. Man spricht dann von einem programmierbaren ROM oder PROM. Auch diese Programmierung ist aber endgültig, eine Programmänderung erfordert einen neuen Chip. Der Wunsch nach der Wiederbeschreibbarkeit des PROM führte zum elektrisch programmierbaren PROM, dem EPROM. Hier werden die Gates nicht entfernt sondern durch das gezielte Aufladen eines darüber liegendes zweiten Gates deaktiviert. Da die Ladung auf diesem zweiten isolierten Gate erhalten bleibt, ist auf somit rein elektrischem Wege eine Programmierung möglich. Eine Neuprogrammierung erfolgt durch Entladen der Gates bei der Bestrahlung mit ultraviolettem, also energiereichem Licht. Geschieht auch die Entladung durch eine elektrische Spannung, die weit größer als die für die Programmierung notwendige Spannung sein muss, so spricht man von einem elektrisch löschbaren, elektrisch programmierbaren ROM, also einem EEPROM. d) Addierer: Wenn auch die Anwendungen der Computer heute weit über das namensgebende Rechnen hinausgehen, so soll nicht vergessen werden, einen Eindruck davon zu vermitteln, wie digitale Schaltungen Rechnungen ausführen können. Als einfachstes Beispiel wollen wir einen Addierer betrachten. Bild IV.18 zeigt schematisch einen 4 bit Addierer. Wie bei einer schriftlichen Addition addiert er die beiden 4 bit langen Zahlen A und B stellen-, d.h. bitweise. Da bei der ersten Stelle noch kein Übertrag zu berücksichtigen ist, bezeichnet man diese Stufe als Halbaddierer (HA). Bei allen weiteren Stellen ist der jeweilige Übertrag der vorigen Stelle zu berücksichtigen, diese Stufen heißen Volladdierer (FA). Im Ergebnis entstehen eine Summe mit 4 bits sowie ein Übertragsbit (engl. Carry, C). Bild IV.18: 4 bit Addierer Die Realisierung der Halb- und Volladdierer erfolgt auf die gleiche Weise, wie bei jedem anderen kombinatorischen Automaten auch. Zunächst sind die Wahrheitstabellen, wie in Bild IV.19 und 20 geschehen, aufzustellen. Man liest für den Halbaddierer ab

n+1 n nC A B= ⋅ IV.17

( ) ( )( ) ( ) ( ) ( )( ) ( ) ( ) ( ) ( )

n n n n n n n n n n n

n n n n n n n n n

n n n n n n n n n n n n+1

S A B A B A B A A B B

S A A A B A B B B

S A B A B A B A B A B C

= ⋅ + ⋅ = ⋅ + ⋅ ⋅ +

= + ⋅ + ⋅ + ⋅ +

= + ⋅ + = + ⋅ ⋅ = + ⋅

IV.18

HA

B0 A0

S0

FA

B1 A1

S1

FA

B2 A2

S2

FA

B3 A3

S3

C1 C2 C3 C

Page 13: IV. Digitale Schaltungen und Systeme - Universität Paderborngroups.uni-paderborn.de/hfe/lehre/Script_elt_4.pdf · Transistor-Transistor-Logik. Hierfür sind Multi-Emitter-Transistoren

A. Thiede Elektronik für den Maschinenbau

96

An Bn Sn Cn+1 An Bn Cn Sn Cn+1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 Bild IV.19: Wahrheitstabelle des Halbaddierers Bild IV.20: Wahrheitstabelle des Volladdierers Die Umformung in Gleichung IV.18 dient hier dem Zweck, dass bei der Berechnung des Carry gewonnene Zwischenergebnis wiederzuverwenden. Das Ergebnis dieser Umstellung kann man natürlich auch aus der Überlegung gewinnen, dass die Summe eben dann 1 ist, wenn entweder A oder B 1 ist, jedoch nicht beide gleichzeitig 1 , also auch der Carry nicht 1 wird. Bild IV.21 zeigt die Realisierung beider Schaltfunktionen in ED-MOS-Logik. Bild IV.13: Halbaddierer (HA) in ED-MOS-Logik In gleicher Weise geht man beim Volladdierer vor und erhält als leicht nachprüfbares Ergebnis die in Bild IV.14 dargestellte Realisierung. Bild IV.14: Volladdierer (HA) in ED-MOS-Logik

3. Sequentielle Automaten Nach den kombinatorischen Schaltungen wollen wir uns nun Automaten zuwenden, bei denen die Ausgänge eine Funktion der jeweiligen Belegung der Eingänge und zusätzlich nun auch des aktuellen

An

Cn+1 Sn

Bn

UDD UDD UDD UDD

An Bn

An

Cn+1 Sn

Bn

UDD UDD UDD

An Bn

Cn

An Bn Cn Cn

UDD

Bn

An

UDD

Page 14: IV. Digitale Schaltungen und Systeme - Universität Paderborngroups.uni-paderborn.de/hfe/lehre/Script_elt_4.pdf · Transistor-Transistor-Logik. Hierfür sind Multi-Emitter-Transistoren

A. Thiede Elektronik für den Maschinenbau

97

Zustands des Automaten sind. Derartige Automaten, die also über ein Gedächtnis, d.h. über Speicher verfügen, nennt man sequentielle Automaten.

3.1. Darstellung Bei einem sequentiellen Automaten müssen wir zwischen der Ergebnisfunktion EF, die eine Abbildung eines Vektors x(i) von n Eingangsgrößen zum Zeitpunkt i und eines Vektors z(i) von k Zustandsgrößen zum Zeitpunkt i auf einen Vektor y(i) von m Ausgangsgrößen zum Zeitpunkt i ist, und der Überführungsfunktion ÜF, die eine Abbildung des Vektors x(i) des Vektors z(i) auf einen neuen Vektor z(i+1) zum Zeitpunkt i+1 ist.

( ) ( )( ) ( )EF: f x i , z i y i= { }1n0 x,...,xx −= { }1k0 z,...,zz −= { }1m0 y,...,yy −= IV.19

( ) ( )( ) ( )ÜF: f x i ,z i z i 1= + { }1n0 x,...,xx −= { }1k0 z,...,zz −= { }1m0 y,...,yy −= IV.20 Die in Bild IV.15 dargestellte Wahrheitstabelle muss um alle möglichen Belegungen der Zustandsgrößen erweitert werden und heißt jetzt Automatentabelle.

xn-1 ... x1 x0 zk-1 ... z1 z0 hy hz 0 ... 0 0 0 ... 0 0 hy 0 hz 0 0 ... 0 0 0 ... 0 1 hy 1 hz 1 . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . 1 ... 1 1 1 ... 1 1 n+ky 2 1

h−

n+kz 2 1h

Bild IV.15: Automatentabelle eines sequentiellen Automaten Eine weitere Möglichkeit der Darstellung eines sequentiellen Automaten ist das Zustandsdiagramm. Das Prinzip ist in Bild IV.16 illustriert. Man zeichnet für jeden Zustand einen Kreis und trägt anschließend mit Hilfe von Pfeilen ein, welche Eingangsbelegung x den Zustand zi in den Zustand zj überführt. Hängt dabei die Ausgabe y vom vorigen Zustand und der Eingabe x ab, so spricht man von einem Mealy-Automaten und trägt die Ausgabe y am Überführungspfeil ein. Ist die Ausgabe nur vom Zustand abhängig, so spricht man von einem Moore-Automaten und trägt die Ausgabe y im Kreis des jeweiligen Zustandes ein. Mealy- und Moore-Automaten lassen sich, gegebenenfalls unter Erweiterung der Zahl der Zustände, ineinander überführen. Bild IV.16: Zur Erläuterung der Zustandsdiagramme von Mealy- und Moore-Automaten Während das Zustandsdiagramm den logischen Zusammenhang der Zustände darstellt, verdeutlicht das Automatenband die zeitliche Abfolge der Zustände. Bild IV.17 zeigt das Prinzip. Zeitschritt ... i-2 i-1 i i+1 ... Eingabe ... ... x(i-1) x(i) x(i+1) ... Zustand ... z(i-2) z(i-1) z(i) z(i+1) ... Ausgabe ... ... y(i-1) y(i) y(i+1) ... Bild IV.17: Prinzip eines Automatenbandes

zi zj/yx

Moore Automat

zi zj x / y

Mealy Automat

Page 15: IV. Digitale Schaltungen und Systeme - Universität Paderborngroups.uni-paderborn.de/hfe/lehre/Script_elt_4.pdf · Transistor-Transistor-Logik. Hierfür sind Multi-Emitter-Transistoren

A. Thiede Elektronik für den Maschinenbau

98

3.2. Elementarautomaten Der denkbar einfachste Automat ist ein Speicher für 1 bit. Er lässt sich elektronisch mit Hilfe von zwei NOR- oder zwei NAND-Gattern realisieren. Da die Betrachtungen dual sind, können wir uns auf die in Bild IV.18 gezeigte Realisierung eines derartigen Elementarautomaten auf der Basis von NOR-Gattern beschränken. 1 1 2y x y= + 2 2 1y x y= + Bild IV.18: rs-Flip-Flop Setzt man beispielsweise {x1,x2}={1,0}, so wird y1=0. Die rot markierte Rückkopplung bewirkt nun, dass y1 den Ausgang des unteren NOR-Gatters y2=1 setzt. y2 wird wiederum auf das obere NOR-Gatter rückgekoppelt und bewirkt seinerseits, dass völlig unabhängig von Eingang x1 der Ausgang y1=0 bleibt. Wird also x1 nur für einen kurzen Moment, der lediglich länger als die Summe der Verzögerungszeiten der zwei Gatter sein muss, auf 1 gesetzt, so ist der Zustand {y1,y2}={0,1} dauerhaft gespeichert. Setzen wir statt dessen {x1,x2}={0,1}, so wird dauerhaft der Zustand {y1,y2}={0,1} gehalten. Die Eingangsbelegung {x1,x2}={0,0} verändert dagegen den jeweils bestehenden Zustand nicht. Lediglich die Eingangsbelegung {x1,x2}={1,1} führt, da beide Ausgänge y1=0 und y2=0 geschaltet werden, zu einem Zustand, der nach dem Rücksetzen beider Eingänge auf 0 nicht gehalten werden kann. Praktisch wird sich mehr oder weniger zufällig einer der beiden stabilen Zustände einstellen. Daher muss dieser Fall {x1,x2}={1,1} ausgeschlossen werden. Wir wollen nun {y1,y2}={0,1} als Zustand z=0 definieren. Daraus folgt sofort, dass der Zustand z=1 durch {y1,y2}={1,0} charakterisiert ist. Da x1=1 den Übergang in den Zustand z=0 bewirkt, wird der Eingang x1 auch als Rücksetzeingang r bezeichnet. Umgekehrt bewirkt x2=1 den Übergang in den Zustand z=1 und wird Setzeingang s genannt. Die gesamte Anordnung wird auch als rs-Flip-Flop bezeichnet. Anschaulich entspricht ein rs-Flip-Flop also einem Gerät mit einem Taster zum Ein- und einem Taster zum Ausschalten. Nach dem Einschalten bewirkt das erneute Betätigen des Einschalters nichts mehr, ebensowenig das nochmalige Betätigen des Ausschalters beim ausgeschalteten Gerät. Die gleichzeitige Betätigung beider Taster ist nicht zulässig. Als Überführungsfunktion erhalten wir für das rs-Flip-Flop offensichtlich ( ) ( ) ( ) ( )z i 1 s i z i r i+ = + ⋅ IV.21

oder in Worten: Der neue Zustand des Flip-Flops wird 1, wenn es gesetzt wird oder wenn es im alten Zustand gesetzt war und nicht zurückgesetzt wird. Bild IV.19: rs-Flip-Flop mit Taktsynchronisation Häufig besteht der Wunsch, Schaltvorgänge von einzelnen Flip-Flops nicht sofort bei der Aktivierung von Setz- oder Rücksetzeingängen zuzulassen, sondern in einem ganzen System synchron durchzuführen.

x2 x1 y2 y1

0 0 1y 2y

0 1 1 0

1 0 0 1

1 1 ( 0 0 ) ≥1

≥1 x1

x2

y1

y2

≥1

≥1 r

s

z

&

&

C

z

Page 16: IV. Digitale Schaltungen und Systeme - Universität Paderborngroups.uni-paderborn.de/hfe/lehre/Script_elt_4.pdf · Transistor-Transistor-Logik. Hierfür sind Multi-Emitter-Transistoren

A. Thiede Elektronik für den Maschinenbau

99

Hierzu wird ein Synchronisationssignal benötigt, das man als Takt (engl. Clock) bezeichnet. Bild IV.19 zeigt wie man die Synchronisation eines rs-Flip-Flops mit Hilfe zweier zusätzlicher AND-Gatter realisieren kann. Die AND-Gatter sind jeweils transparent, wenn C=1 ist r 1= r und s 1= s⋅ ⋅ IV.22 und inaktiv wenn C=0 ist r 0= 0 und s 0= 0⋅ ⋅ IV.23 a) Flip-Flops mit zwei Eingängen: Die Forderung, Setz- und Rücksetzeingang nicht gleichzeitig 1 werden zu lassen, ist im praktischen Betrieb eines komplexen digitalen Systems kaum durchsetzbar. Statt dessen muss, wie in Bild IV.20 gezeigt, mit Hilfe eines zusätzlichen Schaltnetzwerkes dieser Fall abgefangen werden. Bild IV.20: Allgemeines Flip-Flop mit zwei Eingängen Für die Eingänge x1 und x2 ist jetzt jede Belegung zulässig, das Schaltnetzwerk S dekodiert diese jedoch so, dass der s- und r-Eingang nie gleichzeitig 1 werden. Bild IV.21 zeigt die entsprechende Automaten-tabelle.

x2 x1 zn s r zn+1 0 0 0 0 φ 0 0 0 1 φ 0 1 0 1 0 0 φ 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0 1 φ 0 1 1 1 0 0/0/1/1 φ/φ/0/0 0 0 1 1 1 1 1 φ/0/φ/0 0/1/0/1 1 0 1 0 ↓ ↓ ↓ ↓ R'S' EL SL JK

Bild IV.21: Automatentabelle für Flip-Flops mit zwei Eingängen Betrachten wir die Belegung {x2,x1}={0,0}. Diese Belegung war auch beim rs-Flip-Flop erlaubt. Wir können also ebenso verfahren. Ist wie in der ersten Zeile der alte Zustand 0, so soll auch der neue Zustand 0 sein, d.h. das Schaltnetzwerk muss in jedem Fall erzeugen, damit das Flip-Flop nicht gesetzt wird. Der Rücksetzeingang des Flip-Flops könnte, muss aber nicht 1 werden, hierfür tragen wir also wieder φ ein. Ist wie in der zweiten Zeile der alte Zustand 1, so könnte s auf 1 gesetzt werden, muss es aber nicht. r muss aber in jedem Fall 0 bleiben. In gleicher Weise können wir uns in der dritten bis sechsten Zeile überlegen, welche Signale das Schaltnetzwerk für den s- und r-Eingang des rs-Flip-Flops erzeugen muss. Interessanter wird es dann wieder bei Zeile sieben und acht. Hier wird {x2,x1}={1,1} angelegt. Für den neuen Zustand des rs-Flip-Flops bestehen prinzipiell genau vier Möglichkeiten: Es kann seinen Zustand beibehalten, unabhängig vom alten Zustand den Zustand 0 einnehmen, unabhängig vom alten Zustand den Zustand 1 annehmen oder den alten Zustand invertieren. In dieser Reihenfolge spricht man von einem R'S'-, EL-, SL und JK-Flip-Flop. Das Schaltnetzwerk muss wieder in der erläuterten Art und Weise die Signale r und s erzeugen, die genau diesen Übergang bewirken. Das genaue Vorgehen soll lediglich anhand des R'S'-Flip-Flops demonstriert werden.

S

T

s C r

C x1 x2

zz

Page 17: IV. Digitale Schaltungen und Systeme - Universität Paderborngroups.uni-paderborn.de/hfe/lehre/Script_elt_4.pdf · Transistor-Transistor-Logik. Hierfür sind Multi-Emitter-Transistoren

A. Thiede Elektronik für den Maschinenbau

100

Wir stellen zunächst wieder die Karnaugh-Diagramme für r und s auf,

x1z 00 01 11 10

x2

0

φ

0

1

φ

1

0

0

0

φ

r s

Bild IV.22: Karnaugh-Diagramme für R'S'-Flip-Flop setzen die in den markierten Blöcken liegenden φ-Terme auf 1, alle übrigen auf 0, können dann je einen Block mit zwei Einsen herauslesen und erhalten schließlich

1 2r = x x⋅ und 1 2s = x x⋅ IV.24 Bild IV.23 zeigt das gesamte Flip-Flop einschließlich der entsprechenden Realisierung des Schaltnetzwerkes. Bild IV.23: R'S'-Flip-Flop Für die übrigen Varianten wollen wir lediglich die Schaltfunktionen des Schaltnetzwerkes angeben: EL-Flip-Flop 1xr = 21xxs = IV.25 SL-Flip-Flop 21 xxr = 2xs = IV.26

JK-Flip-Flop n1zxr = n

2s x z= IV.27 Beim EL-Flip-Flop dominiert offensichtlich r, beim SL-Flip-Flop dagegen s. Das JK-Flip-Flop führt bei dauerhaft auf 1 gesetzten Eingängen zu Schwingungen, so dass hier lediglich die Verwendung in Master-Slave-Konfiguration möglich ist, worauf in Abschnitt c) kurz eingegangen werden soll. b) Flip-Flop mit einem Eingang: Das Schaltnetzwerk ermöglich, wie in Bild IV.24 gezeigt, ebenso Flip-Flops mit nur einem Eingang. Es erzeugt auch dabei die Signale für den r- und s-Eingang so, dass das rs-Flip-Flop in der gewünschten Weise gesetzt oder rückgesetzt wird. Dabei sind lediglich die in der Automatentabelle aus Bild IV.25 aufgeführten Fälle sinnvoll. Bild IV.24: Allgemeines Flip-Flop mit einem Eingang

x1z 00 01 11 10

x2

0

0

φ

0

0

1

1

φ

φ

0

T

s C r

C

x1

x2 &

& 1

1

zz

S

T

s C r

C x zz

Page 18: IV. Digitale Schaltungen und Systeme - Universität Paderborngroups.uni-paderborn.de/hfe/lehre/Script_elt_4.pdf · Transistor-Transistor-Logik. Hierfür sind Multi-Emitter-Transistoren

A. Thiede Elektronik für den Maschinenbau

101

x zn s r zn+1 zn+1 0 0 0 φ 0 0 0 1 0/φ 1/0 0 1 1 0 1 0 1 1 1 1 φ/0 0/1 1 0 ↓ ↓ D T

Bild IV.25: Automatentabelle für Flip-Flops mit einem Eingang Ein D-Flip-Flop übernimmt offensichtlich unabhängig vom alten Zustand die angelegten Daten, daher der Name, als neuen Zustand. Es ist ein einfacher Datenspeicher und wird vielfach auch als Latch (dt. Schnappschloss) bezeichnet. Das T-Flip-Flop invertiert beim Anliegen einer 1 am Eingang gerade seinen Zustand. Würde man eine Folge 10101010... an den Eingang anlegen, so würde das Flip-Flop am Ausgang ausgehend vom Zustand 0 die Folge 11001100... erzeugen. Im Impulsdiagramm in Bild IV.26 sieht man deutlich, dass dies einer Teilung der Frequenz des Eingangssignals um den Faktor 2 entspricht, was auch der Grund für die Bezeichnung Teiler-Flip-Flop ist.

Bild IV.26: Impulsdiagramm des T-Flip-Flops Die Schaltfunktionen der zugeordneten Schaltnetzwerke sollen auch hier nur angegeben werden: D-Flip-Flop r x= s x= IV.25 T-Flip-Flop nr z x= ⋅ ns z x= ⋅ IV.26 c) Master-Slave-Flip-Flop: Master-Slave-Flip-Flops können aus jedem der zuvor genannten Flip-Flops aufgebaut werden. Sie bestehen aus zwei Stufen, wobei die erste Master genannt wird, da sie quasi die zweite Stufe, den Slave dominiert. Bild IV.27: Master-Slave-D-Flip-Flop

t

t

x

z

D

C

T

s C r 1

T

s C r 1

1

Master Slave

zustandsgesteuert zustandsgesteuert

flankengesteuert

Page 19: IV. Digitale Schaltungen und Systeme - Universität Paderborngroups.uni-paderborn.de/hfe/lehre/Script_elt_4.pdf · Transistor-Transistor-Logik. Hierfür sind Multi-Emitter-Transistoren

A. Thiede Elektronik für den Maschinenbau

102

Bild IV.27 zeigt als Beispiel ein Master-Slave-Flip-Flop bestehend aus zwei D-Flip-Flops.Um den Vorteil dieser Anordnung zu erkennen, müssen wir uns erst vergegenwärtigen, dass das D-Flip-Flop für jeweils eine halbe Taktperiode transparent ist, d.h. für den gesamten Zeitraum, indem das Taktsignal den Flip-Flop-Eingang aktiviert, wird jede Änderung am Dateneingang registriert und auf den Ausgang übertragen. Häufig wünscht man sich jedoch, dass die Flip-Flop-Eingänge nicht für eine halbe Periode des Taktes sondern nur für einen Moment aktiviert sind, sozusagen ein "Schnappschuss" der Daten aufgenommen und für eine ganze Taktperiode verwahrt wird. Dies kann durch spezielle Flip-Flops realisiert werden, die lediglich auf eine Veränderung des Taktes reagieren, man spricht von flankengesteuerten Flip-Flops. Das gleiche kann aber auch durch die gezeigte Master-Slave-Anordnung zweier gewöhnlicher zustandsgesteuerter Flip-Flops erreicht werden. Da der Master mit dem Taktsignal und der Slave mit dem invertierten Takt gesteuert werden, ist stets entweder der Master oder der Slave deaktiviert. Zu keinem Zeitpunkt kann sich eine Änderung der Eingangsdaten sofort auf den Ausgangs auswirken. Die Daten am Ausgang des Slave werden nur dann aktualisiert, wenn der Takt von 1 auf 0 schaltet und bleiben dann für eine Taktperiode gültig. In Abschnitt a) wurde darauf hingewiesen, dass bei einem JK-Flip-Flop-Schwingungen auftreten, wenn beide Dateneingänge dauerhaft auf 1 gehalten werden. Letztlich ist auch hier die Transparenz des rs-Flip-Flops der Grund für das unerwünschte Verhalten, denn jede Änderung des Ausgangs wirkt über die Rückkopplung und das Schaltnetzwerk direkt wieder auf das rs-Flip-Flop und die Ausgänge zurück. Die Einführung eines Taktes vorausgesetzt kann mit der gleichen Master-Slave-Konfiguration bezüglich des rs-Flip-Flops die Schwingung verhindert werden.

3.3. Minimierung Auch bei sequentiellen Automaten ist eine Minimierung möglich. Sie bezieht sich zusätzlich auf die Zahl der Zustände. Das Verfahren ist jedoch wesentlich komplizierter als bei kombinatorischen Automaten und kann hier nicht Gegenstand näherer Erörterungen sein.

3.4. Einige wichtige Anwendungen Abschließend sollen auch einige wichtige Schaltungen, die den sequentiellen Automaten zuzuordnen sind, vorgestellt werden. a) Frequenzteiler: Für viele Anwendungen ist es erforderlich, synchron zu einem vorgegebenen digitalen Signal mit einer bestimmten Frequenz ein Signal mit gerade der halben Frequenz zu erzeugen. Wir hatten bereits das T-Flip-Flop als einfachen Frequenzteiler kennengelernt. D-Flip-Flops sind jedoch in vielen digitalen Schaltungen sehr wichtig und werden daher auch gern als Frequenzteiler eingesetzt. Dazu führt man den negierten Ausgang z auf den Dateneingang zurückführt, legt das Eingangssignal am Takteingang angelegt und erhält, wie in Bild IV.28 gezeigt, am Ausgang z ein Signal mit genau der halben Frequenz. Bild IV.28: Frequenzteiler auf der Basis eines taktflankengesteuerten D-Flip-Flops

C

D

D z z t

t

C

z

Page 20: IV. Digitale Schaltungen und Systeme - Universität Paderborngroups.uni-paderborn.de/hfe/lehre/Script_elt_4.pdf · Transistor-Transistor-Logik. Hierfür sind Multi-Emitter-Transistoren

A. Thiede Elektronik für den Maschinenbau

103

b) Zähler (asynchron): In vielen Anwendungen steht man vor der Aufgabe zu ermitteln, wie oft ein bestimmtes Ereignis in einer vorgegebenen Zeit eingetreten ist. Umgekehrt kann man einen Zähler auch nutzen, um mit Hilfe einer vorgegebenen, möglichst hohen Frequenz sehr kurze Zeitintervalle exakt zu vermessen. Bild IV.29 zeigt, dass ein einfacher binärer Zähler aus hintereinander geschalteten Frequenzteilern besteht. In unserem Beispiel hat der Zähler eine Breite von 4 bit, zählt somit zyklisch von 0 bis 24-1=15 und beginnt danach wieder von vorn. Da die Ausgänge der einzelnen Frequenzteiler nicht zeitgleich schalten, heißt dieser Zähler Asynchronzähler. Synchronzähler sind wesentlich aufwendiger und für viele Anwendungen nicht zwingend notwendig. Bild IV.29: 4 bit Zähler auf der Basis von D-Flip-Flops c) Demultiplexer: Demultiplexer sind als Gegenstück zum Multiplexer in der Lage, wie im Bild IV.30 schematisch anhand eines 1:2 Demux dargestellt, die auf einem schnellen Datenkanal eintreffenden Bits auf eine bestimmte Anzahl von langsamen Kanälen abwechselnd zu verteilen. Hierauf werden wir in Kapitel VI zurückkommen. Bild IV.30: Schematische Darstellung der Funktion eines 1:2 Demux Bild IV.31: Realisierung eines 1:2 Demux mit Hilfe von 4 D-Flip-Flops Zur Realisierung eines 1:2-D-Flip-Flops wird, wie in Bild IV.31 dargestellt, zunächst der mit den Daten gelieferte Takt geteilt. Durch die gegenphasige Ansteuerung der folgenden D-Flip-Flops mit dem

C

D

D z z

b0

D

D z z

b1

D

D z z

b2

D

D z z

b3

Demux

t

t

t

D

D z z

D

D z z

D

D z z

D

D z z

D

C

D1

D2

Page 21: IV. Digitale Schaltungen und Systeme - Universität Paderborngroups.uni-paderborn.de/hfe/lehre/Script_elt_4.pdf · Transistor-Transistor-Logik. Hierfür sind Multi-Emitter-Transistoren

A. Thiede Elektronik für den Maschinenbau

104

geteilten Takt und dem dazu invertierten Signal aus dem z-bzw. z -Ausgang des Teilers werden jeweils abwechselnd von dem an beide Flip-Flops angelegten Dateneingang die geradzahligen und ungeradzahligen Bits übernommen. Das zweite Flip-Flop in der oberen Zeile dient lediglich dazu, zwischen den beiden ja zu unterschiedlichen Zeitpunkten übernommenen Bits wieder Synchronität herzustellen. d) Statischer Speicher mit beliebigem Schreib-Lese-Zugriff (sRAM): Bild IV.32 zeigt eine Zelle eines sRAM (engl. Static Random Access Memory) in ED-MOS-Logik. Man erkennt in der Mitte zwei Inverter, die wie die NOR-Gatter eines rs-Flip-Flops zu einem sogenannten Speicher-Flip-Flop wechselseitig rückgekoppelt sind. Links und rechts befinden sich die Zugriffs-transistoren, die durch die entsprechende Word-Line eingeschaltet werden können. Über die Bit-Line werden mit Hilfe eines Treibers die Informationen in die Zellen eingeschrieben oder über Leseverstärker ausgelesen. Bild IV.32: Zelle eines sRAM in ED-MOS-Logik Der Aufwand ist bei sRAM mit 6 Transistoren pro Bit sehr hoch. Sie werden bei hohen Geschwindig-keitsanforderungen aber nur mittlerer Speicherkapazität eingesetzt. Ein Beispiel wären z.B. Cache-Speicher, deren Funktion wir in Abschnitt IV.4.4 erläutern werden. Die populäreren Hauptspeicher der Computer werden mit dynamischen RAM aufgebaut. Eine dRAM-Zelle besteht lediglich aus einer Kapazität zur Ladungsspeicherung und einem Zugriffstransistor. Man kann also grob sechsmal so viel Information speichern, muss allerdings die Information ständig auffrischen, da die Ladung auf dem Kondensator nur sehr kurze Zeit bestehen bleibt.

4. Mikroprozessor Unser Lächeln über die allzu vorsichtige Schätzung des IBM-Präsidenten vom Jahre 1943, "dass es einen Weltmarkt für ungefähr fünf Computer gibt" oder den DEC-Präsidenten Ken Olson, der noch im Jahre 1977 "keinen Grund, warum irgendjemand zu Hause einen Computer nutzen sollte" sah, führt uns mehr als deutlich vor Augen, wie selbstverständlich uns heute der Einsatz von Mikroprozessoren in vielfältigsten Anwendungen ist, die über das vor wenigen Jahren auch nur vorhersehbare weit hinausgehen. Wir wollen diese Einsatzgebiete wie folgt kategorisieren:

• Computer sind die Grundlage für viele wissenschaftlich-technische und ökonomische Berechnungen, wobei die zunehmende Leistungsfähigkeit einen Zugang zu sehr komplexen Problemen wie der Wetterprognose, der Evolution oder der Dynamik chemischer Reaktionen ermöglicht.

• Die Datenverarbeitung war bei IBM der Anstoß zur Entwicklung von Großrechnern und ist heute erst recht ohne Computer undenkbar geworden.

• Die durch Programmierung erreichbare Flexibilität hat dazu geführt, dass der Prozessor in der Prozesssteuerung die zuvor übliche, für jeden Anwendungsfall speziell entwickelten Steuerschaltkreise ersetzt hat. Dies trifft nicht nur für Industrieanlagen und Werkzeugmaschinen

Bit-Line Bit-Line

Word-Line

Page 22: IV. Digitale Schaltungen und Systeme - Universität Paderborngroups.uni-paderborn.de/hfe/lehre/Script_elt_4.pdf · Transistor-Transistor-Logik. Hierfür sind Multi-Emitter-Transistoren

A. Thiede Elektronik für den Maschinenbau

105

bis hin zu Robotern zu. Auch bei Haushaltsgeräten haben Mikroprozessoren Einzug gehalten und werden durch zunehmende Vernetzung auch hier immer komplexere Funktionen erfüllen.

• Das jüngste und besonders stark steigende Feld der Computeranwendung ist die Kommunikation. Während Erinnerungen an Begriffe wie etwa Teletext oder Bildschirmtext (Btx) verblassen, sind uns Briefe, Telefonate, Musik, Video, ja selbst der Einkauf bereits vertraute Anwendungen der im World-Wide-Web vernetzten Computer.

Rechenfunktionen lassen sich technisch auf vielfältige Weise realisieren. Denken wir an die ersten mechanischen Rechenmaschinen, fest verdrahtete Digitalrechner oder Analogrechner etwa auf der Basis der Operationsverstärkerschaltungen aus Abschnitt III.4.4 . Heute bezeichnen wir umgangssprachlich jedoch nur noch speicherprogrammierbare, programmgesteuerte Digitalrechner als Computer. Sie weisen die in Bild IV.33 gezeigte Grundstruktur auf. Die zentrale Verarbeitungseinheit (engl. Central Processing Unit, CPU) verarbeitet die Daten aus dem Datenspeicher entsprechend der im Programmspeicher befindlichen Befehle und kommuniziert über verschiedene Ein- und Ausgabeschnittstellen mit der Peripherie. Die internen Verbindungen bestehen jeweils aus mehreren parallel geführten Leitungen, um gleichzeitig mehrere Bits übertragen zu können, und werden daher als Busse bezeichnet. Nach der Art der übertragenen Information unterscheiden wir den Adressbus, den Datenbus und den Befehlsbus. Bild IV.33: Grundstruktur eines Computers

4.1. Aufbau des Mikroprozessors Die Grundstruktur eines Mikroprozessors zeigt Bild IV.34 . In der Arithmetisch-Logischen-Einheit werden arithmetische und logischen Operationen an Operanden durchgeführt, die sich entweder bereits in Datenregistern des Prozessors selbst oder auf bestimmten Adressen des Hauptspeichers befinden. Diese drei Blöcke bilden zusammen die Verarbeitungseinheit. Die Steuereinheit lädt und Dekodiert jeweils den aktuellen Befehl. Die Breite des internen Datenbusses ist für die gleichzeitig übertragbare Zahl von Datenbits und somit für die Verarbeitungsgeschwindigkeit entscheidend. Sie wird daher stets als charakteristische Eigenschaft des Prozessors genannt. Wir erleben derzeit den Übergang von 32 bit auf 64 bit Architekturen. Jeder Prozessor verfügt über eine Vielzahl verschiedener Register. Die wichtigsten seien hier als Beispiele genannt:

• Akkumulatoren sind Register für arithmetische und logische Operationen.

Zentrale Verarbeitungs-einheit (Mikroprozessor)

Programmspeicher

Datenspeicher

Ein-/Ausgabe

Adress- bus

Befehls- bus

Daten- bus

↔ Peripherie

Page 23: IV. Digitale Schaltungen und Systeme - Universität Paderborngroups.uni-paderborn.de/hfe/lehre/Script_elt_4.pdf · Transistor-Transistor-Logik. Hierfür sind Multi-Emitter-Transistoren

A. Thiede Elektronik für den Maschinenbau

106

• Das Flag-Register enthält einzelne Bits, die in Abhängigkeit vom Akkumulatorinhalt, also z.B. in Abhängigkeit vom Vorzeichen, dem Auftreten eines Übertrags usw., gesetzt und für Programmverzeigungen mit Hilfe bedingter Sprunganweisungen genutzt werden können.

• Indexregister werden für die später näher zu erläuternde indizierte Adressierung benötigt. • Der Programmzähler enthält jeweils die Adresse des nächsten Befehls. • Ein spezielles Zeigerregister speichert den Verweis auf die richtige Rücksprungadresse bei

Unterprogrammverzweigungen, wie in Abschnitt IV.4.4 erläutert. Die zuletzt gespeicherte Adresse wird dabei jeweils zuerst wieder ausgelesen (engl. Last-In-First-Out, LIFO), so dass das Register als Stapel-Zeiger (engl. Stack-Pointer) bezeichnet wird.

Bild IV.34: Grundstruktur eines Mikroprozessors Grundsätzlich ist jedoch zu sagen, dass die verschiedenen Prozessoren so stark differieren, dass hier nur die Darstellung grundsätzliche Zusammenhänge anhand einfacher Beispiele, wie z.B. der Prozessoren Intel 8080 oder Motorola 6800, möglich ist.

4.2. Zahlendarstellung Zur Erläuterung der Möglichkeiten zur Zahlendarstellung in einem Computer wollen wir als Beispiel die Dezimalzahl

4 3 2 1 0Dez41288 4 10 1 10 2 10 8 10 8 10= ⋅ + ⋅ + ⋅ + ⋅ + ⋅ IV.27

verwenden. Die gleiche Zahl als Dualzahl geschrieben lautet 15 13 8 6 3

Dual

1010 0001 0100 1000 1 2 1 2 1 2 1 2 1 2= ⋅ + ⋅ + ⋅ + ⋅ + ⋅ IV.28

3 2 1 0Hex A 1 4 8 A 16 1 16 4 16 8 16= ⋅ + ⋅ + ⋅ + ⋅ IV.29

Die Darstellung aus Gleichung IV.29 heißt hexadezimal und nutzt folglich die Basis 16. Sie kürzt lediglich die Zahlendarstellung des in einem Computer grundsätzlich verwendeten Dualsystems ab, indem jeweils vier Bit zusammengefasst werden. So wie im Dezimalsystem, also bei Verwendung der Basis 10, zur Darstellung der Zahlen zehn Ziffern 0,1,...,9 und im Dualsystem, also bei Verwendung der Basis 2, zwei Ziffern 0,1 benötigt werden, sind im Hexadezimalsystem, also bei Verwendung der Basis 16, nun sechzehn Ziffern 0,...,9,A,B,C,D,E,F erforderlich. A, B, C, D, E und F entsprechen somit den Dezimalzahlen 10, 11, 12, 13, 14 und 15. Die jeweils zu einer Hexadezimalzahl zusammengefassten vier Bit werden als Halbbyte bezeichnet, ein Byte besteht aus acht Bit. Die Zahl 41288Dez lässt sich also mit zwei Bytes als A1 48Hex darstellen. Eine weitere Möglichkeit der Zahlendarstellung besteht in der Kodierung jeder Ziffer einer Dezimalzahl durch ein binäres Wort. Man spricht dann von BCD(engl. Binary Coded Decimal)-Zahlen. Da das

Befehls-Dekoder

Programm-Zähler

Daten-Register

Adress-Register

Arithmetic Logic Unit (ALU)

Verarbeitungseinheit Steuereinheit

Datenbus- treiber

Befehlsbus- treiber

Adressbus- treiber

interner Bus

Bus-Interface

Page 24: IV. Digitale Schaltungen und Systeme - Universität Paderborngroups.uni-paderborn.de/hfe/lehre/Script_elt_4.pdf · Transistor-Transistor-Logik. Hierfür sind Multi-Emitter-Transistoren

A. Thiede Elektronik für den Maschinenbau

107

Dezimalsystem zehn Ziffern erfordert, sind für deren Kodierung also ebenfalls vier Bit erforderlich, wobei nur zehn der dann 15 Kodes benötigt werden. Unsere Beispielzahl wäre damit

BCD

0100 0001 0010 1000 1000 =

Dec 4 1 2 8 8 IV.30 Auch mit BCD-Zahlen kann gerechnet werden, wenn man beachtet, dass bei der Addition die im dezimalen System ja nicht benötigten Ziffern A,...,F zu überspringen sind. Auch dazu ein Beispiel: 8Dec + 6Dec = 14Dec entspräche 1000BCD + 0110BCD = 0001 0100BCD und darf nicht verwechselt werden mit 1000Dual + 0110Dual = 1110Dual oder 8Hex + 6Hex = EHex ! Von der hier besprochenen Zahlendarstellung sorgfältig zu unterscheiden ist die Darstellung der Zeichen in einem Computer, also der Buchstaben A,B,...,Z,... der Sonderzeichen §,$,%,... und natürlich auch der Ziffern. Sie ist standardisiert nach dem ASCII (engl. American Standard Code for Information Interchange). Die Ziffern 0,1,...,9 z.B. entsprechen nach diesem Standard 30Hex,31Hex,...,39Hex.

4.3. Adressierung Die kleinste adressierbare Einheit in einem Computer ist das Byte, d.h. man kann nicht gezielt auf einzelne Bits im Hauptspeicher zugreifen, sondern lediglich auf Abschnitte von jeweils acht Bit, eben die sogenannten Bytes. Die Breite des Adressbusses bestimmt die Anzahl der überhaupt möglichen Adressen und damit die Größe des adressierbaren Speichers. Der 16 bit breite Adressbus des inzwischen legendären C64 ermöglichte z.B. 216 verschiedene Adressen und damit einen Speicher von 216 1 Byte = 64 kByte, wobei ein kByte nicht exakt 1000 Byte sondern 1024 Byte = 210 Byte entspricht. Wir wollen im folgende einige wichtige Adressierungsarten erläutern:

• Bei der vollständigen Adressierung wird die vollständige Adresse des Operanden im Befehl angegeben.

• Bei der indizierten Adressierung stehen ein Teil der Adresse im Befehl und ein weiterer Teil im Indexregister. Dessen Inhalt kann jeweils vor dem entsprechenden Befehl wie gewünscht verändert werden, so dass sich auf diese Weise der adressierbare Speicher wesentlich vergrößern lässt.

• Bei der unmittelbaren Adressierung steht statt einer Adresse der Operand selbst im Befehl. • Bei der impliziten Adressierung ergibt sich der Operand aus dem Befehl, wie z.B. bei dem Befehl

"Lösche den Akkumulatorinhalt !".

4.4. Befehlsausführung Verschaffen wir uns nun zumindest eine erste Vorstellung von der Befehlsabarbeitung in einem Computer. Der Befehl muss in einem maschinenlesbaren Format, also als Dualcode, zweckmäßigerweise für uns verkürzt als Hexadezimalcode geschrieben, vorliegen und kann dann vom Befehlsdekoder entschlüsselt werden. Der im sogenannten Maschinenkode A6 07 lautende Befehl bedeutet z.B. beim Prozessor Motorola 6800: "Lade in den Akkumulator A die Zahl, die unter der Adresse steht, die sich ergibt, wenn man zum Inhalt des Indexregisters die Zahl 07Hex addiert !". Die Programmierung im Maschinenkode erfordert also die Kenntnis der Befehle im Hexadezimalkode. Etwas übersichtlicher kann die Programmierung gestaltet werden, wenn man statt des Hexadezimalkodes einen mnemonischen Kode, also aus unserer Sprache abgeleiteten Abkürzungen verwendet, wobei jedoch jedem Maschinenbefehl in Hexadezimalkode genau ein Mnemonischer Kode entspricht. Ein sogenannter Assembler kann dann vor der Programmabarbeitung die Mnemonischen Kodewörter in die Maschinen- bzw. Hexadezimalkodewörter übertragen. Unser Beispiel würde im Mnemonischen Kode lauten: LDA A,X 07. Damit würde der Befehlsdekoder nun den Befehl A6hex = 1010 0110 dekodieren. Bereits in Abschnitt IV.2.3b,c wurde darauf hingewiesen, dass man dafür heute keine minimierten Schaltnetzwerke

Page 25: IV. Digitale Schaltungen und Systeme - Universität Paderborngroups.uni-paderborn.de/hfe/lehre/Script_elt_4.pdf · Transistor-Transistor-Logik. Hierfür sind Multi-Emitter-Transistoren

A. Thiede Elektronik für den Maschinenbau

108

sondern einen in diesem Fall als Mikroprogramm-ROM bezeichneten Baustein verwendet. In diesem ROM stehen also unter der Adresse A6hex genau die Daten, die als Steuersignale für die entsprechenden Schaltvorgänge der Verarbeitungseinheit benötigt werden. Die Abarbeitung eines Befehls kann einen oder mehrere Zyklen, meist Taktperioden, benötigen. Weitere typische einfache Befehle sind z.B. die Addition, AND- und OR-Verknüpfungen oder das Schieben einer Bitfolge um eine Stelle nach links oder rechts, was der Multiplikation mit zwei bzw. der Division durch zwei entspricht. Zur Beschleunigung komplexerer Rechenoperationen werden Arithmetik-Prozessoren eingesetzt. Die Leistungsfähigkeit eines Prozessors wird in Millionen Befehlen pro Sekunde MIPS (engl. Million Instructions per Second) gemessen und steigt sowohl mit der Taktrate als auch der Verarbeitungsbreite. In den letzten Jahren hat sich jedoch die Geschwindigkeit der Prozessoren wesentlich schneller erhöht, als die Geschwindigkeit der Speicher und Busse. Um die Leistungsfähigkeit der Prozessoren trotzdem möglichst gut ausnutzen zu können, wurde eine Vielzahl von Strategien entwickelt, von denen hier zwei genannt sein sollen:

• Unter Prefetch versteht man, dass bereits während der Abarbeitung eines Befehls weitere Befehle aus dem Speicher geladen werden. Bei Verzeigungen kann es zwar erforderlich werden, diese zu verwerfen und auf das Laden der tatsächlich benötigten Befehle zu warten, trotzdem ergibt sich statistisch ein großer Zeitgewinn.

• Unter einem Cache-Speicher versteht man einen schnellen Speicher, wie in Abschnitt IV.3.4d erwähnt also einen sRAM, möglichst auf dem Prozessor, man spricht dann vom First Level Cache, und nochmals dicht am Prozessor, das wäre dann ein Second Level Cache, der die zuletzt benötigten Befehle und Daten eine gewisse Zeit zwischenspeichert. Da viele Programme Schleifen enthalten, ist die Wahrscheinlichkeit groß, dass damit viele langwierigere Ladeoperationen aus dem Hauptspeicher eingespart werden können.

Eine weitere wichtige Gruppe von Befehlen sind die Sprungbefehle: Unbedingte Sprünge können absolut auf eine bestimmte Adresse oder relativ um eine bestimmte Zahl von Adressen ausgeführt werden. Bedingte Sprünge können in Abhängigkeit von bestimmten Flags des Flagregisters ausgeführt werden. So könnte ein Rücksprung nach n-maligem Durchlaufen einer Schleife programmiert werden, indem man die Zahl n-1 in den Akkumulator lädt, den Inhalt des Akkumulators in jeder Schleife um 1 verringert und den Rücksprung vom Vorzeichen-Flag abhängig macht. Unterprogramme dienen der effektiveren Programmierung von Programmteilen, die wiederholt mit anderen, jeweils aktuellen Daten zu durchlaufen sind. Diese Befehlsfolge wird nur einmal programmiert und die Adresse des letzten Befehls vor dem Eintritt in das Unterprogramm wird in einem bestimmten Hauptspeicherbereich, dem sogenannten Stack (dt. Stapel) gespeichert. Natürlich sind auch Schachtelungen, also Unterprogrammaufrufe aus einem Unterprogramm heraus möglich. In diesem Fall muss eine weitere Adresse im Stack abgelegt werden. Der Stack-Pointer verweist auf die jeweils zuletzt abgelegte Rücksprungadresse, da sie als erste wieder benötigt wird. Dieses Prinzip hatten wird bereits in Abschnitt IV.4.1 mit LIFO bezeichnet. Bild IV.35 zeigt das Prinzip. Bild IV.35: Zur Erläuterung des Stack-Pointers

Speicher- adresse4

Rücksprung- adresse1

Speicher- adresse3

Speicher- adresse2

Speicher- adresse1

Pointer

Speicher- adresse4

Rücksprung- adresse2

Rücksprung- adresse1

Speicher- adresse3

Speicher- adresse2

Speicher- adresse1

Pointer

Page 26: IV. Digitale Schaltungen und Systeme - Universität Paderborngroups.uni-paderborn.de/hfe/lehre/Script_elt_4.pdf · Transistor-Transistor-Logik. Hierfür sind Multi-Emitter-Transistoren

A. Thiede Elektronik für den Maschinenbau

109

4.5. Programmentwicklung Grundsätzlich kann man für die Programmentwicklung drei Ebenen unterscheiden:

• Wir hatten bereits festgestellt, dass die Programmierung im Maschinencode mit einer die Befehlskodes enthaltenen Programmiertabelle sehr aufwendig und für größere Aufgaben nicht praktikabel ist.

• Die Programmierung mit Assembler ermöglicht die Nutzung Mnemonischer Befehle. Anstelle echter Sprungadressen können Marken angegeben werden, mit denen dann der anzuspringende Befehl zu markieren ist. Der Assembler setzt jeden Befehl in genau einen Befehl und die Marken in Speicheradressen um. Er ist also nur eine gewisse Vereinfachung, aber keine Hochsprache.

• Für Hochsprachen wie BASIC, FORTRAN oder aktuell C und C** und viele andere werden Übersetzungsprogramme (engl. Compiler) benötigt, die auf einem hohen Abstraktionsniveau verwendete Befehle in das Maschinenprogramm umsetzen. Ein Hochsprachenbefehl erfordert dabei im allgemeinen eine Vielzahl von Maschinenbefehlen. Der Programmierer hat jedoch keinen direkten Einfluss auf das Maschinenprogramm selbst, so dass die Programmabarbeitung in der Regel wesentlich langsamer ist. Häufig werden daher zeitintensive Operationen mit einem Assembler programmiert und in Hochsprachenprogramme eingebunden.

Soll eine Mikroprozessorsteuerung mit Hilfe eines Assemblers programmiert werden, so ist erforderlich, vor dem Testlauf des Programms eine gründliche Verifikation vorzunehmen.

• Einfache Syntaxfehler werden bereits durch den Assembler bemerkt, da er für fehlerhafte Befehle ja keine Entsprechung findet.

• Unter einer Simulation versteht man die Nachbildung des Zielsystems mit Hilfe eines speziellen Programms, das es erlaubt, z.B. den Inhalt der Register, des Stack usw. ständig zu beobachten. Derartige Simulationssysteme sind sehr flexibel und kostengünstig, da bei einem Wechsel des Prozessors lediglich ein neues Programm erforderlich ist. Die Abarbeitung der Befehle durch ein Programm ist aber deutlich langsamer als das Zielsystem, so dass keine Echtzeitaufgaben bearbeitet werden können.

• Unter Emulation versteht man ein Entwicklungssystem unter Einschluss des Hardware-Zielsystems. Hier sind nun auch Echtzeituntersuchungen möglich, das System ist jedoch relativ teuer und jeweils nur für einen Prozessor nutzbar.

Die Speicherung eines Programms kann dauerhaft in einem Massenspeicher, typisch also auf einer Festplatte oder Diskette, oder in einem ROM erfolgen.