- Carry-Look-Ahead-Adder
-
Der Paralleladdierer mit Übertragsvorausberechnung bzw. Carry-Look-Ahead-Addierer (kurz: CLA-Addierer) ist ein elektronischer Baustein zur Addition mehrstelliger Binärzahlen (siehe auch Addierwerk).
Der CLA-Addierer addiert zwei n-stellige Binärzahlen, verfügt also über 2·n Eingänge. Da das Ergebnis einen etwaigen Übertrag enthalten kann, gibt es n+1 Ausgänge.
Während beim Carry-Ripple-Addierer die Bits der beiden Summanden zwar parallel addiert werden, die etwaigen Überträge aber sequentiell von Volladdierer zu Volladdierer weitergereicht werden, ist die Laufzeit recht hoch. Der CLA-Addierer dagegen verfügt über eine spezielle Logik, die die Überträge bereits im ersten Additionsschritt ermittelt. Dies ist allerdings mit einem größeren Schaltungsaufwand verbunden.
Ein CLA-Addierer mit n Bit Wortbreite benötigt unter anderem ein Und-Gatter und ein Oder-Gatter mit n Eingängen. Logikgatter mit vielen Eingängen haben meist hohe Verzögerungszeiten beim Schalten, weshalb CLA-Addierer nur bei kleinen Wortbreiten effektiv sind.
Ein ähnlich schnell addierendes Rechenwerk stellt die Conditional Sum Addition dar.
Funktionsweise
a und b sind die Summanden. g (generate: generieren, erzeugen) gibt an, ob an einer Stelle ein Übertrag erzeugt wird. p (propagate: propagieren, verbreiten) gibt an, ob an einer Stelle der Übertrag von der vorherigen Stelle weitergegeben wird oder ob der Übertrag absorbiert wird (1 = wird weitergegeben, 0 = wird absorbiert). s (sum) ist die Summe und c (carry) der Übertrag.
- si = pi XOR ci
- ci+1 = gi OR pici
- c0 = 0
- c1 = g0 OR (p0 AND c0)
- c2 = g1 OR (p1 AND g0) OR (p0 AND p1 AND c0)
- c3 = g2 OR (p2 AND g1) OR (p2 AND p1 AND g0) OR (p0 AND p1 AND p2 AND c0)
- ...
Erklärung in Worten am Beispiel c3: An der 3ten Stelle gibt es einen Übertrag, wenn die 2. Stelle einen Übertrag erzeugt, oder wenn die 2. Stelle den von der 1. Stelle erzeugten Übertrag weitergibt, oder wenn die 2. und 1. Stelle den von der 0ten Stelle erzeugten Übertrag weitergibt.
Im 3-Bit-CLA-Addierer in der Abbildung wurde c0 weggelassen, da dieses stets 0 ist. s0 ist somit immer gleich p0.
Weblinks
Wikimedia Foundation.