Zum Inhalt springen

Volladdierer

aus Wikipedia, der freien Enzyklopädie
Dies ist die aktuelle Version dieser Seite, zuletzt bearbeitet am 10. Dezember 2025 um 12:12 Uhr durch imported>Bocksberg77 (Änderungen von ~2025-39291-60 (Diskussion) auf die letzte Version von Daniel Maak zurückgesetzt).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Datei:Volladdierer Schaltsymbol.png
Schalt­symbol eines Voll­addierers
Datei:Volladdierer Schaltsymbol DIN40900 korrigiert.svg
Schaltsymbol eines Volladdierers nach DIN 40900
Datei:Inverting full adder CMOS 24T.svg
Beispiel eines invertierenden Volladierers in CMOS mittels AND-OR-Invert-Logik<ref name="Fischer" />

Ein Volladdierer (englisch full adder) ist ein Schaltnetz, das üblicherweise als digitale Schaltung realisiert wird. Es besteht aus drei Eingängen (<math>x</math>, <math>y</math> und <math>c_\mathrm{in}</math>) und zwei Ausgängen (<math>s</math> und <math>c_\mathrm{out}</math>). Mit einem Volladdierer kann man drei einstellige Binärzahlen addieren. Dabei liefert der Ausgang <math>s</math> (engl. sum – Summe) die niederwertige Stelle des Ergebnisses, der Ausgang <math>c_\mathrm{out}</math> (engl. carry (output) – Übertrag (Ausgang)) die höherwertige. Die Bezeichner <math>c_\mathrm{in}</math> und <math>c_\mathrm{out}</math> legen hierbei eine Möglichkeit zur Übertragsbehandlung in Addiernetzen nahe.

Eingänge und Ausgänge

Die folgende Wahrheitstabelle zeigt die Eingangswerte und Ausgangswerte eines Volladdierers:

<math>x</math> <math>y</math> <math>c_\mathrm{in}</math> <math>c_\mathrm{out}</math> <math>s</math>
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1

Realisierungen

Daraus ergeben sich folgende Gleichungen, indem man zunächst die disjunktive Normalform aus den Wahrheitswerten der Tabelle bildet und dann vereinfacht:

<math>\begin{align}

c_\mathrm{out}&=\left( \overline{x} \wedge y \wedge c_\mathrm{in} \right) \vee \left( x \wedge \overline{y} \wedge c_\mathrm{in} \right) \vee \left( x \wedge y \wedge \overline{c_\mathrm{in}} \right) \vee \left( x \wedge y \wedge c_\mathrm{in} \right)\\ &= (c_\mathrm{in}\wedge(x \oplus y))\vee \left( x \wedge y \right) \end{align}</math> und

<math> s = x \oplus y \oplus c_\mathrm{in} </math>

Die linke Abbildung zeigt den Aufbau eines Volladdierers mittels Halbaddierern und einem Oder-Gatter.

Datei:Volladdierer Aufbau HA DIN40900.svg
Aufbau eines Volladdierers mittels zweier Halbaddierer und eines Oder-Gatters nach DIN 40900
Datei:Volladdierer Aufbau DIN40900.svg
Aufbau eines Volladdierers mit 2 Und-Gattern, 2 XOR-Gattern und 1 Oder-Gatter nach DIN 40900

Die rechte Abbildung zeigt ebenfalls den Aufbau eines Volladdierers, wobei die Halbaddierer jeweils in ein Und-Gatter und ein Exklusiv-Oder-Gatter aufgetrennt wurden. Hierbei ist zu beachten, dass in beiden Abbildungen die Summenausgänge <math>s</math> jeweils unten und die Übertragsausgänge der Halbaddierer <math>c_\mathrm{out}</math> jeweils oben dargestellt sind. Ein Halbaddierer kann auch aus 2 Invertern, 3 Und-Gattern und 1 Oder-Gatter aufgebaut werden. Für einen Volladdierer bräuchte man dann 4 Inverter, 6 Und-Gatter und 3 Oder-Gatter.

Optimiert man den Ausdruck für den Volladdierer weiter, ohne den Carry-Pfad zu verlangsamen, ergeben sich weitere Vereinfachungen:

Datei:Volladdierer ohne XOR DIN Symbol.svg
Volladdierer mit 4 Und-Gattern, 4 Oder-Gattern und 1 Inverter.
Datei:Full Adder using NAND gates.svg
Volladdierer mit 9 NAND-Gattern
Datei:Full Adder using NOR gates.svg
Volladdierer mit 9 NOR-Gattern
<math>\begin{align}

I &= x\wedge y\\ J &= x\vee y\\ c_\text{out} &= I\vee (x\wedge c_\text{in})\vee (y\wedge c_\text{in})\\ c_\text{out} &= I\vee((x\vee y)\wedge c_\text{in})\\ c_\text{out} &= I\vee (J\wedge c_\text{in})\\ s &= (x\wedge\overline{c_\text{out}})\vee (y\wedge\overline{c_\text{out}})\vee (c_{in}\wedge\overline{c_\text{out}})\vee (I\wedge c_\text{in})\\ s &= ((J\vee c_\text{in})\wedge\overline{c_\text{out}})\vee (I\wedge c_\text{in}) \end{align}</math>

Auf diese Weise kann ein Volladdierer mit 4 Und-Gattern, 4 Oder-Gattern und 1 Inverter realisiert werden.

Stattdessen kann ein Volladdierer auch aus 9 NAND-Gattern oder 9 NOR-Gattern aufgebaut werden.<ref>Electronicshub.org: Half Adder and Full Adder Circuits</ref><ref>GeeksforGeeks: Full Adder in Digital Logic</ref>

Ein zweistufiger und damit schnellerer Volladdierer kann durch Optimierung direkt aus der Wertetafel, zum Beispiel nach dem KV-Verfahren, konstruiert werden.

Der Volladdierer wird zum Aufbau von Addierwerken und Multiplizierern verwendet, oft mit einem Halbaddierer am Anfang der Übertragkette.

Bei der Invertierung aller Eingänge eines Volladdierers invertieren sich alle Ausgänge, dies kann zur Laufzeitoptimierung von Addierwerken verwendet werden, indem auf die Invertierung von <math>c_\text{out}</math> verzichtet wird.<ref name="Fischer">Vorlage:Cite book/NameVorlage:Cite book/Name: [Internetquelle: archiv-url ungültig Einfache Schaltungsblöcke.] Universität Heidelberg, , archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am Vorlage:Cite book/URL; abgerufen am 5. September 2021.Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref>

Siehe auch

Literatur

Einzelnachweise

<references />