12. Tutorium Digitaltechnik und Entwurfsverfahren Tutorium Nr. 13 Alexis Tobias Bernhard Fakultät für Informatik, KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu
Programm für heute Spezielle Schaltwerkbausteine Addierer 2
Register Register: Lineare Anordnung von Flipflops zur Speicherung mehrerer Bits (Bitvektoren) Schieberegister: Kette von in Reihe geschalteten Registern (D- Flipflops) 3
Schieberegister Der Ausgang eines Speicherelements ist jeweils mit dem Eingang des Nächsten verbunden. Ansteuerung der Flipflops mit gemeinsamen Takt Parallele Serienwandlung möglich (parallele Eingänge/ Ausgänge) Beispiel: Division/ Multiplikation mit 2 out 4
Zähler Anwendung: Alles was zählen muss (Z.B. Befehlszähler) Dualzähler: Zustände werden dual kodiert Modulo-n-Zähler: Zähler mit n Zuständen m-stelliger Zähler: n = 2 m 2-stelliger Dualzähler 5
Entwicklung eines synchronen Zählers Gesucht: Synchroner 2-stelliger Dualzähler mit D - Flipflops d 0 = z 0 z 0 d 0 0 1 1 0 z 1 z 0 d 1 0 0 0 0 1 1 1 0 1 1 1 0 d 1 = z 0 z 1 z 0 z 1 6
Asynchrone Zähler (Ripple Counter) Gesucht: 2 - stelliger asynchroner Dualzähler mit D Flipflops d 0 = z 0 d 1 = z 0 z 1 z 0 z 1 7
Alte Übungsaufgabe 4.2. Es soll ein synchroner Modulo-8-Ruckwärtszähler mit flankengesteuerten T-Flipflops entworfen werden. Geben Sie den Automatengraphen des Zählers an. Geben Sie die Ansteuerfunktionen der verwendeten Flipflops in minimaler Form an. Zeichnen Sie das Schaltbild des Zählers. 8
Übungsaufgabe 1 Es soll ein 3-Bit Zähler als synchrones Schaltwerk mit flankengesteuerten T-Flipflops entworfen werden. Eine Eingangsvariable x legt den Zählmodus fest. Für x = 0 arbeitet das Schaltwerk als Dualzähler und zählt in der Reihenfolge 000; 001; 010; 011; 100; 101; 110; 111 Für x = 1 zählt das Schaltwerk im Gray-Code in der Reihenfolge 000; 001; 011; 010; 110; 111; 101; 100 Geben Sie den Automatengraphen des Schaltwerks an. Stellen Sie die kodierte Ablauftabelle auf. Verwenden Sie die Zustandsvariablen mit q i, i = 0, 1, 2, n. 9
Halbaddierer a b s ü 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 s = ab ab ü = ab 10
Volladdierer a i b i ü i s i ü i+1 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 s i = a i b i ü i ü i+1 = a i ü i b i ü i a i b i 11
n-bit Carry-Ripple Addierer Carry-Ripple-Addierer Volladdierer für jedes Bit Berücksichtigen des Übertrags ü i+1 beim MSB Halbaddierer beim LSB 2n Eingangsvariabeln und n + 1 Ausgangsvaribeln 12
Carry-Lookahead-Addierer Überträge aus Eingaben generieren g i = a i b i (generiere Übertrag) p i = (a i b i ) s i = p i ü i ü i+1 = g i p i ü i Rekursives Einsetzen ergibt ü 1 = g 0 p 0 ü 0 ü 2 = g 1 p 1 g 0 p 1 p 0 ü 0 ü 3 = g 2 p 2 g 1 p 2 p 1 g 0 p 2 p 1 p 0 ü 0 13
Kaskadierung zweier 4-Bit Carry-lookahead-Addierer 14
Carry-Ripple- vs. Carry-lookahead-Addierer Carry-Ripple-Addierer - Nacheinander Durchlaufen durch alle Stufen wegen Überträgen Carry-lookahead-Addierer + Vorausschauende Berechnung der Überträge möglich - großer Hardware-Aufwand Lsg: Kaskadierung von Carry-lookahead-Addierern 15
Übungsaufgabe 2.2. Entwerfen Sie ein 16-Bit-Addierer aus 4-Bit-Carry-Lookahead- Addierern. Aus Ihrer Schaltung soll deutlich hervorgehen, in welcher Art und Weise die 4-Bit-Carry-Lookahead-Addierer miteinander verbunden sind. Vergessen Sie nicht, die Ein- und Ausgänge der Gesamtschaltung geeignet zu beschriften. 16
Bekannt: BCD-Code 0000 = 0,, 1001 = 9 Pseudotetraden BCD Addierer Heute: Addition von BCD Zahlen 4-Bit-Dualaddierer für jede Dekade Pseudotetraden- und Übertragskorrektur mit Addition von 6 (0110) Realisierung 4-Bit-Volladdierer Schaltnetz zur Pseudotetraden- und Übertragskorrektur Übertragsbit ü = 1 falls s i = a i + b i > 9, sonst ü = 0 ü = ü 4 s 1 s 3 s 2 s 3 17
Addition per Hand 18
Schaltnetz eines BCD Addierers 19
Zusatzaufgabe Addieren Sie die BCD Zahlen 957 und 85 mit einer BCD Addition. 20
Subtraktion Subtraktion von Zweierkomplementzahlen X Y = X + Y + 1 Beide Summanden positiv Bei Überträgen in das Vorzeichenbit wird die Zahl ungültig Erkennung: Die ersten beiden Überträge sind ungleich Beide Summanden negativ Vorzeichenbit des Ergebnisses muss 1 sein Die ersten beiden Überträge müssen gleich sein Unterschiedliche Vorzeichen bei Summanden Immer Korrektes Ergebnis Übertrag an oberster Stelle ist zu streichen 21
Übungsaufgabe 2.1. Gegeben sei dieser Carry-Lookahead-Addierer Geben Sie eine Schaltung zur Subtraktion von 4-Bit Zweierkomplementzahlen an. Dabei stehen Ihnen ein 4-Bit-Carry-Lookahead-Addierer und vier Inverter zur Verfügung. Für zwei 4-Bit Zahlen X := (x 3 x 2 x 1 x 0 ) und Y := (y 3 y 2 y 1 y 0 ) soll die Differenz D := Y - X berechnet werden. Beschriften Sie die Ein- und Ausgänge Ihrer Schaltung so, dass diese Operation ausgeführt wird. 22
Vielen Dank für die Aufmerksamkeit! Gibt es noch Fragen? 23