Carry-Ripple-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.<ref name="Hoffmann2023">Dirk Hoffmann: Grundlagen der Technischen Informatik. 7. Auflage. Carl Hanser Fachbuchverlag, München 2023, ISBN 3-446-47779-9, Kapitel 7.5.2: Carry-Ripple-Addierer, S. 220 f. (eingeschränkte Vorschau in der Google-BuchsucheSkriptfehler: Ein solches Modul „Vorlage:GoogleBook“ ist nicht vorhanden.).</ref>
Ein n-Bit-Carry-Ripple-Addierer kann zwei n-stellige Binärzahlen addieren, das Ergebnis hat n+1 Stellen. Das Schaltnetz hat damit 2n+1 (bzw. 2n ohne Carry in) Eingänge und n+1 Ausgänge.
Er setzt sich aus n Volladdierern (bzw. aus n−1 Volladdierern und 1 Halbaddierer ohne Carry in) zusammen. Der Übertrags-Ausgang der Addierer wird jeweils an einen Eingang des nächsten Volladdierers angeschlossen.<ref name="Hoffmann2023" /> Der Übertrags-Ausgang des letzten Volladdierers bildet den (n+1)-ten Ausgang des Schaltnetzes.
Die Addition entspricht der EXOR - Verknüpfung: r = a xor b xor c, wobei a und b die i-ten Stellen der ersten und zweiten Summanden und c der Übertrag (engl. carry) ist.<ref name="Walz2016">Guido Walz (Hrsg.): Lexikon der Mathematik. 2. Auflage. Band 1. Springer, Berlin / Heidelberg 2016, ISBN 978-3-662-53497-7, Carry-Ripple-Addierer, S. 287 (eingeschränkte Vorschau in der Google-BuchsucheSkriptfehler: Ein solches Modul „Vorlage:GoogleBook“ ist nicht vorhanden.).</ref>
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.<ref name="Hoffmann2023" /> 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.
Einzelnachweise
<references />