Springer-Lehrbuch Springer-Verlag Berlin Heidelberg GmbH ON LI NE LIBRARY http:// www.springer.de/engine/ Klaus Urbanski · Roland Woitowitz Digitaltechnik • •• E1n Lehr- und Ubungsbuch Vierte, neu bearbeitete und erweiterte Auflage Mit 315 Abbildungen ~Springer Prof. Dr.-Ing. Klaus Urbanski Prof. Dr.-Ing. Roland Woitowitz Fachhochschule Osnabriick Fachbereich Elektrotechnik AlbrechtstraBe 30 490760snabriick www.et.jh-osnabrueck.de/dum Bibliografische Information der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet iiber <http://dnb.ddb.de> abrufbar. ISBN 978-3-540-40180-3 ISBN 978-3-662-06747-5 (eBook) DOI 10.1007/978-3-662-06747-5 Dieses Werk ist urheberrechtlich geschiitzt. Die dadurch begriindeten Rechte, insbesondere die der Ubersetzung, des Nachdrucks, des Vortrags, der Entnahme von Abbildungen und Tabellen, der Funksendung, der MikroverfIlmung oder Vervielfaltigung auf anderen Wegen und der Speicherung in Datenverarbeitungsanlagen, bleiben, auch bei nur auszugsweiser Verwertung, vorbehalten. Eine Vervielfaltigung dieses Werkes oder von Teilen dieses Werkes ist auch im Einzelfall nur in den Grenzen der gesetzlichen Bestimmungen des Urheberrechtsgesetzes der Bundesrepublik Deutsch land vom 9. September 1965 in der jeweils geltenden Fassung zulăssig. Sie ist grundsătzlich vergiitungspflichtig. Zuwiderhandlungen unterliegen den Strafbestimmungen des Urheberrechts gesetzes. © Springer-Verlag Berlin Heidelberg 1997, 2000 and 2004 Urspriinglich erschienen bei Springer-Verlag Berlin Heidelberg New York 2004 Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Buch berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, daB solche Namen im Sinne der Warenzeichen-und Markenschutz-Gesetzgebung als frei zu betrachten wăren und daher von jedermann benutzt werden diirften. Sollte in diesem Werk direkt oder indirekt auf Gesetze, Vorschriften oder Richtlinien (z.B. DIN, VDI, VDE) Bezug genommen oder aus ihnen zitiert worden sein, so kann der Veriag keine Gewăhr fiir die Richtigkeit, Vollstăndigkeit oder Aktuaiităt iibernehmen. Es empfiehlt sich, gegebenenfalls fiir die eigenen Arbeiten die vollstăndigen Vorschriften oder Richtlinien in der jeweils giiltigen Fassung hinzuzuziehen. Einband-Entwurf: Design & Production, Heidelberg Satz: Digitale Druckvorlage der Autoren, bearbeitet von Marianne Schillinger-Dietrich, Berlin Gedruckt auf săurefreiem Papier 7/3020 Rw 543210 Vorwort Die Digitaltechnik hat seit der Einführung der ersten digitalen integrierten Halb leiterschaltungen im Jahre 1958 einen vehementen Aufschwung genommen. Maß geblich daran beteiligt war der technologische Fortschritt in der Mikroelektronik. Mittlerweile lassen sich integrierte Schaltungen mit mehr als 100 Mio. aktiven Elementen realisieren. Anfanglieh konzentrierte sich diese Technik einerseits auf niedrigintegrierte lo gische Grundschaltungen und andererseits auf hochintegrierte kundenspezifische Schaltungen (Full Custom ICs), aber bereits 1971 kamen die Mikroprozessoren als neuartige programmierbare Universalschaltungen hinzu. Seit einigen Jahren erweitert sich das Anwendungsspektrum zunehmend in Richtung der sog. Semi Custom ICs. Hierbei handelt es sich um hochintegrierte Standardschaltungen, bei denen wesentliche Designschritte mittels Computerun terstützung vom Anwender selbst übernommen werden. Das Buch widmet sichalldiesen Grundlagen der Digitaltechnik unter besonde rer Berücksichtigung der zur Zeit gültigen Normen für Schaltsymbole und For melzeichen. Der Darstellung grundlegender Logikbausteine, wie NAND, NOR, Flipflops und Zähler sowie programmierbarer Bausteine, wie PAL, PLA, LCA schließt sich eine Einführung in die Mikroprozessor-und Mikrocontroller-Technik an. Einen besonderen Schwerpunkt bildet der systematische Entwurf von Schalt netzen und Schaltwerken unter Einsatz programmierbarer Bausteine. Zahlreiche Beispiele hierzu erleichtern das Verständnis für Aufbau und Funktion dieser mo dernen digitalen Systeme. Zu allen Kapiteln werden Übungsaufgaben mit ausführlichen Musterlösungen angeboten. Daher eignet sich dieses Buch besonders zum Selbststudium. Es wen det sich damit sowohl an Hochschulstudenten der Elektrotechnik oder Informati onstechnik im Hauptstudium, als auch an den in der Berufspraxis stehenden Inge nieur, der seinen Wissensstand auf diesem Gebiet aktualisieren will. Besonderer Dank gebührt Herrn Dr.-Ing. H. Kopp, der dieses Buch durch wert volle Anregungen und vielfaltige Unterstützung bereichert hat. Auch den Studen ten der Fachhochschule Osnabrück gilt unser Dank für ihre Mitarbeit und mannig fache Hilfestellung. Bedanken möchten wir uns ebenfalls beim Verlag für die gute Zusammenarbeit. Osnabrück, Dezember 1992 Klaus Urbanski, Roland Woitowitz VI Vorwort In der hier vorliegenden zweiten Auflage wurde das Kapitel über digitale Halbleiterspeicher überarbeitet und auf den aktuellen Stand gebracht. Dieses war erforderlich, da in den letzten Jahren neue Speicherarchitekturen entwickelt wor den sind, die den Geschwindigkeitsanforderungen moderner schnellgetakteter Rechner genügen. Darüber hinaus wurde das Kapitel mit Übungsaufgaben erweitert. Es enthält nun 31 umfangreiche Aufgabenstellungen aus allen Bereichen der Digitaltechnik mit ausführlichen Musterlösungen. Osnabrück, April 1997 Klaus Urbanski, Roland Woitowitz Die dritte Auflage wurde bereits nach 3 Jahren nötig, da die Autoren neuere Entwicklungen im Bereich der Digitaltechnik an die Leser weitergeben wollen. Hierzu gehört die Entwurfs- und Simulationssprache VHDL, die mittlerweile breiten Einsatz in der digitaltechnischen Praxis gefunden hat. Sie wird in einem gesonderten Kapitel zunächst in elementarer Form, dann aber auch weiterführend dargestellt, so daß neben dem Anfänger auch der erfahrene Praktiker in diesem neuen Bereich Unterstützung findet. Sie wird darüber hinaus in mehreren Kapiteln bei Analyse- und Synthese-Aufgaben anhand praktischer Beispiele angewendet. Ein weiteres neues Kapitel widmet sich dem Gebiet der Analog-Digital- und Digital-Analog-Umsetzer. Auch hir haben in den letzten Jahren neue, richtungs weisende Entwicklungen stattgefunden, wie an den Beispielen Delta-Sigma- oder Pipeline-Umsetzern erkennbar ist. Die Gesamtthematik, einschließlich der Abtast Halteglieder wird in Kap. 8 systematisch aufgearbeitet. Die Bereiche programmierbare Logik und digitale Halbleiterspeicher wurden ebenfalls überarbeitet. Osnabrück, Februar 2000 Klaus Urbanski, Roland Woitowitz Nach dem Mooreschen Gesetz verdoppelt sich die Speicherdichte alle 18 Monate. Auch die Informationsflut nimmt ständig zu, so dass wir es für sinnvoll halten, nach weiteren 36 Monaten die vierte Auflage mit zahlreichen Erweiterungen her auszubringen. Die neuen Bereiche sind hier tabellarisch aufgelistet: • Erweiterung des Kapitels 4 "VHDL als Entwurfs- und Simulationssprache" um die Komponente Testbenches. Dazu werden ausführliche Übungsaufga ben vorgestellt, die auch dem Anfanger einen Einstieg in die Simulations techniken mit Testbenches ermöglichen. • In dem Kapitel 7 "Digitale Halbleiterspeicher" sind die Flashspeicher (NOR und NAND-Typen), das Double Date Rate SDRAM sowie die neu entwik- Vorwort VII kelten nichtflüchtigen Typen FRAM und MRAM zusätzlich aufgenommen worden. • Völlig überarbeitet wurde das Kapitel 9 "Mikroprozessoren und Mikrocon troller". Der Mikrocontroller 8051 wird nun hardware- und softwaremäßig detailliert dargestellt, so dass der Leser anband des Kapitels ohne weitere Datenbücher in der Lage ist, Hardware und Software für Mikrocontroller Applikationen zu entwickeln. Neben der Hardwarebeschreibung bildet die modulare Programmentwicklung in Assembler einen Schwerpunkt in diesem Kapitel. Aufgrund der zahlreichen zusätzlichen Komponenten mussten auch Kürzungen vorgenommen werden. Das Kapitel 10 mit den Übungsaufgaben ist gestrafft wor den. Es sind Übungsaufgaben ausgelagert, andere sind im Lösungsteil gekürzt und einige sind neu aufgenommen worden. Das Kapitel 10 aus der dritten Auflage steht dem Leser weiterhin auf unserer Internetseite zur Verfügung. Zusätzlich bieten wir dem Leser auf der Hornepage zahlreiche VHDL-Modelle und Testbenches zum Downloaden an. Sie finden zusätzliche Übungsaufgaben, Beiblätter, VHDL-Modelle sowie As sembler-und C-Programme unter der Homepage: http://www.et.fh-osnabrueck.de/dum http://www. springer .de/cgi/ svcat/bag generate.pl ?ISBN =3-540-40180-6 Osnabrück, im Sommer 2003 Klaus Urbanski, Roland Woitowitz Inhaltsverzeichnis 1 Zahlensysteme ........................................................................................................ 1 1.1 Allgemeines Zahlensystem.............................................................................. 1 1.2 Dual-, Oktal-und Hexadezimalsystem............................................................ 2 1.3 Konvertierung zwischen den Zahlensystemen................................................. 3 1.4 Arithmetische Operationen im Dualsystem..................................................... 5 1.4.1 Die duale Addition............................................................................... 5 1.4.2 Die duale Subtraktion........................................................................... 5 1.4.3 Die Multiplikation von Dualzahlen (Booth-Algorithmus) ................... 10 1.4.4 Die Division von Dualzahlen (Restoring-Methode)............................. 11 1.5 Die Darstellung gebrochener Zahlen im Dualsystem...................................... 13 2 Logische Funktionen.............................................................................................. 15 2.1 Grundbegriffe.................................................................................................. 15 2.1.1 Logik-Pegel und Logik-Zustand einer binären Variablen.................... 15 2.1.2 Zuordnungssysteme...... .. .. .. ......... .. .. .. .. .. .. .. ......... .. .. ............................ .. 16 2.1.3 Signalnamen in der Digitaltechnik....................................................... 20 2.2 Vergleich zwischen analoger und digitaler physikalischer Größe................... 20 2.3 Schaltalgebra................................................................................................... 22 2.3.1 Verknüpfungszeichen........................................................................... 22 2.3.2 Definition der logischen Funktionen.................................................... 24 2.3.3 Schaltsymbole ...................................................................................... 25 2.3.4 Rechenregeln der Schaltalgebra ........................................................... 28 2.3.5 Logikstufen .......................................................................................... 30 2.3.6 Realisierung der Grundverknüpfungen in NAND-und NOR-Technik 31 2.3.7 Normalform einer logischen Funktion................................................. 33 2.4 Minimieren logischer Funktionen ... .. .... .... .. .. .... ... .. .. .. .. .. .. .. ............. ................ 35 2.4.1 Allgemeines . .. .. ........... .. .. .. ................... .. .. .. .. .... .... ............... ............ .. ... 35 2.4.2 Minimierungsverfahren ........................................................................ 37 2.4.3 Kamaugh-Veitch-Diagramm (KV-Diagramm) .................................... 38 2.4.3.1 KV-Diagramrn für zwei Eingangsvariablen ............................ 39 2.4.3.2 KV-Diagramrn für drei Eingangsvariablen.............................. 41 2.4.3.3 KV-Diagramm für vier Eingangsvariablen.............................. 44 2.4.3.4 KV -Diagramm für fünf Eingangsvariablen ............................. 46 3 Technische Realisierung digitaler Schaltungen................................................... 49 3.1 Überblick über die technologische Entwicklung............................................. 49 3.2 Realisierungskonzepte nach Einführung integrierter Schaltkreise................... 49 3.3 Charakteristische Eigenschaften digitaler integrierter Schaltkreise................. 52 3.3.1 Lastfaktoren ......................................................................................... 53 3.3.2 Störspannungsabstand .......................................................................... 53 3.3.3 Schaltzeiten .......................................................................................... 54 X Inhaltsverzeichnis 3.4 Bausteinfamilien .............................................................................................. 56 3.4.1 Transistor-Transistor-Logik (TTL) ....................................................... 56 3.4.1.1 Digitale Schaltungen in Standard-TTL .................................... 56 3.4.1.2 Digitale Schaltungen in Schottky-TTL..................................... 57 3.4.1.3 TTL-Schaltungen mit spezieller Ausgangsstufe ....................... 59 3.4.1.4 Realisierung der Pegel-Zustände an TTL-Eingängen............... 61 3.4.2 Integrierte Schaltungen in MOS-Technik ............................................. 64 3.4.3 Emitter Coupled Logic (ECL)............................................................... 69 3.4.4 Trends bei der technologischen Weiterentwicklung............................. 71 3.5 Allwenderspezifische Bausteine (Application Specific ICs) ............................ 71 3.5.1 FullcustomiCs...................................................................................... 72 3.5.2 Gate Array............................................................................................. 72 3.5.3 Standardzellen IC.................................................................................. 72 3.6 Programmierbare Logik................................................................................... 73 3.6.1 Programmahle Logic Device PLD ........................................................ 73 3.6.2 Complex Programmahle Logic Device (CPLD) ................................... 79 3.6.3 Field Programmahle Gate Array FPGA ................................................ 81 3.6.3.1 Allgemeiner Aufbau eines FPGAs ........................................... 81 3.6.3.2 FPGA mit Antifuse-Link.......................................................... 81 3.6.3.3 FPGA mit SRAM-Verbindungselement................................... 84 4 VHDL als Entwurfs-und Simulationssprache ..................................................... 91 4.1 Einführung in VHDL ....................................................................................... 91 4.2 Motivation zum Erlernen von VHDL in einem Grundkurs.............................. 91 4.3 Grundlagen....................................................................................................... 92 4.4 Entity-Deklaration............................................................................................ 93 4.4.1 Einfache Entity-Deklaration ohne Parameterübergabe ......................... 96 4.4.2 Erweiterte Entity-Deklaration mit Parameterübergabe ......................... 97 4.4.3 Entity-Declaration mit Entity-Anweisungen......................................... 97 4.5 Architecture............................................... ....................................................... 98 4.5.1 Verhaltensbeschreibung (Behavioral description) ................................ 98 4.5.2 Nebenläufige Anweisungen in der Verhaltensbeschreibung................. 98 4.5.2.1 Nebenläufige Signalzuweisung ................................................ 99 4.5.2.2 When-Eise-Anweisung ............................................................ 100 4.5.2.3 With-Select-When-Anweisung ................................................ 100 4.5.2.4 Anwendungsbeispiele mit nebenläufigen Anweisungen.......... 101 4.5.3 Prozess-Anweisung............................................................................... 103 4.5.4 Sequentielle Anweisungen in der Verhaltensbeschreibung................... 104 4.5.4.1 Sequentielle Signalzuweisung.................................................. 104 4.5.4.2 Sequentielle Variablenzuweisung ............................................ 105 4.5.4.3 If-Then-Else-Anweisung .......................................................... 105 4.5.4.4 Case-When-Anweisung............................................................ 105 4.5.4.5 For-Loop-Anweisung............................................................... 106 4.5.4.6 While-Loop-Anweisung........................................................... 106 4.5.4.7 Next-und Exit-Anweisung....................................................... 106 4.5.4.8 Anwendungsbeispiele mit Prozess und sequentiellen Anweisungen ........................................................................... 106 4.5.5 Strukturbeschreibung (Structural description) ...................................... 107 4.6 Unterprogramme .............................................................................................. 110 4.6.1 Prozeduren............................................................................................ 110 4.6.2 Funktionen............................................................................................ 111 Inhaltsverzeichnis XI 4.7 Weiterführende Kapitel................................................................................... 113 4.7.1 Assertion-und Report-Anweisung ....................................................... 113 4.7.2 Alias-Deklaration................................................................................. 114 4.7.3 Überladen (Overloading) ..................................................................... 114 4.7.4 Auflösungsfunktionen (Resolution functions)...................................... 115 4.7.5 PackageundUse-Anweisung ............................................................... 115 4. 7.6 Bibliotheken......................................................................................... 118 4.7.7 Generate-Anweisung............................................................................ 118 4.7.8 Block-Anweisung................................................................................. 119 4.7.9 Konfiguration....................................................................................... 119 4.7.9.1 Konfiguration für VHDL-Modelle mit Verhaltensbeschreibung..... .. .... .. .... .. .. ...................................... 120 4.7.9.2 Komponenten-Konfiguration.................................................. 120 4.7.9.3 Block-Konfiguration............................................................... 122 4.8 VHDL-Grundbegriffe zum Nachschlagen....................................................... 124 4.8.1 Bezeichner (Identifier) ......................................................................... 124 4.8.2 Datenobjekte und Objektklassen .......................................................... 125 4.8.2.1 Konstanten.............................................................................. 126 4.8.2.2 Variablen................................................................................. 126 4.8.2.3 Signale..................................................................................... 126 4.8.3 Datentypen ........................................................................................... 127 4.8.3.1 Skalare Datentypen (Scalar types)........................................... 128 4.8.3.2 Zusammengesetzte Datentypen (Composite types) ................. 130 4.8.3.3 Subtypes .................................................................................. 133 4.8.3.4 Attribute.................................................................................. 134 4.8.4 Operatoren und Operanden.................................................................. 135 4.9 Testen von VHDL-Modellen........................................................................... 137 4.9.1 Simulationstechniken ........................................................................... 137 4.9.2 Testbench mit Testvektoren ................................................................. 138 4.9.3 Testbench mit Ein-und Ausgabedatei.................................................. 141 5 Kombinatorische Schaltungen.............................................................................. 147 5.1 Codierschaltungen........................................................................................... 147 5.1.1 AlphanumerischerCode ....................................................................... 147 5.1.2 Numerischer Code................................................................................ 148 5.2 Multiplexer und Demultiplexer ....................................................................... 153 5.2.1 Multiplexer........................................................................................... 153 5.2.2 Demu1tiplexer....................................................................................... 155 5.3 Addierer........................................................................................................... 156 6 Sequentielle Schaltungen....................................................................................... 161 6.1 Elementare Schaltwerke .. ......... .. .. .. .. ..................... .. .... ............... .. .... ............... .161 6.1.1 Digitale Oszillatoren . .... ........ ............................... .... ............................ 161 6.1.2 Monostabile Kippstufen (Monoflops) .. .. ....... .. ......... ......... .. .. ......... .. .. .. 164 6.1.3 Bistabile Kippstufen (Flipflops)........................................................... 165 6.1.3.1 Ungetaktetes RS-Flipflop (RS-Latch) ..................................... 166 6.1.3.2 Einzustandsgesteuerte Flipflops.............................................. 169 6.1.3.3 Einflankengesteuerte Flipflops................................................ 171 6.2 Zähler.............................................................................................................. 180 6.2.1 Asynchrone Zähler............................................................................... 180 6.2.1.1 Asynchroner Dualzähler.......................................................... 180