Inhaltsverzeichnis

Hardwareumsetzung

Wir haben nun unseren Volladdierer in drei einfacherer Teile zerlegt, aber das ist noch nicht einfach genug um es zu bauen. Wir müssen erst noch unsere Halbaddierer auf seine booleschen Operatoren vereinfachen, was zum Glück nicht so schwer ist.
Aus dem Teil über den Halbaddierer wissen wir, dass s= x ⊕ y und c = x ∧ y ist. Damit brauchen wir nun 2 Logik-Gatter, die die exklusiv-Oder und „Und“-Operation durchführen:
XOR-Gatter

Stellt ein XOR-Gatter dar und:
Und-Gatter

ein „Und“-Gatter. Wir müssen das ganze nur noch Verbinden, x und y an die Eingänge des Und- und XOR-Gatters anschließen und das Ergebnis der XOR-Operation ist unser s und das Ergebnis der &-Verknüpfung unser c. Macht als schematische Darstellung:
Halbaddierer aus XOR- und Und-Gatter

und Eingefügt in unseren Volladdierer ergibt sich folgendes Bild:
Volladdierer aus Und-, Oder- und Xor-Gattern

Damit können wir schon fast unseren Volladdierer aufbauen, aber vorher müssen wir uns noch über die Realisierung der Gatter und das Addieren von 4-Bit-Breiten Variablen Gedanken machen.

4-Bit Addieren

Bevor wir uns nun um die Umsetzung unseres Volladdierers auf Hardwareebene kümmern, müssen wir uns erst einmal eine Lösung überlegen, um unsere 4-Bit breiten Variablen zu addieren, denn unserer einfacher Volladdierer kann nur zwei 1-Bit breite Variablen und einen Übertrag addieren. Und im Übertrag liegt auch unsere Lösung:
Wir schalten 4 Volladdierer hintereinander, wobei wir an x und y jedes Volladdierers jeweils die entsprechende Stelle der 4-Bit-Variablen(der erste Volladdierer die erste Stelle, der Zweite die zweite Stelle usw.) anschließen und die c_OUT Pins mit den c_IN Pins des nächsten, höherwertigen Volladdierers verbinden. Zur Verdeutlichung als Schema-Plan:
4-Bit Volladdierer aus 4 einzelnen Volladdierern

Der erste Volladdierer ist mit der 0 gekennzeichnet. Wir sehen auch das der c_IN des ersten VA nicht angeschlossen ist, da man aber auch bei der Schriftlichen Addition an der ersten stelle kein Übertrag hat, ist dies hier korrekt. Am c_OUT des letzten VA wird die 5-Stelle der binären Addition ausgegeben. Somit müssen wir nur noch unsere Gatter bauen.

Gatter aus TTL

Unsere Gatter sind momentan nur Theoretisch vorhanden, also wird es Zeit, sie in TTL(Transistor-Transistor-Logik) umzusetzen. Dazu noch ein paar Vorüberlegungen:

Mit diesen Informationen können wir nun unser erstes Gatter bauen, das UND-Gatter.

UND-Gatter in TTL

UND-Gatter

Wir haben also 2 logische Eingänge und wollen 1 logischen Ausgang haben. Zusätzlich wissen wir, dass wir nur eine logische 1 auf dem Ausgang haben wollen, wenn beide Eingänge auch logisch 1 sind.
Eine Lösung ist denkbar einfach: Es werden zwei NPN-Transistoren hintereinander geschaltet und an dem 2 NPN greifen wir dann den Output ab:
TTL-UND

Die Widerstände dienen hier der Strombegrenzung, damit kein Kurzschluss entsteht. Diese müssen auf die Transistoren und Arbeitsspannung angepasst sein, damit die Basis eines Transistors immer genug Strom bekommt, um richtig Durchzuschalten.
Aber wir sind noch nicht am Ziel, wir brauchen noch zwei zusätzliche Logikgatter: ODER und NICHT.
Auch hier ist die Umsetzung nicht so Kompliziert:

ODER-Gatter in TTL

Das Logische-ODER Realisieren wir mit 2 parallel geschalteten NPN-Transistoren und verbinden jeweils den Emitter beider Transistoren, wo wir dann auch den Output abgreifen:
TTL-ODER

NICHT-Gatter in TTL

Die NICHT Schaltung besteht nur aus einem NPN, den Output greifen wir aber nicht am Emitter wie bei UND bzw. ODER sondern am Kollektor. Damit ist bei einer logischen 0 an der Basis des Transistors eine logische 1 am Ausgang des Gatters:
NOT-Gatter

XOR-Gatter in TTL

Wie vorhin schon erwähnt können wir XOR auch durch AND, OR und NOT ausdrücken, also lässt es sich auch aus diesen teilen Bauen:
TTL-XOR

Fazit

Aber wenn wir uns wieder daran erinnern, das wir für jeden Volladdierer 2 XOR-Gatter und zusätzlich noch zwei AND- und ein OR-Gatter brauchen, bemerken wir, wie groß das Projekt so werden würde: 88 Transistoren + weit über 100 Widerstände sind etwas viel Arbeit, also müssen wir uns Gedanken über Optimierung machen: Optimieren und bauen

<<Zurück | Weiter>>