Martin V. Künzli Marcel Meli Vom Gatter zu VHDL Eine Einführung in die Digitaltechnik : iasms!wil5i-8sb*l!f 3. Auflage zh aw
Inhaltsverzeichnis 1. Begriffe und Definitionen 1 1.1 Logische Zustände 1 1.2 Darstellung logischer Verknüpfungen 2 1.2.1 Die Wahrheits-Tabelle 2 1.2.2 Das Venn-Diagramm 3 1.3 Zahlendarstellung im Binärsystem 3 1.4 Zahlendarstellung in Hexadezimal und Oktal 4 1.5 Zahlenumwandlungen 5 1.5.1 Binär zu Hexadezimal 5 1.5.2 Binär zu Oktal 5 1.5.3 Hexadezimal oder Oktal zu Binär 5 1.5.4 Binär zu Dezimal 6 1.5.5 Dezimal zu anderem System 6 1.6 Darstellung von gebrochenen Zahlen 7 1.7 Darstellung negativer Zahlen 8 1.8 Binäre Arithmetik 9 1.9 Übungsaufgaben 13 2. Kombinatorische Logik und Schaltalgebra 15 2.1 Der Begriff der kombinatorischen Logik 15 2.2 Elementare logische Verknüpfungen 16 2.2.1 Die NOT-Funktion 16 2.2.2 Die AND-Funktion 17 2.2.3 Die OR-Funktion 17 2.2.4 Die NAND-Funktion 18 2.2.5 Die NOR-Funktion 18 2.2.6 DieEX-OR-Funktion 19 2.2.7 DieEX-NOR-Funktion 19 2.3 Schaltalgebra 20 2.3.1 Einführung 20 2.3.2 Axiome der Schaltalgebra 21 2.3.3 Theoreme der Schaltalgebra 22 2.4 Logische Funktionen und ihre Darstellung 24 2.4.1 Die disjunktive Normalform 25 2.4.2 Die konjunktive Normalform 27 2.5 Vereinfachung logischer Funktionen 30 2.5.1 Vereinfachung mit Hilfe der Schaltalgebra 30
x Inhaltsverzeichnis 2.5.2 Vereinfachung mit Karnaugh-Diagramm 32 2.5.3 Karnaugh-Diagramm für unvollständige Wahrheitstabellen 36 2.5.4 Die Methode von Quine /McCluskey 39 2.6 Beispiele für kombinatorische Schaltungen 42 2.6.1 Code-Wandler 42 2.6.2 Addierschaltungen 46 2.6.3 Multiplexer 47 2.7 Übungsaufgaben 50 3. Speicherbausteine 53 3.1 Das RS-Flip-Flop 54 3.1.1 Das ungetaktete RS-Flip-Flop 54 3.1.2 Das taktzustandsgesteuerte RS-Flip-Flop 57 3.1.3 Das Master-Slave RS-Flip-Flop 58 3.1.4 Dasflankengetriggerte RS-Flip-Flop 59 3.2 Das D-Flip-Flop 61 3.3 Das JK-Flip-Flop 62 3.4 Ergänzungen und Anwendungen 64 3.4.1 Preset und Clear 64 3.4.2 Der Takt 65 3.4.3 Gebräuchliche Typen 66 3.4.4 Anwendungs-Beispiele 67 3.5 Übungsaufgaben 69 4. Zähler 71 4.1 Synchrone Zähler 72 4.1.1 Elektronischer Würfel (Version 1) 72 4.1.2 Elektronischer Würfel (Version 2) 77 4.1.3 Dekadenzähler mit D-Flip-Flops 80 4.1.4 Binärzähler 81 4.2 Asynchrone Zähler 82 4.2.1 Asynchroner Dekadenzähler 83 4.3 Übungsaufgaben 88 5. Register und Schieberegister 91 5.1 Schieberegister 92 5.7.7 Grundschaltung 92 5.1.2 Universelle Schieberegister 93 5.2 Rückgekoppelte Schieberegister 95 5.2.7 Grundlagen 95 5.2.2 Ringzähler 96 5.2.3 Johnson-Zähler 700
Inhaltsverzeichnis xi 5.2.4 Lineare Schieberegister 102 5.3 Übungsaufgaben 104 6. Automaten 106 6.1 Der Moore-Automat 107 6.2 Synchronisierschaltungen 113 6.2.1 Synchronisation von Impulsen 113 6.2.2 Synchrones Monoflop 114 6.2.3 Synchroner Anderungsdetektor 114 6.2.4 Synchroner Taktumschalter 115 6.2.5 Normierschaltung 116 6.3 Der Mealy-Automat 117 6.4 Übungsaufgaben 126 7. Programmierbare Logik 128 7.1 Programmierbare Speicher 128 7.2 PAL-Bausteine 131 7.3 PLA-Bausteine 133 7.4 Die GAL-Architektur 136 7.4.1 Übersicht über das GAL16V8 137 7.4.2 Die Output Logic Macro Cell (OLMC) 141 7.4.3 Die Programmierung 143 7.4.4 Die Architektur des GAL22V10 146 7.5 Komplexere Bausteine 148 7.5.1 CPLD (Complex Programmable Logic Devices) 148 7.5.2 FPGA (Field Programmable Gate Array) 149 8. Rechnerunterstützter Schaltungsentwurf 152 8.1 Entwurf und Programmierung 152 8.2 Klassische Entwurfs-Software 153 8.3 VHDL 154 8.4 Schaltungsentwicklung mit VHDL 156 8.4.1 Editieren (Design Entry) 156 8.4.2 Kompilieren 157 8.4.3 Simulieren 157 8.4.4 Synthese 157 8.4.5 Programmieren 157 8.5 Programmierung von Schaltungen 158 8.5.1 Prinzip des Programmiervorgangs 755 8.5.2 Programmiergeräte 159 8.5.3 In System Programming 760
xii Inhaltsverzeichnis 9. Hasards 162 9.1 Definition 163 9.2 Beispiele 163 9.2.1 Einfache Hasards der Konjunktiv-Form 163 9.2.2 Einfache Hasards der Disjunktiv-Form 163 9.2.3 Beispiel mit 3 Eingängen 164 9.2.4 Beispiel mit 4 Eingängen 165 9.3 Klassifizierung 165 9.3.1 Statische Hasards (Ausgang soll statisch bleiben) 165 9.3.2 Dynamische Hasards 166 9.3.3 Logikhasards 166 9.3.4 Funktionshasards 766 9.4 Konsequenzen und Vermeidung von Hasards 169 9.4.1 Vermeidung von Logikhasards 169 9.4.2 Vermeidung von Funktionshasards 169 9.5 Übungen 172 10. Einführung in VHDL 173 10.1 Aufbau einer VHDL-Schaltungsbeschreibung 173 10.1.1 Schnittstellenbeschreibung (Entity) 173 10.1.2 Die Funktionsbeschreibung (Architecture) 174 10.2 Grundelemente von VHDL 174 10.2.1 Bezeichner (Identifier 174 10.2.2 Kommentare 175 10.2.3 Daten-Objekte 175 10.2.4 Daten-Typen 176 10.2.5 Operatoren 777 10.2.6 Weitere Sprachkonstrukte 182 10.3 Entwurfsbeispiele 184 10.3.1 Decodierer für einen Hex-Tastaturblock 184 10.3.2 Realisierung eines JK-Flip-Flops 188 10.3.3 Elektronischer Würfel (Version 3) 191 10.3.4 Binärzähler 193 10.4 Übungsaufgaben 194 11. Mehr über VHDL 195 11.1 Mehr über Datentypen und Operatoren 195 11.1.1 Extended-Data-Typen 195 11.1.2 Concatenation (Verkettung, Verknüpfung) 196 11.1.3 Aggregates 797 77.7J Slices 797 11.1.4 Aliases 797
Inhaltsverzeichnis xiii 11.2 Simulation 198 11.2.1 Befehle für Simulation 198 11.2.2 Strukturelle Beschreibung 201 11.3 Modellierung von Automaten 203 11.3.1 Grundgedanken, Initialisierung 203 11.3.2 Moore/Mealy 205 11.4 Mehr Beispiele 214 Symbole und Anschlussbilder 225 IEC-Symbole und Anschlussbilder 225 Ältere Symbole 227 Lösungen der Aufgaben 229