Progetto di sottosistemi in tecnologia CMOS (parte II)
Transcript
Progetto di sottosistemi in tecnologia CMOS (parte II)
Elettronica dei Sistemi Digitali – Progetto di sottosistemi in tecnologia CMOS (parte II) Valentino Liberali Dipartimento di Tecnologie dell’Informazione Università di Milano, 26013 Crema e-mail: [email protected] http://www.dti.unimi.it/˜liberali Elettronica dei Sistemi Digitali – Progetto di sottosistemi in tecnologia CMOS (parte II) – p. 1 Operazioni logiche e aritmetiche Operazioni logiche: Confronto (uguaglianza o disuguaglianza tra due bit) Confronto (uguaglianza o disuguaglianza tra due numeri) Operazioni aritmetiche: Somma di due numeri senza segno Cambio di segno (complemento a 2) Somma di due numeri con segno Conteggio (in avanti e all’indietro) Conteggio con seguenza pseudocacuale Moltiplicazione di due numeri senza segno Elettronica dei Sistemi Digitali – Progetto di sottosistemi in tecnologia CMOS (parte II) – p. 2 1 Confronto tra bit (1/2) Uguaglianza tra due bit: a y b a 0 0 1 1 b 0 1 0 1 y = a⊕b 1 0 0 1 Elettronica dei Sistemi Digitali – Progetto di sottosistemi in tecnologia CMOS (parte II) – p. 3 Confronto tra bit (1/2) Disuguaglianza tra due bit: a y b a 0 0 1 1 b 0 1 0 1 y = a⊕b 0 1 1 0 Elettronica dei Sistemi Digitali – Progetto di sottosistemi in tecnologia CMOS (parte II) – p. 4 2 Transimission gate XOR È una porta XOR che ha solo 6 transistori MOS: V DD a b a y y = a⊕b Elettronica dei Sistemi Digitali – Progetto di sottosistemi in tecnologia CMOS (parte II) – p. 5 Generazione di bit di parità Il bit di parità è la somma modulo 2 di tutti i bit, e può essere ottenuto con un semplice albero di EXOR. Elettronica dei Sistemi Digitali – Progetto di sottosistemi in tecnologia CMOS (parte II) – p. 6 3 Rappresentazione di numeri senza segno Numero intero (naturale) in base r: A = an−1 an−2 . . . a1 a0 n−1 val(A) = ∑ ai r i i=0 Numero decimale (frazionario) in base r: A = an−1 an−2 . . . a1 a0 .a−1 a−2 . . . a−m n−1 ∑ val(A) = ai r i i=−m Nei processori aritmetici, r = 2. Elettronica dei Sistemi Digitali – Progetto di sottosistemi in tecnologia CMOS (parte II) – p. 7 Somma di numeri senza segno La somma si effettua con lo stesso procedimento della somma in colonna di numeri a più cifre. base 10 2 3 + 1 8 (riporto) 1 base 2 0 1 0 1 1 1 + 0 1 0 0 1 0 (riporto) 1 1 1 = 4 1 = 1 0 1 0 0 1 A causa del riporto, ogni bit (tranne il meno significativo) è il risultato della somma di tre bit. Elettronica dei Sistemi Digitali – Progetto di sottosistemi in tecnologia CMOS (parte II) – p. 8 4 Sommatore a un bit Somma: s = a ⊕ b ⊕ ci Riporto: co = ab + aci + bci = ab + (a + b)ci a 0 0 0 1 0 1 1 1 b ci 0 0 0 1 1 0 0 0 1 1 0 1 1 0 1 1 co 0 0 0 0 1 1 1 1 s 0 1 1 1 0 0 0 1 Elettronica dei Sistemi Digitali – Progetto di sottosistemi in tecnologia CMOS (parte II) – p. 9 Full adder CMOS (1 bit) V DD a a b c a b a c b b c s co c a b b a c b a c b a Osservazione: si usa co per calcolare s. Elettronica dei Sistemi Digitali – Progetto di sottosistemi in tecnologia CMOS (parte II) – p. 10 5 Full adder CMOS (a N bit) s4 s4 s3 s3 s2 s2 s1 s1 s0 s0 a3 b3 a2 b2 a1 b1 a0 b0 c0 =0 Ritardo: td = Ntinv + (N − 1)tco + ts Elettronica dei Sistemi Digitali – Progetto di sottosistemi in tecnologia CMOS (parte II) – p. 11 Rappresentazione di numeri con segno Nella rappresentazione dei numeri con segno, per convenzione la cifra più significativa è il segno. Se i numeri sono rappresentati in base r: 0 come prima cifra rappresenta il segno ‘+’ (r − 1) come prima cifra rappresenta il segno ‘–’ In notazione binaria, i numeri negativi cominciano per 1, i numeri positivi per 0. A = 0an−2 . . . a1 a0 è un numero positivo positivo Elettronica dei Sistemi Digitali – Progetto di sottosistemi in tecnologia CMOS (parte II) – p. 12 6 Rappresentazione dei numeri negativi Il numero negativo Ā può essere rappresentato in diversi modi: Segno + modulo Complemento a 1 Complemento a 2 Cifre con segno (signed digit) Elettronica dei Sistemi Digitali – Progetto di sottosistemi in tecnologia CMOS (parte II) – p. 13 Segno + Modulo (SM) ĀSM = (r − 1)an−2 . . . a1 a0 n−2 val(ĀSM ) = −1 · ∑ ai ri i=0 Elettronica dei Sistemi Digitali – Progetto di sottosistemi in tecnologia CMOS (parte II) – p. 14 7 Complemento a r − 1 Ār = (r − 1)ān−2 . . . ā1 ā0 dove āi = (r − 1) − ai val(Ār ) = val(A) − (rn−1 − 1) In base due, si ha il complemento a 1, ottenuto semplicemente negando tutte le cifre. Elettronica dei Sistemi Digitali – Progetto di sottosistemi in tecnologia CMOS (parte II) – p. 15 Complemento a r Ār = (r − 1)ān−2 . . . ā1 ā0 + 1 dove āi = (r − 1) − ai val(Ār ) = val(A) − rn−1 In base due, il complemento a 2 si ottiene sommando 1 al complemento a 1. Elettronica dei Sistemi Digitali – Progetto di sottosistemi in tecnologia CMOS (parte II) – p. 16 8 Contatore binario (up) D 0 1 Q ck Ad ogni impulso di clock, viene aggiunto 1 al contenuto del registro. Il conteggio è ciclico: avendo N bit, l’uscita passa da 2N − 1 a 0. Elettronica dei Sistemi Digitali – Progetto di sottosistemi in tecnologia CMOS (parte II) – p. 17 Contatore binario (down) D −1 0 Q ck Ad ogni impulso di clock, viene sottratto 1 al contenuto del registro (−1 in complemento a 2 è il vettore di tutti 1). Elettronica dei Sistemi Digitali – Progetto di sottosistemi in tecnologia CMOS (parte II) – p. 18 9 Contatore binario (up/down) D u/d Q ck Il bit u/d detemina la direzione del conteggio. Elettronica dei Sistemi Digitali – Progetto di sottosistemi in tecnologia CMOS (parte II) – p. 19 Rappresentazione “Signed Digit” (SD) Ogni cifra assume valori compresi nell’intervallo ai ∈ {−α , . . . , −1, 0, 1, . . . , α }, con r−1 ≤ α ≤ r − 1. 2 Nell’aritmetica in base 2 si ha r = 2, e quindi ai ∈ {−1, 0, 1}. n−1 val(ASD ) = ∑ ai r i i=0 La rappresentazione SD è ridondante → allo stesso numero corrispondono diverse rappresentazioni SD. La rappresentazione SD con il minimo numero di cifre diverse da zero e che non abbia due cifre consecutive diverse da zero si chiama Rappresentazione “Canonical Signed Digit” (CSD). Elettronica dei Sistemi Digitali – Progetto di sottosistemi in tecnologia CMOS (parte II) – p. 20 10 Vantaggi delle diverse rappresentazioni Un circuito aritmetico deve poter elaborare numeri positivi e negativi insieme. Complemento a r: vantaggioso per la somma; richiede pre- e post-elaborazione per la moltiplicazione SM: vantaggioso per la moltiplicazione; richiede pre- e post-elaborazione per la somma CSD: vantaggioso per l’implementazione di operazioni con hardware minimo; richiede di progettare unità di elaborazione ad hoc Elettronica dei Sistemi Digitali – Progetto di sottosistemi in tecnologia CMOS (parte II) – p. 21 Moltiplicatore a3 0 a2 0 a1 0 a0 0 b0 0 b1 0 b2 0 si si b3 b ci 0 c p7 p6 p5 p4 p3 p2 p1 p0 s a a & = b ci FA c s Moltiplicatore generico 4 × 4 con AND e FULL-ADDER Matrice con n × n celle Ogni cella esegue moltiplicazione e somma ad 1 bit (con il riporto) Elettronica dei Sistemi Digitali – Progetto di sottosistemi in tecnologia CMOS (parte II) – p. 22 11