Kapitel 6 - Addierwerke

Ähnliche Dokumente
Eine Digitalschaltung, die diese Aufgaben rechnen soll, habe die Eingänge A und B und die Ausgänge S (sum) und C (carry):

Rechnerstrukturen, Teil 1. Vorlesung 4 SWS WS 14/15

Drücken Sie (später) bei Speichere Änderungen in der Bibliothek default? auf Nein.

3.1 Schaltungselemente 129. b) Tragen Sie in nachfolgende Abbildung die Realisierung eines 1 Bit 4-auf-1 Multiplexers aus Logikgattern ein.

Rechnerstrukturen, Teil 1

Kapitel 5 - Datenübertragung

Digitale Systeme und Schaltungen

Integrierte Schaltungen

Schriftliche Prüfung

Aufgabe 1. Aufgabe 2. Abbildung 1: Schaltung für die Multiplikation mit 4

3 Arithmetische Schaltungen

GTI ÜBUNG 12. Komparator und Addierer FRIEDRICH-ALEXANDER UNIVERSITÄT ERLANGEN-NÜRNBERG JAN SPIECK 1

Handelt es sich um ein taktzustands- oder taktflankengesteuertes D-Flipflop?

Multiplizierer. Beispiel komplexer arithmetischer Schaltung. Langsamer als Addition, braucht mehr Platz. Sequentielle Multiplikation

Wandeln Sie die folgenden Zahlen in Binärzahlen und Hexadezimalzahlen. Teilen durch die Basis des Zahlensystems. Der jeweilige Rest ergibt die Ziffer.

3-BIT VOLLADDIERER MIT EINZELNEM EINGABE-DATENBUS

3 Arithmetische Schaltungen

Seminararbeit Sommersemester 2017

3 Verarbeitung und Speicherung elementarer Daten

Inhalt. Zahlendarstellungen

Digitaltechnik Grundlagen 5. Elementare Schaltnetze

6. Zahlendarstellungen und Rechnerarithmetik

Versuchsvorbereitung P1-63: Digitale Elektronik, Schaltlogik

Kapitel 5. Standardschaltnetze. Prof. Dr. Dirk W. Hoffmann. Hochschule Karlsruhe w University of Applied Sciences w Fakultät für Informatik

Teil V. Programmierbare Logische Arrays (PLAs)

Protokoll zum Praktikum des Moduls Technische Informatik an der JLU Gießen

Rechnerstrukturen, Teil 1. Vorlesung 4 SWS WS 14/15

Digital Design 2 Schaltnetze (kombinatorische Logik) Digital Design

Zahlendarstellungen und Rechnerarithmetik*

x x y x y Informatik II Schaltkreise Schaltkreise Schaltkreise Rainer Schrader 3. November 2008

GTI ÜBUNG 12 KOMPARATOR UND ADDIERER

Übungen zur Vorlesung Technische Informatik I, SS 2001 Strey / Guenkova-Luy / Prager Übungsblatt 4 Zahlendarstellung/Rechenarithmetik/Rechenwerke

Darstellung von negativen binären Zahlen

Rechnernetze und Organisation

Menschliches Addierwerk

Lösungsvorschlag 4. Übung Technische Grundlagen der Informatik II Sommersemester 2009

Grundlagen der Technischen Informatik

Wirtschaftsingenieurwesen Elektronik/Schaltungstechnik Prof. M. Hoffmann FB ETIT Übung 7 Schaltnetze 2

Versuch P1-63 Schaltlogik Vorbereitung

12. Tutorium Digitaltechnik und Entwurfsverfahren

Rechnerstrukturen WS 2012/13

Eine Logikschaltung zur Addition zweier Zahlen

Minimierung nach Quine Mc Cluskey

Einführung in die Informatik I

Teil 2: Rechnerorganisation

Teil 2: Rechnerorganisation

Grundlagen der Rechnerarchitektur

Das negative Zweierkomplementzahlensystem. Ines Junold 23. Februar 2010

N Bit binäre Zahlen (signed)

Informatik I Modul 5: Rechnerarithmetik (2)

2 Initialisierung clk_mkand= clk_produkt= multiplexer= init/>>1= 6 Schieben clk_mkand= clk_produkt= multiplexer= init/>>1=

There are only 10 types of people in the world: those who understand binary, and those who don't

Outline Schieberegister Multiplexer Zähler Addierer. Rechenschaltungen. Marc Reichenbach und Michael Schmidt

Zur Multiplikation von Gleitkommazahlen müssen die Mantissen inkl. führender 1, als Festkommazahlen multipliziert werden.

Carry-Lookahead Addierer (CLA)

5 Verarbeitungsschaltungen

14 Addierer und Subtrahierer

Minimierung nach Quine Mc Cluskey

G Zahlendarstellung und Rechnerarithmetik

Inhaltsverzeichnis. Inhaltsverzeichnis

Rechnerstrukturen. Michael Engel und Peter Marwedel SS TU Dortmund, Fakultät für Informatik

Rechnerstrukturen. Michael Engel und Peter Marwedel WS 2013/14. TU Dortmund, Fakultät für Informatik

Eingebettete Systeme

Rechnerstrukturen WS 2012/13

Inhalt Anwendungsbeispiel für eine ODER- Funktion Einleitung... 9

3 Rechnen und Schaltnetze

Erste praktische Übung zur Vorlesung Grundlagen der Technischen Informatik

Rechnerarithmetik. Vorlesung im Sommersemester Eberhard Zehendner. FSU Jena. Thema: Addierschaltungen

FH Jena Prüfungsaufgaben Prof. Giesecke FB ET/IT Binäre Rechenoperationen WS 09/10

1. Logische Verknüpfungen

Elektronikerin. Beispielhafte Situation. integriert integriert. Semester. Lernkooperation Betrieb Bemerkungen. ID Ressourcen

Zahlendarstellungen und Rechnerarithmetik*

1. Polyadische Zahlensysteme:

Zahlensysteme und Kodes. Prof. Metzler

II. Grundlagen der Programmierung

3.8 Sequentieller Multiplizierer 159

Computational Engineering I

Kombinatorische Schaltungen

Kapitel 4. Versuch 415 T-Flipflop

Kapitel 5: Darstellung von Daten im Rechner

Zahlen im Computer (Klasse 7 Aufbaukurs Informatik)

Bereiten Sie für alle Schaltungen einen Verdrahtungsplan vor unter Verwendung der Pin-Belegung aus den Datenblättern der verwendeten Bausteine.

Musterlösung 1. Mikroprozessortechnik und Eingebettete Systeme 1 WS2015/2016

Vorbereitung zum Versuch

Inhaltsangabe 3.1 Zahlensysteme und Darstellung natürlicher Zahlen Darstellung ganzer Zahlen

1. Das dekadische Ziffernsystem (Dezimalsystem) Eine ganze Zahl z kann man als Summe von Potenzen zur Basis 10 darstellen:

Grundlagen der Rechnerarchitektur. Binäre Logik und Arithmetik

Grundlagen der Informatik I. Übung

Grundlagen der Technischen Informatik

Arbeitsbereich Technische Aspekte Multimodaler Systeme. Praktikum der Technischen Informatik T1 1. Schaltnetze. Name:...

Darstellung eines 1-Bit seriellen Addierwerks mit VHDL. Tom Nagengast, Mathias Herbst IAV 07/09 Rudolf-Diesel-Fachschule für Techniker

Computerarithmetik (1)

Digitaltechnik. 4 Arithmetik. Revision 1.1

Modul Computersysteme Prüfungsklausur SS Prof. Dr. J. Keller LG Parallelität und VLSI Prof. Dr.-Ing. W. Schiffmann LG Rechnerarchitektur

Minimierung nach Quine Mc Cluskey Ermitteln der Primtermtabelle

Musterlösungen Technische Informatik 2 (T2) Prof. Dr.-Ing. D. P. F. Möller

FH Jena Prüfungsaufgaben Prof. Giesecke FB ET/IT Binäre Rechenoperationen WS 11/12

Transkript:

Kapitel 6 - Addierwerke Versuch 600 Halbaddierer und Volladdierer Der bürgerliche Algorithmus des schriftlichen Addierens zerlegt die binäre Addition in die folgenden elementaren Additionen. Es ergibt sich eine Summe S und ein Carry C (Übertrag) mit der zugehörigen Funktiontabelle: A + B = S, C 0 + 0 = 0, C = 0 0 + 1 = 1, C = 0 1 + 0 = 1, C = 0 1 + 1 = 0, C = 1 Eine Digitalschaltung, die diese Aufgaben rechnen soll, habe die Eingänge A und B und die Ausgänge S und C: A B HA S C Die entsprechende Funktionstabelle sieht folgendermaßen aus: A B S C 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 Diese Schaltung wird als Halbaddierer bezeichnet. Aus der Funktionstabelle liest man nach dem bekannten Verfahren die allgemeine disjunktive Normalform der Booleschen Funktion ab: (1) S = ( A B ) ( A B ) (2) C = A B Die Gleichung (1) entspricht der XOR-Funktion. Der Halbaddierer lässt sich also durch die beiden folgenden Gleichungen beschreiben: (3) S = A XOR B (4) C = A B 6-1

Für die Addition zweier mehrstelliger Binärzahlen müssen drei Binärziffern addiert werden können: der Übertrag von der vorhergehenden Stelle und die beiden Summanden. Nur in der niederwertigsten Stelle (LSB) gibt es keinen Übertrag. Es ergibt sich folgende Funktiontabelle: An + Bn + Cn-1 = Sn, Cn 0 + 0 + 0 = 0, Cn = 0 0 + 0 + 1 = 1, Cn = 0 0 + 1 + 0 = 1, Cn = 0 0 + 1 + 1 = 0, Cn = 1 1 + 0 + 0 = 1, Cn = 0 1 + 0 + 1 = 0, Cn = 1 1 + 1 + 0 = 0, Cn = 1 1 + 1 + 1 = 1, Cn = 1 Darin bedeuten die Indizes, dass die Schaltung bei der Addition zweier mehrstelliger Binärzahlen die Addition für die n-te Stelle durchführen soll. Cn-1 Sn An VA Bn Cn Die Schaltung heißt Volladdierer. Aus ihrer Funktionstabelle liest man die folgende disjunktive Normalform für Sn ab: (5) Sn =(A n B n C n-1) ( A n B n C n-1) ( A n B n C n-1) (A n B n C n-1) Daraus kann man (6) Sn = An XOR Bn XOR Cn-1 ableiten. Für C n ergibt die Funktionstabelle die disjunktive Normalform (7) Cn = ( A n B n C n-1) (An B n C n-1 ) (A n B n C n-1) (A n B n C n-1) Daraus kann man die folgenden drei Varianten ableiten: (8) Cn = (An Bn) ((An XOR Bn ) Cn-1 ) (9) Cn = (An Bn) (An Cn-1) (Bn Cn-1) (10) Cn = (An Bn) (An Bn ) Cn-1 6-2

In der Datei v600 finden Sie zwei hintereinander geschaltete Halbaddierer: Ergänzen Sie die Schaltung mit Hilfe der beiden Gleichungen (6) und (8) so, dass ein Volladdierer entsteht. Überprüfen Sie die Schaltung auf richtige Funktionsweise. 6-3

Versuch 610 Ripple-Carry-Addierwerk für ganze Zahlen Mit n-1 Volladdierern und einem Halbaddierer kann man eine Digitalschaltung aufbauen, die zwei n-stellige Binärzahlen An-1... A0 und Bn-1... B0 addiert: An-1 Bn-1 A1 B1 A0 B0 Cn-2 n-stelliges Addierwerk C0 VA VA HA Cn-1 C1 C0 Sn-1 S1 S0 Ebenso lassen sich zwei n-stellige Binärzahlen addieren, wenn man nur Volladierer verwendet und den Carry-Eingang der niederwertigsten Stelle offen lässt, d.h. auf logisch 0 legt. An-1 Bn-1 A1 B1 A0 B0 Cn-2 n-stelliges Addierwerk C0 0 VA VA VA Cn-1 C1 C0 Sn-1 S1 S0 Im Addierwerk des Ripple-Carry-Adders arbeiten die Volladdierer parallel, d.h. gleichzeitig. Die von den Volladdierern berechneten Summen stehen aber nicht zur gleichen Zeit zur Verfügung, weil jeder der Volladdierer einen Übertrag von der nächstniedrigeren Stelle erhält. Die Summenwerte an den Ausgängen des Addierwerks sind erst dann gültig, wenn der Volladdierer der Stelle mit dem höchsten Gewicht (2 n-1 ) den Übertrag Cn-1 erhalten hat. Die Überträge entstehen also nacheinander. Erst wenn der Übertrag Cn-1 vorliegt, steht das Ergebnis zur Verfügung. In diesem Sinn arbeitet der Ripple-Carry-Adder seriell. 6-4

Die obige Schaltung befindet sich in der Datei v610 und enthält ein Addierwerk des Typs Ripple-Carry-Adder. Verwendet werden vorgefertigte Volladdierer aus der Bauelementebibliothek des EWB. Der Carry-In Eingang des rechten Volladdierers bleibt unbeschaltet und liegt somit auf 0. Die Operanden (Summanden) A und B werden mit den Zählern BIN CTR erzeugt. Im Makro ZweierK befindet sich ein Wandler, der das Vorzeichen berücksichtigt und im Anzeigeelement DPYdarstellt. Experimentieren Sie mit der Schaltung. Um die Schaltung zu verstehen, müssen Sie die Zweierkomplementdarstellung verstehen. Was wird in den Anzeigen A1, B1 und S1 hexadezimal angezeigt? Was wird in den Anzeigen A2, B2 und S2 dezimal angezeigt? Was zeigt die Lampe Overflow an? Beim Experimentieren sollten Sie erkennen, dass der Ripple-Carry-Adder ganze Zahlen addiert, wenn man die eingegebenen Summanden und die ausgegebenen Summe als Zweierkomplementdarstellung ganzer Zahlen interpretiert. Analysieren Sie die Wirkungsweise der Schaltung. Arbeitet das Addierwerk eher seriell oder parallel bis das Endergebnis im ungünstigsten Fall vollständig anliegt? 6-5

Versuch 620 Addier- und Subtrahierwerk Die Schaltung in v620 stellt fast eine Kopie der Schaltung aus v610 dar. Wenn Sie mit dem Schalter S den Binärzustand 0 eingeben, hat die Schaltung das selbe Verhalten wie in v610. Durch den Schalter S legen Sie fest, ob die Schaltung Addieren (S=0) oder Subtrahieren (S=1) soll. Jede Subtraktion A B lässt sich als Addition durchführen: A B = A + (-B). Das Zweierkomplement von (-B) ist ( B) + 1. Darin ist ( B) die bitweise Invertierung von B. Ergänzen Sie die Schaltung, indem Sie in das Makro? durch ein geeignetes Gatter ersetzen. Beim Experimentieren sollten Sie nun erkennen, dass die Schaltung die Differenz Eingabe A Eingabe B in Zweierkomplementdarstellung erzeugt. Erklären Sie, wie in der Schaltung die bitweise Invertierung und das Inkrement realisiert werden. 6-6

Theorie 630 Carry-Look-Ahead Addierwerk Ein Nachteil des Ripple-Carry-Adders ist, dass die Laufzeit bis zum vollständigen Ergebnis von der Anzahl der Stellen abhängig ist. In den folgenden Versuchen wird mit der Carry- Look-Ahead-Schaltung eine Möglichkeit aufgezeigt, diesen seriellen Prozess zu parallelisieren. Die Idee des Carry-Look-Ahead-Adders ist es, die Carry-Signale nicht mehr von Adder- Modul zu Adder-Modul weiterzureichen, sondern in einer zusätzlichen kombinatorischen Schaltung direkt aus den Eingangsgrößen An und Bn zu erzeugen. Dabei sollen die Signale parallel über möglichst wenige Gatter laufen und alle Carry-Signale nach der selben Verzögerungszeit gewonnen werden. Als Beispiel wählen wir ein vierstelliges Addierwerk. Die Carrys erhalten hierbei den Index der Stelle, in die sie einfließen. Ein Addierwerk berechnet folgende Summen und Carry-Werte: S0 = A0 XOR B0 XOR C0 S1 = A1 XOR B1 XOR C1 S2 = A2 XOR B2 XOR C2 S3 = A3 XOR B3 XOR C3 C1 = (A0 B0 ) (A0 B0 ) C0 C2 = (A1 B1 ) (A1 B1 ) C1 C3 = (A2 B2 ) (A2 B2 ) C2 C4 = (A3 B3 ) (A3 B3 ) C3 Wir führen zwei Hilfsvariablen gn und pn ein: gn = An Bn pn = An Bn gn heißt Carry generate, weil ein Übertrag Cn gebildet wird, wenn sowohl An-1 als auch Bn-1 den Binärzustand 1 haben. In diesem Fall wird also allein vom An-1 und Bn-1 Wert ein Übertrag generiert, unabhängig vom Cn-1 Wert. pn heißt Carry propagate, weil der Übertrag Cn-1 weitergeleitet wird, wenn pn = 1 und gn = 0 ist. Setzt man gn und pn ein ergibt sich für die Cn: (ohne Klammerung bindet stärker als ) C1 = g0 p0 C0 C2 = g1 p1 C1 C3 = g2 p2 C2 C4 = g3 p3 C3 Nach Ersetzen von C1, C2 und C3 auf den rechten Seiten ergibt sich: C1 = g0 p0 C0 C2 = g1 p1 g0 p1 p0 C0 C3 = g2 p2 g1 p2 p1 g0 p2 p1 p0 C0 C4 = g3 p3 g2 p3 p2 g1 p3 p2 p1 g0 p3 p2 p1 p0 C0 Wenn man nun die Volladdiererschaltung so umbaut, dass sie neben der Summe Sn auch die Hilfsvariablen gn und pn liefert, kann man einen n-stelligen Carry-Look-Ahead-Adder bauen: 6-7

B3 A3 B2 A2 B1 A1 B0 A0 FACLA FACLA FACLA FACLA g p g p g p g p S3 S2 S1 S0 C4 g3 p3 C3 g2 p2 C2 g1 p1 C1 g0 p0 CLAG C0 G P p Die Blackboxes FACLA (Full-Adder-Carry-Look-Ahead) erhalten die umgebaute Volladdiererschaltung. Der CLAG (Carry-Look-Ahead-Generator) erzeugt aus den g- und p- Hilfsvariablen die Überträge Cn. Man beachte: Die in dieser Schaltung benutzten Volladdierer in den FACLAs erzeugen keine Überträge. Über die Ein/Ausgänge C0 C4, G und P können mit mehreren CLAGs mehrstufige Carry- Look-Ahead-Generatoren erzeugt werden: C4 = g3 p3 g2 p3 p2 g1 p3 p2 p1 g0 p3 p2 p1 p0 C0 mit G = g3 p3 g2 p3 p2 g1 p3 p2 p1 g0 und P = p3 p2 p1 p0. Eine Kaskadierung mit C4,G, P sowie C0 wird bei unseren Versuchen nicht benötigt. Vier Rechenbeispiele: A 0001 0001 0010 0010 B 0001 0011 0011 0111 g = A B 0001 0001 0010 0010 p = A B 0001 0011 0011 0111 Cn = gn-1 pn-1 Cn-1 0010 0110 0100 1100 S = A XOR B XOR C 0010 0100 0101 1001 6-8

Versuch 630 Carry-Look-Ahead Addierwerk Bauen Sie in der Datei v630 ein vierstelliges Carry-Look-Ahead Addierwerk auf. Es werden vier FACLA und ein CLAG benötigt. Vorgehensweise: Bauen Sie vier Makros FACLA ein. (im EWB bei Makros nachgucken) Bauen Sie ein Makro CLAG ein und vervollständigen Sie es. Schließen Sie die FACLAs und den CLAG an die Summanden A und B und an die Summe S an. Überprüfen Sie die Schaltung auf korrekte Funktionsfähigkeit. Anbei der Anschlussplan vom FACLA und CLAG: 6-9

Anbei der Anschlussplan des CLAG: 6-10

Versuch 640 Serielles Addierwerk In diesem Versuch soll ein seriell arbeitendes Addierwerk untersucht werden, dessen Arbeitsprinzip die nächste Abbildung darstellt. Den beiden Schieberegistern 1 und 2 werden über parallele Eingaben die Summanden A und B eingegeben. Es gibt nur einen Volladdierer VA. Wenn die beiden Summanden parallel eingegeben worden sind, werden sie Stelle für Stelle nach rechts in den Volladdierer geschoben. Mit jedem Schiebevorgang gelangt der unmittelbar vorher entstandene Summenwert S über den seriellen Eingang in das Schieberegister 2. Wenn die beiden Summanden vollkommen herausgeschoben sind, steht das Ergebnis A + B im Schieberegister 2 und ist damit an dessen Parallelausgängen verfügbar. Parallele Ausgabe der Summe seriell in Schieberegister 2 Parallele Eingabe des Summanden B B A Cn VA S Cn-1 Schieberegister 1 D-FF Parallele Eingabe des Summanden A Takt In der Datei v640 finden Sie ein mit zwei Schieberegistern 8-Bit SR aufgebautes serielles Addierwerk: 6-11

Aufgabe: In dieser Schaltung fehlen noch drei Leitungen. Machen Sie die Schaltung durch Einbau der fehlenden Leitungen funktionsfähig. Sie können die Schaltung mit Summanden der Form 0000wxyz testen, d.h. mit Summanden, deren ersten vier Stellen auf 0 gesetzt sind. Die Ausgabe erfolgt am oberen Schieberegister. Bedienung: Löschen Sie alle SR-Register und das D-FlipFlop mit einem Reset. Laden Sie die Operanden, die an die unteren Paralleleingänge angelegt sind (3 oben und 6 unten), in die 8-Bit-SR-Register (Parallel-In). Schalten Sie das Addierwerk in den Rechts-Schiebemodus. Führen Sie eine 8-Bit Addition durch (8 x takten) und überprüfen Sie das Ergebnis auf seine Richtigkeit. 6-12

Versuch 650 Multiplikation In Versuch 650 soll die Multiplikation, die nach dem bürgerlichen Multiplikationsalgorithmus arbeitet, untersucht werden. Dazu ist ein Beispiel einer Multiplikation nach diesem Verfahren mit den Faktoren A=1101 und B=1011 gegeben: 1) 1101 * 1011 anders sortiert 2) 1101 * 1011 1101 1101 0000 1101 1101 0000 1101 1101. 10001111 10001111 Das Produkt der Faktoren A*B wird durch das Produkt S=10001111 dargestellt. Sie sollen in diesem Versuch ein vierstelliges Multiplikationswerk nach der obigen Darstellung 2) für das duale Ziffernsystem {0,1} entwickeln. Dafür brauchen wir ein EWB- Makro X mit vier Ein- und vier Ausgängen: Das EWB-Makro Mult muss in diesem Fall das Einmaleins beherrschen: 0 0 = 0 0 1 = 0 1 0 = 0 1 1 = 1 Welches Gatter berechnet diese Funktion? Das EWB-Makro Add soll einen fertigen Addierer aus der Bauteilbibliothek des EWB enthalten. Entwickeln Sie die obige Schaltung und bauen Sie sie in der Datei v650 in das EWB- Makro X ein. Wenn Sie alles richtig gemacht haben, kann die Schaltung multiplizieren. Hinweis: Sie können anstelle der Makros Add und Mult auch die nötigen Bauteile direkt in das Makro X einbauen. Das erspart etwas Arbeit. 6-13

Die EWB-Makros Bin4-Dez und Bin8-Dez enthalten Wandler, die Binärzahlen in BCD- Zahlen umformen, die dann von den Sieben-Segment-Anzeigen als Dezimalzahlen angezeigt werden. Sie können also die Faktoren A = a3 a2 a1 a0 und B = b3 b2 b1 b0 mit den Tasten als Binärzahlen eingeben und als Dezimalzahlen an den Sieben-Segment-Anzeigen ablesen. Auch das berechnete Produkt ist als Dezimalzahl ablesbar. 6-14