5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica...
-
Upload
camillo-bellini -
Category
Documents
-
view
215 -
download
0
Transcript of 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica...
![Page 1: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/1.jpg)
5.1 - Memorie a sola lettura5.2 - Matrici logiche programmabili5.3 - Unità aritmetica e logica
Capitolo 5
Circuiti programmabili
![Page 2: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/2.jpg)
La programmazione dell’hardware
Funzioni di n variabili
Ho bisognodi questa!
“macchina” di
programmazione
![Page 3: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/3.jpg)
Rete combinatoria programmabile - Rete combinatoriain grado di presentare diverse relazioni ingresso/uscita singolarmente selezionabili mediante l’attribuzione diuna determinata configurazione ad un gruppo di ingressidetti bit di programmazione.
Le reti combinatorie programmabili
x1x2
xn
Retecombinatoria
programmabile
z1z2
zm
p1 p2 py
zi = F (p1,p2 ,…..,py ,x1,x2 ,…..,xn) = Fp (x1,x2 ,…..,xn)
![Page 4: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/4.jpg)
5.1Memorie a sola
lettura
![Page 5: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/5.jpg)
La rete basata sull’espressione generale
F(0)
F(1)
F(2n-1)
x1 x2 xn
F
F(x1,x2,...xi,..xn) = m(i) F(i).i=0
2n-1 Espressione in grado di descrivere qualsiasi funzione di n variabili
Rete combinatoria programmabile in gradodi realizzare qualsiasi funzione di n variabile
F(i): bit di programmazione
![Page 6: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/6.jpg)
MUX come reti programmabili
SN74151I0
I1
I2
I3 ZI4
I5
I6
I7
CBA
SN74153I0
I1
I2 ZI3
B A
SN74157I0
I1 Z
A
SN74150I0
I1
I2
I3
I4
I5
I6
I7 ZI8
I9
I10
I11
I12
I13
I14
I15
DCBA
A,B,C,D ingressi ( xi )
Iibit di programmazione ( pi )
![Page 7: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/7.jpg)
ROM (Read Only Memory)
• I MUX disponibili nelle famiglie logiche hanno un basso numero di segnali di selezione.
Difatti al crescere di n cresce esponenzialmente il numero dei pin del circuito integrato da utilizzare per i bit di programmazione.
Esempio: n=16 216 = 65536 pin per la programmazione !
• Le ROM sono reti combinatorie programmabili basate sulla espressione generale SP ed aventi i bit di programmazione integrati all’interno del dispositivo.
![Page 8: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/8.jpg)
Struttura di una ROM (1)Una diversa realizzazione del MUX ( T5 )
I contatti al posto dei segnalidi programmazione
F(0)F(1)F(2)F(3)
F
x1 x0 x1 x0
F
F(i)=0/1 Contatto aperto/chiuso
![Page 9: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/9.jpg)
contattochiuso
contattoaperto
Struttura di una ROM (2)
x1 x0 F
• Rappresentazione “compatta” della struttura di una ROM :
• Realizzazione integrata di più funzioni.
Esempio: in un contenitore da 24 pin è possibile alloggiare un chipche realizza o 8 funzioni di 14 variabili o una funzione di 21 variabili.
G O
![Page 10: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/10.jpg)
Le ROM come circuiti di memoria
Ogni configurazione delle variabili di ingresso può essere vista come l’indirizzo di un dato formato dai bit che sono stati programmati nella riga corrispondente.
Bit di programmazione
D0 D1 Dk
A0
A1
.
.An-1
DEC
m0
m2n
-1
m1
![Page 11: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/11.jpg)
Le “vere e proprie” ROM• I contatti vengono realizzati dal costruttore nell’ultimo stadio del processo di fabbricazione del circuito su ordine dell’acquirente:
• Le ROM sono programmabili una sola volta (OTP: one time programmable).
memorie a sola lettura (Read Only).
memorie non volatili
![Page 12: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/12.jpg)
Memorie non volatili a sola lettura Memorizzazione di informazioni che devono permanere quando il sistema non è alimentato e che non non cambiano durante il funzionamento .
Limitazioni delle ROM
Esempi: il “loader” visto in 3.2, il programma di un sistema “embedded”, il BIOS del PC …..
Costi fissi elevati Non adatte allo sviluppo
(OTP)Grossi volumi di produzione.
![Page 13: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/13.jpg)
PROM (Programmable ROM)
La programmazione viene effettuata dall’utente mediante un’apposita apparecchiatura che consente di “bruciare” selettivamente i fusibili inseriti dal costruttore.
Convenienti per bassi-medi volumi di produzione
Dispositivi programmabili una sola volta
i
![Page 14: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/14.jpg)
Q
EPROM (Erasable PROM)
Costo superiore a quello delle PROM
Cancellazione ottenuta convogliando luce ultravioletta sui terminali di comando attraverso una finestra di quarzo presente sul contenitore.
Programmazione effettuata dall’utente mediante una apposita apparecchiatura che consente di inviare impulsi elettrici che provocano accumulazione di carica sul terminale di comando.
Dispositivi riprogrammabili
Q
![Page 15: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/15.jpg)
Memorie a sola lettura cancellabili elettricamente
EEPROM (Electrically Erasable PROM) : si programmano e cancellano byte-per-byte tramite segnali elettrici e senza rimuovere il dispositivo dalla piastra stampata.
FLASH-EPROM: si programmano/cancellano elettricamente direttamente sulla piastra. La cancellazione è più veloce rispetto alle EEPROM: con un’unica operazione è possibile cancellare l’intero dispositivo oppure uno o più “settori”.
![Page 16: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/16.jpg)
Bit di programmazione
Selezione a due dimensioni (1)F(A2,A1, A0) = A2’A1’A0’ F(0) + A2’A1’A0 F(1) + A2’A1A0’ F(2) + A2’A1A0 F(3) +
A2A1’A0’ F(4) + A2A1’A0 F(5) + A2A1A0’ F(6) + A2A1A0 F(7)
A2
F
A0
A1
DEC
m0
m3
m1
m2
MUX
= A2’(A1’A0’ F(0) + A1’A0 F(1) + A1A0’ F(2) + A1A0 F(3)) + A2 (A1’A0’ F(4) + A1’A0 F(5) + A1A0’ F(6) + A1A0 F(7))
F(0)
F(1)
F(2)
F(3)
F(4)
F(5)
F(6)
F(7)
![Page 17: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/17.jpg)
Matrice di bit di programmazione
Selezione a due dimensioni (2)
D1 Dk
MUX
D0
Am
Am+1
An-1
A0
A1
Am-1
ROw
DEC
COL
DEC
![Page 18: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/18.jpg)
Estensione del numero di uscite
Collegamento in parallelo di più ROM
zk+1 zk+2 …z2k+1z0 z1 … zk
A0 A1 ……..An-1
ROMD0 D1 …Dk
A0 A1 ……..An-1
ROMD0 D1 …Dk
xn
x1 x0
![Page 19: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/19.jpg)
Estensione del numero di ingressi
Teorema di espansione
m
n-m
Dk
MUXAm
An-1
..
Dk
A0 A1 ……..Am-1
ROM
A0 A1 ……..Am-1
ROM
A0 A1 ……..Am-1
ROM
D0 D0 D0
D0
MUXAm
An-1
..
N.B. - Al primo livello occorrono 2(n-m) ROM
![Page 20: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/20.jpg)
Amplificatore a 3 stati d’uscita
I O
OE
OE I OH L LH H HL X Z
I O
OE
Lo stato elettrico del segnaleè indefinito o fluttuante (Terzo Stato, Stato di Alta Impedenza)
OE
I
O
![Page 21: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/21.jpg)
![Page 22: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/22.jpg)
![Page 23: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/23.jpg)
![Page 24: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/24.jpg)
MUX con amplificatori 3-state (1)
In ogni istante di temponon deve esserci più
di un 3-state abilitato !
DEC
03 2 1
I0
I1
I2
I3
Z
A0
A1
MUX 4:1
Le uscite del decoder non variano simultaneamente
Situazione di corto circuito (conflitto elettrico) con possibili malfunzionamenti del sistema
Nei 3-state il tempo di risposta all’abilitazione (tpZH, tpZL) è inferiore a quello necessario per il passaggio nel terzo stato (tpHZ, tpLZ)
![Page 25: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/25.jpg)
MUX con amplificatori 3-state (2)
DEC
03 2 1
I0
I1
I2
I3
Z
A0
A1
Ai
EN
Z
I0
I1
I2
I3
Z
DEC
03 2 1A0
A1
ENEN
![Page 26: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/26.jpg)
Stadio di uscita di una ROM
CE’
OE’
O0 O1 Ok
D1 Dk
Bit di programmazione
D0
Am
Am+1
An-1
A0
A1
Am-1
DEC
COL
ROW
DEC
MUX
![Page 27: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/27.jpg)
Progetto di un banco di ROM (1)Supponiamo di voler connettere 32K byte di ROM ad una CPU con 16 bit di indirizzo (A0..A15) ed 8 bit di dato e di avere a disposizione dispositivi ROM da 8K x 8 . Supponiamo inoltre che la CPU veda il banco di ROM nella parte alta del suo spazio di indirizzamento (8000H - FFFFH, cioè A15=1).
Estensione del numero degli ingressia[0..12]
A0 A1 …A12
ROMD0
A0 A1 …A12
ROMA0 A1 …A12
ROMA0 A1 …A12
ROMD0 D0 D0 D7
d0
MUX
d7
MUX
a[13,14]
MRDa15
![Page 28: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/28.jpg)
Progetto di un banco di ROM (1)
a13a14a15
DEC
76543210
a[0..12]
ROM ROM ROM ROMA0 A1 …A12 A0 A1 …A12 A0 A1 …A12 A0 A1 …A12
D0 D0 D0 D0 D7D7D7D7
d0
d7
MRD*
OE* OE* OE*OE*CE* CE* CE* CE*
![Page 29: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/29.jpg)
Esercizi 5.1 e 5.2
• Si riprogetti il banco di ROM da 32KB (byte) nel caso in cui si disponga di una ROM 16K x 8, una ROM 8K x 8, due ROM 4K x 8.
• Si individui uno schema che consente di collegare al bus dati 8 pulsanti di cui il processore deve poter fare il polling all’indirizzo di I/O 0000H.
![Page 30: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/30.jpg)
5.2Matrici logiche programmabili
![Page 31: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/31.jpg)
Matrice AND Programmata dal costruttore
Matrice OR Programmata dall’utente
Rappresentazione di una ROM in termini di matrici AND e OR
ROM 2x2 Caso generale
N.B. - Ogni AND realizza un potenziale mintermine e puòessere impiegato per la programmazione di ciascuna uscita (espressione generale SP).
NAND = 2n
![Page 32: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/32.jpg)
Matrice AND Programmata dall’utente
Matrice OR Programmata dall’utente
PLA e PAL
Matrice AND Programmata dall’utente
Matrice OR Programmata dal costruttore
PLA: Programmable Logic Array
PAL: Programmable Array Logic
N.B. - Ogni AND realizza un implicante (espressione normale SP). Nelle PLA gli implicanti possono essere “comuni” a più uscite.
NAND << 2n
![Page 33: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/33.jpg)
Sintesi con PLA
00 01 11 1000
a bcd
1 1 0 1
1 1 0 1
0 0 1 1
0 0 1 10111
10
z
00 01 11 1000
a bcd
0 0 0 1
0 0 1 1
1 1 0 0
0 0 0 00111
10
w
a
b
c
d
z
w
![Page 34: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/34.jpg)
Sintesi con PAL00 01 11 10
00a b
cd
1 1 0 1
1 1 0 1
0 0 1 1
0 0 1 10111
10
z
00 01 11 1000
a bcd
0 0 0 1
0 0 1 1
1 1 0 0
0 0 0 00111
10
w
a
b
c
d
z’
w
N.B. - Quando non si dispone di un numero sufficiente di ANDpuò essere utile realizzare la funzione complemento.
![Page 35: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/35.jpg)
Esercizio 5.3
BCD Gray
0 0 0 00 0 0 10 0 1 00 0 1 10 1 0 00 1 0 10 1 1 00 1 1 11 0 0 01 0 0 11 0 0 1
1 0 0 1
A B C D
0 0 0 00 0 0 10 0 1 10 0 1 00 1 1 01 1 1 01 0 1 01 0 1 11 0 0 11 0 0 0
X X X X
X X X X
W X Y Z
• Si sintetizzi un trascodificatore da codice BCD a codice Gray utilizzando una PAL con 4 ingressi, 4 uscite e 4 AND per uscita.
![Page 36: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/36.jpg)
PAL con I/O programmabile (16L8)
![Page 37: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/37.jpg)
5.3 Unità aritmetica
e logica
![Page 38: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/38.jpg)
ALU: Arithmetic and Logic Unit
u = Fc (x , y)
ALU
x
y u
flag c
ALU - Rete combinatoria in grado di eseguire diverseoperazioni di tipo aritmetico o logico. L’operazione di volta in volta eseguita dipende dal valore attribuito ai bit di programmazione (codice operazione)
![Page 39: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/39.jpg)
0 1CIC2 C1 C0
x + y x + y + 1
x -yx - y -1
x
y y + 1
- y-(y +1)
0 1
24 -1 , -1
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
x
x + 1
x - 1
0
M=0 pag. 5.25
0 1C3C2 C1 C0
x y x or y
(xy)’(x y)’
x
y y
x or y’ y ’
0000 x and y
1111
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
x’ or y
x
x ’
1111
M=1pag. 5.23
![Page 40: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/40.jpg)
Sottrazione fra numeri naturali
an-1 ai a1 a0
bn-1 bi b1 b0
-
pn-1 pi p1 0
dn-1 di d1 d0
D = A - B (A B)
• Sottrazione fra due numeri da un bit 0 - 0 = 0 ; 1 - 0 = 1 ; 1 - 1 = 0 ; 0 - 1 : quantità non rappresentabile.
• Sottrazione “colonna per colonna” fra due numeri da n bit
p a b P D
0 0 0 0 00 0 1 1 10 1 0 0 10 1 1 0 01 0 0 1 11 0 1 1 01 1 0 0 01 1 1 1 1
![Page 41: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/41.jpg)
Complemento a 2 di un numero naturale N formato da n bit
Calcolo di A - B con A B
A - B = A + (2n - B) - 2n
= (A + 2B) - 2n
• calcola A + 2B• elimina il bit più pesante
A
A - B
B
CI 4 BITa0 ADDERa1
a2
a3 s0 s1
s2
s3
b0
b1
b2
b3 CO
1
1
2N = 2n - N
Calcolo di 2N senza la sottrazione2N = 2n - N = (2n - 1) - N + 1 = not (N) + 1
![Page 42: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/42.jpg)
Numeri relativi: rappresentazione segno-valore assoluto
N [-(2n-1 - 1), +(2n-1 - 1)]
bn-1 bn-2 b1 b0
n bit
segno (0: positivo, 1: negativo)
valore assoluto
|N| = (bn-2 .2n-2 + …+ b0 .20)
![Page 43: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/43.jpg)
Numeri relativi: rappresentazione in complemento a 2
N = -2n-1 . bn-1 + bn-2 .2n-2 + …+ b0 .20 N [-2n-1, +(2n-1 - 1)]
bn-1 bn-2 b1 b0
n bit
+1 = 0 0 0 1-1 = 1 1 1 0 +
1 = 1 1 1 1
N.B. - anche nella rappresenta-zione in complemento a 2 il bit più significativo indica il segno (0:positivo, 1:negativo).
Esempi ( n=4 )
+7 = 0 1 1 1- 7 = 1 0 0 0 +
1 = 1 0 0 1
N 0 : segno-valore assoluto
N < 0 : 2(-N) con (-N) espresso in segno-valore assoluto
![Page 44: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/44.jpg)
Proprietà della rappresentazione in complemento a 2
• eseguendo 2A si ottiene -A
• eseguendo A+B si ottiene la somma algebrica fra A e B:
Siano A e B due numeri nella rappresentazione in complemento a 2:
• eseguendo A + 2(B) si ottiene A - B
1 0 0 1
1 1 0 1 +1 1 0 0 =
A = -3 B = -4 -7 1 1 1 1
1 1 0 0 +0 0 1 1 =
A = -4 B = +3 -1 0 0 0 1
1 1 0 0 +0 1 0 1 =
A = -4 B = +5 +1
N.B. - per sommare o sottrarre due numeri relativi espressi in complemento a 2 è sufficiente un addizionatore.
A: 0 0 0 1 (+1) 1 1 1 0 +
1 2A: 1 1 1 1 (-1)
1 0 0 1 (-7) 0 1 1 0 +
1 0 1 1 1 (+7)
![Page 45: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/45.jpg)
Esercizi 5.4 e 5.5• Utilizzando una rappresentazione in complemento a 2 con n=5 si eseguano le seguenti operazioni:
(-12) + (+4)(-12) + (-1)(-12) - (-12)(-12) + (+12)(-12) + (-4)(+10) - (+5)(+10) - (+11)(+12) +(+5)(-14) + (-4)
• Qual’è il valore dei seguenti numeri relativi espressi nella rappresentazione in complemento a 2:
1111, 11111111, 11111110, 1110, 01111111, 10000000
![Page 46: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/46.jpg)
Un “adder/subtractor” programmabile
x
MUX
0
1
y
CI
C0
CI 4 BITa0 ADDERa1
a2
a3 s0 s1
s2
s3
b0
b1
b2
b3 CO
u
0
1
0 1CIC0
x + y x + y + 1
x -yx - y - 1
![Page 47: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/47.jpg)
….. più operazioni aritmetiche0 1CI
C2 C1 C0
x + y x + y + 1
x -yx - y -1
x
y y + 1
- y-(y +1)
0 1
24 -1 , -1
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
x
x + 1
x - 1
0
CI
CI 4 BITa0 ADDERa1
a2
a3 s0 s1
s2
s3
b0
b1
b2
b3 CO
u
MUX
0
1
C0
x
‘0000’
MUX
0
1
y
‘0000’
MUX
0
1
C2
C1
![Page 48: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/48.jpg)
Sintesi della rete di pre-elaborazione
bk = c0’ (c1’ yk) + c0 (c1’ yk)’. . . . = c0 (c1’ yk).
C0 C2
x0
x1
x2
x3
C1
y0
y1
y2
y3
CI
u s0 s1
s2
s3
4 BITADDER
CIa0
a1
a2
a3
b0
b1
b2
b3 CO
s0
s1
s2
s3
4 BITADDER
ak = c2’ xk +c2 0 = c2’ xk. . .
![Page 49: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/49.jpg)
Bit di modalità e operazioni logiche
CIC2
Rete di
pre-elabor.
x
y
C1 C0
CIa0
a1
a2
a3
b0
b1
b2
b3 CO
s0 s1
s2
s3
u
4 BITADDERcon M
M
M (bit di modalità, 0: logica, 1: aritmetica)
FArab s
FArab
R
s
R
M
M=0 s = a b
M=0C2 C1 C0
x y
(x y)’
x
y
0000
1111
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
x’
y’
![Page 50: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/50.jpg)
....più operazioni logicheC3
uk
xk
yk
C2C0C1
FA
M=0
ak
bk
sk
r
R
M=0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 0 1 0 0 0
C2 C1 C0
C3
0
1
x y (xy)’ x x’ y’y 0000 1111
x + y (xy)’ x’ + yx y x + y’ x y 1111.
N. B. - In questa tabella “.” è il simbolo della somma logica e “+” quello del prodotto.
![Page 51: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/51.jpg)
Segnali di “flag”
flag
ALU
x
y u
cZF ZERO FLAG: vale “1” se il
risultato vale “0”.
SF SIGN FLAG: vale “1” se ilrisultato è negativo.
CF CARRY FLAG: vale “1” se CO=1 .
OF OVERFLOW FLAG: vale “1” in caso di traboccamento del risultato di un’operazione fra numeri relativi rappresentati in complemento a 2.
PF PARITY FLAG: vale “1” se il bit di parità del risultatovale 1.
![Page 52: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/52.jpg)
Generazione dei flag per una ALU a 4 bit
ZF = (u0 + u1 + u2 + u3)’
OF = r3 CO
SF = u3
CF = CO
PF = u0 u1 u2 u3
1 0 0 1 +1 1 1 0 =
(-7) (-2)
0 1 1 0
1 0 0 0 CO r3 r2 r1 0 1 1 1 +0 0 1 0 =
(+7) (+2)
1 0 0 1
0 1 1 0 CO r3 r2 r1
![Page 53: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/53.jpg)
La ALU a 4 bitZF SF OF PFC1
Rete di
pre-elabor.
C3 C2 C0
y0
y1
y2
y3
x0
x1
x2
x3
u0
u1
u2
u3
M
a0
b0
M r0
R
a1
b1
M r1
R
a2
b2
s2
M r2
R
a3
b3
M r3
R
CI
s0
s1
s3
CF
CO
![Page 54: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/54.jpg)
Uno “shifter” a 4 bit
w0
w1
w2
w3
LR
u0
u1
u2
u3
0
0
W0 = 0 L R’ + u0 L’ R’ + u1 L’ R
. .. .. .
Wi = ui-1 L R’ + ui L’ R’ + ui+1 L’ Ri=1,2
. .. .
. .
W3 = u2 L R’ + u3 L’ R’ + 0 L’ R
. .. .
. .
![Page 55: 5.1 - Memorie a sola lettura 5.2 - Matrici logiche programmabili 5.3 - Unità aritmetica e logica Capitolo 5 Circuiti programmabili.](https://reader036.fdocument.pub/reader036/viewer/2022062512/5542eb58497959361e8c41af/html5/thumbnails/55.jpg)
Esercizi 5.6 e 5.7
• Si determini la tabella delle operazioni eseguite dalla ALU nel caso M=1.
• Si indichi come deve essere modificato lo shifter per poter eseguire anche delle divisioni per 2 su numeri relativi rappresentati in complemento a 2.