206 56 13MB
German Pages [186] Year 2010
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
f»
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