Zum Inhalt springen

„Carry-Select-Addierer“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
K Klammern korrigiert | Klammerfehler - Helfer gesucht
Belege (und Weiterführendes)?; entfettet;
Zeile 1: Zeile 1:
{{Belege}}
Der '''Carry-Select-Addierer''' (von englisch ''carry'' Übertrag, ''select'' (aus-)wählen) oder kurz CSCA ist ein beschleunigtes [[Addierwerk|Addiernetz]], welches zur Addition mehrstelliger [[Binärzahl]]en verwendet wird.
Der '''Carry-Select-Addierer''' (von {{EnS|''carry''}} Übertrag, {{Lang|En|''select''}} (aus-)wählen) oder kurz CSCA ist ein beschleunigtes [[Addierwerk|Addiernetz]], welches zur Addition mehrstelliger [[Binärzahl]]en verwendet wird.


== Funktionsweise ==
== Funktionsweise ==
Zeile 9: Zeile 10:
Es handelt sich also um eine Addition von zwei 2 + 3 + 4 = 9 Bit breiten Binärzahlen.
Es handelt sich also um eine Addition von zwei 2 + 3 + 4 = 9 Bit breiten Binärzahlen.


Das Prinzip dieses Addiernetzes lässt sich mit dem Begriff '''„parallelisierte Vorabberechnung“''' beschreiben, denn jeder der Blöcke besteht aus jeweils zwei [[Carry-Ripple-Addierer]]n (kurz CRA), die gleichzeitig die Berechnung für ihren Bit-Anteil der Binärzahlen ausführen. Dabei liegt an einem der CRA ein Übertragsbit an (c=1), während der Carry-Eingang des anderen auf c=0 gesetzt ist. Somit werden pro Block beide möglichen Fälle parallel ausgerechnet und an einen [[Multiplexer]] angelegt.
Das Prinzip dieses Addiernetzes lässt sich mit dem Begriff „parallelisierte Vorabberechnung“ beschreiben, denn jeder der Blöcke besteht aus jeweils zwei [[Carry-Ripple-Addierer]]n (kurz CRA), die gleichzeitig die Berechnung für ihren Bit-Anteil der Binärzahlen ausführen. Dabei liegt an einem der CRA ein Übertragsbit an (c=1), während der Carry-Eingang des anderen auf c=0 gesetzt ist. Somit werden pro Block beide möglichen Fälle parallel ausgerechnet und an einen [[Multiplexer]] angelegt.
Dieser schaltet schließlich in Abhängigkeit vom höchstwertigen Übertragungsbit des vorherigen Blocks auf die richtige Lösungsvariante, welche im Idealfall schon fertig berechnet ist.
Dieser schaltet schließlich in Abhängigkeit vom höchstwertigen Übertragungsbit des vorherigen Blocks auf die richtige Lösungsvariante, welche im Idealfall schon fertig berechnet ist.



Version vom 22. März 2014, 08:43 Uhr

Der Carry-Select-Addierer (von englisch carry Übertrag, select (aus-)wählen) oder kurz CSCA ist ein beschleunigtes Addiernetz, welches zur Addition mehrstelliger Binärzahlen verwendet wird.

Funktionsweise

Beispiel eines 9-Bit Carry-Select-Addierers

Der CSCA unterteilt die gesamte Wortbreite n in M Blöcke.

Im gegebenen Bildbeispiel sind die Blockbreiten 2, 3 und 4 Bit.
Es handelt sich also um eine Addition von zwei 2 + 3 + 4 = 9 Bit breiten Binärzahlen.

Das Prinzip dieses Addiernetzes lässt sich mit dem Begriff „parallelisierte Vorabberechnung“ beschreiben, denn jeder der Blöcke besteht aus jeweils zwei Carry-Ripple-Addierern (kurz CRA), die gleichzeitig die Berechnung für ihren Bit-Anteil der Binärzahlen ausführen. Dabei liegt an einem der CRA ein Übertragsbit an (c=1), während der Carry-Eingang des anderen auf c=0 gesetzt ist. Somit werden pro Block beide möglichen Fälle parallel ausgerechnet und an einen Multiplexer angelegt. Dieser schaltet schließlich in Abhängigkeit vom höchstwertigen Übertragungsbit des vorherigen Blocks auf die richtige Lösungsvariante, welche im Idealfall schon fertig berechnet ist.

Laufzeiten

Um eine optimale Laufzeit zu erhalten, ist es sinnvoll, die beliebig variable Blockwortbreite wachsen zu lassen, da so die Berechnung im Block synchron mit dem Anlegen des endgültigen Übertragungsbits abschließt.

Im folgenden Rechenbeispiel wird davon ausgegangen, dass dies genau dann der Fall ist, wenn der Wortbreitenzuwachs 1 Bit pro Block entspricht (siehe Beispiel).

  • eins Gesamtwortbreite = n
  • zwei Anzahl der Blöcke = K
  • drei variable Blockwortbreite = mit k = 0,1,...,K-1
  • vier Anfangsblockwortbreite =
  • fünf Wortbreitenzuwachs = [in Bit/Block]









Auf unser spezielles Beispiel () angewandt:

(0,1,2 - entspricht drei Blöcken)

Additionszeit:





mit