Logikgatter bilden die Grundfunktionen der sogenannten booleschen Algebra, die
auf elektronischem Weg mit Hilfe von elektronischen Gattern ab.
Im Gegensatz zur allgemeinen Schulalgebra mit rationalen und reellen Zahlen können die Eingangsgrößen der booleschen Algebra nur die Werte 1 (HIGH, LED AN) oder 0 (LOW, LED AUS) annehmen und die Ergebnisse der Verknüpfung zweier Eingangsgrößen nicht größer als 1 sein. Und es gibt weder bei der AND- noch bei der OR-Verknüpfung Überträge an höhere Binärstellen, so wie wir es im Dezimalsystem zum Beispiel bei der Addition gewohnt sind.
Zu den Grundfunktionen der booleschen Algebra ließen sich auch die beiden negierten Funktionen zu AND und OR zählen, die man kurz mit NAND (not AND) und NOR (not OR) abkürzt.
Wir werden uns hier mit den Grundfunktionen NAND, NOR, NOT und einer vierten Funktion EXOR (Exklusiv-ODER oder Antivalenz) beschäftigen, die sogenannten Wahrheitstabellen anschauen und einen Halb- und Volladdierer aus den insgesamt 6 Gattern aufbauen.
Als Hilfsmittel dient hier das Programm ProfiLab Expert bzw. ProfiLab der Fa. ABACOM.
Zur Ermittlung der Wahrheitstafeln der logischen Funktionen kann das Programm ProfiLab Expert sehr gut eingesetzt werden. Für den Unterricht lassen sich die Schaltungen vorher kompilieren (.exe Datei) und den Schülern als ausführbare Datei zur Verfügung stellen. Eine mögliche Darstellung auf dem Bildschirm zeigt die folgende Abbildung:
Wahrheitstabellen erstellen | |
Aufgaben |
|
Wahrheitstabellen
Die Spalten A und B in den Wahrheitstabellen stehen für die Eingänge des jeweiligen Gatters. Erfasst man die Eingangs- und Ausgangssignale mit einem eingangsseitigen Bitmustergenerator und ausgangsseitig mit einem Logikanalysator, lassen sich die Verknüpfungsglieder dynamisch untersuchen. Für zwei der oben genannten Grundgatter ergeben sich die folgenden Zustandsdiagramme:
Teste dein Wissen - 1
Mit dem in Abb. 2c gezeigten Programm "Logikgatter_Zeitdiagramm.exe" kannst du dein Wissen über das Verhalten von Logikgattern noch einmal überprüfen. Entweder machst du das über die LED-Anzeige oder - was schwerer ist - über das Zeitdiagramm.
Wie arbeitet das Programm?
Nach dem Programmstart sucht man sich eine der fünf angebotenen Schaltungen aus. Über den roten Knopf wird die Aufzeichnung des Zeitdiagramms gestartet; dafür hast du ungefähr 10s Zeit.
Wenn alle Tasterbewegungen ins Zeitfenster gepasst haben (vielleicht muss man es vorher ein-, zweimal üben), dann erhälst du z. B. folgendes Zeitdiagramm:
Teste dein Wissen - 2
Analysiere die folgende Schaltung, indem du ihre Wahrheitstafel aufstellst. Wie lässt sich die Schaltung vereinfachen?
Schauen wir alle Möglichkeiten an, zwei Binärzahlen zu addieren.
An der Summenspalte erkennt man, dass die Summe immer dann 1 ist, wenn einer der beiden Summanden 1 ist. Dies ist identisch mit der Wahrheitstafel eines EXOR-Gatters (Antivalenz). Kommt der Übertrag hinzu, dann muss für den Fall, dass beide Summanden 1 sind, eine 1 im Übertrag angezeigt werden. Die folgende Schaltung erfüllt die Wahrheitstafel.
Der Halbaddierer ist in der Lage zwei Bits zu addieren; er zeigt einen Übertrag an, aber er kann keine Überträge, die von weiteren Additionsstufen kommen, verarbeiten. Aus diesem Grund ist es ein Halb- und kein Volladdierer. Erst durch das Hinzufügen eines dritten Eingangs, der einen Übertrag aus einer vorherigen Additionsstufe aufnimmt, wird der Halb- zum Volladdierer. Realisiert wird dies durch zwei hintereinandergeschaltete Halbaddierer wie in der folgenden Abbildung gezeigt.
Fasst man die beiden Halbaddierer zu einem Makro zusammen, dann ergibt sich daraus ein Volladdierer (VA) mit 3 Eingängen (A, B, C) und zwei Ausgängen (S und Ü). Mit diesem VA-Baustein lässt sich dann ein 4-Bit Volladdierer aufbauen.
5.1 4-Bit Additions- / Subtraktionswerk
Etwas Theorie
Bisher lassen sich mit den vorgestellten Schaltungen nur binäre Zahlen addieren. In diesem Abschnitt stellen wir die Subtraktion binärer Zahlen und ein Additions-/ Subtraktionswerk vor.
Bei den meisten Rechenwerken wird eine Subtraktion auf eine Addition des Zweierkomplements des Subtrahenden zurückgeführt. Dieses Verfahren ist im dualen Zahlensystem besonders einfach. Betrachten wir dazu ein Beispiel.
Beispiel
Berechne die Differenz aus den beiden Zahlen 23 und 18: 23 - 18.
Die erste Zahl wird auch als Minuend, die zweite als Subtrahend bezeichnet. Es gilt immer: Minuend minus Subtrahend gleich Differenz.
Lösung
Stellenwert |
32 |
16 |
8 |
4 |
2 |
1 |
23 |
0 |
1 |
0 |
1 |
1 |
1 |
18 |
0 |
1 |
0 |
0 |
1 |
0 |
Es gilt: 2310 (im Zehnersystem) entspricht die Zahl 101112 (im Binärsystem); entsprechend gilt für die Zahl 1810 = 100102.
Dezimalzahl\Stellenwert |
32 |
16 |
8 |
4 |
2 |
1 |
Aktion |
23 |
0 |
1 |
0 |
1 |
1 |
1 |
|
/18 |
1 |
0 |
1 |
1 |
0 |
1 |
Einserkomplement von 18 |
Dezimalzahl\Stellenwert |
32 |
16 |
8 |
4 |
2 |
1 |
Aktion |
23 |
0 |
1 |
0 |
1 |
1 |
1 |
|
/18 + 1 |
1 |
0 |
1 |
1 |
1 |
0 |
Zweierkomplement von 18 |
Dezimalzahl\Stellenwert |
32 |
16 |
8 |
4 |
2 |
1 |
Aktion |
23 |
0 |
1 |
0 |
1 |
1 |
1 |
|
/18 + 1 |
1 |
0 |
1 |
1 |
1 |
0 |
Zweierkomplement von 18 |
Ergebnis |
1 |
0 |
0 |
1 |
0 |
1 |
|
Streiche die 1 im höchsten Bit des Ergebnisses; die restlichen Stellenwerte zeigen das Ergebnis der Subtraktion an:
010111 – 101110 = x00101
23 - 18 = 5
Der darstellbare Zahlenraum wird kleiner
Stehen uns nur vier Bit pro Operand zur Verfügung, heißt das, dass die niedrigste darstellbare negative Zahl -7 oder 1111 ist. Das höchstwertige Bit ist hier das Vorzeichenbit und verkleinert damit den darstellbaren Zahlenraum. Entsprechend ist die höchste darstellbare Zahl 01112 = 710.
Der Negativwert einer Zahl N entspricht ihrem Zweierkomplement /N +1.
5.2 Aufbau eines 4-Bit Additions-/ Subtraktionswerkes
Eine Subtraktion wird über die Zweierkomplement-Bildung des Subtrahenden erreicht. Mit Hilfe von XOR-Gattern (siehe oben) wird die Negation (aus 1 wird 0 und aus 0 wird 1) umgesetzt. Dazu wird einer der beiden Eingänge des Gatters auf 1 gezogen bzw. der Schalter auf SUB gesetzt.
Legt man an den zweiten Eingang des XOR-Gatters das Subtrahenden-Bit (2. Term, siehe Abb. 6), wird es am Ausgang negiert, bei einer 0 nicht. Das Eingangsbit wird an den Ausgang unverändert weitergegeben.
Die Stellenwerte der LEDs sind bezeichnet. So lässt sich schneller das dargestellte Ergebnis in uns geläufigere Dezimalzahlen umrechnen.
6.1 - 8-Bit Additionswerk
Wir haben gesehen, dass Rechenwerke mit 4-Bit Wortlänge sehr beschränkt und nicht gerade alltagstauglich sind. Deshalb werden wir im folgenden Abschnitt 6 ein 8-Bit Addierwerk und ein 8-Bit Additions-/ Subtraktionswerk mit Steuereinheit entwerfen. Die Basis bildet ein 8-Bit Additionswerk, das sich aus acht Volladdierern zusammensetzt, die in einem Makro "8-Bit-VA" abgelegt werden (s. Abb. 7).
6.2 - Subtraktion zweier Binärzahlen
Aus vorher gemachten Überlegungen wissen wir, dass die Subtraktion zweier Binärzahlen auf eine Addition zurückgeführt wird.
Eine negative Zahl lässt sich im binären Zahlenraum über das Zweierkomplement bilden. Dazu wird der Subtrahend B negiert (/B) und anschließend inkrementiert (+1).
Ein Beispiel
A = 10012 = 910 und B = 11002 = 1210 seien gegeben.
Bestimme die Differenz der Zahlen:
1. Fall: A - B
Das Zahlenergebnis einer negativen Zahl im Dualsystem wird durch eine einfache Umwandlung lesbar gemacht.
2. Fall: B - A
Vertauschen wir die beiden Operanden, dann wird das Ergebnis der Subtraktion aus
positiv ausfallen und in der binären Darstellung deutlich werden.
Das MSB (most significant bit) im Differenzergebnis zeigt in der Zweierkomplement-Arithmetik das Vorzeichen an; dabei gilt:
0: die Differenz ist positiv
1: die Differenz ist negativ
Der 8-Bit Volladdierer aus Abb. 7 wird nun über ein Steuergerät so erweitert, dass Addition, Subtraktion, Zweierkomplementbildung und separat geschaltete Eingaben von Operanden möglich sind.
Die Oberfläche des Programms zeigen die folgenden Bilder:
Abb. 11
Programmoberfläche einer 8-Bit Additions-/Subtraktionseinheit mit Steuergerät
In der Eingabeeinheit sind die beiden Zahlen 10012 und 11002 aus dem obigen Beispiel eingestellt. Es wird berechnet:
10012 - 11002.
Im Steuergerät wurde die Bitfolge 110112 eingestellt, die für eine Subtraktion steht. Das Ergebnis zeigt die Anzeigeeinheit. Das MSB ist HIGH, damit ist das Ergebnis NEGATIV.
Abb. 12
Programmoberfläche einer 8-Bit Additions-/Subtraktionseinheit mit Steuergerät
In der Eingabeeinheit sind die beiden Zahlen 10012 und 11002 aus dem obigen Beispiel eingestellt. Es wird berechnet: 11002 - 10012.
Im Steuergerät wurde die Bitfolge 110112 eingestellt, die für eine Subtraktion steht. Das Ergebnis zeigt die Anzeigeeinheit. Das MSB ist LOW, damit ist das Ergebnis positiv und wie angezeigt: 310.
6.3 - Rechenoperationen mit der 8-Bit Additions-/Subtraktionseinheit mit Steuerwerk
S4 | S3 | S2 | S1 | S0 | Bedeutung | Bemerkungen |
0 | 0 | 0 | 0 | 0 | 0 | Die Eingabeeinheit ist gesperrt, es werden keine Daten an die Anzeigeeinheit übertragen. Alle LEDs sind ausgeschaltet: 0000 0000. |
0 | 0 | 0 | 0 | 1 | +1 | Zum angezeigten Wert in der Anzeigeeinheit wird 1 addiert. |
0 | 0 | 0 | 1 | 0 |
-1 oder 255 |
Alle acht LEDs sind auf HIGH. |
0 | 1 | 0 | 0 | 0 | B | Die über die Schalter B0 ... B7 der Eingabeeinheit eingestellten Binärwerte werden an die Anzeigeeinheit übergeben. |
0 | 1 | 0 | 1 | 0 | /B = -B - 1 | Einerkomplement von B |
1 | 0 | 0 | 0 | 0 | A | Die über die Schalter A0 ... A7 der Eingabeeinheit eingestellten Binärwerte werden an die Anzeigeeinheit übergeben. |
1 | 0 | 0 | 0 | 1 | A + 1 | Der Wert von A wird um 1 erhöht. |
1 | 0 | 0 | 1 | 0 | A - 1 | Der Wert von A wird um 1 erniedrigt. Das Übertragsbit geht auf HIGH. |
1 | 0 | 1 | 0 | 0 | /A = -A - 1 | Einerkomplement von A |
1 | 1 | 0 | 0 | 0 | A + B | Summe von A und B. |
1 | 1 | 0 | 1 | 1 | A - B |
Differenz von A und B. Ist Bit 8 in der Anzeigeeinheit 0, ist das Ergebnis positiv, ist es 1, negativ. Eine negative Binärzahldarstellung kann über: (Zweierkomplementbildung des Ergebnisses) + 1 in eine lesbarere Form gebracht werden. |
1 | 1 | 1 | 0 | 1 | B - A |
Differenz von B und A. Ist Bit 8 in der Anzeigeeinheit 0, ist das Ergebnis positiv, ist es 1, negativ. Eine negative Binärzahldarstellung kann über: (Zweierkomplementbildung des Ergebnisses) + 1 in eine lesbarere Form gebracht werden. |
Tabelle 1 - Eine Auswahl aufrufbarer Funktionen der 8-Bit Additions-/Subtraktionseinheit mit Steuerwerk (s. Abb. 12).
In einem weiteren Schritt wird das 8-Bit Additions-/ Subtraktionswerk mit Steuergerät als Makro abgespeichert und zu einer arithmetisch-logischen Einheit oder ALU erweitert. Es kommen die drei logischen Verknüpfungen XOR, AND und OR sowie ein Datenselektor mit vier Steuersignale hinzu.
Schaltungen, die dies vermögen, werden arithmetic logical units, kurz: ALU, genannt.
Wie eine solche ALU aufgebaut ist und arbeitet, werden wir uns im folgenden Kapitel anschauen. Auch hier bedienen wir uns des Programms ProfiLab.
Wenn dich das Kapitel "Arithmetisch-Logische-Einheit oder ALU" interessiert, geht es hier weiter.