16 / 63 · Concetto
Sommatori e propagazione del riporto
Derivare le formule del sommatore completo e analizzare funzione, larghezza e ritardo del ripple-carry.
Le lezioni sono gratuite. Iscriviti per salvare i progressi.
Due bit per la somma di una posizione
La somma di va da 0 a 3 e richiede il bit somma e il riporto . Un numero dispari di 1 produce sum=1; almeno due 1 producono carry=1.
Definendo generate e propagate , si ottiene , con inteso come OR. Il mezzo sommatore è il caso senza carry in ingresso: somma XOR e riporto AND.
Cambiate i tre ingressi e verificate sempre a+b+cin = sum+2×cout. Il carry entra nella posizione successiva e non ha lo stesso peso di sum.
a + b + cin = sum + 2 × cout
Quanto lontano si propaga il riporto?
Nell'addizione a quattro bit 1111 + 0001, il carry nasce al bit 0 e attraversa le altre tre posizioni. La somma memorizzata è 0000, il carry finale è 1. Nella struttura ripple-carry, le posizioni alte possono dover attendere il riporto delle basse.
Espandere la formula mostra come calcolare i riporti in parallelo. I sommatori veloci combinano propagate e generate di gruppo, con compromessi fra area e ritardo che includono fan-in, collegamenti e libreria di celle. L'operatore RTL + non implica necessariamente un sommatore ripple-carry.
Rendere esplicita la larghezza della somma
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];Cinque bit bastano per . Stabilite prima se servono solo i bit bassi, il carry verso lo stadio successivo o la saturazione. L'elemento interattivo controlla la tabella di veritàTabella di verità Elenco completo delle combinazioni d’ingresso e delle rispettive uscite. Le variazioni temporali si esaminano separatamente nelle forme d’onda. Approfondisci di una posizione del sommatore completo; non misura il ritardo del risultato di sintesi.
Modifica gli ingressi
Prova tu
Con quattro bit unsigned e , , , calcolate somma completa, somma a quattro bit e carry. Il solo carry rileva l’overflow interpretando il circuito come signed?
Leggi la spiegazione
La somma completa è 16=10000, quindi sum=0000 e carry=1. Interpretando signed, 1001 vale −7 e è rappresentabile. Carry e overflow signed sono condizioni diverse.