Schaltungsbeispiele
1. Halbaddierer
Für die Addition zweier Dualzahlen ergibt sich die folgende
Schaltwerttabelle:
a |
b |
c |
s |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
Für c ergibt sich a AND b und für s a XOR b. Das ergibt die
folgende Schaltung:
2. Volladdierer
Volladierer lassen sich durch die Kombination zweier Halbaddier
und eines ODER-Gatters realisieren. Man addiert im ersten
Halbaddierer zunächst a und b und anschließend mit dem zweiten
Halbaddierer den Übertrag c. Man erhält die Summenziffer s. Den
Übertrag c' erhält man durch Disjunktion der beiden Halbaddierer, da
ein gleichzeitiger Übertrag ausgeschlossen ist.
3. 4-Bitparalleladdierer
Mit den bisher entwickelten Rechenschaltungen kann
man einen Addierer für zwei
mehrstellige Dualzahlen aufbauen. Für die Einerstelle wird nur ein
Halbaddierer benötigt, da hier nur zwei Dualziffern zu addieren
sind, für jede weitere Stelle braucht man einen Volladdierer. Jeder
Volladdierer muss einen eventuellen Übertrag aus der vorhergehenden
Stelle verarbeiten. Diese Überlegung führt zu folgendem Schaltbild.
Der Übertrag des letzten Volladdierers zeigt eine eventuelle
Bereichsüberschreitung an. Eine Bereichsüberschreitung liegt vor,
wenn das Ergebnis nicht mehr mit den zur Verfügung stehenden
Dualstellen ausgedrückt werden kann. Mit vier Dualstellen kann man
den Zahlbereich von 0 bis 15 darstellen. Werden dezimal 9 und 7
addiert, so kann das Ergebnis nicht mehr mit den vier Dualstellen
dargestellt werden und es liegt eine Bereichsüberschreitung vor.
4. 4-Bitparallelsubtrahierer
Zwei Dualzahlen werden subtrahiert, indem man das
Zweierkomplement er einen Zahl zur anderen addiert. Mit Hilfe der
folgenden Schaltung lässt sich das Zweierkomplement bilden. Die
Addition von 1 zum Einerkomplement wird durch Anlegen eines
1-Signals am ersten Halbaddierer erreciht.
Für die Subtraktion muss man den Addierer und die
Zweierkomplementschaltung kombinieren. Die Addition von 1 zum
Einerkomplement wird hier durch Anlegen eines 1-Signals an den
ersten Eingang eines Volladdierers für die Einerstelle realisiert.
Der Halbaddierer der Additionsschaltung muss durch einen
Volladdierer ersetzt werden.
Diese Schaltung hat noch den Nachteil, dass keine
Bereichsüberschreitung signalisiert wird. Durch die
Zweierkomplementdarstellung der Dualzahlen reicht der Zahlenbereich
von - 8 bis + 7. Es ist nicht wie bei der Additionsschaltung
möglich, den Übertrag des letzten Volladdierers als Signal für eine
Bereichsüberschreitung zu nutzen.
Die folgenden Beispiele sollen das Problem zeigen:
-1
1111
+ (-1) + 1111
------- ---------
-2 (1)1110
Der letzte Übertrag ist 1, obwohl kein Überlauf vorliegt, da -2 im
vorgegebenen Bereich liegt.
1
0001
+ (-8) + 1000
------- ---------
-7 (0)1001
Der letzte Übertrag ist 0 und es liegt kein Überlauf vor, da -7 im
vorgegebenen Bereich liegt
Ein Überlauf liegt vor, wenn
1. die höchstwertigen Summandenbits gleich sind und
2. der letzte Übertrag ungleich dem höchstwertigen Ergebnisbit ist.
Mit dieser Kenntnis kann man den Parallelsubtrahierer so erweitern,
dass eine Bereichsüberschreitung signalisiert wird. Hierzu müssen
die beiden höchstwertigen Summandenbits mit einem
ÄQUIVALENZ-Gatter(not XOR) und der letzte Übertrag und das
höchstwertige Bit des Ergebnisses mit einem XOR-Gatter verknüpft
werden. Die beiden Verknüpfungsergebnisse werden über ein UND-Gatter
zum Bereichsüberschreitungssignal zusammengefasst.
5. Parallel Addierer/Subtrahierer
Die weitgehende schaltungstechnische Übereinstimmung von
Paralleladdierer und Parallelsubtrahierer führt zu der Überlegung,
ob man nicht auf einfache Weise eine zwischen Addition und
Subtraktion umschaltbare Rechenschaltung konstruieren könnte. Wenn
man beim Paralleladdierer den Halbaddierer für die Einerstelle durch
einen Volladdierer ersetzen und dessen ersten Eingang mit 0 belegen,
verhält sich diese Schaltung genauso wie der bisherige
Paralleladdierer. Wird dieser Eingang mit 1 belegt, findet eine
zusätzliche Addition von 1 statt. Genau diese Eigenschaft brauchte
man zur Bildung des Zweierkomplements. Wenn dieses Signal gegeben
wird, muss die zu subtrahierende Zahl in ihr Einerkomplement
umgewandelt werden.Um dies zu erreichen, benutzt man eine
Eigenschaft des XOR-Gatters aus: Liegt eine ungerade Anzahl von
Signalen an, wird das Signal durchgeschaltet, liegt eine gerade Zahl
an, wird das Eingangssignal invertiert. Damit lässt dich die
folgende Schaltung aufbauen, die eine Addition und Subtraktion
durchführen kann.
6. 2-Bit-Multiplexer
Der Datenaustausch zwischen den verschiedenen Bereichen eines
Computers erfordert Schaltungen, die eine von mehreren
Eingangsleitungen auf eine Ausgangsleitung durchschalten können. Es
soll ein Multiplexer entworfen werden, der einen von zwei Eingängen
auf den Ausgang durchschaltet (1-aus-2-Multiplexer).Um einen der
zwei Eingänge auszuwählen, wird eine Adressleitungen benötigt, so
dass die
Schaltung insgesamt 3 Eingänge besitzt. Statt die Schaltung über die
sehr umfangreiche Funktionstabelle herzuleiten, benutzt man eine
besonders nützliche Eigenschaft der UND-Schaltung, die sogenannte
Torwirkung. Ein UND-Gatter schaltet nur, wenn alle Eingänge den Wert
1 haben. Wenn die gewünschte Datenleitung den Wert 1 hat, muss auch
die Steuerleitung den Wert 1 bekommen. Da bei diesem Multiplexer nur
2 Datenleitungen anliegen, reicht eine Steuerleitung aus. Diese kann
den Wert 0 oder 1 haben. Bei 0 schaltet der eine Baustein mit Hilfe
einer negation, bei 1 der zweite Baustein.
7. 4-Bit-Multiplexer
Entsprechend kann man auch einen 1-aus-4-Multiplexer aufbauen.
Bei vier Datenleitungen benötigt man 2 Steuerleitungen.