Esercizio Il circuito in figura denominato ADD4 effettua l operazione di addizione su numeri binari interi senza segno di quattro bit (S = A + B). A[4:1] B[4:1] ADD4 S[x:1] Si richiede 1. Il valore di x tale che S possa rappresentare il massimo valore prodotto da ADD4 2. Si progetti ADD4 con le seguenti architetture iterative utilizzando i componenti descritti nella tavola allegata: a. RCA (ripple carry adder) b. CLA (carry lookahead adder) con k = 2 Per i progetti si valutino e si comparino tempo massimo di generazione del risultato S e complessità del circuito (gates equivalenti). 3. Si modifichi il circuito di cui al punto 2.a introducendo una architettura pipeline in grado di processare una nuova coppia di numeri A,B ogni 2 ps.
Soluzione Punto 1. Per stabilire x è sufficiente ricordare che il valore massimo rappresentabile mediante 4 bit è 2 4-1. Pertanto, max{s}=2 4-1+2 4-1=2 5-2, che può essere espresso con non meno di x=5 bit. Punto 2.a. Lo schema di un RCA a 4 stradi è riportato nella figura seguente. HA Figura 1 Dalla tabella allegata, si desumono i tempi caratteristici ed i valori dei gate equivalenti (g.e.) per un HALF ADDER (Tempo per il calcolo della somma Tsum=3ps, Tempo di calcolo del riporto Tco=ps, g.e.=3.5) e FULL-ADDER (Tsum=6,Tco=3,g.e.=7). Il numero totale di g.e. del circuito pertanto C=3.5+3x7 = 24.5 g.e. Il tempo di generazione della somma si desume dalla figura 2 che indica, per ogni dato prodotto dai moduli HA e, l intervallo di tempo dopo il quale il dato è stabile. La misura si intende a partire dall applicazione di valori stabili in ingresso. Il ritardo massimo di generazione è pari pertanto a 14ps, che corrisponde al tempo di produzione di s4.
HA ps 5ps 8ps 11ps 3ps 8ps 11ps 14ps Figura 2 Punto 2.b. Il sommatore CLA (Carry Lookahead Adder) calcola i riporti in anticipo rispetto alla soluzione RCA. In particolare il testo chiede che il calcolo avvenga per due riporti (k=2). Si adotta la soluzione con un solo livello di astrazione, ossia c 2 e c 3 sono calcolati direttamente a partire dagli ingressi A[1:2] e B[1:2] (quindi, in particolare, il riporto c 3 non deve essere basarsi sul valore c 2 ); mentre i calcoli per c 4 e c 5 sono effettuati a partire da A[3:4] e B[3:4] e dal riporto c3, secondo il circuito mostrato in figura 3. CLA 1 CLA 2 Figura 3 Indicando con pi il termine propagazione i-simo (p i =A i B i ), e gi il termine generatore i-simo (g i =A i B i ), vale come noto la relazione c i+1 =g i +p i c i
da cui, ponendo c1=: c 2 =g 1 c 3 =g 2 +p 2 c 2 =g 2 +p 2 g 1 (1.a) (1.b) e c 4 =g 3 +p 3 c 3 c 5 =g 4 +p 4 c 4 =g 4 +(g 3 +p 3 c 3 )p 4 =g 4 +p 4 g 3 +p 4 p 3 c 3 (2) Le equazioni per s i sono: s i = A i B i c i =p i c i (l operatore XOR è associativo) I termini generazione e propagazione possono essere calcolati mediante un HA, poiché le equazioni per la somma s ed il riporto c di un HA i cui ingressi siano a e b sono proprio: s= a b e c=ab. Infine, poichè la porta XOR non è disponibile nella tabella allegata al suo posto è necessario usare un HA. La seguente figura mostra il CLA per k=2. S C S C S C S C Lookahead 1 Lookahead 2 Figura 4 Per la sintesi delle equazioni (1) e (2), che descrivono i moduli Lookahead1 e Lookahead 2 della figura, si possono usare porte NAND e NOT, una volta riconosciuto che tali equazioni sono in forma canonica SP (figura A). Si noti che per i termini composti da un solo letterale (per esempio il termine g2 in 1.b), si usa una porta NOT. Infatti, tale termine è equivalente al termine 1g2, per la sintesi del quale si userebbe una porta NAND con un ingresso posto ad 1, che è appunto equivalente all invertitore. La complessità del circuito, in termini di g.e. è pertanto: #NOT x.5 + #NAND-2-INGRESSI x 1 + #NAND-3-INGRESSI x 1.5 + #HA x 3.5 = 34 g.e. Il tempo massimo di generazione del risultato è stabilito dal massimo fra i ritardi con cui sono generati stabilmente i vari termini s i. Se si fa eccezione del termine s 1 (che e anche il primo a diventare stabile), tutti gli altri valori di produzione dei dati dipendono dai tempi con cui sono prodotti i vari c i. In particolare, il
ritardo di generazione di s 2,s 3,s 4 è pari alla somma di 3ps (=Tsum) con l intervallo di tempo richiesto per la generazione del corrispondente ci, mentre per s 5 il tempo di generazione coincide con il tempo di generazione di c 5. Sulla base della figura 6 è possibile effettuare il calcolo dei ritardi di generazione dei riporti. La figura riporta i tempi di produzione dei vari segnali, a partire dal tempo in cui è applicato il segnale in ingresso. Ad esempio, il valore di c3 è prodotto dopo 5 ps, poichè i valori all ingresso della porta NAND N2 sono stabili dopo 4 ps (chiaramente sebbene in realtà l uscita dalla porta NOT sia stabile dopo 25 ps, il calcolo definito di c3 non può che iniziare dopo 4 ps, ossia quando anche l altro ingresso alla porta N2 è stabile). Si noti che ogni termine g i è disponibile dopo ps, mentre ogni termine pi dopo 3ps. Il ritardo massimo è 1 ps ed è determinato dalla generazione di s 4. I rimanenti bit s 1,s 2, s 3,s 5 sono prodotti, rispettivamente, dopo 3ps, 6ps,8ps,8ps. Figura 5
N2 5 7 3 4 6 3 65 8 3 Figura 6 Punto 3 La seguente figura mostra una versione sincrona del circuito RCA. Dai valori del tempo di propagazione dei flip-flop (Tckout=1ps); tempo di set-up (Tset-up=ps) e del ritardo di generazione dell uscita da parte di RCA calcolato precedentemente (T RCA =14ps) si deduce che il periodo di clock deve valere almeno 26 ps, ossia maggiore della specifica di 2ps. A B RCA S ck Una versione con pipeline deve basarsi su stadi che generano il risultato in un tempo T pari al più: T = (Tempo specifica) (Tempo propagazione FF ) (Tempo set-up) = 2 ps 1 ps ps = 1 ps. La seguente figura mostra una soluzione con 2 stadi di pipeline. Verifichiamo se questa soluzione rispetta le specifiche. Il tempo di produzione dei dati è mostrato per ogni linea. Il primo stadio produce dati stabili dopo 8ps, mentre il secondo dopo 9 ps. Il periodo di clock deve essere pertanto Tclock >= max{1+8+,1+9+}=21 ps che, essendo minore di 2ps, soddisfa la specifica.
S 1,S 2 A 1 S 1 HA 3 B 1 A 1 B 1 c 3 S 3 6 c 2 3 c 4 A 2 B 2 S 2 8 5 c 3 A 4 B 4 9 S 4 S 4 6 A 3, A 4,B 3, B 4