Facharbeit "Bau eines Relaiscomputers"
von Kilian Leonhardt
Email: mail@kilian-leonhardt.de

Zurück zum Inhaltsverzeichnis

Der Addierer

Ich werde zunächst etwas auf die Addition zweier Binärzahlen eingehen, bevor es an die Erklärung meiner Schaltung geht.

Beispiel einer Addition zweier Binärzahlen:

Bit Nr. 7 6 5 4 3 2 1
Rechnung 0 1 0 1 1 0 1 Zahl 1
+ 1 0 0 1 0 1 1 Zahl 2

Man beginnt mit den beiten untereinanderstehenden Bits 1. Hier muß man nun unterscheiden:
0 + 0 ergibt 0
0 + 1 ergibt 1
1 + 0 ergibt 1
1 + 1 ergibt 1 0

Im letzten Fall reicht eine Binärstelle nicht aus, um das Ergebnis darzustellen. Deshalb wird die 1 als Übertrag zu den nächsten zwei zu verrechnenden Bits (das sind die Bits 2) hinzugezählt. Dieser Fall tritt bei dem hier aufgeführten Beispiel ein. Man schreibt nun also als Ergebnisstelle 0 und als Übertrag 1 zu den nächsten zwei zu verrechnenden Bits.

Überträge 1
0 1 0 1 1 0 1 Zahl 1
+ 1 0 0 1 0 1 1 Zahl 2
= 0 Ergebnis

Man wird nun feststellen, daß es bei den folgenden Bits immer 3 Bits, nämlich 2 Bits plus den Übertrag der vorhergehenden Bits, zu addieren sind. Hier muß man unterscheiden:

Fall Ergebnis
1. Wenn keines der drei Bits den Wert 1 haben 0
2. Wenn nur eines der drei Bits den Wert 1 hat 1
3. Wenn zwei der drei Bits den Wert 1 haben 1 0
4. Wenn alle drei Bits den Wert 1 haben 1 1

Bei unserem Beispiel ist Fall 3 eingetreten. Hier langt wiederum eine Binärstelle nicht, um das Ergebnis darzustellen. Die 0 wird also als Stelle, und die 1 als Übertrag geschrieben:

Überträge 1 1
0 1 0 1 1 0 1 Zahl 1
+ 1 0 0 1 0 1 1 Zahl 2
= 0 0 Ergebnis

Wiederholt man diese Addition von drei Bits von rechts nach links, so kommt man letztlich zum Ergebnis der Addition:

Überträge 0 0 1 1 1 1
0 1 0 1 1 0 1 Zahl 1
+ 1 0 0 1 0 1 1 Zahl 2
= 1 1 1 1 0 0 0 Ergebnis

Es muß nun eine Schaltung erstellt werden, welche auf diesen Regeln basiert. Zunächst etwas Allgemeines hierzu: Die zu addierenden zwei Zahlen werden dem Addierer durch 22 Anschlüsse zugeführt, jede Zahl wird durch 11 Anschlüsse dargestellt. Jeder einzelne Anschluß einer Zahl repräsentiert eine Binärstelle. Wird an einen Anschluß 5 Volt angeschlossen, bedeutet dies, daß diese Binärstelle 1 ist. Hängt ein Anschluß „in der Luft“, liegt also keine Spannung an, so bedeutet dies, daß die entsprechende Binärstelle 0 ist. Bei den Ausgängen verhält es sich ähnlich: Es gibt 12 Ausgänge, die entsprechend jeweils eine Binärstelle des Ergebisses darstellen. Will man die Beispielrechnung mit dem Addierer manuell durchführen, müsste man an die gewünschten Eingänge 5 Volt anschließen, und an die Ausgänge Lämpchen, um das Ergebnis anzulesen.
Eine Skizze verdeutlicht dies mit der Beispielrechnung:

Die erste Schaltung, die zur Addition zweier Binärzahlen notwending ist, kann die ersten beiden Bits (in obiger Skizze: die Bits 1 von Zahl 1 und Zahl 2) zusammenzählen, und als Ergebnis die Ergebnisstelle und den Übertrag ausgeben. Man nennt diese Schaltung Halbaddierer.
Bei dem Entwurf der Schaltung machte ich mir folgende Überlegung:

Einen Übertrag gibt es nur dann, wenn beide Bits 1 sind. (1 1)
Eine Stelle gibt es nur dann, wenn beide Bits unterschiedliche Werte haben. (1 0 oder 0 1)

Meine Schaltung sieht wie folgt aus:

Auf der linken Seite sieht man die beiden Bits (Bits 1 von Zahl 1 und Zahl 2). Betrachten wir zunächst Relais 1 und Relais 2. An Kontakt 1 von Relais 1 ist +5 Volt angeschlossen. An Kontakt 1 von Relais 2 ist der Ausgang für die Ergebnisstelle zu finden. Bei Relais 1 und 2 ist Kontakt 2 und 3 über Kreuz verbunden. Hat Bit 1 den Wert 1, so schaltet Relais 1 die positive Spannung an Kontakt 2 von Relais 1, und somit an Kontakt 3 von Relais 2. Der Anschluß der Ergebisstelle steht nur dann unter Spannung, wenn Bit 2 den Wert 0 hat, demnach also Relais 2 aus ist. Der andere Fall: Hat Bit 1 den Wert 0, ist also Relais 1 aus, dann steht der Anschluß der Ergebisstelle nur dann unter Spannung, wenn Bit 2 den Wert 1 hat, also Relais 2 angezogen ist. An dem Anschluß der Ergebnisstelle liegt keine Spannung an, wenn beide Bits den Wert 1 bzw. Beide Bits den Wert 0 haben. Nun zum Übertrag: Hat Bit 1 den Wert 1, so liegt am Kontakt 2 dieses Relais Spannung an. Hat Bit 2 ebenfalls den Wert 1, so schaltet Relais 3 diese Spannung an den Ausgang für den Übertrag weiter. Demnach liegt am Ausgang für den Übertrag nur dann eine Spannung an, wenn beide Bits den Wert 1 haben.

Die Ergebnisstelle kann nun als erstes Ergebnisbit an den Ergebnisanschluß des Addierers geführt werden. Der Übertrag muß in der nächsten Rechnung zusammen mit dem folgenden Bits der beiden Zahlen (Bits 2) verwendet werden. Die Schaltung für diese Rechnung wird allerdings ungleich komplizierter, denn hier müssen nun 3 Bits addiert werden, diese Schaltung nennt man Volladdierer.

Meine Vorgehensweise zum Entwurf des Volladdierers werde ich nun erläutern. Es gibt genau 8 Kombinationen, in welchen die drei Bits unterschiedliche Werte annehmen können. Aufgrund des Kommutativgesetzes (z.B.1+0+1 = 1+1+0) kommt es jedoch beim Ergebnis der Addition darauf an, wie viele der drei Bits den Wert 1 haben. Ich dachte mir, daß es wohl am schwierigsten festzustellen sei, daß 2 Bits den Wert 1 haben, und fing deshalb mit diesem Problem an. Es gibt drei Möglichkeiten, daß 2 Bits den Wert 1 haben:

Bit 1 Bit 2 Bit 3
Fall 1 1 1 0
Fall 2 0 1 1
Fall 3 1 0 1

Folgende Schaltung ergab sich aus meinen Überlegungen:

Betrachten wir uns zuerst Relais 1 2 und 3. Die Verschaltung ist so vorgenommen, daß nur wenn Bit 1 den Wert 1, Bit 2 den Wert 1 und Bit 3 den Wert 0 hat, Punkt 1 der Schaltung unter Spannung liegt. Das Prinzip ist einfach: Jedes Relais gibt die Spannung sozusagen an das nächste Relais weiter. Ich mußte lediglich die Kontakte 2 bzw 3 der Relais entsprechend wählen, damit die Spannung bei eingeschaltetem bzw. bei ausgeschaltetem Relais weitergegeben wird.
Das gleiche Prinzip gilt bei den übrigen Relais. Um Relais zu sparen benutzte ich die Schaltung der Relais 1 2 und 3 jedoch mit. Hat Bit 1 den Wert 0, so sind Relais 2 und 3 belanglos, und die Spannung kann nur noch von Relais 4 und 5 weitergegeben werden. Diese geben die Spannung aber nur weiter, wenn Bit 2 und 3 den Wert 1 haben, das entspricht in der Tabelle dem Fall 2.
Hat Bit 1 den Wert 1 und Bit 2 den Wert 0 so liegt lediglich am Kontakt 1 von Relais 6 eine Spannung an. Nur wenn dann auch noch Bit 3 den Wert 1 hat, wird die Spannung an den Punkt 3 in der Schaltung geschaltet. Das entspricht in der Tabelle dem Fall 3.

Wenn also zwei von drei Bits den Wert 1 haben, so steht entweder Punkt 1, 2 oder drei der Schaltung unter Spannung. Verdrahtet man die Punkte, so hat man eine Leitung die genau dann unter Spannung steht, wenn zwei von drei Bits den Wert 1 haben.

Punkt 4 in der Schaltung steht dann unter Spannung, wenn alle drei Bits den Wert 1 haben.

Um die beschriebene Schaltung ohne viel Aufwand zum Volladdierer zu komplettieren machte mir nun folgende Überlegungen:

Die Stelle wird nur dann 1, wenn mindestens ein Bit den Wert 1 hat und nicht zwei von drei Bits den Wert eins haben. Letztere Bedingung haben wir schon mit den Leitungen 1 oder 2 oder 3.
Der Übertrag wird nur dann 1, wenn zwei von drei Bits oder alle drei Bits den Wert 1 haben.

Umgesetzt sehen diese Überlegungen wie folgt aus:

Am Kontakt 1 von Relais 7 liegt immer dann Spannung an, wenn mindestens ein Bit den Wert 1 hat. Die Dioden sind notwendig, damit (nach außen hin) keine leitende Verbindung zwischen den einzelnen Bits besteht. Wenn zwei von drei Bits den Wert eins haben, dann trennt Relais 7 diese Spannung vom Spulenkontakt von Relais 8 ab. Relais 8 ist als Treiberrelais gedacht, um die Spannung, die an den Dioden abfällt (für die verwendeten Dioden typischerweise 0.5 Volt) zu kompensieren. Die Bedingungen für die Ergebnisstelle sind erfüllt: Die Stelle wird dann 1, wenn nur ein Bit oder drei Bits den Wert 1 haben.
Der Übertrag ist dann 1, wenn zwei von drei Bits den Wert eins haben oder wenn alle drei Bits den Wert 1 haben. Diese ODER-Verschaltung wurde wieder mit Dioden vorgenommen, um Rückwirkungen zu vermeiden. (z.B. darf die Bedingung, daß drei Bits den Wert 1 haben nicht Relais 7 steuern) Um den Spannungsabfall der Dioden wieder zu kompensieren, auch hier eine Treiberstufe.
Die Ergebnisstelle kann nun als zweites Ergebnisbit an den Ergebnisanschluß des Addierers geführt werden, das Übertragsbit wird zum nächsten Volladdierer geführt.

Die weiteren Schaltungen der Volladdierer sind alle gleich. Deshalb werde ich nur in einer Skizze die Verschaltung der einzelnen Addierer aufzeigen:


Zurück zum Inhaltsverzeichnis