Vorlesungsskript Digitaltechnik Prof. Dr.-Ing. Frank Gustrau FH Dortmund http://www.fh-dortmund.de/gustrau (Wintersemester 2012) 1. Oktober 2012 Inhaltsverzeichnis 1 Einleitung 1.1 Definition analoger und digitaler Signale 1.2 Abtastung, Quantisierung und Codierung 1.2.1 Abtastung . . . . . . . . . . . . . 1.2.2 Quantisierung . . . . . . . . . . . 1.2.3 Codierung . . . . . . . . . . . . . 1.3 Zentrale Begriffe der Digitaltechnik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 4 4 4 4 5 2 Zahlensysteme 2.1 Römisches Zahlensystem . . . . . . . . . . . . . . . . . . . . . 2.2 Dezimalsystem . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Dualsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4 Oktalsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5 Hexadezimalsystem . . . . . . . . . . . . . . . . . . . . . . . . 2.6 Rationale Zahlen . . . . . . . . . . . . . . . . . . . . . . . . . 2.7 Umrechnung zwischen polyadischen Zahlensystemen . . . . . . 2.7.1 Umwandlung natürlicher Dezimalzahlen ins Dualsystem 2.7.2 Rationale Zahlen . . . . . . . . . . . . . . . . . . . . . 2.8 Darstellung negativer ganzer Zahlen . . . . . . . . . . . . . . . 2.8.1 Vorzeichen und Betrag . . . . . . . . . . . . . . . . . . 2.8.2 Zweierkomplementdarstellung . . . . . . . . . . . . . . 2.9 Rechnen im Dualsystem . . . . . . . . . . . . . . . . . . . . . 2.9.1 Addition . . . . . . . . . . . . . . . . . . . . . . . . . . 2.9.2 Subtraktion . . . . . . . . . . . . . . . . . . . . . . . . 2.9.2.1 Direkte Subtraktion . . . . . . . . . . . . . . 2.9.2.2 Rechnen mit dem Zweierkomplement . . . . . 2.10 Gleitkommazahlen im IEEE-754 Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8 9 9 10 10 11 11 11 12 13 13 13 15 15 16 16 17 17 . . . . . 18 18 18 19 19 19 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Codes und Codierung 3.1 Rechencodes . . . . . . . . . . . . . . . . . . . . . 3.1.1 BCD-Code, 3-Exzeß-Code und Aiken-Code 3.2 Übertragungscodes für alphanumerische Zeichen . 3.2.1 Morse-Code . . . . . . . . . . . . . . . . . 3.2.2 7-Bit-ASCII-Code . . . . . . . . . . . . . . i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . INHALTSVERZEICHNIS 3.3 3.2.3 Unicode . . . . . . . . . . . Codesicherung . . . . . . . . . . . . 3.3.1 Minimale Hamming-Distanz 3.3.2 Gleichgewichtige Codes . . . 3.3.3 Paritätsbits . . . . . . . . . 3.3.4 Blockprüfung . . . . . . . . 3.3.5 Hamming-Code . . . . . . . ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Schaltalgebra 4.1 Begriffe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Logische Grundverknüpfungen . . . . . . . . . . . . . . . . . 4.2.1 Negation, NICHT-Verknüpfung, NOT . . . . . . . . . 4.2.2 Disjunktion, ODER-Verknüpfung, OR . . . . . . . . 4.2.3 Konjunktion, UND-Verknüpfung, AND . . . . . . . . 4.3 Abgeleitete Verknüpfungen . . . . . . . . . . . . . . . . . . . 4.3.1 NAND-Verknüpfung . . . . . . . . . . . . . . . . . . 4.3.2 NOR-Verknüpfung . . . . . . . . . . . . . . . . . . . 4.3.3 Äquivalenz-Verknüpfung . . . . . . . . . . . . . . . . 4.3.4 Antivalenz-Verknüpfung . . . . . . . . . . . . . . . . 4.4 Schaltverhalten bei positiver und negativer Logik . . . . . . 4.5 Rechenregeln der Schaltalgebra . . . . . . . . . . . . . . . . 4.5.1 Bedeutung der NOR und NAND-Verknüpfung für die 5 Schaltnetze 5.1 Beschreibung logischer Funktionen . . . . . . . 5.1.1 Funktionstabelle . . . . . . . . . . . . . 5.1.2 Minterme und disjunktive Normalform . 5.1.3 Maxterme und konjunktive Normalform 5.2 Vereinfachung logischer Schaltungen . . . . . . . 5.2.1 Gesetze der Schaltalgebra . . . . . . . . 5.2.2 KV-Diagramme . . . . . . . . . . . . . . 5.2.3 Methode von Quine . . . . . . . . . . . . 5.3 Nicht vollständig spezifizierte Funktionen (Don’t 5.4 Realisierung mit Grundverknüpfungselementen . 5.5 Realisierung mit NAND und NOR . . . . . . . 5.5.1 Realisierung mit NAND . . . . . . . . . 5.5.2 Realisierung mit NOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . care Felder) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Praxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 20 21 21 22 23 24 . . . . . . . . . . . . . 27 27 27 28 28 29 30 30 30 31 31 32 32 33 . . . . . . . . . . . . . 36 36 36 37 37 37 37 38 41 42 43 44 44 45 6 Codewandler 47 6.1 Entwurfsverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 6.2 Aiken-BCD-Codewandler . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 6.3 BCD-7-Segment-Codewandler . . . . . . . . . . . . . . . . . . . . . . . . . 50 INHALTSVERZEICHNIS iii 7 Schaltwerke 7.1 Bistabile Kippstufen . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.1 Konventionen und Klassifizierung . . . . . . . . . . . . . . . 7.1.2 Nicht-taktgesteuerte Flipflops . . . . . . . . . . . . . . . . . 7.1.2.1 NOR-Latch . . . . . . . . . . . . . . . . . . . . . . 7.1.2.2 NAND-Latch . . . . . . . . . . . . . . . . . . . . . 7.1.3 Taktzustandsgesteuerte Flipflops . . . . . . . . . . . . . . . 7.1.3.1 SR-Flipflop . . . . . . . . . . . . . . . . . . . . . . 7.1.3.2 E-Flipflop . . . . . . . . . . . . . . . . . . . . . . . 7.1.3.3 SR-Flipflop mit dominantem Rücksetzeingang . . . 7.1.3.4 D-Flipflop . . . . . . . . . . . . . . . . . . . . . . . 7.1.4 Taktflankengesteuerte Flipflops . . . . . . . . . . . . . . . . 7.1.4.1 Impulsglieder . . . . . . . . . . . . . . . . . . . . . 7.1.4.2 Einflankengesteuertes SR-Flipflop . . . . . . . . . . 7.1.4.3 Einflankengesteuertes D-Flipflop . . . . . . . . . . 7.1.4.4 Einflankengesteuertes T-Flipflop . . . . . . . . . . 7.1.4.5 Einflankengesteuertes JK-Flipflop . . . . . . . . . . 7.1.4.6 Zweiflankengesteuertes (Master-Slave) SR-Flipflop . 7.1.4.7 Zweiflankengesteuertes (Master-Slave) JK-Flipflop . 7.1.5 Zeitablaufdiagramme . . . . . . . . . . . . . . . . . . . . . . 7.1.6 Charakteristische Gleichung . . . . . . . . . . . . . . . . . . 7.2 Monostabile Kippstufe . . . . . . . . . . . . . . . . . . . . . . . . . 7.2.1 Nicht-nachtriggerbares Monoflop . . . . . . . . . . . . . . . . 7.2.2 Nachtriggerbares Monoflop . . . . . . . . . . . . . . . . . . . 7.3 Verzögerungsglieder . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.4 Astabile Kippstufe . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Zähler 8.1 Zählerarten . . . . . . . . . . . . . . . . . . . . . . . . . 8.2 Asynchrone Zähler . . . . . . . . . . . . . . . . . . . . . 8.2.1 3-Bit Dualvorwärtszähler . . . . . . . . . . . . . . 8.2.2 3-Bit Dualrückwärtszähler . . . . . . . . . . . . . 8.2.3 3-Bit Dualzähler mit umschaltbarer Zählrichtung 8.2.4 BCD-Vorwärtszähler . . . . . . . . . . . . . . . . 8.2.5 Dekaden-Zähler . . . . . . . . . . . . . . . . . . . 8.2.6 Modulo-n-Zähler . . . . . . . . . . . . . . . . . . 8.3 Synchrone Zähler . . . . . . . . . . . . . . . . . . . . . . 8.3.1 3-Bit Dualvorwärtszähler . . . . . . . . . . . . . . 8.3.2 3-Bit Dualrückwärtszähler . . . . . . . . . . . . . 8.4 Entwurfsverfahren . . . . . . . . . . . . . . . . . . . . . . 8.4.1 Entwurfsverfahren mit Hilfe der charakteristischen 8.4.2 Vereinfachtes Entwurfsverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Gleichung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 51 51 53 53 54 54 54 56 56 56 57 57 58 59 59 59 60 61 61 62 63 63 64 64 66 . . . . . . . . . . . . . . 67 67 67 67 68 69 70 71 72 73 73 74 74 74 77 INHALTSVERZEICHNIS 9 Einstieg in die Automatentheorie 9.1 Autonomer Automat, Moore-, Mealy und 9.2 Zustandsdiagramme . . . . . . . . . . . . 9.3 Zustandsfolgetabelle . . . . . . . . . . . 9.4 Entwurf mit JK- und D-Flip-Flops . . . iv Medwedjew-Automat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Ausgewählte Schaltungen 10.1 Schieberegister . . . . . . . . . . . . . . . . . . . . . . 10.1.1 Serielle Ein- und Ausgabe . . . . . . . . . . . . 10.1.2 Serielle und parallele Ein- und Ausgabe . . . . . 10.1.3 Ringregister . . . . . . . . . . . . . . . . . . . . 10.2 Frequenzteiler . . . . . . . . . . . . . . . . . . . . . . . 10.2.1 Begriffe . . . . . . . . . . . . . . . . . . . . . . 10.2.2 Teilerverhältnis 1:2n . . . . . . . . . . . . . . . 10.2.3 Teilerverhältnis 1:3 . . . . . . . . . . . . . . . . 10.2.4 Entwurfsverfahren . . . . . . . . . . . . . . . . 10.3 Rechenschaltungen . . . . . . . . . . . . . . . . . . . . 10.3.1 Addierschaltungen . . . . . . . . . . . . . . . . 10.3.1.1 Halbaddierer . . . . . . . . . . . . . . 10.3.1.2 Volladdierer . . . . . . . . . . . . . . . 10.3.1.3 Parallele 4-Bit Addierschaltung . . . . 10.3.1.4 Serielle 4-Bit Addierschaltung . . . . . 10.3.2 Subtrahierschaltungen . . . . . . . . . . . . . . 10.3.2.1 Halbsubtrahierer . . . . . . . . . . . . 10.3.2.2 Vollsubtrahierer . . . . . . . . . . . . . 10.3.2.3 4-Bit Subtrahierschaltung . . . . . . . 10.3.2.4 Subtrahierschaltung mit Volladdierern 10.3.2.5 Addier-Subtrahierwerk . . . . . . . . . 10.4 Digitale Auswahl- und Verbindungsschaltungen . . . . 10.4.1 Multiplexer . . . . . . . . . . . . . . . . . . . . 10.4.1.1 4-Bit-zu-1-Bit-Multiplexer . . . . . . . 10.4.1.2 2x2-Bit-zu-2-Bit-Multiplexer . . . . . . 10.4.2 Demultiplexer . . . . . . . . . . . . . . . . . . . 10.4.2.1 1-Bit-zu-4-Bit-Demultiplexer . . . . . 11 Programmierbare Logische Schaltungen (PLD) 11.1 Einleitung . . . . . . . . . . . . . . . . . . . . . 11.2 Grundlagen . . . . . . . . . . . . . . . . . . . . 11.3 Allgemeine PLD-Schaltung . . . . . . . . . . . . 11.4 Einteilung von PLDs . . . . . . . . . . . . . . . 11.4.1 PAL/GAL Schaltungen . . . . . . . . . . 11.4.2 PROM Schaltungen . . . . . . . . . . . . 11.4.3 FPLA Schaltungen . . . . . . . . . . . . 11.5 Programmierung von PLDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 80 80 80 80 . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 81 81 82 83 84 84 84 85 85 86 86 86 86 87 88 88 88 89 89 90 91 92 92 92 93 93 93 . . . . . . . . 95 95 95 97 98 98 99 99 99 INHALTSVERZEICHNIS v 11.5.1 Beispiel: PAL16L8 . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 11.6 FPGAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 12 Schaltkreisfamilien 12.1 Eigenschaften digitaler Schaltungen . 12.1.1 Allgemeines . . . . . . . . . . 12.1.2 Leistungsaufnahme . . . . . . 12.1.3 Pegelbereiche . . . . . . . . . 12.1.4 Schaltzeiten . . . . . . . . . . 12.1.4.1 Signallaufzeit . . . . 12.1.4.2 Signalübergangszeit 12.1.5 Lastfaktoren . . . . . . . . . . 12.2 Dioden-Transistor-Logik (DTL) . . . 12.2.1 Passives ODER-Gatter . . . . 12.2.2 Aktive NICHT-Stufe . . . . . 12.2.3 Aktives NOR-Gatter . . . . . 12.2.4 Passives UND-Gatter . . . . . 12.2.5 Aktives NAND-Gatter . . . . 12.3 Transistor-Transistor-Logik (TTL) . 12.4 MOS-Schaltungen . . . . . . . . . . . 12.4.1 Einführung . . . . . . . . . . 12.4.2 CMOS-Nicht-Stufe . . . . . . 12.4.3 CMOS-NAND-Gatter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 103 103 103 103 104 104 104 105 106 106 107 108 109 110 110 111 111 112 112 13 Hardwarebeschreibungssprachen 113 13.1 VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 13.2 Xilinx ISE WEBPACK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 A Code-Tabellen 114 A.1 Codes zur Darstellung dezimaler Ziffern . . . . . . . . . . . . . . . . . . . . 114 Kapitel 1 Einleitung 1.1 Definition analoger und digitaler Signale Ein Signal kann sowohl in Bezug auf seinen Wertebereich (y-Achse) als auch in Bezug auf seinen Definitionsbereich auf der Zeitachse (x-Achse) kontinuierlich (d.h. nicht abzählbar, stetig, fortdauernd) oder diskret (d.h. nicht-kontinuierlich, abzählbar) sein. Abbildung 1.1: Zeit- und wertkontinuierliche Signale • Digitale Signale sind wertdiskret. • Analoge Signale sind wertkontinuierlich. Sind nur 2 Werte auf der y-Achse möglich, dann wird ein solches wertdiskretes (digitales) Signal binär genannt. Die Bilder 1.2-1.5 zeigen digitale und analoge Signale im weiteren und engeren Sinne. 1 KAPITEL 1. EINLEITUNG Abbildung 1.2: Analoges Signal im eigentlichen Sinne (zeit- und wertkontinuierlich) Abbildung 1.3: Digitales Signal im weiteren Sinne (zeitkontinuierlich und wertdiskret) 2 KAPITEL 1. EINLEITUNG Abbildung 1.4: Analoges Signal im weiteren Sinne (zeitdiskret und wertkontinuierlich) Abbildung 1.5: Digitales Signal im eigentlichen Sinne (zeit- und wertdiskret) 3 KAPITEL 1. EINLEITUNG 1.2 4 Abtastung, Quantisierung und Codierung Die Begriffe Abtastung und Quantisierung tauchen bei der Umwandlung eines analogen in ein digitales Signal auf, Codierung bei der Umwandlung eines digitalen Signals in ein anderes digitales Signal. Da die meisten physikalischen Signale in der Regel analog sind, müssen sie für die weitere Verarbeitung in der Informationstechnik in digitale Signale umgewandelt werden. 1.2.1 Abtastung Abtastung ist die Ermittlung des aktuellen Signalwertes zu bestimmten Zeitpunkten n·TA . Dies entspricht dem Übergang des Signals in Bild 1.2 zu Bild 1.4. Nach der Abtastung ist das Signal also immer noch analog. Für die notwendige Zahl der Abtastungen pro Zeiteinheit ist die größte Frequenz maßgebend, die das Informationssignal enthält. (Das Informationssignal muss also bandbegrenzt sein.) Die Abtastfrequenz muss mindestens doppelt so groß gewählt werden, wie die größte Signalfrequenz. Dies wird in dem sogenannten Abtasttheorem beschrieben. Wir das Abtasttheorem beachtet, so kann aus den Abtastwerten das ursprüngliche Signal vollständig zurückgewonnen werden. Das Abtasttheorem lautet: fA = 1 ≥ 2fmax TA (1.1) mit dem Abtastintervall TA und der maximalen Signalfrequenz fmax . Beispiel aus dem Audiobereich: Das menschliche Ohr kann Signale bis ca. 20 kHz wahrnehmen. Sollen diese Signale rekonstruierbar abgetastet werden, so muss die Abtastfrequenz mindestens 40 kHz betragen. (Abtastfrequenz beim CD-Player: 44 kHz) 1.2.2 Quantisierung Quantisierung bedeutet den Übergang vom abgetasteten analogen Signal zum wertdiskreten digitalen Signal. Dies entspricht dem Übergang des Signals in Bild 1.4 zu Bild 1.5. Der Wertebereich des Signals wird in Quantisierungsintervalle aufgeteilt, und alle in einem Intervall liegenden Werte werden auf einen Quantisierungswert abgebildet. Je nach Art der Anwendung sind die Abstände der Quantisierungsstufen linear oder nicht linear (häufig logarithmisch). Mit Erhöhung der Anzahl der Intervalle nimmt der sogenannte Quantisierungsfehler ab, eine exakte Rekonstruktion von wert- und zeitkontinuierlichen Signalen ist aber i.a. nicht möglich. 1.2.3 Codierung Um aus dem nun vorliegenden wert- und zeitdiskreten Signal mit mehr als zwei Wertstufen ein binäres, zeitdiskretes Signal zu erzeugen, müssen die verschiedenen Stufen codiert KAPITEL 1. EINLEITUNG 5 werden. Bild 1.6 zeigt ein Beispiel bei dem ein digitales Signal mit sieben Diskretisierungsstufen über eine Code-Tabelle in ein binäres Signal umgewandelt wird. Jeder diskrete Wert wird dabei durch eine Kombination von drei binären Stellen ersetzt. Abbildung 1.6: Beispiel für eine Codierung zur Gewinnung eines binären Signals 1.3 Zentrale Begriffe der Digitaltechnik Digitale elektrische Größe Elektrische (physikalische) Größe (Spannung, Strom, Impedanz) mit einer endlichen Anzahl nicht überlappender Wertebereiche. Binäre elektrische Größe Digitale (physikalische) elektrische Größe mit nur zwei möglichen Wertebereichen, oft als Low (L)- und High (H)-Bereich bezeichnet. L-Bereich Derjenige der beiden Wertebereiche einer binären elektrischen Größe, der näher bei −∞ liegt. H-Bereich Derjenige der beiden Wertebereiche einer binären elektrischen Größe, der näher bei +∞ liegt. Bei elektrischen Systemen werden die binären Variablen häufig durch zwei unterschiedliche Spannungsniveaus (Potentiale) festgelegt. Dabei ist zu beachten, dass die Schaltkreise beide Potentiale auch unter ungünstigsten Umständen einwandfrei erkennen und verarbeiten müssen. Aus diesem Grund werden zwei Spannungsbereiche (anstelle von festen KAPITEL 1. EINLEITUNG 6 Spannungswerten) festgelegt, in denen sich das Signal befinden kann. Dazwischen liegt ein verbotenes Gebiet (deadband, deadzone). Beispiel: TTL (Transistor-Transistor-Logik): Low = 0 − 0,8 V; High = 2 − 5 V (siehe Bild 1.7) Abbildung 1.7: Typische Spannungsbereiche zur Darstellung binärer, digitaler Signale Die Höhe der Signal- bzw. Betriebsspannung beeinflusst in unterschiedlicher Weise Störsicherheit, Umschaltzeit und Verlustleistung. Die folgende Tabelle zeigt den Einfluss der Signal- bzw. Betriebsspannung auf die Schalteigenschaften. Geforderte Eigenschaft Notwendige Signal-bzw. Betriebsspannung hohe Störsicherheit groß kleine Umschaltzeiten klein kleine Verlustleistungen klein Die Betriebsspannung stellt also einen Kompromiss dar (siehe auch Kapitel 12.1). Die Zuordnung der L- und H-Pegel zu den logischen Zuständen 0 und 1 ist auf zwei Arten möglich: Positive Logik L = 0 und H = 1 Negative Logik H = 0 und L = 1 Im weiteren wird positive Logik bevorzugt. Die logischen Zustände wurden und werden nicht nur mit Symbolen 0 und 1 bezeichnet, sondern auch mit Ja/Nein, wahr/falsch, True/False. Bit: Ein Bit ist die kleinste Darstellungseinheit für binäre Daten. Ein Bit kann genau zwei Werte annehmen, die Werte 0 oder 1. Das Wort Bit stammt von dem englischen binary digit, zweiwertige Zahl. Datenwort: Eine Folge von Bits, von Zeichen oder von Bytes wird als Wort bezeichnet. Die Länge eines Wortes wird in Bit angegeben (siehe oben). KAPITEL 1. EINLEITUNG 7 Wert Ursprungsmenge Codierung Bildmenge; Code 3 2 1 0 -1 -2 -3 111 101 100 110 010 011 001 Tabelle 1.1: Beispiel für einen Code. Byte: Ein Wort der Länge 8 Bit wird im allgemeinen als 1 Byte bezeichnet. Tetrade: Ein Wort der Länge 8 Bit kann in zwei Tetraden (zu je 4 Bit) aufgeteilt werden; diese Tetraden werden auch als Halbbytes bezeichnet. Gewicht Das Gewicht g eines Datenwortes w entspricht der Anzahl der Einsen, die das Datenwort enthält, z.B. g(1101) = 3. Hamming Distanz Die Hamming-Distanz D zwischen zwei Datenworten entspricht der Anzahl der Stellen, in denen sich die Datenworte unterscheiden, z.B. für wa = 1001 und wb = 1010 ist D(wa , wb ) = 2, da sich die Datenworte in den letzten beiden Stellen unterscheiden. Code: Ein Code ist in seiner ursprünglichen Bedeutung eine Verschlüsselung zur Darstellung von Information. Unter einem Code wollen wir verstehen a) eine Vorschrift für die eindeutige Zuordnung der Zeichen eines Zeichenvorrats zu denjenigen eines anderen Zeichenvorrates (Bildmenge); b) der bei der Codierung als Bildmenge auftretender Zeichenvorrat. Kapitel 2 Zahlensysteme Zahlensysteme dienen der Darstellung von Zahlenwerten sowie dem Rechnen mit diesen Zahlenwerten. Historisch gesehen gibt es viele verschiedene Zahlensysteme. Als historisches Zahlensystem wollen wir uns das römische Zahlensystem ansehen. Im Alltag ist das Dezimalsystem wichtig. In der Kommunikationstechnik bedeutsam ist das Dualsystem mit dem wir uns dann eingehender auseinandersetzen wollen. 2.1 Römisches Zahlensystem 8 KAPITEL 2. ZAHLENSYSTEME 2.2 Dezimalsystem 2.3 Dualsystem 9 KAPITEL 2. ZAHLENSYSTEME 2.4 Oktalsystem 2.5 Hexadezimalsystem 10 Allgemein kann jede natürliche Zahl als Basis eines Stellenwertsystems dienen (z.B. Basis B = 7 → Siebener System, etc.). KAPITEL 2. ZAHLENSYSTEME 11 2.6 Rationale Zahlen 2.7 Umrechnung zwischen polyadischen Zahlensystemen 2.7.1 Umwandlung natürlicher Dezimalzahlen ins Dualsystem Umwandlung einer Dezimalzahl in eine Dualzahl: 1. Lösungsmethode: Suchen der höchsten Potenz von 2, die in der Dezimalzahl enthalten ist, die Potenz von der Dezimalzahl abziehen und mit dem Rest der Subtraktion fortfahren, bis das Ergebnis Null ist. 2. Lösungsmethode: Fortwährende Division der Dezimalzahl durch 2, bis das Ergebnis gleich Null ist. Der Rest jeder Division gibt dabei eine Stelle der Dualzahl an. Beispiel zur ersten Lösungsmethode: Dezimalzahl D = 86(10) Notieren aller Zweierpotenzen bis zur Zahl D: größte größte größte größte Zweierpotenz Zweierpotenz Zweierpotenz Zweierpotenz 27 26 25 24 23 22 21 20 128 64 32 16 8 4 2 1 in 86 ist 64 = 26 in 22 ist 16 = 24 in 6 ist 4 = 22 in 2 ist 2 = 21 Rest Rest Rest Rest = = = = 22 6 2 0 KAPITEL 2. ZAHLENSYSTEME 12 → Dualzahl = 1 × 26 + 0 × 25 + 1 × 24 + 0 × 23 + 1 × 22 + 1 × 21 + 0 × 20 Ergebnis: 86(10) = 101 0110(2) Beispiel zur zweiten Lösungsmethode: 86 43 21 10 5 2 1 : : : : : : : 2 2 2 2 2 2 2 = = = = = = = 43 21 10 5 2 1 0 Rest Rest Rest Rest Rest Rest Rest 0 ← LSB 1 1 0 1 0 1 ← MSB → Ergebnis: 86(10) = 101 0110(2) Erweiterung: Die Verfahren sind entsprechend auf Stellenwertsysteme mit einer beliebigen Basis ungleich 2 anwendbar, z.B. 8 bzw. 16 liefern Zahlen im Oktal- bzw. Hexadezimalsystem. (Siehe Übung: Beispiel zum Siebener-System.) 2.7.2 Rationale Zahlen Bisher wurde nur die Umwandlung von positiven ganzen Zahlen behandelt. Im folgenden werden nun positive, rationale Dezimalzahlen in Dualzahlen gewandelt. Dies wird am Beispiel der Zahl Z(10) = 86,8125 erläutert. Zunächst wird die ganze Dezimalzahl Z(10) = 86 nach einer der beiden oben vorgestellten Verfahren in die Dualzahl Z(2) = 101 0110 gewandelt. Der dezimale Nachkommaanteil 0,8125 wird dann nach folgendem Schema umgewandelt: 0,8125 0,625 0,25 0,5 × × × × 2 = 0,625 Rest = 1 ← höchstwertigstes Bit nach dem Komma 2 = 0,25 Rest = 1 2 = 0,5 Rest = 0 2=0 Rest = 1 ← niederwertigstes Bit nach dem Komma → Die Dezimalzahl Z(10) = 86,8125 wird in die Dualzahl Z(2) = 101 0110,1101 gewandelt. Bei der Umwandlung von Ziffern, die rechts vom Komma stehen, müssen diese Ziffern mit der gewünschten Basis multipliziert werden, da diese Ziffern Gewichtsfaktoren mit negativem Exponenten besitzen. Das Verfahren ist entsprechend auf Stellenwertsysteme mit einer beliebigen Basis ungleich 2 anwendbar. (Alternativ zum beschriebenen Verfahren kann auch wie bei ganzen Zahlen immer nach der höchsten enthaltenen Zweierpotenz gesucht werden.) KAPITEL 2. ZAHLENSYSTEME 2.8 2.8.1 13 Darstellung negativer ganzer Zahlen Vorzeichen und Betrag Bei dieser Darstellungsart werden negative Dualzahlen durch das Vorzeichenbit s vor dem MSB gekennzeichnet: • s = 0 bedeutet positiv • s = 1 bedeutet negativ Merke: Eine eindeutige Interpretation ist nur bei einer fest vereinbarter Wortlänge möglich!!! Beispiel: 7 Bit für den Betrag und 1 Bit für das Vorzeichen: 118(10) −118(10) = = 0 1 1 1 (−1)s 26 1 1 25 1 1 24 0 0 23 1 1 22 1 1 21 0 0 20 ← Stellenwert Die Darstellung nach Betrag und Vorzeichen hat den Nachteil, dass positive und negative Zahlen nicht einfach addiert werden können, da der Addierer bei negativen Zahlen auf Subtraktion umschalten muss. Die im nächsten Kapitel beschriebenen ZweierKomplement-Zahlen haben diesen Nachteil nicht. 2.8.2 Zweierkomplementdarstellung Definition: Beim Zweierkomplement erhält das höchstwertige Bit (MSB) ein negatives Gewicht (Gewicht einer Zweierpotenz, jedoch mit negativen Vorzeichen)! Somit hat bei einer positiven Zahl das höchstwertige Bit den Wert 0, und bei einer negativen Zahl hat das höchstwertige Bit den Wert 1. Merke: Eine eindeutige Interpretation ist wieder nur bei fest vereinbarter Wortlänge möglich. Beispiel: Wortlänge von 3 Bit Das folgende Bild zeigt am Zahlenkreis die Interpretation einer 3-Bit-Zahl als Dualzahl (innerer Kreis) und als Zweierkomplementzahl (äußerer Kreis) (Bsp: −2 = −1 · 22 + 1 · 21 + 0 · 20 , etc.) KAPITEL 2. ZAHLENSYSTEME 14 Die Zahlen im inneren Kreis ergeben sich als 3-stellige positive Dualzahlen. Die Werte der Zahlen steigen mit der Schrittweite 1, und von 111 nach 000 erfolgt ein Sprung um -7. Die Zahlen außerhalb des äußeren Kreises ergeben sich als Zweierkomplement-Zahl. Die Werte der Zahlen steigen ebenfalls mit der Schrittweite 1, aber der Sprung um -7 erfolgt von 011 auf 100. Die Vorzeichenstelle muss nicht (wie vorher) getrennt behandelt werden, sondern zum Vorzeichenwechsel kann einfach das Zweierkomplement der gesamten Zahl einschließlich der Vorzeichenstelle gebildet werden. Regel für die Rechnung mit dem Zweierkomplement: Negation im Zweierkomplement Die Negation einer Zahl in Zweierkomplementdarstellung wird durch Bildung des Zweierkomplements der gesamten Zahl bewirkt. Hierzu wird zunächst das Einerkomplement (=Inversion aller Bits) gebildet und anschließend erfolgt eine Addition von 1 unter Beibehaltung der Stellenzahl n. Beispiel: 8-stellige Zweierkomplentdarstellung (n = 8): 118(10) = 64 + 32 + 16 + 4 + 2 = 111 0110(2) Umwandlung 118 → ursprüngliche Zahl −118 118(10) = 0 1 1 1 . 0 1 1 0 1 0 0 0 . 1 0 0 1 1 = 1 0 0 0 . 1 0 1 0 = 1 0 0 0 . 1 0 1 0 0 1 1 1 . 0 1 0 1 1 0 1 1 1 . 0 1 1 0 Einerkomplement Addition von 1 Zweierkomplement Rückumwandlung −118 ursprüngliche Zahl −118(10) → 118 −118(10) Einerkomplement Addition von 1 Zweierkomplement 118(10) = KAPITEL 2. ZAHLENSYSTEME Umwandlung 0 → 15 −0 = 0 ursprüngliche Zahl −118(10) = Einerkomplement Addition von 1 Zweierkomplement =1 − 118(10) 0 0 0 0 . 0 0 0 0 1 1 1 1 . 1 1 1 1 1 0 0 0 0 . 0 0 0 0 Merke: Die 1 des Übertrags in die neunte Spalte wird dabei nicht beachtet! (Es wird ja vereinbarungsgemäß nur mit 8 Stellen gerechnet!) Es gibt eine weitere einfache Methode zur Bildung des Zweierkomplements: Negation im Zweierkomplement Alle Binärziffern werden invertiert, die „links von der ersten 1“ stehen, wenn man die Zahl von rechts beginnend liest. Um eine Zahl im Zweierkomplement darzustellen, muss eine ausreichende Stellenzahl vorliegen. Mit einer n-stelligen Zweierkomplementzahl Bn kann man den folgenden Zahlenbereich darstellen: −2n−1 ≤ Bn < 2n−1 Beispiel: • für n = 3 gilt: −4 ≤ Bn < 4 (siehe Zahlenkreis zuvor) • für n = 4 gilt: −8 ≤ Bn < 8 • für n = 5 gilt: −16 ≤ Bn < 16 • für n = 8 gilt: −128 ≤ Bn < 128 2.9 2.9.1 Rechnen im Dualsystem Addition Bei der Addition sind folgende Regeln zu beachten: 0+0 0+1 1+0 1+1 1+1+1 = = = = = 00 Erste Stelle = Übertrag; zweite Stelle = Summe) 01 01 10 11 (= 2 + 1 = 3(10) ) (2.1) KAPITEL 2. ZAHLENSYSTEME 16 Beispiel: 5(10) + 3(10) = 8(10) mit 5(10) = 101(2) und 3(10) = 11(2) 1 1 0 1 1 1 1 1 ← Übertrag 1 0 =8+0+0+0=8 + 0 0 √ Beispiel: 6(10) + 6(10) = 12(10) mit 6(10) = 110(2) + 1 1 0 1 1 0 1 1 0 ← Übertrag 1 = 8 + 4 + 0 + 0 = 12 2.9.2 1 0 0 √ Subtraktion Bei der Subtraktion kann man zwischen der direkten Subtraktion und dem Rechnen mit Hilfe des Zweierkomplements unterscheiden. 2.9.2.1 Direkte Subtraktion Bei der direkten Addition sind folgende Regeln zu beachten: 0−0 0−1 1−0 1−1 1 − (1 + 1) = = = = = 00 Erste Stelle = Entleihung; zweite Stelle = Differenz 11 01 00 11 Beispiel: 5(10) − 3(10) = 2(10) mit 5(10) = 101(2) und 3(10) = 11(2) 1 0 0 1 1 1 1 0 0 0 - 1 0 (Minuend) (Subtrahend) ← Entleihung =0+0+2+0=2 √ KAPITEL 2. ZAHLENSYSTEME 2.9.2.2 17 Rechnen mit dem Zweierkomplement Beim Rechnen mit dem Zweierkomplement wird die Subtraktion des Subtrahenden ersetzt durch die Addition des Zweierkomplements des Subtrahenden. Beispiel 1: Berechnung mit Zweierkomplementzahlen: 9 − 6 = 9 + (−6) = 3 9(10) = 1001(2) 6(10) = 110(2) Zur Berechnung sind 5 binäre Stellen notwendig, da für n = 5 der darstellbare Zahlenbereich mit −16 ≤ Bn < 16 gegeben ist. +6 = 00110(2) EK = 11001(2) +1 = +00001(2) -6 11010(2) = 9 = +(-6) = 01001(2) 11010(2) = − 1 | 00011(2) 3 = 3(10) Beispiel 2: Berechnung mit Zweierkomplementzahlen: 6 − 9 = 6 + (−9) = −3 9(10) = 1001(2) 6(10) = 110(2) Zur Berechnung sind 5 binäre Stellen notwendig, da für n = 5 der darstellbare Zahlenbereich mit −16 ≤ Bn < 16 gegeben ist. +9 = 01001(2) EK = 10110(2) +1 = +00001(2) -9 = 10111(2) 6 = 00110(2) +(-9) = 10111(2) 3 2.10 = 11101(2) = −24 + 23 + 22 + 20 = −3(10) Gleitkommazahlen im IEEE-754 Format Kapitel 3 Codes und Codierung 3.1 3.1.1 Rechencodes BCD-Code, 3-Exzeß-Code und Aiken-Code Rechencodes dienen der Darstellung der dezimalen Ziffern mit Hilfe binärer Codes. Der Aiken-Code und der 3-Exzeß-Code sind symmetrische Codes und erlauben auf einfache Art eine Rundungserkennung (< 5 bzw. ≥ 5). Der BCD-Code entspricht der entsprechenden 4-Bit Dualzahl der dezimalen Ziffer. Der Aiken-Code gehört zur Gruppe der 2-4-2-1-Codes. Der Glixon-Code ist einschrittig (bei einem Wechsel zur nächsten Ziffer ändert sich immer nur eine Stelle). Eng verwandt mit dem Glixon-Code ist der GrayCode. Dieser ist ebenfalls einschrittig, umfasst jedoch alle 16 Tetraden. Für die ersten neun Tetraden (0-8) stimmt der Gray-Code mit dem Glixon-Code überein, danach ergeben sich folgende Zählzustände: 9 → 1101; 10 → 1111; 11 → 1110; 12 → 1010; 13 → 1011; 14 → 1001; 15 → 1000. Trägt man die Zustände in ein KV-Diagramm (siehe später) ein, so erkennt man, dass die Zustandsänderungen immer den Übergang auf ein Nachbarfeld bedeuten. Dezimal Wertigkeit 0 1 2 3 4 5 6 7 8 9 BCD 3-Exzeß 8-4-2-1 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 Aiken Glixon 2-4-2-1 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 18 0000 0001 0010 0011 0100 1011 1100 1101 1110 1111 0000 0001 0011 0010 0110 0111 0101 0100 1100 1000 KAPITEL 3. CODES UND CODIERUNG 3.2 Übertragungscodes für alphanumerische Zeichen 3.2.1 Morse-Code 3.2.2 7-Bit-ASCII-Code 19 KAPITEL 3. CODES UND CODIERUNG 3.2.3 3.3 20 Unicode Codesicherung Bei der Übertragung von binären Daten kann es vorkommen, dass einzelne Bits fehlerhaft übertragen werden. KAPITEL 3. CODES UND CODIERUNG 21 Um dieses Problem in den Griff zu bekommen, kann man spezielle fehlererkennende und fehlerkorrigierende Codes verwenden. Fehlererkennende Codes sind prüfbar, d.h. bestimmte Übertragungsfehler können beim Empfänger erkannt werden. Die Daten müssen dann ggfs. noch einmal gesendet werden. Fehlerkorrigierende Codes sind ebenfalls prüfbar. Darüber hinaus können aber bestimmt Fehler auch automatisch vom Empfänger korrigiert werden, so dass ein erneutes Senden in vielen Fällen unterbleiben kann. Fehlererkennung und -korrektur ist nur möglich bei der Verwendung zusätzlicher (redundanter) binärer Stellen. 3.3.1 Minimale Hamming-Distanz Eine wichtige Größe bei der Konstruktion von fehlererkennenden und fehlerkorrigierenden Codes ist die minimale Hamming-Distanz Dmin zwischen den unterschiedlichen Datenworten eines Codes. Zur Ermittlung der minimalen Hamming-Distanz Dmin muss die Hamming-Distanz D zwischen allen Codeworten paarweise ermittelt werden. Der dabei auftretende minimale Wert ist Dmin . Regeln für die Fehlererkennung und Fehlerkorrigierbarkeit: Ist die Mindest-Hamming-Distanz Dmin gerade, können (Dmin − 1)-Fehler erkannt und (Dmin /2 − 1)-Fehler korrigiert werden. Ist Dmin ungerade, so können (Dmin −1)-Fehler erkannt und ((Dmin −1)/2)-Fehler korrigiert werden. Beispiel: Dmin = 3 3.3.2 → 3 − 1 = 2 fehlerhafte Bits können erkannt werden (3 − 1)/2 = 1 fehlerhaftes Bit kann korrigiert werden Gleichgewichtige Codes Alle zugelassenen Codewörter eines gleichgewichtigen Codes haben dasselbe Gewicht g, d.h. dieselbe Anzahl darin vorkommender Einsen. KAPITEL 3. CODES UND CODIERUNG 22 Beispiel: (2-aus-5)-Codes, jedes Codewort besteht aus m = 5 Bits mit einem Gewicht w = 2. Die folgende Tabelle zeigt zwei solcher Codes für die Codierung der Dezimalziffern 0 bis 9. Die Codes haben eine Mindest-Hamming-Distanz von Dmin = 2, so dass ein Fehler sicher erkannt werden kann. Automatisch korrigierbar ist der Fehler aber nicht, da die fehlerhafte Stelle nicht ermittelt werden kann. Ziffer Rechencode Stellenwertigkeit Walking-Code 0-1-2-4-7 0 1 2 3 4 5 6 7 8 9 0 1 1 0 1 0 0 1 0 0 0 1 0 1 0 1 0 0 1 0 0 0 1 1 0 0 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0 0 1 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 Anschaulich ist klar, dass wegen des gleichen Gewichts aller Codewörter der (2-aus-5)Code prüfbar ist. Wird nämlich ein Bit falsch übertragen, so ändert sich das Gewicht des Codewortes, und das Vorliegen eines Fehlers wird erkannt. Es können auch mehrere Fehler erkannt werden, solange das fehlerhafte Datenwort nicht wieder das Gewicht 2 hat. Mehr als die in der Tabelle aufgeführten zehn verschiedenen 5-stelligen Codewörtern mit w = 2 sind aufgrund der Permutationstheorie nicht möglich. Beliebige gleichgewichtige Codes werden als (w-aus-m)-Codes bezeichnet. 3.3.3 Paritätsbits Ein Code mit m informationstragenden Stellen x0 bis xm−1 wird um eine weitere (m+1)-te Stelle ergänzt, die Prüfstelle y (Prüfbit). Das Prüfbit ergänzt die Anzahl der Einsen in den informationstragenden Stellen auf eine gerade (even parity) oder ungerade (odd parity) Anzahl. Beispiel: 4-Bit-Datenwort (w = 0100) plus 1 Prüfbit (gerade Parität): 01001 Diese Prüfung wird als Quer-Paritätsprüfung (parity check) oder als VRC (vertical redundancy check) bezeichnet. (VRC = Sicherung eines Codewortes mit einem Prüfbit). Im Code selbst mit n = m + 1 Binärstellen unterscheidet sich jedes Codewort von jedem anderen in mindestens zwei Binärstellen, d.h. es gilt Dmin = 2. Eine gerade Anzahl von Bitfehlern in einem Datenwort kann bei der Überprüfung auf gerade oder ungerade Parität nicht erkannt werden. KAPITEL 3. CODES UND CODIERUNG 23 Die Bildung eines Längsparitätsbits LRC (longitudinal redundancy check) erfolgt nach demselben Mechanismus wie bei der Querparitätsprüfung, nur das in diesem Fall spaltenweise die Datenworte eines Blocks überprüft und die einzelnen Prüfbits als neues Datenwort an den Block angefügt werden. (LRC = Bits gleicher Wertigkeit werden geprüft!) Beispiel einer Längsparitätsprüfung: 1101 0100 0100 0100 0100 0101 1100 0011 LRC even 1001 1110 LRC odd 0110 0001 3.3.4 Blockprüfung Bei dem im vorigen Abschnitt beschriebenen Verfahren der Paritätsprüfung können nur Fehler erkannt, aber nicht korrigiert werden. Durch eine Kombination von VRC und LRC durch blockweise Übertragung mehrerer Codewörter ist eine einfache Fehlerkorrektur möglich. (Codewort ist nun ein ganzer Block!) Beispiel einer Längs- und Querparitätsprüfung: LRC (even parity) 1101 0100 0100 0100 0100 0101 1100 0011 1001 1110 VRC (even parity) 0 1 1 1 Einbau und Lokalisation eines Einzelfehlers: VRC (even parity) 1101 0100 0 0100 1101 1 ← 0100 1100 1 0100 0011 1 LRC (even parity) 1001 1110 ↑ Durch die Prüfung der zeilen- und spaltenweisen Prüfbits kann der Fehler lokalisiert werden. Zur Korrektur muss das fehlerhafte Bit nur invertiert werden! Der hier vorgestellte Blockcode ist konzeptionell einfach, in der Praxis jedoch nicht anzutreffen, da das Verhältnis von Prüfbits zu Nutzbits ungünstig ist. Deutlich effizienter arbeitet hier der im nächsten Abschnitt vorgestellte Hamming-Code. KAPITEL 3. CODES UND CODIERUNG 3.3.5 24 Hamming-Code Der Hamming-Code ist ebenfalls ein fehlerkorrigierender Code, jedoch benötigt er weniger Prüfbits als der Block-Code. Der Hamming-Code gehört zu den sog. systematischen Codes, die aus m informationstragenden und k zur Prüfung dienenden Stellen bestehen. Die Gesamtzahl der Binärstellen eines systematischen Codes beträgt n=m+k Es lässt sich zeigen , das für die Konstruktion eines 1-Fehler-korrigierbaren Codes gilt: 2k ≥ m + k + 1 (3.1) Aus dieser Beziehung lässt sich die notwendige Anzahl der Prüfstellen ermitteln. Wir wollen uns den Hamming-Code in seiner einfachsten Variante mit vier Nutzbits ansehen. Gemäß Gleichung 3.1 werden dazu drei Prüfbits benötigt (23 ≥ 4 + 3 + 1). KAPITEL 3. CODES UND CODIERUNG 25 KAPITEL 3. CODES UND CODIERUNG 26 Kapitel 4 Schaltalgebra 4.1 Begriffe Schaltvariable Variable, die nur endlich viele Werte annehmen kann. Die Menge dieser Werte bildet den Zeichenvorrat. Die binäre Schaltvariable (nur zwei Werte) wird in der Digitaltechnik am häufigsten verwendet. Speicherglied Element, das den Wert einer Schaltvariable aufnimmt, speichert und abgibt. Verknüpfungsglied Element, das eine logische Verknüpfung von Schaltvariablen bewirkt. Schaltnetz Kombination von Verknüpfungsgliedern, wobei der Wert am Ausgang zu einem bestimmten Zeitpunkt eine eindeutige Funktion der Eingangswerte zu diesem Zeitpunkt ist. (Kein Gedächtnis!) Realisierungsbedingung: Die Schaltungen enthalten keine Rückführungen. (Schaltnetze werden in Kapitel 5 behandelt) Schaltwerk Funktionseinheit zum Verarbeiten von Schaltvariablen, wobei der Ausgangswert zu einem bestimmten Zeitpunkt abhängt von den Eingangswerten zu diesem Zeitpunkt und endlich vielen vorausgegangenen Zeitpunkten ist. Ein Schaltwerk kann endlich viele innere Zustände annehmen; es enthält also Speicherelemente (wird in Kapitel 7 behandelt). Kombinatorische Logik = Kombinatorische Schaltung = Schaltnetz Sequentielle Logik = Sequentielle Schaltung = Schaltwerk 4.2 Logische Grundverknüpfungen Die Schaltalgebra geht von folgenden drei Grundverknüpfungen aus: 1. Negation (NICHT-Verknüpfung) 27 KAPITEL 4. SCHALTALGEBRA 28 2. Disjunktion (ODER-Verknüpfung) 3. Konjunktion (UND-Verknüpfung) Fundamentalsatz der Schaltalgebra Alle Schaltfunktionen lassen sich auf die drei Grundverknüpfungen (Negation, Disjunktion, Konjunktion) zurückführen. 4.2.1 Negation, NICHT-Verknüpfung, NOT Die Negation ist die Funktion einer einzigen Variablen. Hat die Variable den Wert 1, dann ist die negierte Variable 0 und umgekehrt. Funktionstabelle: A 0 1 Y 1 0 Die entsprechende schaltalgebraische Gleichung lautet: Y = Ā Lies: „Y = A negiert“ oder „Y = A nicht“. Es gelten folgende Spezialfälle: 0 = 1 und 1 = 0. Eine mehrfache Anwendung der Negation ist ebenfalls möglich: 1 = 1. Schaltsymbol: 4.2.2 Disjunktion, ODER-Verknüpfung, OR Funktionstabelle: A 0 0 1 1 B 0 1 0 1 Y 0 1 1 1 Die Funktionstabelle zeigt, dass Y = 1 ist, wenn mindestens eine Eingangsvariable gleich 1 ist. Diese Funktion wird auch als inklusives ODER bezeichnet. Schaltalgebraische Gleichung: Y =A∨B Lies: „Y gleich A oder B“. Schaltsymbol: KAPITEL 4. SCHALTALGEBRA 29 Schalterdarstellung (Parallelschaltung): Es gelten folgende Spezialfälle: A∨1 A∨A A∨0 A ∨ Ā = = = = 1 A A 1 Bei mehr als zwei Variablen gilt: ( 0 falls alle Ai = 0 Y = A1 ∨ A2 ∨ · · · ∨ An = 1 sonst 4.2.3 Konjunktion, UND-Verknüpfung, AND Funktionstabelle: A 0 0 1 1 B 0 1 0 1 Y 0 0 0 1 Die Funktionstabelle zeigt, dass Y = 1 ist, wenn A und B gleich 1 sind. Schaltalgebraische Gleichung: Y = A ∧ B = AB Lies: „Y gleich A und B“. Schaltsymbol: Schalterdarstellung (Reihenschaltung): KAPITEL 4. SCHALTALGEBRA 30 Es gelten folgende Spezialfälle: A∧1 A∧A A∧0 A ∧ Ā = = = = A A 0 0 Bei mehr als zwei Variablen gilt: ( 1 falls alle Ai = 1 Y = A1 ∧ A2 ∧ · · · ∧ An = 0 sonst 4.3 4.3.1 Abgeleitete Verknüpfungen NAND-Verknüpfung Funktionstabelle: A 0 0 1 1 B 0 1 0 1 Y 1 1 1 0 Schaltalgebraische Gleichung: Y = A ∧ B = AB Schaltsymbol: 4.3.2 NOR-Verknüpfung Funktionstabelle: A 0 0 1 1 B 0 1 0 1 Y 1 0 0 0 KAPITEL 4. SCHALTALGEBRA 31 Schaltalgebraische Gleichung: Y =A∨B Schaltsymbol: 4.3.3 Äquivalenz-Verknüpfung Funktionstabelle: A 0 0 1 1 B 0 1 0 1 Y 1 0 0 1 Schaltalgebraische Gleichung: Y = (A ∧ B) ∨ Ā ∧ B̄ Schaltsymbol: 4.3.4 Antivalenz-Verknüpfung Funktionstabelle: A 0 0 1 1 B 0 1 0 1 Y 0 1 1 0 Schaltalgebraische Gleichung: Y = Ā ∧ B ∨ A ∧ B̄ Schaltsymbol: KAPITEL 4. SCHALTALGEBRA 4.4 32 Schaltverhalten bei positiver und negativer Logik Reale Verknüpfungsglieder sind Schaltungen, die mit auf gewisse physikalische Eingangsspannungspegel (im Low- oder High-Bereich) mit bestimmten Ausgangsspannungen (ebenfalls im Low- oder High-Bereich) reagieren. Die Zuordnung der logischen Größen kann entweder in positiver Logik (L=0 ; H=1) oder negativer Logik (L=1 ; H=0) erfolgen. Gegeben sei die Funktionstabelle eines Verknüpfungsgliedes auf der Basis von Ein- und Ausgangsspannungen: A L L H H B L H L H Y L L L H Bei positiver Logik (L=0 ; H=1) gilt folglich: A 0 0 1 1 B 0 1 0 1 Y 0 0 0 1 → Verhalten eines UND-Gliedes! Bei negativer Logik (L=1 ; H=0) gilt hingegen: A 1 1 0 0 B 1 0 1 0 Y 1 1 1 0 → Verhalten eines ODER-Gliedes! Das Verhalten eines realen Verknüpfungsgliedes ist also abhängig von der gewählten Logik! Ein UND-Glied in positiver Logik wird zu einem ODER-Glied in negativer Logik und umgekehrt. In dieser Vorlesung wird - falls nichts anderes gesagt wird - stets die positive Logik verwendet, da sie auch technisch die größere Bedeutung besitzt. 4.5 Rechenregeln der Schaltalgebra Aus den Definitionen der logischen Grundfunktionen können Rechenregeln abgeleitet werden; die Beweise sind anhand der Funktionstabellen leicht zu führen. KAPITEL 4. SCHALTALGEBRA 33 Kommutativgesetz („Vertauschungsgesetz“) für Konjunktion und Disjunktion: A∧B = B∧A A∨B = B∨A Assoziativgesetz („Verknüpfungsgesetz“) für Konjunktion und Disjunktion: A ∧ B ∧ C = (A ∧ B) ∧ C = A ∧ (B ∧ C) A ∨ B ∨ C = (A ∨ B) ∨ C = A ∨ (B ∨ C) Distributivgesetz („Verteilungsgesetz“): A ∧ (B ∨ C) = (A ∧ B) ∨ (A ∧ C) A ∨ (B ∧ C) = (A ∨ B) ∧ (A ∨ C) De Morgan’sche Gesetze: A ∧ B = Ā ∨ B̄ A ∨ B = Ā ∧ B̄ bzw. A ∧ B = Ā ∨ B̄ A ∨ B = Ā ∧ B̄ Bedeutung des De Morgan’schen Gesetzes: UND- und ODER-Verknüpfung lassen sich - unter Verwendung von Negationen - gegenseitig ersetzen! Die Gesetze können entsprechend auch auf mehr als zwei oder drei Variablen erweitert werden! Bindungsregel: Ohne Klammern gilt folgende Reihenfolge der Operationen: 1. Negation 2. Konjunktion 3. Disjunktion 4.5.1 Bedeutung der NOR und NAND-Verknüpfung für die Praxis Ergebnis aus der klassischen Schaltalgebra: „Alle logischen Verknüpfungen und binären Schaltwerke lassen sich mit Hilfe der drei Grundfunktionen UND, ODER und NICHT beschreiben.“ KAPITEL 4. SCHALTALGEBRA 34 Aus den De Morgan’schen-Gesetzen folgt: Eine Konjunktion lässt sich durch eine Disjunktion und mit Negationsgliedern nachbilden. Eine Disjunktion lässt sich durch eine Konjunktion und Negationsglieder nachbilden. Es werden also nur zwei Verknüpfungstypen benötigt: (UND und NICHT) oder (ODER und NICHT). Frage: Kann die Anzahl der benötigten Verknüpfungsgliederarten noch weiter reduziert werden? Antwort: Ja! Eine Realisierung nur mit NAND oder nur mir NORVerknüpfungselementen ist möglich! Um dies zu demonstrieren, wollen wir versuchen die drei Grundverknüpfungsarten jeweils mit NAND- und NOR-Gattern nachzubilden. Nachbildung eines NICHT-Gliedes mit NAND-Gliedern NAND-Gatter NICHT-Gatter A 0 1 Y 1 0 A 0 0 1 → 1 → B 0 1 0 1 Y 1 1 1 0 ← ← Zwei Realisierungsmöglichkeiten: Nachbildung eines NICHT-Gliedes mit NOR-Gliedern NOR-Gatter NICHT-Gatter A 0 1 Y 1 0 A → 0 0 1 → 1 Zwei Realisierungsmöglichkeiten: Nachbildung eines UND-Gliedes mit NAND-Gliedern B 0 1 0 1 Y 1 0 0 0 ← ← KAPITEL 4. SCHALTALGEBRA Nachbildung eines ODER-Gliedes mit NOR-Gliedern Nachbildung eines UND-Gliedes mit NOR-Gliedern Nachbildung eines ODER-Gliedes mit NAND-Gliedern 35 Kapitel 5 Schaltnetze 5.1 5.1.1 Beschreibung logischer Funktionen Funktionstabelle In der Digitaltechnik sind Problemstellungen oft in Form einer Funktionstabelle (Wahrheitstabelle) gegeben. Schaltalgebraische Beziehungen zwischen den unabhängigen Eingangsvariablen A1 , A2 , . . . , An und der abhängigen Ausgangsvariablen Y können in Form einer Tabelle dargestellt werden, die jede mögliche Kombination der Eingangsvariablen und der dazugehörigen Ausgangsvariablen umfasst. Jede dieser Variablen kann die Werte 0 und 1 annehmen, d.h. bei n Eingangsvariablen ergeben sich 2n verschiedene Eingangskombinationen. Beispiel: Funktionstabelle der Schaltfunktion Y mit den 3 Eingangsvariablen A, B, C. A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 Y 0 1 1 1 0 0 0 0 Alternativ zur Darstellung der Schaltfunktion als Funktionstabelle kann auch eine schaltalgebraische Gleichung angegeben werden. Dies ist häufig in einer deutlich kompakteren Form möglich. Im folgenden werden Wege von der Funktionstabelle zur schaltalgebraischen Gleichung gezeigt. Aus der Funktionstabelle liest man eine sog. „Normalform“ der schaltalgebraischen Gleichung ab. Es gibt zwei mögliche Normalformen: die disjunktive und die konjunktive Normalform. 36 KAPITEL 5. SCHALTNETZE 5.1.2 37 Minterme und disjunktive Normalform Disjunktive Normalform (DNF) Sämtliche Zeilen, für die die Ausgangsvariable den Wert Eins annimmt, werden zusammengefasst. Hierbei ist für jede dieser Zeilen eine Konjunktion aller Variablen mit dem Wert Eins sowie aller negierten Variablen mit dem Wert Null zu bilden. Die so gebildeten Konjunktionen werden disjunktiv verknüpft. Minterm Die Terme, die alle Eingangsvariablen konjunktiv verknüpfen, bezeichnet man auch als Minterme bzw. als Vollkonjunktionen. 1. Fundamentalsatz der Schaltalgebra Jede binäre Funktion Y kann als Disjunktion von Mintermen angegeben werden, für die die Funktion den Wert Eins annimmt. Beispiel DNF zur vorhergehenden Funktionstabelle: Y = Ā ∧ B̄ ∧ C ∨ Ā ∧ B ∧ C̄ ∨ Ā ∧ B ∧ C 5.1.3 Maxterme und konjunktive Normalform Konjunktive Normalform (KNF) Definition: Sämtliche Zeilen, für die die Ausgangsvariable den Wert Null annimmt werden zusammengefasst. Hierbei ist für jede dieser Zeilen eine Disjunktionen aller Variablen mit dem Wert Null sowie aller negierten Variablen mit dem Wert Eins zu bilden. Die so gebildeten Disjunktionen werden konjunktiv verknüpft. Maxterme Die Terme, die alle Eingangsvariablen disjunktiv verknüpfen, bezeichnet man auch als Maxterme bzw. als Volldisjunktionen. 2. Fundamentalsatz der Schaltalgebra Jede binäre Funktion Y kann als Konjunktion von Maxtermen angegeben werden, für die die Funktion den Wert Null annimmt. Beispiel KNF zur vorhergehenden Funktionstabelle: Y 5.2 5.2.1 = (A ∨ B ∨ C) ∧ Ā ∨ B ∨ C ∧ Ā ∨ B ∨ C̄ ∧ Ā ∨ B̄ ∨ C ∧ Ā ∨ B̄ ∨ C̄ Vereinfachung logischer Schaltungen Gesetze der Schaltalgebra Unter Verwendung der verschiedenen Gesetze für die Schaltalgebra können komplexe Schaltfunktionen vereinfacht - d.h. mit einer reduzierten Anzahl von logischen Gattern realisiert - werden. Angestrebt wird in der Regel eine zweistufige Realisierung, wobei die erste Stufe Konjunktionen und die zweite Stufe Disjunktionen enthält. Das Ergebnis ist KAPITEL 5. SCHALTNETZE 38 dann eine disjunktive Minimalform (DMF). Eine DMF ist im Gegensatz zur DNF nicht eindeutig bestimmt. Häufig gibt es mehrere gleich gute Realisierungen. Beispiel: Y = = = = = = ĀB C̄ ∨ AB̄ C̄ ∨ AB C̄ ĀB ∨ AB̄ ∨ AB C̄ ĀB ∨ AB ∨ AB̄ ∨ AB C̄ B Ā ∨ A) ∨ A B̄ ∨ B ]C̄ [B ∨ A] C̄ ← (KMF) AC̄ ∨ B C̄ ← (DMF) Die ursprüngliche Schaltfunktion, die drei UND-Gatter mit je drei, zum Teil negierten Eingängen und ein ODER-Gatter mit drei Eingängen benötigte, wurde minimiert auf eine Funktion, die nur noch zwei UND-Gatter mit je zwei, zum Teil negierten Ausgängen benötigt und ein ODER-Gatter mit zwei Eingängen. Ebenso kann man durch Umstellungen eine konjunktive Minimalform (KMF) erhalten, die Variablen werden dabei erst disjunktiv verknüpft und dann konjunktiv. Häufig gibt es mehrere gleichberechtigte DMF oder KMF! DNF, DMF, KNF und KMF stellen also 2-stufige Realisierungen der Form UND-ODER bzw. ODER-UND dar. DNF und DMF besitzen in der Praxis gegenüber KNF und KMF die größere Bedeutung. Da eine zielgerichtete Anwendung bei der Schaltungsminimierung häufig schwierig ist, weicht man in der Regel auf graphische Verfahren (z.B. KV-Diagramm) und algorithmische Verfahren (z.B. Methode von Quine) aus, die weitaus einfacher zu handhaben sind. 5.2.2 KV-Diagramme Karnaugh-Veitch-(KV)-Diagramme sind grafische Darstellungen von logischen Funktionen für bis zu sechs Variablen. Vorteil: Übersichtliches Verfahren, weil graphisch orientiert. Nachteil: Unübersichtlich bei mehr als 6 Variablen. Allgemeine Vereinfachungsregeln für KV-Diagramme: • Fasst man benachbarte 1-Felder in möglichst große und damit wenige rechteckige oder quadratische Blöcke mit 2, 4, 8, 16... Feldern zusammen, gewinnt man die zu einem Block gehörende Konjunktion, indem man nur die Eingangsvariablen berücksichtigt, die in allen Feldern des Blockes einen konstanten Wert haben. • Bei Blöcken mit 2m Feldern entfallen so m Variable bei der Konjunktion. • Die disjunktive Verknüpfung der Konjunktionen aller Blöcke liefert die DMF. KAPITEL 5. SCHALTNETZE 39 • Einzelne Felder können mehreren Blöcken angehören (Überlappungen). • Blöcke können auch über die Ränder des KV-Diagramms hinaus gebildet werden. (Alternativ zum Zusammenfassen der Einsen können Nullen zusammengefasst werden. Dies führt zur konjunktiven Minimalform (KMF). Obige Regeln sind dann sinngemäß zu ändern: Jeder Block entspricht einer Disjunktion, usw.) KV-Diagramm für zwei Variable Das Diagramm besteht aus 22 = 4 Feldern: Beispiel: A 0 0 1 1 B 0 1 0 1 Y 0 1 1 1 B\A 0 1 B\A 0 ĀB̄ AB̄ 0 1 ĀB AB 1 0 1 ∩1 ⊂ 1 ⊃ ∪ 1 0 Y =A∨B Y =A∨B ← DMF ← KMF KV-Diagramm für drei Variable Das Diagramm besteht aus 23 = 8 Feldern. Es ergeben sich Nachbarschaftsverhältnisse zwischen den Feldern des linken und rechten Randes. C\AB 00 01 11 10 C\AB 0 ĀB̄ C̄ ĀB C̄ AB C̄ AB̄ C̄ 0 ⊃ 1 1 ĀB̄C ĀBC ABC AB̄C 1 0 00 01 11 0 0 ⊂ 1 ⊃ 1 Y = BC ∨ B̄ C̄ Y = B̄ ∨ C ∧ B ∨ C̄ 10 ⊂ 1 0 ← DMF ← KMF KV-Diagramm für vier Variable Das Diagramm besteht aus 24 = 16 Feldern. Es ergeben sich Nachbarschaftsverhältnisse zwischen den Feldern des linken und rechten sowie des oberen und unteren Randes. KAPITEL 5. SCHALTNETZE 40 CD\AB 00 01 11 10 CD\AB 00 ĀB̄ C̄ D̄ ĀB C̄ D̄ AB C̄ D̄ AB̄ C̄ D̄ 00 01 ĀB̄ C̄D ĀB C̄D AB C̄D AB̄ C̄D 01 0 11 ĀB̄CD ĀBCD ABCD AB̄CD 11 0 10 ĀB̄C D̄ ĀBC D̄ ABC D̄ AB̄C D̄ 10 0 00 01 ⊂ 1 ∪ 1 11 10 1 ⊃ 1 0 0 0 0 1 0 0 0 ∩1 Y = C̄ D̄ ∨ ĀB D̄ ∨ ABCD KV-Diagramm für fünf Variable Ein KV-Diagramm für fünf Variablen benötigt 25 = 32 Felder. Diese werden in zwei KV-Diagrammen für vier Variablen angeordnet. Hierbei gilt für das erste Diagramm E = 1 und für das zweite Diagramm E = 0. Diagramm für E = 1: 01 11 CD\AB 00 00 ĀB̄ C̄ D̄E ĀB C̄ D̄E AB C̄ D̄E AB̄ C̄ D̄E 01 ĀB̄ C̄DE ĀB C̄DE AB C̄DE AB̄ C̄DE 11 ĀB̄CDE ĀBCDE ABCDE AB̄CDE 10 ĀB̄C D̄E ĀBC D̄E ABC D̄E AB̄C D̄E 10 E Diagramm für E = 0: CD\AB 00 01 11 10 00 ĀB̄ C̄ D̄Ē ĀB C̄ D̄Ē AB C̄ D̄Ē AB̄ C̄ D̄Ē 01 ĀB̄ C̄DĒ ĀB C̄DĒ AB C̄DĒ AB̄ C̄DĒ 11 10 ĀB̄CDĒ ĀB̄C D̄Ē ĀBCDĒ ĀBC D̄Ē ABCDĒ ABC D̄Ē AB̄CDĒ AB̄C D̄Ē Ē Die beiden Diagramme kann man sich übereinander angeordnet vorstellen, so dass Nachbarschaftsverhältnisse zusätzlich auch zwischen aufeinander liegenden Feldern bestehen. KV-Diagramm für sechs Variable Ein KV-Diagramm für fünf Variablen benötigt 26 = 64 Felder. Diese werden in vier KV-Diagrammen für vier Variablen angeordnet. Hierbei gilt für das erste Diagramm E = 0 und F = 0 und für das zweite Diagramm E = 0 und F = 1 für das dritte Diagramm E = 1 und F = 1 sowie für das vierte Diagramm E = 1 und F = 0. KAPITEL 5. SCHALTNETZE 41 Weitere Beispiele werden in Übungsaufgaben vorgestellt. 5.2.3 Methode von Quine Ein anderer Weg zur Minimierung von Schaltfunktionen ist das Verfahren von Quine. Vorteil des Verfahrens: Algorithmisch orientiert, d.h. gut auf einem Computer zu programmieren. Nachteil des Verfahrens: Hoher Schreibaufwand bei der manuellen Berechnung. Beschreibung des Verfahrens: 1. Man schreibt alle Minterme einer disjunktiven Normalform untereinander. (Ist eine Funktion nicht als disjunktive Normalform gegeben, so muss sie vor der Bearbeitung in eine solche umgewandelt werden.) 2. Jeder Term wird mit jedem anderen Term verglichen. 3. Stimmen zwei Terme bis auf eine Variable überein, wobei diese eine Variable in dem anderen Term negiert vorkommen muss, trägt man diesen Term unter Weglassen der entsprechenden Variablen in die nächste Spalte ein. Die beiden ursprünglichen Terme werden markiert. 4. Dieser Vorgang wird für die erste Spalte wiederholt, bis alle Terme miteinander verglichen worden sind. 5. Anschließend wiederholt sich der gesamte Vorgang in der nächsten Spalte. 6. Die am Ende übrig bleibenden nicht markierten Terme sind die Primterme. 7. Über eine Primterm-Minterm-Tabelle wird die einfachste Primterm-Kombination gesucht. Die disjunktive Verknüpfung dieser Terme ergibt die disjunktive Minimalform. Beispiel: Gegeben sei die folgende Schaltfunktion Y : Y = AB C̄D ∨ ABCD ∨ AB̄CD ∨ ĀB̄CD ∨ ABC D̄ ∨ AB C̄ D̄ Aufstellen der Tabelle zur Ermittlung der Primterme: KAPITEL 5. SCHALTNETZE 42 1. Spalte 2. Spalte 3. Spalte (1) AB C̄D ∗ (1,2) ABD ∗ (1,2; 5,6) AB (2) ABCD ∗ (1,6) AB C̄ ∗ (1,6; 2,5) AB (3) AB̄CD ∗ (2,3) ACD (4) ĀB̄CD ∗ (2,5) ABC (5) ABC D̄ ∗ (3,4) B̄CD (6) AB C̄ D̄ ∗ (5,6) Primterme: AB D̄ ACD ∗ ∗ B̄CD AB Primterm-Minterm-Tabelle: AB C̄D ACD B̄CD AB x ABCD x AB̄CD x x ĀB̄CD x ABC D̄ AB C̄ D̄ x x x Einfachste Primtermkombination: Y = AB ∨ B̄CD Aufgabe: Führen Sie die Vereinfachung der Schaltfunktion zum Vergleich mit dem KVDiagramm durch. 5.3 Nicht vollständig spezifizierte Funktionen (Don’t care Felder) Bei der bisher in der Funktionstabelle dargestellten Funktion handelt es sich um eine vollständig spezifizierte Funktion, weil jeder Eingangsvariablen ein bestimmter Wert (0 oder 1) für die Ausgangsvariable zugewiesen worden ist. In der Praxis treten jedoch sehr häufig unvollständig spezifizierte Funktionen auf (siehe Kapitel über Codewandler), bei denen die Aufgabenstellung für bestimmt Eingangskombinationen nicht eindeutig eine 0 oder 1 vorgibt. Diese Felder werden mit einem „x“ gekennzeichnet. In diesen Fällen können beim KV-Diagramm „don’t-care-Felder“ zu weiteren Vereinfachungen benutzt werden, indem den Feldern geeignete Werte zur Vergrößerung der Blöcke zugewiesen werden. Beispiel: Schaltfunktion mit drei Eingangsvariablen KAPITEL 5. SCHALTNETZE A 0 0 0 0 1 1 1 1 43 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 Y 0 x 0 1 x x 1 0 ← don’t care ← don’t care ← don’t care Indem zwei der don’t-care-Feld auf den Wert Eins gesetzt werden und das dritte don’tcare-Feld auf den Wert Null gesetzt wird, wird eine besonders einfach DMF gefunden. C\AB 00 01 0 0 0 1 ⊂ x ⊃ 1 11 10 0 x ⊂ 1 ⊃ x Y = ĀC ∨ AC̄ 5.4 Realisierung mit Grundverknüpfungselementen Aus einer schaltalgebraischen Gleichung kann direkt eine Schaltungsrealisierung aus Grundverknüpfungselementen (UND, ODER, NICHT) abgelesen werden. Aus Gründen der Übersicht bietet es sich an die Schaltung nach dem Prinzip des Kreuzschienenverteilers zu zeichnen. Hierbei werden zunächst alle Eingangsvariablen sowie deren Negierte auf senkrechten Linien verfügbar gemacht. Im zweiten Schritt werden die weiteren Schaltelemente waagerecht an diese senkrechten Linien angeschlossen. Beispiel Gegeben sei folgende Schaltfunktion: Y = C̄ D̄ ∨ ĀB D̄ ∨ ABCD Mit dem Prinzip des Kreuzschienenverteilers ergibt sich dann folgende Realisierung: KAPITEL 5. SCHALTNETZE 44 Bei der Art der Schaltungsminimierung, die wir in den vorherigen Kapiteln kennen gelernt haben, läuft die Lösung immer auf eine zweistufige Schaltungsrealisierung hinaus: die erste Stufe besteht in konjunktiven Verknüpfungen und nachfolgend geschaltet ist eine disjunktive Verknüpfung. 5.5 Realisierung mit NAND und NOR Stehen zur Schaltungsrealisierung entweder nur NAND- oder nur NORVerknüpfungselemente zur Verfügung, so muss die schaltalgebraische Gleichung zunächst geeignet umgeformt werden. 5.5.1 Realisierung mit NAND Betrachten wir das gleiche Beispiel wie zuvor: Y = C̄ D̄ ∨ ĀB D̄ ∨ ABCD Ziel ist es die Grundverknüfungen (UND, ODER, NICHT) durch NANDs zu ersetzen. Eine Negation (NICHT) kann einfach durch ein NAND ersetzt werden (siehe Kapitel 4.5.1), so dass wir uns um die Negationen zunächst nicht kümmern. Beim Ersetzen stört zunächst am stärksten das ODER, so dass wir den gesamte Ausdruck doppelt negieren und dann das De Morgan-Gesetz anwenden. Y = C̄ D̄ ∨ ĀB D̄ ∨ ABCD = C̄ D̄ ∨ ĀB D̄ ∨ ABCD = C̄ D̄ ∧ ĀB D̄ ∧ ABCD Diese Form der schaltalgebraischen Gleichung können wir dann direkt mit NANDElementen zeichnen: KAPITEL 5. SCHALTNETZE 45 Hieraus können wir folgende Regel ableiten: Realisierung mit NAND Die DNF oder DMF wird zunächst im gesamten doppelt negiert. Dann wird der untere Negationsstrich nach dem De Morgan-Gesetz aufgespalten. 5.5.2 Realisierung mit NOR Betrachten wir das gleiche Beispiel wie zuvor: Y = C̄ D̄ ∨ ĀB D̄ ∨ ABCD Ziel ist es die Grundverknüfungen (UND, ODER, NICHT) durch NORs zu ersetzen. Eine Negation (NICHT) kann einfach durch ein NOR ersetzt werden (siehe Kapitel 4.5.1), so dass wir uns um die Negationen zunächst nicht kümmern. Beim Ersetzen stört am stärksten das UND, so dass wir die Konjunktionen doppelt negieren und dann das De MorganGesetz anwenden. Um schließlich aus den anfänglichen ODER-Verknüpfungen noch NORs zu machen, muss der gesamte Ausdruck zweimal negiert werden. Y = C̄ D̄ ∨ ĀB D̄ ∨ ABCD = C̄ D̄ ∨ ĀB D̄ ∨ ABCD = C ∨ D ∨ A ∨ B̄ ∨ D ∨ Ā ∨ B̄ ∨ C̄ ∨ D̄ = C ∨ D ∨ A ∨ B̄ ∨ D ∨ Ā ∨ B̄ ∨ C̄ ∨ D̄ Diese Form der schaltalgebraischen Gleichung können wir dann direkt mit NOR-Elementen zeichnen: KAPITEL 5. SCHALTNETZE 46 Hieraus können wir folgende Regel ableiten: Realisierung mit NOR Die Konjunktionen der DNF oder DMF werden zunächst doppelt negiert. Dann wird der untere Negationsstrich jeweils nach dem De MorganGesetz aufgespalten. Schließlich wird der gesamte Ausdruck doppelt negiert. Kapitel 6 Codewandler 6.1 Entwurfsverfahren Ein Codewandler wandelt Zahlen eines (Zahlen-)Codes in einen anderen (Zahlen-)Code um. Zum Beispiel wird eine Zahl im Aiken-Code in eine Zahl im BCD-Code gewandelt. Codewandler lassen sich nach den Regeln der Schaltungssynthese (siehe Kapitel über Schaltalgebra und Schaltnetze) berechnen. Im folgenden Abschnitt soll dies exemplarisch einmal vorgestellt werden. 6.2 Aiken-BCD-Codewandler Ein Aiken-BCD-Codewandler wandelt eine Zahl im Aiken-Code in eine Zahl im BCD-Code um. 1. Schritt: Aufstellen der Aiken-BCD-Codewandler-Wahrheitstabelle 47 KAPITEL 6. CODEWANDLER Dezimal D 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 2 3 4 − − − − − − 5 6 7 8 9 48 Aiken C B 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Q4 0 0 0 0 0 x x x x x x 0 0 0 1 1 BCD Q3 Q2 0 0 0 0 0 1 0 1 1 0 x x x x x x x x x x x x 1 0 1 1 1 1 0 0 0 0 Q1 0 1 0 1 0 x x x x x x 1 0 1 0 1 Am Eingang des Codewandlers können auch Tetraden angelegt werden, die kein gültiges Aiken-Codewort darstellen. In diesen Fällen sind die Signale an den Ausgängen beliebig wählbar („don’t-care Felder“). 2. Schritt: Ermittlung der Ausgangsfunktion über KV-Diagramme KV-Diagramm für Q2 : KV-Diagramm für Q1 : BA\DC 00 01 11 10 BA\DC 00 01 11 10 00 0 0 0 x 00 0 0 |1 x| 01 |1 x 1 x| 01 0 x |1 x| 11 |1 x 1 1| 11 |1 x| 0 0 10 0 x 0 x 10 |1 x| 0 x Q1 = A Q2 = B̄D ∨ B D̄ KAPITEL 6. CODEWANDLER 49 KV-Diagramm für Q3 : KV-Diagramm für Q4 : BA\DC 00 01 11 BA\DC 00 01 11 10 00 0 |1 1| ∩x 00 0 0 0 x 01 0 |x 1| |x | 01 0 x 0 x 11 0 x 0 |1| 11 0 |x 1| 0 10 0 x 0 10 0 |x 1| x 10 ∪x Q3 = B̄C ∨ C̄D 3. Schritt: Realisierung (z.B.: hier in NAND) Q4 = BC Q1 = A Q2 = B̄D ∨ B D̄ = B̄D ∨ B D̄ Q3 = B̄D ∧ B D̄ = B̄C ∨ C̄D = B̄C ∨ C̄D Q4 = B̄C ∧ C̄D = BC = BC Damit ergibt sich für den Aiken-BCD-Codewandler (nach dem Prinzip des Kreuzschienenverteilers): KAPITEL 6. CODEWANDLER 6.3 50 BCD-7-Segment-Codewandler Eine 7-Segment-Anzeige besteht aus sieben Anzeige-Elementen zur Darstellung der dezimalen Ziffern von 0 bis 9. Das nachfolgende Bild zeigt die Bezeichnung der Elemente sowie die Verwendung der 7-Segment-Anzeige. Ein BCD-7-Segment-Codewandler setzt eine BCD-Zahl in entsprechende Signale zur Ansteuerung der 7-Segment-Anzeige um. BCD-codierte Zahlen können so direkt lesbar ausgegeben werden. Kapitel 7 Schaltwerke 7.1 7.1.1 Bistabile Kippstufen Konventionen und Klassifizierung Bistabile Kippstufen (auch: „Flipflops“) sind Schaltelemente, die logische Zustände speichern können. Ein Flipflop besitzt in seiner einfachsten Form zwei Eingänge E1 und E2 sowie zwei Ausgänge Q1 und Q2 . Die Ausgänge besitzen stets entgegengesetzte logische Werte, d.h. Q1 = Q̄2 . Schaltzeichen: Wirkungsweise: Setzvorgang : (E1 = 1) ∧ (E2 = 0) → Q1 = 1 Rücksetzvorgang : (E1 = 0) ∧ (E2 = 1) → Q1 = 0 Speicherfall : (E1 = 0) ∧ (E2 = 0) → Ausgangswerte bleiben unverändert Verbotener Fall : (E1 = 1) ∧ (E2 = 1) → Wirkung hängt vom Flipflop-Typ ab: Bei einfachen Flipflops darf diese Kombination nicht verwendet werden. E1 0 0 1 1 E2 0 1 0 1 Q1 ∗ 0 1 − Q2 ∗ 1 0 − 51 Bedeutung Speicherfall Rücksetzvorgang Setzvorgang Verbotener Fall KAPITEL 7. SCHALTWERKE 52 Die Eingänge E1 und E2 sind sog. statische Eingänge, d.h. sie sprechen auf Eingangszustände an. Weiter gibt es Flipflops mit dynamischen Eingängen, die auf Eingangszustandsänderungen ansprechen. Dynamische Eingänge werden gesondert gekennzeichnet. Dynamischer Eingang, der bei ansteigender Taktflanke reagiert: Dynamischer Eingang, der bei fallender Taktflanke reagiert: Flipflops können mehrere Eingänge haben, die miteinander verknüpft sind. Diese werden entsprechend gekennzeichnet: S Setz-Abhängigkeit R Rücksetz-Abhängigkeit G UND-Abhängigkeit V ODER-Abhängigkeit C Steuer-Abhängigkeit Zusätzlich werden die zusammengehörigen Eingänge durch Ziffern gekennzeichnet. Bei steuernden Eingängen steht die Kennzahl nach dem Buchstaben. Bei gesteuerten Eingängen steht die Kennzahl vor dem Buchstaben. Klassifizierung von Flipflops 1. Nicht-taktgesteuertes FF: reagiert auf Eingangssignale KAPITEL 7. SCHALTWERKE 53 2. Taktzustandsgesteuertes FF: reagiert auf Eingangssignale, wenn gleichzeitig ein Taktsignal anliegt 3. Taktflankengesteuertes FF: reagiert auf Eingangssignale, wenn gleichzeitig eine Taktsignalflanke anliegt. Unterschieden werden positive und negative Taktflankensteuerung. 7.1.2 Nicht-taktgesteuerte Flipflops 7.1.2.1 NOR-Latch 2 NOR-Gatter mit rückgekoppelten Signalen: NOR-Gatter A B A∨B 0 0 1 0 0 1 1 0 0 0 1 1 Merke: Sobald eine 1 am Eingang liegt, erscheint eine Null am Ausgang. Funktionsweise: (E1 = 1) ∧ (E2 = 0) (E1 = 0) ∧ (E2 = 1) E1 = E2 = 0 E1 = E2 = 1 → → → → (Q2 = 0) ∧ (Q1 = 1) (Q1 = 0) ∧ (Q2 = 1) Ausgangssignale unverändert Q1 = Q2 = 0 d.h. Kombination ist verboten Die Eingangskombination E1 = E2 = 1 ist verboten, da die Ausgänge ja vereinbarungsgemäß entgegengesetzte Signale aufweisen müssen. Wahrheitstabelle des NOR-Latches: E1 0 0 1 1 E2 0 1 0 1 Q1 ∗ 0 1 − Q2 ∗ 1 0 − Bedeutung Speicherfall Rücksetzvorgang Setzvorgang Verbotener Fall KAPITEL 7. SCHALTWERKE 7.1.2.2 54 NAND-Latch 2 NAND-Gatter mit rückgekoppelten Signalen: NAND-Gatter A B A∧B 0 0 1 0 1 1 1 0 1 1 1 0 Merke: Sobald eine 0 am Eingang liegt, erscheint eine Eins am Ausgang. Funktionsweise: (E1 = 1) ∧ (E2 = 0) (E1 = 0) ∧ (E2 = 1) E1 = E2 = 0 E1 = E2 = 1 → → → → (Q1 = 1) ∧ (Q2 = 0) (Q2 = 1) ∧ (Q1 = 0) Q1 = Q2 = 1 d.h. Kombination ist verboten Ausgangssignale unverändert Wahrheitstabelle des NAND-Latches: E1 0 0 1 1 E2 0 1 0 1 Q1 − 0 1 ∗ Q2 − 1 0 ∗ Bedeutung Verbotener Fall Rücksetzvorgang Setzvorgang Speicherfall Um das gewünschte Flipflop-Verhalten zu erzeugen, sind noch zwei Änderungen notwendig: Erstens müssen die Eingangssignale negiert werden und zweitens müssen die Ausgangsbezeichnungen getauscht werden. NAND- und NOR-Latches sind die einfachsten Flipflops und bilden die Basis komplexerer Flipflops, NAND- und NOR-Latches werden daher auch Basis-Flipflops genannt. 7.1.3 Taktzustandsgesteuerte Flipflops 7.1.3.1 SR-Flipflop Schaltet man den Eingängen eines Basis-Flipflops jeweils ein UND-Glied vor, so erhält man ein taktzustandsgesteuertes SR-(Setz-Rücksetz-)Flipflop. Signale an den Eingängen erreichen das innere Basisflipflop nur, wenn ein Taktsignal T = 1 anliegt. KAPITEL 7. SCHALTWERKE 55 Als Wahrheitstabelle ergibt sich formal: T 0 0 0 0 1 1 1 1 S 0 0 1 1 0 0 1 1 R 0 1 0 1 0 1 0 1 Q1 ∗ ∗ ∗ ∗ ∗ 0 1 − Q2 ∗ ∗ ∗ ∗ ∗ 1 0 − Bedeutung Keine Signaländerung Keine Signaländerung Keine Signaländerung Keine Signaländerung Keine Signaländerung Rücksetzen Setzen Verbotener Fall Man erkennt an den vielen ∗-Einträgen, dass diese aus der statischen Betrachtung (Schaltnetze) bekannte Form der Wahrheitstabelle hier bei der Beschreibung eines dynamischen Verhaltens wenig hilfreich ist. Wir führen daher eine neue Form der Wahrheitstabelle ein. S 0 0 0 0 1 1 1 1 tn+1 Q1,n+1 0 1 0 0 1 1 − − tn R Q1,n 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 Speicherfall Speicherfall Rücksetzen Rücksetzen Setzen Setzen Verbotener Fall Verbotener Fall Mit: tn : Zeitpunkt vor Anliegen des Taktsignals (T = 0) tn+1 : Zeitpunkt nach Anlegen des Taktsignals (T = 1) Obige Wahrheitstabelle lässt sich auch in Kurzform schreiben. tn S 0 0 1 1 R 0 1 0 1 tn+1 Q1,n+1 Q1,n 0 1 − KAPITEL 7. SCHALTWERKE 7.1.3.2 56 E-Flipflop Durch Zusatzbeschaltung eines SR-FF ergibt sich auch für E1 = E2 = 1 ein Speicherfall. Wahrheitstabelle: tn E1 0 0 1 1 7.1.3.3 E2 0 1 0 1 tn+1 Q1,n+1 Q1,n 0 1 Q1,n SR-Flipflop mit dominantem Rücksetzeingang Durch Zusatzbeschaltung eines SR-FF ergibt sich auch für E1 = E2 = 1 ein Rücksetzfall. Wahrheitstabelle: tn E1 0 0 1 1 7.1.3.4 E2 0 1 0 1 tn+1 Q1,n+1 Q1,n 0 1 0 D-Flipflop Durch folgende Zusatzbeschaltung (D=Delay=Verzögerung). eines SR-FF ergibt sich ein D-FF KAPITEL 7. SCHALTWERKE 57 Wahrheitstabelle: tn D 0 1 7.1.4 tn+1 Q1,n+1 0 1 Taktflankengesteuerte Flipflops Bei der Taktflankensteuerung werden die Flipflops synchron (zeitgleich) geschaltet. Geschaltet wird je nach Ausführungsform beim Übergang des Taktes von Null nach Eins (0 → 1; positive Taktflanke) oder beim Übergang des Taktes von Eins nach Null (1 → 0; negative Taktflanke). Da nur zu diesen kurzen Zeitintervallen die Eingangssignale wirksam werden, sind diese Flipflops sehr störsicher. Zum Aufbau werden sog. Impulsglieder benötigt. 7.1.4.1 Impulsglieder Impulsglieder sind UND-Verknüpfungen mit einem statischen und einem dynamischen Eingang. Der dynamische Eingang liefert entweder bei fallender oder steigender Flanke kurzzeitig das Signal 1. Aufbau eines dynamischen Eingangs durch Ausnutzen der endlichen Laufzeit in einem realen NICHT-Glied. KAPITEL 7. SCHALTWERKE 7.1.4.2 58 Einflankengesteuertes SR-Flipflop Ein einflankengesteuertes SR-FF lässt sich aus zwei Impulsgliedern und einem Basis-FF aufbauen. Schaltzeichen für ein SR-FF mit positiver Taktflankensteuerung: Schaltzeichen für ein SR-FF mit negativer Taktflankensteuerung: Wahrheitstabelle: tn S 0 0 1 1 R 0 1 0 1 tn+1 Q1,n+1 Q1,n 0 1 − Weitere Ausführungsform: Einflankengesteuertes SR-FF mit zusätzlichen taktunabhängigen Setz-und-RücksetzEingängen. Diese zusätzlichen Eingänge werden oft mit invertierten Signalen gesteuert. KAPITEL 7. SCHALTWERKE 7.1.4.3 59 Einflankengesteuertes D-Flipflop Wie in Kapitel 7.1.3.4, das Eingangssignal wird verzögert übernommen, diesmal jedoch mit Flankensteuerung. Schaltzeichen für ein D-FF mit positiver Taktflankensteuerung: Wahrheitstabelle: tn D 0 1 7.1.4.4 tn+1 Q1,n+1 0 1 Einflankengesteuertes T-Flipflop Aus einem SR-Flipflop kann mit rückgekoppelten Signalen ein T-Flipflop (T=Toggle=Umschalten) aufgebaut werden. Bei der entsprechenden Taktflanke ändert sich der Ausgangswert. Schaltzeichen für ein T-FF mit positiver Taktflankensteuerung: Wahrheitstabelle: tn Q1,n 0 1 7.1.4.5 tn+1 Q1,n+1 1 0 Einflankengesteuertes JK-Flipflop Der verbotene Zustand S = R = 1 bei einem SR-FF ist störend. Daher kann durch zusätzliche Beschaltung das universelle JK-FF abgeleitet werden. Das JK-FF verhält sich bei S = R = 1 wie ein T-FF. KAPITEL 7. SCHALTWERKE 60 Schaltzeichen für ein JK-FF mit positiver Taktflankensteuerung: Wahrheitstabelle: tn S 0 0 1 1 7.1.4.6 R 0 1 0 1 tn+1 Q1,n+1 Q1,n 0 1 Q̄1,n Zweiflankengesteuertes (Master-Slave) SR-Flipflop Zusammenschaltung zweier SR-FF mit entgegengesetzter Taktflankensteuerung. Beispiel: Das erste FF (Master-FF) nimmt das Eingangssignal bei steigender auf und das zweite FF (Slave-FF) schaltet das Signal bei der folgenden fallenden Flanke durch („retadierte Ausgänge“). (Eine entsprechende Steuerung durch entgegengesetzte Taktflanken ist ebenso möglich.) Schaltzeichen für ein SR-Master-Slave-FF: Die Symbole ¬ zeigen an, dass das Signal am Ausgang sich eine Taktflanke später ändert als ein Signal am Eingang aufgenommen wird. KAPITEL 7. SCHALTWERKE 7.1.4.7 61 Zweiflankengesteuertes (Master-Slave) JK-Flipflop Wirkungsweise wie bei SR-Master-Slave-FF aber mit Umschaltfunktion für J = K = 1. Aufbau aus einem JK-FF und einem SR-FF: Schaltzeichen für ein JK-Master-Slave-FF: 7.1.5 Zeitablaufdiagramme Für vorgegebene Eingangssignale können die Ausgangssignale aus dem beschriebenen Verhalten der verschiedenen FF abgeleitet werden. Beispiel: Basis-Flipflop tn S 0 0 1 1 R 0 1 0 1 tn+1 Q1,n+1 Q1,n 0 1 − KAPITEL 7. SCHALTWERKE 7.1.6 62 Charakteristische Gleichung Eine charakteristische Gleichung beschreibt die Arbeitsweise eines Flipflops in schaltalgebraischer Form. Die Werte aus der ausführlichen Wahrheitstabelle werden hierzu in ein KV-Diagramm überführt und hieraus wird die schaltalgebraische Gleichung abgeleitet. Beispiel: Taktflankengesteuertes JK-FF Wahrheitstabelle (Kurzform): tn S 0 0 1 1 R 0 1 0 1 tn+1 Q1,n+1 Q1,n 0 1 Q̄1,n Wahrheitstabelle (Ausführliche Form): J 0 0 0 0 1 1 1 1 tn K Q1,n 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 tn+1 Q1,n+1 0 1 0 0 1 1 1 0 Q1,n \JK 00 01 0 0 Speicherfall Speicherfall Rücksetzen Rücksetzen Setzen Setzen Toggle Toggle KV-Diagramm für Q1,n+1 0 1 11 10 ⊂1 ⊃ 1 ⊃ 1 0 0 ⊂ 1 Charakteristische Gleichung: Q1,n+1 = J ∧ Q̄1,n ∨ K̄ ∧ Q1,n KAPITEL 7. SCHALTWERKE 7.2 63 Monostabile Kippstufe Eine monostabile Kippstufe (Monoflop) hat einen stabilen Zustand (Q = 0) und einen instabilen Zustand (Q = 1). Man unterscheidet nachtriggerbare und nicht-nachtriggerbare Monoflops. 7.2.1 Nicht-nachtriggerbares Monoflop Ändert sich das Eingangssignal E von Null auf Eins, so geht der Hauptausgang Q der monostabilen Kippstufe für eine bestimmte Zeit tQ in den instabilen Zustand und kehrt nach dieser Zeit selbständig wieder in den stabilen Zustand zurück. Zeitverlauf: Schaltzeichen: Die Verweildauer tQ im instabilen Zustand wird vom weiteren Verlauf des Eingangssignals nicht beeinflusst (nicht-nachtriggerbar): Die Dauer tQ kann in der Regel durch externe Beschaltung mit einem Widerstand R und einem Kondensator C festgelegt werden. tQ = 0,69RC Monostabile Kippstufen existieren auch mit Taktflankensteuerung. Im Folgenden ist ein Monoflop mit negativer Taktflankensteuerung gezeigt. Das Monoflop kippt dann bei einer negativen Flanke in den instabilen Zustand. KAPITEL 7. SCHALTWERKE 7.2.2 64 Nachtriggerbares Monoflop Bei einem nachtriggerbaren Monoflop kann die Verweilzeit im instabilen Zustand durch geeignete Änderung des Eingangssignals verlängert werden. Zeitverlauf: Schaltzeichen: In dem Beispiel sorgt die zweite negative Taktflanke dafür, dass das Monoflop ab dieser Taktflanke für eine Dauer von tQ im instabilen Zustand bleibt. 7.3 Verzögerungsglieder Verzögerungsglieder haben die Aufgabe Taktflanken des Eingangssignals verzögert am Ausgang auszugeben. Die Verzögerungszeit t1 gibt an, um welche Zeit die steigende Taktflanke verzögert wird und t2 gibt an, um welche Zeit die fallende Taktflanke verzögert wird. Zeitverlauf: KAPITEL 7. SCHALTWERKE Schaltzeichen: Beispiel eines Einschaltverzögerungsgliedes: Zeitverlauf: Aufbau eines Einschaltverzögerungsgliedes (1. Idee): 65 KAPITEL 7. SCHALTWERKE 66 Aufbau eines Einschaltverzögerungsgliedes (2. Idee: Verbesserte Schaltung ohne Nadelimpuls): Es werden zwei Negationsglieder hinzugefügt, um auch das Signal am oberen UND-Gatter-Eingang zu verzögern. 7.4 Astabile Kippstufe Eine astabile Kippstufe hat zwei nicht-stabile Zustände. Zeitverlauf: Schaltzeichen: Anwendung: Erzeugung von Rechteck-Taktsignalen für Digitalschaltungen. Kapitel 8 Zähler 8.1 Zählerarten Zähler sind sequentielle Schaltungen, die binäre Codes in Abhängigkeit eines Taktsignals zählen. Entsprechend gibt es Zähler für den Dual-Code, den BCD-Code, den Aiken-Code usw. Weiterhin kann man Vorwärts- und Rückwärtszähler unterscheiden. Bei der Realisierung ist die Unterteilung in synchrone und asynchrone Zähler wichtig: Synchrone Zähler Alle verwendeten Flipflops werden durch einen gemeinsamen Takt geschaltet. Asynchrone Zähler Mindestens zwei Flipflops verwenden unterschiedliche Taktsignale. Da asynchrone Zähler vom Aufbau einfacher sind, werden wir uns diese zunächst ansehen. Für synchrone Zähler wollen wir dann schließlich ein allgemeines Entwurfsverfahren kennenlernen. 8.2 8.2.1 Asynchrone Zähler 3-Bit Dualvorwärtszähler Werden drei Toggle-FF (realisiert durch JK-FF mit J = K = 1) mit negativer Taktflankensteuerung aneinander gehängt, so entsteht ein 3-Bit Dualvorwärtszähler. Der Hauptausgang der FF ist jeweils mit dem dynamischen Eingang der nachfolgenden FF verbunden. Zeitablaufdiagramm: 67 KAPITEL 8. ZÄHLER 68 Der Zähler zählt die Dualzahl Q3 Q2 Q1 (mit Q3 =MSB und Q1 =LSB) von 0(10) = 000(2) bis 7(10) = 111(2) und springt dann wieder auf die Null zurück. Schaltzeichen: Der Text im Steuerblock zeigt an, dass es sich um einen Zähler (CTR = Counter) mit 8 Zählschritten (0 . . . 7) handelt. Es wird vorwärts (+) gezählt. Der Funktionsblock enthält die Ausgänge und zeigt mit dem „Plus“-Symbol ebenfalls die Zählrichtung an. 8.2.2 3-Bit Dualrückwärtszähler Realisierung wie zuvor, jedoch diesmal werden die Signale der invertierten Ausgänge mit den nachfolgenden Takteingängen verbunden. Zeitablaufdiagramm: KAPITEL 8. ZÄHLER 69 Der Zähler zählt die Dualzahl Q3 Q2 Q1 (mit Q3 =MSB und Q1 =LSB) von 7(10) = 111(2) bis 0(10) = 000(2) rückwärts und springt dann wieder auf die 7 zurück. Schaltzeichen: Der Text im Steuerblock zeigt an, dass es sich um einen Zähler (CTR = Counter) mit 8 Zählschritten (0 . . . 7) handelt. Es wird rückwärts (-) gezählt. Der Funktionsblock enthält die Ausgänge und zeigt mit dem „Minus“-Symbol ebenfalls die Zählrichtung an. 8.2.3 3-Bit Dualzähler mit umschaltbarer Zählrichtung Durch eine Zusatzbeschaltung wird die Zählrichtung mit einem Umschaltsignal U wählbar. Die Schaltung sieht dann folgendermaßen aus: KAPITEL 8. ZÄHLER 70 U=1 Vorwärtszählen U=0 Rückwärtszählen Schaltzeichen: 8.2.4 BCD-Vorwärtszähler Ein BCD-Zähler zählt die Dualzahl Q4 Q3 Q2 Q1 (mit Q4 =MSB und Q1 =LSB) von 0(10) = 0000(2) bis 9(10) = 1001(2) und springt dann wieder auf die 0 zurück. Der Aufbau kann mit vier JK-FF und einem UND-Gatter erfolgen. Zeitablaufdiagramm: KAPITEL 8. ZÄHLER 71 Schaltzeichen: 8.2.5 Dekaden-Zähler Mit einem BCD-Zähler kann eine Dekade gezählt werden (0 − 9). Mit der Zusammenschaltung von zwei BCD-Zählern kann über zwei Dekaden (0 − 99) gewählt werden. KAPITEL 8. ZÄHLER 72 Funktionsweise: Immer, wenn der BCD-Zähler für die Einerziffer von Neun auf Null zurückspringt, entsteht an Q4 eine negative Taktflanke. Diese negative Taktflanke veranlasst den zweiten BCD-Zähler (für die Zehnerziffer) eine Ziffer weiterzuzählen. Vorteil eines Dekadenzählers gegenüber einem Dualzähler: Einfache Ausgabe des Dezimalwertes der Zahl möglich (mit Hilfe von BCD-7-Segment-Codewandlern und 7-SegmentAnzeige-Elementen, siehe Kapitel 6.3). 8.2.6 Modulo-n-Zähler Der Modulo-n-Zähler zählt n duale Schritte bei der 0 beginnend. Zum Aufbau dieser Zähler werden JK-Flipflops mit taktunabhängigen Rücksetzeingängen benötigt. Der Aufbau ist besonders einfach, jedoch erscheint für kurze Zeit ein unerwünschter Zustand. Beispiel: Modulo-5-Zähler Zeitablaufdiagramm: KAPITEL 8. ZÄHLER 73 Funktionsweise: Zunächst verhält sich die Schaltung wie ein 3-Bit-Dual-Vorwärtszähler. nach dem 5. Taktsignal liefert die NAND-Verknüpfung von Q1 und Q3 kurzzeitig eine Null an den taktunabhängigen Rücksetzeingängen der Flipflops, so dass diese auf Null zurückgesetzt werden und die Schaltung wieder bei Q1 = Q2 = Q3 = 0 beginnt. (Nachteil: Unerwünschter 6. Zustand wird kurzfristig angezeigt.) 8.3 Synchrone Zähler Bei Synchron-Zählern werden alle FF durch einen gemeinsamen Takt zeitgleich (synchron) geschaltet. Die schaltungstechnische Realisierung ist im allgemeinen aufwendiger als bei asynchronen Zählern, da ja ein Freiheitsgrad (Wahl des Taktsignals) weniger vorhanden ist. 8.3.1 3-Bit Dualvorwärtszähler Regel für den Aufbau von synchronen Dual-Vorwärtszählern mit JK-FF: 1. Die Eingänge J und K sind bei jedem FF miteinander zu verbinden (J=K) 2. Beim 1. FF wird ein 1-Signal an die Eingänge gelegt. Beim 2. FF das Ausgangssignal vom 1. FF. Alle folgenden FF erhalten als Eingangssignal die UND-Verknüpfung der Hauptausgänge aller vorangehenden FF. KAPITEL 8. ZÄHLER 74 Zeitablaufdiagramm: 8.3.2 3-Bit Dualrückwärtszähler Aus einem synchronen 3-Bit-Dual-Vorwärtszähler lässt sich ein Rückwärtszähler aufbauen, wenn statt der Hauptausgänge die invertierenden Ausgänge verwendet werden. 8.4 8.4.1 Entwurfsverfahren Entwurfsverfahren mit Hilfe der charakteristischen Gleichung Vorgehensweise für den Entwurf mit JK-FF: 1. Aufstellen der Wahrheitstabelle, aus der die gewünschte Funktion des Zählers hervorgeht 2. Mittels KV-Diagrammen Ablesen von vereinfachten schaltalgebraischen (Anwendungs-)Gleichungen für die Ausgangsvariablen des Zählers 3. Koeffizienten-Vergleiche der charakteristischen Gleichungen der FF und der Anwendungsgleichungen liefern die Verknüpfungsgleichungen für die Ansteuerung der FFEingänge 4. Zeichnen des Schaltbildes aus den Verknüpfungsgleichungen Beispiel: 4-Bit-Dual-Vorwärtszähler 1. Schritt: Aufstellen der Wahrheitstabelle KAPITEL 8. ZÄHLER 75 tn Dezimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 QD 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 QC 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 QB 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 QA 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 QD 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 tn+1 QC QB 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 Dezimal QA 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 2. Schritt: Bestimmung der Anwendungsgleichungen durch Koeffizientenvergleich KV-Diagramm für QA,n+1 KV-Diagramm für QB,n+1 QB QA \QD QC 00 01 11 10 QB QA \QD QC 00 01 11 10 00 |1 1 1 1| 00 0 0 0 01 0 0 0 0 01 ⊂ 1 0 1 1 ⊃ 1 11 0 0 0 0 11 0 0 0 0 10 |1 1 1 1| 10 1 1 ⊂ 1 ⊃ 1 QB,n+1 = QA Q̄B ∨ Q̄A QB n QA,n+1 = Q̄A,n KV-Diagramm für QC,n+1 KV-Diagramm für QD,n+1 QB QA \QD QC 00 01 11 10 QB QA \QD QC 00 01 11 00 0 || 1 1 || 0 00 0 0 || 1 ∩1|| 01 0 |1 1| 0 0 0 |1 | 1| 0 0 ⊂ 1 01 11 0 1 0 |1| |1 1| 0 10 0 0 |1 11 ⊃ 1 10 0 QC,n+1 = Q̄A QC ∨ Q̄B QC ∨ QA QB Q̄C n QD,n+1 = 10 ∪1 | Q̄B QD ∨ QD Q̄C ∨ QD Q̄A ∨ QA QB QC Q̄D n KAPITEL 8. ZÄHLER 76 3. Schritt: Charakteristische Gleichungen der FF Die charakteristische Gleichung eines JK-FF lautet: Qn+1 = J ∧ Q̄ ∨ K̄ ∧ Q n Für jeder der 4 JK-FF (A,B,C,D) gilt eine Gleichung dieser Form. Bestimmung der Verknüfungsgleichungen durch Koeffizientenvergleich: Charakteristische Gleichung für Flipflop A im Vergleich mit der Anwendungsgleichung: QA,n+1 = JA ∧ Q̄A ∨ K̄A ∧ QA n QA,n+1 = Q̄A,n Koeffizientenvergleich liefert: JA = 1 und K̄A = 0 → KA = 1 Charakteristische Gleichung für Flipflop B im Vergleich mit der Anwendungsgleichung: QB,n+1 = JB ∧ Q̄B ∨ K̄B ∧ QB n QB,n+1 = QA Q̄B ∨ Q̄A QB n Koeffizientenvergleich liefert: JB = QA und KB = Q A Charakteristische Gleichung für Flipflop C im Vergleich mit der Anwendungsgleichung: QC,n+1 = JC ∧ Q̄C ∨ K̄C ∧ QC n QC,n+1 = Q̄A QC ∨ Q̄B QC ∨ QA QB Q̄C n = QC ∧ Q̄A ∨ Q̄B ∨ QA QB Q̄C n = QC ∧ QA ∧ QB ∨ QA QB Q̄C n Koeffizientenvergleich liefert: JC = QA ∧ QB und KC = QA ∧ QB Charakteristische Gleichung für Flipflop D im Vergleich mit der Anwendungsgleichung: QD,n+1 = JD ∧ Q̄D ∨ K̄D ∧ QD n QD,n+1 = Q̄B QD ∨ QD Q̄C ∨ QD Q̄A ∨ QA QB QC Q̄D n = QD ∧ Q̄A ∨ Q̄B ∨ Q̄C ∨ QA QB QC Q̄D n = QD ∧ QA ∧ QB ∧ QC ∨ QA QB QC Q̄D n Koeffizientenvergleich liefert: JC = QA ∧ QB ∧ QC 4. Schritt: Zeichnen der Schaltung und KC = QA ∧ QB ∧ QC KAPITEL 8. ZÄHLER 77 Überprüfung des Ergebnisses: Schaltung stimmt mit den Regeln aus Kapitel 8.3.1 überein. 8.4.2 Vereinfachtes Entwurfsverfahren mit direktem Aufstellen der Verknüpfungsgleichungen Zunächst werden die aufeinander folgenden Zählzustände des Zählers in die linken 4 Spalten der einer Tabelle eingetragen. In diesem Beispiel wollen wir einen 3-Exzeß-Code-Zähler entwerfen, so dass hier die Zählschritte 0011 bis 1100 auftauchen. Schließlich soll der Zähler wieder am Anfang beginnen, so dass der letzte Zustand gleich dem ersten ist. Bei einem Zähler mit 4-Stellen benötigen wir 4-Flipflops FF-A bis FF-D. Die J- und KEingänge der Flipflops sind ebenfalls in der Tabelle aufgeführt. Nun ist bei jedem Flipflop und jedem Zählschritt einzutragen, wie die Signale am J− und K−Eingang aussehen müssen, um das gewünscht Verhalten zu erreichen. Geht zum Beispiel ein Flipflop vom Zustand Null in den Zustand Null über (0 → 0), so kann dies durch den Speicherfall (J = K = 0) oder den Rücksetzfall (J = 0, K = 1) erreicht werden. Daraus folgt, dass J Null sein muss (J = 0) und K beliebig sein darf (K = x, don’t care-Term). Alle möglichen Übergangsfälle sind in der folgenden Tabelle aufgeführt. Qn Qn+1 J K Bedeutung 0 0 0 x Speichern oder Rücksetzen 0 1 1 x Setzen oder Toggeln 1 0 x 1 Rücksetzen oder Toggeln 1 1 x 0 Setzen oder Speichern KAPITEL 8. ZÄHLER 78 QA QB QC QD JA KA JB KB JC KC JD KD 0 0 1 1 0 x 1 x x 1 x 1 0 1 0 0 0 x x 0 0 x 1 x 0 1 0 1 0 x x 0 1 x x 1 0 1 1 0 0 x x 0 x 0 1 x 0 1 1 1 1 x x 1 x 1 x 1 1 0 0 0 x 0 0 x 0 x 1 x 1 0 0 1 x 0 0 x 1 x x 1 1 0 1 0 x 0 0 x x 0 1 x 1 0 1 1 x 0 1 x x 1 x 1 1 1 0 0 x 1 x 1 1 x 1 x 0 0 1 1 Die Werte aus der Tabelle werden in die folgenden KV-Diagramme übertragen. Die nicht ausgefüllten Felder entsprechen den Pseudotetraden, sind also wie don’t care Felder zu werten. Nach Auslesen der disjunktiven Minimalform kann die Schaltung direkt gezeichnet werden. KV-Diagramm für KA KV-Diagramm für JA 01 11 10 QC QD \QA QB 00 0 x x 01 0 QC QD \QA QB 00 11 0 10 01 11 10 00 x 1 0 x 01 x 0 1 x 11 x 0 0 x 10 x 0 JA = QB QC QD x KA = QB KV-Diagramm für JB QC QD \QA QB KV-Diagramm für KB 01 11 10 QC QD \QA QB 00 x x 0 01 x 11 00 00 1 10 JB = QC QD 00 01 11 10 00 0 1 x 0 01 0 x x 1 11 1 x x 0 10 0 x x KB = QA ∨ QC QD KAPITEL 8. ZÄHLER 79 KV-Diagramm für JC QC QD \QA QB KV-Diagramm für KC 01 11 10 QC QD \QA QB 00 0 1 0 01 1 00 x 11 10 01 11 10 00 x x x 1 01 x x x x 11 1 1 x x 10 0 0 JC = QD ∨ QA QB 1 KC = Q C Q D KV-Diagramm für KD KV-Diagramm für JD 01 11 10 QC QD \QA QB 00 1 1 1 01 x QC QD \QA QB 11 00 00 x 10 JD = 1 00 01 11 10 00 x x x x 01 1 1 x x 11 1 1 1 1 10 x x 1 KD = 1 Hieraus ergibt sich das folgende Schaltbild des 3-Exzess-Code-Zählers mit 4 JKFlipflops. Kapitel 9 Einstieg in die Automatentheorie Nach [3] ... 9.1 Autonomer Automat, Medwedjew-Automat 9.2 Zustandsdiagramme 9.3 Zustandsfolgetabelle 9.4 Entwurf mit JK- und D-Flip-Flops 80 Moore-, Mealy und Kapitel 10 Ausgewählte Schaltungen 10.1 Schieberegister Schieberegister sind Schaltwerke, die eine Information taktgesteuert Bit für Bit aufnehmen und dann wieder abgeben. Mögliche Einsatzgebiete ergeben sich bei Rechenschaltungen sowie bei der Parallel/Seriell-Umsetzung. 10.1.1 Serielle Ein- und Ausgabe Im Folgenden ist ein 3-Bit-Schieberegister - aufgebaut aus drei D-Flipflops - gezeigt. Es besitzt einen seriellen Eingang (E) und einen seriellen Ausgang (Q). Das Schaltzeichen für das Schieberegister (SRG=„Shift Register (engl.)“) ähnelt dem eines Zählers. Das zugehörige Zeitablaufdiagramm im nächsten Bild zeigt, wie das Eingangssignal taktweise aufgenommen und von Flipflop zu Flipflop weitergeschoben wird. 81 KAPITEL 10. AUSGEWÄHLTE SCHALTUNGEN 10.1.2 82 Serielle und parallele Ein- und Ausgabe Das folgende Bild zeigt ein Schieberegister - aufgebaut aus SR-Flipflops - mit paralleler und serieller Daten-Ein- und Ausgabe. E: Serieller Eingang (aktiv falls Steuersignal U = 0) Q: Serieller Ausgang A,B: Parallele Eingang (aktiv falls Steuersignal U = 1) QA ,QB : Parallele Ausgänge KAPITEL 10. AUSGEWÄHLTE SCHALTUNGEN 10.1.3 83 Ringregister Verbindet man des Ausgang eines Schieberegisters mit seinem Eingang, so erhält man ein Ringregister, in dem die Informationen im Kreis geschoben werden können. U = 0: Serieller Schieberegisterbetrieb U = 1: Ringregisterbetrieb KAPITEL 10. AUSGEWÄHLTE SCHALTUNGEN 10.2 10.2.1 84 Frequenzteiler Begriffe Frequenzteiler sind Schaltungen, die die Frequenz eines Taktsignals in einem bestimmten Verhältnis hinunterteilen. Wichtige Begriffe sind die Frequenz und das Puls-PausenVerhältnis. Die Frequenz f ergibt sich aus dem Kehrwert der Periodendauer T : f= 1 T Das Puls-Pausen-Verhältnis ist definiert als Verhältnis der Pulsdauer tP uls zur Pausendauer tP ause . Für ein Taktsignal ist ein Puls-Pausen-Verhältnis von 1 gewünscht, da dann der Oberwellenanteil (Fourier-Reihenentwicklung) minimal wird. 10.2.2 Teilerverhältnis 1:2n Asynchrone Frequenzteiler mit einem Teilerverhältnis 1:2n lassen sich einfach durch aneinandergehängte T-Flipflops realisieren. Mit einem Flipflops lässt sich eine Teilung 1:2, mit zwei Flipflops eine Teilung 1:4 und so weiter realisieren. Wir erkennen bei diesen Schaltungen sofort eine enge Verwandschaft mit Zählern (siehe Kapitel 8)! Frequenzteiler 1:2 (f2 = 21 f1 ): Frequenzteiler 1:4 (f2 = 41 f1 ): KAPITEL 10. AUSGEWÄHLTE SCHALTUNGEN 10.2.3 85 Teilerverhältnis 1:3 Das folgende Bild zeigt einen synchronen Zähler, der als synchroner Frequenzteiler mit einem Teilerverhältnis 1:3 verwendet wird. 10.2.4 Entwurfsverfahren Aufgrund der engen Verwandtschaft mit Zählern können die dort (Kapitel 8) eingeführten Entwurfsverfahren verwendet werden. In der Übung wird dies am Beispiel des synchronen 1:3 Frequenzteiler demonstriert. Der Frequenzteiler entspricht einem Zähler mit folgender Zählfolge: 00-01-10-00. KAPITEL 10. AUSGEWÄHLTE SCHALTUNGEN 10.3 86 Rechenschaltungen Mit digitalen Schaltungen können auch Rechnungen (Addition, Subtraktion, Multiplikaion und Division) durchgeführt werden. Wir wollen uns hier auf die Addition und Subtraktion geschränken, da Multiplikation und Division in einfacher Weise auf Addition und Subtraktion zrückgeführt werden können. 10.3.1 Addierschaltungen 10.3.1.1 Halbaddierer Ein Halbaddierer kann zwei duale Ziffern (A + B) addieren. Das Ergebnis ist zweistellig (Übertrag U (CP O =„ Carry-Out Output“) und Summe S). Im Symbol kann statt des Summenzeichens ( ) auch HA stehen. Die Wahrheitstabelle lautet: A B U 0 0 0 0 1 0 1 0 0 1 1 1 Aufbau der Schaltung: 10.3.1.2 S 0 1 1 0 S = Ā ∧ B ∨ A ∧ B̄ U = A∧B Volladdierer Ein Volladierer kann drei duale Ziffern (A + B + CI ) addieren, wie dies beim Summieren von zwei mehrstelligen Dualzahlen benötigt wird. (Neben den gleichwertigen Stellen muss möglicherweise noch ein Übertrag (CI , „Carry-In Input“) aus der Addition der nächstniederwertigeren Stelle berücksichtigt werden.) KAPITEL 10. AUSGEWÄHLTE SCHALTUNGEN A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 CI 0 1 0 1 0 1 0 1 U 0 0 0 1 0 1 1 1 87 S 0 1 1 0 1 0 0 1 Ein Volladdierer kann aus zwei Halbaddierern und einem ODER-Gatter aufgebaut werden. Die Funktion lässt sich anhand der Wahrheitstabelle einfach belegen. 10.3.1.3 Parallele 4-Bit Addierschaltung Zur Addition von zwei vierstelligen Dualzahlen werden drei Volladdierer (VA) und ein Halb-Addierer (HA) benötigt. Die zu addierenden Summanden werden dazu zunächst ein zwei 4-Bit-Register geschrieben. Das Ergebnisregister muss 5-Stellen besitzen. Mit steigender Stellenzahl steigt auch die Zahlt der benötigten Volladdierer. Obgleich bei der Addition alle Stellen parallel verarbeitet werden, steigt die Verarbeitungsdauer mit KAPITEL 10. AUSGEWÄHLTE SCHALTUNGEN 88 steigender Stellenzahl, da möglicherweise ein serieller Übertrag alle Volladdierer durchlaufen muss! 10.3.1.4 Serielle 4-Bit Addierschaltung Eine serielle Addierschaltung kann unter Verwendung eines einzigen Volladdierers aufgebaut werden. Zusätzlich werden ein D-Flipflop, zwei 4-Bit-Schieberegister für die Summanden sowie ein 4-Bit-Schieberegister für das Ergebnis benötigt. Der letzte Übertrag (5. Ergebnisstelle steht nach 4 Taktschritten am Ausgang des D-Flipflops). Die eigentliche Addition läuft taktgesteuert ab und benötigt daher also mehr Zeit als die parallele Addition. 10.3.2 Subtrahierschaltungen 10.3.2.1 Halbsubtrahierer Ein Halbsubtrahierer kann eine duale Ziffern (B, Subtrahend) von einer anderen dualen Ziffer (A, Minuend) abziehen. Das Ergebnis ist zweistellig (Entleihung E = BO („BorrowOut Output“) und Differenz D). Die Wahrheitstabelle A B 0 0 0 1 1 0 1 1 Aufbau der Schaltung: lautet: E D 0 0 1 1 0 1 0 0 D = Ā ∧ B ∨ A ∧ B̄ E = A ∧ B̄ KAPITEL 10. AUSGEWÄHLTE SCHALTUNGEN 10.3.2.2 89 Vollsubtrahierer Ein Vollsubtrahierer kann zum Wert der abzuziehenden Ziffer B (Subtrahend) eine Entleihung (E = BI („Borrow-In Input“)) hinzuaddieren und so den vergrößerten Subtrahenden vom Minuend A abziehen. A − (B + BI ) = A − B − BI Das Ergebnis ist zweistellig (Entleihung E = BO („Borrow-Out Output“) und Differenz D). A B BI E D 0 0 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 0 1 1 1 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 1 1 1 1 10.3.2.3 4-Bit Subtrahierschaltung Eine 4-Bit Subtrahierschaltung kann eine (positive) 4-Bit-Dualzahl von einer anderen 4-Bit-Dualzahl abziehen (Die beiden 4-Bit Zahlen können auch als positive 5-BitZweierkomplementzahlen aufgefasst werden, da die 5. Stelle dann ja eine Null enthielte). Grundsätzlich kann das Ergebnis negativ werden, deshalb hat das Ergebnisregister 5 Stellen. Das Ergebnis erscheint dann als 5-stellige Zweierkomplementzahl. KAPITEL 10. AUSGEWÄHLTE SCHALTUNGEN 10.3.2.4 90 Subtrahierschaltung mit Volladdierern Unter Ausnutzung des Zweierkomplements (siehe Kapitel 2.8.2) kann auch eine 4-Bit Addierschaltung mit Hilfe von 4 Volladdierern aufgebaut werden. Die abzuziehende Zahl wird hier unter Verwendung von Negationsgliedern und durch die Addition des Wertes 1 invertiert. Für die benötigte Stellenzahl gilt das im Kapitel über das Zweierkomplement gesagte. KAPITEL 10. AUSGEWÄHLTE SCHALTUNGEN 10.3.2.5 91 Addier-Subtrahierwerk Durch leichte Abwandlung der vorherigen Schaltung kann durch Vorgabe eines Steuersignals S wahlweise addiert oder subtrahiert werden. Hierzu werden die Negationsglieder durch Exklusiv-ODER-Glieder ersetzt und die Schaltung wie folgt geändert. S = 0 : Addition S = 1 : Subtraktion Wahrheitstabelle der Exklusiv-ODER-Schaltung S 0 0 1 1 A 0 1 0 1 X 0 1 1 0 Für S = 0 ergibt sich X = A. Für S = 1 ergibt sich X = Ā. D.h. für S = 1 werden die Bits des Registers invertiert und es wird eine Eins am CI -Eingang von VA0 hinzuaddiert. Für S = 0 werden die Bits des Registers unverändert durch das XOR-Gatter geleitet und am CI -Eingang von VA0 wird eine Null hinzuaddiert. KAPITEL 10. AUSGEWÄHLTE SCHALTUNGEN 10.4 92 Digitale Auswahl- und Verbindungsschaltungen 10.4.1 Multiplexer Ein Multiplexer gibt ein oder mehrere Eingangssignale in Abhängigkeit von Steuersignalen an einen oder mehrere Ausgänge weiter. 10.4.1.1 4-Bit-zu-1-Bit-Multiplexer Ein 4-Bit-zu-1-Bit-Multiplexer wählt über zwei Steuersignale S0 und S1 aus vier Eingangssignalen A − D eines aus, das an den Ausgang Z weitergeleitet wird. Wahrheitstabelle: S1 0 0 1 1 Schaltung: S0 0 1 0 1 Z A B C D KAPITEL 10. AUSGEWÄHLTE SCHALTUNGEN 93 Werden die Steuersignal S0 und S1 über einen 2-Bit-Dual-Zähler gesteuert, so liegen am Ausgang Z nacheinander die Signale A − D an (→ Zeitmultiplex). 10.4.1.2 2x2-Bit-zu-2-Bit-Multiplexer Ein 2-Bit-zu-2-Bit-Multiplexer wählt über ein Steuersignal S aus 2-mal-2 Eingangssignalen A1 , A2 bzw. B1 , B2 ein Paar aus, das an die Ausgänge Z1 und Z2 weitergeleitet wird. Wahrheitstabelle: S 0 1 Z1 A1 B1 Z2 A2 B2 Schaltung: 10.4.2 Demultiplexer 10.4.2.1 1-Bit-zu-4-Bit-Demultiplexer Ein 1-Bit-zu-4-Bit-Demultiplexer gibt in Abhängigkeit von zwei Steuersignalen S1 und S0 ein Eingangssignal A an einen der Ausgänge QA bis QB weiter. Alle anderen Ausgänge führen eine Null. KAPITEL 10. AUSGEWÄHLTE SCHALTUNGEN 94 Wahrheitstabelle: S1 0 0 1 1 S0 0 1 0 1 QA E 0 0 0 QB 0 E 0 0 QC 0 0 E 0 QD 0 0 0 E Schaltung: Multiplexer und Demultiplexer können im Zusammenspiel dazu verwendet werden über eine Signalleitung im Zeitmultiplexverfahren verschiedene Übertragungs-Kanäle zu realisieren. Kapitel 11 Programmierbare Logische Schaltungen (PLD) 11.1 Einleitung Programmierbare Logische Schaltungen werden als PLD = „Programmable Logic Device“ bezeichnet. Schaltalgebraische Funktionen lassen sich (wie bisher dargestellt) durch Verwendung von einzelnen logischen Gattern realisieren, also z.B. durch Verwendung der drei logischen Grundfunktionen NOT, AND, OR oder durch Verwendung der abgeleiteten Funktionen NAND und NOR. Bei komplexen schaltalgebraischen Funktionen lassen sich solche Schaltungen aber platzsparender und mit höherer Schaltgeschwindigkeit unter Verwendung von programmierbaren ICs aufbauen. Man unterscheidet programmierbare ICs, die vom Hersteller unter Verwendung spezieller Masken programmiert werden (→ ASICs, „Application specific integrated circuit“) und programmierbaren ICs, die vom Anwender programmiert werden können (→ „PLD“). 11.2 Grundlagen Jede schaltalgebraische Funktion kann durch ihre disjunktive Normalform ausgedrückt werden. Wie wir gesehen haben, handelt es sich dabei um eine zweistufige Realisierung (1. Stufe: konjunktiv, 2. Stufe: disjunktiv). Beispiel: PLD mit zwei Eingangsvariablen Will man in einer PLD jede Schaltfunktion mit zwei Eingangsvariablen realisieren können, so müssen zunächst vier Vollkonjunktionen programmierbar sein. Anschließend müssen diese Vollkonjunktionen disjunktiv verknüpfbar sein. Um die Programmierbarkeit ausdrücken zu können, benötigen wir zunächst eine geeignete Notation: 95 KAPITEL 11. PROGRAMMIERBARE LOGISCHE SCHALTUNGEN (PLD) 96 Die PLD kann dann wie folgt aufgebaut sein: Die waagerechnten Leitungen führen eine logische Null, falls keine programmierbare Verbindung mit einem Eingangssignal anliegt. Dies kann durch einen hochohmigen Widerstand gegen Masse (pull down Widerstand) realisiert sein. (Alternativ können die Leitungen auch hochohmigen gegen die Versorgungsspannung geschaltet sein und somit eine logische Eins führen. Man spricht dann von einem pull up Widerstand). Mit dieser Schaltung lässt sich jede denkbare diskunktive Normalform mit zwei Variablen realisieren. Beispiel: Äquivalenzverknüpfung Funktionstabelle: KAPITEL 11. PROGRAMMIERBARE LOGISCHE SCHALTUNGEN (PLD) A 0 0 1 1 B 0 1 0 1 97 Y 1 0 0 1 Die Programmierung besteht also darin, an den richtigen Leitungskreuzungen leitende Verbindungen herzustellen. Dies kann zum Beispiel bei Schaltungen mit MOS-FETs (Metall Oxyd Semiconductor Feldeffekttransistoren) dadurch geschehen, dass das Gate eines solchen FET aufgeladen wird und der Kanal des FET leitend wird. Die Gateladung kann bei einigen Ausführungen entweder durch UV-Licht geslöscht werden (EPLD = „Erasable PLD“) oder durch elektrische Impulse (EEPLD = „Electrical Erasable PLD“). Alternativ kann eine Programmierung dadurch erfolgen, dass Verbindungen - durch durchbrennen von Sicherungen - geeignet getrennt werden. Ein Löschen und Neuprogrammieren ist hier nicht möglich. 11.3 Allgemeine PLD-Schaltung Eine allgemeine PLD-Schaltung besteht aus einer UND-Matrix und einer ODER-Matrix. Sowohl UND- als auch ODER-Matrix können programmierbar sein. Beispiel: 3 Eingänge und 2 Ausgänge KAPITEL 11. PROGRAMMIERBARE LOGISCHE SCHALTUNGEN (PLD) Vereinfachte Darstellung durch Verwendung mehradriger Leitungen. Beispiel: Q1 = AB̄C ∨ AB C̄ Q2 = AB̄C ∨ ĀB̄ C̄ Programmierte Verbindungen siehe oben. 11.4 Einteilung von PLDs 11.4.1 PAL/GAL Schaltungen PAL = „Programmable Array Logic“= programierbare Matrix Logik Eigenschaften: 98 KAPITEL 11. PROGRAMMIERBARE LOGISCHE SCHALTUNGEN (PLD) 99 • UND-Matrix ist vom Anwender programmierbar. • ODER-Matrix ist fest verdrahtet. GAL = „Generic rray Logic“(wie PAL, aber elektrisch löschbar) 11.4.2 PROM Schaltungen PROM = „Programmable Read Only Memory“= programierbarer Nur-Lese-Speicher Eigenschaften: • UND-Matrix ist nicht programmierbar. • ODER-Matrix ist vom Anwender programmierbar. 11.4.3 FPLA Schaltungen FPLA = „Field Programming Logic Array“= feldprogramierbare Logik-Matrix Eigenschaften: • UND-Matrix und ODER-Matrix sind vom Anwender programmierbar. 11.5 Programmierung von PLDs PLDs lassen sich über den Computer mittels Software und Programmiergerät komfortabel programmieren. Die logische Funktion, die in dem Baustein verwirklicht werden soll, kann z.B. in Form der schaltalgebraischen Gleichung oder Wahrheitstabelle oder als Zeichnung eingegeben werden. Nach erfolgter Programmierung wird der PLD-Baustein von der Software auf die richtige Funktionsweise geprüft. 11.5.1 Beispiel: PAL16L8 • UND-Matrix ist vom Anwender programmierbar. • ODER-Matrix ist fest verdrahtet. Logikdiagramm des PAL16L8 KAPITEL 11. PROGRAMMIERBARE LOGISCHE SCHALTUNGEN (PLD) Erläuterungen zum Logikdiagramm Allgemeines: • IC mit 20 PINs 100 KAPITEL 11. PROGRAMMIERBARE LOGISCHE SCHALTUNGEN (PLD) 101 • PIN 10: GND (Ground, Masse) • PIN 20: VCC (Versorgungsspannung) • max. 16 Eingänge • max. 8 Ausgänge • „L“: Low-Active (negierte Ausgänge!) • PAL → programmierbare UND-Matrix, festverdrahtete ODER-Matrix Elemente des Logikdiagramms Eingangsverstärker: Abschaltbarer negierter Ausgangsverstärker: Y ( Ā , falls X = 1 = hochohmig abgeschlossen, falls X = 0 Beispiel: PIN 18 kann als negierter Ausgang (X=1) oder als Eingang (X=0) verwendet werden. Programmierbare UND: Festverdrahtete ODER: Besonderheit: KAPITEL 11. PROGRAMMIERBARE LOGISCHE SCHALTUNGEN (PLD) 102 • Signalleitungen zu den Eingängen sind ohne weitere Beschaltung zunächst auf HighPotential (pull-up-Widerstand), also anders als bei den Schaltungen bisher im PLDKapitel. • Die Leitungen sind 32-adrig (0 . . . 31). Beispiel zur PLD-Programmierung: Funktionstabelle: B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 Y 0 0 0 1 1 1 1 1 C\AB 00 01 11 10 0 0 0 1 1 1 0 1 1 1 A 0 0 0 0 1 1 1 1 KV-Diagramm: Aufgrund des invertierenden Ausgangsverstärkers des PAL16L8 müssen nun die Nullen, also Ȳ , ausgelesen werden. Ȳ 11.6 FPGAs (siehe Vorlesung) = ĀC̄ ∨ ĀB̄ Kapitel 12 Schaltkreisfamilien 12.1 12.1.1 Eigenschaften digitaler Schaltungen Allgemeines Für verschiedene technische Anwendungen existieren verschiedene Schaltkreisfamilien. Zumeist muss bei der Auswahl für eine Realisierung ein Kompromiss zwischen Geschwindigkeit, Leistungsaufnahme, Baugröße, Störsicherheit, Preis etc. gesucht werden. Im folgenden sollen einige wichtige technische Kenngrößen realer digitaler Schaltungen vorgestellt werden. 12.1.2 Leistungsaufnahme Digitalschaltungen sind als aktive Schaltungen aus Widerständen, Transistoren, etc. aufgebaut. Diese Bauelemente nehmen elektrische Leistung auf. Hohe Leistungsaufnahme bedeuten • Geringe Betriebszeit bei Batterie-/Akku-Betrieb. • Hohe Verlustwärme (geringere Integrationsdichte möglich). 12.1.3 Pegelbereiche Die Pegelbereiche geben an in welchen Bereichen der Spannungswerte die Signale als High und Low interpretiert werden (Eingangsspannungspegel Uin , Ausgangsspannungspegel Uout ). Beispiel: TTL (Ub = 5 V) 103 KAPITEL 12. SCHALTKREISFAMILIEN 12.1.4 104 Schaltzeiten Zur Beurteilung der Geschwindigkeit von digitalen Schaltungen haben sich zwei wichtige Zeiten etabliert: die Signallaufzeit tp und die Signalübergangszeit tT . 12.1.4.1 Signallaufzeit Die mittlere Signallaufzeit tp (p=propagation) gibt die mittlere Impulsverzögerung zwischen Eingangs- und Ausgangsspannung an. Zur Festlegung der Signallaufzeit wird ein Bezugspegel UBezug festgelegt. Beispiel: tp = 12.1.4.2 tpLH + tpHL 2 Signalübergangszeit Die mittlere Signalübergangszeit tT (t=transition) gibt die mittlere Steilheit der ansteigenden und abfallenden Flanke des Ausgangssignals an. KAPITEL 12. SCHALTKREISFAMILIEN tT = 12.1.5 105 tT LH + tT HL 2 Lastfaktoren Digitale Schaltungen werden mit bestimmten Spannungen und Strömen gesteuert, die für vorgeschaltete Elemente eine Belastung darstellen. Wie stark eine Schaltung ein vorgeschaltetes Element belastet wird durch den Eingangslastfaktor FI (Fan-in) beschrieben. Für eine Standardelement gilt FI = 1. Wie stark ein Element durch nachfolgende Elemente belastbar ist wird durch den Ausgangslastfaktor FQ (Fan-out) beschrieben. Für ein zuverlässiges Funktionieren der Schaltung muss sicher gestellt sein, dass gilt X FQ ≥ FI (12.1) Beispiel: Ein Standard-Element habe FQ = 10 und FI = 1. Folgende Schaltung ist damit möglich. Der IC soll die Schaltung dreimal so stark belasten wie ein Standard-Element, es gelte hier FI = 3. KAPITEL 12. SCHALTKREISFAMILIEN 12.2 106 Dioden-Transistor-Logik (DTL) Zum Schaltungsentwurf werden Dioden, Transistoren und Widerstände verwendet. 12.2.1 Passives ODER-Gatter Die Schaltung beinhaltet zunächst eine Geberschaltung zur Vorgabe der Eingangsspannungen. Die logische Schaltung selbst besteht dann aus zwei Dioden D1 und D2 und einem Widerstand R. Bei der Analyse kann von einem vereinfachten Verhalten der Dioden ausgegangen werden. (Begriffe: PN-Übergang, Raumladungszone, Diffusionsspannung, Flussrichtung, Sperrrichtung, Kennzeichnung: Ring an Kathode, Anode (Pluspol, nimmt Elektronen auf), Kathode (Minuspol, gibt Elektroden ab)) Bei zwei Schaltern ergeben sich vier mögliche Signaleingangskombinationen. 1. Fall: A=High=1, B=Low=0 • D1 ist in Durchlassrichtung geschaltet • D2 sperrt • → Spannungsabfall an der Diode 0,7 V • → Spannungsabfall am Widerstand 11,3 V → Q=High=1 2. Fall: A=Low=0, B=High=1 KAPITEL 12. SCHALTKREISFAMILIEN 107 • D2 ist in Durchlassrichtung geschaltet • D1 sperrt • → Spannungsabfall an der Diode 0,7 V • → Spannungsabfall am Widerstand 11,3 V → Q=High=1 3. Fall: A = B=High=1 • D2 und D1 sind in Durchlassrichtung geschaltet • → Spannungsabfall an den Dioden 0,7 V • → Spannungsabfall am Widerstand 11,3 V → Q=High=1 4. Fall: A = B=High=0 • kein Stromfluss: UQ = 0 V → Q=Low=0 Es ergibt sich also insgesamt das Verhalten eines ODER-Gatters: A 0 0 1 1 12.2.2 B 0 1 0 1 Q 0 1 1 1 Aktive NICHT-Stufe Die Schaltung besteht aus einem bipolaren Transistor einem Vorwiderstand RV und dem Kollektorwiderstand RC . Bei der Analyse kann von einem vereinfachten Verhalten des Transistors ausgegangen werden. KAPITEL 12. SCHALTKREISFAMILIEN 108 Bei einem Schalter in der Geberschaltung ergeben sich zwei mögliche Signaleingangskombinationen. 1. Fall: A=Low=0 • Es fließt kein Strom durch die Basis des Transistors • Es fließt kein Kollektorstrom und damit auch kein Strom durch RC • Spannungsabfall an RC ist Null → Q=High=1 2. Fall: A=High=1 • Es fließt ein Strom durch die Basis des Transistors • Es fließt ein Kollektorstrom (Kollektor-Emitter-Strecke wird niederohmig) • Spannungsabfall an RC ca. 11,9 V → Q=Low=0 Es ergibt sich also insgesamt das Verhalten eines NICHT-Gatters: A 0 1 12.2.3 Q 1 0 Aktives NOR-Gatter Zusammenführung der ODER- und der NICHT-Stufe zu einem aktivem NOR-Gatter: KAPITEL 12. SCHALTKREISFAMILIEN 12.2.4 109 Passives UND-Gatter Die logische Schaltung selbst besteht nun aus drei Dioden D1, D2 und D3 und einem Widerstand R. Damit die Schaltung funktioniert muss noch der Lastwiderstand RLast R (Eingangswiderstand der nachfolgenden Stufe) berücksichtigt werden. Bei zwei Schaltern ergeben sich vier mögliche Signaleingangskombinationen. 1. Fall: A = B=High=1 • Stromfluss durch R, D3 und RLast • Wegen RLast R ist auch der Spannungsabfall an RLast deutlich größer als der Spannungsabfall an R (An der Diode fallen wieder ca. 0,7 V ab.) • → Q=High=1 2. Fall: A = B=Low=0 • Stromfluss über D1, D2 und R • Diodenspannung (D1, D2) ca. 0,7 V • Durch D3 fließt kein Strom. • → Q=Low=0 3.+4. Fall: A=Low=0 oder B=Low=0 (andere Variable jeweils Eins) • Wie im 2. Fall, jedoch ist jeweils nur eine Diode (D1 oder D2) stromdurchflossen. Es ergibt sich also insgesamt das Verhalten eines UND-Gatters: A 0 0 1 1 B 0 1 0 1 Q 0 0 0 1 KAPITEL 12. SCHALTKREISFAMILIEN 12.2.5 110 Aktives NAND-Gatter Zusammenführung der UND- und der NICHT-Stufe zu einem aktivem NAND-Gatter: 12.3 Transistor-Transistor-Logik (TTL) „TTL-Gatter arbeiten im Prinzip genauso wie DTL-Gatter.“(Tietze/Schenk - Halbleiterschaltungstechnik) Die Diodenschaltung wird jedoch durch einen Multi-Emitter-Transistor ersetzt. NAND Standard-TTL-Bauelement Vorteil des Transistors gegenüber den Dioden: • Kleinerer Aufbau bei integrierten Schaltungen • Der Transistor ist nie gesperrt. Entweder ist er im Normalbetrieb durchgesteuert (Stromfluss von der Basis zum Emitter) oder er ist im Inversbetrieb (Stromfluss von der Basis zum Kollektor). Es fließt somit also immer ein Basisstrom und die Basisladung muss nie ausgeräumt werden. Damit ist es schnelles Umschalten möglich! In der TTL-Schaltkreisfamilie gibt es Unterfamilien für verringerte Leistungsaufnahme (z.B. Low-Power-Schottky-TTL) oder verringerte Impulsverzögerungszeit (Fast-TTL). KAPITEL 12. SCHALTKREISFAMILIEN 12.4 12.4.1 111 MOS-Schaltungen Einführung Bei CMOS (Complementary MOS)- Schaltungen werden selbstsperrende P- und N-Kanal MOS FETs verwendet (MOS = Metal Oxid Semiconductor, FET=Feld-Effekt Transistor) Beim N-Kanal-MOS-FET führt eine positive Gate-Source-Spannung bei geeigneter Beschaltung zu einem positivem Drain-Strom (Drain-Source-Strecke wird leitfähig). Beim P-Kanal-MOS-FET führt eine negative Gate-Source-Spannung führt zu negativem Drain-Strom (Drain-Source-Strecke wird leitfähig). CMOS Eigenschaften: • Gut miniaturisierbar (Es werden nur Transistoren verwendet) • Geringe statische Leistungsaufnahme (kaum Stromfluss, da immer ein Transistor sperrt) • Mit steigender Frequenz erhöhte Leistungsaufnahme (Umladeströme parasitärer Kapazitäten) • Leichte Zerstörung der dünnen Oxydschichten durch elektrostatische Entladung (Diodenschutzschaltungen) KAPITEL 12. SCHALTKREISFAMILIEN 12.4.2 CMOS-Nicht-Stufe 12.4.3 CMOS-NAND-Gatter 112 Kapitel 13 Hardwarebeschreibungssprachen 13.1 VHDL 13.2 Xilinx ISE WEBPACK (siehe Vorlesung) 113 Anhang A Code-Tabellen Codes zur Darstellung dezimaler Ziffern 5 6 7 8 9 8 9 0 1 3 2 7 6 4 5 9 4 5 6 7 8 9 2 3 4 2 3 4 5 6 7 8 9 5 6 7 8 5 6 7 8 9 4 5 6 0 4 4 9 8 6 7 8 8 9 0 2 1 4 3 0 1 3 2 0 1 4 3 0 4 2 8 6 7 7 9 114 1 3 2 0 1 3 2 Reflex-Exz.3 0 1 Tompkins 2 0 1 Tompkins 1 0 1 2 3 O’Brian 2 Glixon 0 1 2 3 4 O’Brian 1 White 0 1 2 3 Petherick 5-3-1-1 2 3 4 5 6 7 8 9 5-2-2-1 0 1 2 3 4 5 6 7 5-4-2-1 0 1 einschrittig 4-2-2-1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 Jump-at-8 0 1 2 3 4 5 6 7 8 9 Jump-at-2 Muster 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 Exzeß-3 4-Bit 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 lexikografisch angeordnet 2-4-2-1 BCD/8-4-2-1 Besonderheit Wertigkeit Aiken A.1 9 5 5 4 3 1 2 9 9 7 8 5 6 8 7 5 6 7 9 8 5 6 9 5 6 8 7 Literaturverzeichnis [1] Jürgen Reichardt (2011) Lehrbuch Digitaltechnik. Oldenbourg Verlag, München [2] Klaus Beuth (2006) Digitaltechnik. Vogel Buchverlag, Würzburg [3] Martin V. Künzli, Marcel Meli (2007), Vom Gatter zu VDHL; Eine Einführung in die Digitaltechnik. VDF Hochschulverlag der ETH Zürich, Zürich Weiterführende Literatur (Schaltungen): [4] U. Tietze, C. Schenk (2010) Halbleiterschaltungstechnik. Springer Verlag, Berlin Weiterführende Literatur (CPLD, FPGA, VHDL): [5] Jürgen Reichardt (2009) VHDL Synthese. Oldenbourg Verlag, München [6] Günter Jorke (2004) Rechnergestützer Entwurf digitaler Schaltungen, Hanser Verlag, München [7] Frank Kesel, Ruben Bartholomä (2009), Entwurf von digitalen Schaltungen und Systemen mit HDLs und FPGAs (2. Auflage). Oldenbourg Verlag, München [8] Andrew Rushton (2011) VHDL for Logic Synthesis. John Wiley & Sons, Chichester [9] Pong P. Chu (2008) FPGA Prototyping by VHDL Examples, John Wiley & Sons, Hoboken 115