Digitaltechnik für Ingenieure: Eine Einführung 9783486598827

Diese anschauliche Einführung in die Digitaltechnik basiert auf einer großen Anzahl von Praxisbeispielen, die sich am Be

177 88 13MB

German Pages [186] Year 2010

Report DMCA / Copyright

DOWNLOAD FILE

Polecaj historie

Digitaltechnik für Ingenieure: Eine Einführung
 9783486598827

Citation preview

Oldenbourg Lehrbücher für Ingenieure Herausgegeben von

Prof. Dr.-Ing. Helmut Geupel Die fachliche und didaktische

Qualität der Ingenieurausbildung wird

zunehmend an internationalen Maßstäben gemessen. Dieser Herausforderung hat sich ein Autorenteam zusammen mit dem Oldenbourg Wissenschaftsverlag gestellt und die Buchreihe „Oldenbourg Lehrbücher für Ingenieure" geschaffen. Zentrales Anliegen dabei ist, dem Studenten mit anschaulich geschriebenen Texten für das jeweilige Fach ein grundlegendes Verständnis zu vermitteln. Der Praxiseinsatz der ersten Bücher dieser Reihe hat gezeigt, dass es in der Tat den Studenten damit leichter fällt, sich in das neue Stoffgebiet einzufinden, dass sogar Teile davon selbständig angeeignet werden können. Nicht zuletzt wird dadurch die Eigeninitiative der Studenten trainiert eine Fähigkeit, die Voraussetzung für die ständige Weiterbildung im Berufsleben ist und mehr Raum für das Verarbeiten des Lehrstoffes im Unterricht gewonnen. -

-

Oldenbourg Lehrbücher für Ingenieure sind bereits erschienen: Technische Mechanik, Band 1: Statik Bruno Assmann Bruno Assmann Technische Mechanik, Band 2: Festigkeitslehre Bruno Assmann Technische Mechanik, Band 3: Kinematik In der Reihe

und Kinetik Bruno Assmann, Peter Selke Bruno Assmann Axel Böttcher, Franz Kneißl

Joachim Erven, Dietrich Joachim Erven, Dietrich Jürgen Gobrecht Hubert Hinzen Hubert Hinzen Uwe

Schwägerl Schwägerl

Hollburg

Ermenfried Prochaska Herbert Schönherr Fritz Tröster Norbert Weichert, Michael Wülker Herbert Windisch

Aufgaben zur Kinematik und Kinetik Aufgaben zur Festigkeitslehre Informatik für Ingenieure. Grundlagen und Programmierung in C Mathematik für Ingenieure

Übungsbuch zur Mathematik für Ingenieure Werkstofftechnik Metalle Maschinenelemente 1 Maschinenelemente 2 -

Maschinendynamik Digitaltechnik für Ingenieure Spanende Fertigung Steuerungs- und Regelungstechnik für Ingenieure Messtechnik und Messdatenerfassung Thermodynamik

Digitaltechnik

für Ingenieure Eine

Einführung

von

Ermenfried Prochaska

Oldenbourg Verlag München Wien

Bibliografische Information Der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen

Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über abrufbar.

© 2003 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 Krüger Herstellung: Rainer Hartl

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

Inhalt V

Inhalt Vorwort Hinweise zum Inhalt dieses Buchs

XI XIII

1.3

1 Programmierbare Logikschaltungen (PLD) Gründe für die Benutzung von programmierbaren Logikschaltungen.1 Integrierte Schaltungen mit geringerem Integrationsgrad.2 Einteilung der programmierbaren Logikschaltungen.3

1.4 1.4.1 1.4.2

Bauelement GAL22V10.3 Eigenschaften des GAL22V10.4 Aufbau des GAL22V10.5

1.5

Schaltungsentwurf, Simulation und Hardwaretest mit GAL22V10.6 Zusammenfassung.7

1 1.1

1.2

1.6

2.1

8 Beispiel: Kombinatorische Logikschaltung (Schaltnetz) undoder Aufgabenstellung: Schaltnetz und oder.8

2.2

Schaltnetz und oder realisiert mit Schaltern.9

2.3

Tabelle als

2

2.8

Beschreibung des Schaltnetzes und oder.10 Wahrheitstabelle für die Formulierung von Aussagen.10 Realisierung des Schaltnetzes und oder mit logischen Verknüpfungen.12 Schaltungsfunktionen mit Aussagen über Spannungen.14 Zuordnung von Spannungswerten zu logischen Werten in positiver Logik.15 Ausführliche Erklärung der TTL-Pegel.16

2.9

Entwurf des Schaltnetzes und oder mit LOGIC2.17

2.10

Nachweis der Sollfunktion der Schaltung und oder (Verifikation).19

2.11

Schaltungsumsetzung auf die Zielhardware, Hardwaretest.21

2.4

2.5

2.6 2.7

VI

Inhalt

2.12

Zusammenfassung.22

3

Logische Grundschaltungen: UND, ODER, NICHT und XOR

3.1

3.4

Funktionen.25 UND-Gatter (AND gate).26 ODER-Gatter (OR gate).27 Inverter oder Negationsglied (NOT).28

3.5

Schaltbild der Schaltung u

3.6

XOR-Gatter (Antivalenz-Gatter).30

3.7

Zusammenfassung.32

3.8 3.8.1 3.8.2

Übungsaufgaben.32

4

Von der

3.2 3.3

4.1 4.2 4.3 4.4

24

Schaltzeichen und

o

nl im GAL22V10.29

XOR mit drei Eingängen.32 Boolesche Gleichung der Schaltung snl.33

34 Schaltung zur Booleschen Gleichung: Boolesche Algebra Funktion des Schaltnetzes und_oder in Boolescher Algebra.34 Boolesche Gleichung zur Schaltungssynthese der Schaltung und oder.35 Von der Schaltung zur Booleschen Gleichung: nuo.dcb.36 Zusammenfassung.39

4.5 4.5.1 4.5.2

Übungsaufgaben.39

5

40 Praxisbeispiel: Schaltnetz decod26 (Decoder) Einführung in die Themen: Coder, Decoder.40 Aufgabenstellung: Schaltnetz decod26.42 Logikbeschreibung und Synthese der Schaltung decod26 mit Wertetabelle.43 Nachweis der Istfunktion der Schaltung decod26.44 Anschluss an Siebensegmentanzeige und Hinführung zum Dualsystem.45 Zusammenfassung.46

5.1

5.2 5.3

5.4 5.5 5.6

Boolesche Gleichung der Schaltung n_u_o.39 Vereinfachung von Schaltnetzen: Schaltung gat opt.39

5.7 5.7.1 5.7.2

Übungsaufgaben: Schaltnetz.47

6

Zahlensysteme

6.1

Aufbau

Schaltungsentwurf: Coder code_7.dcf..47 Schaltungsentwurf: Decoder deco_7.47 von

48

Zahlensystemen.48

Inhalt

VII

6.2 6.2.1 6.2.2

Dualdarstellung fur natürliche Zahlen.50

6.3 6.3.1 6.3.2

Zweierkomplement zur Darstellung von negativen ganzen Zahlen.55 Zuordnung ganzer Zahlen zu Dualzahlen in Zweierkomplementdarstellung.56 Umwandlung einer negativen ganzen Zahl in eine Dualzahl im Zweierkomplements8 Erweiterung der Stellenzahl einer negativen Dualzahl.59 Zahlenbereichsüberschreitungen bei Verwendung von Zweierkomplementzahlen fester Wortbreite.60 Vergleich der Dualzahlen im Zweierkomplement mit Dezimalzahlen im Zehnerkomplement.62 Vergleich der Addition im Dualsystem von Zahlen mit und ohne Vorzeichen.63 Hexadezimaldarstellung als Kurzschreibweise für Dualzahlen.64 Hexadezimalzahlen zur übersichtlichen Darstellung von Simulationsergebnissen.. 67 Zusammenfassung.67

6.3.3 6.3.4 6.3.5 6.4 6.5

6.6 6.7 6.8 6.8.1 6.8.2

Rechnen mit Dualzahlen als natürlichen Zahlen.53 Zahlenbereichsüberschreitung für natürliche Zahlen fester Wortbreite.54

Übungsaufgaben.68

6.8.3 6.8.4

Zahlenumwandlung: natürliche Dualzahlen.68 Zahlenumwandlung: Dualzahlen im Zweierkomplement.68 Zahlenumwandlung: Hexadezimalzahlen.68 Addition von Dualzahlen.69

7

Praxisbeispiel: Schaltnetz eines Addierers (add_4bit)

7.1

Aufgabenstellung: Schaltnetz add_4bit.70

7.2

Modul: Volladdierer mit Wortbreite 1 bit add lbit.70 Entwurf des 4 bit Addierers add_4bit.73

7.3 7.4 7.4.1 7.4.2

7.4.3

70

Prüfprogrammerstellung.75 Auswirkungen der Schaltungsstruktur auf das Prüfprogramm.75

Überlegungen zum Prüfmuster.75

7.5

Hardwaretest.78 Zusammenfassung.78

8

Vom Schaltnetz zum Schaltwerk

8.1

leds:

8.2

RS-Latch mit NOR-Gattern als

8.3

Diskussion des

8.4 8.5 8.6

79

Beispiel für ein Schaltwerk.79 Speicherelement.80

Zeitdiagramms des NOR-Latchs.82 Zustandsfolgetabelle zur Beschreibung des RS-Latchs.87 Taktflankengesteuertes D-Flipflop (D-flip-flop).89 D-FF: Zustandsdiagramm.90

VIII

Inhalt

8.7

Anschlüsse des in L0GIC2 verwendeten D-Flipflops.92

9

Medwedew-Automat:

9.1

Medwedew-Automat.94

9.2

leds:

Schaltwerksbeispiel leds

94

9.3

Schaltungsentwurf mit Zustandsdiagramm.95 Hardwareentwurf und Erklärungen der Funktion von leds.95

9.4

Nachweis der Sollfunktion von leds.99

9.5

Zusammenfassung.99

9.6

Übungsaufgabe: Schaltwerk led0231. 100

10

Medwedew-Automat:

10.1

101 Schaltwerksbeispiel leucht leucht: Erweiterung der Schaltung leds.101

10.3

Hardwareentwurf..102 Nachweis der Sollfunktion von leucht.103

10.4

Zusammenfassung.105

10.5

Übungsaufgabe: Schaltwerk schritt.105

11

Medwedew-Automat:

11.1

leuchtr als Medwedew-Automat.106

11.2

Hardwareschaltung leuchtr.107

11.3

Nachweis der Sollfunktion von leuchtr.108

11.4

Zusammenfassung.110

11.5

Übungsaufgabe: Schaltwerk schrittr.110

12

Moore-Automat: Schaltwerk leuchtr

12.1

12.2

Moore-Automat.111 leuchtr als Moore-Automat.112

12.3

Hardwareentwurf.113

12.4

Nachweis der Sollfunktion von leuchtr als Moore-Automaten.114

12.5

Zusammenfassung.115 Übungsaufgabe: Schaltwerk schrjno.116

10.2

12.6

Schaltwerksbeispiel leuchtr

106

111

13.1

117 Mealy-Automat: Schaltwerk leuchtr Mealy-Automat.117

13.2

leuchtr als

13

Mealy-Automat.118

IX

Inhalt 13.3

Hardwareentwurf.119

13.4

Nachweis der Sollfunktion des

13.6

Mealy-Automaten.120 Zusammenfassung.121 Übungsaufgabe: Schaltwerk schrjnea.121

14

Vergleich zwischen Mealy-, Moore- und Medwedew-Automaten

15 15.2

124 Förderbandsteuerung/om/fcT Aufgabenstellung: Förderbandsteuerung.124 Blockschaltbild der Förderbandsteuerung.125

15.3

Nachweis der Sollfunktion.130

15.4

Zusammenfassung.133

16

134 Drehrichtungsanzeige dreh Aufgabenstellung: Drehrichtungsanzeige.134 Signalverlauf der Werteänderungen beim Drehen.136 Zustandsdiagramm dreh.137

13.5

15.1

16.1 16.2

122

16.3 16.3.1 16.3.2 16.3.3 16.3.4 16.3.5 16.3.6 16.3.7 16.3.8 16.3.9

Rechtsdrehung.139 Linksdrehung.140 Zusammenfügen der beiden Teildiagramme fur Rechts- und Linksdrehung.141 Restliche Anfangszustände.142 Drehrichtungsänderung.142 Vollständiges Zustandsdiagramm dreh.143 Logikschaltung von dreh.146 Nachweis der Sollfunktion der Schaltung.146

17

Entwicklung umfangreicher Schaltungen

152

18

Hinweise zum Arbeiten mit LOGIC2

155

18.1

Nutzung von LOGIC2 als ergänzendes Arbeitsmittel.155

18.2

Arbeiten mit LOGIC2.156

19

Hinweise

20

158 Lösungsvorschläge zu den Übungsaufgaben Lösungen Kapitel 3: Logiktabelle und Boolesche Gleichungen.158 Logiktabelle XOR mit drei Eingängen.158 Boolesche Gleichung der Schaltung snl.158 Lösungen Kapitel 4: Boolesche Gleichungen.159

20.1 20.1.1 20.1.2

20.2

Grundzustand.138

zur

Experimentierschaltung GALEX

157

Inhalt

X

Gleichung der Schaltung n u o.159 Vereinfachung von Schaltnetzen.159 20.3 Lösungen Kapitel 5: Schaltnetze.159 20.3.1 Coder codej.159 20.3.2 Decoder deco_ 7.159 20.4 Lösungen Kapitel 6: Dualzahlen.160 20.4.1 Zahlenumwandlung: natürliche Dualzahlen.160 20.4.2 Zahlenumwandlung: Dualzahlen im Zweierkomplement.160 20.4.3 Zahlenumwandlung: Hexadezimalzahlen.161 161 20.5 Lösung Kapitel 9: Schaltwerk led0231 20.6 Lösung Kapitel 10: Schaltwerk schritt.161 20.7 Lösung Kapitel 11: Schaltwerk schrittr.162 20.8 Lösung Kapitel 12: Schaltwerk schrjno.164 20.9 Lösung Kapitel 13: Schaltwerk schr mea.165 20.2.1 20.2.2

Boolesche

.

167

21

Verzeichnisse

21.1

Literaturverzeichnis.167

21.2

Stichwortverzeichnis.167

Vorwort Veränderungen in den Technologien öffnen neue Wege in der Entwurfstechnik. Aus den einzelnen Verknüpfungsschaltungen aus der Anfangszeit der Digitaltechnik sind hunderttausende von programmierbaren Logikblöcken geworden. Parallel zum Fortschritt der Integrationstechnik hat sich die Entwurfssoftware weiterentwickelt, die sich leistungsfähiger PCs bedient. Entwurfswerkzeuge sollten daher von Anfang an benutzt werden, um sie beherrschen und beurteilen zu können. Liegen dann Erfahrungen mit einfachen Beispielen vor, kann man sich auch selbständig an schwierigere Aufgaben heranwagen. Voraussetzung dafür ist die Möglichkeit, die Funktion einer Schaltung selbst nachweisen zu können. Digitaltechnik für Ingenieure Ein Einführungsbuch in die Digitaltechnik extra für Ingenieure? Die wollen doch sowieso lieber ihr in ihrem eigenen Fachgebiet arbeiten als sich mit Digitaltechnik befassen! Dennoch: alle angehenden Ingenieure wissen, dass ohne Digitaltechnik heute nichts mehr geht. Kein modernes Flugzeug würde mehr fliegen, kein Roboter sich bewegen, kein Handy mehr klingeln, und die billige Armbanduhr würde keine hochgenaue Zeit mehr anzeigen! Je schneller Studierende der

Ingenieurstudiengänge

ihre

Berührungsängste

vor

dem Thema

Digitaltechnik überwinden, desto besser werden sie mit den Problemstellungen ihres eigenen Fachgebiets

lerschwerste

zurechtkommen. Und da erfahrungsgemäß der ist, soll dieses Buch dabei helfen.

Anfang

immer das Al-

eigenen Beobachtung bei der Einführung in die Digitaltechnik fällt es besonders denjenigen schwer, sich einzuarbeiten, die vorher noch wenig Umgang mit elektrischen Schaltungen hatten. Sogar einfache Sachverhalte erscheinen undurchschaubar, weil sich an irgendeinem Punkt der Überlegung eine Barriere aufgebaut hat, die von der Sache her zwar Aus meiner

unbedeutend sein kann, aber dennoch schwer zu überwinden ist.

Dieses Buch ist deshalb bewusst einfach gehalten. Alle Erklärungen sind sehr ausführlich und versuchen, auf möglichst viele mit dem Problem verbundenen Einzelheiten einzugehen. Diese Ausführlichkeit mag dem Einen oder Anderen an manchen Stellen sogar lästig sein. Ich erinnere mich aber an früher, als ich vor allem in Grundlagenbüchern notwendige Details für die Erklärung oft schmerzlich vermisst habe. Insbesondere ist mir folgender Satz im Gedächtnis geblieben: -

„Wie man sieht, kann man die Schaltung leicht vereinfachen ...!"

-

Vorwort

XII

Diese „Vereinfachung" war meist ziemlich kompliziert, und erst nach langem Überlegen und Probieren habe ich das vorgegebene Ergebnis schließlich erreicht... oder auch nicht!

Aufgrund meiner eigenen mühevollen Erfahrung bin ich zuversichtlich, dass es mir gelingen wird, viele der Fallstricke zu beseitigen, die mir selbst den Einstieg in die Digitaltechnik schwer gemacht haben. An dieser Stelle ist es mir wichtig, auf meine Hauptquelle hinzuweisen. Bereits in den 70er Jahren wurden an der Universität Karlsruhe unter der Leitung von Prof. Dr. Lipp richtungsweisende Arbeiten zum Entwurf digitaler Schaltungen durchgeführt. Diese Arbeiten bildeten den theoretischen Hintergrund für meine Arbeit in der Industrie und meine Tätigkeit in der Lehre. Dank

Viele Personen sind direkt oder indirekt daran beteiligt gewesen, dass dieses Buch so geworden ist, wie es jetzt vorliegt. Den entscheidenden Anstoß, dieses Buch zu schreiben, hat mir Herr Windisch gegeben, wofür ich ihm sehr dankbar bin. Er hat mir viele nützliche Hinweise zur Verbesserung dieses Buches gegeben. Meine Frau Sabine hat mit profundem Wissen den Buchtext vollständig sprachlich überarbeitet. Ohne ihre Unterstützung und ihr großes Verständnis für diese Arbeit wäre das Buch nicht entstanden. Dafür gilt ihr mein ganz besonderer Dank. Da das Buch eine Zusammenfassung meiner Erfahrungen der vergangenen Jahre ist, haben viele Kollegen in zahllosen Diskussionen geholfen, mir Klarheit über schwierige Sachverhalte zu verschaffen, die in diesem Buch dargestellt werden. Intensive Fragen meiner Studierenden und ihre vielen nützlichen Hinweise haben ebenfalls dazu beigetragen, komplexe Zusammenhänge verständlicher zu formulieren. Herr Gruhler und ich haben gemeinsam mit Herrn Spohrer und Studierenden der FH Heilbronn die Experimentierplatine GALEX entwickelt, die im Laufe der Zeit zu der Art und Weise geführt hat, wie ich die Digitaltechnik seit geraumer Zeit lehre. Herr Auth hat mir in den Jahren gemeinsamer Arbeit viele Impulse gegeben, die der Verbesserung meiner Lehre gedient haben. Er hat es auch auf sich genommen, einige Kapitel zu korrigieren. Herr Ditzinger korrigierte das gesamte Manuskript. Es stellte in großzügiger Weise die Softwareentwicklungsumgebung LOGIC2 zur Verfügung. Dadurch erhalten alle Studierenden Zugang zu einem leistungsfähigen Werkzeug, mit dessen Hilfe bessere Logikschaltungen entworfen werden können. Er war auch in vielen speziellen und schwierigen Fragen zu LOGIC2 immer ein geduldiger Helfer. Herr Buhnila hat ebenfalls den gesamten Text und die Beispiele sorgfältig überprüft. Seine Hinweise auf Unklarheiten und Unstimmigkeiten haben zur Lesbarkeit des Buches beigetragen. Nicht zuletzt haben mich Frau Krüger und Herr Jäger vom Oldenbourg Verlag intensiv unterstützt. Herr Jäger fand bei all den vielen Problemen mit MS-Word immer einen Ausweg. Ihnen allen danke ich für ihre wertvolle Unterstützung! Im

Übrigen: „Wir irren allesamt, nur jeder irrt anders." Georg Christoph Lichtenberg

Heilbronn

Ermenfried Prochaska

Hinweise zum Inhalt dieses Buchs Im

vorliegenden Buch Digitaltechnikfür Ingenieure werden die Grundlagen der Digitaltechvor allem mit Hilfe von Praxisbeispielen aus dem Maschinenbau erklärt. Die Beispiele aus dem Maschinenbau sollen die Anschaulichkeit des Buches verbessern und zeigen, wie dort die Digitaltechnik angewandt wird. Ich gehe davon aus, dass Ingenieure aller Fachgebiete diese Ausgabenstellungen leicht nachvollziehen können. nik

Neu an diesem Buch die aktive Mitarbeit.

ist,

es

kann nicht

nur

gelesen werden,

sondern

ermöglicht

dem Leser

Wesentlich dabei ist: -

-

-

Die Theorie wird am Praxisbeispiel erklärt Programmierbare Logikschaltungen stehen im Vordergrund Alle Praxisbeispiele kann der Leser mit dem beiliegenden Softwaresystem LOGIC2 simulieren und damit selbst überprüfen Mit Übungsaufgaben und deren Lösungen können die Inhalte vertieft werden.

Praxisbeispiele werden mit Hilfe einer einfachen Beschreibungssprache (HDL: HardDescription Language) programmiert oder grafisch mit Zustandsdiagrammen entworfen. Das mag sich für den Einsteiger in die Digitaltechnik kompliziert anhören, ist aber in der Praxis halb so schlimm. Wer sich mit Hilfe der Anleitungen in diesem Buch einmal damit beschäftigt hat, wird feststellen, dass er mit den verschiedenen Softwarewerkzeugen gut zurechtkommen kann. Als Rettungsanker ist immer eine fehlerfreie Lösung zum Nachlesen aufbereitet. Vorausgesetzt wird aber, dass der Leser bereits Erfahrungen mit PCs gesammelt hat und Programme auf einem PC selbständig installieren kann. Die Schaltungsbeschreibung in HDL wird vom Programm LOGIC2 in eine Schaltungslogik umgesetzt (synthetisiert), die dann simuliert werden kann. Dadurch entsteht ein direkter Bezug zwischen Aufgabenstellung und Lösung, der vom Leser nachvollzogen werden kann. Verfahren wie beispielsweise Schaltungsoptimierung nach Karnough werden nur am Rande betrachtet, da sie bei den Schaltungskomplexitäten von CPLDs (Complex Programmable Alle

ware

Logic Device) und FPGAs (Field Programmable Gate Array) nur noch mit Hilfe von Software durchgeführt werden können. Deshalb treten manuelle Optimierungsverfahren in den Hintergrund. Prüfbarkeit ist eine wichtige Schaltungseigenschaft, die von Anfang an mit entwickelt werden muss. Im Unterschied zur üblichen Literatur liegt der Schwerpunkt dieses Buches auf

Hinweise zum Inhalt dieses Buchs

XIV

dem Entwurfsprozess mit der notwendigen Verifikation der Zwischenergebnisse. Obwohl der Schaltungsentwurf im Mittelpunkt steht, ist Digitaltechnik fiir Ingenieure für Leser gedacht, die sich in die Digitaltechnik einarbeiten wollen. Anhand der einzelnen Abschnitte des Entwurfsprozesses kann der Leser wesentliche Eigenschaften und Verhaltensweisen von Logikschaltungen verfolgen. Er erkennt, welche Ideen und Vorstellungen in eine Digitalschaltung umgesetzt werden und welches Ergebnis sich daraus ergibt. Wo steckt Digitaltechnik im

Alltag? Aus unserem täglichen Leben ist die Digitaltechnik nicht mehr wegzudenken. Mobiltelefone, Taschenrechner und Digitaluhren begleiten uns auf Schritt und Tritt; kein Femseher, keine Stereoanlage ist mehr ohne Fembedienung. Kein Mikrowellengerät, kein Elektroherd, ja, nicht einmal der Staubsauger wird ohne eingebauten Mikroprozessor angeboten, ganz zu schweigen vom Auto! Oft sind diese meist unsichtbaren Geister der besseren Bedienung wegen eingebaut wenn auch nicht immer mit dem erhofften Erfolg. In der Industrie sind Mikroprozessoren in jeder speicherprogrammierbaren Steuerung (SPS). Solche Prozessoren, die beispielsweise ein Fräszentrum oder eine Fertigungsinsel steuern, sind gänzlich unverzichtbar geworden. Das gilt genauso für den PC, auf dem dieser Text geschrieben wurde. Neben dem Mikroprozessor und den Speichern sorgen außerdem programmierbare Logikschaltungen dafür, dass der Text verarbeitet und danach gedruckt wer-

den kann.

Die Digitaltechnik ist keine neue Technik. Viele der Ideen, die heute verwendet werden, wurden bereits für die Vermittlungstechnik der Femsprechanlagen erdacht und mit elektromechanischen Relais' in die Praxis umgesetzt. Durch die vielfältigen Verflechtungen der Digitaltechnik mit den verschiedensten Produkten ist für jeden Ingenieur Grundlagenwissen über Digitaltechnik absolut wichtig. In vielen Situationen ist er nämlich derjenige, der beurteilen muss, ob die Digitaltechnik bei einer Problemlösung hilft oder gar selbst das Problem ist!

Entwicklungsumgebung Die veränderte Schaltungstechnik mit programmierbaren Logikschaltungen ist der Grund, warum bereits für die Einführung in die Digitaltechnik die rechnergestützte Entwurfstechnik angewendet wird. Da programmierbare Logikschaltungen intern mit unterschiedlichen Verknüpfungselementen arbeiten, ist ein Schaltungsentwurf ohne Entwicklungsunterstützung nur noch schwer möglich. Manuelle Verfahren setzen bestimmte Verknüpfungselemente voraus, die vielleicht in der Zielhardware gar nicht vorhanden sind. Die Entwicklungsumgebung kann jedoch Schaltungen an verschiedene Zielhardware anpassen. Im Vordergrund steht aber noch ein anderes Problem: selbst wenn der Entwickler seine Schaltung manuell entworfen hat, muss er die Logikschaltung noch programmieren. Die dazu notwendige Datei kann in der Entwicklungsumgebung direkt erzeugt werden. Es gibt gute Gründe dafür, warum das Programm LOGIC2 eingesetzt wird. Die hier eingesetzte Schaltungsentwurfsumgebung LOGIC2 entspricht dem Stand der Technik. Ausserdem ist es vorteilhaft, bereits in der Anfangsphase der Schaltungsentwicklung die strukturierte

XV

Hinweise zum Inhalt dieses Buchs

in einer passenden Entwurfsumgebung zu erlernen. Sie ermöglicht ein schnelles Einarbeiten in die wichtigsten Prinzipien rechnergestützter Entwürfe von Digitalschaltungen, so dass bei Bedarf leicht auf herstellerabhängige Entwurfssysteme umgestiegen

Vorgehensweise

herstellerspezifische Entwicklungsumgebungen sind auf spezielle Bauelementefamilien ausgerichtet und wechseln ständig ihre Versionen, so dass keine verlässliche Basis zum Lernen zur Verfügung steht.

werden kann. Viele

Die Transistor- und Integrationstechnik ermöglicht Problemlösungen, die bisher undenkbar In vielen Jahrzehnten ist die Entwicklung nun so weit fortgeschritten, dass programmierbare Logikschaltungen in großer Anzahl kostengünstig produziert werden. Diese Schaltungen gehören zu den VLSI-Schaltungen (Very Large Scale Integrated Circuits). Durch sie wurde vor allem möglich, auf sehr kleinem Raum sehr viele Transistoren zu einer Digitalschaltung zusammenzufügen. Dazu ein Beispiel aus der Praxis: das Gehäuse einer programmierbaren Logikschaltung mit den Abmessungen 40 mm mal 40 mm hat über 200 Ein- und Ausgänge und mehr als 6000 mächtige Logikzellen! Dies bietet ausreichend Raum für hochkomplexe Schaltungen mit vielen Signalanschlüssen. Die 200 Ein- und Ausgänge können nur noch über so genannte Ball Grid Arrays verbunden werden. Zugegebenermaßen übersteigen diese Dimensionen fast das Vorstellungsvermögen selbst des Fachmannes, der noch in der früher üblichen Kategorie der LSI-Technik (LSI: Large Scale Integration) mit 40poligen DIL-Gehäusen (DIL: Dual In Line) umging. waren.

Große Digitalschaltungen können nur mit leistungsfähigen Softwaresystemen entworfen werden. Auch die hier verwendeten programmierbaren Logikschaltungen erfordern eine Entwurfstechnik, die manuell nicht mehr sinnvoll durchgeführt werden kann. Deshalb werden die allgemein notwendigen Entwicklungsprinzipien zunächst an sehr einfachen und überschaubaren Beispielen erarbeitet. Die dabei gewonnenen Erkennmisse erleichtem das Verständnis von Digitalschaltungen wesentlich und sind auf große Schaltungen übertragbar. Mit diesem Buch wird ein Weg angeboten, der dabei hilft, und ohne große Umwege begreifen zu lernen.

digitale Schaltungen prinzipiell

Welche Vorkenntnisse sind erforderlich? Die Grundlagen der Elektrotechnik müssen bekannt sein. Das Verständnis Gesetz sowie von Maschen- und Knotenpunktsatz werden vorausgesetzt.

vom

Ohmschen

Leser, der die Digitalschaltungen selbst auf seinem Rechner simulieren will, muss der Umgang mit einem PC geläufig sein, insbesondere der Umgang mit dem Betriebssystem Windows 95, 98 oder NT und einem Texteditor. Er muss einen handelsüblichen PC mit dem Betriebssystem Windows 95, 98 oder NT zur Verfügung haben und schon selbst Programme von CD auf einen PC installiert haben. Das Programmsystem LOGIC2 muss auf dem Rechner installiert werden, um damit arbeiten zu können. Der benötigte Platz auf der Festplatte Dem

beträgt ca. Welche

100 MB.

Zielgruppen sollen erreicht werden?

Zielgruppen

welche die

allem Studierende von Ingenieurstudiengängen an Fachhochschulen, Grundlagen der Digitaltechnik lernen wollen. In den vergangenen vier Jahren

sind

vor

Hinweise

XVI

zum

Inhalt dieses Buchs

vorliegende Lernmethode jeweils im zweiten oder vierten Studiensemester mit Erfolg erprobt, wobei die Ergebnisse im vierten Studiensemester erwartungsgemäß besser

wurde die waren.

Das Buch orientiert sich an Beispielen des Maschinenbaus, ist aber für andere Studiengänge ebenfalls hilfreich, da die Beispiele auch Studierenden anderer technischer Fachrichtungen aus der Praxis geläufig sind. Wegen der Simulationsmöglichkeit ist dieses Lehrbuch auch für Studierende an Universitäten interessant. Es können vertiefende Untersuchungen durchgeführt und weiterfuhrende Entwurfstechniken damit selbständig erprobt werden. Die im Softwareentwurfssystem LOGIC2 beigefügten Unterlagen ergänzen das Buch und unterstützen den Lemprozess.

Aber auch für den technisch interessierten Laien kann dieses Buch hilfreich sein. Wer daran interessiert ist, sich einen ersten systematischen Überblick über die Grundlagen der Digitaltechnik zu verschaffen, hat gute Chancen, dabei erfolgreich zu sein. Wie wird mit diesem Buch

gearbeitet?

Auch ohne dass die Beispiele mit Hilfe von LOGIC2 synthetisiert und simuliert werden, kann das Buch mit Gewinn gelesen werden. Da jedem Beispiel das Synthese- und das Simulationsergebnis beigefügt ist, kann auch derjenige mit dem Buch arbeiten, der aus welchen Gründen auch immer nicht in der Lage ist oder nicht den Wunsch hat, die Schaltung selbst auf dem Rechner zu bearbeiten. Allerdings kann es im Einzelfall schwieriger sein, die Schaltungsfunktion nur auf dem Papier nachzuvollziehen. -

-

größtmögliche Lerneffekt kann ohne Zweifel erzielt werden, wenn jedes Praxisbeispiel selbst simuliert und auf diese Weise seine Funktion selbständig nachvollzogen wird. Auch kleinere Änderungen in der Schaltung sind möglich, um ihre Auswirkungen dann im Simulationsergebnis zu beobachten. Solche Erfahrungen tragen erheblich dazu bei, das Verständnis zu vertiefen und das Wissen zu vernetzen. Der

Welche Lernziele werden

angestrebt? Die Leser sollen die Fähigkeit entwickeln, einfache kombinatorische und sequentielle Logikschaltungen selbst zu entwerfen. Außerdem wird Verständnis für logische Variablen und die logischen Grundschaltungen UND, ODER und NICHT geweckt. Die Formulierung logischer Verknüpfungen ermöglicht den Entwurf verschiedener kombinatorischer Logikschaltungen, deren Funktion in jedem Fall nachgewiesen wird. Darauf aufbauend werden sequentielle Logikschaltungen entworfen, vor allem Schaltwerke nach Medwedew. Diese werden wegen ihrer Funktionssicherheit und ihrer klaren Struktur in

Vordergrund gestellt. Andere Schaltwerkstypen wie Moore-Automaten oder Mealy-Automaten werden zwar erklärt, in den Beispielen aber nicht vertieft. Ihre Prinzipien können jedoch mit dem erarbeiten Wissen trotzdem gut verstanden werden. den

Sequentielle Logikschaltungen Dies ist eine

von

mehreren

werden mit einem

Entwurfsarten, die

Zustandsdiagramm grafisch eingegeben.

im hierarchischen Entwurf für Schaltwerke

Hinweise zum Inhalt dieses Buchs seit langem erfolgreich eingesetzt werden. Dadurch wird die widerspruchsfreie einer Funktion unterstützt.

XVII

Formulierung

Die Erkenntnisse, die der Leser im Laufe der einzelnen Entwurfsschritte gesammelt hat, kann er anhand der Beispiele und Übungsaufgaben anwenden. Die beigefügten Lösungen ermöglichen ihm, seine Fortschritte selbst zu beurteilen. Was das Buch nicht leistet

Die

der Digitaltechnik wird nicht angesprochen. Das bedeutet verschiedene unter anderem, dass Typen von Logikschaltungen, die noch bis heute eingesetzt werden, nicht erklärt werden. Als einzige Zielhardware wird das GAL22V10 verwendet, das stellvertretend auch für andere Technologien steht. Aus diesem Grund werden die verschiedenen Technologien programmierbarer Logikschaltung nur sehr kurz erklärt. Das im Buch verwendete Bauelement GAL22V10 hat zehn Eingänge, die nicht mehr von Hand optimiert werden können. Die Schaltungsoptimierung wird ausschließlich vom Syntheseprogramm der

geschichtliche Entwicklung

Entwurfsumgebung durchgeführt. Ebenfalls wird nicht auf Details der Hardwareschaltungstechnik eingegangen, wie beispielsweise auf die Funktion eines Taktgenerators oder den Anschluss verschiedener Geräte an eine Digitalschaltung. Auch auf notwendige Treiberschaltungen oder Pegelumsetzer wird nicht näher eingegangen.

Regeln der Booleschen Algebra werden nicht geübt, ebenso wenig die Optimierung von Schaltungen mit dem Karnaugh-Veitch Diagramm. Die Definitionen und Eigenschaften verschiedener Codes (Graycode, Fernschreibcode) sind Die

ebenfalls nicht Teil des Buches.

Programmierbare Logikschaltungen (PLD)

1

Im diesem Abschnitt wird -

-

-

erklärt,

welche Arten von programmierbaren Logikschaltungen es gibt warum die Schaltungen dieses Buches für die programmierbare 22V10 entworfen wurden wie die programmierbare Logikschaltung GAL22V10 aufgebaut ist wie sie programmiert wird.

Logikschaltung

GAL

-

Hinweis: Teilweise müssen in diesen Erklärungen Fachausdrücke verwendet werden, die erst verständlich sind, nachdem die Kapitel 1-10 durchgearbeitet wurden. Es empfiehlt sich, gegebenenfalls im Stichwortverzeichnis nachzuschlagen. Die

erklärt,

1.1

werden in diesem Abschnitt nur sehr vereinfacht da es, ähnlich wie bei den Mikrocontrollern, von ihnen sehr viele Varianten gibt.

programmierbaren Logikschaltungen

Gründe für die

Benutzung von

programmierbaren Logikschaltungen Die Lehre der Digitaltechnik wird in zunehmendem Maße auf der Basis von programmierbaren Logikschaltungen aufgebaut. Für eine Einführung in die Digitaltechnik ist eine programmierbare Logikschaltung deshalb besonders geeignet, weil sie wegen ihrer Programmierbarkeit dem Anwender die Möglichkeit gibt, die Schaltungslogik für verschiedene Beispielanwendungen in dasselbe Bauelement herunterzuladen. Die Schaltungsreaktion der jeweils aktuell programmierten Logik kann dann überprüft werden. Will der Anwender Schaltungsänderungen durchfuhren, können ihre Auswirkungen im selben Bauelement immer wieder neu überprüft werden, da vor jeder neuen Programmierung die vorhergehende Logikinformation gelöscht wird. Ein weiterer Vorteil für den Lernenden ist, dass auf dem Markt Experimentierschaltungen erhältlich sind, die oft als „Evaluation Kits" der Bauelementehersteller verkauft werden. Der Lernende kann die entworfene Logikschaltung bequem auf die programmierbare Logikschal-

2

1

Programmierbare Logikschaltungen (PLD)

rung eines Kits hemnterladen. Die Eingänge dieser Experimentierschaltungen sind meist mit einfachen Schaltern und die Ausgänge mit Leuchtdioden verbunden. Damit lassen sich bereits ganz unterschiedliche Prinzipien der Schaltungsentwurfstechnik zufriedenstellend überprüfen. Meist sind auch Taktgeneratoren in den Experimentierschalrungen mit eingebaut, so dass auch Schaltungen mit Flipflops sinnvoll angesteuert werden können.

Programmierbare Logikschaltungen bieten sich insbesondere deshalb an, weil ihre Schalmngsfünktion im Rahmen der vorgegebenen Kombinationsmöglichkeiten vom Benutzer bestimmt werden kann. Programmierbare, im Gerät eingebaute Logikschaltungen lassen sich über dafür vorgesehene Schnittstellen sogar von einem PC aus programmieren. Dies ist für das Wartungspersonal von großem Vorteil. Die Tatsache, dass die Schaltungslogik durch Software bestimmt wird, wirkt sich auf den Schaltungsentwurf aus. Der sinnvolle Einsatz programmierbarer Bauelemente setzt aber eine leistungsfähige Entwicklungsumgebung voraus, mit der die Aufgabenstellung formuliert und die Schaltung synthetisiert wird. Das Programmsystem LOGIC2 auf der beigefügten CD bietet eine Entwurfsumgebung speziell für das im Buch verwendete Bauelement GAL22V10 und weitere Logikschaltungen. LOGIC2 darf kostenlos verwendet werden. Es ist lediglich eine Registrierung erforderlich. LOGIC2 kann für den Schaltungsentwurf, die Schaltungssimulation und die Erstellung der Programmierdatei der Logikschaltungen verwendet werden. Darüber hinaus wird von allen Bauelementeherstellern kostenlose Entwurfssoftware inklusive Software zum Herunterladen der Programmierdaten angeboten. Diese Software hat zwar Einschränkungen, die aber für die Einführung in die Digitaltechnik unerheblich sind.

1.2

Integrierte Schaltungen mit geringerem Integrationsgrad

Integrierte Schaltungen geringeren Integrationsgrades werden selbstverständlich noch immer in der Praxis eingesetzt. Ihre Funktion kann mit Hilfe des erarbeiteten Wissens aus diesem Buch auf eigene Faust erkundet und nachvollzogen werden. Deshalb wird nicht näher auf diese Schaltungen eingegangen. Bei ihnen handelt es sich um Logikschaltungen mittlerer Komplexität, wie Zähler und Addierer, die mit logischen Grundverknüpfungen zu einer Gesamtfunktion verbunden werden können. Genaueres kann darüber in [GB96] nachgelesen werden.

1.3

Einteilung der programmierbaren Logikschaltungen

1.3

3

Einteilung der programmierbaren Logikschaltungen

Programmierbare Logikschaltungen (Programmable Logic Device) sind in verschiedenen Ausfuhrungsformen Stand der Technik. Man kann sie in zwei Gruppen einteilen, die CPLD (Complex Programmable Logic Device) und FPGA (Field Programmable Gate Array). Diese Bezeichnungen sind historisch vergeben worden und werden daher nicht einheitlich benutzt. Einige Schaltungshersteller haben auch ganz eigene Bezeichnungen für ihre Bauelemente geschaffen. Eine weitere übliche Bezeichnung für einfache programmierbare Logikschaltungen ist GAL (Generic Array Logic). Bei einer CPLD handelt es sich um eine Schaltung, die ihre Programmierinformation auch nach dem Abschalten der Versorgungsspannung dauerhaft speichert. Sie ist aus Logikblöcken aufgebaut, die in einer Matrix angeordnet sind. Die Logikblöcke selbst sind bei CPLDs beispielsweise in eine bestimmte Anzahl von Makrozellen unterteilt. Diese Makrozellen bestehen im Prinzip aus Verknüpfüngslogik und einem Flipflop. Da sowohl die Logik der Makrozellen als auch die Verdrahtung von Zellen und Logikblöcken untereinander über Matrizen programmierbar sind, eignen sich diese Bauelemente für diverse Anwendungen. Man spricht wegen der Größe der Logikblöcke von einer grob granulären Struktur einer CPLD. Ihre Komplexität wächst mit den Fortschritten der Technologie ständig. Einige hundert Flipflops in einem Bauelement sind üblich. Ein FPGA weist eine feinere granuläre Struktur auf. So genannte Logikblöcke sind ebenfalls in einer Matrix angeordnet. Die einzelnen Logikblöcke können in Verdrahtungskanälen miteinander verbunden werden. In den Verdrahtungskanälen stehen unterschiedlich lange Verbindungsleitungen zur Verfügung. Darüber hinaus kann man die Verbindungsleitungen mit Verbindungselementen miteinander verbinden. Dadurch ergeben sich für die Logikpfade unterschiedliche Verzögerungszeiten. Die Anzahl der Logikblöcke ist sehr hoch. FPGAs haben deshalb eine Schaltungskomplexität, die im Bereich von 100000 Gatteräquivalenten (Anzahl von logischen Grundverknüpfungen) liegt. CPLD und FPGA sind Logikschaltungen mit einem hohen Integrationsgrad und werden deshalb den VLSI-Schaltungen (Very Large Scale Integrated Circuits) zugeordnet.

1.4

Bauelement GAL22V10

Hinweis: Dieser Abschnitt enthält Zusatzinformationen für Leser, die mehr über die Struktur des als Zielhardware verwendeten programmierbaren Logikelements GAL22V10 (Abb. 1.1) erfahren möchten. Sie sind für das Verständnis der anderen Kapitel nicht unbedingt erforderlich.

1

4

Programmierbare Logikschaltungen (PLD)

Eigenschaften des GAL22V10

1.4.1

Zur Zeit der Konzeption der Experimentierschaltung GALEX war das Bauelement GAL22V10 Industriestandard. Das ist der Grund dafür, warum es in diesem Buch verwendet wird. Alle Beispiele wurden für dieses Bauelement entworfen, simuliert und dann für den Hardwaretest programmiert.

gibt es eine Vielzahl von programmierbaren Bauelementen, bei denen sich die Schaltungshersteller in immer neuen Superlativen gegenseitig überbieten. Aufgrund der Tatsache, dass das Bauelement GAL22V10 immer noch erhältlich ist und seine Programmierbarkeit für die Einführung in Logikschaltungen bei weitem ausreicht, wird es weiter verwendet. Seine Struktur ist überschaubar und seine Eigenschaften einfach zu vermitteln. Das GAL22V10, genauer gesagt, ispGAL22V10, ist ein programmierbares Logikelement (in system programmable). Die Technologie ist E2CMOS (Electrically Erasable Complementary Metal Oxide Semiconductor). Das Bauelement kann über seine Programmierschnittstelle, die üblicherweise an die LPT1-Druckerschnittstelle eines PC angeschlossen wird, mit der vom Anwender gewünschten Logik programmiert werden. Vom Hersteller werden 10000 Programmier- und Löschzyklen garantiert, was in der Praxis mehr als ausreichend ist. Das GAL22V10 hat zehn Eingänge und zehn Ausgänge (Abb. 1.1). Heute

l/CLK

P

Vcc

l/O/Q

l/O/Q l/O/Q l/O/Q l/O/Q l/O/Q l/O/Q l/O/Q l/O/Q

l/O/O

Abb. 1.1 Bauelement GAL22V10 im 24 Pin Gehäuse

Bauelementeausgang ist einem schaltungsintemen Speicherelement (Binärspeicher, Flipflop) zugeordnet. Der Anwender kann Ausgänge auch als zusätzliche Eingänge verwenden, er verliert dann aber natürlich ihre Eigenschaften als Ausgänge. Die Anzahl der logischen Verknüpfungen (Produktterme), die zur Verfügung stehen, ist 132, Jeder

wobei 120 davon für Verknüpfungen der Eingangsvariablen benutzt werden. Die mierdaten werden, wie bereits gesagt, mit der Softwareumgebung LOGIC2 erstellt.

Program-

5

1.4 Bauelement GAL22V10

Aufbau des GAL22V10

1.4.2

Das GAL22V10 ist aus zehn so genannten OLMC (Output Logic Macrocell Configuration) aufgebaut. Das sind programmierbare Flipflops, deren Ein- und Ausgänge so verbunden werden können, wie es der Anwender benötigt, vorausgesetzt, die Möglichkeiten des Bauelements lassen dies zu.

zeigt die zehn OLMC des GAL22V10. Ihre Ausgänge sind in Abb. 1.1 mit I/O/Q gekennzeichnet. Ihre Eingänge können über eine programmierbare UND-Matrix entsprechend der Struktur der Matrix mit den zehn Eingängen des Bauelements durch Programmierung logisch verknüpft werden (gekennzeichnet mit I, links in Abb. 1.1). Links oben in Abb. 1.1 ist der Eingang I/CLK zu sehen, an den der Takt für die Flipflops angeschlossen wird. Obwohl in Abb. 1.2 erkennbar ist, dass die OLMC sowohl zurückgesetzt (RESET, unterste Leitungsbezeichung rechts) als auch gesetzt (PRESET, oberste Leitungsbezeichung rechts) werden können, wird für die Praxis dringend empfohlen, ausschliesslich die Resetfunktion zu Abb. 1.2

verwenden! VCLK

Abb. 1.2:

Außau

cfesGAL22V10

22V_blol.tif

Abb. 1.3: OLMC

22v_olmc.tif

Das Blockschaltbild einer OLMC (Abb. 1.3) zeigt, dass der D-Eingang des Flipflops über eine UND-ODER-Matrix angesteuert wird. Die einzelnen Verknüpfungen für den D-Eingang des Flipflops werden über die programmierbare UND-Matrix ausgewählt. Die verwendeten

1

6

Programmierbare Logikschaltungen (PLD)

Schaltzeichen sind nach internationaler Norm gezeichnet (Abschnitt 3.1), wie es in Datenbüchern üblich ist. Der Ausgangsmultiplexer (Stufenschalter) ist mit 4 TO 1 MUX bezeichnet. Er ermöglicht dem Anwender, wie mit einem Stufenschalter einen der vier Eingänge dieses Multiplexers auf den Ausgang durchzuschalten. Damit kann man also das Register umgehen und die Polarität des Ausgangs umschalten. Mit dem zweiten Multiplexer des OLMC, dem 2 TO 1 MUX, wird eingestellt, ob der Flipflopausgang in die Matrix zurückgeführt oder ob der externe Anschluss als Bauelementeeingang benutzt wird. Für weitere Erklärungen zum ispGAL22V10 wird auf die seiten des Bauelementeherstellers Lattice, verwiesen.

Unterlagen, bzw.

auf die Internet-

Schalmngsentwurf, Simulation und Hardwaretest

1.5

mit GAL22V10 Beim

Schaltungsentwurf für das Bauelement GAL22V10 wird zuerst die Quelldatei in der Entwurfsumgebung LOGIC2 mit der Schalmngsformulierung erstellt (Abb. 1.4). Diese kann in verschiedenen Entwurfs sprachen geschrieben werden. Für Schaltwerke ist ebenfalls eine grafische Eingabe eines Zustandsdiagramms möglich. Die Schaltung wird in LOGIC2 synthetisiert. Mit dem Logiksimulator kann die Schaltungsfunktion simuliert und überprüft werden. In LOGIC2 wird die Datei mit den Programmierdaten für das GAL22V10 erzeugt. Mit der Übertragungssoftware ispWDOWNLD der Firma Lattice wird über die LPT1-Schnittstelle des PC die Logikinformation in das GAL22V10 heruntergeladen. In einer Experimentierplatine kann die Hardwarefunktion der Logikschaltung überprüft werden.

Schaltungssynlhcse

Logiksimulator

Expcrimeniierschal hing Lbertragungssoftwar ispWDOWNLD

Abb. 1.4:

Schaltungsentwicklung mit GAL22V10

GAL 22V10

1.6 Zusammenfassung

7

Falls ein anderes programmierbares Bauelement für die Beispielschaltungen verwendet werden soll, kann es in LOGIC2 als Zielbauelement ausgewählt werden, sofern es in der Bauelementebibliothek vorhanden ist. Ist das nicht der Fall, kann man meist eine kostenlose Entwurfssoftware des betreffenden Bauelementeherstellers aus dem Internet herunterladen und damit die Übungsbeispiele programmieren.

1.6

Zusammenfassung

Weil programmierbare Logikschaltungen Stand der Technik sind, ist es sinnvoll, sie bereits bei der Einfuhrung in die Digitaltechnik einzusetzen. Sie sind im Vergleich zu anderen Logikschaltungen extrem leistungsfähig. Das programmierbare Logikelement GAL22V10 eignet sich für diesen Zweck besonders gut, weil es preiswert ist und bei ausreichend großer Leistungsfähigkeit trotzdem überschaubar aufgebaut ist.

Schaltungsbeispiele können mit Hilfe der Entwicklungsumgebung LOGIC2 entworfen, simuliert und auf eine Hardware heruntergeladen werden. Die Einführung in die Digitaltechnik basiert auf solchen Beispielen, bei denen vor allem die Simulation dabei hilft, das Verhalten von Logikschaltungen zu verstehen. Dabei spielt der hierarchische Schaltungsentwurf zusammen mit der Entwicklungsumgebung eine hervorragende Rolle.

Beispiel: Kombinatorische Logikschaltung (Schaltnetz)

2

und oder

Hinweis: Das

Beispiel undoder dient zur anschaulichen Erklärung der Funktion von Logik-

schaltungen._ Beispiel einer Lichtschalteranordnung erklärt, was unter Werten von Signalen, Signalwerten und Digitalsignalen verstanden wird was eine kombinatorische Logikschaltung (Schaltnetz) ist was man unter dem Wahrheitsgehalt einer Aussage versteht wie eine logische Funktion als Wahrheitstabelle einer digitalen Schaltung formuliert wird wie eine logische Funktion in eine logische Schaltung umgesetzt wird wie man die Funktion der Logikschaltung überprüfen kann wie das Schaltnetz als und oder Schaltung in einer programmierbaren Logikschaltung

Mit dem Schaltnetz und oder wird -

-

-

-

-

-

-

am

verwirklicht wird.

2.1

Aufgabenstellung:

Schaltnetz und_oder

Aufgabe und_oder eignet sich sehr gut zur Einführung und Erklärung verschiedener Begriffe der Digitaltechnik. Es geht dabei um einen Leuchtmelder, beispielsweise eine Glühlampe oder eine Leuchtdiode, die unter genau vorgeschriebenen Bedingungen leuchten soll. Es gibt verschiedene Möglichkeiten, die Funktion einer Schaltung zu definieren. Meistens Die

wird die recht ungenaue Form eines Textes verwendet:

Aufgabe und_oder

Ein Leuchtmelder soll leuchten, wenn entweder die Schalter SO und Sl betätigt werden oder der Schalter S2 allein betätigt wird.

gleichzeitig

2.2 Schaltnetz und oder realisiert mit Schaltern

Schaltnetz und_oder realisiert mit Schaltern

2.2 Die

9

Schaltung in Abb. 2.1 fuhrt die in der Aufgabenstellung geforderte Funktion aus.

*

Abb. 2.1:

Leuchtmelder

Schaltung und_oder mit Schaltern

Werden die Schalter S2, S1 und SO wie in Abb. 2.1 mit dem Leuchtmelder DS verbunden, dann leuchtet er unter den geforderten Bedingungen. Wenn beide Schalter S1 und SO gleichzeitig geschlossen werden, liegt die Spannung 5 V über die beiden geschlossenen Schalter S1 und SO am Anschluss DS des Leuchtmelders an. Wenn der Schalter S2 alleine geschlossen wird, leuchtet der Leuchtmelder ebenfalls. Der Leuchtmelder leuchtet natürlich auch, wenn alle drei Schalter geschlossen sind. Dies wurde zwar nicht als Bedingung gefordert, widerspricht aber der Aufgabenstellung auch nicht. Die Funktion ergibt sich jedoch als weitere Möglichkeit aus Abb. 2.1. In der Praxis kommt es oft vor, dass Schaltungen Funktionen haben, die nicht ausdrücklich verlangt werden, sich aber durch die gewählte technische Lösung zusätzlich ergeben. Wichtig ist, dass keine Schalrangsfunktion entsteht, die unerwünscht ist. Abb. 2.1 Die dort gezeichneten Schalter werden Schließer genannt. Sie sind in geöffnetem Zustand nicht betätigt und werden deshalb auch offen gezeichnet. Diese Vereinbarung gilt generell beim Zeichnen von Stromlaufplänen.

Hinweis

zu

2

10

Beispiel: Kombinatorische Logikschaltung (Schaltnetz) undoder

Tabelle als Beschreibung des Schaltnetzes

2.3

undjoder In Tab. 2.1 ist die Funktion der Schaltung und_oder dargestellt. Für alle möglichen Kombinationen der Schalterstellungen ist in der Spalte Leuchtmelder eingetragen, ob der Leuchtmelder leuchtet oder nicht. Tab. 2.1: Funktion und oder mit der Aussage betätigt/nicht

betätigt

S2_Sl_SO_Leuchtmelder leuchtet nicht nicht nicht betätigt nicht betätigt nicht betätigt nicht betätigt

Betätigt Betätigt Betätigt Betätigt

nicht betätigt nicht betätigt

betätigt betätigt nicht betätigt nicht betätigt betätigt betätigt

betätigt betätigt nicht betätigt betätigt nicht betätigt betätigt nicht betätigt betätigt

leuchtet nicht leuchtet nicht leuchtet leuchtet leuchtet leuchtet leuchtet

Es fällt auf, dass sowohl für die Schalter wie auch für den Leuchtmelder nur zwei verschiedene Werte möglich sind. Entweder die Aussagen nicht betätigt / betätigt (Schalter) oder leuchtet nicht / leuchtet (Leuchtmelder). Sucht man eine einheitliche Formulierung, die sowohl für die Schalter als auch fur den Leuchtmelder verwendet werden kann, müssen Vereinbarungen darüber getroffen werden, welche Formulierung welchen Aussagewerten zugeordnet werden soll.

vorliegende Schaltung wird Schaltnetz oder auch kombinatorische Logikschaltung genannt. Schaltnetze sind Schaltungen, bei denen jeder Kombination der Eingangsvariablen eindeutig eine Kombination der Ausgangsvariablen zugeordnet wird. Vorerst wird Hinweis: Die

vereinfachend davon ausgegangen, dass sich der Schaltungsausgang nach der eines Schalrungseingangs ebenfalls praktisch ohne Verzögerung ändert.

2.4

Änderung

Wahrheitstabelle fur die Formulierung von

Aussagen Aussagen über Sachverhalte können mit üblichen Sätzen formuliert werden. Sie können auch miteinander verknüpft werden. Hierzu wieder ein Beispiel: Wenn Herr Müller eine Tochter Maria die Tante von Sonja.

Sonja und eine Schwester Maria hat, dann ist

11

2.4 Wahrheitstabelle für die Formulierung von Aussagen

Wenn die Aussage wahr ist, dass Herr Müller eine Tochter hat, und zusätzlich auch die Aussage wahr ist, dass er eine Schwester Maria hat, dann ist auch die Aussage wahr, dass Maria die Tante von Sonja ist. Ist aber eine der beiden genannten Bedingungen nicht wahr, dann ist auch Maria nicht die Tante von Sonja: Ist Sonja nicht die Tochter von Herrn Müller, dann kann Maria auch nicht die Tante von Sonja sein (vorausgesetzt, es bestehen keine anderen Verwandtschaftsbeziehungen, die dieser Aussage widersprechen).

Über die Schaltung und_oder kann man ebenfalls Aussagen machen, die als wahr oder nicht wahr bezeichnet werden können. Dazu muss allerdings vorher vereinbart werden, was darunter zu verstehen ist, wenn eine Aussage wahr ist. Wird beispielsweise als wahr definiert, dass der betreffende Schalter betätigt ist, dann bedeutet die Aussage nicht wahr für den gleichen er nicht betätigt ist. Wenn man dieses Prinzip auf die dann könnten Vereinbarungen so aussehen wie in Tab. 2.2. anwendet,

Schalter, dass Tab. 2.2:

Der Leuchtmelder leuchtet nicht. Der Leuchtmelder leuchtet

Neue Benennung der Aussage S ist nicht wahr S ist wahr Leuchtmelder ist nicht wahr Leuchtmelder ist wahr

Vereinbarungen in Tab. 2.2 kann Tab. 2.1

Tab. 2.3: Funktion S2 nicht wahr nicht wahr nicht wahr nicht wahr wahr wahr wahr wahr

man

in Tab. 2.3

umgewandelt werden.

und_oder mit der Aussage wahr/nicht wahr Sl nicht wahr nicht wahr wahr wahr nicht wahr nicht wahr wahr wahr

SO

nicht wahr wahr nicht wahr wahr nicht wahr wahr nicht wahr wahr

In Tab. 2.3 wird wie in Tab. 2.1 die Funktion der

Will

undoder

Vereinbarungen für die Benennung von Eigenschaften

Formulierung in einem Satz Der Schalter S ist nicht betätigt. Der Schalter S ist betätigt.

Mit den

Schaltung

Schaltung und

Leuchtmelder nicht wahr nicht wahr nicht wahr wahr wahr wahr wahr wahr

oder vollständig definiert.

wissen, was passiert, wenn eine bestimmte Kombination von Schaltern betätigt ist,

die Vereinbarungen der Tab. 2.2 kennen. Sind beispielsweise beide Schalter Sl und SO geschlossen, muss man die Zeile suchen, in der S1 und S2 als wahr bezeichnet werden. Man erkennt, dass in dieser Zeile der Leuchtmelder als wahr ausgewiesen wird. Daraus folgt: Werden Sl und SO beide betätigt, leuchtet der Leuchtmelder. Man kann auch sagen: Wenn S1 und S2 wahr sind, dann ist der Leuchtmelder wahr. muss man

Formulierung solcher Aussagen hat der britische Mathematiker Boole (1805 1864) gearbeitet. Er hat eine spezielle Algebra dafür entwickelt, die Boolesche Algebra. Mit ihrer

An der

-

12

2

Beispiel: Kombinatorische Logikschaltung (Schaltnetz) undoder

Hilfe versuchte er, den Wahrheitsgehalt von Aussagen in der Philosophie zu Folgenden wird die Schaltung und oder so verändert, dass die Boolesche angewendet werden kann.

2.5

überprüfen. Im Algebra direkt

Realisierung des Schaltnetzes und_oder mit logischen Verknüpfungen

Die Funktion der Schaltung und_oder wird in Abb. 2.1 durch die Anordnung der Schalter bestimmt. Der Strom fließt durch die geschlossenen Schalter und bringt die Leuchtmelder zum Leuchten. Wenn man die Schalmngsfunktion ändern will, muss man auch die Verdrahtung der Schaltung ändern. Die logische Verknüpfung der Schalter ist also durch ihre Ver-

drahtung festgelegt. Verwirklichung der vorliegenden Funktion verwendet eine separate Logikschaltung zur Realisierung der logischen Verknüpfung der Schalter (Abb. 2.2). Die logische Verknüpfung der Signale und der Schalter als Signalgeber werden auf Ein prinzipiell anderer Ansatz

zur

diese Weise voneinander getrennt.

scha

eingängig emgang2,

ne:un

od

Abb. 2.2: Blockschaltbild der Schaltung und oder

eingang3/

Die Schaltungsfunktion wird nicht mehr durch die Verdrahtung der Schalter untereinander, sondern durch eine von den Schaltern abgetrennte Logikfunktion ausgeführt (Abb. 2.3). Jeder Schalter ist dann nur noch ein Signalgeber, der für sich allein steht. Er stellt auch keine direkte Verbindung mehr zwischen der Spannungsquelle und dem Leuchtmelder her. Von ihm wird nur das Signal (logische Variable) beeinflusst, das er erzeugt. Dieses wird von der Logikschaltung bewertet und, abhängig davon, der Wert des Ausgangs bestimmt. Der Leuchtmelder erhält seine Spannung direkt vom Ausgang der Logikschaltung. Die Unterschiede zur Schaltung mit Schaltern werden im Folgenden nochmals genauer erklärt. Der Schalter SO ist in Abb. 2.3 mit seinem unteren Anschluss mit der Spannungsquelle, also mit 5 V, verbunden. Der obere Anschluss ist mit der Signalleitung EINGANGO verbunden. Ein Widerstand verbindet die Signalleitung mit dem zweiten Anschluss der Spannungsquelle, also mit 0 V der Schaltungsmasse. Ist der Schalter SO nicht geöffnet, hat das Signal EINGANGO die Spannung 0 V. Wird er geschlossen, liegt am EINGANGO die Spannung 5 V.

2.5

Realisierung des Schaltnetzes und_oder mit logischen Verknüpfungen

13

Spannungsversorgungsanschluß der

Logikschaltung {wird üblicherweise nicht gezeichnet)

Logikschaltung Masseanschluß der Logikschaltung (wird üblicherweise nicht

gezeichnet)

Spannungsqiielli

Spannungsqüelle

e

e

0

Masse

Masse

Abb. 2.3:

(0 V)

(0 V)

Verknüpfung von Signalen der Schaltung undoder

Abb. 2.4: Schalter als Signal-

geber

Durch den Widerstand fließt dann ein Strom. Der Widerstand hat die Aufgabe, bei geöffneSpannungswert von 0 V für die Signalleitung sicherzustellen. Da dieser Widerstand in der Praxis nicht niederohmig gewählt wird, ist dies kein gravierender Nachteil der Schaltung. Der Grund für den Einsatz des Widerstands ist, dass die Eingänge integrierter Schaltungen schon auf geringste Spannungen reagieren. Störspannungen, die immer in einem Industriebetrieb vorhanden sind, können dann von den offenen Eingängen wie von Antennen aufgenommen werden und dadurch Fehlfunktionen in der Logikschaltung auslösen. Deshalb ist es nicht erlaubt, einen Schaltungseingang offen zu lassen; das heißt, man muss jeden Schaltungseingang an ein Element mit definierter Spannung anschließen. tem Schalter den definierten

Folgenden wird nun die geänderte Schaltung in ihren Einzelheiten erklärt. In Abb. 2.3 sieht man, dass der Schalter SO mit dem Eingang EINGANGO der Logikschaltung verbunden ist. Entsprechendes gilt für die Schalter S2 und Sl. An den Ausgang der Logikschaltung ist der Leuchtmelder DS direkt angeschlossen. Die Logikschaltung wertet die Spannungen aus, die aufgrund der aktuellen Schalterstellungen an den drei Eingängen anliegen und schaltet ihren Ausgang auf den entsprechenden Spannungswert, der dieser Kombination entspricht. Bei 5 V leuchtet dann der Leuchtmelder, bei 0 V leuchtet er nicht. Aufgrund der Eingangsspannung wird erkannt, welche Schalter betätigt wurden und welche nicht. Die Verknüpfung dieser Spannungswerte erfolgt ausschließlich in der Logikschaltung. Als Verknüpfungsergebnis der Eingangsvariablen EINGANG2, EINGANG 1 und EINGANGO wird der Wert des Ausgangs der Logikschaltung auf 5 V oder 0 V geschaltet. Im

Welchen Vorteil bietet diese Trennung der Schalter von der dung von Signalgebern und Logikschaltung? -

Logikschaltung für die Verwen-

Wollte man die Schaltungslogik der ursprünglichen Schaltung und oder ändern, müsste die Verdrahtung, durch die der Leuchtmelderstrom fließt, ebenfalls ändern. In der vorliegenden Schaltung kann man aber ohne weiteres die Funktion der Logikschaltung man

14

2

Beispiel: Kombinatorische Logikschaltung (Schaltnetz) undoder

ändern, ohne die Verdrahtung der Schalter ändern zu müssen. Das ist vor allem dann ein Vorteil, wenn bei Schaltungen mit sehr vielen Eingangsvariablen ein Fehler festgestellt

wird oder der Kunde einen Änderungswunsch hat. Dann brauchen nur die Verknüpfungen in der Logikschaltung geändert zu werden, und diese Änderung kann bei programmierbaren Logikschaltungen sogar über handelsübliche Schnittstellen von PCs direkt in die Logikschaltung heruntergeladen werden. Die Logikschaltung führt dann die geänderte neue Funktion aus. Allerdings wird dabei vorausgesetzt, dass die Anzahl der vorhandenen Eingangsvariablen gleich bleibt. Die Verdrahtung der Schalter als Signalgeber bleibt gleich, auch wenn man die Schaltungsfunktion ändern will. Im Unterschied zur Schaltung in Abb. 2.1 sind die Schalter nur noch Signalgeber, die entweder Spannung an den jeweiligen Eingang legen oder nicht. Der Laststrom, also der Strom für das Leuchten des Leuchtmelders, fließt in dieser Schaltung nicht durch die Schalter. Er wird von der Logikschaltung oder, bei höheren Strömen und Spannungen, von Treibern aufgebracht, beziehungsweise im Bedarfsfall über zusätzliche Relais' geschaltet. Allerdings wäre bei der Schaltung und oder die Realisierung mit einer Logikschaltung in der Praxis nicht sinnvoll, da der Gesamtaufwand für die Lösung bei dieser einfachen Schaltung nicht gerechtfertigt ist.

-

2.6

Schalmngsmnktionen mit Aussagen über Spannungen

Wenn man eine Logikschaltung, die von den drei Schaltern angesteuert wird, auf eine andere Art beschreiben will, hat man verschiedene Möglichkeiten. Beispielsweise kann man für jede Schalterstellung direkt in einer Tabelle die Spannungen eintragen, die man an der entsprechenden Stelle in der Schaltung mit einem Spannungsmesser messen kann. Damit kann Tab. 2.3 der Schaltungsfunktion in Tab. 2.4 folgendermassen umgeschrieben werden: Tab. 2.4: Funktion der Schaltung undoder mit Spannungsangaben

EINGANG2_EINGANG 1_EINGANGO_DS_

OV OV OV OV 5V 5V 5V 5V

OV OV 5V 5V OV OV 5V 5V

OV 5V OV 5V OV 5V OV 5V

OV OV OV 5V 5V SV 5V 5V

2.7

Zuordnung von Spannungswerten zu logischen Werten in positiver Logik

15

Tab. 2.4 kann aber auch für sich allein als Logikschaltung betrachtet werden und zwar ohne die Schalter, die bisher immer zum Verständnis der Funktion herangezogen wurden: Die Logikschaltung und_oder hat drei Eingänge, EINGANG2, EINGANG 1 und EINGANGO. Legt man an die Eingänge die in Tab. 2.4 aufgeführten Kombinationen von Spannungen, also beispielsweise an alle Eingänge die Spannung 5 V, dann kann man in der letzten Zeile 5 V ist. von Tab. 2.4 erkennen, dass der Ausgang der Schaltung DS =

Mit der Umsetzung der Schalmngsfünktion in die Tabelle mit Spannungsangaben wurde ein weiterer Schritt getan, der hin zur Wahrheitstabelle einer Logikschaltung führt. Die Logikschaltung undoder kann jetzt nämlich auch unabhängig von den Schaltern betrachtet werden. Würde etwa genau diese Logikverknüpfung in einer Maschine benötigt, bei der die drei Eingangssignale von Sensoren erzeugt würden, dann könnte sie unverändert übernommen werden, um den für diese Maschine benötigten Leuchtmelder anzusteuern.

2.7

Zuordnung von Spannungswerten zu logischen Werten in positiver Logik

Um Aussagen über Spannungen von Signalen zu vereinfachen, hat sich in der Praxis noch eine weitere Darstellung von Signalwerten bewährt. Anstelle der zwei Spannungswerte „0 V" und „5 V" verwendet man zwei einfache Symbole. Im vorliegenden Buch werden aus methodischen Gründen ausschließlich Symbole für positive Logik verwendet. Bei der positiven Logik wird anstelle der Spannung 0 V das Symbol 0 und anstelle der Spannung 5 V das Symbol 1 gesetzt. Anstelle des Symbols wird üblicherweise nur neben der Bezeichnung 0 ,jYull", „logische 0", „logische Null" oder auch „logischer Wert 0" geschrieben. Gleiches gilt für die logische Eins. "

Tab. 2.5: Funktion der Schaltung und oder mit 0 und 1" als Logiktabelle dargestellt „



EINGANG2 EINGANG! EINGANGO DS 0 0 0 0 0 0 10 0 10 0 Olli 10 0 1 10 11 110 1 1111

Die Tab. 2.4 ist zwar übersichtlich, es ist aber aufwändig, sie aufzuschreiben. Wenn man bei den Eingangssignalen anstelle von 0 V eine logische Null (also „0", anstelle von „0 V") oder eine logische Eins (also „1" anstelle von „5 V") schreibt, spart man sich Schreibarbeit. Beim Leuchtmelder DS kann man „0 V" durch „0" und „5 V" durch „1" ersetzen. Dann erhält man Tab. 2.5.

2

16

Beispiel: Kombinatorische Logikschaltung (Schaltnetz) undoder

es nur sehr selten vor, dass die Spannung eines Signals am Ein- und einer Logikschaltung 5 V oder 0 V beträgt. Die logische Null kann 0,3 V oder auch Ausgang V 0,5 sein, die logische Eins je nach Schaltung 3,5 V oder 4,5 V. In den Datenbüchern der Logikschaltungen stehen deshalb die Spannungswerte, die genau festlegen, welche Spannungen von der Logikschaltung als logische Null und als logische Eins erkannt werden. Es wird ebenfalls festgelegt, welche Ausgangsspannungen eine Logikschaltung für die logische Null und die logische Eins haben darf.

In der Praxis kommt

nur verständlich, wenn man weiß, was mit den Werten „0" (logische Null) oder „1" (logische Eins) der Signale gemeint ist. Bei EINGANGO bedeutet üblicherweise die „0", dass eine Spannung zwischen 0 V und < 0,8 V anliegt. Dies wiederum ist bei der Logikschaltung und_oder der Fall, wenn der Schalter SO geöffnet ist der Schließer ist in seinem Ruhezustand, also offen. Beim Ausgang DS bedeutet üblicherweise die „0", dass eine Spannung

Tab. 2.5 ist

-

anliegt der Leuchtmelder leuchtet nicht. Tab. 2.5 wird als Logiktabelle, aber auch als Wahrheitstabelle bezeichnet. Diese Darstellungsart einer Logikfunktion wird in der Praxis dann eingesetzt, wenn einfache Schaltungen mit wenigen Eingangsvariablen beschrieben werden müssen. Da der Schreibaufwand aber immer noch beträchtlich ist, hat man nach anderen Beschreibungsarten gesucht. Die Boolesche Algebra ermöglicht eine kompakte Schreibweise. zwischen 0 V und < 0,4 V

-

2.8

Ausführliche Erklärung der TTL-Pegel

Hinweis: Dieser Abschnitt enthält zusätzliche Erklärungen zur Vervollständigung des Abschnitts 2.7 über Spannungswerte von Logikschaltungen. Zum Verständnis der folgenden Abschnitte ist sein Inhalt nicht erforderlich. Da viele Schaltungen mit so genannten TTL-Pegeln (Transistor Transistor Logik) arbeiten, werden diese genauer erklärt. Die Bezeichnung TTL ist historisch zu verstehen und bedeutet, dass die Funktion der Logikschaltung früher mit speziellen Transistoren realisiert wurde. Die Bezeichnung TTL hat eine ähnliche Struktur wie die Bezeichnung RTL (Resistor Transistor Logic) und macht den technologischen Unterschied zwischen den verschiedenen technischen Ausführungen der Logikschaltungen in der Anfangszeit der Digitaltechnik klar. Auch wenn Logikschaltungen heute mit anderen Technologien aufgebaut werden, können durchaus TTL-Pegel für die Ein- und Ausgänge spezifiziert sein. Da in der Praxis in Logikschaltungen nicht nur die Spannungen 0 V und 5 V vorgefunden werden, müssen die realen Spannungsbereiche logischen Werten zugeordnet werden. Die im Folgenden aufgeführten Spannungswerte beziehen sich auf Schaltungen mit TTL-Pegeln (Tab. 2.6). Für Bauelemente verschiedener Logikfamilien gelten andere Spannungsbereiche, die in den jeweiligen Datenbüchern und CDs der Bauelementehersteller nachgeschlagen werden können. ViL steht für die Bezeichnung Voltage Input Low und Voh für Voltage Output High. Der Wert ViL < 0,8 V in der Tabelle Tab. 2.6 bedeutet, dass eine Signalspannung

17

2.9 Entwurf des Schaltnetzes und oder mit LOGIC2

im Bereich zwischen 0 V und < 0,8 V am Eingang der Schaltung von dieser als logische Null bewertet wird. In ähnlicher Weise bedeutet VIH > 2 V, dass eine Eingangsspannung im Bereich von > 2 V und 5 V als logische Eins bewertet wird. Tab. 2.6:

Zuordnung von Spannungswerten (TTL-Pegel) zu

Schaltungseingang Bezeichnung Wertebereich V„

2 V

Werten der positiven Logik

Schaltungsausgang Wertebereich Bezeichnung

Wert für die

Darstellung und Berechnung

2,4V

Interessant wird die Definition der Ausgangsspannungen von TTL-Logikschaltungen: Die logische Null am Ausgang (V0l) darf im Bereich zwischen 0 V und < 0,4 V liegen, während die logische Eins (V0h) im Bereich zwischen > 2,4 V und 5 V liegen darf. Die Bauelementehersteller haben einen Bereich zwischen 0,4 V und 0,8 V bzw. 2 V und 2,4 V vorgesehen, um in einem System sicherzustellen, dass der Ausgang einer Logikschaltung fehlerfrei bewertet werden kann. Das ist wichtig, wenn ein Schaltungsausgang den Eingang einer nachfolgenden Schaltung ansteuert. Liegt nämlich die Eingangsspannung einer Logikschaltung zwischen 0,8 V und 2 V, kann keine Aussage darüber gemacht werden, ob diese das Signal als logische Null oder logische Eins erkennt. Die Auswertung eines solchen Signals ist nicht mehr eindeutig möglich und die fehlerfreie Funktion der Schaltung nicht mehr gewährleistet. Der Schaltungsentwickler muss beim Schaltungsentwurf sicherstellen, dass innerhalb seiner Schaltung nur zulässige Spannungswerte vorkommen.

2.9 Es

Entwurf des Schaltnetzes und oder mit LOGIC2

gibt verschiedene Methoden, eine Wahrheitstabelle zu vereinfachen. Quine/Mc Cluskey schlagen eine Methode vor, nach der Wahrheitstabellen mit vielen Eingangsvariablen vereinfacht werden können. Weil der Schaltungsentwurf mit manuellen Verfahren für programmierbare Logikschaltungen wegen deren Komplexität nicht mehr eingesetzt werden kann, wird auf ihre Darstellung im Rahmen dieses Buches verzichtet. Vielmehr werden im Folgenden Schaltungen direkt vom Schalmngssyntheseprogramm in LOGIC2 optimiert und auf die verwendete programmierbare Logikschaltung zugeschnitten. Die Schwerpunkte des Schaltungsentwurfs werden damit auf die klare Formulierung der Aufgabenstellung, auf die Schaltungssynthese und den Nachweis der Sollfunktion gelegt. Dies ist die in der Industrie heute angewandte Vorgehensweise. Die manuellen Entwurfsverfahren werden in [LIP02] erklärt. Die Details der Schaltungsbeschreibung und die verwendete Beschreibungssprache sind im folgenden Zusammenhang unwichtig. Deshalb wird für die Schaltung das fertige Quellprogramm vorgegeben. Das Quellprogramm ist in der Programmiersprache HDL (Hardware Description Language) geschrieben. Eine Einführung in LOGIC2 kann mit Hilfe der beigefügten CD nach der Installation im Menü Hilfe als rechnergeführte Unterweisung aufgerufen und selbst bearbeitet werden. Mit der Wahrheitstabelle ist die Schalrungsfünktion des

18

2

Beispiel: Kombinatorische Logikschaltung (Schaltnetz) undoder

Schaltnetzes undjoder eindeutig beschrieben. Die Frage lautet jetzt, welche Logikfunktion sich hinter der Wahrheitstabelle verbirgt. Dies ist zwar bei der vorliegenden Schaltung und oder von der Aufgabenstellung her schon bekannt, aber aus methodischen Gründen soll sie systematisch, ausgehend von ihrer Wahrheitstabelle, entworfen werden. IN

:

eingang2, eingangl, eingangO

OUT

:

ds

; ;

Eingangssignale Ausgangssignal

*FUNCTION-TABLE

$HEADER:

x

eingang[2..0]

y

x

000b 001b 010b 011b 100b 101b 110b 111b

Y y y y y y y y

X X

X X X X X

Liste l:Teil des

ds

Quellprogrammsfür die Logikschaltung undoder

Es ist nicht Ziel dieser Erklärungen, eine Einführung in die von LOGIC2 benutzte Entwurfssprache HDL zu geben. In diesem Zusammenhang soll vielmehr gezeigt werden, dass der Schaltungsentwurf vom Schalmngssyntheseprogramm direkt auf der Grundlage der Wahrheitstabelle durchgeführt werden kann. In der Quelldatei (Liste 1) werden zuerst die Schaltungseingänge und Schaltungsausgänge definiert. Die Wahrheitstabelle wird als FUNCTION-TABLE in der angegebenen Weise eingegeben. Erkennbar ist beispielsweise in der letzten Zeile der Wahrheitstabelle, dass fur die Kombination der drei Eingangsvariablen 111 der Ausgang ds 1 wird. Die Eingänge eingangl bis eingangO wurden wegen der einfacheren Schreibweise zu einem Signalbündel mit der Bezeichnung eingang[2..0] zusammen=

gefasst. Die Schaltungssynthese in LOGIC2 wird mit dieser Quelldatei durchgeführt. Das Ergebnis kann als Logikschaltung dargestellt werden (Abb. 2.5). Damit wird die eigentliche Formulierung der Aufgabenstellung wieder deutlich: Die vom Syntheseprogramm erzeugte Logikschaltung besteht aus der UND-Schaltung i_02 und aus der ODER-Schaltung i_01. Die Schaltungssymbole und die genauen Schaltungsfunktionen dieser logischen Grundschaltungen werden in Abschnitt 4 ausführlich erklärt. Trotzdem wird die Funktion dieser Schaltung hier kurz beschrieben. Der Ausgang DS ist dann 1, wenn entweder die beiden Eingänge EINGANGO und EINGANG 1 gleichzeitig gleich 1 sind (UND-Schaltung i_02) oder wenn EINGANG2 gleich 1 ist (ODER-Schaltung i_01).

19

2.10 Nachweis der Sollfunktion der Schaltung undoder (Verifikation) i Ol

EINGANG2 LZ>— i 02

EINGANG1 EINGANGO Abb. 2.5: Logikschaltung als Ergebnis der Schaltungssynthese

2.10

von

Schaltung und_oder

Nachweis der Sollfunktion der Schaltung

und_oder (Verifikation) Beim Schaltungsentwurf wird nach jedem Entwurfsschritt die Istfunktion der Schaltung überprüft. Der Grund dafür ist, dass beim Schaltungsentwurf auf verschiedenste Weise Fehler auftreten können. Der Schaltungsentwickler kann die Schaltungsfünktion falsch verstanden haben, Schreibfehler können beim Schreiben der Quelldatei auftreten. Der Entwickler muss also bei jedem Entwicklungsschritt nachprüfen, ob die Istfunktion seiner entworfenen Schaltung mit der vom Kunden gewünschten Sollfunktion übereinstimmt. Wünschenswert ist, dass das Prüfprogramm, mit dem man die Istfunktion überprüft, nicht von demselben Entwickler entworfen wird, der die Schaltung entwickelt hat. Dies ist aber in der Praxis nicht

üblich, da man den zusätzlichen Aufwand dafür scheut. Eine zweite Person müsste sich neu in die Aufgabe einarbeiten, um ein Prüfprogramm dafür entwerfen zu können. Meist entwirft deshalb der Schaltungsentwickler selbst auch das Prüfprogramm, gleichen Denkfehler wie beim Schaltungsentwurf führen kann.

was

bei der

Prüfung

zum

Die Istfunktion kann man bei der einfachen und oder Schaltung dadurch überprüfen, dass alle möglichen Kombinationen der drei Eingangsvariablen an die Schaltungseingänge angelegt werden und das erwartete Ergebnis überprüft wird. Das Prüfprogramm steuert dann mit Hilfe eines Simulators das Softwaremodell der Logikschaltung an. Der Simulator berechnet die Ausgänge der Schaltung für jede Eingangskombination des Prüfprogramms. Dieses Ergebnis (Istfunktion) kann dann mit der erwarteten Sollfunktion verglichen werden. Die Sollfunktion wurde vom Entwickler des Prüfprogramms überlegt oder aus der erwarteten Schaltungsfünktion der Aufgabenstellung direkt entnommen.

Bei der Schaltung und oder wird die Sollfunktion direkt aus der Wahrheitstabelle entnommen. Bei diesem Verfahren werden natürlich auch vorhandene Schreibfehler mit übernomzu erkennen sind. Hier hat die Überprüfung der Istfünktion einer Schaltung mit der Simulation ihre Grenzen. Das bedeutet für die Praxis, dass trotz Überprüfung der Schaltung in ihrer Anwendungsumgebung durchaus noch Entwurfsfehler darin enthalten sein können. Daraus darf aber nicht der Schluss gezogen werden, beim Schaltungsentwurf generell auf die Simulation verzichten zu können! Die Fehlersuche in der Anwendungsumgebung mit teuren Messgeräten kann sehr viel mehr Zeit beanspruchen als bei der Schaltungssimula-

men, da sie nicht

Beispiel: Kombinatorische Logikschaltung (Schaltnetz) und_oder

20

2

tion. Deshalb bleibt die

Schaltungssimulation

ein wesentlicher Bestandteil der

entwicklung. Das Prüfprogramm wird LOGIC2 generiert daraus

Schaltungs-

in der Entwicklungsumgebung LOGIC2 grafisch eingegeben. ein Prüfprogramm, das seinerseits mit einem Editor verändert werden kann. In Liste 2 wurden die erwarteten Simulationsergebnisse als Kommentare eingefügt. Damit wird nachvollziehbar dokumentiert, wie die Istfunktion der Schaltung überprüft wurde. Der Nachweis der Istfunktion mit Hilfe der Simulation ist ein wichtiger Schritt bei der Schaltungsentwicklung. #0 #0 #0

#100 #200 #200 #300 #400 #400 #400 #500 #600 #600 #700 #800 #800 #800 #900 #900

EINGANG2 EINGANG1 EINGANG0 EINGANG0 EINGANG0 EINGANG1 EINGANGO EINGANG2 EINGANG0 EINGANG1 EINGANGO EINGANG0 EINGANG1 EINGANG0 EINGANG2 EINGANGO EINGANG1 EINGANG2 EINGANGO

//0:Erwarteter Ausgang DS //1:Erwarteter Ausgang DS /12 :Erwarteter Ausgang DS //3:Erwarteter Ausgang DS //4:Erwarteter Ausgang DS IIb :Erwarteter Ausgang DS

116:Erwarteter Ausgang DS III:Erwarteter Ausgang DS

=

=

=

=

=

=

=

=

0 0 0 1

1 1 1 1

110:Erwarteter Ausgang DS

Liste 2: Teil des Prüfprogramms und oder.dvs

In Liste 2 werden nacheinander die Tab. 2.5 geändert.

Eingangsvariablen entsprechend

der Funktionstabelle

Die Reaktion der undoder Schaltung auf dieses Prüfmuster kann mit dem Simulator als Zeitdiagramm erzeugt und damit überprüft werden (Abb. 2.6). Zum besseren Verständnis wurden in das ursprüngliche Zeitdiagramm aus LOGIC2 die logischen Werte 0 und 1 nachträglich von Hand eingefügt. Im Zeitdiagramm Abb. 2.6 wird für jede Variable die logische Null als Strich im unteren Bereich der Variablen, die logische Eins als Strich im oberen Bereich der Variablen dargestellt. Beispielsweise sind im Bereich von 0 bis 100 ns alle Variablen 0. Die Werte der Eingangsvariablen sind dafür im Prüfprogramm (Liste 2) unter #0 eingetragen. Zum Zeitpunkt 100 ns wird EINGANG0 allein 1, alle anderen Eingänge bleiben 0.

2.11

21

Schaltungsumsetzung auf die Zielhardware, Hardwaretest

EINGANG2 EINGANG1 EINGANGO

1250

Ons 4L 0

4i

0

0

0

1

0

1 0

0

0

DS

1570 0 1

1 0

1 0

900ns

~L±_

~~I

o

Abb. 2.6: Simulationsergebnis der Schaltung undoder als Zeitdiagramm

Der

Ausgang DS bleibt ebenfalls, wie erwartet, 0. Die dafür notwendige Änderung der Ein-

EINGANGO erfolgt unter #100 im Prüfprogramm. Das Zeitraster mit Ab100 ns zwischen den Signaländerungen wurde willkürlich gewählt.

gangsvariablen ständen von

Alle Kombinationen der Eingangsvariablen wurden simuliert. Der Ausgang DS bleibt, wie erwartet, solange Null, bis zum Zeitpunkt 300 ns DS ebenfalls Eins wird. Zu diesem Zeitpunkt wird nämlich der EINGANGO zusätzlich zu EINGANG 1 Eins. Für alle weiteren Eingangskombinationen bleibt DS 1. Damit wurde die geforderte Sollfunktion der Schaltung und oder nachgewiesen. =

Vergleich der Simulationsergebnisse mit der Sollfunktion in Tab. 2.5 zeigt, dass die Schaltungsfunktion erfüllt ist. Im vorliegenden Fall kann wegen der einfachen Schaltung die Funktion zu 100 % überprüft werden. Haben die Schaltungen allerdings den in der Industrie üblichen Umfang, müssen vom Entwickler oft aufwändige Testmuster entworfen werden, um die Fehlerfreiheit seines Entwurfs nachweisen zu können. Eine Prüfung der vollständigen Funktion ist bei Logikschaltungen in der Praxis allein aus Zeitgründen nicht durchführbar. Dies bedeutet aber keinesfalls, dass deshalb kein Nachweis der Sollfunktion durchgeführt Der

wird!

2.11

Schalmngsumsetzung auf die Zielhardware, Hardwaretest

Weist die Schaltungssimulation der in der Quelldatei beschriebenen und von LOGIC2 optimierten Logikschaltung keine erkennbaren Fehler mehr auf, wird die Schaltungslogik in die Form gebracht, die für die Zielhardware geeignet ist. Mit Zielhardware meint man die Logikschaltung, mit der die Schaltungslogik als Hardware realisiert werden soll, also beispielsweise die Logikschaltung GAL22V10. Dieser Zwischenschritt ist sowohl beim Einsatz einfacher Logikschaltungen als auch bei programmierbaren Logikschaltungen notwendig. Der interne Aufbau verschiedener Logikschaltungen ist so unterschiedlich, dass die vom Schaltungssyntheseprogramm entworfene und optimierte Logikschaltung (erzeugt durch den Befehl Optimize im Menü Execute von LOGIC2) an die Struktur der gewünschten Zielschaltung angepasst werden muss. Diese Umsetzung wird auch mapping genannt. Der Programmiercode für

2

22

Beispiel: Kombinatorische Logikschaltung (Schaltnetz) undoder

wird in LOGIC2 durch den Befehl Generate im Menü Execute erzeugt. Dazu muss der Entwickler vorher alle Ein- und Ausgangssignale der Schaltung den gewünschten Bauelementeanschlüssen der Logikschaltung zuordnen.

programmierbare Logikschaltungen

Die Logikschaltung der Zielhardware muss nun erneut mit Testmustern simuliert werden. Dies ist notwendig, da durchaus interne Eigenschaften der programmierbaren Logikschaltung vorliegen können, die das Verhalten der Logik verändern. Um zu erkennen, ob die umgesetzte Schaltung eine veränderte Reaktion zeigt, ist dieser erneute Simulationsschritt erforderlich. Dafür können dieselben Prüfmuster verwendet werden, mit denen bereits die Istfunktion der Logikschaltung simuliert wurde. Die in den Prüfmustern eingetragenen erwarteten Ergebnisse bleiben für die Logikschaltung der Zielhardware gültig. Ist das Ergebnis fehlerfrei, dann steht der Programmierung der Logikschaltung nichts mehr im Wege.

Die Programmierung kann über eine standardisierte Schnittstelle, beispielsweise die LPT1 eines handelsüblichen PCs, durchgeführt werden. Mit der Programmiersoftware wird danach die programmierte Logikinformation wieder ausgelesen, um zu überprüfen, ob Übertragungs- oder Programmierfehler aufgetreten sind. Anschließend kann der Entwickler seine Schaltung in der wirklichen Anwendung testen. Die Eingangssignale können durch einen Wortgenerator erzeugt, die Ausgangssignale mit einem Logikanalysator überprüft werden. Abhängig vom Testergebnis muss der Zyklus -

-

-

-

-

Formulierung der Logik Schaltungssynthese Erste Schaltungssimulation Umsetzung auf die Zielhardware Zweite Schaltungssimulation Hardwaretest

-

lange durchlaufen werden, bis der Entwickler seinen Schaltungsentwurf freigibt. Bei der vorliegenden einfachen Funktion werden die drei Schalter S2, Sl und SO an die Logikschaltung angeschlossen, ebenso der Leuchtmelder DS. Zum Nachweis, dass die Hardware fehlerfrei funktioniert, werden die Schalter auf einer Experimentierplatine, wie in der Logiktabelle aufgeführt, ein- bzw. ausgeschaltet und der Leuchtmelder für jede Kombination der Eingangsvariablen beobachtet. Damit kann die Sollfunktion der Hardwareschaltung überprüft werden. so

2.12

Zusammenfassung

Die Logikschaltung und oder ist ein Beispiel dafür, wie die Funktion einer auf verschiedene Weise beschrieben werden kann: -

-

als ausformulierter Text in Sätzen mit Hilfe der Aussagenlogik in Sätzen

Logikschaltung

23

2.12 Zusammenfassung

mit Tabellen -

-

-

als Wahrheitstabelle (wahr, nicht wahr) als Spannungstabelle (0 V, 5 V) als

Logiktabelle (0 oder 1).

-

Gezeigt wurde anhand der Logikschaltung und oder, wie aus einer Schaltungsanordnung mit einem Leuchtmelder eine neue, veränderte Schaltung entworfen wird, bei der die Schalter nur noch einzelne Signale (logische Variable) erzeugen. Diese Eingangssignale steuern eine Logikschaltung an. An die Logikschaltung ist dann der Leuchtmelder DS direkt angeschlossen, der in der ursprünglichen Schaltung über die Schalter an die Spannungsquelle angeschlossen war.

Ausgehend von der Wahrheitstabelle wurde mit Hilfe der Entwicklungsumgebung LOGIC2 die Schaltungslogik entworfen (Optimize). Mit Prüfmustern wurde die Schaltungsfunktion überprüft. In der Entwicklungsumgebung LOGIC2 wurde danach die Logikschaltung in die für die gewünschte Zielhardware notwendige Form gebracht (Generate). Um mögliche Umsetzungsfehler entdecken zu können, wurde mit den bereits vorhandenen Prüfmustern die Schalmngsfunktion der Zielschaltung erneut simuliert und ihre Funktion nachgewiesen. Als letzter Schritt wurde die vorgegebene programmierbare Logikschaltung mit den Programmierdaten programmiert und die Schaltungsfunktion in der Praxis überprüft, indem die Schalter verschieden betätigt und die Funktion des Leuchtmelders jeweils überprüft wurde. Es wurde gezeigt, wie eine Logikfunktion formuliert wird und wie daraus mit Hilfe der Entwicklungsumgebung eine Logikschaltung entwickelt und ihre Istfunktion überprüft werden kann.

3

Logische Grundschaltungen:

UND, ODER, NICHT und XOR In diesem Abschnitt wird erklärt,

-

wie die logischen Schaltglieder (Grundschaltungen) UND, ODER, NICHT (Inverter) und XOR definiert sind welche logischen Funktionen man damit realisieren kann wie die entsprechenden Schaltungen mit Leuchtmeldern und Schaltern aussehen wie man eine Boolesche Gleichung zum Entwurf einer kombinatorischen Logikschaltung einsetzt.

Kombinatorische

Logikschaltungen können aus Schaltgliedern,

die auch Gatter

(engl. Gate)

genannt werden, zusammengesetzt werden. Man kann beweisen, dass jede kombinatorische

ausschließlich unter Verwendung von drei Arten von Schaltgliedern, nämlich UND-Gliedern, ODER-Gliedern und Invertern (Negationsgliedern) realisiert werden kann. Deshalb werden die Funktionen dieser logischen Grundschaltungen im Folgenden ausführlich erklärt.

Logikschaltung

logische Schaltungen, wie beispielsweise das NOR-Glied oder das aus den drei Grundschaltungen zusammengesetzt und mit ihrer Hilfe erklärt werden. Es werden nur ihre Funktionen in einer Tabelle angegeben, aber nicht ausführlich kommentiert. Eine ausführliche Beschreibung aller einfachen Logikschaltungen ist in [LIP02] enthalten. Andere einfache

NAND-Glied, können

Hinweis: Kombinatorische Logikschaltungen zeichnen sich vor allem dadurch aus, dass ihre Ausgänge direkt von ihren Eingangsvariablen abhängen. Dies bedeutet, dass kombinatorische Schaltungen auch keine Möglichkeit zur Speicherung haben, d. h., sie haben weder ein Erinnerungsvermögen noch einen Takteingang, der den Speicherzeitpunkt bestimmt. Für jede Kombination der Eingangsvariablen gibt es immer eine Kombination von Ausgangsvariablen. Nach einer Erklärung der Einzelfunktionen wird anhand von Beispielen aus einer gegebenen Schaltung die Boolesche Gleichung entwickelt. Ebenso wird gezeigt, wie aus einer gegebenen Booleschen Gleichung die Logikschaltung mit UND-, ODER- und NICHT-Gliedern entworfen wird.

25

3.1 Schaltzeichen und Funktionen

Schaltzeichen und Funktionen

3.1

Die Schaltzeichen für die

(Abb. 3.1).

logischen Grundschaltungen

wurden in DIN 40900

festgelegt

NICHT A

Abb. 3.1: Schaltzeichen der logischen

Grundschaltungen UND,

ODER und NICHT

(Inverter) nach DIN 40900

Nach der DIN sind aber auch die international verwendeten Schaltzeichen erlaubt. Die internationalen Schaltzeichen für UND, ODER und NICHT zeigt Abb. 3.2.

AODERB B

^_NICHT A Abb. 3.2: Internationale Schaltzeichen der logischen

Die

Grundschaltungen UND,

ODER und NICHT (Inverter)

Logiktabellen der Grundschaltungen UND, ODER und NICHT zeigt Tab. 3.1.

Tab. 3.1: Wahrheitslabellen der

Grundschaltungen UND, ODER,

_A_B_A UND B 0 0 0 0 10 10 0 111

NICHT

(Inverter)

_A_B_A ODER B 0 0 0 0 11 10 1 111

A

NICHT A

0 1 10

Zum besseren Verständnis werden die Grundschaltungen UND und ODER für drei Variable mit Hilfe von Schaltern dargestellt (Abb. 3.3, Abb. 3.4, Abb. 3.5).

26

3

Logische Grundschaltungen: UND, ODER, NICHT und XOR

UND-Gatter (AND gate)

3.2

Das UND-Gatter führt eine logische UND-Verknüpfung (Konjunktion) seiner Eingangsvariablen durch. Der Ausgangswert eines UND-Gatters ist nur dann 1, wenn die Werte aller seiner Eingänge gleichzeitig 1 sind, unabhängig von der Anzahl der Eingangsvariablen. Im englischen Sprachgebrauch wird das UND-Gatter als AND, AND gate oder auch and bezeichnet. Der Operator für die logische UND-Verknüpfung ist in LOGIC2 das Zeichen „&". Um nachzuprüfen, wie ein UND-Gatter auf verschiedene Kombinationen von Eingangssignalen reagiert, wird ein Quellprogramm (Liste 3) u o nl.dcb (und oder nicht 1) entworfen, mit dem die Schaltungsfunktion des Beispieles überprüft wird. Um Schreibaufwand zu sparen, werden in diesem Quellprogramm auch das ODER-Gatter und der Inverter mit programmiert. Die Funktion kann auch mit Hilfe der UND-Schaltung mit Schaltern nachvollzogen werden (Abb. 3.3). in:

EINGANG2, EINGANG1, EINGANGO

out:

UND_210, ODER_210,

EingangsSignale AusgangsSignale

NICHT

*BOOLEAN-EQUATIONS UND 210

EINGANG2 & EINGANGl & EINGANGO

logische UND Verknuepfung der

ODER 210

EINGANG2

NICHT

/EINGANGO

Liste 3: Teil des

+

EINGANGl

+

EINGANGO

EingangsSignale logische ODER Verknuepfung logische Negation

Quellprogramms u_o_n 1 .dcb zur Überprüfung der logischen Grundschaltungen

27

3.3 ODER-Gatter (OR gate) Mit dem Prüfprogramm uonl.dvs 3.6) und überprüft werden.

#0 ChipReset #0 EINGANG2 EINGANG1 #0 #0 EINGANGO #100 EINGANG0 #200 EINGANG0 #200 EINGANG1 #300 EINGANGO #400 EINGANG2 #400 EINGANG0

=

=

=

=

=

=

=

=

=

=

0 0 0 0 1 0 1 1 1 0

//alle Ex // nur EO

(Liste 4)

=

=

// nur El //El E2

=

=

=

kann das

#400 #500 #600 #600 #700 #800 #800 #800 #900

0 1 1 1

Simulationsergebnis erzeugt (Abb.

EINGANG1 EINGANGO EINGANGO EINGANG1 EINGANGO EINGANG2 EINGANGO EINGANG1 EINGANGO

=

=

=

=

=

=

=

=

=

0 1 0 1 1 0 0 0 1

// nur E2 E2 //EO =

E2 //El //alle Ex =

//alle Ex // nur EO

=

=

0 1

Liste 4: Teil des Prüfprogramms u_o_n 1 ,dvs fiir das UND-Gatter

1260

Ons

901ns

EINGANG2 EINGANG1

+|_|~~ |_[ +|_|

EINGANGO

+i

UND_210

+|_|

Abb. 3.6:

[

Simulationsergebnis fiir das

|

|

|

|

_

|

[

_

_

_

UND-Gatter als Zeitdiagramm

Zeitdiagramm (Abb. 3.6) des Simulationsergebnisses zeigt, dass, wie erwartet, nur im Zeitraum zwischen 700 ns und 800 ns der Ausgang UND_210 1 ist, weil dort alle Eingänge gleichzeitig 1 sind. Der Leuchtmelder UND210 leuchtet also nur in diesem Fall. Zwischen Ons und 700ns ist der Ausgang UND_210 0, der Leuchtmelder leuchtet nicht. Wenn bei 700 ns der EINGANGO ebenfalls gleich 1 wird, ist der Ausgang UND 210 1. Das

=

=

=

3.3

ODER-Gatter (OR gate)

Das ODER-Gatter führt eine logische ODER-Verknüpfung (Disjunktion) seiner Eingangsvariablen durch. Der Ausgangswert eines ODER-Gatters ist immer dann 1, wenn der Wert eines oder mehrerer seiner Eingänge gleich 1 ist. Damit eingeschlossen ist, dass der Ausgang ODER 210 auch gleich 1 ist, wenn alle Eingänge gleichzeitig 1 sind, unabhängig von der Anzahl der Eingangsvariablen. Im englischen Sprachgebrauch wird das ODER-Gatter als OR, or-gate oder auch als or function bezeichnet. Der Operator für die logische ODER-Verknüpfung ist in LOGIC2 das Zeichen „+" (Pluszeichen).

28

Logische Grundschaltungen: UND, ODER, NICHT und XOR

3

Zum Nachweis der Funktion des ODER-Gatters wird wieder das

Quellprogramm

uonl.dcb (Liste 3) benutzt, mit dem auch das ODER-Gatter programmiert wurde. Ebenso kann das Prüfprogramm u_o_nl.dvs verwendet werden. Die Funktion kann ebenfalls mit Hilfe der ODER-Schaltung mit Schaltern nachvollzogen werden (Abb. 3.4). Das Simulationsergebnis (Abb. 3.7) zeigt, dass in der Zeit von 100 ns bis 900 ns der Ausgang ODER_210= 1 ist. Man sieht, dass während dieser Zeit immer mindestens einer der drei Eingänge gleich 1 ist.

1260

0ns

901ns

EINGANG1

+|_[~ |_| +|_[

EINGANG0

+1

ODER_210

+|_[~~

EINGANG2

[

I

I

]

[

_

1

[

_

_

_

Abb. 3.7:

Simulationsergebnisfür das ODER-Gatter als Zeitdiagramm

Inverter oder Negationsglied (NOT)

3.4

Der Inverter hat, im Gegensatz zum UND- und ODER-Gatter, immer nur einen Eingang. Beim Inverter ist der Wert des Ausgangs NICHT 0, wenn der Wert des Eingangs EINGANG0 1 ist. Im umgekehrten Fall ist der Ausgang NICHT 1, wenn der Eingang EINGANG0 0 ist. Im englischen Sprachgebrauch wird der Inverter als inverter, negation oder NOT function bezeichnet. In der Entwurfsumgebung LOGIC2 ist der Operator für die Negation das Zeichen „/" unmittelbar vor einer Variablen. In der Literatur werden verschiedene Schreibweisen für die Negation (Inversion) verwendet. Die folgenden Booleschen Gleichungen haben dieselbe Schreibweise: =

=

=

=

NICHT

=

/EINGANG0;

NICHT

=

-EINGANG0;

NICHT

=

EINGANG0

Hinweis zum Zeichnen eines Inverters in Logikschaltungen: Das Dreieck des Inverters kann beim Zeichnen einer Logikschaltung weggelassen werden, wenn stattdessen nur der kleine Kreis des Inverters gezeichnet wird, der die Negation kennzeichnet. Dies gilt sowohl für Schaltungseingänge als auch für Schaltungsausgänge. Sind zwei Negationen hintereinander in einer Schaltung, heben sich ihre Wirkungen gegenseitig auf, und beide können weggelassen werden (Abb. 3.8.Abb. 3.9).

3.5 Schaltbild der

Abb. 3.8:

im GAL22V10_29

Schaltung u_o_nl

Abb. 3.9:

NOR-Schaltung mit Inverter

ODER-Schaltung

Wie sieht ein Inverter mit einem Schalter in der Praxis aus? Man nimmt einen Tastschalter, der einen Ruhekontakt besitzt, also einen Öffner. Das heißt, es leuchtet der Leuchtmelder, weil der Kontakt geschlossen ist (Abb. 3.5 ). Wird der Tastschalter betätigt, dann öffnet sich der Kontakt und der Leuchtmelder erlischt Nachdem der Tastschalter losgelassen wird, leuchtet der Leuchtmelder wieder. In der Praxis findet man solche Öffner beispielsweise als Endschalter, die den Stromkreis unterbrechen, wenn eine Endstellung erreicht wurde. .

Auch für den Inverter kann wieder die Quelldatei u_o_nl.dcb verwendet werden, um die Logikfünktion zu verdeutlichen. Im Zeitdiagramm (Abb. 3.10) ist der Ausgang NICHT bis zum Zeitpunkt 100 ns 1, weil in diesem Zeitraum EINGANGO 1 ist, der Leuchtmelder NICHT leuchtet. Sobald aber EINGANGO 1 wird, wird NICHT gleich 0, der Leuchtmelder leuchtet also nicht mehr. Das Linienbild der Variablen EINGANGO sieht spiegelverkehrt zur Ausgangsvariablen NICHT aus. Man sagt: „die Eingangsvariable EINGANGO wird invertiert" oder: „NICHT ist die Inversion von EINGANGO". =

=

=

0ns_

EINGANGO

+1

NICHT

+'

Abb. 3.10:

3.5

[ |

1260

] 1

| |

901ns

1 [

[ |

| 1

_

[ |

V

_

Simulationsergebnisfür die Negation als Zeitdiagramm

Schaltbild der Schaltung u

o

nl im GAL22V10

Zum Abschluss des Beispiels u_o_nl wird die Schaltung betrachtet, die für das Bauelement GAL22V10 von LOGIC2 generiert wird. In der Logikschaltung (Abb. 3.11), deren Struktur dem Bauelement GAL22V10 angepasst worden ist, kann man das UND-Gatter, das ODER-Gatter und den Inverter leicht erkennen. Interessant ist beim ODER-Gatter, dass es als NOR-Gatter (Nicht-Oder-Gatter) mit einem nachgeschalteten Inverter verwirklicht wurde. Wegen des internen Aufbaus des GAL 22V10 ist dies für die vorliegende Schaltung die beste Lösung, weil sie innerhalb der programmierbaren Logikschaltung die wenigsten Ressourcen

benötigt.

3

30

EINGANG2 D-

EINGANGl D-

Logische Grundschaltungen: UND, ODER, NICHT und XOR

_/0DER_210

ODER_210.INV

-^>o-ODER_210

EINGANGO O-D

UND 210

—O NICHT

Abb. 3.11: Gesamtschaltbild der Schaltung uo nl.dcf

XOR-Gatter (Antivalenz-Gatter)

3.6

Eine weitere, häufig verwendete logische Schaltung ist das Antivalenzgatter, das auch als exklusives ODER-Gatter bezeichnet wird. Wird der Begriff ODER allein gebraucht, ist nicht die Verknüpfung XOR gemeint. Im englischen Sprachgebrauch wird es als exclusive or gate, xor-gate, inequality gate oder auch difference function bezeichnet. Der Wert seines Ausgangs ist dann gleich 0, wenn die Anzahl der Eingänge mit dem Wert 1 ungerade ist. Der Operator für die logische ODER-Verknüpfung ist in LOGIC2 das Zeichen #. Tab. 3.2:

Logiktabelle von XOR mit drei (XOR 3E) und zwei (XOR_2E) Eingängen

EINGANG2_EINGANGl_EINGANGO_XOR 3E_XOR ~~Ö

2E

0 0 0 0 0 0 111 0 10 11 0 110 0 10 0 1 10 10 0 110 1111

Die Logikfunktion für ein Antivalenz-Gatter mit zwei Eingängen ist ebenso wie die eines Antivalenz-Gatters mit drei Eingängen in Tab. 3.2 eingetragen. Beim Antivalenz-Gatter mit zwei Eingängen kann man die Schaltungsfunktion über die Interpretation des Namens EXKLUSIV-ODER erklären: Wenn exklusiv, also ausschließlich, der Wert eines der beiden Eingänge gleich 1 ist, ist der Wert des Schaltungsausgangs XOR 2E 1. Anders formuliert: der Ausgang XOR E2 ist nur dann gleich 1, wenn die beiden Eingänge verschiedene Werte haben. =

Mit dem Quellprogramm in Liste 5 kann die XOR-Schalrung erzeugt werden.

3.6 XOR-Gatter (Antivalenz-Gatter) in:

31

EINGANG!, EINGANGO

out: EXOR

; ;

Eingangssignale Ausgangssignale

; ;

der

*BOOLEAN-EQUATIONS EXOR

=

Liste 5: Teil der

EINGANG1 # EINGANGO

logische EXOR Verknuepfung Eingangssignale

Quelldatei xor_2e.dcb

Das internationale Symbol für die XOR-Schaltung ist in Abb. 3.12 zu erkennen. In der Literatur wird auch die Bezeichnung EXOR anstelle von XOR verwendet. Beide Bezeichnungen

sind üblich.

Abb.

3.12:Logikschaltung xor_2e

Das Antivalenz-Gatter ist Abschnitt 6 erklärt wird.

Abb.

von

besonderer

3.I3:Logikschaltung xor_3e

Bedeutung für die Addition von Dualzahlen, die in

Zum Nachweis der Funktion des XOR-Gatters wird wieder das Quellprogramm xor sle.dcb (Liste 5) benutzt, in dem auch das ODER-Gatter programmiert wurde. Ebenso kann das Prüfprogramm u o nl.dvs verwendet werden. Das Simulationsergebnis (Abb. 3.14) zeigt, dass in der Zeit von 100 ns bis 900 ns der Ausgang ODER_210= 1 ist. Man sieht, dass während dieser Zeit immer mindestens einer der drei Eingänge gleich 1 ist. 0ns

501ns

EINGANG1

+|_\~

EINGANGO xor

+1

Abb. 3.14:

[

+1_r~

]

[

~|_ ]

~~|_

Simulationsergebnis xor_2e.dcb

Mit dem

grafisch erstellten Prüfprogramm Schaltung simuliert werden.

aus

Liste 6 kann die Istfunktion der XOR-

3

32

Logische Grundschaltungen: UND, ODER, NICHT und XOR

EINGANG1 #0 EINGANGO #0 #100 EINGANGO

#200 #200 #300 #400 #400 #500

EINGANG1 EINGANGO

0;// Eingaenge 0 0;// alle Ex EO nur 1 1;// =

=

Ausgaenge XOR XOR

1;

EINGANGO

0;// nur El E2 1;// El

EINGANG1

0;

EINGANGO EINGANGO

0;// alle 1;// nur

=

=

=

Ex

=

EO

=

1: XOR 1: XOR

0: XOR 1: XOR

Liste 6: Teil der Prüfprogrammdatei xor_2e.dvs

Als

Ergebnis erhält man das Zeitdiagramm (Abb. 3.14).

Der Ausgang XOR ist, wie erwartet, EINGANG 1 allein 1 ist.

3.7

nur

dann 1,

wenn

entweder EINGANGO allein oder

Zusammenfas sung

logischen Gatter UND, ODER, INVERTER und XOR, aus denen kombinatorische Schaltungen aufgebaut werden können, wurden in ihren Funktionen erklärt. Die Formulierungen der Funktionen in HDL ermöglichten den Schaltungsentwurf und die Verifikation jeder einzelnen Schaltung. Die Zeitdiagramme der Schaltungen wurden erklärt. UND, ODER und INVERTER wurden in einer einzigen Schaltung u ojil zusammengefasst. Die jeweiligen Darstellungen der Schaltungen mit ihren Schaltzeichen veranschaulichen diese zusätzDie

lich.

3.8

Übungsaufgaben

Verschiedene lösen.

Übungsaufgaben sind am besten mit Hilfe der Entwurfsumgebung LOGIC2 zu

3.8.1

XOR mit drei

Eingängen

Quelltext XOR 3EB.DCB (B fur Boolesche Gleichung) eines XOR-Gatters mit drei Eingängen ist dort in einer Booleschen Gleichung formuliert. Die Funktionstabelle dieses

Der

Gatters soll mit Hilfe der Simulation ermittelt werden. Mit dieser Funktionstabelle soll in einem Entwurf XOR 3EF (F für Funktionstabelle) die Quelltextdatei neu formuliert werden, die mit LOGIC2 optimiert wird. Die sich dann ergebende Boolesche Gleichung muss mit der Gleichung in der ersten Quelltextdatei XOR 3EB übereinstimmen. Diese ist in der Datei XOR 3EF.L2o enthalten.

3.8

Übungsaufgaben

33

Hauptfenster von LOGIC2 muss das Fenster Options geöffnet werden. In dieFenster muss die Karte Optimize ausgewählt werden. Dort werden unter Listing alle Optionen als Long, Symbol Table, Path Length, Equations und Function Table durch Anklicken aktiviert. Nur dann werden alle Ergebnisse der Optimierung, also auch die Booleschen Gleichungen, in der Datei mit der Endung .12o angezeigt. Hinweis: Im sem

3.8.2 In der

Boolesche

Gleichung der Schaltung snl

Quelldatei SN1F.DCB im (Schaltnetz 1) im Ordner snl ist die Funktion eines Schalt-

als Funktionstabelle gegeben. Die Boolesche Gleichung dieser telt werden. Diese ist in der Ergebnisdatei SN1.L20 enthalten. netzes

Schaltung muss ermit-

Hinweis: Im Hauptfenster von LOGIC2 muss das Fenster Options geöffnet werden. In diesem Fenster muss die Karte Optimize ausgewählt werden. Dort werden unter Listing alle Optionen als Long, Symbol Table, Path Length, Equations und Function Table durch Anklicken aktiviert. Nur dann werden alle Ergebnisse der Optimierung, also auch die Booleschen Gleichungen, in der Datei mit der Endung .12o angezeigt.

Mit dieser Booleschen Gleichung muss ein neuer Entwurf SN1JB entwickelt dem die Funktionseingabe mit einer Booleschen Gleichung erfolgt.

werden, bei

Von der

Schaltung zur Booleschen Gleichung: Boolesche Algebra

4

In diesem Abschnitt wird erklärt,

-

-

-

wie logische Funktionen mit Hilfe der Booleschen Algebra formuliert werden wie die Operatoren für UND und ODER in der Booleschen Algebra aussehen wie man die Boolesche Gleichung zum Entwurf einer kombinatorischen Logikschaltung einsetzt wie man aus einer kombinatorischen Logikschaltung ihre Boolesche Gleichung ableiten kann.

4.1

Funktion des Schaltnetzes Boolescher Algebra

und_oder in

Wie muss die Verknüpfung der Eingangsvariablen in der Logikschaltung und_oder in einem Ausdruck formuliert werden, damit ihre Funktion erkannt werden kann? Mit Hilfe der Booleschen Algebra ist dies möglich. Dies wird anhand der Aufgabe und_oder erklärt.

Zunächst wird der Text der Aufgabenstellung

analysiert:

Ein Leuchtmelder DS leuchtet dann, wenn die beiden Schalter Sl und SO gleichzeitig betätigt werden oder wenn der Schalter S2 allein betätigt wird. In der Booleschen Algebra ist die logische UND-Verknüpfung nur dann wahr, wenn gleichzeitig alle Eingangsvariablen wahr sind. Im vorliegenden Fall lautet die Schreibweise für eine der notwendigen Bedingungen,

für die der Leuchtmelder leuchtet: DSl

=

(EINGANG 1

&

EINGANGO).

Aussagenlogik formuliert, ist die Teilfunktion DS1 dann wahr, wenn beide Eingangssignale wahr sind. Anders ausgedrückt heißt das, dass der Leuchtmelder leuchtet, wenn gleichzeitig EINGANG 1 1 und EINGANGO 1 sind. Mit der

=

=

4.2 Boolesche Gleichung

zur

35

Schaltungssynthese der Schaltung undoder

Hinweis: Für die logische UND-Verknüpfung wird das Zeichen & („Kaufmanns Und") benützt, da das hier verwendete Schaltungssyntheseprogramm LOGIC2 damit arbeitet. In der Literatur werden unterschiedliche Zeichen für die UND-Verknüpfung verwendet, so dass der Leser auf die jeweilige Notation achten muss. Nun leuchtet der Leuchtmelder aber auch unter der Bedingung, dass EINGANG2 wahr ist. Dies wird in der Booleschen Algebra mit der ODER-Verknüpfüng erreicht. Für die Schaltung und oder lautet die vollständige Funktion dann folgendermaßen:

DS DS

=

=

DS1 +EINGANG2

(EINGANG 1 & EINGANGO) + EINGANG2

Das Signal DS ist dann 1 (wahr), wenn entweder EINGANG 1 und EINGANGO 1 sind oder EINGANG2 allein 1 ist oder auch, wenn alle Eingangssignale 1 sind.

gleichzeitig

Hinweis: Für die

logische ODER-Verknüpfüng wird das Zeichen + (arithmetisches Additionszeichen) benützt, da das hier verwendete Schaltungssyntheseprogramm LOGIC2 damit

arbeitet. Für den Anwender kann dies verwirrend wird ja „drei und vier ist sieben" gesprochen.

sein, denn auch die Addition „3

+

4

=

7"

In der Literatur werden wiederum unterschiedliche Zeichen für die ODER-Verknüpfüng verwendet. Sind UND-Verknüpfungen und ODER-Verknüpfüngen in einem Ausdruck gemischt, werden zuerst die UND-Verknüpfüngen berechnet und mit diesen Zwischenergebnissen dann die ODER-Verknüpfüngen durchgeführt. Teilweise werden sogar die UND-Verknüpfüngen ganz ohne Verknüpfüngszeichen geschrieben, was zu folgender Schreibweise führt: aus „D (A & B) + C" wird dann „D AB + C". =

=

Bemerkenswert ist die Tatsache, dass jede beliebige kombinatorische Logikschaltung mit den logischen UND-Verknüpfüngen, ODER-Verknüpfüngen und Invertern eindeutig formuliert werden kann. Andere Logikverknüpfüngen sind dazu nicht erforderlich. Die Booleschen Gleichungen können dann jedoch sehr umfangreich werden. Bei der Realisierung in Hardware müssen aber Veränderungen vorgenommen werden, da in der Praxis keine logischen Grundverknüpfüngen mit beliebig vielen Eingängen zur Verfügung stehen.

4.2

Boolesche Gleichung zur Schaltungssynthese der

Schaltung und_oder Schaltung und oder kann mit dem Schalmngssyntheseprogramm LOGIC2 in eine Logikschaltung umgeformt werden. Die Details der Schaltungsbeschreibung und die verwendete Beschreibungssprache sind im folgenden Zusammenhang unwichtig. Im Quellprogramm (Liste 7) sieht man neben den Kommentaren und der Definition der Ein- und Ausgänge, dass die Schalmngsfünktion durch die Boolesche Gleichung DS (EINGANG 1 & EINGANGO) + EINGANG2 definiert wird. Die

=

4 Von der Schaltung zur Booleschen Gleichung: Boolesche

36 In: out:

EINGANG2, EINGANG1, EINGANGO

;

DS

;

*BOOLEAN-EQUATIONS DS (EINGANG1 & EINGANGO) =

+

EINGANG2

; ;

Liste 7: Teil des

Algebra

Eingangssignale Ausgangssignal logische Verknuepfung Eingangssignale

der

Quellprogramms undoder.dcb mit Boolescher Gleichung

Schaltungssynthese mit LOGIC2 wird mit dem Befehl Optimize im Menü Execute geErgebnis der Schaltungssynthese mit LOGIC2 ist die bereits bekannte Logikschaltung (Abb. 4.1), die mit dem Quellprogramm entworfen worden ist, in dem die Schalmngsfunktion mit der Wahrheitstabelle definiert wurde. Die Logikgatter sind in international genormter Schreibweise dargestellt, die UND-Schaltung mit EINGANG 1 und EINGANGO und die ODER-Schaltung mit den Eingängen ELNGANG2 und i_02. Die Funktion der logischen Grundschaltungen UND und ODER wurde in Abschnitt 2.2 näher erklärt. Die

startet. Das

i Ol

EINGANG2 O EINGANG1 l=> EINGANGO O

Abb. 4.1: Schaltung und oder mit Logikgattern

Am

Beispiel und_oder wurde gezeigt, dass dieselbe logische Funktion sowohl mit einer Wahrheitstabelle als auch mit der Booleschen Gleichung der Schaltungsfunktion eindeutig dargestellt werden kann. Gleichungen können mit den dafür bestehenden Regeln, ähnlich wie dies bei algebraischen Gleichungen der Fall ist, bearbeitet werden. Damit können Umwandlungen und Vereinfachungen von Booleschen Gleichungen erreicht werden, die beim Handentwurf von Logikschaltungen nützlich sind. Das assoziative Gesetz, das kommutative Gesetz und die De Morgansche Regel ermöglichen die gewünschten Vereinfachungen. Da Schaltungen in diesem Lehrbuch grundsätzlich vom Schaltungssyntheseprogramm entworfen werden, wird darauf verzichtet, die Boolesche Algebra zur Vereinfachung von Booleschen GleichunBoolesche

gen anzuwenden.

4.3 Auch der

Von der Schaltung nuo.dcb

zur

Booleschen Gleichung:

umgekehrte Weg, die Boolesche Gleichung aus einer gegebenen Logikschaltung abzuleiten, ist in der Praxis wichtig, damit die Funktion bestehender Logikschaltungen nachvollzogen werden kann. Dieses Verständnis ist für die Fehlersuche in Logikschaltungen unbedingt notwendig. Es muss beachtet werden, dass die beiden Schaltungen n u o

Schaltung zur Booleschen Gleichung: n

4.3 Von der

(nicht und oder)

und Funktionen haben. Die Quelldatei stellt. IN OUT

u

37

o.dcb

und_oder trotz verschiedener Ähnlichkeiten

n_u_o.dcb (Liste 8)

unterschiedliche

wird mit Hilfe der Wahrheitstabelle der

:

EINGANG2, EINGANG1, EINGANGO

;

:

AUS

;

logische

Schaltung

er-

Eingangssignale Ausgangssignal

*FUNCTION-TABLE

$HEADER

:

EINGANG[2..0]

x

000b 001b 010b 011b 100b 101b 110b 111b

x

X

X X X X X X

Liste 8: Teil der

Als

Quelldatei n

u

y

AUS

Y y y y y y y y

o.dcb

Ergebnis der Schaltungssynthese erhält man die Logikschaltung in Abb. 4.2. i 03

EINGANG2 O

i 02

i 04

EINGANG1 LZ>

-{>-

i 01

-CZ>

EINGANGO LZ>Abb. 4.2:

Stromlaufplan der Schaltung n

u o

Jetzt wird gezeigt, wie die Schaltung nji o vom Stromlaufplan in eine Boolesche Gleichung umgesetzt werden kann. Ausgehend von den Eingängen werden die logischen Verknüpfungen aller im Stromlaufplan angegebenen Bauelemente aufgeschrieben. Die Boolesche Gleichung kann folgendermaßen entwickelt werden: 1. Erstellen der

logischen

Funktion des

Ausgangssignals

für

jedes

Bauelement der Schal-

tung 2. Einsetzen der internen Ausgangssignale der einzelnen Bauelemente, bis nur noch die Aus- und Eingangsvariablen der Gesamtschaltung als Variable in der Gleichung vorkommen.

4 Von der

38 Tab. 4.1: Boolesche

Schaltung zur Booleschen Gleichung: Boolesche Algebra

Gleichungenfiir alle Signale im Stromlaufplan nuo

Inverter i_03 /EINGANG2 i 04 =/EINGANG 1 =

ODER-Gatter i 01 i 02 + EINGANGO

UND-Gatter

i_02 (ij)3 & i04) =

=

AUS AUS

=

i 01

Inverterausgänge in die Gleichung für das UND-Gatter eingesetzt, ergibt sich (i_02 (/EINGANG2 & /EINGANG 1). Dabei muss man beachten, dass die UND-Verknüpfungen vor den anderen Verknüpfungen berechnet werden, was durch eine runde Klammer um den jeweiligen Ausdruck ausgedrückt wird. Da der Ausgang des UND-Gatters i_02 mit dem Eingang des ODER-Gatters i_01 verbunden ist, kann i_02 in die Gleichung des ODER-Gatters eingesetzt werden: Werden die =

i_01 (/EINGANG2 & /EINGANG 1) + EINGANGO. Damit ergibt sich die Boolesche Gleichung der Schaltung u_o_n als AUS (/EINGANG2 & /EINGANG 1) + EINGANGO. =

=

Wird diese Boolesche Gleichung in das daraus die Schaltung von Abb. 4.2 erzeugt.

Schaltungssyntheseprogramm eingegeben,

wird

Überprüfung der Logikschaltung nuo wird mit den acht möglichen Kombinationen der Eingangsvariablen durchgeführt. Die

0ns

1250

900ns

EINGANG2 EINGANG1 EINGANGO AUS

Abb.

4.3:Simulationsergebnis der Logikschaltung n

Als Beispiel wird für die bestimmt (Abb. 4.4).

u o

als

Zeitdiagramm

Eingangskombination ELNGANG[2..0]

=

000b der Wert

von

AUS

i 03

EINGANG2 LZ>-

i 02

i 04

EINGANG1 O-

i 01

.

EINGANGO O-

Abb. 4.4:

Bestimmung von AUS der Schaltung n

u o

EINGANGO ist Null und beeinflusst damit den logischen Wert der ODER-Schaltung i_01 nicht. Da beide Eingänge EINGANG2 und EINGANG 1 Null sind, sind auch die Werte der

39

4.4 Zusammenfassung

Inverterausgänge beide 1. Der Ausgang der UND-Schaltung i_02 wird damit 1. Da eine Eins am Eingang einer ODER-Schaltung bereits eine Eins am Ausgang bewirkt, ist AUS 1. =

Zusammenfassung

4.4

Schaltung u_o_n, beschrieben mit einer Funktionstabelle, wurde mit Hilfe von LOGIC2 synthetisiert. Die logische Schaltung mit UND- und ODER-Gattern aus LOGIC2 wurde schrittweise in eine Boolesche Gleichung umgesetzt. Um das Ergebnis zu überprüfen, wurde die ermittelte Boolesche Gleichung wieder in LOGIC2 eingegeben und die Funktion der damit entworfenen Schaltung durch eine Simulation überprüft. Dadurch wurde gezeigt, wie die beiden Beschreibungen einer logischen Funktion, die Funktionstabelle und die Boolesche Gleichung, ineinander übergeführt werden können. Die

4.5

Übungsaufgaben

4.5.1

Boolesche

Gleichung der Schaltung n_u_o

In der

Quelldatei N_U_O.DCB ist die Funktion eines Schaltnetzes als Funktionstabelle gegeben. Die Boolesche Gleichung dieser Schaltung muss ermittelt werden. Diese ist in der Ergebnisdatei N_U_O.L20 enthalten. Mit dieser Booleschen Gleichung muss ein neuer Entwurf N_U_0_B entwickelt werden, bei dem die Funktionseingabe mit einer Booleschen Gleichung erfolgt. Hinweis: Im Hauptfenster von LOGIC2 muss das Fenster Options geöffnet werden. In diesem Fenster muss die Karte Optimize ausgewählt werden. Dort werden unter Listing alle Optionen als Long, Symbol Table, Path Length, Equations und Function Table durch Anklicken aktiviert. Nur dann werden alle Ergebnisse der Optimierung, also auch die Booleschen Gleichungen, in der Datei mit der Endung .12o angezeigt.

4.5.2 Eine

Vereinfachung von Schaltnetzen: Schaltung gatopt

Quelldatei GAT

OPT.DCB

muss

für die

folgende Funktion erstellt werden:

ausl=/b&c&d+d&f+c&d&e+/e&/f aus2=/d&e&f+ /d&/e&f+d&/e&f+d&e&/f+d&/e aus3=a&d+b&/c&/d+/a&b&/c Die Boolesche Gleichung dieser Logikverknüpfungen Ergebnisdatei Datei GATOPT.L20 enthalten.

muss

;

ermittelt werden. Diese ist in der

Praxisbeispiel: Schaltnetz decod26 (Decoder)

5

Mit dem Schaltnetz decod26 wird -

-

-

-

Beispiel einer Lichtschalteranordnung erklärt, was eine Decodierung von Eingangssignalen bedeutet wie man die logische Funktion des Decoders in HDL (Hardware Description Language) als Tabelle eindeutig definiert wie man die Funktion des Decoders überprüft wie die decod26-Schaltung in einer programmierbaren Logikschaltung verwirklicht wird wie man Ausgangssignalkombinationen als Dezimalzahl interpretieren kann. am

-

5.1

Einführung in die Themen: Coder, Decoder

Wenn man eine Nachricht so übermitteln will, dass ihr Inhalt gar nicht oder nur mit erheblichem Aufwand entschlüsselt werden kann, wählt man einen Geheimcode. Die Originalnachricht (Quelle) kann vom Sender nach einer ihm bekannten Vorschrift in den Zielcode umgewandelt werden. Man bezeichnet diese Umsetzung als Codierung der Nachricht. Der Inhalt der Nachricht ist nun im Zielcode nicht mehr direkt lesbar. Der Empfänger kann aber, wenn ihm die Vorschrift bekannt ist, aus dem Zielcode wieder die ursprüngliche Nachricht erzeugen. Diesen Vorgang bezeichnet man als Decodierung. In ähnlicher Weise kann

man

Kombinationen

von

Einzelsignalen

umwandeln. Hierzu ein

Beispiel: Am Steuerpult einer Maschine muss der Wert von sechs Sensoren mit sechs Leuchtmeldern angezeigt werden. Wegen der Eigenschaften der Anlage leuchten die Leuchtmelder nicht in den 64 möglichen Kombinationen auf, sondern nur in vier. Um diese Leuchtmelder anzusteuern, reicht es aus, die vier Kombinationen der sechs Ausgangssignale in vier Kombinatizweier Übertragungssignale zu codieren. Am Ende der Übertragungsleitung wird dann ein Decoder angeschlossen, der wieder die ursprünglichen Ausgangssignale decodiert. onen

5.1

Einfuhrung in die Themen: Coder, Decoder_41_

Tab. 5.1: a5

a4

Codierung von a nach e und Decodierung von e nach a der LED-Signale a3

a2

a


Temperatur erreicht Abb. 5.1: Coder und Decoder zur Reduzierung von

Verbindungsleitungen

Hinweis: Allgemein formuliert ist ein Coder eine Schaltung, welche die Daten eines Systems 1 nach einer bestimmten Vorschrift in codierte Daten eines Systems 2 umsetzt, im vorliegenden Fall komprimiert.

Die Schaltung Decoder macht diese Umsetzung wieder rückgängig, indem sie die codierten Daten des Systems 2 wieder in die Daten des Systems 1 umsetzt. Die codierten Daten werden im vorliegenden Beispiel decod26 expandiert.

wichtige Anwendung eines Decoders ist die Decodierung der Maschinenbefehle (Befehlscode) in Rechnern. Jeder Befehl, der in einem Rechner ausgeführt werden soll, muss in der Befehlsholphase vom Programmspeicher zum Steuerwerk übertragen werden. Deshalb wird in einem Rechner angestrebt, den Befehlscode möglichst kompakt zu halten. Man spart damit Speicherplatz für den Befehlscode, der komprimiert gespeichert wird, und zusätzlich spart man Übertragungszeit. Bei der Befehlsausführung muss der Befehl wieder decodiert Eine andere

werden.

Beide

Anwendungen machen deutlich, dass in technischen Anwendungen Signalkombinatio-

decodiert werden. In welchen Fällen dies vorteilhaft ist, hängt von den einzelnen Randbedingungen ab, wie beispielsweise Verarbeitungszeit und Schaltungsaufwand, die im Einzelfall geprüft werden müssen. nen

5

42

5.2

Aufgabenstellung:

Praxisbeispiel:

Schaltnetz decod26

(Decoder)

Schaltnetz decod26

Die Decoderschaltung decod26 ist ein Schaltnetz mit zwei Eingängen (el, eO) und sechs Ausgängen (a5, a4,...a0). Decod26 (Abb. 5.2) setzt die vier Kombinationen der beiden Eingangssignale el und eO ebenfalls in vier Kombinationen der sechs Ausgangssignale a5, a4, a3, a2, al und aO um.

Abb. 5.2: Blockschaltbild decod26

Aufgabe decod26: Zwei Eingangsvariable el und eO steuern sechs Leuchtdioden a5...a0 an. Die Zuordnung der Kombinationen der Eingangs- zu den Ausgangsvariablen wird in der Tab. 5.2 definiert. Jede Kombination der beiden Eingangssignale el und eO bewirkt je eine bestimmte Kombination der Ausgangssignale a5...a0. Ihre Zuordnung ist in Tab. 5.2 festgelegt. In dieser Aufgabe werden der Einfachheit halber die Schaltungsausgänge an sechs Leuchtdioden angeschlossen. Tab. 5.2: Funktion der Schaltung decod26 als Wertetabelle a5

_a»_

0 0 1 1

0 1 1

1

Mit einer Schaltung dieser Art ist es möglich, die sechs Ausgangssignale des Decoders mit zwei Eingangssignalen zu beeinflussen. Beispielsweise reichen zwei Leitungen eines Steuerpults aus, um vor Ort mit sechs Signalen über einen Decoder vier vorgegebene Signalkombinationen zu erzeugen. Damit kann die Anzahl von Verbindungsleitungen zwischen Maschine und Steuerpult reduziert werden.

5.3

43

Logikbeschreibung und Synthese der Schaltung decod26 mit Wertetabelle

Logikbeschreibung und Synthese der Schaltung

5.3

decod26 mit Wertetabelle Aufgabenstellungen für das Syntheseprogramm können auf verschiedene Weise formuliert werden. Da das Schaltungssyntheseprogramm auch Wahrheitstabellen verarbeitet, wird die Tabelle direkt als Schalmngsbeschreibung eingegeben. In der Quelldatei (Liste 9) erkennt man die Tab. 5.2 leicht wieder. Allerdings muss man die von LOGIC2 geforderte Syntax beachten. Die Details der Schaltungsbeschreibung sind in diesem Zusammenhang nicht wichtig. Informationen darüber können im Menü Hilfe aufgerufen werden, nachdem LOGIC2 mit der beigefügten CD installiert wurde. IN

:

el, eO a4, a3, a2, al, aO

: a5, OUT *FUNCTION-TABLE

Eingaenge Ausgaenge

$HEADER: x

[ el, eO ]

x

a5, a4, a3, a2, al, aO o 0 1 0

y y y y

X X X

o 0 1 1

Liste 9: Teil der Schaltungsbeschreibung der Quelldatei decod26.dcb

Das

Quellprogramm wird mit dem Schalmngssyntheseprogramm LOGIC2 in eine Logikschaltung umgeformt. Das Ergebnis der Schaltungssynthese mit LOGIC2 ist eine Logikschaltung, die einerseits als Blockschaltbild (Abb. 5.2) und andererseits als Detailschaltung (Abb. 5.3, Abb. 5.4) im Schaltungssyntheseprogramm dargestellt werden kann.

t>

o

A5

{>-H=> A5 Abb. 5.3:

Schaltung decod26 mit Logikgattern

Abb. 5.4: Detail decoderh Al der Schaltung decod26

Die Logikgatter sind in der international genormten Schreibweise dargestellt, beispielsweise die ODER-Schaltung (Abb. 5.3) mit dem Ausgang A4.INV und die UND-Schaltung i_01 (Abb. 5.4) mit Ausgang AI. Zu beachten ist, dass die als Dreieck dargestellten Signalver-

44

5

Praxisbeispiel: Schaltnetz decod26 (Decoder)

stärker in Abb. 5.3 den Wert ihres Eingangs unverändert durchschalten. Im Gegensatz dazu invertiert der Inverter i_02, der in Abb. 5.4 als Dreieck mit einem kleinen Kreis am Ausgang gezeichnet ist, das Eingangssignal: Eine Null am Eingang EO bewirkt am Ausgang des Inverters i_02 eine Eins eine Eins am Eingang EO bewirkt eine Null. ,

Betrachtet man Abb. 5.3 genauer, erkennt man, dass der Eingang eO direkt auf den Ausgang A3 durchgeschaltet wird. Immer, wenn eO 1 ist, wird auch A3 1. Der Eingang El ist direkt auf A5, A2 und AO durchgeschaltet. Das Schaltungssyntheseprogramm hat also aus der Tabelle erkannt, wo Logikverknüpfungen eingesetzt werden müssen und wo ein Eingangssignal ohne weitere Verknüpfung direkt zu dem jeweiligen Ausgang durchgeschaltet werden kann. Die auf den ersten Blick kompliziert aussehende Logiktabelle der Schaltung decod26 wird durch die Schalmngssynthese also wesentlich vereinfacht, da die Gesamtschaltung mit relativ wenigen einfachen Logikelementen realisiert werden kann. =

=

Nachweis der Istmnktion der Schaltung decod26

5.4

Nach der Schaltungssynthese wird die Schaltungslogik in die für die Zielschaltung passende Form umgesetzt. Dies ist im vorliegenden Fall die programmierbare Logikschaltung GAL22V10. Danach wird überprüft, ob die vom Programm umgesetzte Logikfunktion (Istfunktion) die Sollfunktion der Aufgabenstellung erfüllt. Das Prüfmuster sieht bei der einfachen Schaltung decod26 so aus, dass alle vier möglichen Kombinationen der zwei Eingangsvariablen el und eO an die Schaltungseingänge angelegt werden und das Simulationsergebnis mit dem erwarteten Ergebnis der Tab. 5.2 verglichen wird.

Prüfprogramms, das zum Nachweis der Sollfunktion in LOGIC2 grafisch eingegeben wurde, zeigt Liste 10. Die Kommentare wurden zur Dokumentation von Hand eingefügt.

Den wesentlichen Teil des

#0 #0 #100 #200 #200 #300 #400 #400

El

EO E0 El

0;// Eingaenge 0;//el =0, eO =0 l;//el =0, eO =1

000000 011000

eO =0 eO =1

:a5...a3: :a5...a3:

110111 111101

eO =0

:a5...a3:

000000

1;

E0 E0 El

0,-//el =1, l;//el =1,

E0

0;//el =0,

Liste 10: Teil des

Ausgaenge a5...a0: a5...a3:

0; Prüfprogramms decod26.dvs

In Liste 10 werden nacheinander die Eingangsvariablen in der Reihenfolge geändert, wie es in der Funktionstabelle Tab. 5.2 angegeben ist. Sind el =0 und gleichzeitig e2 0, wird erwartet, dass alle Ausgänge ebenfalls Null sind. Dies ist im Zeitdiagramm (Abb. 5.5) zu erkennen. Bei 100 ns wird E0 1, El bleibt Null. Die Ausgänge A4 und A3 werden Eins, =

=

5.5 Anschluss

an

alle anderen Ausgänge bleiben Null. Die restlichen der Funktionstabelle.

|_|

El

+

E0

+i +i +1 +1

[

1

A2 AI

+

'

~2_ 1

I

1 | 1 + |_|

A4

Ergebnisse sind in Übereinstimmung mit

401ns

Ons

A5

I

|_| L_ +1_\~

AO Abb. 5.5:

Simulationsergebnis des Decoders

Damit ist der Nachweis erbracht, dass die kombinatorische der Wahrheitstabelle vorgegebene Funktion erfüllt.

5.5

45

Siebensegmentanzeige und Hinführung zum Dualsystem

Logikschaltung

decod26 die in

Siebensegmentanzeige und Hinführung zum Dualsystem

Anschluss

an

Zur Darstellung von Dezimalzahlen werden üblicherweise Siebensegmentanzeigen verwendet. Die Siebensegmentanzeigen werden bei Uhren oft als Leuchtdioden- oder auch Flüssig-

kristallanzeigen ausgeführt.

folgenden Beispiel werden die sechs Ausgänge der Decoderschaltung an eine Siebensegmentanzeige angeschlossen. Die Verdrahtung erfolgt nach der Schemazeichnung. Im

decod26 e() el

II U. o

o

Abb. 5.6: AnSteuerung der Siebensegmentanzeige mit decod26; Zahlen 1,2 und 3 der Siebensegmentanzeige

Schließt man die sechs Ausgänge des Decoders an eine Siebensegmentanzeige wie in Abb. 5.6 an, kann man erkennen, dass die Eingangskombinationen 01,10 und 11 der beiden Ein-

46

5

Praxisbeispiel:

Schaltnetz decod26

(Decoder)

gangssignale el und eO jeweils die Darstellung der Dezimalzahlen 1, 2 und 3 auf der Siebensegmentanzeige bewirken. Die Schaltungslogik des Decoders wurde so ausgelegt, dass bei den in Abb. 5.6 vorgegebenen Verbindungsleitungen zur Siebensegmentanzeige sich genau diese Darstellungen ergeben. Beispielsweise ist für die Darstellung der Dezimalzahl Eins sowohl das an A4 angeschlossene Segment als auch das an A3 angeschlossene Segment aktiviert.

zur Hardware: Beim Anschließen der Siebensegmentanzeige wird vorausgesetzt, gemeinsame Anschluss aller Segmente an den Minuspol der Betriebsspannung angeschlossen ist. Dieser Anschluss wurde in Abb. 5.6 nicht eingezeichnet. Der für eine Digitalschaltung relativ hohe Betriebsstrom der Segmente muss von der Decoderschaltung aufgebracht werden. Ist dies nicht möglich, werden Treiberschaltungen oder Transistoren verwendet. Zu beachten ist, dass die Segmente einer Siebensegmentanzeige niemals direkt, also ohne Vorwiderstand, an 5 V angeschlossen werden dürfen. Da jedes Segment eine Leuchtdiode ist, muss der Diodenstrom immer mit einem Widerstand begrenzt werden.

Hinweis dass der

Tab. 5.3: Funktion der Schaltung decod26 als Wertetabelle

Zur Übersicht werden die angezeigten Dezimalzahlen zusätzlich des Decoders in Tab. 5.3 eingetragen.

zu

den Ein- und

Ausgängen

Mit dem Decoder wurde eine Schaltung entworfen, die willkürlich einer Signalkombination den Wert einer Dezimalzahl zuordnet. Dies legt den Gedanken nahe, eine Vorschrift zu entwerfen, nach der für einzelne Dezimalzahlen Kombinationen von Signalen festgelegt werden können. Die Zuordnung sollte so gestaltet sein, dass mit diesen Signalkombinationen auch gerechnet werden kann. Diese Überlegungen führen zum Dualsystem, das im Abschnitt 6 eingeführt wird. Mit ihm ist eine der Voraussetzungen geschaffen, die zur Verwirklichung von Digitalrechnern notwendig ist.

5.6

Zusammenfassung

Die Schaltung decod26 ermöglichte es, mit nur zwei Eingangssignalen vier verschiedene Kombinationen von sechs Ausgangssignalen zu erzeugen. Decoder sind in der Praxis übliche Standardschaltungen, die decod26 in ihrer Funktion erklärte. Mit diesem weiteren Schaltnetz wurde die Funktionstabelle zur Formulierung der Schaltnetzfunktion verwendet. Das Prüfprogramm zum Nachweis der Sollfunktion wurde erstellt und die Sollfunktion nachgewiesen. Zum Abschluss wurde gezeigt, dass die von decod26 erzeugten Ausgangssignale Dezimal-

5.7

Übungsaufgaben: Schaltnetz

zahlen wird.

anzeigen,

falls die

Siebensegmentanzeige entsprechend

47

der Abb. 1.1

angeschlossen

5.7

Übungsaufgaben: Schaltnetz

Verschiedene lösen.

Übungsaufgaben sind am besten mit Hilfe der Entwurfsumgebung LOGIC2 zu

5.7.1

Schaltungsentwurf: Coder code_7.dcf

Die Zahlen einer Siebensegmentanzeige sollen übertragen werden. Dazu werden sie mit dem Coder code_7 in zwei Bit codiert. Diese zwei bit werden an der Anzeigetafel wieder mit deco_7 decodiert und die Zahlen auf einer Siebensegmentanzeige angezeigt. Jede der vier Kombination der sechs Eingangssignale e5, e4, e3, e2 el, und eO, die 7d, ld, 2d und 3d auf der Siebensegmentanzeige darstellen sollen, wird in jeweils eine andere Kombination der Ausgänge cal und c aO abgebildet. Der Coder soll als Funktionstabelle programmiert werden. Die Verbindungsleitungen der Segmente sind genauso verdrahtet wie in der Schaltung decode26. Segmente eines Zeichens leuchten dann, wenn das dem Segment entsprechende Bit gesetzt ist. Der zweite Anschluss der Segmentdiode ist an Masse angeschlossen. Die Anzeige wird mit einem Vorwiderstand betrieben. Die Boolesche

Gleichung (Datei code_7J2o) für den Coder code_7 muss ermittelt werden.

Hinweis: Im Hauptfenster von LOGIC2 muss das Fenster Options geöffnet werden. In diesem Fenster muss die Karte Optimize ausgewählt werden. Dort werden unter Listing alle Optionen als Long, Symbol Table, Path Length, Equations und Function Table durch Anklicken aktiviert. Nur dann werden alle Ergebnisse der Optimierung, also auch die Booleschen Gleichungen, in der Datei mit der Endung .12o angezeigt.

5.7.2

Schaltungsentwurf: Decoder deco_7

Signale c al und c aO des Coders code 7 sollen decodiert werden, damit die Zahlen 7d, 2d ld, und 3d auf der Siebensegmentanzeige angezeigt werden können. Wie lauten die Booleschen Gleichungen (Datei deco_7J2o) der Schaltung?

Die

Zahlensysteme

6

Zahlen die Rede ist, wird im üblichen Sprachgebrauch vereinfachend die Formulierung „die Dezimalzahl 25" verwendet, wenn „die Zahl mit der Dezimaldarstellung 25" gemeint ist oder die Formulierung „die Dualzahl 1001", wenn „die Zahl mit der Dualdarstellung 1001" gemeint ist. Wenn

von

Folgenden wird das Dualsystem für natürliche und ganze Zahlen erklärt. Mit dem Dualsystem muss einerseits die Darstellung von Zahlen ohne Vorzeichen und die Darstellung von Zahlen mit Vorzeichen, also positiven und negativen Zahlen vereinbart werden. Ziel ist es, mit Dualzahlen auf einfache Weise rechnen zu können. Das setzt möglichst einfache Schaltungen im Rechner (Hardware) und möglichst einfache Rechenvorschriften für alle Rechnungen voraus. Neben den Rechenregeln müssen auch Möglichkeiten gefunden werden, Zahlenbereichsüberschreitungen in Rechnungen zu erkennen. In der Anfangszeit der RechIm

nertechnik hatten die Recheneinheiten sehr unterschiedliche Strukturen und verarbeiteten Zahlen mit Vorzeichen auf verschiedene Weise. Inzwischen hat sich die Darstellung von negativen Zahlen mit dem Zweierkomplement (Abschnitt 6.3) durchgesetzt. Das Hexadezimalsystem wird zum einfacheren Schreiben von Dualzahlen ebenfalls erklärt. Ein Vergleich des Dezimalsystems mit dem Dualsystem am Ende des Kapitels vertieft das Verständnis.

Aufbau von Zahlensystemen

6.1

Ehe auf das Dezimal- und Dualsystem eingegangen wird, vorab ein kleiner Exkurs zu anderen Zahlensystemen, die noch heute verwendet werden. Bei der Zeitrechnung hat sich für die Stundenzählung das 12er System (Duodezimalsystem, 12 ist ein Dutzend) durchgesetzt, dagegen für die Tageseinteilung die 24er Zählung (2x12): ein Tag hat 24 Stunden. Es wird aber noch komplizierter: Eine Stunde wird in 60 Minuten aufgeteilt (Sexagesimalsystem), ebenso eine Minute in 60 Sekunden. Bruchteile von Sekunden werden dagegen in Zehntelsekunden oder Hundertstelsekunden angegeben! Bei Zeitberechnungen muss man daher laufend Übergänge zwischen ganz verschiedenen Zahlensystemen berücksichtigen. Ein derart inhomogenes System ist historisch gewachsen und wäre in der Rechentechnik nur mit großem Aufwand zu handhaben. von Logikschaltungen in Zahlen umzusetzen, muss eine Vorschrift gefunden welche die Zuordnung von Signalkombinationen zu den Zahlen festlegt. Da man mit werden, den als Zahlen interpretierten Signalkombinationen mit Hilfe von Logikschaltungen rechnen will, muss das neue Zahlensystem auch die sich daraus ergebenden zusätzlichen Randbedin-

Um

Signale

6.1 Aufbau von Zahlensystemen

49

Rechenoperationen, also etwa für eine Addition, müssen ebenfalls Vorschriften entwickelt werden. Man kann sich leicht vorstellen, dass das heute verwendete Dualsystem mit Zweierkomplementdarstellung (Abschnitt 6.3) all dies erst nach einer langen Entwicklungszeit erfüllen konnte. gungen erfüllen. Für alle

der Aufwand so groß erscheint, warum werden dann gerade Binärkombinationen Signalen zum Rechnen in Rechnern verwendet? Man kann durchaus elektronische Schaltungen entwerfen, die mit drei Werten arbeiten, der so genannten tertiären Logik, und nicht mit zwei Werten wie in der Digitaltechnik. Obwohl es verschiedene Ansätze dieser Art gibt, hat sich in der Praxis wegen der einfachen Umsetzung der Schaltungen in Hardware und der Einfachheit der Rechenregeln die binäre Schaltungstechnik mit nur zwei möglichen Wenn

nun

von

Werten

durchgesetzt.

Hat man sich für das Dualsystem entschieden, muss zuerst festgelegt werden, welche Signalkombinationen von Werten den entsprechenden Zahlen im Dezimalsystem zugeordnet werden müssen, um ein möglichst einfaches Zahlensystem zu entwerfen, das für einen Digital-

rechner geeignet ist. Bevor das

Dualsystem erklärt wird, werden einige Eigenschaften des bekannten Dezimalsysherausgearbeitet. Seit langem hat sich das Dezimalsystem mit der Zahlenbasis 10 zur Darstellung von Zahlen durchgesetzt. Das Dezimalsystem ist ein Stellenwertsystem, auch polyadisches System genannt. Wenn man die Zahl 267 (zwei-sechs-sieben) sieht, weiß man sofort, dass sie als „Zweihundertsiebenundsechzig" gelesen wird und welcher Zahlenwert damit gemeint ist. Im Zusammenhang der Gesamtzahl betrachtet, hat jede einzelne Ziffer der Zahl 267 eine bestimmte Wertigkeit (Stellenwert). Ziffer Zwei hat die Wertigkeit 100, Ziffer Sechs die Wertigkeit 10 und Ziffer Sieben die Wertigkeit Eins. Dadurch lässt sich diese Zahl auch als (2 mal 100) + (6 mal 10) + (7 mal 1) berechnen. Interessant ist die sprachliche Vertauschung der Reihenfolge der Einerstelle (7) mit der Zehnerstelle (6) im Deutschen, die die Reihenfolge der vorgegebenen Wertigkeiten vertauscht. Diese Vertauschung ist in der englischen Sprache nicht vorhanden. tems

Um den Wert einer Zahl zu ermitteln, wird jede Ziffer mit ihrem Stellenwert multipliziert und alle Multiplikationsergebnisse addiert. Die Wertigkeiten der Stellen für das Dezimalsystem sind dabei von rechts nach links aufsteigend: 1, 10, 100,... Die Basis des Dezimalsystems ist die Zehn, da zehn verschiedene Zahlen, nämlich 0 bis 9, mit je einem eigenen Zeichen dargestellt werden können. Da das

Dezimalsystem allgemein geläufig ist, bietet es sich an, das Dualsystem in ähnlicher gestalten. Im Folgenden wird das Dualsystem beschrieben und es werden Regeln aufgestellt, die zum Rechnen mit Dualzahlen notwendig sind. Kombinationen von Binärsignalen werden vom Anwender als Dualzahlen angesehen. Diesen Dualzahlen werden dann Dezimalzahlen zugewiesen. Da verschiedene Zuordnungen möglich Weise

zu

sind, muss der Anwender wissen, für welche Dezimalzahlen die Dualzahlen stehen: -

Für natürliche Zahlen, also Zahlen ohne Vorzeichen Für ganze Zahlen

-

Was dies

bedeutet, wird in den folgenden Abschnitten erklärt.

50

6 Zahlensysteme

Dualdarstellung für natürliche Zahlen

6.2

Hinweis: Es werden nur ganze Zahlen, also Zahlen ohne Komma, betrachtet. Dualzahlen mit Kommastellen gibt es ebenfalls, ihre Betrachtung führt aber über den Rahmen einer Einführung hinaus.

Kapitel wird der Übergang von Signalen zu Zahlen durchgeführt. Dazu betrachtet Signale als eine Gruppe von Zeichen mit verschiedenem Stellenwert. Ausgehend von vier Signalleitungen (Abb. 6.1) ordnet man den einzelnen SignalkombinatiIn diesem

man

die

onen

Dual- und Dezimalzahlen

zu.

Spannungsquelle

(0 V)

Abb. 6.1: Vier Signalleitungen zur Zahlendarstellung

Wie vereinbart, werden die Schalter S3...SO in ihrem Ruhezustand, also geöffnet, gezeichnet. Wenn keiner der Schalter betätigt ist, sind die vier Variablen EINGANG3...EINGANG0 alle gleich Null. Wenn man diese Variablen gemeinsam als Dualzahl betrachtet, dann hat die Dualzahl die Wortbreite 4 bit (binary digit, binäre Ziffer oder Stelle). Schreibt man die Signalwerte dieser Variablen in ihrer Reihenfolge als Zahl, so erhält man 0000b. Das b hinter der Zahl bedeutet, dass es sich um eine Dualzahl handelt. Das Dualsystem kennt, wie die Binärsignale der Schaltung, nur zwei Ziffern, die Null und die Eins. Der 0000b wird die Zahl Od zugewiesen. Das d hinter der Zahl bedeutet, dass es sich um eine Dezimalzahl handelt. Das ist der Grund, warum für die Dualzahl nicht mehr das d als Kennzeichnung verwendet werden konnte. Welcher Dualdarstellung soll nun die Dezimalzahl 1 zugewiesen werden? Wird der Schalter SO alleine betätigt, ist nur die Variable EINGANG0 1, und es ergibt sich dann die 0001b. Dieser wird die Dezimalzahl ld zugewiesen. Betätigt man den Schalter Sl alleine, entspricht diese Signalkombination der Dualzahl 0010b. Der Dualzahl 0010b wird die Dezimalzahl 2d zugeordnet. Betätigt man die beiden Schalter Sl und SO gleichzeitig, erhält man die Dualzahl 0011b, beziehungsweise die Dezimalzahl 3d. Das muss vor dem Hintergrund betrachtet werden, dass jede Stelle der Dualzahl eine eigene Wertigkeit hat, wenn das Dualsystem wie das Dezimalsystem aufgebaut sein soll. Die Wertigkeiten der =

6.2

51

Dualdarstellung fur natürliche Zahlen

Stellen im Dualsystem werden wie im Dezimalsystem zugeordnet. Die niedrigstwertige Stelle einer Dualzahl steht am weitesten rechts und hat die Wertigkeit 1 oder 2 Im englischen Sprachgebrauch wird diese Stelle mit LSB (Least Significant Bit) bezeichnet. Die .

nächsthöhere Stelle links davon hat die Wertigkeit 2 oder 21. Die Stelle, die am weitesten links steht, ist die höchstwertige Stelle. Im Beispiel wird sie mit D3 bezeichnet und hat die Wertigkeit 23. Im englischen Sprachgebrauch wird die höchstwertige Stelle mit MSB (Most Significant Bit) bezeichnet. Von den Exponenten der Stellenwertigkeit wurden die Bezeichnungen der Eingangsvariablen abgeleitet: EINGANG3 kennzeichnet das höchstwertige, EINGANGO das niedrigstwertige Signal. Dies entspricht dem jeweiligen Exponenten der Zahlenbasis (Tab. 6.1). Tab. 6.1: Zuordnung der Dezimalzahlen 0,1, 2 und 3 zu Dualzahlen Dezimalzahl EINGANG3

Wertigkeit der Stelle 10'

Tab. 6.2:

10'

Dualzahl EINGANG2 EINGANG 1

EINGANGO

2!

10"

2"

Zuordnung von Dualzahlen mit 4 bit zu Dezimalzahlen Dualzahl

Dezimalzahl

EINGANG3

EINGANG2

EINGANG 1

EINGANGO

0 0 0

0 0 0

0 I

0

0

0 0 0

1

0 0 0

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

1

0

0

1

0

1

1

1 0

1

1

1

i

1 1 0

0

Will

0

Od ld 2d 3d 4d 5d 6d

1

7d

0

8d 9d lOd 1 ld 12d 13d 14d 15d

0 1

0

1

1 0 1

den Wert der Dualzahl 0010b berechnen, kann man ähnlich wie beim Dezimalsysvorgehen: Jeder Zahlenwert einer Ziffer wird mit ihrem Stellenwert multipliziert und die Summe aller Produkte addiert. Für sich 0010b ergibt (0 mal 23) + (0 mal 22)+(1 mal 21) + (0 mal 2°) 2d. Für 0011b rechnet man (0 mal 23) + (0 mal 22) +(1 mal 21) + (1 mal 2°) 3d. man

tem

=

=

52

6 Zahlensysteme

Schreibt man alle 16 Signalkombinationen, die mit den vier Schaltern möglich sind, in systematischer Reihenfolge auf, so kann man die Zuordnung der Dualzahlen zu den Dezimalzahlen der Tab. 6.2 entnehmen. Die Dezimalzahl lOd entspricht der Dualzahl 1010b (1 mal 23)+(0 mal 22)+(l mal 2')+(0 mal 2°) lOd berechnet.

(Tab. 6.2). Sie wird als

=

Die Umrechnung einer Dualzahl in eine Dezimalzahl ist aufgrund der bekannten Stellenwerrelativ einfach. Anders sieht es aus, wenn eine Dezimalzahl in eine Dualzahl umgewandelt werden soll. te

Tab. 6.3:

Umrechung der Dezimalzahl 38 in die ihr entsprechende Dualzahl

Zahlenwert

Teiler

Quotient

Rest

38d

:2

=19

0

19d

:2

=9

1

9d

:2

=4

1

4d

:2

=2

0

2d

:2

=1

0

ld

:2

=0

1

Dualzahl

stellenrichtig

Stellenwert

Der

Übergang

10

0

1

25

23

22

24

10

21

~~2°

Dezimal- zum Dualsystem ist auf verschiedene Weise möglich. Eine in Tab. 6.3 dargestellt. Zuerst wird 38d durch 2 geteilt. Das Ergebnis ist 19d Rest 0. Sowohl das Ergebnis als auch der Rest werden in Tab. 6.3 eingetragen. Das Zwischenergebnis wird wiederum durch 2 geteilt: Ergebnis 9d Rest 1. Die Teilung durch 2 wird so lange fortgesetzt, bis man zuletzt bei „1 geteilt durch 2" ankommt. Das Ergebnis ist 0 Rest 1. Beides wird wieder eingetragen. Damit ist der Divisionsteil beendet. Nun kann die Dualzahl aus der Spalte Rest der einzelnen Divisionen zusammengestellt werden. Zu beachten ist dabei die Reihenfolge der einzelnen Reste in der Schreibweise: der Rest der letzten Division, also die Eins, ist die höchstwertige (=linke) Stelle der Dualzahl: 100110b, die als die natürliche Zahl 38d interpretiert wird. vom

Möglichkeit wird

Es

(1

kann leicht nachgeprüft werden, mal 25)+(0 mal 24)+(0 mal 23)+(l mal 22) +

(1

ob diese Umrechnung richtig war: mal 21)+(0 mal 2°) 32d + 4d + 2d 38d. =

=

Die Zahlenumrechnung wurde zum besseren Verständnis der Dualzahlen sehr ausführlich erklärt. Sie kann mit den üblichen Taschenrechnern direkt durchgeführt werden. Alle so umgewandelten Dualzahlen werden als natürliche Zahlen angesehen.

6.2

53

Dualdarstellung für natürliche Zahlen

Rechnen mit Dualzahlen als natürlichen Zahlen

6.2.1

Wenn Dualzahlen addiert werden sollen, müssen die Rechenregeln der Tab. 6.4 angewandt werden. Die Subtraktion wird hier nicht erklärt, da sie durch Addition der entsprechenden negativen Zahl ausgeführt werden kann. Tab. 6.4:

Additionsregeln für Dualzahlen mit I bit Wortbreite

Operand 1 Operand2 0

Operand3

Summe 0

Übertrag in die höhere Stelle 0

Operand3 soll ein Übertragsbit aus einer vorangegangenen Addition sein, das in Tab. 6.4 beispielhaft zusätzlich zu den beiden anderen Operanden addiert wird. Ähnlich wie bei der Addition von Dezimalzahlen müssen Überträge (Carry) in die nächst höhere Stelle berücksichtigt werden. Dies ist bei lb + lb und lb + lb + lb der Tab. 6.4 der Fall. Die Addition lb+Ibergibt als Summe 0 mit Übertrag 1 in die nächsthöhere Stelle. Ähnlich ist lb + lb + lb, das als Summe 1 mit Übertrag 1 in die nächsthöhere Stelle ergibt. Die Beispiele in Tab. 6.5 zeigen, wie die Überträge behandelt werden. Zur Kontrolle der Rechenergebnisse wird die Rechnung zusätzlich im Dezimalsystem durchgeführt. Bewusst werden unterschiedlich feste Wortbreiten von 4 bit und 5 bit für die beiden Beispiele vorgegeben. In jedem Rechner steht außerdem neben dem Ergebnis einer Addition auch das Übertragsbit C dieser Addition zur Verfügung. Dieses Übertragsbit ist immer der Übertrag aus der höchstwertigen Stelle heraus. Es wird meist als Flagbit C, Carrybit, Carry, Cy oder CY bezeichnet. Tab. 6.5:

Beispieladditionenfür Dualzahlen

Dezimalzahlen

Dualzahlen

Dezimalzahlen

Dualzahlen

Bei der Addition der vier Zahlen mit der Wortbreite 5 bit im rechten Teil der Tab. 6.5 ergeben sich von Stelle D2 nach Stelle D3 zwei Überträge. Diese müssen ebenfalls, wie die anderen Ziffern dieser Stelle, nacheinander addiert werden. Bei der Addition der Stelle D3 ergibt sich also 1 + 1 + 1=1 mit einem Übertrag 1 nach D4. Damit ergibt sich in Stelle D4 in der

54

6

Summe eine Eins. Die Überprüfung des (1 mal 24)+(l mal 23)+(0 mal 22) + (1 mal

Zahlensysteme

Ergebnisses der zweiten Addition ergibt 21)+(1 mal 2°) 27d, also das richtige Ergebnis! =

ZahlenbereichsüberschreiUing fur natürliche Zahlen

6.2.2

fester Wortbreite

Beispiele für natürliche Zahlen sind 0, 1, 2,...27,...48,...34256,... Der Zahlenbereich für Dualzahlen eines Rechners ist durch seine Wortbreite festgelegt, die wiederum durch die Hardware bestimmt wird. Deshalb kann es vorkommen, dass eine Zahl oder ein Rechenergebnis, beispielsweise eine Addition, mit der vorgegebenen Wortbreite nicht mehr darstellbar ist. Bei einer Wortbreite von 4 bit können die Dualzahlen von 0 bis 15 dargestellt werden. Dies geht aus Tab. 6.2 hervor. Wenn man mit der Zahl 16 rechnen möchte, ist sie als Dualzahl nicht mehr mit der Wortbreite 4 bit darstellbar. Die Rechnung kann also mit der vorgegebenen Wortbreite nicht mehr durchgeführt werden. An den folgenden beiden Beispielen wird verdeutlicht, wie dies aussieht. Tab. 6.6:

Zahlenbereichsüberschreitung bei der Addition von Dualzahlen (natürliche Zahlen)

Dezimalzahl

6d 7d

Überträge 13d

Dualzahl

Dezimalzahl

D:

D

1 1

1 1

1 1

0 0

Do 8d

9d

Dualzahl 1),

1),

1 1 0 0

0 0 0 0

Während die Rechnung links in Tab. 6.6 das korrekte Ergebnis liefert, da 13 noch im Wertebereich von 4 bit liegt, ist das Ergebnis 17d der Rechnung rechts nicht mehr mit 4 bit darstellbar. Die Überprüfung ergibt, dass 8d + 9d 17d und nicht 0001b ist. Der Wert des Flagbits C 1 ist der Hinweis darauf, dass das Ergebnis falsch ist. Ein Übertrag aus der höchstwertigen Stelle tritt immer dann auf, wenn der Zahlenbereich einer natürlichen Zahl die vorgegebene Wortbreite überschreitet. Für ganze Zahlen gelten andere Regeln (Abschnitt 6.3.4). Das Flagbit C gehört nicht mehr zur Wortbreite des Datenworts. Es wird in allen Prozessoren bei jeder Rechenoperation ermittelt und sein Wert gespeichert. Der Programmierer kann es per Software jederzeit abfragen. Wichtig ist, dass ein Rechner keine Operation aufgrund des Flagbitwertes selbständig durchfuhrt. Das Flagbit ist nur ein Hinweis vom Rechner. Es ist Aufgabe des Programmierers zu entscheiden, was im Fall einer Zahlenbereichsüberschreitung für natürliche Zahlen geschehen muss. Tritt nacheinander mehrmals eine Eins als Übertrag auf, werden diese nicht addiert, sondern die durch den ersten Übertrag gesetzte Eins bleibt im Carrybit unverändert erhalten. =

=

Die Addition rechts in Tab. 6.6 ergibt bei der vorgegebenen Wortbreite von 4 bit bei der Addition 8 + 9 also eine Zahlenbereichsüberschreitung. Das Ergebnis 17d ist nicht mehr darstellbar, da bei 4 bit 15d die größte Zahl ist, die geschrieben werden kann. Diese Tatsache wird in einem Rechner durch das Flagbit C 1 angezeigt. =

6.3

Zweierkomplement zur Darstellung von negativen ganzen Zahlen

55

Hinweis: Ergibt sich bei der Addition von Dualzahlen, die als natürliche Zahlen interpretiert werden, ein Übertrag C aus der höchstwertigen Stelle, dann ist das Ergebnis falsch, weil eine Zahlenbereichsüberschreitung für die vorgegebene Wortbreite (Stellenanzahl) vorliegt._ Bisher wurden nur natürliche Zahlen verwendet, d.h. Zahlen, die kein Vorzeichen haben. In der Praxis kommen allerdings positive und negative ganze Zahlen vor. Zur Darstellung negativer Zahlen kann eine spezielle Zahleninterpretation der bisher verwendeten Dualzahlen benutzt werden: Die Dualzahl 1110b kann dann sowohl als eine natürliche Zahl als auch als eine ganze Zahl betrachtet werden. Dazu muss vorher vereinbart worden sein, wie die Dualzahlen zu interpretieren sind. Wurde z.B. die Vereinbarung getroffen, dass 1110b eine natürliche Zahl ist, dann entspricht sie der 14d. Wurde vorher aber die Vereinbarung getroffen, dass 1110b eine ganze Zahl ist, dann entspricht sie der -2d, also einer negativen ganzen Zahl. Dieselben Dualzahlen können sowohl als natürliche Zahlen ohne Vorzeichen (14d), als auch als Dualzahlen mit Vorzeichen (-2d), also als ganze Zahlen, betrachtet werden. Die Interpretation der Dualzahlen als negative ganze Zahlen macht es möglich, dass auf einfache Weise mit negativen Zahlen gerechnet werden kann. Um die Darstellung ganzer Zahlen im Zweierkomplement verstehen zu können, muss zuerst erklärt werden, wie diese definiert werden und wie sie aufgrund dieser Definition den Dezimalzahlen zugeordnet werden müssen.

6.3

Zweierkomplement zur Darstellung von negativen ganzen Zahlen

Das Zweierkomplement wird zur Darstellung von negativen ganzen Zahlen als Dualzahlen verwendet. Für den Einstieg in die Zweierkomplementdarstellung bieten sich Dualzahlen mit 4 bit Wortbreite ihrer Übersichtlichkeit wegen an. Die Erklärungen gelten selbstverständlich auch für andere Wortbreiten.

Mit vier Bit lassen sich 16 verschiedene Kombinationen bilden. Betrachtet man diese Kombinationen als natürliche Zahlen, so können ihnen die Dezimalzahlen von 0 bis 15 zugeordalso Zahlen mit Vorzeichen net werden (Tab. 6.2). Will man aber mit ganzen Zahlen rechnen, gibt es verschiedene Möglichkeiten. Da in der Digitaltechnik nur 0 und 1 zur Verfügung stehen, gibt es keine Möglichkeit, Plus und Minus als direkte Zeichen „+" und „-" darzustellen. Man kann zwar das Vorzeichen in einem gesonderten Bit gemeinsam mit jeder ganzen Zahl speichern, das Rechnen mit solchen Zahlen ist aber relativ aufwändig. Wenn man also mit einer negativen Dualzahl arbeiten will, muss man einen Teil von ihr als Vorzeichen und den anderen Teil als den Wert der negativen Zahl betrachten. Ob man also beispielsweise 1000b als -8d betrachtet, ist an der Dualzahl 1000b selbst nicht erkennbar. Auch erkennt kein Rechner, ob die Dualzahl, die zur Rechnung verwendet wird, vom Programmierer als natürliche oder als ganze Zahl interpretiert wird. -

-

Heute wird in der Rechnertechnik keine andere Darstellung ganzer Zahlen als die des Zweierkomplements verwendet. Deshalb beschränken sich die Erklärungen im Folgenden auf sie allein.

56

6

Zahlensysteme

Zuordnung ganzer Zahlen zu Dualzahlen in Zweierkomplementdarstellung

6.3.1

Es bieten sich verschiedene

Möglichkeiten der Zuordnung ganzer Zahlen zu Dualzahlen an. Ein Vorschlag wäre, das höchstwertige Bit einer Dualzahl als „Vorzeichenbit" zu betrachten. Es wird festgelegt, dass eine Null als höchstwertiges Bit eine positive Zahl kennzeichnen soll; eine Eins als höchstwertiges Bit kennzeichnet eine negative Zahl. Durch Ausprobieren wird in zwei Ansätzen versucht, eine Zuordnung zu erreichen, die mit den vorgegebenen Rechenregeln bei einer Addition das richtige Ergebnis liefert. Zuerst ein Hinweis zur Zahl Null und den ganzen Zahlen mit positivem Vorzeichen. Bei einer Wortbreite von 4 bit wird der Dualzahl 0000b die Od zugewiesen. Den positiven ganzen Zahlen werden einfach die Werte der natürlichen Zahlen zugewiesen, also der 000 lb die +ld, der 0010 die 2d,...und der 011 lb die +7d, und das Vorzeichen 0 wird als höchstwertiges Bit einfach zur Dualzahl 111b hinzugefügt. Damit sind von den zur Verfügung stehenden 16 Kombinationen der vier Bit bereits sieben Werte zugewiesen. In diesem Fall ist also Sieben die größte positive Zahl, die als Dualzahl mit positivem Vorzeichen dargestellt werden kann. Zum Vergleich: Die größte natürliche Zahl mit 4 bit war 15d. Durch das Vorzeichen ist der Zahlenbereich für positive Dualzahlen eingeschränkt.

Zuordnung ganzer Zahlen mit negativem Vorzeichen. Erster, nicht erfolgreicher Ansatz der Zuordnung, der nicht zu einem brauchbaren Ergebnis führt. Da die Null und die Sieben bereits positiven Dualzahlen zugeordnet wurden, stehen für die negativen Zahlen noch insgesamt acht Kombinationen zur Auswahl, die den Zahlen -8d bis -ld zugeordnet werden können. Beispielsweise könnte man der Dualzahl 1111b die Zahl -8, der 1110b die Zahl -7 zuordnen. Ob diese Zuordnung sinnvoll ist, kann mit der Addition +7d-7d überprüft werden: das Ergebnis muss dann Null sein.

Nun

zur

Tab. 6.7: Additionsergebnis bei falscher Zuordnung negativer Zahlen

Dezimalzahl

zu

Dualzahlen

Dualzahl

D3

Do

+7d

-7d

Überträge Od

Das

Ergebnis ist offensichtlich falsch, da 0101b verschieden von Null ist.

Auf diese Weise könnte man alle möglichen Konstellationen irgendwann auch zu folgender Zuordnung:

durchprobieren

und

gelangt

Richtiger Ansatz der Zuordnung, der zum gewünschten Ergebnis führt. Wie schon gesagt, stehen acht Kombinationen zur Auswahl. Für die restlichen acht verbleibenden Kombinatioder 1111b die -ld zugewiesen nen wird der Dualzahl 1000b -8d, der 1001b die -7d,

(Tab. 6.8).

6.3

57

Zweierkomplement zur Darstellung von negativen ganzen Zahlen

Tab. 6.8:

Zuordnung von Dualzahlen zu natürlichen und ganzen Dezimalzahlen Ganze Dezimalzahl

Natürliche Dezimalzahl

Dualzahl

Do 0 1 0 1 0 1 0 1 0 1

0 1 0 1

0 1

Die Wirksamkeit dieser Zuordnung wird pauschal durch zwei Stichproben überprüft: 7d 7d Od und 7d 3d 4d (Tab. 6.9). Beide Rechnungen liefern das richtige Ergebnis, was mit Hilfe der Tab. 6.8 überprüft werden kann. Warum der Übertrag C 1 in diesem Fall nicht berücksichtigt werden muss, wird in Abschnitt 6.3.5 erklärt.

-

=

=

-

=

Tab. 6.9: Ergebnis

von

Additonen bei richtiger Zuordnung negativer Zahlen

Dezimalzahl

Dualzahl

D3 +7d -7d

Überträge

1 Od

D2

Dezimalzahl

Di

Dualzahl

Do

Olli 10 0 1 1 1 1 0 0 0 0

D3 +7 -3

Überträge

1

+4

D2

Di

Do

Olli 110 1 1 1 1 0 10 0

Zur Erinnerung: Die hier gewählten Zuordnungen beruhen auf reinem Ausprobieren! Auch die beiden Additionsbeispiele beweisen nicht, dass das hier aufgestellte Zahlensystem richtig ist. Ebenso ist noch ungeklärt, wie Zweierkomplementzahlen allgemein ermittelt werden und wie damit gerechnet wird. Ungeachtet dessen ist es aber erstaunlich, dass allein durch Probieren bereits etwas Brauchbares herausgekommen ist. Hinweis: Die

gewählte Zuordnung in Tab. 6.8 für positive und negative Zahlen mit Hilfe der Zweierkomplementdarstellung ist richtig. Es ist beweisbar, dass mit Zweierkomplementzahlen in der vorliegenden Form unter Anwendung der bereits aufgestellten Additionsregeln gerechnet werden kann.

6

58

6.3.2

Zahlensysteme

Umwandlung einer negativen ganzen Zahl in eine Dualzahl im Zweierkomplement

Eine Dualzahl mit positivem Vorzeichen hat eine Null als höchstwertiges Bit (Tab. 6.8). Diese Dualzahl entspricht einer positiven ganzen Zahl. Sie wird gebildet, indem der Dualzahl, die als natürliche Zahl berechnet wurde, als Vorzeichen in der höchstwertigen Stelle eine Null hinzugefügt wird. Wie kann man die Dualzahl berechnen, die einer negativen ganzen Zahl entspricht? Folgendes Vorgehen liefert das richtige Ergebnis: 1.

Aufschreiben des

Betrags

der

negativen

Zahl als Dualzahl

(natürliche Zahl

in Bi-

närdarstellung) 2.

Erweitem der Dualzahl in eine ges Bit hinzugefügt wird

3.

Inversion aller Ziffern:

aus

positive Dualzahl, indem eine Null als höchstwerti-

einer Null wird eine Eins,

aus

einer Eins wird eine Null

niedrigstwertigen Stelle der invertierten positiven Dualzahl Aufgabe: Wie lautet das Zweierkomplement für -26d? Die Zahl +26 wird 11010b als Dualzahl geschrieben. Die Null an der höchstwertigen Stelle wird als positives Vorzeichen dieser Dualzahl hinzugefügt, damit ergibt sich 011010b. Werden alle Ziffern invertiert, ergibt sich 100101b. Addiert man lb zu 100101b, ergibt sich 100110b. Dies ist die gesuchte Dualzahl im Zweierkomplement für -26d (Tab. 6.10). 4.

Tab. 6.10:

Addition einer 1 b

zur

Berechnung der Dualzahl im Zweierkomplementfiir -26d

Aufschreiben der Zahl -26d als Dualzahl 11010b

Aufschreiben der Inversion aller Ziffern: +26d als positive wird 1, aus 1 wird 0 Dualzahl 100101b 011010b

aus

0

Addition von 1 b zur niedrigstwertigen Stelle der invertierten positiven

Dualzahl

100101b lb

Ergebnis: -26d entspricht 100110b

Zur Bestimmung des 1.

Betrags der negativen Dualzahl wird auf folgende Weise vorgegangen:

Aufschreiben der

negativen

Dualzahl mit ihrer Vorzeichenstelle

(Zweierkomple-

ment) 2.

Inversion aller Ziffern:

aus

einer Null wird eine Eins,

niedrigstwertigen Stelle Aufgabe: Wie groß ist der Betrag der negativen Dualzahl 3.

Addition einer Eins

aus

einer Eins wird eine Null

zur

100110b?

Alle Ziffern der negativen Dualzahl 100110b werden invertiert: 011001b. Addiert man lb zu 011001b, erhält man 011010b. Damit ist der Betrag der negativen Dualzahl 26d (Tab. 6.11).

6.3

59

Zweierkomplement zur Darstellung von negativen ganzen Zahlen

Tab. 6.11:

Berechnung des Betrags der negativen Dualzahl 100110b

Aufschreiben der negativen Dualzahl

Inversion aller Ziffern: aus 1 wird 0

100110b

011001b

aus

0 wird 1,

Addition von lb gen Stelle

zur

niedrigstwerti-

_Ergebnis: Betrag ist 26d

6.3.3

011001b lb 01101 Ob

Erweiterung der Stellenzahl einer negativen Dualzahl

Da man mit verschiedenen Wortbreiten arbeiten kann, muss geklärt werden, wie beispielsweise eine negative Dualzahl auf eine größere Wortbreite erweitert werden kann. Was geschieht mit der Vorzeichenstelle? Die Vorzeichenstelle von negativen Dualzahlen kann beliebig vervielfacht werden, ohne dabei den Zahlenwert einer positiven oder negativen Dualzahl zu verändern. Das soll mit den Beispielen +6d und -6d verdeutlicht werden, ohne dass ein mathematischer Beweis dafür gegeben wird. Zuerst wird die Erweiterung der Stellenzahl einer positiven Dualzahl betrachtet. Aus Tab. 6.8 kann entnommen werden, dass 0110b der +6d entspricht. Wie beim Dezimalsystem kann man vor die positive Dualzahl beliebig viele Nullen schreiben, ohne ihren Zahlenwert zu verändern. Schreibt man also +6d als Dualzahl mit 8 bit Wortbreite, ergibt sich 00000110b (Tab. 6.12). Der Zahlen wert von 00000110b hat sich gegenüber 0110b nicht geändert, da wie im Dezimalsystem keine der vier zusätzlichen Nullen eine Auswirkung auf den Zahlenwert hat.

-

-

Tab. 6.12:

Erweiterung der Stellenzahl einer positiven Dualzahl

Aufschreiben der positiven Dualzahl für 011 Ob

(+6d)

0110b

Erweiterung der Stellenzahl durch führende Nullen 00000110b

Die Erweiterung der Stellenzahl einer negativen Dualzahl wird auf ähnliche Weise durchgeführt. Die Zahl -6d soll mit 8 bit Wortbreite ermittelt werden. Man entnimmt aus Tab. 6.8 den Wert der negativen Dualzahl, die der -6d entspricht, das ist: 1010b. Die Eins als höchstwertige Stelle ist die Vorzeichenstelle und zeigt, dass diese Dualzahl negativ ist. Will man die -6d nun mit 8 bit Wortbreite schreiben, erweitert man die 4 bit Dualzahl mit ihrem Vorzeichenbit 1 so lange, bis die gewünschte Stellenzahl erreicht ist. Es ergibt sich 11111010b (Tab. 6.13). Tab. 6.13:

Erweiterung der Stellenzahl einer negativen Dualzahl

Aufschreiben der positiven Dualzahl für 1010b 1010b

(-6d)

Erweiterung der Stellenzahl durch führende Einsen 11111010b

Dass dieses Ergebnis richtig ist, kann man überprüfen, indem man den Betrag der negativen Dualzahl 11111010b bestimmt. Die Inversion der Zahl ergibt 00000101b. Addiert man dazu lb, erhält man 00000110b. 00000110b ist aber +6d, also ist der Betrag von 11111010b gleich

60

6 Zahlensysteme

6d. Der Dezimalwert der Zweierkomplementzahl 11111010b ist damit -6d (Tab. 6.14). Damit wurde gezeigt, dass die Erweiterung der Vorzeichenstelle der negativen Dualzahl zum richtigen Ergebnis fuhrt.. Tab. 6.14: Berechnung des Betrags der negativen Dualzahl 11111010b Aufschreiben der negativen Zweier-

komplementzahl

Inversion aller Ziffern: aus 1 wird 0

11111010b

00000101b

aus

0 wird

1,

Eigenschaften der Zweierkomplementzahlen Zahlendarstellung für negative Zahlen durchgesetzt hat. Die genannten

Addition von 1 b zur niedrigstwertigen Stelle der invertierten positiven Dualzahl 00000101b lb Ergebnis: Betrag ist 6d 0000011 Ob

haben

bewirkt, dass sich diese

Zahlenbereichsüberschreitungen bei Verwendung von Zweierkomplementzahlen fester Wortbreite

6.3.4

Zuerst wird die Zahlenbereichsüberschreitung bei der Addition zweier mit der Wortbreite 4 bit betrachtet, hier 6d + 6d 12d:

positiver Dualzahlen

=

Tab. 6.15:

Zahlenbereichsüberschreitung bei der Addition der beiden positiven Dualzahlen 0110b +0110b

Dezimalzahlen

Dualzahlen in Zweierkomplementdarstellung

D3

D;

0 0 1

Die Summe ist 1100b (Tab. 6.15), was nach Tab. 6.8 der -4d entspricht. Die größte positive Dualzahl, die mit 4 bit dargestellt werden kann, ist die +7d. Das Ergebnis der Addition, nämlich die +12d, kann mit der vorgegebenen Wortbreite nicht mehr richtig als vorzeichenbehaftete Dualzahl dargestellt werden. Stattdessen ergibt sich das falsche Ergebnis 1100b. Das Ergebnis ist auch deshalb offensichtlich falsch, weil die Summe zweier positiver Dualzahlen nicht eine negative Dualzahl ergeben kann. Um auf diesen Fehler hinzuweisen, gibt es in jedem Rechner das Flagbit Overflow (OVR, Überlaujbii). Dieses zeigt an, ob bei der letzten

Addition eine Zahlenbereichsüberschreitung für vorzeichenbehaftete Dualzahlen aufgetreten ist. Dieses Flagbit wird aus der XOR-Verknüpfung des Übertragsbits in die höchstwertige Stelle des Rechners hinein, im diesem Fall in D3 (**1 in Tab. 6.15), mit dem Flagbit C (*2Q in Tab. 6.15) des Rechners ermittelt: 1 XOR0 ergibt OVR= 1 (XOR-Verknüpfung siehe Tab. 3.2). Zur Erinnerung: Der Wert C 1 des Flagbits zeigt an, dass bei der letzten Addition eine Zahlenbereichsüberschreitung stattgefunden hat, wenn die Dualzahlen der Summanden als natürliche Zahlen betrachtet werden. Das Carrybit C einer Rechnung (Übertrag aus der höchstwertigen Stelle) ist also etwas anderes als das Overflowbit OVR (Überlauf, sein =

6.3

Zweierkomplement zur Darstellung von negativen ganzen Zahlen

61

zeigt eine Zahlenbereichsüberschreitung für vorzeichenbehaftete Dualzahlen an). Das Flagbit OVR wird mit Hilfe des Wertes des Flagbits C berechnet.

Wert 1

Die vier möglichen Kombinationen des Übertragsbits in das höchstwertige Bit mit dem Carrybit werden anhand von vier Additionen betrachtet (Tab. 6.16, Tab. 6.17). Tab. 6.16:

ment)

Übertragskombinationen 00 und Ol bei der Addition von Dualzahlen mit Vorzeichen (Zweierkomple-

Dez

Zweierkomplementzahl OVR

32d 32d

0 0 0 0

Üb. 64d

Dez

D7 D6 D5 D4 D3 D2 D, D0 0 0 1 1

0 0

0

0 0 0 0

0 0 0 0

0 0 0 0

Zweierkomplementzahl OVR

64d 64d

Üb ?

C D7 D6 D5 D4 D3 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0

D2 D, D0 0 0 0 0

0 0 0 0

0 0 0

Bei der Addition 32d + 32d 64d ergibt die XOR-Verknüpfung das Flagbit OVR 0, weil das Rechenergebnis 64d mit 8 bit als Zweierkomplementzahl darstellbar ist und keine Zahlenbereichsüberschreitung vorliegt. Das Ergebnis ist also richtig. =

=

Bei der Addition 64d + 64d +128d ergibt die XOR-Verknüpfung das Flagbit OVR 1. Die größte mit 8 bit darstellbare positive Zweierkomplementzahl ist 0111111 lb, also +127d. Die Eins als Übertragsbit in das höchstwertige Bit D7 ergibt mit dem Carrybit wegen der XOR-Verknüpfung den Wert OVR 1; ein klarer Hinweis auf eine erfolgte Zahlenbereichsüberschreitung! Das Rechenergebnis ist also falsch. Die Plausibilitätsbetrachtung ergibt außerdem, dass die Addition zweier positiver Zweierkomplementzahlen kein negatives Ergebnis ergeben kann. =

=

=

Tab. 6.17:

ment)

Übertragskombinationen 10 und 11 bei der Addition von Dualzahlen mit Vorzeichen (Zweierkomple-

Dez

OVR

D7 D6 D5 D4 D3 D2 D, D„ 0 0 0 1

0 0 1 1

1

1

1

-5 -16

Üb -21

Das

Zweierkomplementzahl

Dez

Zweierkomplementzahl OVR

D, D6 D; D4 D3 D2 Di 111110 1 1 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 0

D0

11 0 0 0 1 1

Ergebnis der Addition von (-105d) + (-105d) -210d wird nicht richtig berechnet; es ergibt sich als Summe die positive Dualzahl 01101110b, also 64d (Tab. 6.17). Das Ergebnis ist offensichtlich wieder falsch, da das Additionsergebnis zweier negativer Zweierkomplementzahlen keine positive Zweierkomplementzahl sein kann. Das Übertragsbit nach D7 bewirkt wegen der XOR-Verknüpfung mit dem Carrybit den Wert von OVR 1 und zeigt dadurch eine Zahlenbereichsüberschreitung bei der Addition an. Im Gegensatz dazu liefert die Addition (-5) + (-16) =-21 ein richtiges Ergebnis. Die XOR-Verknüpfung ergibt OVR 0, was die Richtigkeit des Additionsergebnisses anzeigt. =

=

=

6

62

Zahlensysteme

der Addition von Dualzahlen, die als ganze Zahlen interpretiert werden, ein Überlauf OVR 1 (XOR-Verknüpfung des Übertragsbits in die höchstwertige Stelle mit dem Flagbit C), dann ist das Ergebnis falsch, weil eine Zahlenbereichsüberschreitung für die vorgegebene Wortbreite (Stellenanzahl) vorliegt. Hinweis:

Ergibt sich bei

=

Auf den mathematischen Beweis der vorgenannten Rechenregeln wird verzichtet. Eine führliche Darstellung der Zweierkomplementzahlen ist in [BOR01] enthalten.

aus-

Zur Erinnerung: Einer Dualzahl kann man nicht ansehen, ob mit ihr eine natürliche Zahl, eine positive ganze Zahl oder eine negative ganze Zahl dargestellt wird. Auch der Rechner kann dies nicht erkennen. Nur der Entwickler des Programms für den Rechner weiß, welche Zahlendarstellung er gewählt hat. Er muss mit diesem Wissen das Programm so gestalten, dass keine Fehler auftreten. Insbesondere muss er etwa darauf achten, bei Zahlenbereichsüberschreitungen eine entsprechende Fehlermeldung auszugeben und die Weiterverarbeitung der Zahlen abzubrechen.

Vergleich der Dualzahlen im Zweierkomplement mit Dezimalzahlen im Zehnerkomplement

6.3.5

Mit Hilfe der Umwandlung von negativen Dezimalzahlen in Zehnerkomplementdarstellung wird versucht, das Verständnis der Dualzahlen in Zweierkomplementdarstellung zu vertiefen.

Angenommen, folgende Rechnung soll durchgeführt werden: 45d-33d

Diese

=

12d.

Rechnung kann fehlerfrei auch anders geschrieben werden:

45d + (100d-33d)- 100d= 12d Fasst man

(lOOd 33d) zu 67d zusammen, ergibt sich folgende Schreibweise der Rechnung: -

45d + 67d- 100d= 12d.

Angenommen, der verfügbare Rechner hat eine feste Wortbreite von zwei Dezimalstellen. Wird die Rechnung 45d + 67d mit dieser Wortbreite durchgeführt, ist das Ergebnis 12d mit dem Übertrag 1 aus der höchstwertigen Stelle (Tab. 6.18). Bei fester Wortbreite von zwei Dezimalstellen sieht das Ergebnis der Addition 45 + 67 genauso aus wie das der Subtraktion 45d -33d, nämlich 12d. Allerdings darf man dabei den Übertrag aus der höchstwertigen Stelle der Addition nicht betrachten. Ein Blick auf die ausführliche Rechnung 45d + 67d lOOd 12d zeigt, dass der Subtraktionsteil dieser Rechnung bisher noch fehlt. Die Subtraktion von lOOd erreicht man, indem man den Übertrag C 1 weglässt. Woher weiß man aber, ob in diesem Fall das Übertragsbit weggelassen werden kann? Woher weiß man außerdem, dass hier keine 67d addiert, sondern unter den getroffe33d addiert wurde? Da man dies der Zahl 67 nicht ansehen kann, ist nen Vereinbarungen offensichtlich, dass nur der Anwender, der die Rechnung durchführt, weiß, was er rechnet. =

-

=

-

6.4

Vergleich der Addition im Dualsystem von Zahlen mit und ohne Vorzeichen

63

Tab. 6.18: Dezimalrechnung mit Zehnerkomplement

Dezimalzahl D„

Übertrag entscheiden, wie der Übertrag C 1 richtig zu interpretieren ist. Nur der Anwender und nicht der Rechner kann berücksichtigen, ob mit natürlichen oder mit ganzen Zahlen gerechnet wird und sich entsprechend verhalten. Rechnet der Programmierer also mit Zehnerkomplementzahlen, wird er das Übertragsbit C hier nicht abfragen. Er allein kann

=

Überträgt man diese Überlegungen auf eine Zweierkomplementzahl, so kann man jetzt ver-

stehen, dass anstelle der Subtraktion einer Zahl ihr Zweierkomplement addiert werden kann. Für die fehlende Subtraktion wird, wie im Beispiel der Dezimalzahl, der Übertrag C aus der höchstwertigen Stelle bei der Addition von Zweierkomplementzahlen nicht berücksichtigt. Er muss aber zur Berechnung der XOR-Verknüpfung für das Überlaufbit OVR herangezogen werden, um eine mögliche Zahlenbereichsüberschreitung für Zweierkomplementzahlen erkennen zu können. Das Flagbit OVR gibt dann Auskunft darüber, ob eine Zahlenbereichsüberschreitung bei der Rechnung mit Dualzahlen in der Zweierkomplementdarstellung stattgefunden hat.

6.4

Vergleich der Addition im Dualsystem von Zahlen mit und ohne Vorzeichen

je nach Interpretation der Dualzahlen das Rechenergebnis einer Addition falsch oder richtig sein kann, wurden in den folgenden Beispielen dieselben Rechenoperationen mit denselben Zahlen zweimal durchgeführt, allerdings unter verschiedenen Voraussetzungen: im ersten Fall mit Dualzahlen, die als natürliche Zahlen interpretiert werden, im zweiten Fall mit Dualzahlen, die als Dualzahlen in Zweierkomplementdarstellung betrachtet werden. In Tab. 6.19 sind die verschiedenen Ergebnisse von Additionen zweier Dualzahlen mit der Wortbreite 4 bit zusammengestellt. Auch hier können die Rechenergebnisse wieder verschieden sein, obwohl mit denselben Dualzahlen gerechnet wurde, abhängig davon, ob sie als natürliche Zahlen oder als Zweierkomplementzahlen (ganze Zahlen) betrachtet werden. Beispielsweise ist das Additionsergebnis von 12d+12d=8d bei einer Interpretation als natürliche Zahlen falsch, da der größte mögliche Wert für natürliche Zahlen mit Wortbreite 4 bit 15d ist. Dies wird durch das Übertragsbit C= 1 angezeigt. Wird die Zahl 1100b als ganze Zahl (Zweierkomplement) interpretiert, dann ergibt die Rechnung ein richtiges Ergebnis, nämlich (^1) + (^1) -8d; das Flagbit OVR 0 weist darauf hin. Da

=

=

6 Zahlensysteme

64 Tab. 6.19: Additionsvergleich

von

natürlichen und ganzen Zahlen

(Zweierkomplement) Dualzahlen mit Vorzeichen

Natürliche Zahlen 2d 2d

Überträge

0

Summe 4d richtig 4d 4d

Überträge

0100b 0100b 0100b 0

Summe 8d richtig 8d

8d

Überträge

1

Summe Od falsch 12d 12d

Überträge Summe 8d falsch

1

+2d +2d

0010b 0010b 010-

1001000 1000 1000 0000000 1100 1100 1001000b

Überträge C

=

0

Summe +4d richtig +4d

+4d

Überträge C

=

0

Summe -8d falsch

-8d -8d C

=

1

Überträge

1

Summe Od falsch -4d -4d C

=

1

Überträge Summe -8d richtig

1

0010b 0010b 00100100b 0100b 0100b 1001000 1000 1000 0000000 1100 1100 1001000b

ovr

=

0

ovr=

ovr

=

ovr

=

1

0

Es wird nochmals darauf hingewiesen, dass das Carrybit C der Übertrag aus der höchstwertigen Stelle eines Rechners mit fester Wortbreite ist. Das Überlaufbit OVR wird berechnet als XOR-Verknüpfung des Übertrags in die höchstwertige Stelle hinein mit dem Übertrag aus der höchstwertigen Stelle heraus. Beim Rechnen mit natürlichen Zahlen zeigt C 1 an, dass der Zahlenbereich überschritten wurde. Beim Rechnen mit Zweierkomplementzahlen zeigt OVR 1 an, dass der Zahlenbereich für Zweierkomplementzahlen überschritten wurde. =

=

6.5

Hexadezimaldarstellung als Kurzschreibweise für Dualzahlen

Das Hexadezimalsystem wird in der Digitaltechnik zur übersichtlicheren Schreibweise von Dualzahlen verwendet: 1001.0110.0011.1000b lässt sich schwerer aufschreiben oder lesen als 9638h. Das System hat sich auch wegen seiner einfachen Umrechnung durchgesetzt, obwohl dies auf Anhieb nicht offensichtlich ist. 16. Wie bei den Dualzahlen ist das Problem zu Dezimalzahlen Od bis 15d der 16 lösen, jede jeweils einem Zeichen zuzuordnen, damit man die Hexadezimalzahlen in gleicher Weise wie im Dezimalsystem schreiben kann. Für die Zahlen 0d...9d verwendet man 0h...9h. Für Zahlen, die größer als 9d sind, weicht man auf das Buchstabensystem aus, wobei man nacheinander lOd dem Buchstaben ah, lld dem Buchstaben bh in steigender Reihenfolge zuordnet. Das h hinter dem Buchstaben weist auf das Hexadezimalsystem hin. In der Literatur werden sowohl die Werte als auch die Kennzeichnung h des Hexadezimalsystems entweder als Großbuchstaben oder als KleinbuchstaDas

Hexadezimalsystem hat die Zahlenbasis

6.5

65

Hexadezimaldarstellung als Kurzschreibweise für Dualzahlen

geschrieben. In diesem Buch werden grundsätzlich kleine spielsweise bedeuten „ah" und „AH" beide dieselbe Zahl lOd.

ben

Die Tab. 6.20 zeigt die Hexadezimalzahlen. Tab. 6.20:

Zuordnung

Buchstaben verwendet. Bei-

der Dezimalzahlen und Dualzahlen

zu

den Ziffern der

Zuordnung der Dezimalzahlen und Dualzahlen zu den Hexadezimalzahlen

Natürliche Dezimalzahl

Dualzahl

Hexadezimalzahl

Die Umwandlung einer Dezimalzahl in eine Hexadezimalzahl kann wie die Umwandlung der Dualzahl durchgeführt werden. Allerdings ist es einfacher, dazu den Taschenrechner zu benutzen.

Aufgabe:

Die Dezimalzahl 1112d soll in eine Hexadezimalzahl

umgewandelt werden.

Lösung: Tab. 6.21 zeigt die notwendigen Schritte zur Berechnung der Hexadezimalzahl. Die Zahl 1112d wird in eine Hexadezimalzahl umgewandelt, indem sie laufend durch 16 dividiert wird. Zuerst wird 1112h durch 16 geteilt. Das Ergebnis ist 69d Rest 8. Sowohl das Ergebnis als auch der Rest werden in Tab. 6.21 eingetragen. Das Zwischenergebnis 69d wird wiederum durch 16 geteilt: Ergebnis 4d Rest 5. Beides wird wieder eingetragen. Die Division 4d geteilt durch 16 ergibt Od Rest 4 und wird die dritte und letzte Eintragung. Damit ist der Divisionsteil beendet. Nun kann die Hexadezimalzahl aus der Spalte Rest der einzelnen Divisionen zusammengestellt werden. Zu beachten ist dabei die Reihenfolge der einzelnen Reste in der Schreibweise: der Rest der letzten Division, also die 4, ist die höchstwertige (=linke) Stelle der Hexadezimalzahl 458h.

6

66 Tab. 6.21:

Zahlensysteme

Umrechnung der Dezimalzahl 1112din ihre Hexadezimalzahl Zahlenwert

Teiler

1112d

:16

Quotient =

69

Rest 8 -

69d

:16

=4

5

-1

4d

:16

=0

4

-1

Hexadezimalzahl Stellenwert

stellenrichtig

4

5

8

162

161

16°

Zur Kontrolle wird jede der einzelnen Ziffern der Hexadezimalzahl von links nach rechts mit ihrem Stellenwert multipliziert und danach die Summe der einzelnen Produkte gebildet: 458h (4 mal 256d) + (5 mal 16d) + (8 mal ld) 1024d + 80d +8d 1112d. =

=

=

wie gesagt, die Hexadezimalzahl zum übersichtlicheren Schreiben von Dualzahlen verwendet. Dazu werden diese in Gruppen zu je vier Ziffern aufgeteilt, beginnend mit der niedrigstwertigen Ziffer. Jede dieser Vierergruppen wird dann nach der Tab. 6.20 einzeln in eine Hexadezimalzahl umgewandelt. Die Vorgehensweise wird anhand der nächsten Aufgabe erklärt.

Hauptsächlich wird,

Aufgabe:

Die Dualzahl 110101011010011 lb soll in eine Hexadezimalzahl

umgewandelt

werden.

Lösung: Die Umwandlung unter Verwendung der Tab. 6.20 ist in Tab. 6.22 dargestellt. Tab. 6.22:

Umwandlung der Dualzahl 1101010110100111b in eine Hexadezimalzahl

Aufteilen in Vierergruppen, beginnend bei der niedrigstwertigen Stelle der Dualzahl 1101.0101.1010.0111b

Die Zuordnung wird Tab. 6.23:

zur

Umwandeln jeder Vierergruppe in die Hexadezimalzahl nach Tab. 6.20 d5a7h

besseren Übersicht nochmals genauer in

(Tab. 6.23) dargestellt.

Stellengerechte Zuordnung der Ziffern einer Hexadezimalzahl zu einer Dualzahl

Dualzahl_1_101_0101_1010_Olli

Hexadezimalzahl

d

5

Sowohl die Dualzahl 110101011010011 lb als auch die d5a7h 54695d. Werden

a

7

ergeben umgewandelt wieder

allerdings Dualzahlen umgewandelt, deren Stellenzahl nicht durch 4 teilbar ist, müsentsprechende führende Stellen hinzugefügt werden. Dies sind bei natürlichen Zahlen führende Nullen. Bei ganzen Zahlen muss das Vorzeichenbit (0 bei positiven, 1 bei negativen sen

6.6 Hexadezimalzahlen

zur

übersichtlichen

Darstellung von Simulationsergebnissen_67

Zahlen) vervielfacht werden. Entsprechende Beispiele mit Lösungen sind in den

Übungen

beigefügt.

Hexadezimalzahlen zur übersichtlichen

6.6

Darstellung von Simulationsergebnissen Auch im Simulator können Hexadezimalzahlen dargestellt werden. Bei Schaltungen mit mehreren Eingangsvariablen ist es im Zeitdiagramm oft schwierig, die Übersicht über die Prüfmuster zu bewahren. Ein Signalbündel kann hier bessere Übersicht schaffen (Abb. 6.2). Das Bündel EINGAENGE ist die Darstellung der vier Eingangssignale als Hexadezimalzahl. Damit ist gut erkennbar, dass alle 16 Signalkombinationen der Eingangssignale im Prüfmuster vorhanden sind.

1200

1649.9ns

EINGANG3 EINGANG2 EINGANG1 EINGANGO XOR 4 EINGAENGE

Abb. 6.2:

6.7

H|p|l|2|3|4|5|6l7|

F

0

Bündeldarstellung von Eingangssignalen

Zusammenfassung

Vereinfachend wurden nur ganze Zahlen betrachtet. Ausgehend vom Dezimalsystem wurde das Dualsystem mit seinen Eigenschaften für natürliche Zahlen eingeführt. Mit den vorgegebenen Additionsregeln konnten Dualzahlen addiert werden. Um mit negativen Zahlen rechnen zu können, wurden vorzeichenbehaftete Dualzahlen definiert. Zur Berechnung negativer Dualzahlen wurde die Komplementbildung erklärt. Eine Vorschrift zur Umrechnung von Dezimalzahlen in natürliche und in ganze Dualzahlen wurde verfasst. Zur besseren Übersicht wurden die verschiedenen Zuordnungen der Dezimalzahlen zu den natürlichen und den vorzeichenbehafteten Dualzahlen (Zweierkomplement) in Tabellen zusammengefasst. Sowohl für das Rechnen mit natürlichen Zahlen als auch mit ganzen Zahlen wurden Regeln zur Erkennung einer Zahlenbereichsüberschreitung im entsprechenden System aufgestellt. Zum Abschluss wurde die zahlen eingeführt.

Hexadezimaldarstellung

zur

einfacheren Schreibweise der Dual-

68

6.8

6

Übungsaufgaben

Zahlenumwandlungen sollten durchgeführt werden.

Die

6.8.1

Zahlensysteme

zur

Übung von Hand und nicht mit dem Taschenrechner

Zahlenumwandlung: natürliche Dualzahlen

Die

folgenden Dezimalzahlen werden in natürliche Zahlen im Binärsystem umgewandelt. Die Wortbreite der Binärzahlen wird jeweils gesondert angegeben. Nach der Umwandlung müssen die Dezimalwerte der Binärzahlen zur Kontrolle errechnet werden. Es werden auch außergewöhnliche Wortbreiten verwendet. Wortbreite 4 bit: 12d

Wortbreite 8 bit: 12d

Wortbreite 4 bit: 9d

Wortbreite 16 bit: 22345d

Wortbreite 12 bit: 1234d

Wortbreite 5 bit: 29d

Wortbreite 8 bit: 200d

Wortbreite 16 bit: 64342d

Wortbreite 8 bit: 155d

Wortbreite 16 bit: 30345d

Wortbreite 4 bit: 7d

Wortbreite 8 bit: 200d

6.8.2

Zahlenumwandlung: Dualzahlen im Zweierkomplement

Die

folgenden Dezimalzahlen werden in Binärzahlen in Zweierkomplementdarstellung umgewandelt. Die Wortbreite wird jeweils gesondert angegeben. Es werden auch außergewöhnliche Wortbreiten verwendet. Nach der Umwandlung müssen die Dezimalwerte der Binärzahlen im Zweierkomplement zur Kontrolle errechnet werden. Wortbreite 5 bit:-12d

Wortbreite 8 bit:-12d

Wortbreite 4 bit:+7d

Wortbreite 16 bit:-23375d

Wortbreite 12 bit:+2341 d

Wortbreite 5 bit:-9d

Wortbreite 8 bit: +120d

Wortbreite 16 bit: +29546d

Wortbreite 9 bit: +155d

Wortbreite 16 bit: 30345d

Wortbreite 4 bit: 7d

Wortbreite 8 bit: 200d

6.8.3

Zahlenumwandlung: Hexadezimalzahlen

Die folgenden Dezimalzahlen werden in Hexadezimalzahlen umgewandelt. Die Wortbreite wird jeweils gesondert angegeben. Es werden auch außergewöhnliche Wortbreiten verwendet. Nach der Umwandlung müssen die Dezimalwerte der Hexadezimalzahlen zur Kontrolle errechnet werden. Wortbreite 8 bit: 1111 lb

Wortbreite 8 bit: 132d

Wortbreite 4 bit: 7d

Wortbreite 16 bit: 23774d

Wortbreite 12 bit: 2434d

Wortbreite 8 bit: 254d

6.8

Übungsaufgaben

69

Wortbreite 8 bit: 120d

Wortbreite 16 bit: 29346d

Wortbreite 9 bit: +155d

Wortbreite 16 bit: 30345d

Wortbreite 4 bit: 1 lb

Wortbreite 4 bit: 9d

6.8.4

Addition von Dualzahlen

Die folgenden Additonen müssen mit der vorgegebenen Wortbreite durchgeführt werden. Alle Binärzahlen sind Zahlen in Zweierkomplementdarstellung. Für jede Addition muss das Flagbit OVR berechnet werden. Es muss angegeben werden, ob das Ergebnis den Zahlenbereich der gegebenen Wortbreite überschreitet.

Zweierkomplementzahl

Dez

OVR

Zweierkomplementzahl

De

OVR

D7 D6 D5 D4 D3 D2 D, D0

62d 96d

4d 8d

Üb.

Üb

D7 D6 D5 D4 D3 D2 D, D„

Weitere Additionsbeispiele können selbst vorbereitet werden. Das Additionsergebnis der beiden Dezimalzahlen muss mit dem Ergebnis der Rechnung mit Binärzahlen übereinstimmen. Beispiele mit Wortbreite 8 bit sind: -16d+38d +12d; +1 ld+1 lOd 121d. Der Zahlenbereich der Wortbreite 8 bit wird nicht überschritten, solange das Ergebnis im Bereich =

-128d...0d...+127d liegt.

=

7

Praxisbeispiel: Schaltnetz eines Addierers (add_4bif)

Zum Addieren zweier Dualzahlen mit je 4 bit Wortbreite und einem Eingangsübertrag wird eine Logikschaltung entworfen. Es entsteht ein Addierer, der durch seine übersichtliche Bauweise verschiedene Vorteile bietet. Durch mehrfache Verwendung einfacher Schaltungsblöcke (Module, Baublöcke) in einer übersichtlichen Struktur wird der Entwurf vereinfacht und dadurch der Entwicklungsaufwand verringert. Bereits beim Entwurf ist zu überlegen, wie die Schaltung später geprüft werden soll, da bei neun Eingangssignalen immerhin 512 verschiedene Eingangskombinationen möglich sind! Es muss also ein Kompromiss zwischen dem Aufwand für das Prüfprogramm und der Sicherheit für die richtige Funktion der Schaltung gefunden werden.

7.1

Aufgabenstellung: Schaltnetz add_4bit

Mit dem Addierer wird die Basis für die Recheneinheit eines einfachen Rechners gelegt. Der schrittweise Entwurf in Modulen ist ein wichtiges Instrument beim Schaltungsentwurf. Ein Addierer, der zwei Dualzahlen mit je 4 bit Wortbreite addiert, soll entworfen werden. Der Addierer wird modular, also mit einzelnen Baublöcken aufgebaut. Der erste Baublock soll ein Addierer mit einer Wortbreite von 1 bit sein. Aufbauend darauf wird der Addierer mit 4 bit Wortbreite realisiert.

Aufgabe add_4bit:

7.2

Modul: Volladdierer mit Wortbreite 1 bit add_1 bit

Im ersten Schritt wird ein Volladdierer mit Wortbreite 1 bit als Modul entworfen, der zwei Zahlen a und b mit Wortbreite 1 bit und einen Eingangsübertrag cyjn addiert (Abb. 7.1). Er wird in der Literatur Volladdierer genannt, da er zusätzlich zu den beiden Operanden a und b noch den Eingang cyjn hat. Damit ist es möglich, den Übertrag (Carry) zwischen zwei Stellen innerhalb eines Addierers mit mehreren Stellen zu verbinden. Der Sinn dieses Eingangs cyjn wird aber erst beim Modul Addierer 4 bit deutlich. Als Ergebnis wird neben dem

71

7.2 Modul: Volladdierer mit Wortbreite 1 bit add lbit

Ausgang s (Summe der Addition) der Ausgang cy berechnet, also der Übertrag in die nächste höhere Stelle.

Die Wortbreite von nur einem bit mag auf den ersten Blick nicht sinnvoll erscheinen, da Rechner mit Wortbreiten von 16 bit oder 32 bit üblich sind. Dieses einfache Modul erlaubt aber, ohne wesentliche Änderungen Addierer mit größeren Wortbreiten aufzubauen; im vorliegenden Fall einen Addierer mit 4 bit Wortbreite. addl:blo cv in

c_in a

b

Abb. 7.1: Modul 1 bit (add lbit.dcf) Volladdierer

Wenn zwei Dualzahlen der Wortbreite von 1 bit addiert werden, ergeben sich verschiedene Kombinationen von möglichen Ein- und Ausgangswerten der Schaltung (Tab. 7.1). Tab. 7.1: Wertekombinationen für einen 1 bit Volladdierer

Signale

a

cyin

cy

EingangsSignale Ausgangssignal

: IN cy_in, a, b : s, cy OUT *FUNCTION-TABLE

$HEADER:

x

cy_in,

x X

X X X

X X X

Liste 11:

Quelldatei des

a,

b

y

s,

cy

0, 0, 1, 1, 0, 0, 1, 1,

0 1 0 1 0

y y y y

0, 1, 1, 0, 1, 0, 0, 1,

o o o 1 o 1 1

1

y y

0 1

y y

1

1 bit Volladdierers add lbit.dcb

Die Wertetabelle Tab. 7.1 bildet die lenentwurf des 1 bit Volladdierers).

Grundlage für den Schaltungsentwurf add

]bit

(Tabel-

72

7

Praxisbeispiel: Schaltnetz eines Addierers (add_4bit)

Schaltungsentwurf wird mit der Quelldatei addlbit.dcb in Liste 11 durchgeführt. Als Ergebnis des Schaltungsentwurfs für das Modul Volladdierer erhält man eine Logikschaltung mit zwei Modulen (Abb. 7.2). Der

CY_IN

D-

BO

-o so

o

CY IN

AO CZ>

-t bit addl

BO CI>-

BO

SO

—O CY

o

CY IN

bit addl

CY

Abb. 7.2: Volladdierer der Quelldatei add lbit.dcb

Die Detailschaltungen unter Verwendung von UND- und ODER-Gattern sind in Abb. 7.3 und Abb. 7.4 für die Ausgangsvariablen cy und s dargestellt. AO D~ i 08 3Q

CY IN Oi 07

BO O-

3> Abb. 7.3:

CY_IN

Stromlaufplan der Logikschaltung bit

addl sO fiir sO

O

A0 O BO O

/IAA. 7.4:

Stromlaufplan der Logikschaltung bit_addl_cy /ur CY

Mit Hilfe der Schaltungssimulation wird die Schalmng mit allen Eingangskombinationen der Wertetabelle Tab. 7.1 vollständig geprüft (Abb. 7.5). Wie erwartet, wird im Zeitraum von 300 ns bis 400 ns und von 500 ns bis 800 ns der Ausgangsübertrag cy 1, da hier mindestens zwei der drei Eingangssignale 1 sind. Man kann auch sehen, dass das Summensignal immer dann gleich 1 ist, wenn einer der drei Eingänge cy_in, a oder b alleine 1 ist oder alle drei Eingänge gleichzeitig 1 sind. =

73

7.3 Entwurf des 4 bit Addierers add 4bit 3ns

1200

1600

1400

CY_IN A

j

B

i_r

S CY

Abb. 7.5:

7.3

Simulationsergebnis des 1 bit

Volladdierers

Entwurf des 4 bit Addierers add_4bit

Aus vier Modulen des bereits entworfenen Addierers mit Wortbreite 1 bit wird nun ein Addierer mit der Wortbreite 4 bit in Abb. 7.6 zusammengestellt. Die beiden Operanden a und b haben 4 bit Wortbreite, der Eingang c_in ist fur einen Eingangsübertrag vorgesehen. Der Ausgang s für die Summe hat ebenfalls die Wortbreite 4 bit. Der Ausgangsübertrag ist c. Da der 4 bit Addierer intern aus vier 1 bit Addierern aufgebaut ist, sind die weiteren drei Signale cy_out[2..0] die internen Überträge zwischen den einzelnen Addierern innerhalb der Schaltung. Sie werden zu Prüfzwecken ebenfalls als Ausgänge zur Verfügung gestellt.

addl:add4

Abb. 7.6: Blockschaltbild der Schaltung add4bit

Im Blockschaltbild Abb. 7.6 werden die Signalleitungen, die mehr als 1 bit Wortbreite haben, mit breiten Strichen gezeichnet. Allerdings ist die Strichbreite nicht proportional zur Wortbreite, deshalb muss auf die Signaldefinitionen der Ein- und Ausgänge geachtet werden. Erst daraus wird ersichtlich, dass die Anschlüsse a, b und s die Wortbreite von 4 bit haben, der Anschluss cy out aber nur 3 bit.

Vier gleiche Module des bereits entworfenen Addierers mit Wortbreite 1 bit werden nach Abb. 7.7 zusammengeschaltet. Jede der Eingangsleitungen von a[3..0] und b[3..0] ist in der in Abb. 7.7 gezeigten Weise an einen Addierer angeschlossen. Der Ausgangsübertrag cy_out eines Addierers ist immer mit dem Anschluss c_in für den Eingangsübertrag des darauf folgenden Addierers verbunden. Die einzige Ausnahme bildet der Ausgangsübertrag des höchstwertigen Addierers, der direkt an den Ausgang c angeschlossen ist also an den Übertrag des gesamten Addierers add4. -

7

74

Praxisbeispiel: Schaltnetz eines Addierers (add_4bit)

addO:bit addl

Abb. 7.7:

Zusammenschaltung der vier Module

Volladdierer I bit

Das Blockschaltbild in Abb. 8.7 wurde als hierarchischer Entwurf nur durch grafisches Einfügen der vier gleichen Module Addierer 1 bit (Abschnitt 7.2) erstellt. Die Module mussten dann von Hand im Blockschaltbild verdrahtet werden. Hinter jedem Block verbirgt sich die Schaltung des Volladdierers mit der Wortbreite 1 bit. Aus diesem Blockschaltbild kann dann die gesamte Logikschaltung per Programm synthetisiert und überprüft werden.

Programmbedienung von LOGIC2 braucht an dieser Stelle nicht in ihren Einzelheiten dargestellt zu werden. Wichtig ist es, das Vorgehen im Prinzip nachzuvollziehen und die Struktur des Schaltungsaufbaus sowie die Simulation der Schaltung zu verstehen. Da alle Schaltungen dieses Buches auf der CD gespeichert sind, kann die Simulation auch von Lesern durchgeführt werden, die selbst keine Schaltungen entwerfen können. Für Interessierte werden jedoch in der Hilfe zum Programm LOGIC2 die einzelnen Schritte beim hierarchiDie

schen Entwurf ausführlich erklärt. Zusätzlich ist dem Buch noch eine weitere Beschreibung des Entwurfs hierarchisch strukturierter Schaltungen als Datei auf der CD beigefügt.

7.4

75

Prüfprogrammerstellung

7.4

Pmfprogrammerstellung

Nach der Schaltungssynthese wird die Schaltungsfunktion überprüft. Wegen des großen Aufwands ist es nicht sinnvoll, alle 512 möglichen Eingangskombinationen der neun Eingänge der Addiererschaltung zu prüfen, um Entwicklungsfehler zu finden. Es muss wie schon gesagt, ein Kompromiss zwischen dem Aufwand für das Prüfprogramm und der Aussagesicherheit des Simulationsergebnisses gefunden werden. ,

7.4.1

Auswirkungen der Schaltungsstruktur auf das Prüfprogramm

Die Addiererschaltung add_4bit basiert auf dem Modul add lbit, dem Volladdierer mit Wortbreite 1 bit. Alle Eingangskombinationen dieses Addierers wurden bereits vollständig geprüft. Davon ausgehend könnte sich eine Prüfung der Addiererschaltung auf zwei Schwerpunkte konzentrieren: erstens, grobe Fehler werden mit ganz einfachen Prüfmustern ausgeschlossen, zweitens, die Übergänge zwischen den Einzeladdierern werden überprüft. Ein weiteres Kriterium bei der Prüfprogrammerstellung ist, dass sich beim Übergang von einem Prüfmuster zum andern möglichst viele Änderungen an den Schaltungsausgängen ergeben sollten. Dadurch will man erreichen, dass sich innerhalb der Schaltung viele Werte der Schaltungsknoten ändern müssen. Mit steigender Anzahl der Änderungen wird es umso wahrscheinlicher, dass sich verborgene Schaltungsfehler an den Schaltungsausgängen erkennen lassen.

7.4.2

Überlegungen zum Prüfmuster

Bei den Prüfmustern in (Tab. 7.2, Liste 12) ist e in 0. Alle Zahlen werden als natürliche Zahlen betrachtet. Alle Ergebnisse in den folgenden beiden Tabellen sind die vom Addierer erwarteten Ergebnisse, die zum besseren Überblick zusätzlich in Dezimalzahlen angegeben werden. =

Im ersten Prüfmuster

Pi werden beide Eingänge

ausgänge müssen dann ebenfalls 0 sein.

a

und b auf Od gesetzt. Alle

Schaltungs-

Als nächstes einfaches Prüfmuster P2 bietet sich an, a und b beide mit 15d anzunehmen. Da 1 ist, muss das Additionsergebnis 14d falsch sein. Es liegt aber kein Entwurfsfehler vor, c sondern die erwartete Überschreitung des Zahlenbereichs. =

Ergebnis der Addition 0; durch den Übertrag c 1 wird die Zahlenbereichsüberschreitung richtig erkannt. Der in der niedrigstwertigen Stelle erzeugte Beim Prüfmuster P3 ist das

=

Übertrag läuft durch alle Stellen durch.

Mit der Addition von Prüfmuster P4 wird geprüft, ob keine unzulässigen Überträge erzeugt werden. Mit dem Prüfmuster P5 wird eine andere Eingangsvariablenkombination als bei P3 verwendet, um wegen der gewünschten Signalwechsel innerhalb der Schaltung wieder zur fehlerhaften Summe 0 (Übertrag c 1) zu gelangen. =

7

76

Praxisbeispiel: Schaltnetz eines Addierers (add_4bit)

Vorschlag zum Prüfmuster des Addierers add_4bit mit c_in

Tab. 7.2:

=

0

Nummer

a[3..0] b[3..0]

0000 0000

ein

0 000 0000 0

cy_out

s[3..0] c

Od Od

1111 1111 0 111 1110

Od

14d

1

im Wertebereich

Ergebnis

15d 13d 0

ausserhalb des Wertebereichs

Beim Prüfmuster P5 gibt es im schen den einzelnen Stellen.

1101 0011 0 111 0000

13d 3d 0

Olli 1000 0 000 1111 0

Od

1 ausserhalb des Wertebereichs

Gegensatz

7d 8d 0

15d

Muster

0001 Olli 0 111 1000 0

0

7d

ausserhalb des Wertebereichs

im Wertebereich

zum

14d 9d

1110 1001 0 000 Olli 1

P3 keinen internen

ld

7d 0 8d

im Wertebereich

Übertrag zwi-

Dem gegenüber gibt es beim Prüfmuster P6 wieder einen durchlaufenden internen Übertrag, aber keinen externen Übertrag. Bei den Prüfmustern in betrachtet.

(Tab. 7.3) ist c_in

=

1. Alle Zahlen werden als natürliche Zahlen

Tab. 7.3: Erweiterungsvorschlag zum Prüfmuster des Addierers add_4bit mit c_in P8

P7

Nr.

a[3..0] b[3..0]

0000 1111

ein

1

cy_out

111

s[3..0]

0000 1

c

Ergebnis

Od 15d lb Od

ausserhalb des Wertebereichs

Im Prüfmuster

1010 0100 lb 000 1111 0

P10

P9 lOd 4d

0110 1001

lb

lb

ISd

111 0000 1

im Wertebereich

ausserhalb des Wertebereichs

1

=

6d 9d 1

Od

Olli Olli lb III 1111 0

PI 1

1000 1001 lb 001 0010 1

7d 7d

lb

15d

im Wertebereich

8d 9d lb

2d

ausserhalb des Wertebereichs

P7 läuft der Eingangsübertrag durch alle Stellen und zeigt die Zahlenbe-

reichsüberschreitung c

1 an, das

Ergebnis ist Od. Beim Prüfmuster P8 wird ohne Überträge das richtige Ergebnis Beim Prüfmuster P9 P7 durch.

=

15d berechnet.

ergibt 6d + 9d als richtiges Ergebnis Od, und der Übertrag läuft wie bei

Übertrag

durchläuft beim Prüfmuster P10 zwar auch die einzelnen Stellen, aber der Ausgangsübertrag bleibt c 0, und das Ergebnis lautet 7d + 7d + lb 15d. Im letzten Prüfmuster Pn werden Eingangskombinationen verwendet, bei denen jeweils zwei Stellen der Zahlen a und b gleichzeitig 0 sind. Aus diesem Grund dürfen keine weiteren internen Überträge erzeugt werden. Der

=

=

7.4

77

Prüfprogrammerstellung

Mit dem Prüfprogramm wird versucht, möglichst viele Eingangskombinationen der einzelVolladdierer in den Prüfmustern zu berücksichtigen. Das bedeutet, dass an jedem Volladdierer 00b, 01b, 10b und 1 lb anliegen.

nen

Zeitdiagramme benutzen zur besseren Übersicht die Bündeldarstellung für die ZahlenA[3..0] entspricht dem Eingangswert des Eingangs A des Addierers mit a3a2ala0. Mit dieser Darstellungsart, die zur besseren Lesbarkeit in die Dezimaldarstellung umgewandelt wurde, können sowohl die Eingangswerte als auch die Ausgangswerte des Addierers gut mit den Tabellenwerten verglichen werden. Die

werte. Bündel

Ons

|200

M3..0] BI3..0] C_IN

1

15

S[3..0]

I

14

CY_OUT[2. .-dl

[400 I

3

I

0

|

8

I

15

|600 j_9_L |

|

7

i_r

C

Abb. 7.8:

Simulationsergebnis add_4bit mit e

in

=

0

Ein Teil der Datei des hier verwendeten Prüfprogramms kann in Liste 12 mit dem Zeitdiagramm Abb. 7.8 verglichen werden. Beispielsweise werden bei 300 ns die Eingangssignale für Eingang A auf 1101b(13d) gesetzt, Eingangssignale für Eingang B auf 001 lb(3d). Das erwartete Simulationsergebnis ist als Kommentar von Hand eingefügt worden: //13d+3d=0d c=l (Die beiden Schrägstriche sind Kommentarzeichen). Im Zeitdiagramm Abb. 7.8 kann dies überprüft werden: s[3...0] 0, das Übertragsbit c 1 behält denselben Wert wie beim vorhergehenden Prüfmuster. =

=

Die Prüfmuster wurden nach den schon bekannten Regeln erstellt. Ihre Wirksamkeit sollte vor ihrer Verwendung genauer überprüft werden. Dies ist leider wieder ein zusätzlicher Aufwand, der Zeit kostet. In der Praxis können aber Fehlersimulationen durchgeführt werden, die erkennen lassen, wie wirksam das Prüfmuster ist. Es würde zu weit führen, auch noch auf diese Art von Programmen einzugehen.

=

0;

0 0 0 0 0 0 0 0 0d+0d=0d c=0 Liste 12: Teil des

#200 A3 #200 A2 #200 AI

#300 A2 #300 AI #300 A0

A0 B3 B2

#300 B3 #300 B2 #300 Bl #300 0

#200 #200 #200 #200

Bl

#200 B0 //15d+15d=14d c=l #300 A3 1; =

Prüfprogramms far den Addierer 4 bit

//13d+3d=0d c=l

7

78

7.4.3

Praxisbeispiel: Schaltnetz eines Addierers (add_4bit)

Hardwaretest

Wenn der Schaltungsentwickler das Simulationsergebnis überprüft hat, muss er entscheiden, ob er zum Hardwaretest übergehen kann. In diesem Beispiel wurde die mit LOGIC2 erzeugte Schaltung auf eine Experimentierplatine heruntergeladen. Alle Werte der Eingangsvariablen können dort durch einfache Schalter auf 0 oder 1 gesetzt werden. Die Ausgangswerte der Schaltung können mit Leuchtdioden beobachtet werden. Auf diese Weise kann man sich mit der Funktion dieser Digitalschaltung gut vertraut machen. In der Praxis kann ein Addierer, wie er hier entwickelt wurde, Teil eines Rechners sein. Die Funktionsprüfung in der Hardware erfolgt entweder über spezielle Prüfprogramme, die den

Addierer des Rechners gezielt ansprechen, oder sogar mit Hilfe die im Rechner selbst eingebaut ist.

7.5

von

separater Prüfhardware,

Zusammenfassung

Der Addierer mit Wortbreite 4 bit ist für Neulinge in der Digitaltechnik eine relativ große Schaltung. Um sie entwickeln zu können, wurde zuerst die einfachere Struktur eines Addierers mit Wortbreite 1 bit entworfen und die Additionsfunktion überprüft. Dann wurde diese Schaltung mit Hilfe des grafischen Editors als Modul verwendet, um den Addierer mit der Wortbreite 4 bit zu entwerfen. Die einzelnen Module mussten so miteinander verbunden werden, dass die gewünschte Additionsfunktion für eine Wortbreite von 4 bit erreicht werden konnte. Der eigentliche Entwurfsvorgang mit der grafischen Eingabe blieb allerdings unbe-

rücksichtigt, da es hier nur um die Schaltungsfunktion und nicht um die Entwurfsumgebung geht. Mit dem Synthesewerkzeug von LOGIC2 wurde dann der Addierer entworfen. Weitere Überlegungen führten zu einem Prüfprogramm, das mit einer überschaubaren Anzahl von Prüfmustern die Funktion des Addierers überprüft. Auf einen quantifizierten Nachweis ihrer Wirksamkeit wurde verzichtet, da dafür Spezialprogramme erforderlich wären. Der Addierer ist ein einfaches Musterbeispiel für einen hierarchischen Schaltungsentwurf. Ohne die Strukturierung einer Schaltung auf verschiedenen hierarchischen Ebenen könnten Digitalschaltungen der heute üblichen Komplexität nicht mehr wirtschaftlich entwickelt werden.

8

Vom Schaltnetz

zum

Schaltwerk

Bisher wurden nur Schaltnetze betrachtet, deren Ausgangswerte ausschließlich durch die Werte der Eingangssignale bestimmt waren. Weil die Ausgangswerte nicht zeitabhängig sind, bezeichnet man diese Schaltungen als zeitinvariant oder zustandslos. Damit ist jede Kombination der Ausgangsvariablen auch unabhängig davon, in welcher Reihenfolge die Kombinationen der Eingangssignale angelegt wurden. Es werden nun sequenzielle Schaltungen (Schaltwerke) vorgestellt, bei denen die Reihenfolge (Sequenz) der Kombinationen von Eingangsvariablen auf die Schaltungsreaktion Einfluss nimmt.

Eine

sequenzielle Schaltung

ist die

Voraussetzung für den

Bau

von

Steuerungen und

Rech-

nern.

8.1

leds:

Beispiel für ein Schaltwerk

Die Schaltung leds (Leuchtdioden) zeigt das prinzipielle Verhalten einer einfachen sequentiellen Schaltung. Erst nach ihrer Funktionsbeschreibung wird das für solche Schaltungen notwendige Speicherelement, das D-Flipflop, erklärt. Erst damit kann die Funktion der Schaltung leds richtig verstanden werden. Die Schaltung leds mit zwei Ausgängen ist eine sequentielle Schaltung. Die Begründung dafür ist: Nachdem sie eingeschaltet ist, leuchten die beiden Leuchtmelder LI und LO abwechselnd in der Reihenfolge: Alle Leuchtmelder ausgeschaltet, LO allein eingeschaltet, alle Leuchtmelder eingeschaltet, LI allein eingeschaltet, alle Leuchtmelder ausgeschaltet... Das Ein- und Ausschalten der Leuchtdioden wird durch ein Taktsignal gesteuert. zu

blk:blink

mz

Abb. 8.1: Blockschaltbild der Schaltung leds

Neben den beiden Ausgängen LI und LO erkennt man im Blockschaltbild Abb. 8.1 die beiden Eingänge RESET und TAKT. Mit RESET 1 wird eine Schaltung in einen bekannten Grundzustand versetzt, in dieser Schaltung sind dann beide Ausgänge Null. Der Takteingang TAKT der Schaltung bewirkt den Übergang von einem Schaltungszustand in den darauf =

8 Vom Schaltnetz zum Schaltwerk

80

folgenden Zustand, also beispielsweise von LI 0 und L0 0 in LI =0 und L0 =1. Im Zeitdiagramm Abb. 8.2 sieht man die Signalform des Taktsignals, das bei 0 ns Null ist, bei 25 ns =

=

Eins wird und bei 75 ns wieder Null wird. Da die beiden Ausgänge zu einem Wort zusammengefasst wurden, werden sie nicht als Einzelsignale dargestellt, sondern ihre Werte als Hexadezimalzahl angezeigt. Dies erleichtert die Überprüfung der Schalrungsfunktion. 0ns RESET TAKT

|100

+|_|

|2 60 |4 2 0 1_

LI L0

L[l..0]

Abb. 8.2:

Zeitdiagramm der Schaltung leds

gewünschte Reihenfolge der einzelnen Schaltungszustände, nämlich 0, 1, 3 ,2 ,0... ist im Zeitdiagramm direkt erkennbar. Interessant ist, dass sich das Signal RESET sofort auf den Schaltungszustand auswirkt, während die Zustandsübergänge erst unmittelbar mit der positiven Taktflanke, dem Übergang des Signals TAKT von Null nach Eins, erfolgen. Der Zustand bleibt bis zum nächsten Null-Eins-Übergang des Taktsignals erhalten. Alle sequentiellen Schaltungen dieses Buches haben ein Taktsignal. Es ist ein zeitlich sich änderndes Signal, erzeugt von einem Taktgenerator, mit dem sequentielle Schaltungen angesteuert werden. Die Verarbeitungsgeschwindigkeit hängt von der Taktfrequenz ab, die angibt, wie viel Mal pro Sekunde sich das Signal von Null nach Eins und wieder nach Null ändert. Üblicherweise hat das Taktsignal die Form einer Rechteckspannung. Bei der Schaltung leds wird die Taktfrequenz 1 Hz verwendet, so dass man das Leuchten der Leuchtmelder gut verfolgen kann. Bevor die Schaltung entworfen werden kann, wird zunächst die Funktion des Latchs und danach die des D-Flipflops als speichernde Elemente erklärt. Die

8.2

RS-Latch mit NOR-Gattern als

Speicherelement

Ein Latch ist ein einfaches Speicherelement, das Signalwerte speichern kann. Es hat im Gegensatz zu den später verwendeten D-Flipflops (Abschnitt 8.5) keinen Takteingang.

Gatterverknüpfungen des RS-Latchs (Abb. 8.3), Schaltungsausgänge auf Gattereingänge zurückgeführt werden.

Betrachtet

man

die

dann fällt

auf, dass hier

8.2 RS-Latch mit NOR-Gattern als

81

Speicherelement Tab. 8.1:

QSTERN

Logiktabelle NOR-

-O QSTERN RESET O-

Abb.

8.3:Gatterverknüpfungen eines RS-Latchs

Man

-O

Q

AB

A NOR B

0

0

1

0

1

0

1 1

0 1

0 0

spricht in diesem Zusammenhang auch von Rückkopplung. Die Rückkopplung ist dafür

verantwortlich, dass das Latch sich wie ein Binärspeicher verhält.

Beispiel dafür ist die bekannte akustische Rückkopplung. Bringt man bei einer Verstärkeranlage ein Mikrofon, das an einen Verstärker angeschlossen ist, zu nahe an den Lautsprecher der Anlage, so hört man ein durchdringendes Pfeifen. Erklärung: Das Mikrofon nimmt das Signal des Lautsprechers auf, der Verstärker verstärkt es und der Lautsprecher gibt das verstärkte Signal wieder ab. Das verstärkte Signal wird erneut vom Mikrofon aufgenommen, wieder im Verstärker verstärkt und vom Lautsprecher abgestrahlt. Die Frequenz der erzeugten Schwingungen hängt von der schwingenden Luft zwischen Mikrofon und Lautsprecher ab und führt als so genannte Rückkopplung zu einem unerwünschten Pfeifeffekt. Dieser Effekt wird unter bestimmten Bedingungen in ähnlicher Weise auch beim RS-Latch auftreEin

ten.

Hinweis: In der Literatur wird das RS-Latch in unterschiedlicher Weise gezeichnet: In Abb. 8.3 ist das Eingangssignal SET links oben, das Ausgangssignal Q rechts unten gezeichnet. Diese Anordnung ist in der Literatur nicht immer üblich. Oft wird auch das Signal QSTERN mit /Q bezeichnet. Auch anstelle der Eingänge SET und RESET werden gelegentlich die negierten Signale /SET und /RESET verwendet. Da

man ein RS-Latch auch aus anderen Gattern aufbauen kann, sind dort die Schaltungsanschlüsse oft anders platziert als beim RS-Latch. Übersieht man diese Unterschiede, können beim Nachvollziehen der Schalmngsfünktion Widersprüche auftreten. Es muss also vor einem Funktionsvergleich genau geprüft werden, an welcher Stelle die Ein- und Ausgänge gezeichnet wurden und wie sie bezeichnet sind.

Zum besseren Verständnis ist die Logiktabelle des NOR-Gatters in Tab. 8.1 Diese wird erst bei der Diskussion des Zeitdiagramms in Abschnitt 8.3 gebraucht.

abgebildet.

Hinweis: In der Literatur wird das RS-Latch teilweise auch als RS-Flipflop bezeichnet. Hier wird der Ausdruck Latch für Schaltungen verwendet, die ihren Ausgangswert unmittelbar abhängig von Änderungen des Eingangssignals ändern. Aus dem Zeitdiagramm Abb. 8.4 ist das gut ersichtlich. Die Bezeichnung Flipflop wird hier nur für Schaltungen verwendet, deren Ausgangswerte sich abhängig von Taktflanken ändern. Es werden ausschließlich taktflankengesteuerte D-Flipflops für die hier entworfenen Schaltungen verwendet. Sowohl Latch als auch Flipflop sind Binärspeicher.

82

8 Vom Schalmetz zum Schaltwerk

8.3

Diskussion des Zeitdiagramms des NOR-Latchs

Das Zeitdiagramm in Abb. 8.4 zeigt das Simulationsergebnis der Schaltung rslatch.dcb. Es werden die zwei gekennzeichneten Zeitbereiche (300 ns bis 400 ns und 600 ns bis 700 ns) betrachtet, in denen die beiden Eingangssignale SET {setzen) und RESET (zurücksetzen) gleichzeitig 0 sind. Man erkennt, dass die Schaltungsausgänge Q und QSTERN nicht gleich sind, obwohl in beiden Fällen dieselbe Kombination von Eingangsvariablen, nämlich 00, anliegt. Bei dieser Schaltung sind die Werte der beiden Ausgänge abhängig von der Reihenfolge, in der die Eingangssignale angelegt wurden. Man kann auch sagen, die Schaltung hat so etwas wie ein „Gedächtnis", sie „erinnert" sich an den Wert einer vorangegangenen Eingangskombinationen und hat ihn gespeichert. Sie ist damit kein Schaltnetz (kombinatorische Schaltung) mehr, sondern eine sequentielle Schaltung. Im

Zeitdiagramm Abb.

8.4 sind

zum

Null.

0ns

Abb. 8.4:

Zeitpunkt Null beide Signale

|700

|300

SET und RESET

gleich

|1100

Zeitdiagramm Schaltung rs_ latch

Die beiden Schaltungsausgänge Q und QSTERN sind unbestimmt, weshalb der Bereich zwischen 0 und 100 ns mit einem Raster ausgefüllt ist. Es kann nicht entschieden werden, welchen Wert die Schaltungsausgänge haben, weil die Schaltungsausgänge auf die Eingänge der NOR-Gatter zurückgeführt sind. Da aber die Werte der Schaltungsausgänge beim Einschalten der Versorgungsspannung nicht bekannt sind, kann während der ersten 100 ns kein bestimmter Ausgangswert ermittelt werden. An jedem Gatter liegen jeweils eine Null und ein unbekannter Signalwert an. Daher kann keine Aussage darüber gemacht werden, ob der Ausgangswert 0 oder 1 ist. Er ist unbestimmt.

Nach 100 ns wird SET 1, gekennzeichnet mit (a) in Abb. 8.5. Bereits eine Eins am NORGatter bewirkt, dass QSTERN 0 wird, wie in Tab. 8.2 zu sehen ist. In Abb. 8.5 ist dies mit (b) gekennzeichnet. Der Ausgang QSTERN ist aber auch mit einem Eingang des NORGatters Q verbunden und bewirkt dadurch, dass seine beiden Eingänge Null sind. Zwei Nullen am Eingang des NOR-Gatters bewirken Q 1, gekennzeichnet mit (c). =

=

=

Der

Ausgang Q ist mit dem Eingang des Gatters QSTERN verbunden, wodurch beide Eingänge des Gatters QSTERN 1 werden. Die Eins verändert den Wert am Ausgang des Gatters nicht, es bleibt QSTERN 0. Einer der zwei stabilen Zustände des Latchs ist erreicht. Man sagt, „das Latch ist gesetzt", wenn Q 1 ist. =

=

=

83

8.3 Diskussion des Zeitdiagramms des NOR-Latchs 1(a)

SET

Tab. 8.2: Logiktabelle NOR-Gatter (2)

QSTERN

O--0(D)

RESET O

O

QSTERN

O Q

Abb. 8.5: NOR-Latch mit SET

=

1

ANORB

A

B

0 0

0

1

1

0

1 1

0 I

0 0

Eine andere Ausdrucksweise ist: „das Latch hat den Zustand 1". Man spricht deshalb von einem Zustand, weil der Ausgangswert des Latchs die am SET Eingang aufgetretene Eins gespeichert hat. Werte werden also Signalen zugeordnet, Zustände aber speichernden Elementen!

Hinweis: Bei der Herleitung von Schaltungszuständen in Schaltungen mit Rückkopplungen ist nicht immer sicher, dass sich als Ergebnis ein stabiler Zustand ergibt. Wichtig ist, bereits vorher die richtigen Anfangsbedingungen für die Schaltung zu erkennen, die zu einem stabilen Zustand führen. Einen Hinweis darauf gibt das Simulationsergebnis von LOGIC2, das die unbestimmten Schaltungsknoten im Zeitdiagramm aufzeigt. Es ist einfacher, beim Überprüfen von Schaltungsfunktionen mit einem bekannten Grundzustand ohne unbestimmte Werte zu beginnen.

Nach 200 ns wird SET 0, was in Abb. 8.6 mit (d) gekennzeichnet ist. QSTERN bleibt Null, denn die Eins des Ausgangs Q ist noch immer vorhanden, weil das Latch die Eins gespeichert hat. =

0(d) SET

QSTERN

-"T^x

Tab. 8.3: Logiktabelle NOR-Gatter (3)

°

Q

Kc) Abb. 8.6: NOR-Latch nach dem Setzen

Wird nach 500

A NOR B

A

B

0

0

1

0

1

0

1 1

0 1

0 0

der Eingang RESET 1 und bleibt SET 0 (in Abb. 8.7 mit (d) und (e) wird wegen der Eins des RESETs der Ausgang Q 0 (f). Die beiden Nulgekennzeichnet), len an den Eingängen des Gatters QSTERN bewirken QSTERN 1, gekennzeichnet mit (g). Das Latch ist jetzt in seinem zweiten stabilen Zustand oder: „das Latch ist zurückgesetzt" oder: „das Latch hat den Zustand Null". ns

=

=

=

=

8 Vom Schaltnetz

84 O(d)

QSTERN

SET O

Kg)

O

RESET O

zum

Schaltwerk

QSTERN

O Q

0(f)

Abb. 8.7: NOR-Latch mit RESET

=

1

Eine erneute Änderung von RESET zu Null bei 800 ns (in Abb. 8.8 mit (h) bezeichnet) bewirkt, ähnlich wie beim Setzvorgang, keine Änderung der Null am Ausgang Q. Das Latch bleibt zurückgesetzt.

0(d)

QSTERN

SET O-

Kg)

RESET C7>-

0 (h)

-O

QSTERN

-O

Q

0(f)

Abb. 8.8 NOR-Latch nach dem Zuücksetzen

Was geschieht, wenn SET 1 und gleichzeitig RESET 1 werden, zeigt Abb. 8.9. Als Folge werden beide Ausgänge Null, gekennzeichnet mit (j) in Abb. 8.9. Wenn man die Bedeutung der beiden Eingangssignale betrachtet, ist es nicht sinnvoll, das Latch gleichzeitig setzen und zurücksetzen zu wollen. Welche sinnvolle Schaltungsreaktion sollte auch dabei herauskommen? Die Verwendung der Eingangsvariablenkombination „SET 1" und gleichzeitig „RESET 1" ist für dieses Latch also nicht sinnvoll. Der Schaltungsentwickler muss darauf achten, dass diese Kombination in seiner Schaltung niemals auftritt. Wegen der Menge der Flipflops in üblichen Schaltungen ist es schwer, den Überblick zu behalten. Deshalb wird dieses Latch nur noch in speziellen Anwendungen verwendet. =

=

=

=

Achtung: Beide Ausgänge Q und QSTERN haben denselben Wert! Aus diesem Grund wurde der zweite Latchausgang mit QSTERN und nicht mit /Q bezeichnet, wie verschiedentlich in der Literatur. QSTERN entspricht in diesem Fall nämlich nicht dem negierten Wert von Q. Ki) SET

QSTERN

>

RESET O 1

0(j)

(i)

Abb. 8.9: NOR-Latch mit SET

=

RESET

=

1

O

QSTERN

O

Q

85

8.3 Diskussion des Zeitdiagramms des NOR-Latchs

Auch wenn die Kombination von SET 1 und gleichzeitig RESET 1 nicht erlaubt ist was würde eigentlich beim gleichzeitigen Wechsel beider Signale von 11 auf 00 passieren? Im Zeitdiagramm Abb. 8.4 werden beide Signale bei 1500 ns von Eins auf Null gesetzt. Das Diagramm zeigt keinen unbestimmten Wert wie nach dem Zeitpunkt 0 ns. Der bei 1500 ns beginnende Bereich wird für beide Ausgänge schwarz dargestellt. Dies muss genauer betrachtet werden. Dazu wird das Zeitdiagramm ab 1490 ns vergrößert dargestellt (Abb. 8.10). =

=

-

1490ns

|_ |_

set

+

reset

+

qstern q

+_fuWuWUWUWWUWW

Abb. 8.10:

nnnnnnnnnnnnnnnnnnnnr

Zeitdiagramm Latch,

ab 1490 ns vergrößert dargestellt: instabiler Zustand

Es ist deutlich zu sehen, dass beide Schaltungsausgänge ab 1500 ns schwingen. Dies ist ein ähnlicher Vorgang wie die akustische Rückkopplung einer Lautsprecheranlage, die zum beschriebenen Pfeifton führt.

Hinweis: Um die folgenden Erklärungen zu verstehen, muss man wissen, dass reale Gatter eine Verzögerungszeit haben. Es vergeht bei jedem Gatter eine kurze Zeit, ehe sich sein Ausgang nach der Änderung einer Eingangsvariablen ändert. Im Simulator von LOGIC2 wird vereinfachend 1 ns für jedes Gatter angenommen. Die genauen Verzögerungszeiten können den Datenbüchern der Bauelementehersteller entnommen werden. Bisher wurde diese Verzögerungszeit nicht berücksichtigt, weil sie in Bezug auf die Anwendungen vernachlässigbar war und die bisherigen Betrachtungen nicht beeinflusst hat._ Bei 1500 Null.

ns

ändern sich also beide

0 (k) set r__>-

QSTERN

Eingänge

SET und RESET

gleichzeitig

von

Eins nach

0(j)

reset O

0(k)

Abb. 8.11: Instabiles NOR-Latch 1

In Abb. 8.11 sind die

Eingangswerte zu diesem Zeitpunkt mit (k) gekennzeichnet. Die mit (j) Ausgangswerte gekennzeichneten gelten zum Zeitpunkt 1500 ns immer noch, da sich die Ausgänge wegen der Gatterverzögerungszeit erst zum Zeitpunkt 1501 ns ändern können. Welche Werte werden die Ausgänge der NOR-Gatter dann haben? Wenn bei einem

8 Vom Schaltnetz

86

zum

Schaltwerk

NOR-Gatter beide Eingänge Null sind, ist sein Ausgang Eins. Die Ausgangswerte werden durch die Eingangswerte zum Zeitpunkt 1500 ns bestimmt. Da die Eingangswerte beider NOR-Gatter bei 1500 ns Null sind, müssen zum Zeitpunkt 1501 ns beide Ausgänge den Wert Eins, gekennzeichnet mit (k+1), annehmen (Abb. 8.12). Zum Nachvollziehen dieser Funktion wird an die Logiktabelle des NOR-Gatters in Tab. 8.2 erinnert. 0 (k) SET ED-

QSTERN

3>

Kk+l)

RESET CD^

-O QSTERN -O Q

0(k]

l(k+l)

Abb. 8.12: Instabiles NOR-Latch 2

Zum Zeitpunkt 1501 ns sind also beide Ausgänge Eins (k+1). Diese Einsen wirken sich nach 1 ns Gatterverzögerungszeit zum Zeitpunkt (k+2) wiederum auf die Ausgänge der NOR-

Gatter Wert

aus.

Aufgrund

der

Gatterverzögerungszeit

werden sie

zum

Zeitpunkt

1502

ns

annehmen, der erneut bestimmt werden muss. Beide Ausgänge müssen nach 1

einen

ns zum

1502 ns wieder zu Null werden (in Abb. 8.13 mit (k+2) gekennzeichnet), da die Einsen zum Zeitpunkt (k+1), also bei 1501 ns, an beide Gatter angelegt wurden.

Zeitpunkt

0(k) SET O--

QSTERN

0(k+2)

-I-

RESET D-

—-O QSTERN -O Q

0(k)

0(k+2)

Abb. 8.13: Instabiles NOR-Latch 3

Dies ist aber genau dieselbe Situation wie im ersten Schritt (Abb. 8.11). Der ganze Vorgang wiederholt sich wieder. Der Schwingvorgang ist zur genaueren Verfolgung der Ausgangswerte

vergrößert dargestellt. 1499ns

SET RESET

QSTERN Q

Dieser Ablauf wird in der mals kurz erklärt.

Abb. 8.14: Vergrößertes NOR-Latchs ab 1499 ns

Zustandsfolgetabelle (Tab. 8.4)

Zeitdiagramm des

detailliert

aufgeführt

und noch-

8.4 Zustandsfolgetabelle zur Beschreibung des RS-Latchs

87

Tab. 8.4: Zustandsfolgetabelle RS-Latch Aktueller Zustand Zeit

Q, QSTERN,

t in ns

1490

0 0

1500 1501 1502

0 0 11 0 0

I

Werte R/S aktueller Zustand

Folgezustand

S, R,

Q,.» QSTERN,ta

1

I 1~

0 0 0 0 10

0

0_

11 0 0 10

Für einen Zeitpunkt t wird der Folgezustand zur Zeit t+5 ermittelt. Beispielsweise ist für 1490 ns der Wert 00b. Dieser Wert ist dann der aktuelle Zustand zum Zeitpunkt 1500 ns, für den dann wieder der Wert des Folgezustands ermittelt wird. Da hier beide Eingänge S und R gleichzeitig Null werden, hat der Folgezustand den Wert IIb. Auf die genaue Handhabung der Zustandsfolgetabelle wird in Abschnitt 8.4 eingegangen. Bei Unklarheiten mit der Tab. 8.4 sollte der Abschnitt 8.4 vorab gelesen werden. t= t=

In der Praxis wird aber dieses RS-Latch nicht so reagieren. Die Verzögerungszeiten zweier realer Gatter sind nie exakt gleich, daher werden sich immer stabile Werte für die Schaltungsausgänge ergeben. Allerdings ist nicht vorhersehbar, welche Werte es sein werden! Die Simulation zeigt also nicht das wirkliche Schaltungsverhalten, der Entwickler wird aber dadurch auf ein Problem in seiner Schaltung hingewiesen, das er unbedingt lösen muss.

Wegen der genannten Einschränkungen wird das RS-Latch in der Praxis nur in speziellen Anwendungen eingesetzt. Für die Kontaktentprellung ist das RS-Latch gut geeignet, weil unzulässige Schaltzustände in diesem Fall nicht auftreten können. Das RS-Latch ist eine einfache

mit Rückkopplung, mit der ein Wert eines werden kann. Als einfaches speicherndes Element eignet sich das RS-Latch vor allem dafür, die Abfolge einzelner Schritte einer Speicherung in übersichtlicher Weise darzustellen und besser zu verstehen.

Schaltungseingangs gespeichert

8.4

Gatterschaltung

Zustandsfolgetabelle zur Beschreibung des RS-Latchs

Mit

zulässigen Eingangskombinationsfolgen

kann ein RS-Latch zwei stabile Zustände ein-

0 und Q 1. Es wird deshalb als bistabile Schaltung bezeichnet. Durch gezielte der beiden Eingänge SET und RESET kann man beide Zustände direkt abhänAnsteuerung vom gig jeweiligen Eingang erreichen. Da das Bauelement keinen Takteingang besitzt, wird auch es asynchrones RS-Latch genannt. Asynchron bedeutet hier, dass die Zustandsübergänge nicht synchron zu einem Taktsignal erfolgen müssen.

nehmen, Q

=

=

8 Vom Schaltnetz zum Schaltwerk

88

Beide stabilen Zustände bleiben so lange erhalten, bis sie durch eine der zulässigen Änderungen der Eingangssignale geändert werden. In einer Zustandsfolgetabelle (excitation table) kann beschrieben werden, wie sich die Schaltungsausgänge des RS-Latchs ändern (Tab. 8.5). Betrachtet man den aktuellen Zustand (Index t) zusammen mit den Werten der Eingangssignale zu diesem Zeitpunkt t, kann man den Folgezustand (Index t+5) ermitteln. Da die Änderung erst nach einer Gatterverzögerungszeit erfolgt, wurde ein +5 zum Index t hinzugefügt. Der Wert X bedeutet, dass der Wert unbekannt ist, also sowohl eine Null als auch eine Eins sein kann. Tab. 8.5:

Zustandsfolgetabelle RS-Latch

Aktueller Zustand

Werte der Eingangsignale zum aktuellen Zustand

Q, OSTERN,

Folgezustand

Bemerkungen

Qt+5 QSTERN,,

S, R,

X X Wert beim Einschalten keine Wertänderung 0 1 0 1 keine Wertänderung 1 0 1 0 Latch wird gesetzt 0 1 1 0 Latch bleibt gesetzt 1 0 1 0 0 1 Latch bleibt zurückgesetzt 0 1 Latch wird zurückgesetzt 1 0 0 1 Folgende Zustände sind unzulässig oder werden mit unzulässigen Eingangswerten angesteuert 0 1 0 0 unzulässig: beide Ausgänge sind 0 0 0 1 0 unzulässig: beide Ausgänge sind 0 Latch wird gesetzt 0 0 1 Latch wird zurückgesetzt 0 0 0 0 0 X Ausgang oszilliert 0 0 X Ausgang oszilliert X X

0 0

ist bei den folgenden Überlegungen: Zur Ermittlung des Folgezustands müssen zusätzlich zu den Werten der Eingangssignale S und R auch die Werte der Schaltungsausgänge Q und QSTERN vor der Änderung dieser Eingangssignale verwendet werden.

Wichtig

RESET 0 sein) wird das Latch gesetzt, mit RESET 1 SET 0 muss (gleichzeitig sein) wird es zurückgesetzt. Es ist nicht erlaubt, dass beide EinWert den Eins haben. Alle Werte der Zustandsfolgetabelle samt Änderungänge gleichzeitig können mit Hilfe des gen Zeitdiagramms in ihrer Abfolge überprüft werden. Da dieses Beiebenfalls als Datei auf der beigefügten CD ist, können die Wertefolgen für die Eingänspiel und ihre ge beliebig geändert Auswirkung auf das Latch überprüft werden. Mit SET

=

1

(gleichzeitig

muss

=

=

=

Betrachtungen machen deutlich, dass Schaltungen in der Art eines RS-Latchs nur unter Einschränkungen als Bauelemente eingesetzt werden können. Es müssen andere speichernde Bauelemente gesucht werden, die weniger Einschränkungen haben. Die

diversen

8.5

89

Taktflankengesteuertes D-Flipflop (D-flip-flop)

Taktflankengesteuertes D-Flipflop (D-flip-flop)

8.5

Bauelement, mit dem alle sequentiellen Synchronschaltungen in diesem Buch entworfen werden, ist das D-Flipflop (D-FF, D-flip-flop, Delay). Es ist ein Speicherelement mit Reset und wird mit der positiven Taktflanke gesteuert. Diese Einschränkung stellt sicher, dass alle Das

Schaltungen den Mindestanforderungen für die Prüfbarkeit entsprechen. dffdff

zu

Abb. 8.15: Blockschaltbild flankengesteuertes D-FF mit Reset

Im Folgenden wird das mit einer D-FF bezeichnet.

positiven

Taktflanke gesteuerte

D-Flipflop

mit Reset als

Ein Flipflop ist wie das RS-Latch eine bistabile Schaltung. Das D-FF(Abb. 8.15) speichert den Wert des Signals, das am D-Eingang angelegt wird. Die Steuerung (Triggerung) mit der positiven Taktflanke bewirkt, dass das Signal am D-Eingang des D-FFs beim 0-1-Übergang des Taktsignals bewertet und dieser Wert dann im D-FF gespeichert wird. „Bewertung" bedeutet, dass innerhalb der sehr kurzen Zeit des 0-1-Übergangs des Taktes entschieden wird, ob der Signalwert am D-Eingang 0 oder 1 ist. Der Eingang RESET bewirkt unabhängig vom Takt (asynchron) das Zurücksetzen des Flipflops (Q 0). Es gibt auch Flipflops, bei denen das Rücksetzen synchron, also abhängig von Takt, erfolgt. =

Abb. 8.16:

Zeitdiagramm des flankengesteuerten D-FF mit Reset

Die

positive Taktflanke bei 25 ns (Abb. 8.16) bewertet den Schaltungseingang D. Da D 0 ist, wird Q 0. Im Zeitabschnitt zwischen 0 ns und 25 ns ist der Ausgang unbestimmt, was durch das graue Raster an den Schaltungsausgängen ausgedrückt wird. Bei 100 ns wird RESET 1 und dadurch der Ausgang sofort Q 0. Der RESET ist dominant; das heißt, das Flipflop bleibt zurückgesetzt, obwohl mit der positiven Taktflanke bei 225 ns eine Eins am D-Eingang erkannt wird. Die Änderung von D bei 400 ns wirkt sich erst bei 425 ns aus, da =

=

=

=

8 Vom Schaltnetz zum Schaltwerk

90

D-Eingang durch die das Flipflop wird zurückgesetzt. erst dort der

positive Taktflanke bewertet wird. Die Null wird erkannt,

Abschließend noch eine Erläuterung zur Prüfbarkeit sequentieller Schaltungen. Da in solchen Schaltungen viele speichernde Elemente enthalten sind, kann ein bestimmter Schaltungszustand oft nur durch eine ganz bestimmte Folge von Kombinationen der Schaltungseingänge erreicht werden. Es wird dadurch viel schwieriger, die Funktion einer solchen Schaltung zu

prüfen.

Wegen der gewünschten Stabilität eines Schaltwerks werden in diesem Buch ausschließlich synchrone Schaltwerke verwendet. Für asynchrone Schaltwerke wird auf [SCA01] verwiesen.

Hinweis: Es gibt noch viele andere Arten von Flipflops, die sich in ihrer Steuerung und in ihrem Verhalten stark unterscheiden. Sie werden hier ebenso wenig wie Gatterschaltungen für das D-Flipflop und ihre internen Funktionen erklärt. Schaltungen dieser Art werden aber in [LIP02] hergeleitet und ihre Anwendungen erklärt.

8.6

D-FF:

Zustandsdiagramm

Zur Funktionsbeschreibung von sequentiellen Schaltungen hat sich neben der Zustandsfolgetabelle das Zustandsdiagramm durchgesetzt. Mit dieser grafischen Eingabe lassen sich Schaltwerke entwerfen, deren Funktion in der Struktur des Zustandsdiagramms erkennbar wird. Im Folgenden werden zur Beschreibung sequentieller Schaltungen ausschließlich Zustandsdiagramme verwendet. Das Zustandsdiagramm des D-FF wender frei wählen kann:

(Abb. 8.17) zeigt zwei Zustände, deren

Namen der An-

flipflopzurueckgesetzt flipflopgesetzt

-

-

Ein

Zustandsübergang, der an eine Bedingung geknüpft ist, wird durch einen Taktübergangspfeil visualisiert. Ein Übergang in Richtung des Taktübergangspfeils vom aktuellen Zustand zum Folgezustand findet nur statt, wenn zum Zeitpunkt der positiven Taktflanke die Bedingung des Übergangspfeils erfüllt ist (Abb. 8.17). Es wird angenommen, dass das Schaltwerk im Zustand flipflop_zurueckgesetzt ist; der Eingang D 0 und der D-Eingang der Schaltung werden mit der positiven Taktflanke bewertet. Der Taktübergangspfeil, der mit D 0 bezeichnet ist, zeigt zum Folgezustand flipflop zurueckgesetzt, das Schaltwerk bleibt also in seinem Zustand. Wird beispielsweise bei der nächsten positiven Taktflanke der D-Eingang bewertet und D 1 erkannt, ist der Folgezustand flipflop_gesetzt, weil der Taktübergangspfeil mit D 1 zu diesem zeigt. Der Ausgangswert AUS des Flipflops wird direkt unter dem Zustandsnamen angegeben. =

=

=

=

8.6 D-FF:

91

Zustandsdiagramm

Signal TAKT ist grundsätzlich nicht im Diagramm eingezeichnet. Es wird vorausgesetzt, dass dem Anwender bekannt ist, dass Zustandsübergänge eines Zustandsdiagramms vom Takt gesteuert werden. Das

Abb. 8.17:

Zustandsdiagramm des D-FF

Da

Zustandsdiagramme eindeutige Schaltungsbeschreibungen sind, eignen sie sich zur Eingabe von Schaltungsfunktionen in Schaltungssyntheseprogrammen. Die Darstellungsarten sind zwar von Programm zu Programm unterschiedlich, können aber leicht ineinander übergeführt werden. Die in LOGIC2 verwendete Eingabe in Abb. 8.18 unterscheidet sich nur unwesentlich von der in Abb. 8.17. Da in Abb. 8.18 der Eingang RESET fehlt, muss der Grundzustand flipflop zurueckgesetzt in LOGIC2 anders vereinbart werden. Der Zustand flipflop zurueckgesetzt ist links oben mit einem „•" gekennzeichnet. Dieser Punkt bedeutet, dass das Schaltwerk durch RESET immer in den Zustand flipflopzurueckgesetzt gebracht wird. RESET selbst erscheint aber nicht im Zustandsdiagramm.

»flipflop zurueckgesetzt

flipflop gesetzt D

I AUS

D=l

0

=

0

|AUS

=

1

-

D

Abb. 8.18:

=

0

D= 1

Zustandsdiagramm des D-FF in der Darstellung in LOGIC2

Die Werte des Schaltungsausgangs AUS sind im unteren Kasten jedes Zustands angegeben. Im Zustand flipflop zurueckgesetzt ist AUS 0, und im Zustand flipflopgesetzt ist =

AUS= 1.

Die hier mit Zustandsdiagrammen beschriebenen Schaltwerke sind endliche Automaten und werden im Englischen als FSM (Finite State Machine) bezeichnet. Deshalb wird die Zustandsdiagrammeingabe in LOGIC2 mit FSM bezeichnet. Mit LOGIC2 kann aus dem Zustandsdiagramm das Schaltwerk, das nur aus einem D-FF besteht, entworfen und seine Funktion überprüft werden.

8 Vom Schalmetz zum Schaltwerk

92

Die von LOGIC2 entworfene Logikschaltung zeigt, wie erwartet, ein D-Flipflop, bei dem nur der D-Eingang und der AUS-Ausgang nach außen geführt wurde. Um die Funktion des D-FF zu prüfen, wird die Logikschaltung mit dem Prüfmuster in Liste 13 simuliert. Um einige Details davon auch grafisch zu zeigen, ist ein Teil des damit erzeugten Zeitdiagramms in Abb. 8.19 abgebildet.

#0 D

=

0;

#0 RESET 0; #0 TAKT 0; #25 TAKT 1; #75 TAKT 0; #100 RESET 1; 1; #125 TAKT =

=

=

=

=

=

#175 TAKT

=

0;

#200 #225 #275 #300 #325 #375 #400 #425

D 1; TAKT TAKT RESET TAKT TAKT

=

=

=

=

D

=

TAKT

#475 TAKT #500 D 1; #525 TAKT #575 TAKT #625 TAKT #675 TAKT

=

=

=

1; 0; 0; 1; 0;

0;

=

=

=

=

=

1, 0; 1; 0;

0; =

1;

Liste 13: Prüfprogramm für D-FF

Abb. 8.19: Ausschnitt aus dem Simulationsergebnis des D-FFs dff

8.7

zu

Anschlüsse des in LOGIC2 verwendeten

D-Flipflops Vorbemerkung: Dieser Abschnitt erklärt zusätzlich verschiedene Details des von LOGIC2 verwendeten D-Flipflops. Sie sind zum Verständnis der folgenden Abschnitte nicht notwendig, beantworten aber mögliche Fragen zu den Ein- und Ausgängen des D-FF. LOGIC2 verwendet innerhalb des Simulationssystems ein D-FF, das mehr Eingänge hat als das D-FF, dessen Funktion beschrieben wurde.

8.7 Anschlüsse des in L0GIC2 verwendeten

93

D-Flipflops

clear

elk

clk_en d

glob_rst preset

isd_dffpc

Abb. 8.20:D-FFaus LOGIC2

Eingang preset ermöglicht es, den Ausgang AUS des D-FF auf Eins zu setzen. Da er im Beispiel D-FF nicht verwendet wird, wird er von LOGIC2 bei der Schaltungssynthese auf Null gelegt, ist also nicht aktiv. Der Eingang d entspricht dem D-Eingang im Beispiel D-FF. Der Eingang elk (clock) ist der Takteingang, an den das Signal TAKT angeschlossen wird. Nur wenn der Eingang elk en (clock enable) aktiv ist, wird das Taktsignal auch wirksam, weshalb er auch an Vcc, also die EINS angeschlossen ist. Dem gegenüber bleibt der Takt des D-FF wirkungslos, wenn clk_en 0 ist. Der glob_rst (global reset) wird für Simulationszwecke von LOGIC2 bereitgestellt. Er ermöglicht in der Simulation das Zurücksetzen aller Speicherelemente in einem Logikbauelement. Im dem hier verwendeten Bauelement GAL22V10 gibt es dieses Steuersignal nicht. Um das Flipflop zurückzusetzen, wird der Eingang clear an RESET angeschlossen. Der

=

Tab. 8.6:

Bezeichnungen des in LOG1C2 verwendeten D-FF

Bezeichnung im Beispiel D-FF wird nicht verwendet, inaktiv geschaltet

Bezeichnung LOGIC2

D TAKT wird nicht verwendet, aktiv geschaltet wird nicht verwendet und nicht angeschlossen RESET

d elk elken

Die Schaltung zeigt keinen invertierten GAL22V10 nicht vorhanden ist.

preset

Erklärung Setzeingang D-Eingang

globrst

clock clock enable Global reset

clear

Rücksetzeingang

Ausgang fur das Flipflop, da

er

im Bauelement

Die in verschiedenen Leitungen gezeichneten Rechtecke, beispielsweise bufl in Abb. 9.4, sind so genannte buffer. Sie regenerieren einen möglicherweise veränderten Signalwert innerhalb des Bauelements zu einem sicheren Spannungswert. Der Inverter in der Schaltung leds ist das Rechteck notl (Abb. 9.4). Bei der vorliegenden Verdrahtung der Eingänge seinen Eigenschaften dem besprochenen D-FF.

entspricht

das

Flipflop

von

LOGIC2 in

9

Medwedew-Automat: Schaltwerksbeispiel leds

Schaltwerke, allgemein auch als

Automaten bezeichnet, können verschieden strukturiert Zur werden. aufgebaut Einführung in die Schaltwerke eignet sich der Medwedew-Automat Er wird deshalb hauptsächlich zum Schaltungsentwurf in dieseiner klaren Struktur. wegen sem Buch eingesetzt. Seine Struktur wird im Folgenden erklärt und im Schaltwerksbeispiel leds zum ersten Mal verwirklicht.

Medwedew-Automat

9.1

Das Schaltwerk leds ist von seiner Struktur her ein Medwedew-Automat (Abb. 9.1), wegen seiner einfachen Form allerdings ohne Schaltwerkseingänge. Das Schaltwerk kann mit RESET zurückgesetzt werden, mit TAKT schaltet das Schaltwerk von einem Zustand zum andern.

Schaltnetz

Zustandsspeicher

Schaltwerksausgänge

Schaltwerkseingänge

TAKT RESET

Abb. 9.1 Medwedew-Automat mit Rückkopplung aller Schaltungsausgänge .

9.2 leds:

95

Schaltungsentwurf mit Zustandsdiagramm

Schaltwerksausgänge direkt an die Ausgänge der Binärspeicher (D-Flipflops) angeschlossen. Die Binärspeicher dieser Struktur werden auch als Zustandsspeicher bezeichnet. Beim Medwedew-Automaten gibt es also so viele Ausgänge wie Flipflops. Da alle Schaltwerksausgänge an Flipflops angeschlossen sind, können sich ihre Werte nur gleichzeitig mit der Taktflanke ändern. Dies ist ein Kennzeichen aller MedBeim Medwedew-Automaten sind alle

wedew-Automaten

.

Die Ausgänge der Flipflops sind mit den Eingängen des Schaltnetzes verbunden. Das Schaltselbst muss rückkopplungsfrei sein. Im Allgemeinen müssen beim Medwedew-Automaten nicht alle Flipflopausgänge zu den Schaltnetzeingängen zurückgeführt werden, wie es in der Abb. 9.1 gezeichnet ist. netz

9.2

leds:

Schaltungsentwurf mit Zustandsdiagramm

Das D-FF mit seinen Eigenschaften ist nun bekannt, ebenso das Zustandsdiagramm zur Definition von Schaltwerken. Mit dem Zustandsdiagramm als Werkzeug kann nun die im Abschnitt 8.1 gezeigte Schaltung leds entworfen werden.

Hier folgt die Wiederholung der Aufgabenstellung:

Aufgabe: Nachdem die Versorgungsspannung

der Schaltung leds eingeschaltet ist, leuchten die beiden Leuchtmelder LI und LO abwechselnd in der folgenden Reihenfolge: Alle Leuchtmelder ausgeschaltet, LO allein eingeschaltet, alle Leuchtmelder eingeschaltet, LI allein eingeschaltet, alle Leuchtmelder ausgeschaltet... Für das Signalbündel L[1..0] ergibt sich

folgende Wertefolge: 00b, 01b, 1 lb, 10b, 00b,... zu

blk:blink

mz

Abb. 9.2: Blockschaltbild der Schaltung leds

Neben den beiden Ausgängen LI und L0 erkennt man im Blockschaltbild Abb. 8.1 die beiden Eingänge RESET und TAKT. Mit RESET 1 wird eine Schaltung in ihren Grundzustand versetzt, ihre beiden Ausgänge sind dann Null. Der Takteingang TAKT der Schaltung bewirkt den Übergang von einem Schaltungszustand in den darauf folgenden Zustand, also beispielsweise von LI 0 und L0 0 in LI =0 und L0 1. =

=

9.3

=

=

Hardwareentwurf und Erklärungen der Funktion von leds

Zustandsdiagramm von leds in Abb. 9.3 zeigt die vier Schaltungszustände und zwei Ausgangs variable. Der Grundzustand wird alle aus genannt und durch einen schwarzen Das

9 Medwedew-Automat:

96

Schaltwerksbeispiel leds

Punkt links oben im Diagramm gekennzeichnet. Im Zustandsdiagramm sieht man, wie die Leuchtmelder LI und LO eingeschaltet und dann wieder ausgeschaltet werden. Zur einfacheren Schreibweise wurden LI und LO zum Signalbündel L[1...0] zusammengefasst. •

alle

aus

LI 1..01=00

LO ein

Lfl..01=01b

Abb. LI ein

alle ein

LII..01=10b

L[1J)|- 1 lh

9.3.Zustandsdiagramm

Die Schaltungssynthese in LOGIC2 setzt das Zustandsdiagramm, das als Quellprogramm fur den Entwurf der Logikschaltung dient, in Hardware um (Abb. 9.4). Diese Schaltung führt die gewünschte Funktion aus. Das Schalmetz für die Rückkopplung der Ausgänge des Zustandsspeichers wurde ebenfalls durch Schaltungssynthese entworfen. Binärspeicher D,

0,

R

D,

Q,

K

TAKT RESET

Abb. 9.4:

Schaltung leds

Abb. 9.5:

Vereinfachte Schaltung leds

In Abb. 9.4 sieht man die beiden D-FF, die die Ausgänge LI und LO direkt ansteuern. Zur besseren Übersicht wird dieses Schaltbild umgezeichnet (Abb. 9.5). Das Schalmetz ist beim Schaltwerk leds sehr einfach gestaltet, denn es besteht nur aus einer direkten Verbindung des Ausgangs Q0 zum Eingang Di und einem Inverter, der von Qi angesteuert wird und dessen Ausgang zu D0 führt. Der Wert des Folgezustands wird dadurch bestimmt, dass die Ausgänge des Schaltnetzes an die D-Eingänge der Flipflops angeschlossen sind. Mit der positiven Taktflanke werden die verknüpften Zustandswerte, die an den D-Eingängen anliegen, übernommen. Dadurch ist ein neuer aktueller Zustand erreicht, aus dem wiederum der Folgezustand ermittelt werden kann.

Nachdem das Schaltwerk leds eingeschaltet und zurückgesetzt wurde, ändert sich der Schaltungszustand mit jedem Schaltungstakt. Mit dem Eingang RESET kann man die Schaltung jederzeit in ihren Grundzustand versetzen. Die Funktion des Schaltwerks kann von anderen Signalen nicht beeinflusst werden, da keine vorhanden sind.

97

9.3 Hardwareentwurf und Erklärungen der Funktion von leds

Schaltungsfunktion von leds erklärt. Zeitpunkt t gibt die Tab. 9.1 Auskunft

Mit Hilfe ihrer Zustandsfolgetabelle wird die

Ausgehend vom aktuellen Zustand Folgezustand der Schaltung leds. Tab. 9.1:

zum

über den

Zustandsfolgetabelle Schaltwerk leds

Um einen Folgezustand zu bestimmen, muss zunächst der aktuelle Zustand betrachtet werden. Aus diesem ermittelt man die Werte der beiden D-Eingänge der Flipflops. Ist der aktuelle Zustand zur Zeit t der Schaltung leds beispielsweise q,[1..0] 01b, dann sind wegen der Rückkopplung über das Schalmetz zu diesem Zeitpunkt die beiden D-Eingänge Du und D0t gleich Eins. Nach einer weiteren Taktflanke ist deshalb der Folgezustand von leds Qt+1[1..0] 1 lb. Allgemein kann man sagen, der Folgezustand Q,+i[1..0] ergibt sich bei dieser Schaltung aus dem Wert von D,[1..0], der vor der positiven Taktflanke an den =

=

D-Eingängen anliegt. Die einzelnen Werte der Schaltungsausgänge und die Bestimmung des Folgezustands werden im Folgenden ausführlich erklärt und anhand von übersichtlichen Prinzipschaltbildern

grafisch dargestellt.

Hinweis: Leser, die mit der Tab. 9.1 gut zurechtkommen und die Zustandsfolgetabelle verstanden haben, können den Rest des Abschnitts überlesen, ohne dass ihnen dabei wichtige Informationen verloren gehen. Tab.

9.2:Ausfiihrliche Zustandsfolgetabelle Schaltwerk leds

Aktueller Zustand zur Zeit t Wert dezi. Qu Qo. 0 Quo 0 Qo«) 0 I Qm 0 Qo„ 1 3 Q„2 1 Qoi2= 1 2 Qio 1 Qo.3 0 0 Ql.4 0 Q«4 0 =

=

=

=

Taktflanke Taktflanke Taktflanke Taktflanke Taktflanke

=

=

=

=

=

Die

Folgezustand zur Zeit t+1 Wert dezi. Qot+i 1 Qi.i 0 Qo» 1 3 Qra l Qot2 1 2 Q„3 1 Qo.3 0 0 0 0 Qo,4 Qi,4 =

=

=

=

=

=

=

Ql,5

=

=

0

QC R Werte nach

TAKT

Schaltwerksbeispiel leds

RESET-"-

Q,»

Q«o

=

Lo =

o

o

Abb. 9.6: Werte in leds nach dem stand 0

Schaltungsreset

Schaltungsreset Zu-



Nun werden die Werte der D-Eingänge der Flipflops der Folgezustand zum Zeitpunkt t+1 bestimmt.

zum

Zeitpunkt t

ermittelt und daraus

(Erklärung der Zeile Wert dezimal 0, Tab. 9.2): Da D0to die Inversion Qlt0 ist, ergibt sich: D0t0 1. Da Q0to 0 ist, ergibt sich Dlt0 0. Nach der Taktflanke sind die Zustände der Flipflops deshalb Qltl 0 und Q0ti 1. Zur einfacheren Kennzeichnung des Zustands wird der Dezimalwert der beiden Flipflopwerte genommen, also

Von 00 nach 01 von

=

=

=

=

=

Eins.

Von 01 nach 11 (Erklärung der Zeile Wert dezimal 1, Tab. 9.2): Der aktuelle Zustand ist jetzt Qu] 0 und Q0ti 1. Dafür müssen die Werte für die D-Eingänge der beiden Flipflops neu ermittelt werden. Da Qm 0 ist, ergibt sich Dn,i 1, da D0 über den Inver1 ist aber auch Dlti 1, da der ter mit dem Ausgang Qi verbunden ist. Wegen Q0ti Ausgang Q0 mit dem Eingang D, verbunden ist. Da jetzt beide D-Eingänge der Flipflops Eins sind, werden nach der folgenden Taktflanke beide Ausgänge Eins, Qiß 1 und Qot2 1, der Folgezustand ist Drei. =

=

=

=

=

=

=

=

Zur

Verdeutlichung

sind alle Werte in der

Schaltnetz

Binärspeicher

9.6, Abb. 9.7 und Abb. 9.8 eingetragen.

Q,„

R



Do

Qo|

R TAKT _Tl

RESET-"—

=

Binärspeicher

D„

Q«,

L, Q,o=l

D, >C

o

R

=

t>C

i

Qo

Lo

R TAKT -JUL.

Werte nach 1. Taktflanke

Abb. 9.7: Werte in leds im Zustand 1

Weitere

Schaltnetz

L,

D, 1>C

Logikschaltung zum jeweiligen Zustand in Abb.

RESET-"-

Werte nach 2. Taktflanke

Abb. 9.8: Werte in leds im Zustand 3

Zustandsänderungen können in Tab. 9.2 nachvollzogen werden.

99

9.4 Nachweis der Sollfunktion von leds

Nachweis der Sollrunktion von leds

9.4

Zeitdiagramm in Abb. 9.9 sind die Werte der Signale für die D-Eingänge und die Flipflopausgänge dargestellt. Da der Simulator die Signalnamen der Gesamtschaltung benutzt, findet man im Zeitdiagramm anstelle von QO die Bezeichnung LO und anstelle von QO.D die Bezeichnung LO.D. Im

Abb. 9.9:

Zeitdiagramm mit Einzelsignalenfiir die Zustände von leds

Um die Funktion der Schaltung vollständig nachzuweisen, wird jeder Zustand des Zustandsdiagramms einmal in der Normalfunktion durchlaufen. Dabei wird geprüft, ob von jedem der vier Zustände aus wieder der Grundzustand erreicht werden kann. Das Simulationsergebnis in Abb. 9.10 zeigt die fehlerfreie Schaltungsfunktion. 0ns

n n

|600 n

2300ns

n

n_ miMJWUWWMWWWWl

reset

+i

takt

+

L[1..0]

hBq|i|0|i|3|0|i|3|2|0|i|3|2|

Abb.

0

|l|3|2|0|l|3|2l

9.10:Simulationsergebnis leds

9.5

Zusammenfassung

Im Unterschied zu sequentiellen Logikschaltungen zeigen kombinatorische Logikschaltungen (Schaltnetze) zu jeder Zeit den Eingangswerten genau entsprechende Ausgangswerte. Das Beispiel der Schaltung leds, bei der zwei Leuchtmelder in bestimmter Weise ein- und ausgeschaltet werden, zeigte dagegen, dass sequentielle Logikschaltungen (Schaltwerke) zu verschiedenen Zeiten unterschiedliche Ausgangswerte haben können. Nach jeder Taktflanke ändert sich der Schaltungszustand.

9 Medwedew-Automat:

100

Schaltwerksbeispiel leds

Um das Verhalten von Schaltwerken zu erklären, wurde das RS-Latch als speicherndes Element eingeführt. Das RS-Latch wurde als NOR-Latch ausgeführt und mit der Zustandsfolgetabelle genau beschrieben. Sie ist eine der möglichen Beschreibungsarten von Schaltwerken. Die Funktion des RS-Latchs wurde im Zeitdiagramm dargestellt. Da das RS-Latch aber bei unzulässigen Eingangskombinationen ein unvorhersehbares Verhalten zeigt, wurde das sicherere D-FF entworfen und simuliert. Mit diesem werden alle Schaltwerke des Buches entwickelt, simuliert und aufgebaut.

widerspruchsfreie Möglichkeit, ein Schaltwerk zu beschreiben, wurde das Zustandsdiagramm eingeführt. Mit dem Zustandsdiagramm als Quelldatei konnte dann von LOGIC2 das zugehörige Schaltwerk entworfen werden. Beim Funktionsnachweis von Schaltwerken musste außerdem darauf geachtet werden, dass Änderungen der Eingangssignale in verschiedener Reihenfolge angelegt werden müssen, weil die Schaltwerksreaktionen

Als weitere

darauf unterschiedlich sein können.

9.6

Übungsaufgabe: Schaltwerk led0231

Nachdem die Versorgungsspannung der Schaltung led0231 eingeschaltet ist, leuchten die beiden Leuchtmelder LI und L0 abwechselnd in der folgenden Reihenfolge: Alle Leuchtmelder ausgeschaltet, LI allein eingeschaltet, alle Leuchtmelder eingeschaltet, L0 allein eingeschaltet, alle Leuchtmelder ausgeschaltet... Für das Signalbündel L[1..0] ergibt sich folgende Wertefolge: 00b, 10b, IIb, 01b, 00b,... Die Schaltungsfunktion muss mit Hilfe der Simulation nachgewiesen werden.

Aufgabe:

10

Medwedew-Automat: Schaltwerksbeispiel leucht

Im Schaltwerk leucht wird die Anzahl der Ausgangsvariablen, die bei leds Zwei war, auf Vier erhöht. Die im Schaltnetz des Schaltwerks vorhandenen logischen Verknüpfungen werden komplexer. Die Schaltung leucht ist ein Zwischenschritt auf dem Weg zur Entwicklung leistungsfähigerer Schaltwerke.

10.1

leucht:

Erweiterung der Schaltung leds

Aufgabe: Das Schaltwerk leds wird zum Schaltwerk leucht erweitert. Das Schaltwerk leucht hat vier Schaltungsausgänge, die an Leuchtmelder (LED) angeschlossen sind. Die Leuchtmelder sollen folgendermaßen leuchten: 0001, 0010, 0100, 1000, 0001,... Die leuchtende LED wandert also nach links.

Das Blockschaltbild in Abb. 10.1 zeigt die Schaltungseingänge RESET und TAKT und die vier Schaltungsausgänge LEU[3..0], die zu einem Bündel zusammengefasst wurden. leu m:leu

nuz

I RESET > RESET RESET LEU[3..0] ITAKT > TAKT TAKT

Abb. 10.1 Blockschaltbild leucht

LEU[3„o] cmzEH

vorgegebene Reihenfolge der leuchtenden Leuchtmelder LEU ist 0001, 0010, 0100,1000, 0001,... Diese Werte werden als Ausgangswerte in das Zustandsdiagramm eingetragen (Abb. 10.2). Zu beachten ist, dass der Grundzustand zjiull der Schaltung mit einem Die

schwarzen Punkt links oben aktuellen Zustand zum

vom

Folgezustand.

gekennzeichnet ist. Jede Taktflanke bewirkt einen Übergang Folgezustand. Ein Pfeil verbindet jeden Zustand mit seinem

10 Medwedew-Automat:

102



z NULL

LEU[3..01=0000b 1

LEU 2

LEU

lLEUf3..01

=

Schaltwerksbeispiel leucht

0001b

1

LEU 8

[LEUr3..01

=

0010b

LEU 4 Abb.

LEU13..01= 1000b

10.2

LEU13..01

=

0100b

10.2:Zustandsdiagramm leucht

Hardwareentwurf

Zustandsdiagramm als Schaltwerksbeschreibung kann das Schaltwerk mit LOGIC2 synthetisiert werden. Das Schaltbild in Abb. 10.3 ist etwas unübersichtlich, da die Ausgänge der Flipflops mit überkreuzten Leitungen zu den D-Eingängen zurückführen. Mit dem

LEU3

isd_dffpc

isd_dffpc

isd_dffpc

OutConn

~T'

I LEU2

LEUO

ChipReset C

Abb. 10.3: Schaltbild des Schaltwerks leucht

isd_dffpc

103

10.3 Nachweis der Sollfünktion von leucht

Ein Schaltnetz bestimmt aus dem aktuellen Schaltungszustand die Werte an den D-Eingängen der Flipflops für den Folgezustand. Es besteht hier aus einem NOR-Gatter mit drei Eingängen und drei Verbindungsleitungen ohne Verknüpfungen. Dies wurde durch die spezielle Aufgabenstellung bewusst herbeigeführt. In der Schemazeichnung Abb. 10.4 sind die Verbindungen deutlicher erkennbar. Der Ausgang von drei Flipflops ist direkt mit dem Eingang des jeweils nachfolgenden Flipflops verbunden: Der Ausgang Q2 von LEU2 mit D3, Qj von LEU1 mit D2 und Q0 von LEUO mit D|. Der Ausgang Q3 wird nicht zurückgeführt. Der Eingang D0 des Flipflops mit dem Ausgang

Qo wird mit einem NOR-GATTER angesteuert, dessen Eingänge mit Q2, Qi und Q0 verbunden sind. Binärspeicher LEU3

ID, Q

t>Cl

.

1R

ID.

-LEU2

]R

ID,

.LEU1

t>Cl 1R

LEUO

1D» Q,

t>Cl

.

1R

TAKT

RESET

10.3

Abb. 10.4: Schemazeichnung leucht

Nachweis der Sollfunktion von leucht

Zum Nachweis der Sollfunktion wird das Zeitdiagramm (Abb. 10.5) mit Hilfe des Simulators erzeugt. Exemplarisch wird der Grundzustand Z NULL und der Übergang vom Zustand ZNULL (Grundzustand) zum Zustand LEU l erklärt. Im Blockschaltbild Abb. 10.4 sind alle Reseteingänge 1R der Flipflops mit dem Signal RESET verbunden. Wenn das Signal RESET bei t 0 ns Eins ist (Abb. 10.5), wird der Grundzustand Z NULL mit dem Dezimalwert Null erreicht. =

10 Medwedew-Automat:

104

|180

0ns TAKT

+

LEU[3..0]

H|

ZUSTANI+I

Abb. 10.5:

|5 00

+

RESET

LEU

|340

Schaltwerksbeispiel leucht

0 Z NULL

| |

1 LEU 1

| |

2

|

4

1

8

LEU 2

|

LEU 4

1

LEU 8

|

1

[LEU

1

Zeitdiagramm leuchtl

Doch nun zum Übergang vom Grundzustand Z NULL zum Zustand LEUl. Sowohl die Werte der Ausgänge (0000b) als auch die der D-Eingänge der Flipflops (0001b) sind im Blockschaltbild (Abb. 10.6) eingezeichnet. Mit der positiven Taktflanke bei t 225 ns werden die Werte der D-Eingänge von den Flipflops übernommen. Der Wert der Ausgänge des Folgezustands ist deshalb 0001b, also Eins. Dieser wird in der Abb. 10.5 mit LELM bezeichnet. =

Binärspeicher

ID, Q, t>Cl

LEU3 .

IR

LEU2

ID, Q.

t>Cl

.

IR

ID, Q, t>Cl

.LEUl

IR

1D„ Q0|

.LEU0

Cl IR

TAKT

-1

RESET -

Abb. 10.6: Werte im Zustand Z NULL, noch keine

Taktflanke angelegt

Für den Zustand LEU l können jetzt die Werte der einzelnen D-Eingänge der Flipflops ermittelt werden. Daraus kann wiederum der Folgezustand abgeleitet werden, der mit der folgenden positiven Taktflanke vom Schaltwerk erreicht wird.

105

10.4 Zusammenfassung Zum Nachweis der Sollfunktion

von

leucht müssen alle Zustände

überprüft

werden. Das

Simulationsergebnis (Abb. 10.5) zeigt die erwarteten Zustände.

10.4

Zusammenfassung

Das Schaltwerk leucht wurde mit Hilfe des Zustandsdiagramms entworfen. Wegen der speziellen Aufgabenstellung kommt das Schaltnetz des Schaltwerks leucht mit nur einem NOR-Gatter aus. Um die vorgegebene Funktion zu verwirklichen, werden die drei restlichen D-Eingänge über Verbindungsleitungen direkt mit den Schaltungsausgängen verbunden. Der Übergang vom Zustand Z NULL zum Zustand LEU l wurde genau beschrieben.

10.5

Übungsaufgabe: Schaltwerk schritt

Das Schaltwerk schritt zur Ansteuerung eines Schrittmotors muss entworfen werden.

Aufgabe: Nachdem die Versorgungsspannung der Schaltung schritt eingeschaltet ist, sind alle Ausgänge des Schaltwerks ausgeschaltet. Für das Signalbündel AUS[3..0] ergibt sich folgende Wertefolge: 0000b, 0011b, 0110b, 1100b, 1001b, 0011b,... Die Schaltungsfunktion muss mit Hilfe der Simulation nachgewiesen werden.

11

Medwedew-Automat: Schaltwerksbeispiel leuchtr

In der Praxis sind Steuerungen notwendig, die auf Eingangssignale reagieren. Beispielsweise muss der Motor eines Personenaufzugs abgeschaltet werden, wenn eine Türposition erreicht ist. Durch ein Schaltwerk mit einem zusätzlichen Signaleingang für den Endschalter der Türposition ist dies möglich. Wie ein solches Schaltwerk aussieht und wie es beschrieben wird, wird am Beispiel leuchtr gezeigt.

11.1

leuchtr als Medwedew-Automat

Um zu erkennen, wie ein Schaltwerk von einem externen Signal in seiner Funktion beeinflusst werden kann, wird eine erweiterte Aufgabenstellung formuliert.

Die vorliegende Schaltung leucht soll folgendermaßen zur einer neuen Schaltung leuchtr erweitert werden: Mit dem Signal RECHTS 0 bleibt die bestehende Schaltungsfunktion erhalten, die Reihenfolge der leuchtenden LED ist 0001b, 0010b, 0100b, 1000b, 0001b,... Die leuchtende LED wandert wie bei leucht nach links. Für RECHTS 1 wird die Reihenfolge der nacheinander leuchtenden LED umgedreht: 0001b, 1000b, 0100b, 0010b, 0001b,... Die leuchtende LED wandert nun nach rechts.

Aufgabe:

=

=

Um die Aufgabe weitert werden.

zu

lösen,

müssen Blockschaltbild

leu sm:leu

(Abb. 11.1) und Zustandsdiagramm

er-

r

leu[3..0]

< LEU13..01I

Abb. 11.1: Blockschaltbild leuchtr

Zustandsdiagramm sind die Übergänge von einem Zustand zum anderen vom Signal abhängig. Dies wird an den Pfeilen, die die Zustandsübergänge anzeigen, als Bedingung eingetragen. Im

RECHTS

11.2

107

Hardwareschaltung leuchtr

LEU[3..01= 0000b

LEU[j..0]= 1000b

LEUI3..0]= 0001b

bin2

LEUf3..0|" OlOUh

LEUI3..01- 0010b

Abb. 11.2: Zustandsdiagramm leuchtr

Das Eingangssignal RECHTS ist die Bedingung, von der die Abfolge der einzelnen Zustände des Schaltwerks abhängt. Ist das Schaltwerk im Zustand binl, dann ist der Folgezustand bin8, wenn Bedingung RECHTS 1 ist (Pfeil nach rechts mit Bedingung RECHTS, Abb. 11.2). Als Zustandsbezeichnung sind beliebige Bezeichnungen erlaubt; mit bin8 wird an die binäre Acht erinnert, die den Ausgangswert dieses Zustands charakterisiert. Ist die Bedingung RECHTS im Zustand binl allerdings Null, dann ist der Folgezustand binl (Pfeil nach unten mit der Bedingung /RECHTS). Die Bedingung RECHTS 0 wird mit /RECHTS gekennzeichnet, während die Bedingung RECHTS 1 mit RECHTS angegeben wird. =

=

=

11.2

Hardwareschalmng leuchtr

Das Zustandsdiagramm wird von LOGIC2 in das Schaltwerk in Abb. 11.3 umgesetzt.

Abb. 11.3: Schaltbild des Schaltwerks leuchtr

11 Medwedew-Automat:

108

Schaltwerksbeispiel leuchtr

Betrachtung der Schaltung (Abb. 11.3) erkennt man, dass die vier Ausgänge in der Reihenfolge von oben nach unten mit LEU3, LEU1, LEU2 und LEUO bezeichnet wurden. Die D-Eingänge der einzelnen Flipflops werden über vier Schalmetze leuchtr_LEU3.D, leuchtr_LEU7.D, leuchtr_LEU0.D und leuchtr_LEU2.D angesteuert. Diese Schalmetze bestimmen die Werte der D-Eingänge der Flipflops und damit die q Ausgänge für den jeweiligen Folgezustand. Mehr kann aus dieser Abbildung wegen ihrer geringen Größe nicht entnommen werden. Bei der genauen Analyse der Schaltungsfunktion hilft das übersichtlichere Bei der

Blockschaltbild in Abb. 11.5 weiter.

Nachweis der Sollmnktion von leuchtr

11.3 Die

Schaltungsfunktion kann mit der Simulation (Abb. 11.4) nachvollzogen werden. 525ns |620 |780 |940

RESET

+_

TAKT

+

[ LJ +_|

RECHTS

|_1

|_[

1_|

LJ I_T |_

LEU[3..0]

H|

1

|

8

|

4

|

2

|

1

ZUSTAND

+|

BIN1

|

BIN8

|

BIN4

|

BIN2

|

BIN1

LEU3.D LEU2.D

H_T~l_| |_P H_| |_| |_ 1 H) I_| _T1_

LEU1.D LEUO.D

Abb. 11.4:

I-

Hl

2

|

BIN2

|

I

Zeitdiagramm leuchtr

Es wird der Übergang vom Zustand BIN1 zu BIN8 betrachtet. Die Betrachtung geht von der Voraussetzung aus, dass sich das Eingangssignal RECHTS zum Zeitpunkt t 600 ns von Null auf Eins ändert. Aufgrund dieser Änderung ändern sich nur die beiden D-Eingänge LEU3.D und LEU1.D; LEU3.D 1 und LEU1.D 0, LEU2.D und LEUO.D bleiben Null. Wichtig ist hier, dass sich der Schaltungszustand und damit die Schaltwerksausgänge erst mit der nächsten positiven Taktflanke ändern (Abb. 11.4). Das bedeutet, dass auch die Binärspeicher erst zum Zeitpunkt t 625 ns auf LEU[3..0] 1000b gesetzt werden und der Zustand BIN8 erreicht wird. Die Signalbezeichnungen für die D-Eingänge sind zwar im Schaltbild und im Zeitdiagramm verschieden, aber dennoch einander leicht zuzuordnen. =

=

=

=

=

Das Blockschaltbild in Abb. 11.5 zeigt, dass im Schaltnetz die Werte der Flipflopausgänge zusammen mit dem Wert der Eingangsvariablen RECHTS im Schaltnetz verknüpft werden. Die Ausgänge des Schaltnetzes sind die Werte, die dann mit der nächsten positiven Taktflanke als Zustand in die Binärspeicher übernommen werden. Aktueller Zustand ist hier 0001b. Der Folgezustand wird durch das Schaltnetz mit dem Ausgangswert 1000b vorbereitet, da das Signal RECHTS 1 ist. =

109

11.3 Nachweis der Sollfunktion von leuchtr

Binärspeicher

Schaltnetz 1

LEU3

ID, Q, R

LEU2

D2 Q. f>Cl 1R

LEU1

ID, Q R

LEUO

1D» Q, 1>C1 R

RECHTS

TAKT RESET Abb. 11.5: Werte der D-Eingänge fiir Zustand bm\

Damit man sich eine Vorstellung vom Schalmetz machen kann, wurde das Teilschaltnetz leuchtr LEU3.D im Ausschnitt gezeichnet (Abb. 11.6). Man sieht, dass nicht alle Schaltungsausgänge auf dieses Teilschaltnetz zurückgeführt wurden.

LEU2 O RECHTS O LEUO O

Abb. 11.6: Detail des Schaltnetzes

leuchtr_LEU3.Dfür D3

Da im Zustand BIN1 LEU2 0 und LEUO 1 ist liegen diese Werte an den entsprechenden Gattereingängen an. Da in der Simulation angenommen wurde, dass RECHTS 1 ist, =

=

,

=

11 Medwedew-Automat:

110

Schaltwerksbeispiel leuchtr

liegt auch diese Eins am Invertereingang und am unteren Eingang des UND-Gatters i_03 an. Verknüpft man die einzelnen Werte im Teilschaltnetz, wird der Schaltnetzausgang zu Eins. Diese Eins liegt am D3-Eingang des Flipflops an. Die anderen D-Eingänge der restlichen Flipflops ergeben sich als Null. Das sieht man in Abb. 11.5 und Abb. 11.4. Der Folgezustand, der nach dem Grundzustand mit dem Eingangssignal RECHTS 1 erreicht wird, ist =

BIN8.

11.4

Zusammenfassung

Am Schaltwerk leuchtr wurde deutlich, wie seine Funktion durch das Eingangssignal RECHTS beeinflusst werden kann. Es wurde gezeigt, wie im Zustandsdiagramm die Bedingungsvariable RECHTS zur Beschreibung des Schaltwerks eingesetzt wird, um die Funktion der Aufgabenstellung zu verwirklichen. Der Übergang vom Zustand BIN 1 der Schaltung auf den Folgezustand BIN8 wurde mit den Signalwerten im Detail beschrieben. Das Teilschaltnetz, das den Eingang LEU3.D ergibt, wurde auf der Gatterebene erklärt.

11.5

Übungsaufgabe: Schaltwerk schrittr

Das Schaltwerk schrittr

Schalmngsfunktion

muss

Ansteuerung eines Schrittmotors muss entworfen werden. Die mit Hilfe der Simulation nachgewiesen werden.

zur

Aufgabe: Nachdem die Versorgungsspannung der Schaltung schrittr eingeschaltet ist, sind alle Ausgänge des Schaltwerks ausgeschaltet. Wenn das Eingangssignal RECHTS 0 ist, ergibt sich für das Signalbündel AUS[3..0] folgende Wertefolge: 0000b, 0011b, 0110b, 1100b, 1001b, 001 lb,... Wenn das Eingangssignal RECHTS 1 ist, ergibt sich für das Signalbündel AUS[3..0] folgende Wertefolge: 0000b, 001 lb, 1001b, 1100b, 0110b, 001 lb,... =

=

12

Moore-Automat: Schaltwerk leuchtr

Nach der Erklärung der Struktur des Medwedew-Automaten wird in diesem Entwurf das Schaltwerk leuchtr als Moore-Automat entwickelt. Die Schaltungsfunktion von leuchtr wird beibehalten.

12.1

Moore-Automat

Der Moore-Automat ändert wie der Medwedew-Automat seinen Zustand synchron zum Takt. Allerdings werden die Ausgänge über ein Schalmetz decodiert. Dieser Automat kann mit weniger Speicherelementen auskommen, wenn die Anzahl der Zustände geringer ist als die Anzahl der verwendeten Ausgangsvariablenkombinationen. Damit ist aber nicht mehr jeder Schaltungsausgang an ein Flipflop angeschlossen. Das kann je nach Zieltechnologie zu einfacheren Schaltungen mit weniger Hardwareaufwand fuhren.

Schaltnetz

Zustandsspeicher

Schaltwerksausgänge

Schaltwerkseingänge

TAKT RESET

Abb. 12.1: Moore-Automat mit Rückkopplung aller Binärspeicherausgänge

12 Moore-Automat: Schaltwerk leuchtr

112

Beim Moore-Automaten werden die Ausgänge des Zustandsspeichers mit einem Decoder decodiert; sie sind nicht wie beim Medwedew-Automaten alle direkt an Flipflops angeschlossen. Die Anzahl der Zustandsspeicher entspricht damit nicht mehr der Anzahl der Schaltungsausgänge. Der Decoder ermöglicht es, dass nicht mehr für jeden Schaltungsausgang ein Flipflop eingesetzt werden muss. Allerdings ändern sich die Schaltungsausgänge um die Gatterverzögerungszeit des Decoders später als die Flipflopausgänge des Zustandsspeichers. Die Zustandsspeicher ändern sich synchron mit der Taktflanke. Je nach Art der logischen Verknüpfung im Decoder können sich die Werte der Schaltungsausgänge unterschiedlich verzögern. Die Verzögerungszeiten werden in der Simulation berücksichtigt und ausgewiesen. Der Schaltungsentwickler muss sicherstellen, dass die Schaltung trotzdem fehlerfrei funktioniert. Eine Änderung der Schaltungsausgänge unabhängig von Schaltungstakt ist nicht möglich. Dies ist ein Kennzeichen des Moore-Automaten. Allerdings wird die strikte gleichzeitige Änderung aller Ausgangssignale, wie sie im Medwedew-Automaten vorliegt, wegen der Verzögerungszeit des Decoders nicht immer erreicht. Im Folgenden wird leuchtr als Moore-Automat entworfen.

leuchtr als Moore-Automat

12.2

Da bei leuchtr nur vier verschiedene Ausgangsvariablenkombinationen vorkommen, werden auch nur vier Schaltungszustände für die Schaltung benötigt. Dafür reicht bereits das Schaltwerk zaejeu (Abb. 12.2) mit zwei Flipflops als Zustandsspeicher. Um die gewünschten vier Schaltungsausgänge zu erzeugen, werden beide Ausgänge des Schaltwerks mit dem Decoder dec leu decodiert. Das Blockschaltbild besteht damit aus zwei Blöcken. zae

I RECHTS

I RESET

;

TAKT :

leu:zaehl2b

RECHTS RESET

ZUS[1..0]

dec leu:decoder

ZUS[1..0] LEU[3..0]

-< LEUr3..01l

TAKT

-Czusri.oil Abb. 12.2: Blockschaltbild leuchtr (LJMORD) als Moore-Automat

Der Zustandszähler selbst wird mit einem worfen (Abb. 12.3).

Zustandsdiagramm

als Medwedew-Automat ent-

113

12.3 Hardwareentwurf

RECHTS

grundzu

zus

1

/RECHTS ZUSfl..0]=01b

ZUSn..01=00b /RECHTS

RECHTS zus

2

RECHTS

/RECHTS

/RECHTS

zus

3

zusri..oi=i ib

ZUS[1..01=10b

RECHTS

Abb. 12.3:

Zustandsdiagramm zae_leufür den Zustandszähler des Mooreautomaten

Die vier Ausgangssignale LEU[3..0] werden mit dem Decoder erzeugt, dessen Funktion mit einer Funktionstabelle beschrieben wird (Liste 14). x

[zusl, zusO] 0 0 1 1

x x X X

y

LEU

y y y y

[3. .0] 1000b 0100b 0001b 0010b

Liste 14: Funktionstabelle der Schaltung decoder von leuchtr

12.3 Als

Ergebnis

(Moore-Automat)

Hardwareentwurf des Hardwareentwurfs

aus

dem Blockschaltbild

ergibt

sich die Gesamtschal-

tung in Abb. 12.4, in der Zustandszähler und Decodierer gekennzeichnet sind. Diese Ge-

ist ein Moore-Automat, da die Zustände sich taktsynchron ändern, die Ausgänge aber erst mit der Zeitverzögerung des Decoders.

samtschaltung

12 Moore-Automat: Schaltwerk leuchtr

114

LEU3 RECHTS

C

LEÜ1

5 TAKT

OutConn

LEUO leuc

n

rme

LEUO

ZUS1 OutConn

-f' leuc

rme

I LEU2

LEU2

ChipReset C grid

Abb.

12.4:Gesamtschaltung leuchtr als Moore-Automat

Betrachtet man die Schaltungskomplexität der beiden Ausführungen der Funktion leuchtr, so ist die Realisierung der Schaltung als Medwedew-Automat in einem GAL-Bauelement etwas weniger aufwändig als der Moore-Automat (Tab. 12.1). Dies ist nicht immer so, da sowohl die Schaltungsstruktur als auch die Struktur der Zielhardware die Schaltungskomplexität beeinflusst. Tab. 12.1:

Vergleich Medwedew/Moore (Anzahl der Produktterme) Medwedew-Automat

Moore-Automat

14

15

Schaltungskomplexität (Anzahl der Produktterme)

entspricht der Anzahl der logischen Verknüpfungen, die für die jeweilige Schaltungsrealisierung im Bauelement programmiert werden müssen. Wegen der speziellen Struktur des Bauelements GAL22V10 benötigt der Moore-Automat für leuchtr Die Anzahl der Produktterme

einen Produktterm mehr als der Medwedew-Automat.

Nachweis der Sollmriktion von leuchtr als Moore-Automaten

12.4

Für den Nachweis der Sollfunktion des Schaltwerks leuchtr als Mooreautomat können dieselben Prüfmuster verwendet werden wie beim Medwedew-Automaten.

Verzögerungszeit zwischen Taktflanke, Änderung der Zustandsspeicher und Schaltungsausgänge untersucht.

Zuerst wird die

Änderung

der

12.5

115

Zusammenfassung 524ns

reset

+

takt

+

rechts

+

leu[3..0] zus[1..0]

h[ h[

zust moore +

Abb. 12.5:

526ns

_

_

|

zus 1

grundzu

Verzögerungszeiten beim Decoder des Moore-Automaten

In Abb. 12.5 sieht man, dass die positive Taktflanke zum Zeitpunkt 725 ns die Zustandsänderung bei 726 ns bewirkt, während sich die Schaltungsausgänge LEU[3..0] erst bei 727 ns von 8d nach 4d ändern.

Gesamtschaltung wird mit den bereits entworfenen Prüfmustern simuliert. Das Simulationsergebnis entspricht den erwarteten Ergebnissen. Beim gewählten Darstellungsmaßstab ist die Verzögerungszeit des Decoders nicht mehr erkennbar. Die

Ons rechts reset takt

leu[3..0] zus[1..0]

|5 0 0

|1300

[2100

3725ns

+n_r "^TT^T^^l_ _n n n +üOnjTJiiwiMwiMiMiM^

H|8ll|2l4|8ll|8|4|2ll|8|l|8|4|8|4|2|4|2|l|2|l|8|l|8|l|8|l|2|8|l|2|4|8ll[2|4|

Hl0l2|3lll0l2|0|l|3|2|0l2|0ll|0|l|3|l|3|2l3l2|0|2l0[2|0|2|3|ÖT2T3Tl|0|2|3|l|

Abb. 12.6: Zeitdiagramm der Schaltung leuchtr als Moore-Automat

12.5

Zusammenfassung

Der Moore-Automat wurde für leuchtr mit zwei Flipflops als Zustandsspeicher und einem Decoder entworfen. Der Unterschied zum Medwedew-Automaten, der vier Flipflops als Zustandsspeicher verwendet, wurde herausgearbeitet. Der Moore-Automat ändert seine Schaltwerksausgänge in Abhängigkeit vom Schaltwerkstakt. Da die Schaltwerksausgänge über einen Decoder ausschließlich an Zustandsspeicher angeschlossen sind, ergibt sich eine zusätzliche Verzögerungszeit von der Änderung des Zustandsspeichers zur Änderung der Schaltwerksausgänge. Der Schaltungsaufwand der beiden Realisierungen wurde verglichen. Bei leuchtr sind sich die beiden Schaltungen in ihrer Komplexität sehr ähnlich. Da die Schaltungskomplexität der Realisierung einerseits von der Schaltung selbst und andererseits von der Struktur der verwendeten Technologie abhängt, muss im Einzelfall ein Vergleich gezo-

12 Moore-Automat: Schaltwerk leuchtr

116 gen werden. Mit den heute verwendeten

Entwurfswerkzeugen

können

Erfahrungen

Schaltungskomplexitäten gesammelt werden, die dem Entwickler eine Beurteilung des

wurfsergebnisses

12.6

über Ent-

erleichtem.

Übungsaufgabe: Schaltwerk schrmo

Das Schaltwerk schr mo zur Ansteuerung eines Schrittmotors muss als Moore-Automat entworfen werden. Der Moore-Automat muss dieselbe Funktion wie der Medwedew-Automat haben. Die Signalbezeichnung SCHRI[3..0] fur die Ausgangssignale der Schrittmotorsteuerung müssen beachtet werden.

Aufgabe: Wenn das Eingangssignal RECHTS 0 ist, ergibt sich nach dem Einschalten der Versorgungsspannung für das Signalbündel SCHRI[3..0] folgende Wertefolge: 0011b, 0110b, 1100b, 1001b, 0011b,... Wenn das Eingangssignal RECHTS 1 ist, ergibt sich für das Signalbündel SCHRI[3..0] folgende Wertefolge: 001 lb, 1001b, 1100b, 0110b, 001 lb,... =

=

schrjno muss entworfen werden. Die der Simulation nachgewiesen werden. Das Schaltwerk

Schalmngsfunktion

muss

mit Hilfe

13

Mealy-Automat:

Schaltwerk

leuchtr

Zunächst wird die Struktur des Mealy-Automaten erklärt. Anschließend wird das Schaltwerk leuchtr als Mealy-Automat entworfen.

13.1

Mealy-Automat

Der

Mealy-Automat hat, wie auch der Moore-Automat, nur so viele Zustandsspeicher (Binärspeicher), wie er für die Realisierung der verschiedenen Zustände benötigt. Die Ausgänge der Zustandsspeicher werden wie bei allen anderen Automaten dieses Buches zum Schalmetz des Automaten zurückgeführt (Abb. 13.1).

Schaltnetz

Zustandsspeicher

Ausgänge Zustandsspeicher

FT

TAKT RESET

Schaltwerkseingänge

Abb. 13.1: Struktur eines

Schaltwerksausgänge

Mealy-Automaten

118

13

Mealy-Automat: Schaltwerk leuchtr

Ausgänge des Schaltnetzes ausgeführt. Dies vom Takt ändern können, möglicherweise sogar lediglich aufgrund der Änderung einer einzigen Eingangsvariablen. Dies ist ein wichtiger Unterschied zu den anderen Automaten! Abhängig von der Aufgabenstellung benötigt man für diese Schaltungsart vergleichsweise weniger Verknüpfungen im Schaltnetz, da Teile desselben auch für die Schaltungsausgänge Die

Schaltwerksausgänge

werden direkt als

bewirkt, dass sich die Schaltungsausgänge unabhängig

genutzt werden können.

leuchtr als Mealy-Automat

13.2

Die Struktur und die Eigenschaften eines Mealy-Automaten werden am Beispiel leuchtr verdeutlicht. Die Schaltung leuchtr hat vier verschiedene Schaltungszustände, weil nur vier verschiedene Kombinationen der Ausgangsvariablen, nämlich 1000b, 0100b, 0010b und 0001b, nach der Aufgabenstellung gefordert sind. Das bedeutet, dass zur Codierung dieser vier Zustände nur zwei Zustandsspeicher (AL_N[1..0] in Abb. 13.2) notwendig sind. Diese sind mit externen Schaltungsausgängen verbunden, da jedes Flipflop im GAL22V10 als Schaltungsausgang verwendet werden muss, wenn es in einer Schaltung benutzt wird .

re

li:leuchtm

I RESET >-

RESET

ITAKT >

TAKT

I RECHTS

>-

LEU[3..0]

-llb f[1..0]=01b rell

q[4..0]=00111b

f[1..0]=01b

iL

lk6

lk7

f[1..0]=llb

f[1..0]M)lb

f[1..01=10b

qr4..01-01010b

f[1..0>00b f[1..0]=10b re8

q[4..01=01000b fp..0>01b

f[1..0]=00b

Teildiagramm dreh mit Rechts- und Linkszweig

16

142

zu erwartenden zusätzlichen Verzweigungen für die wurden die Zustände untereinander gezeichnet.

Wegen der

Außerdem sind noch verschiedene andere Zustandsdiagramm zu erhalten:

Drehrichtungsanzeige dreh

Drehrichtungsänderungen

Erweiterungen notwendig,

um

das

vollständige

Einfügen der drei weiteren Anfangsbedingungen für flfö, die beim Einschalten abgefragt -

-

werden müssen und zu den Zuständen anz ll, anzlO und anz Ol fuhren. Einfügen der notwendigen Verzweigungen, um eine Änderung der Drehrichtung erkennen zu können.

Restliche Anfangszustände

16.3.5

Die drei restlichen Anfangszustände sind in Abb. 16.9 zu erkennen. Dort sind für jeden der Anfangszustände beide Bedingungen angegeben, die zur Rechts- oder Linksdrehung fuhren. Beispielsweise führt im Zustand anz 10 die Bedingung t\\..0] 00b zur Rechtsdrehung und die Bedingung fT1..0] IIb zur Linksdrehung. Zur besseren Übersicht wurden beide Zustandsübergänge der Richtungsänderung entsprechend geometrisch angeordnet für die Linksdrehung also auch im jeweiligen Zustand links. =

=

-

qr4..01=0000()b

f[1..0]=10b

f[1..0]=llb anz

11

anz

q[4..01=0001 lb

qf4..01=00010b

f[1..0]=10b f[1..0]=00b

f[1..0]=llb f[1..0]=10b f[1..0]=01b

Abb. 16.9:

16.3.6

10

f[1..0]=llb

f[1..0]=00b

f[1..0]=01b anz

01

q[4..01=00001b

anz

00

qr4„01=10000b

f[1..0]=00b f[1..0]=01b f[1..0]=01b f[1..0Hlb fT1..0]=10b f[1..0]=00b

Zustandsdiagramm für die vier möglichen Anfangszustände von dreh

Drehrichtungsänderung

Das Schaltwerk muss eine Drehrichtungsänderung erkennen. Die kontinuierliche Rechtsund die Linksdrehung hat jeweils eine charakteristische Reihenfolge der Signalwertänderun-

16.3

Zustandsdiagramm dreh

143

von flfO. Tritt in einer solchen Wertefolge, beispielsweise der kontinuierlichen Linksdrehung, ein Folgewert auf, der nicht zur Reihenfolge der kontinuierlichen Linksdrehung gehört, liegt eine Drehrichtungsänderung vor. In diesem Fall „springt" man vom Zustand der kontinuierlichen Linksdrehung in den entsprechenden Zustand der kontinuierlichen Rechtsdrehung. Vereinfachend wird davon ausgegangen, dass die Schaltung fehlerfrei funktioniert und keine unzulässigen Werteänderungen auftreten. Hierzu ein Beispiel aus der Rechtsdrehung: Es wird angenommen, im Zustand rell (Abb. 16.10) geht die Rechtsdrehung in eine Linksdrehung über.

gen

fIL.0]

IIb

rell

ql4..01=01011b zur

Linksdrehung

f[1..0]=llb

clk

isd_dffpc

|

RESET C_>TAKT O-

aus!

aus 3 rechts

schrittr

AUS2.D

aus:

aus 3 rechts

to

ih

isd_dffpc I

AUSO.CLKschrittr_^UpO

-o-

Tclk

i.sd_dffpc I

-i> aus

-J>clk

isd_dffpc I

?.hipReset

0>-

aus:

Abb. 20.4: Blockschaltbild schrittr

164

20

Lösungsvorschläge zu den Übungsaufgaben

Die Dateien des Schaltwerks sind im entsprechenden Ordner der CD.

Lösung Kapitel

20.8

12: Schaltwerk schrmo

Das Zustandsdiagramm des Schaltwerks schrjno als Moore-Automat zur Ansteuerung eines Schrittmotors ist in Abb. 20.5 dargestellt. Der Schrittmotor wird im Vollschrittbetrieb angesteuert. Die Drehrichtung des Schrittmotors kann mit dem Eingangssignal RECHTS beeinflusst werden.

[•

so

-lzusfl..01=00b

RECHTS

/RECHTS

s:

RECHTS

zus[1..01=01b

/RECHTS

RECHTS

zusfl ..01=1 lb

/RECHTS

zusU.OHOb /RECHTS

Abb. 20.5:

Zustandsdiagramm des Schaltwerks schr

mo

Für die Codierung der einzelnen Zustände wurde bewusst 00b, 01b, IIb und 10b gewählt, weil die Zählweise hier beliebig sein kann, vorausgesetzt, man verwendet die dazu passende Ausgangssignalzuordnung im Decoder. Dieser Zähler benutzt etwas weniger Ressourcen des GAL22V10 als ein Zähler, der in der Reihenfolge 00b, 01b, 10b und 1 lb zählt. Der Decoder wurde als Zustandstabelle programmiert (Liste

16).

*FUNCTION-TABLE

$HEADER: [zusl, zusO]

x

y schri

x

y y y y

X

X X

[3..0]

0011b 1001b 0110b 1100b

Liste 16: Teil der Quelldatei des Decoders dec mo.dcb für Schaltwerk schr

mo

Das Schaltwerk kommt mit zwei Flipflops aus (Abb. 20.6). Da aber alle Ausgänge des GAL22V10 mit einem Flipflop verknüpft sind, ist die Schalrungskomplexität bei diesem Bauelement im Vergleich zum Medwedew-Automaten hoch.

20.9

Lösung Kapitel

165

13: Schaltwerk schrmea

--O SCHRI3 SCHRI1

ChipReset

{>o--CT> SCHRI2 {>--O SCHRIO -£>>--O

C*-

RESET E_>-

SCHRI1 SCHRI2

SCHRIO

ZUSl,D

/f66. 20.6. Blockschaltbild sehr

mo

Die Dateien des Schaltwerks sind im entsprechenden Ordner der CD.

20.9

Lösung Kapitel

13: Schaltwerk schrjnea

Das Zustandsdiagramm des Schaltwerks schr mea als Mealy-Automat zur Ansteuerung eines Schrittmotors ist in Abb. 20.7 dargestellt. Der Schrittmotor wird im Vollschrittbetrieb angesteuert. Die Drehrichtung des Schrittmotors kann mit dem Eingangssignal RECHTS beeinflusst werden.

Sl

gnmdzu

/RECHTS::SCHRI[3..0]= 1001 RECHTS::SCHRI[3..0]= 1001b /RECHTS::SCHRI[3..0]= 001 lb

RECHTS::SCHRI[3..0]= 1100b

fRECHTS::SCHRI[3..0]= 1100b

flECHTS:: SCHRI[3. .0]= 001 lb S2

RECHTS::SCHRI[3..01= 0110b

S3

/RECHTS::SCHRI[3..0]=0110b

Abb. 20.7:

Zustandsdiagramm des Schaltwerk schr_mea

Das Schaltwerk kommt mit zwei Flipflops aus (Abb. 20.8). Die Codierung der Ausgangssignale ist vergleichsweise aufwändig, da das Eingangssignal RECHTS direkt auf die Schaltungsausgänge wirkt.

20

166

Lösungsvorschläge zu den Übungsaufgaben

—p-clk

TAKT O-

isd_dffpc I

AL_N0

SCHRIl

ALNl

RECHTS

Lschr

RESET LZV

mea

SCHRIl

O SCHRI3

a:._n: RECHTS

£>cik

bchr

mea

SCHRIS

AL_N0 AL_N1

sd_dffpc

-CZ> SCHRIO

RECHTS

bchr

ChipReset

mea

SCHRIO

O-

L3 RECHTS r~>-

AL NO AL_N0

AL_N0

ALNl

Abb. 20.8: Blockschaltbild sehr

mea

HZ> SCHRI2

ALNl

rechts

sehr

O AL Nl

RECHTS

AI NO.D

Jschr

mo

Die Dateien des Schaltwerks sind im entsprechenden Ordner der CD.

mea

SCHRI2

21

Verzeichnisse

21.1

Literaturverzeichnis

[LIP02] Lipp, H. M.: Grundlagen der Digitaltechnik. München: Oldenbourg Verlag, 2002 [BOR01] Borgmeyer, J.: Grundlagen der Digitaltechnik. München, Wien: Carl Hanser Verlag, 2001 [SCA01] Scarbata, G.: Synthese und Analyse digitaler Schaltungen. München: Oldenbourg Verlag, 2001 [GB96] Becke, G., Haseloff, E.: Das TTL-Kochbuch. Texas Instruments Deutschland. 1996 [JAOlJJansen, D. (Hrsg.): Handbuch der Electronic Design Automation. Hanser Verlag München, 2001

21.2

Stichwortverzeichnis

Addierer mit der Wortbreite 4 bit 73

Beispiele XIII addjbit 70 add_4bit 73

decod26 42 dreh 134 foerder 124 leds 79,94 leucht 101 leuchtr als Mealy-Automat 118 leuchtr als Medwedew-Automat 106 leuchtr als Moore-Automat 112 n u o 36

28 ODER Gatter 27 u_o_nl 26 UND Gatter 26 und oder 8 XOR 30 bit 50 Boole 11 Boolesche Gleichung 35 Bündeldarstellung 67

Negation

Carrybit Coder 41 CPLD 3

53

168

21 Verzeichnisse

MSB 51 Decoder 41

Dezimalsystem

49

Negationsglied

Dezimalzahlen im Zehnerkomplement 62 D-Flipflop 89 Dualsystem 48 Dualzahl 50 Dualzahl im Zweierkomplement 58 Dualzahlen 49

NOR-Gatter 81

E2CMOS

positive Logik

4 EXKLUSIV-ODER 30 EXOR 31

Folgezustand

28

ODER-Gatter 27 OLMC 5 Optimize 21 Overflow 60 15

Produktterm 114

programmierbare Logikschaltung Prüfprogramm 19

90

FPGA 3

Rechnen mit Dualzahlen 53 RS-Flipflop 81 RS-Latch 80

GAL 3 GAL22V10 3 Generate 22 Grundzustand 79

Schaltnetz 10

Schaltungslogik

13

Schaltungssyntheseprogramm

HDL 17

Hexadezimalsystem

Schaltwerk 79 Schaltzeichen 25

64

sequenzielle Schaltungen Sexagesimalsystem 48

Inverter 28 Istfunktion 19

Siebensegmentanzeige

79

45

Sollfunktion 19 Kombinatorische

Logikschaltung

Latch 80 Lernziele XVI LOGIC2 17, 155 Logikblöcke 3 Logiksimulator 6 Logiktabelle 16

Logische Grundschaltungen LSB 51

Makros 152 Makrozellen 3

Mealy-Automat

117 Medwedew-Automat 94 Moore-Automat 111

8

Stellenwertsystem

49

Takteingang 79 Taktsignal 80 TTL-Logikschaltungen

24

Überlauf 60 Übertragsbit 53 Übungsaufgaben

17

XIII Addition von Dualzahlen 69 code_7 47 deco_7 47 gat opt 39 led0231 161 n_u_o 39 Schaltnetz 1 33

17

1

21.2 Stichwortverzeichnis Schaltwerk led0231 100 schrmea 121, 165 schrmo 116, 164 schritt 105, 161 schrittr 110, 162 XOR mit drei Eingängen 32 Zahlenumwandlung 68 UND-Gatter 26 Unterscheidungsbit 129 Verifikation 19 Volladdierer 70 Wahrheitstabelle 16

169 Werte 83

Wertigkeit

50

XOR-Gatter 30

Zahlenbereichsüberschreitung 54, 60 Zahlenumrechnung 52 Zeitdiagramm 20 Zielhardware 21 Zustände 83

Zustandsdiagramm 90 Zustandsfolgetabelle 88 Zustandsspeicher 95 Zweierkomplement 55