260 likes | 497 Views
RETI LOGICHE Daniele Manzaroli dmanzarli@arces.unibo.it. Esercitazione: mappe di Karnaugh Quartus II: segnali di ingresso Codice Binario: Rappresentazione e Calcolo Codice BCD e trascodifica Codice 7 segmenti ed esercitazione Half adder, Full adder. 1. abcdefg. 1111110 0110000 1101101
E N D
RETI LOGICHEDaniele Manzaroli dmanzarli@arces.unibo.it Esercitazione: mappe di Karnaugh Quartus II: segnali di ingresso Codice Binario: Rappresentazione e Calcolo Codice BCD e trascodifica Codice 7 segmenti ed esercitazione Half adder, Full adder 1
abcdefg 1111110 0110000 1101101 1111001 0110011 1011011 0011111 1110000 1111111 1110011 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1000000000 0100000000 0010000000 0001000000 0000100000 0000010000 0000001000 0000000100 0000000010 0000000001 7 segmenti BCD uno su dieci Esempio: codifica delle cifre decimali Alcuni codici binari per le cifre decimali Cifre decimali zero uno due tre quattro cinque sei sette otto nove
a f b g e c d Codice a 7 segmenti
Conversione da base 2 a base 10 e viceversa Dato un numero binario naturale a n bit B = bn-1 bn-2 … b0, il suo valore decimale corrispondente N è dato da: (N)10 = bn-1.2n-1 + bn-2.2n-2 +…+b0.20 Dato un numero naturale N espresso in base 10, la corrispondente rappresentazione in base 2 B = bn-1 bn-2 … b0può essere ottenuta attraverso il seguente processo iterativo di divisione per 2: resto (N)10 = bn-1 .2n-1 + bn-2 .2n-2 +…+b0 .20 b0 : 2 = resto b1 (N)10 = bn-1 .2n-2 + bn-2 .2n-3 +…+b1 .20 : 2 ……………….. resto bn-2 (N)10 = bn-1 .2 + bn-2 : 2 = resto bn-1 (N)10 = bn-1 : 2
Somma fra numeri naturali • Somma fra due numeri da un bit • 0 + 0 = 0 ; 1 + 0 = 1 ; 0 + 1 = 1 ; 1 + 1 = 0 con riporto (C) di 1 • Somma “colonna per colonna” fra due numeri da n bit ci ai bi ci+1 si 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 S = A + B cn-1 ci c1 0 cn + an-1 ai a1 a0 bn-1 bi b1 b0 = sn-1 si s1 s0
Esempio di somma Calcolare 9010 + 15010 A = 9010 = 010110102 = 5A16 B = 15010 = 100101102 = 9616 Riporto 0 0 0 1 1 1 0 A B Risultato 1 1 1 1 0 0 0 0
p a b P D 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 1 1 0 0 0 1 1 1 1 1 pn-1 pi p1 0 - an-1 ai a1 a0 bn-1 bi b1 b0 = dn-1 di d1 d0 Sottrazione fra numeri naturali • Sottrazione fra due numeri da un bit • 0 - 0 = 0 ; 1 - 0 = 1 ; 1 - 1 = 0 ; 0 - 1 = 1 con prestito (P) di 1 • Sottrazione “colonna per colonna” fra due numeri da n bit D = A - B (A B)
Esempio di sottrazione Calcolare 19810 – 10810 A = 19810 = 110001102 B = 10810 = 011011002 Prestiti 0 1 1 1 1 0 0 0 A B Risultato 0 1 0 1 1 0 1 0
n bit bn-1 bn-2 b1 b0 segno (0: positivo, 1: negativo) valore assoluto |N| = (bn-2 .2n-2 +…+b0 .20) Numeri relativi: rappresentazione segno-valore assoluto (n = 3) N [-(2n-1 - 1), +(2n-1 - 1)] • Doppia rappresentazione per lo 0 • Simmetria tra valore positivo massimo e valore negativo minimo
n bit bn-1 bn-2 b1 b0 Numeri relativi: rappresentazione in complemento a 2 N 0 : segno-valore assoluto N < 0 : 2(-N) con (-N) espresso in segno-valore assoluto N.B. - anche nella rappresentazione in complemento a 2 il bit più significativo indica il segno (0:positivo, 1:negativo). Dato un numero binario B a n bit rappresentato in complemento a 2, allora: N = - bn-1.2n-1 + bn-2 .2n-2 + …+ b0 .20 • Unica rappresentazione per lo 0 • Asimmetria tra valore positivo massimo e valore negativo minimo N [-2n-1, +(2n-1 - 1)]
Esercizio Si esprimano in decimale ed esadecimale i seguenti numeri binari relativi in complemento a due: 101001, 101101, 11110, 01010, 11001. 101001 -25 + 23 + 20 = -23 1110 1001 = E9 101101 -25 + 23 + 22 + 20 = -19 1110 1101 = ED 11110 -24 + 23 + 22 + 21 = -2 1111 1110 = FE 11001 -24 + 23 + 20 = -7 1111 1001 = F9 11
Esercizi Nel caso di n=5 bit +1210 = 011002 -1210 = 2(1210) = 2(011002) = 100112+1 = 101002 410 = 001002 (-12) + (+4) Risultato: -1•24 + 1•23 + 0•22 + 0•21 + 0•20 = -810 (-12) + (-1) -110 = 2(110) = 2(000012) = 111102+1 = 111112 Risultato: -1•24 + 0•23 + 0•22 + 1•21 + 1•20 = -1310 12
Esercizi Nel caso di n=5 bit -1210 = 2(1210) = 2(011002) = 100112+1 = 101002 (-12) - (-12) (-12) + (+12) -110 = 2(110) = 2(000012) = 111102+1 = 111112 13
Esercizi Nel caso di n=5 bit -1210 = 2(1210) = 2(011002) = 100112+1 = 101002 (-12) + (-12) Overflow (-12) - (+5) 14 Reti Logiche A.A. 2009-10
NOT(B) = (2n-1) - B Not(15610) utilizzando 8 bit A = 28– 1 =25510 = 111111112 B = 15610 = 100111002 C = 1100112 = 25 + 24 + 2 + 1 = 9910 Prestiti 0 0 0 0 0 0 0 0 A = 2n - 1 B C = NOT(B) 0 1 1 0 0 0 1 1 15
Complemento a 2 di un numero naturale N di n bit CI 4 BIT a0 ADDER a1 a2 a3 s0 s1 s2 s3 b0 b1 b2 b3 CO 2N = 2n - N Calcolo di 2N senza la sottrazione 2N = 2n - N = (2n - 1) - N + 1 = not (N) + 1 2N = not(N) + 1 0 1 0 0 0 2N N 16
Esempio Calcolare il complemento a 2 di 710 e 510 , utilizzando n=4 bit N=7 27 2n-N = 24-7 = 16-7 = 910 = 10012 oppure, senza la sottrazione 27 NOT(N)+1 = NOT(0111)+1 = 1000+1 = 10012 N=5 25 2n-N = 24-5 = 16-5 = 1110 = 10112 oppure, senza la sottrazione 25 NOT(N)+1 = NOT(0101)+1 = 1010+1 = 10112 Calcolatori Elettronici A.A. 2008-09 17
Proprietà della rappresentazione in complemento a 2 Siano A e B due numeri rappresentati in complemento a 2 A+B = somma algebrica fra A e B 2A = -A A - B=A + 2B Per sommare o sottrarre due numeri relativi espressi in complemento a 2 è sufficiente un addizionatore. A = 3 ; B = 4 (in complemento a 2 con 4 bit) A = 0011 B = 0100 A – B = 0011 + 2(0100) = 0011 + 1100 = 1111
CI 4 BIT a0 ADDER a1 a2 a3 s0 s1 s2 s3 b0 b1 b2 b3 CO CI 4 BIT a0 ADDER a1 a2 a3 s0 s1 s2 s3 b0 b1 b2 b3 CO Somma e sottrazione di numeri espressi in complemento a 2 Siano A e B due numeri binari espressi in complemento a 2 SOMMA SOTTRAZIONE 1 A A A + B A - B B B
Esempio Calcolare 710-510 utilizzando il complemento a 2, nel caso di n=4 bit 710 = 01112 510 = 01012 A–B = A + 2B = A + [NOT(B)+1] 710-510 = 01112 + [NOT(01012)+1] = 01112 + [10102+1] = 01112 + [10112] = 11110 r 0111 + 1011 = -------- 0010 = 0010 = 210 Calcolatori Elettronici A.A. 2008-09 20
Esercizi (1) Calcolare 610-310 utilizzando il complemento a 2, nel caso di n=4 bit 610 = 01102 310 = 00112 A–B = A + 2B = A + [NOT(B)+1] 610-310 = 01102 + [NOT(00112)+1] = 01102 + [11002+1] = 01102 + [11012] = 0110 + 1101 = -------- 0011 = 310
Esercizi (2) • Nel caso di n=4 bit, • Rappresentare +5 e –6 in‘segno valore assoluto’ • +510 = 01012 • -610 = 11102 • Rappresentare +5 e –6 in ‘complemento a 2’ • +510 = 01012-0•23 + 1•22 + 0•21 + 1•20 = +510 • -610 = 2(610) = 2(01102) = 10012+1 = 10102 • -1•23 + 0•22 + 1•21 + 0•20 = -610
Esercizi Nel caso di n=5 bit +1210 = 011002 -1210 = 2(1210) = 2(011002) = 100112+1 = 101002 410 = 001002 (-12) + (+4) Risultato: -1•24 + 1•23 + 0•22 + 0•21 + 0•20 = +810 (-12) + (-1) -110 = 2(110) = 2(000012) = 111102+1 = 111112 Risultato: -1•24 + 0•23 + 0•22 + 1•21 + 1•20 = -1310 23
Esercizi Nel caso di n=5 bit -1210 = 2(1210) = 2(011002) = 100112+1 = 101002 (-12) - (-12) (-12) + (+12) -110 = 2(110) = 2(000012) = 111102+1 = 111112 24
Esercizi Nel caso di n=5 bit -1210 = 2(1210) = 2(011002) = 100112+1 = 101002 410 = 001002 -410 = 2(410) = 2(001002) = 110112+1 = 111002 (-12) + (-4) (+10) + (-5) 1010 = 01010 -510 = 2(510) = 2(001012) = 110102+1 = 110112 25
S0 CI A0 B0 S1 CI S FA A B CO A1 B1 Sn-1 CI S FA A B CO A S An-1 CO Bn-1 … B A S HA B C CI S FA A B CO HA CI S C FA A A S HA B C CO B Half adder, full adder, n bit adder Half adder Full adder n bit adder A[0..n-1] B[0..n-1] S[0..n-1]