- Ripple-Carry-Addierer
-
Der Carry-Ripple-Addierer (von engl. carry - Übertrag, ripple - rieseln), auch Ripple-Carry-Addierer oder ripple-through carry, ist ein Addiernetz, dient also der Addition mehrstelliger Binärzahlen.
Ein n-Bit-Carry-Ripple-Addierer kann zwei n-stellige Binärzahlen addieren, das Ergebnis hat dann n+1 Stellen. Das Schaltnetz hat also 2n Eingänge (mit carry in 2n + 1 Eingänge) und n+1 Ausgänge.
Er setzt sich entweder aus n Volladdierern oder aus einem Halbaddierer und n-1 Volladdierern zusammen. Im letzteren Fall würde der Volladdierer, der die niederwertigsten Bits addiert (im Bild rechts zu sehen) durch einen Halbaddierer ersetzt werden, da bei der ersten Addition noch kein Übertrag berücksichtigt werden muss. Der Übertrags-Ausgang der Addierer wird jeweils an einen Eingang des nächsten Volladdierers angeschlossen. Der Übertrags-Ausgang des letzten Volladdierers bildet den (n+1)-ten Ausgang des Schaltnetzes.
Da Volladdierer nicht unendlich schnell arbeiten, kann es zu Verzögerungen bei der Berechnung des Endergebnisses kommen, da der Volladdierer das korrekte Ergebnis erst dann ausgeben kann, wenn der vorhergehende Volladdierer das Übertragsbit geliefert hat. Im schlechtesten Fall führt die Addition a0+b0 zu einem Übertrag, und für alle i>0 gilt: ai+bi≥1. Dann muss das Übertragsbit durch das gesamte Addiernetz wandern, bevor das richtige Ergebnis ausgegeben wird (Übertragspropagation).
Um diese langen Laufzeiten zu vermeiden, wurden beschleunigte Addiernetze entwickelt, etwa Carry-Skip, Carry-Look-Ahead ((Super)Ripple CLA und (Super)Block CLA), Conditional Sum Addition und Carry-Select-Addierer.
Wikimedia Foundation.