Reti combinatorie: moduli di base. Codificatore Realizza la funzione di codifica binaria, ossia...
-
Upload
benigna-d-amico -
Category
Documents
-
view
214 -
download
1
Transcript of Reti combinatorie: moduli di base. Codificatore Realizza la funzione di codifica binaria, ossia...
![Page 1: Reti combinatorie: moduli di base. Codificatore Realizza la funzione di codifica binaria, ossia associare ad ogni elemento di un insieme composto da m.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c18db/html5/thumbnails/1.jpg)
Reti combinatorie:moduli di base
![Page 2: Reti combinatorie: moduli di base. Codificatore Realizza la funzione di codifica binaria, ossia associare ad ogni elemento di un insieme composto da m.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c18db/html5/thumbnails/2.jpg)
Codificatore
• Realizza la funzione di codifica binaria, ossia associare ad ogni elemento di un insieme composto da m di simboli, una sequenza distinta di n bit
• Per ogni simbolo tale circuito genera il codice corrispondente
2nm• m linee di ingresso x0,..,xm-1, n linea di uscita y0,..,yn-1
– La linea xi è associata al simbolo i-simo– Quando xi=1, e xj=0 (ji), in uscita è presente il codice
corrispondente al simbolo i-simo
X0
X1
Xm-1
y0
yn-1
![Page 3: Reti combinatorie: moduli di base. Codificatore Realizza la funzione di codifica binaria, ossia associare ad ogni elemento di un insieme composto da m.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c18db/html5/thumbnails/3.jpg)
Esempio• Codifica cifre decimali in BCD
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1011
y3y2y1y013579
2367
4567
8
9
y0
y1
y2
y3
![Page 4: Reti combinatorie: moduli di base. Codificatore Realizza la funzione di codifica binaria, ossia associare ad ogni elemento di un insieme composto da m.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c18db/html5/thumbnails/4.jpg)
Decodificatore• Realizza la funzione inversa del codificatore, a partire da
una parola di un codice genera il simbolo corrispondente• Per ogni configurazione di ingresso, una sola uscita vale
1, le altre hanno valore 0
y0y1
yn-1
x0
xm-1
![Page 5: Reti combinatorie: moduli di base. Codificatore Realizza la funzione di codifica binaria, ossia associare ad ogni elemento di un insieme composto da m.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c18db/html5/thumbnails/5.jpg)
Esempio• Decoder BCD-Cifre decimali (prima realizzazione)
0000 0 0 0 0 0 0 0 0 0 1
0001 0 0 0 0 0 0 0 0 1 0
0010 0 0 0 0 0 0 0 1 0 0
0011 0 0 0 0 0 0 1 0 0 0
0100 0 0 0 0 0 1 0 0 0 0
0101 0 0 0 0 1 0 0 0 0 0
0110 0 0 0 1 0 0 0 0 0 0
0111 0 0 1 0 0 0 0 0 0 0
1000 0 1 0 0 0 0 0 0 0 0
1001 1 0 0 0 0 0 0 0 0 0
x3x2x1x0y9y8y7y6y6y5y4y3y2y1y0 x3
x2
x1
x0
x3
x2
x1
x0
x3
x2
x1
x0
.
.
.
y0
y1
y9
![Page 6: Reti combinatorie: moduli di base. Codificatore Realizza la funzione di codifica binaria, ossia associare ad ogni elemento di un insieme composto da m.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c18db/html5/thumbnails/6.jpg)
Esempio• Decoder BCD-Cifre decimali (seconda realizzazione)
0000 0 0 0 0 0 0 0 0 0 1
0001 0 0 0 0 0 0 0 0 1 0
0010 0 0 0 0 0 0 0 1 0 0
0011 0 0 0 0 0 0 1 0 0 0
0100 0 0 0 0 0 1 0 0 0 0
0101 0 0 0 0 1 0 0 0 0 0
0110 0 0 0 1 0 0 0 0 0 0
0111 0 0 1 0 0 0 0 0 0 0
1000 0 1 0 0 0 0 0 0 0 0
1001 1 0 0 0 0 0 0 0 0 0
x3x2x1x0y9y8y7y6y6y5y4y3y2y1y0
x3
x2
x3
x2
x3
x2
x1
x0x1
x0
x1
x0
x1
x0
x3
x2
y0 y1
….
![Page 7: Reti combinatorie: moduli di base. Codificatore Realizza la funzione di codifica binaria, ossia associare ad ogni elemento di un insieme composto da m.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c18db/html5/thumbnails/7.jpg)
Decodificatore con enable
• E’ dotato di un ulteriore ingresso di abilitazione E (detto anche strobe)
• Il decodificatore è abilitato (ossia il processo di decodifica ha luogo) solo quando E=1
EE
![Page 8: Reti combinatorie: moduli di base. Codificatore Realizza la funzione di codifica binaria, ossia associare ad ogni elemento di un insieme composto da m.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c18db/html5/thumbnails/8.jpg)
Realizzazione di funzioni tramite decoder
000 1
001 0
010 0
011 0
100 1
101 0
110 1
111 1
x2x1x0f
E
E
fusibile
![Page 9: Reti combinatorie: moduli di base. Codificatore Realizza la funzione di codifica binaria, ossia associare ad ogni elemento di un insieme composto da m.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c18db/html5/thumbnails/9.jpg)
Realizzazione di funzioni tramite decoder (con Enable tree-state)
fusibile
E
![Page 10: Reti combinatorie: moduli di base. Codificatore Realizza la funzione di codifica binaria, ossia associare ad ogni elemento di un insieme composto da m.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c18db/html5/thumbnails/10.jpg)
ROM (Read Only Memory)
• Insieme di locazioni di memoria che possono essere lette specificandone l’indirizzo
• Una ROM è un circuito combinatorio
Ingresso
(indirizzo)
Uscita
(word)
![Page 11: Reti combinatorie: moduli di base. Codificatore Realizza la funzione di codifica binaria, ossia associare ad ogni elemento di un insieme composto da m.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c18db/html5/thumbnails/11.jpg)
Schema logico di una ROM
0 0 0
Funzioni di commutazioni realizzate come OR di mintermini
fusibile
![Page 12: Reti combinatorie: moduli di base. Codificatore Realizza la funzione di codifica binaria, ossia associare ad ogni elemento di un insieme composto da m.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c18db/html5/thumbnails/12.jpg)
Implementazione ROM con C-MOS
• ROM 4x4 (numero parole x dimensione parola)
Uscita
R R R R
Vdd
Indirizzo
DE
C
Assenza collegamento =1
“Interruttore”
![Page 13: Reti combinatorie: moduli di base. Codificatore Realizza la funzione di codifica binaria, ossia associare ad ogni elemento di un insieme composto da m.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c18db/html5/thumbnails/13.jpg)
Implementazione ROM (2)
• Esempio, indirizzo 01, uscita=0001
Uscita
R R R R
Vdd
Indirizzo01
DE
CO
DE
R
0 0 0 1
![Page 14: Reti combinatorie: moduli di base. Codificatore Realizza la funzione di codifica binaria, ossia associare ad ogni elemento di un insieme composto da m.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c18db/html5/thumbnails/14.jpg)
ROM temporizzazioni
Xindirizzi
datiZ
csoe
t a
t cs
t oe
alta impedenza alta impedenza
indirizzo valido
cs
oe
Zdato valido
t
t
v
d
•ta : tempo di propagazione dall'ingresso X all'uscita Z•tcs: tempo di propagazione dall'ingresso cs all'uscita Z•toe: tempo di propagazione dall'ingresso oe all'uscita Z•t v: tempo di mantenimento dell'uscita da quando commuta X o cs o oe•td: tempo di disabilitazione dell'uscita da quando commuta cs o oe
![Page 15: Reti combinatorie: moduli di base. Codificatore Realizza la funzione di codifica binaria, ossia associare ad ogni elemento di un insieme composto da m.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c18db/html5/thumbnails/15.jpg)
Multiplexer (MUX 2n:1)
• Ingressi – m=2n ingressi dati – n ingressi di selezione (controllo)
• Uscita– Una fra le m, a seconda del controllo
x0x1
xm-1
sn-1 s0
01
m-1
y
S y
0
1
..
2n-1
X0
X1
..
X2n
-1
![Page 16: Reti combinatorie: moduli di base. Codificatore Realizza la funzione di codifica binaria, ossia associare ad ogni elemento di un insieme composto da m.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c18db/html5/thumbnails/16.jpg)
MUX 4-2
Y
X 0
X 1
X 2
X 3
s 0s 1
Y
X 0
X 1
X 2
X 3
s 1 s 0
![Page 17: Reti combinatorie: moduli di base. Codificatore Realizza la funzione di codifica binaria, ossia associare ad ogni elemento di un insieme composto da m.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c18db/html5/thumbnails/17.jpg)
MUX - Generatore di funzioni
0 1
2
3
4
5
6
7
0 1
y=f(x0x1x2)=m0+m2+m3+m6=(0,2,3,6)
y=M1M4M5M7=(1,4,5,7)
x0x1x2
![Page 18: Reti combinatorie: moduli di base. Codificatore Realizza la funzione di codifica binaria, ossia associare ad ogni elemento di un insieme composto da m.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c18db/html5/thumbnails/18.jpg)
DEMUX 2-4
d d d d
0 1 2 3
Y
s0s1
![Page 19: Reti combinatorie: moduli di base. Codificatore Realizza la funzione di codifica binaria, ossia associare ad ogni elemento di un insieme composto da m.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c18db/html5/thumbnails/19.jpg)
Half Hadder - Semisommatore
• Ingresso 2 bit, uscita 2 bit
HA
A B
SC
A+B=
------C S
A
B
S
C
HA
C=ABS=(not A)B + A(not B)=AB
In Out
A B S C
0 0
0 1
1 0
1 1
0 0
1 0
1 0
0 1
![Page 20: Reti combinatorie: moduli di base. Codificatore Realizza la funzione di codifica binaria, ossia associare ad ogni elemento di un insieme composto da m.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c18db/html5/thumbnails/20.jpg)
Full Hadder – Addizionatore completo
+
A B
S Cout
Cin+A+B=
----------Cout S
S vale 1 solo quando un numero dispari di bit di ingresso vale 1. Quindi, S=AB C
Cin
In Out
A B Cin S Cout
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0 0
1 0
1 0
0 1
1 0
0 1
0 1
1 1
0 0 1 0
0 1 1 1
ABCin
Cout=CB+AB+CA
![Page 21: Reti combinatorie: moduli di base. Codificatore Realizza la funzione di codifica binaria, ossia associare ad ogni elemento di un insieme composto da m.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c18db/html5/thumbnails/21.jpg)
Ripple Carry Adder (RCA)
Full Adder
a0 b0
c0
s0
Full Adder
a1 b1
c1c2
s1
Full Adder
an-1 bn-1
cn-1
cn
sn-1
n-bit Ripple Carry
Adder
sn-1 s0
an-1 bn-1 a0 b0
c0cn
Il tempo per ottenere il risultato è pari ad nTc, dove Tc è il tempo di propagazione del riporto
![Page 22: Reti combinatorie: moduli di base. Codificatore Realizza la funzione di codifica binaria, ossia associare ad ogni elemento di un insieme composto da m.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c18db/html5/thumbnails/22.jpg)
ALU (bit slice)
• Op seleziona il tipo di operazione
+
a
b
opcin
cout
0
1
2
y
op y
0 0
0 1
1 0
11
a AND b
a OR b
(a+b+cin) mod 2
??
![Page 23: Reti combinatorie: moduli di base. Codificatore Realizza la funzione di codifica binaria, ossia associare ad ogni elemento di un insieme composto da m.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c18db/html5/thumbnails/23.jpg)
ALU a 32 bit
cin
cout
ALU0
cin
cout
ALU1
cin
cout
ALU31
a0
b0
a1
b1
a31
b31
y0
y1
y31
… ……
op
![Page 24: Reti combinatorie: moduli di base. Codificatore Realizza la funzione di codifica binaria, ossia associare ad ogni elemento di un insieme composto da m.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c18db/html5/thumbnails/24.jpg)
ALU (bit slice)
* = rappresentazioni in complemento a 2
+
a
b
opcin
cout
0
1
2
y
01
Inverti B
op InvertiB cin y
0 0
0 1
1 0
1 0
1 0
-
-
0
1
1
-
-
-
0
1
a AND b
a OR b
(a+b+cin) mod 2
(a+NOT b)
(a-b)*
![Page 25: Reti combinatorie: moduli di base. Codificatore Realizza la funzione di codifica binaria, ossia associare ad ogni elemento di un insieme composto da m.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c18db/html5/thumbnails/25.jpg)
ALU a 32 bit
cin
cout
ALU0
cin
cout
ALU1
cin
cout
ALU31
a0
b0
a1
b1
a31
b31
y0
y1
y31
… ……
opInverti B
op NegaB y
0 0
0 1
1 0
1 0
-
-
0
1
A AND B
A OR C
A + B
A-B
Per stabilire se si verifica overflowÈ sufficiente confrontare sein corrispondenza del MSB, cincout
Overflowdetection
Overflow
![Page 26: Reti combinatorie: moduli di base. Codificatore Realizza la funzione di codifica binaria, ossia associare ad ogni elemento di un insieme composto da m.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c18db/html5/thumbnails/26.jpg)
Supporto ALU per i salti
• Vogliamo ampliare la ALU in modo che sia in grado di rilevare la condizione a=b
• Tale condizione è utile per far eseguire istruzioni in modo condizionato (jump)
• Indichiamo con Zero la variabile binaria cosi definita:– Zero=1 se e solo se a=b
• Per calcolare Zero osserviamo che a=b <-> a-b=0– Pertanto Zero=1 se e solo se tutti i bit dell’operazione a-b
sono nulli. Ossia, Zero coincide col mintermine m0 definito sulgli n bit r0 … rn-1 che rappresentatno la differenza.
– Zero=m0= (not r0)(not r1)…(not rn-1)= not (r0+r1 .. +rn-1)
![Page 27: Reti combinatorie: moduli di base. Codificatore Realizza la funzione di codifica binaria, ossia associare ad ogni elemento di un insieme composto da m.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c18db/html5/thumbnails/27.jpg)
ALU a 32 bit
cin
cout
ALU0
cin
cout
ALU1
cin
cout
ALU31
a0
b0
a1
b1
a31
b31
y0
y1
y31
… ……
opInverti B
Overflowdetection
Overflow
Zero
![Page 28: Reti combinatorie: moduli di base. Codificatore Realizza la funzione di codifica binaria, ossia associare ad ogni elemento di un insieme composto da m.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c18db/html5/thumbnails/28.jpg)
Progetto di un sommatore con operandi a due bit
0 0 0 0 0 0 0
0 0 0 1 0 0 1
0 0 1 0 0 0 1
0 0 1 1 0 1 0
0 1 0 0 0 1 0
0 1 0 1 0 1 1
0 1 1 0 0 1 1
0 1 1 1 1 0 0
1 0 0 0 0 1 0
1 0 0 1 0 1 1
1 0 1 0 0 1 1
1 0 1 1 1 0 0
1 1 0 0 1 0 0
1 1 0 1 1 0 1
1 1 1 0 1 0 1
1 1 1 1 1 1 0
a1b1a0b0rout s1s0
Sintesi
Confronto con approccio iterativo