Eine Logikschaltung zur Addition zweier Zahlen Grundlegender Ansatz für die Umsetzung arithmetischer Operationen als elektronische Schaltung ist die Darstellung von Zahlen im Binärsystem. Eine Logikschaltung zur Addition zweier Zahlen beruht auf dem klassischen Additionsalgorithmus. Dieser ist dir sicherlich als „schriftliches Addieren“ seit der Grundschule bekannt. Dieser Algorithmus wird mit Hilfe von Schaltunsbausteinen, den sogenannten Halb- und Volladdieren in einem Addierwerk realisiert. Binärsystem Grundlage für das Binärsystem bilden die sogenannten 2er-Potenzen. 0 1 2 3 4 5 6 2 , 2 , 2 , 2 , 2 , 2 , 2 , ... bzw. 1 , 2 , 4 , 8 , 16 ,32 , 64 , ... Das Binärsystem beruht auf der Tatsache, dass jede natürliche Zahl als Summe von 2er-Potenzen dargestellt werden kann. Dabei kommt in der Summe jede 2er-Potenz entweder einmal oder nullmal vor. Aus dieser Summe lässt sich die Binärdarstellung der Zahl direkt ablesen. Dies soll am Beispiel der beiden Zahlen 26 und 19 demonstriert werden. 26=16+8+2=1⋅16+1⋅8+0⋅4+1⋅2+0⋅1=110102 19=16+1=1⋅16+0⋅8+0⋅4+1⋅2+1⋅1=10011 2 Schriftliche Addition Anhand der Beispielaufgabe 26 + 19 soll der Additionsalgorithmus in Erinnerung gerufen werden. 1. Zahlen gemäß ihrer Stellen übereinander schreiben. 2. 1-er addieren. 1-er der Summe notieren und den Übertrag in der 10-er-Spalte notieren 3. 10-er addieren und dabei den Übertrag berücksichtigen. 26 26 26 + 19 + 19 + 19 1 1 5 45 Nun soll die gleiche Aufgabe in Binärdarstellung gerechnet werden. Der Algorithmus funktioniert exakt genauso, wie bei der Addition von Dezimalzahlen. 1. Notieren 2. 1-er addieren 3. 2-er addieren und den Übertrag notieren 4. 4-er addieren und dabei den Übertrag beachten. 5. 8-er addieren 6. 16-er addieren und den Übertrag notieren. 7. 32-er addieren und dabei den Übertrag beachten. 11010 11010 11010 11010 11010 11010 11010 + 10011 + 10011 + 10011 + 10011 + 10011 + 10011 + 10011 1 1 1 1 1 1 1 1 01 101 1101 01101 101101 Entwickelt man nun das Ergebnis in seine entsprechende Dezimaldarstellung, so erhält man das gleiche Ergebnis, wie bei der Rechnung zuvor. 1011012=1⋅32+ 0⋅16+1⋅8+1⋅4+0⋅2+1⋅1=32+8+ 4+1=45 Aufgaben 1) Addiere schriftlich. a) 101012 +10102 b) 11111112 +12 Halbaddierer Der erste Baustein des angestrebten Addierwerks ist der sogenannte Halbaddierer. Der Halbaddierer ist eine Logikschaltung, die zwei einstellige Binärzahlen a und b addiert. Diese Schaltung muss also für lediglich 4 verschiedene Aufgaben das richtige Ergebnis berechnen. 0 2+ 02 12 +0 2 0 2+ 12 1 2+1 2 = 02 = 12 = 12 = 102 Aus diesen 4 Aufgaben lässt sich direkt eine entsprechende Funktionstabelle erstellen. Da es mehr als zwei verschiedene Ergebnisse gibt, können diese nicht alleine mit einem Ausgang dargestellt werden. Daher werden zwei Ausgänge ü und s. Die beiden Abkürzungen s und ü stehen für Summe und Übertrag. a b ü s 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 Es ergeben sich für s und ü die folgenden booleschen Terme und die entsprechenden Schaltnetze. ü=a ∧b s=a XOR b=(a∧¬b)∨(¬a∧b)=(a∨b)∧¬(a∧b) Kombiniert man beide Schaltungen zu einem Schaltnetz, so erhält man den sogenannten Halbaddierer. Diese Schaltung wird mit dem Schaltsymbol HA zusammengefasst. Neues Schaltsymbol für einen Halbaddierer Aufgaben 2) Gib eine weiter Möglichkeit für die Realisierung eines Halbaddierers an. 3) Realisiere den Halbaddiere ausschließlich mit Hilfe von NAND-Gattern. Volladdierer Bei der Ausführung des Additionsalgorithmus kann es vorkommen, dass drei 1-en addiert werden müssen (1+1+1). Dies geschieht immer dann, wenn zu zwei 1-en noch ein Übertrag hinzu kommt. 11 +11 1 110 Spätestens hier muss die Idee des Halbaddierers erweitert werden. Dies führt zum sogenannten Volladdierer. Dieser addiert bis zu drei einstellige Binärzahlen a, b und c und gibt die Summe s und den Übertrag ü aus. Es ergibt sich die folgende Funktionstabelle und die daraus abgelesenen disjunktiven Normalformen für ü und s. a b c ü s 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 0 0 1 0 1 1 1 0 1 0 1 0 1 1 0 0 1 1 1 0 1 1 1 1 1 ü=( a∧b)∨(a∧c)∨(b∧c) s=( a∧¬b∧¬c )∨(¬a∧b∧¬c)∨(¬a∧¬b∧c)∨(a ∧b∧c) Anstatt den Volladdierer auf Grundlage der booleschen Terme zu realisieren, kann man auch zwei Halbaddierer und ein ODER-Gatter verwenden. Diese Darstellung ist wesentlich leichter nachzuvollziehen. Die komplette Schaltung wird als neues Schaltsymbol VA zusammengefasst. Neues Schaltsymbol für einen Volladdierer Aufgaben 4) Realisiere mit Hilfe von von 4 Halbaddierern und einem ODER-Gatter eine Schaltung, die 4 einstellige Binärzahlen addieren kann. Benutze s0 , s1 und s 2 für die 3 Ausgänge, die für die Darstellung des Ergebnisses als Binärzahl nötig sind. Addierwerk Mit Hilfe von in Serie geschalteten Volladdierern lassen sich sogenannte Addierwerke aufbauen. Nach diesem Prinzip lassen sich Schaltungen realisieren mit deren Hilfe beliebig lange Binärzahlen addiert werden können. Dieses Prinzip wird hier für zwei vierstellige Binärzahlen a=a 3 a 2 a 1 a 0 und b=b3 b2 b1 b0 vorgestellt. Die fertige Schaltung bezeichnet man auch als 4-Bit-Addierwerk. Die Ausgänge s3 , s 2 , s 1 und s0 stellen die berechnete Summe in Binärdarstellung dar. Ein weiterer Ausgang ü wird benötigt, falls das Ergebnis nicht mit Hilfe von 4 Stellen darzustellen ist. Die Schaltung bildet den klassischen Algorithmus für die Addition zweier Zahlen nach. Von rechts beginnend werden zuerst die 1-er-Stellen der beiden Zahlen a und b addiert. Entsteht hierbei ein Übertrag, so wird dieser an den nächsten Volladdierer links weitergegeben. Dieser Volladdierer bildet die Summe der 2-er-Stellen und berücksichtigt dabei den eventuell bei der 1-er-Stelle entstandenen Übertrag. Dieses Prinzip setzt sich nach links über die weiteren Volladdierer fort. Da bei der 1-er-Stelle noch kein Übertrag berücksichtigt werden muss, genügt für eine Umsetzung an dieser Stelle ein Halbaddierer. Aufgaben 5) Realisiere ein Addierwerk für zwei 8-stellige Binärzahlen.