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