Altifigence Academy

16 / 63 · Konzept

Addierer und Übertragsstrukturen

Volladdierergleichungen herleiten und Funktion, Breite und Verzögerung von Ripple-Carry analysieren.

Die Summe einer Bitstelle braucht zwei Bits

Die Summe aus ai,bi,cia_i,b_i,c_i liegt zwischen 0 und 3. Daher braucht sie das Summenbit sis_i und den Übertrag ci+1c_{i+1}. Ungerade viele Einsen ergeben sum=1, mindestens zwei Einsen carry=1.

si=ai⊕bi⊕cis_i=a_i\oplus b_i\oplus c_i
ci+1=aibi+(ai⊕bi)cic_{i+1}=a_ib_i+(a_i\oplus b_i)c_i

Mit Generate gi=aibig_i=a_ib_i und Propagate pi=ai⊕bip_i=a_i\oplus b_i gilt ci+1=gi+picic_{i+1}=g_i+p_ic_i, wobei ++ OR bedeutet. Ein Halbaddierer ist der Sonderfall ohne Übertragseingang: Summe durch XOR, Übertrag durch AND.

Ändern Sie die drei Eingänge und prüfen Sie stets a+b+cin = sum+2×cout. carry geht in die nächste Stelle ein und hat nicht dasselbe Gewicht wie sum.

Summe einer Stelle und Übertrag zur nächsten

a + b + cin = sum + 2 × cout

Wie weit wandert der Übertrag?

Bei der 4-Bit-Addition 1111 + 0001 entsteht in Bit 0 ein Übertrag, der durch die übrigen drei Stellen läuft. Die gespeicherte Summe ist 0000, der höchste Übertrag 1. Bei Ripple-Carry kann die Berechnung höherer Stellen auf den Übertrag niedrigerer Stellen warten müssen.

c2=g1+p1g0+p1p0c0c_2=g_1+p_1g_0+p_1p_0c_0

Die aufgefaltete Gleichung zeigt Möglichkeiten paralleler Übertragsberechnung. Schnelle Addierer kombinieren Gruppen-Propagate und -Generate, benötigen aber einen Flächen-Zeit-Kompromiss unter Einbeziehung von Fan-in, Verdrahtung und Zellbibliothek. RTL-+ muss nicht als Ripple-Carry-Addierer realisiert werden.

Die Summenbreite im Entwurf festhalten

SystemVerilog
logic [3:0] a, b, sum;
logic cin, cout;
logic [4:0] wide_sum;
assign wide_sum = {1'b0, a} + {1'b0, b} + {4'b0000, cin};
assign sum = wide_sum[3:0];
assign cout = wide_sum[4];

Fünf Bit genügen für 15+15+1=3115+15+1=31. Entscheiden Sie zuerst, ob nur die unteren Summenbits, ein weitergeleiteter Übertrag oder Sättigung benötigt werden. Das Übungselement prüft die WahrheitstabelleWahrheitstabelle Vollständige Liste aller Eingangskombinationen mit jeweiligem Ausgang. Zeitliche Änderungen werden gesondert im Zeitdiagramm geprüft. Mehr erfahren einer Volladdiererstelle; es misst keine Verzögerung einer synthetisierten Schaltung.

Eingaben ändern

Selbst ausprobieren

Bestimmen Sie für vier Bit unsigned und a=9a=9, b=6b=6, cin=1c_{in}=1 die volle Summe, die 4-Bit-Summe und carry. Genügt carry zur Overflow-Erkennung bei signed-Interpretation?

Erklärung lesen

Die volle Summe ist 16=10000, also sum=0000, carry=1. Signed bedeutet 1001 dagegen −7, sodass −7+6+1=0-7+6+1=0 im Bereich liegt. carry und signed Overflow sind unterschiedliche Bedingungen.

Deine Auswahl gilt für diesen Browser. Du kannst sie jederzeit in der Fußzeile ändern.