Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili...
Transcript of Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili...
![Page 1: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/1.jpg)
Elettronica dei Sistemi Programmabili
A.A. 2013-2014
Microcontrollori
Esercizi
![Page 2: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/2.jpg)
2/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Registro speciale APSR: flag della ALU
Flag della ALU
N (b31) : copia di b31 del risultato. '1' se negativo, '0' se posivo o zero
Z (b30) : '1' se il risultato è pari a zero. '1' anche nel caso di confronto tra due numeri uguali
C (b29) : riporto per il risultato. Per una addizione senza segno '1' se c'è stato overflow. Per una sottrazione senza segno, è l'inverso del prestito d'uscita.
V (b28) : overflow per il risultato. '1' se c'è stato un overflow dopo una addizione o una sottrazione con segno.
![Page 3: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/3.jpg)
3/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Uso delle flag della ALU
nelle operazioni di addizione
![Page 4: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/4.jpg)
4/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Esempio n. 1 addizione a 32 bit
0x70000000 + 0x70000000 =
![Page 5: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/5.jpg)
5/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Esempio n. 1 addizione a 32 bit
0x70000000 + 0x70000000 =
0111 0000 0000 0000 0000 0000 0000 0000 +
![Page 6: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/6.jpg)
6/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Esempio n. 1 addizione a 32 bit
0x70000000 + 0x70000000 =
0111 0000 0000 0000 0000 0000 0000 0000 +0111 0000 0000 0000 0000 0000 0000 0000 =
![Page 7: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/7.jpg)
7/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Esempio n. 1 addizione a 32 bit
0x70000000 + 0x70000000 =
1110111 0000 0000 0000 0000 0000 0000 0000 +0111 0000 0000 0000 0000 0000 0000 0000 =1110 0000 0000 0000 0000 0000 0000 0000
riporti intermedi
![Page 8: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/8.jpg)
8/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Esempio n. 1 addizione a 32 bit
0x70000000 + 0x70000000 =
0111 0000 0000 0000 0000 0000 0000 0000 +0111 0000 0000 0000 0000 0000 0000 0000 =1110 0000 0000 0000 0000 0000 0000 0000
0
no riporto d'uscita C = 0
![Page 9: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/9.jpg)
9/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Esempio n. 1 addizione a 32 bit
0x70000000 + 0x70000000 =
0111 0000 0000 0000 0000 0000 0000 0000 +0111 0000 0000 0000 0000 0000 0000 0000 =1110 0000 0000 0000 0000 0000 0000 0000
0
no riporto d'uscita C = 0
risultato negativo N = 1
![Page 10: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/10.jpg)
10/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Esempio n. 1 addizione a 32 bit
0x70000000 + 0x70000000 =
0111 0000 0000 0000 0000 0000 0000 0000 +0111 0000 0000 0000 0000 0000 0000 0000 =1110 0000 0000 0000 0000 0000 0000 0000
0
no riporto d'uscita C = 0
risultato negativo N = 1
Z = 0risultato ≠ 0
![Page 11: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/11.jpg)
11/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Esempio n. 1 addizione a 32 bit
0x70000000 + 0x70000000 =
0111 0000 0000 0000 0000 0000 0000 0000 +0111 0000 0000 0000 0000 0000 0000 0000 =1110 0000 0000 0000 0000 0000 0000 0000
no riporto d'uscita C = 0
risultato negativo N = 1
0
risultato ≠ 0 Z = 0
somma da pos. a neg. → overflow V = 1
![Page 12: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/12.jpg)
12/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Esempio n. 2 addizione a 32 bit
verificare che: N Z C V
0x90000000 + 0x90000000 = 0x20000000 0 0 1 1
0x80000000 + 0x80000000 = 0x00000000 0 1 1 1
0xFFFFFFF8 + 0x00000007 = 0xFFFFFFFF 1 0 0 0
![Page 13: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/13.jpg)
13/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Come viene usato il carry d'uscita
per le addizioni a più cifre?
![Page 14: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/14.jpg)
14/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Uso delle flag della ALU
Esempio: addizione a 64 bitSuddivisa come somma di “due cifre” a 32 bit
ADDS r0, r0, r2ADCS r1, r1, r3
r0r1
r2r3
r0r1
+
=
r0r1
r2r3
r0r1
+
=
C
![Page 15: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/15.jpg)
15/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Esempio n. 3 addizione a 64 bit
0x7000000070000000 + 0x7000000070000000 =
0111 0000 0000 0000 0000 0000 0000 0000 +0111 0000 0000 0000 0000 0000 0000 0000 =1110 0000 0000 0000 0000 0000 0000 0000
0 +0111 0000 0000 0000 0000 0000 0000 0000 +0111 0000 0000 0000 0000 0000 0000 0000 =1110 0000 0000 0000 0000 0000 0000 0000
C=0
= 0xE0000000E0000000
Ok anche se deve essere segnalato l'overflow
2x[ 7 x 1615 + 7 x 167 ] = 14 x 1615 + 14 x 167
E E
![Page 16: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/16.jpg)
16/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Esempio n. 4 addizione a 64 bit
0x7000000090000000 + 0x7000000070000000 =
1001 0000 0000 0000 0000 0000 0000 0000 +0111 0000 0000 0000 0000 0000 0000 0000 =0000 0000 0000 0000 0000 0000 0000 0000
1 +0111 0000 0000 0000 0000 0000 0000 0000 +0111 0000 0000 0000 0000 0000 0000 0000 =1110 0000 0000 0000 0000 0000 0000 0001
C=1
= 0xE000000100000000
Ok anche se deve essere segnalato l'overflow
[7 x 1615 + 9 x 167 ] + [7 x 1615 + 7 x 167 ] =
14 x 1615 + 1 x 168
![Page 17: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/17.jpg)
17/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Uso delle flag della ALU
nelle operazioni di sottrazione
![Page 18: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/18.jpg)
18/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Esempio n. 5 sottrazione a 32 bit
0x00001234 - 0x00001000
0000 0000 0000 0000 0001 0010 0011 0100 -0000 0000 0000 0000 0001 0000 0000 0000 =
![Page 19: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/19.jpg)
19/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Esempio n. 5 sottrazione a 32 bit
0x00001234 - 0x00001000 = 0x00000234
0000 0000 0000 0000 0001 0010 0011 0100 -0000 0000 0000 0000 0001 0000 0000 0000 =0000 0000 0000 0000 0000 0010 0011 0100
0prestito
![Page 20: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/20.jpg)
20/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Esempio n. 5 sottrazione a 32 bit
0x00001234 - 0x00001000 = 0x00000234
0000 0000 0000 0000 0001 0010 0011 0100 -0000 0000 0000 0000 0001 0000 0000 0000 =0000 0000 0000 0000 0000 0010 0011 0100
no prestito d'uscita C = 1
risultato positivo N = 0
risultato ≠ 0 Z = 0
no overflow V = 0
☜
0
![Page 21: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/21.jpg)
21/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Esempio n. 6 sottrazione a 32 bit
0x00000004 - 0x00000005
0000 0000 0000 0000 0000 0000 0000 0100 -0000 0000 0000 0000 0000 0000 0000 0101 =1111 1111 1111 1111 1111 1111 1111 1111
1abbiamo prestito in uscita
-1-1-1-1 -1-1-1-1 -1-1-1-1 -1-1-1-1 -1-1-1-1 -1-1-1-1 -1-1-1-1 -1-1-1
![Page 22: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/22.jpg)
22/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Esempio n. 6 sottrazione a 32 bit
0x00000004 – 0x00000005 = 0xFFFFFFFF
0000 0000 0000 0000 0000 0000 0000 0100 -0000 0000 0000 0000 0000 0000 0000 0101 =1111 1111 1111 1111 1111 1111 1111 1111
prestito d'uscita C = 0
risultato negativo N = 1
Z = 0
no overflow V = 0
☜
1-1 in complemento a 2
risultato ≠ 0
![Page 23: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/23.jpg)
23/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Come viene usato il carry d'uscita
per le sottrazioni a più cifre?
![Page 24: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/24.jpg)
24/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Uso delle flag della ALU
Esempio: sottrazione a 64 bitSuddivisa come operazione a “due cifre” a 32 bit
SUBS r0, r0, r2SBCS r1, r1, r3
r0r1
r2r3
r0r1
-
=
r0r1
r2r3
r0r1
-
=
C
serve per segna-lare il prestito
![Page 25: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/25.jpg)
25/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Esempio n. 7 sottrazione a 64 bit
0x0000000100000001 - 0x0000000000000003 =
0000 0000 0000 0000 0000 0000 0000 0001 -0000 0000 0000 0000 0000 0000 0000 0011 =1111 1111 1111 1111 1111 1111 1111 1110C=0
= 0x00000000FFFFFFFE
-10000 0000 0000 0000 0000 0000 0000 0001 -0000 0000 0000 0000 0000 0000 0000 0000 =0000 0000 0000 0000 0000 0000 0000 0000
232 + 1 – 3
= 232 - 2
![Page 26: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/26.jpg)
26/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Per quale motivo nelle sottrazioni
il carry d'uscita è negato?
![Page 27: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/27.jpg)
27/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Complemento a 2
0x0000000100000001 - 0x0000000000000003 =
0000 0000 0000 0000 0000 0000 0000 0001 -0000 0000 0000 0000 0000 0000 0000 0011 =1111 1111 1111 1111 1111 1111 1111 1110
0000 0000 0000 0000 0000 0000 0000 0001 +1111 1111 1111 1111 1111 1111 1111 1100 + 1 =1111 1111 1111 1111 1111 1111 1111 1110
equivale a :
nego e aggiungo 1
0xFFFFFFFE
deve venire: 0x00000000FFFFFFFE
![Page 28: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/28.jpg)
28/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Complemento a 2
0x0000000100000001 - 0x0000000000000003 =
0000 0000 0000 0000 0000 0000 0000 0001 -0000 0000 0000 0000 0000 0000 0000 0011 =1111 1111 1111 1111 1111 1111 1111 1110
0000 0000 0000 0000 0000 0000 0000 0001 +1111 1111 1111 1111 1111 1111 1111 1100 + 1 =1111 1111 1111 1111 1111 1111 1111 1110
equivale a :
nego e aggiungo 1
1 Cin
no prestito
0Cin
si prestito0xFFFFFFFE
-1
deve venire: 0x00000000FFFFFFFE
![Page 29: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/29.jpg)
29/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Complemento a 2
0x0000000100000001 - 0x0000000000000003 =
0000 0000 0000 0000 0000 0000 0000 0001 -0000 0000 0000 0000 0000 0000 0000 0000 =0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0001 +1111 1111 1111 1111 1111 1111 1111 1111 + 0 =0000 0000 0000 0000 0000 0000 0000 0000
equivale a :
0 Cin
si prestito
1Cin
no prestito (utile per altre cifre)
0xFFFFFFFE
-1 prestito
0x00000000 c.d.d.
deve venire: 0x00000000FFFFFFFE
non agg. 1: tengo conto del prestito
![Page 30: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/30.jpg)
30/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Sottrazione
Semplificato notevolmente lo schema logico della ALU:
32-bit FULL ADDER Cin
Cout
NEG SUB
OP1 OP2
Carry in
così è calcolato il complemento a 2RIS
![Page 31: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/31.jpg)
31/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Sottrazione
Il complemento a 1 si realizza con le XOR:
32-bit FULL ADDER Cin
Cout Carry in
RIS
SUB
OP2
b31
b30
b0
OP1
![Page 32: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/32.jpg)
32/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Negazione ecomplemento a 2
Lo schema della ALU è piuttosto semplificato
Servono però 32 XOR
La sintesi di una XOR non occupa poco spazioserve qualche idea per risparmiare spazio
![Page 33: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/33.jpg)
33/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Note su XOR
16 MOS per ogni XOR!
x32
512 MOS per il blocco di negazione!
Schema logico della XOR singola:
![Page 34: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/34.jpg)
34/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Note su XOR
0
1Y
s
A
B
A⊕B
Per risparmiare spazio possiamo ricorrere al MUX:
A B Y0 0 01 0 10 1 11 1 0
esce A
esce A
Un MUX CMOS richiede 6 MOS
passiamo a 8 x 32 = 256 MOS
A
B
A
![Page 35: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/35.jpg)
35/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Note su XOR
Risparmiamo altri 2 MOS per ogni XOR con lo schema:
Y = A se B è '0' B A A
Y
B
Y = A se B è '1'
A B Y0 0 01 0 10 1 11 1 0
esce A
esce A
se B = '0' l'inverter non può attivarsi!se B = '0' l'inverter si attiva.
![Page 36: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/36.jpg)
36/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Note su XOR
16 x Lg
2.9 um @ 180 nm
tot: 92 um
B A A
Y
B
1
2
3
1
2
3
4
5
6
B
AY
5
6 4
![Page 37: Elettronica dei Sistemi Programmabili A.A. 2013-2014 · 2/37 Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori Registro speciale APSR: flag della ALU Flag della](https://reader036.fdocument.pub/reader036/viewer/2022071021/5fd4eb94e7a6906e0d34beca/html5/thumbnails/37.jpg)
37/37Elettronica dei Sistemi Programmabili – marzo 2014 – S. Salvatori
Altri esercizi
2
*
(*) no prestito(**) si prestito
**
N.B. sul libro, correggere il risultato della seconda riga