Contemporary Logic Design
Logica progr. e ad interruttori
Capitolo 4: Logica
programmabile e ad interruttori
Reti Logiche
Contemporary Logic Design
Randy H. Katz
University of California, Berkeley
May 1993
Trasparenze tradotte da:
Luciano Lavagno
Universita’ di Udine
Settembre 1998
© R.H. Katz 4-1
Sommario
Contemporary Logic Design
Logica progr. e ad interruttori
• PAL e PLA
• Logica che non usa le porte
Logica ad interruttori
Multiplexer/selettori/decodificatori
Porte Tri-State/Open Collector
ROM
• Problemi di progetto di logica combinatoria
Decodificatore display a sette segmenti
Controllore linea di produzione
Unita’ funzionale logica
Barrel Shifter
© R.H. Katz 4-2
Contemporary Logic Design
Logica progr. e ad interruttori
PAL e PLA
Blocco funzionale con molte porte AND/OR (o NAND/NAND) prefabbricate
”Personalizzate" creando o eliminando connessioni tra le porte
Schema a blocchi di matrice logica programmabile in forma AND/OR
Ingressi
Matrice compatta
di porte AND
Termini
prodotto
Matrice compatta
di porte OR
Uscite
© R.H. Katz 4-3
Contemporary Logic Design
PAL e PLA
Logica progr. e ad interruttori
Aspetto essenziale: condivisione di termini prodotto
Equazioni:
Esempio:
F0 = A + B' C'
F1 = A C' + A B
F2 = B' C' + A B
F3 = B' C + A
Matrice di personalita’
Termine
prodotto
AB
BC
AC
BC
A
Ingr.
Uscite
A B C F0 F1 F2 F3
0 1 1 0
1 1 - 0 1 0 0 0 1
1 - 0 0 1 0 0
- 0 0 1 0 1 0
1 0 0 1
1 - -
Lato ingressi (AND):
1 = presente positivo
0 = presente negato
- = assente
Lato uscite (OR):
Riutilizzo 1 = termine connesso in uscita
0 = termine non connesso
di
(non vuole dire che la
termini
funzione vale 0!!)
© R.H. Katz 4-4
PAL e PLA
Contemporary Logic Design
Logica progr. e ad interruttori
Esempio
Tutte le possibili connessioni sono
disponibili prima della programmazione
© R.H. Katz 4-5
PAL e PLA
Contemporary Logic Design
Logica progr. e ad interruttori
Esempio
Le connessioni non volute sono eliminate
Nota: alcune tecnologie
creano le connessioni
invece di eliminarle
© R.H. Katz 4-6
Contemporary Logic Design
PAL e PLA
Logica progr. e ad interruttori
Rappresentazioni alternative per strutture ad elevato fan-in
Notazione abbreviata
per non disegnare
tutti i fili!
Notazione per realizzare
F0 = A B + A' B'
F1 = C D' + C' D
© R.H. Katz 4-7
PAL e PLA
Esempio di progetto
Contemporary Logic Design
Logica progr. e ad interruttori
Varie funzioni di A, B, C
F1 = A B C
F2 = A + B + C
F3 = A B C
F4 = A + B + C
F5 = A xor B xor C
F6 = A xnor B xnor C
© R.H. Katz 4-8
Contemporary Logic Design
Logica progr. e ad interruttori
PAL e PLA
Qual’e’ la differenza tra Programmable Array Logic (PAL) e
Programmable Logic Array (PLA)?
PAL realizzata con una memoria integrata
la topologia del piano OR e’ limitata
Una colonna del piano OR
puo’ essere collegata solo ad
alcuni termini prodotto
PLA usa una topologia generale (tutte le connessioni possibili)
sia nel piano AND sia nel piano OR
© R.H. Katz 4-9
Contemporary Logic Design
Logica progr. e ad interruttori
PAL e PLA
Esempio di progetto: convertitore BCD-Gray
Tabella di verita’
A
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
B
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
C
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
D
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
W
0
0
0
0
0
1
1
1
1
1
X
X
X
X
X
X
X
0
0
0
0
1
1
0
0
0
0
X
X
X
X
X
X
Y
0
0
1
1
1
1
1
1
0
0
X
X
X
X
X
X
Z
0
1
1
0
0
0
0
1
1
0
X
X
X
X
X
X
Mappe di Karnaugh
A
AB
00
01
11
10
00
0
0
X
1
01
0
1
X
1
CD
A
AB
00
01
11
10
00
0
1
X
0
01
0
1
X
0
CD
D
11
0
1
X
D
X
C
11
0
0
X
X
10
0
0
X
X
C
10
0
1
X
X
B
B
W
A
AB
C
W=A+BD+BC
X = B C'
Y=B+C
Z = A'B'C'D + B C D + A D' + B' C D'
A
AB
00
01
11
10
00
0
1
X
0
01
0
1
X
0
11
1
1
X
X
10
1
1
X
X
CD
Funzioni minimizzate:
X
00
01
11
10
00
0
0
X
1
01
1
0
X
0
11
0
1
X
X
10
1
0
X
X
CD
D
D
C
B
B
Y
Z
© R.H. Katz 4-10
PAL e PLA
Contemporary Logic Design
Logica progr. e ad interruttori
PAL programmata:
Servono 4 termini prodotto per porta OR
© R.H. Katz 4-11
Contemporary Logic Design
Logica progr. e ad interruttori
PAL e PLA
Realizzazione a porte del convertitore
A
\A
1
B
D
2
B
C
3
\A
\B
\C
D
W
B
C
D
2
3
4 4
A
D
B
C
22
1
1
1
X
\C
B
2
1
\B
Y
4
Z
5
\D
\B
C
\D
1:
2,5:
3:
4:
3
7404
7400
7410
7420
hex inverters
quad 2-input NAND
tri 3-input NAND
dual 4-input NAND
4 integrati SSI rispetto ad 1 integrato PLA/PAL!
© R.H. Katz 4-12
Contemporary Logic Design
Logica progr. e ad interruttori
PAL e PLA
Un altro esempio: comparatore
A
AB
00
01
11
10
00
1
0
0
0
01
0
1
0
0
CD
A
AB
00
01
11
10
00
0
1
1
1
01
1
0
1
1
CD
D
11
0
0
1
D
0
C
11
1
1
0
1
10
1
1
1
0
C
10
0
0
0
1
B
B
EQ
NE
A
AB
00
01
11
10
00
0
0
0
0
01
1
0
0
0
11
1
1
0
1
CD
A
AB
00
01
11
10
00
0
1
1
1
01
0
0
1
1
11
0
0
0
0
10
0
0
1
0
CD
D
C
D
C
10
1
1
0
0
B
B
LT
GT
© R.H. Katz 4-13
Contemporary Logic Design
Logica progr. e ad interruttori
Logica non a porte
Introduzione
AND-OR-Invert
PAL/PLA
Blocchi funzionali generalizzati
piu’ complessi delle porte base
Tipi di "Logica non a porte":
• circuiti a interruttori CMOS (“transmission gates”)
• funzioni multiplexer/selettore
• funzioni demultiplexer/decodificatore
• porte tri-state ed open collector
• memorie a sola lettura (ROM)
© R.H. Katz 4-14
Contemporary Logic Design
Logica progr. e ad interruttori
Logica ad interruttori
Interruttori controllati in tensione
Gate
Canale
Ossido (SiO2)
Source
Drain
Substrato
Si di tipo n
Si di tipo p
"MOS a canale n"
“Sandwich” di metallo (gate), ossido (isolante) e silicio
Regioni di diffusione: Si drogato con ioni negativi
Substrato di Si drogato con ioni positivi
“Attraendo” ioni negativi verso la superficie del substrato si
forma un “canale” conduttore
© R.H. Katz 4-15
Logica ad interruttori
Interruttori controllati in tensione
Contemporary Logic Design
Logica progr. e ad interruttori
Gate
Source
Drain
1 logico sul gate,
Source e Drain connessi
nMOS Transistor
Gate
Source
0 logico sul gate,
Source e Drain connessi
Drain
pMOS Transistor
© R.H. Katz 4-16
Contemporary Logic Design
Logica progr. e ad interruttori
Logica ad interruttori
Porte logiche a partire da interruttori
+5V
A
B
A
+5V
A
B
+5V
AB
A
A+ B
Inverter
NAND
NOR
Rete di pull-up formata da transistor pMOS
Rete di pull-down formata da transistor nMOS
© R.H. Katz 4-17
Contemporary Logic Design
Logica progr. e ad interruttori
Logica ad interruttori
Funzionamento dell’inverter
+5V
"1"
+5V
"0"
Ingresso ad 1
Pull-up non conduce
Pull-down conduce
Uscita collegata a GND
"0"
"1"
Ingresso a 0
Pull-up conduce
Pull-down non conduce
Uscita connessa a VDD
© R.H. Katz 4-18
Contemporary Logic Design
Logica progr. e ad interruttori
Logica ad interruttori
Funzionamento della porta NAND
"1"
"0"
"1"
+5V
"1"
+5V
"0"
A = 1, B = 1
Pull-up non conduce
Pull-down conduce
Uscita connessa a GND
"1"
A = 0, B = 1
Pull-up conduce
Pull-down non conduce
Uscita connessa a VDD
© R.H. Katz 4-19
Contemporary Logic Design
Logica progr. e ad interruttori
Logica ad interruttori
Funzionamento porta NOR
"0"
+5V
"1"
"0"
"0"
+5V
"1"
A = 0, B = 0
Pull-up conduce
Pull-down non conduce
Uscita connessa a VDD
"0"
A = 1, B = 0
Pull-up non conduce
Pull-down conduce
Uscita connessa a GND
© R.H. Katz 4-20
Contemporary Logic Design
Logica progr. e ad interruttori
Logica ad interruttori
“Transmission Gate” CMOS
nMOS vanno bene a trasmettere 0 e male a trasmettere 1
pMOS vanno bene a trasmettere 1 e male a trasmettere 0
un “interruttore ideale” li usa in parallelo
Control
Control
In
Out
Control
Interruttori
In
Control
Out
Control
Transistor
In
Out
Control
Transmission gate
(“farfalla”)
© R.H. Katz 4-21
Contemporary Logic Design
Logica ad interruttori
Logica progr. e ad interruttori
Selettore/demultiplexer usando transmission gate
S
Selettore (multiplexer):
Sceglie I0 se S = 0
Sceglie I1 se S = 1
I
0
S
I
Z
S
1
S
S
Demultiplexer:
I passa a Z0 se S = 0
I passa a Z1 se S = 1
Z0
I
S
S
Z1
S
© R.H. Katz 4-22
Logica ad interruttori
Contemporary Logic Design
Logica progr. e ad interruttori
Uso di multiplexer/demultiplexer in sistemi digitali
A
Demultiplexers
Y
Multiplex ers
B
Z
A
Y
Demultiplexers
Multiplex ers
B
Z
Finora abbiamo visto solo connessioni da punto a punto
Mux/Demux possono essere usati per realizzare connessioni
multiple variabili
© R.H. Katz 4-23
Contemporary Logic Design
Logica progr. e ad interruttori
Logica ad interruttori
Reti ad interruttori ben formate
Problema con la realizzazione del demux:
molte uscite, ma solo una connessa all’ingresso!
S
Z0
S
"0"
I
S
S
Z1
S
"0"
S
Rimedio: logica aggiuntiva per pilotare ogni uscita ad un valore
noto (in questo caso 0)
Non lasciare mai uscite “fluttuanti”!!
© R.H. Katz 4-24
Contemporary Logic Design
Logica progr. e ad interruttori
Logica ad interruttori
Esempio complesso logica ad interruttori
Circuito conta-1 ad N ingressi
I
1
0
1
I1
Zero
1
0
Uno
0
1
I1
“diretto”
I1
"0"
Zero
Uno
"0"
Uno
"1"
Zero
“diagonale”
"0"
Uno
Logica a porte
nel caso ad
1 ingresso
"1"
Zero
"0"
Realizzazione ad interruttori
© R.H. Katz 4-25
Logica ad interruttori
Esempio complesso logica ad interruttori
Contemporary Logic Design
Logica progr. e ad interruttori
Funzionamento del conta-1 ad 1 ingresso
"0"
"0"
One
"0"
"0"
One
"1"
Zero
"0"
"1"
Zero
"0"
Ingresso a 0, interruttori diretti chiusi
© R.H. Katz 4-26
Contemporary Logic Design
Logica progr. e ad interruttori
Logica ad interruttori
Esempio complesso logica ad interruttori
Funzionamento del conta-1 ad 1 ingresso
"1"
"0"
"1"
One
Zero
"1"
"0"
One
"1"
Zero
"0"
"0"
Ingresso ad 1, interruttori diagonali chiusi
© R.H. Katz 4-27
Logica ad interruttori
Esempio complesso logica ad interruttori
Contemporary Logic Design
Logica progr. e ad interruttori
Estensione al caso a 2 ingressi
I 1 I2
0
0
1
1
0
1
0
1
Zero Uno
1
0
0
0
0
1
1
0
Due
0
0
0
1
I1
I2
Zero
Uno
Due
Realizzazione con logica tradizionale
© R.H. Katz 4-28
Contemporary Logic Design
Logica progr. e ad interruttori
Logica ad interruttori
Esempio complesso logica ad interruttori
Realizzazione ad interruttori del conta-1 a 2 ingressi
I2
I2
I1
"0"
Due
"0"
"1"
"0"
"0"
Uno
Zero
Due
Uno
Zero
"0"
I1
"0"
Uno
Uno
Due circuiti ad 1 ingresso in cascata!
"1"
"0"
Zero
Zero
"0"
© R.H. Katz 4-29
Logica ad interruttori
Esempio complesso logica ad interruttori
Funzionamento del circuito a 2 ingressi
"0"
"0"
"0"
"0"
"1"
"0"
"0"
One
"1"
"0"
"0"
Zero
"1"
"0"
"1"
"0"
"0"
"1"
"0"
"0"
"1"
"0"
"0"
One
Zero
"0"
Contemporary Logic Design
Logica progr. e ad interruttori
"0"
One
Zero
"0"
"1"
"0"
"0"
"1"
"0"
"1"
"1"
"0"
"0"
"1"
"0"
"0"
One
Zero
"1"
"0"
"0"
"0"
© R.H. Katz 4-30
Contemporary Logic Design
Logica progr. e ad interruttori
Multiplexer/selettori
Uso di multiplexer/selettori
Connessioni multi-punto
A0
Sa
A1
B0
B1
MUX
MUX
A
B
Molti ingressi
Sb
Sum
Ss
DEMUX
S0
Molte destinazioni
S1
© R.H. Katz 4-31
Contemporary Logic Design
Logica progr. e ad interruttori
Multiplexer/selettori
Idea generale
2
n
ingressi di dato, n ingressi di controllo, 1 uscita
n
Usati per collegare 2n punti ad un singolo punto
I segnali di controllo sono l’indice binario dell’ingresso selezionato
Z = A' I 0 + A I 1
A
0
1
Forma funzionale
Forma logica
Z
I0
I1
I1
0
0
0
0
1
1
1
1
I0
0
0
1
1
0
0
1
1
A
0
1
0
1
0
1
0
1
Z
0
0
1
0
0
1
1
1
Due forme alternative
per la tabella di verita’ di un Mux 2:1
© R.H. Katz 4-32
Contemporary Logic Design
Logica progr. e ad interruttori
Multiplexer/selettori
I0
2:1
mux
I1
Z = A' I 0 + A I 1
Z
A
I0
I1
I2
I3
4:1
mux
A
I0
I1
I2
I3
Z
B
8:1
mux
I4
I5
I6
I7
Z = A' B' I0 + A' B I1 + A B' I2 + A B I3
Z
Z = A' B' C' I0 + A' B' C I1 + A' B C' I2 + A' B C I3 +
A B' C' I4 + A B' C I5 + A B C' I6 + A B C I7
In generale,
A
B
C
z  k  0 m k i k
2 n 1
in notazione a mintermini per un Mux 2n :1
© R.H. Katz 4-33
Contemporary Logic Design
Logica progr. e ad interruttori
Multiplexer/selettori
Realizzazioni alternative
A
B
I0
Z
I1
I2
I3
Realizzazione
a porte di
mux 4:1
trentasei transistor
Realizzazione a
transmission gate
di mux 4:1
venti transistor
© R.H. Katz 4-34
Contemporary Logic Design
Multiplexer/Selector
Logica progr. e ad interruttori
Multiplexer grandi realizzati con molti mux piccoli in cascata
I0
I1
I2
I3
0 4:1
1 mux
2
3S S
I4
I5
I6
I7
0 4:1
1 mux
2
3 S1 S0
1
B
I segnali di controllo B e C
scelgono uno di I0-I3 e I4-I7
8:1
mux
0 2:1
mux
1 S
0
Z
Il segnale di controllo A sceglie quale
mux (in alto o in basso) controlla Z
I0
0
I1
1 S
C
C
A
I2
0
I3
1 S
0
1
Realizzazioni diverse di un mux 8:1
C
I4
0
I5
1 S
Z
2
3 S0
C
I6
0
I7
1 S
A
S1
B
C
© R.H. Katz 4-35
Contemporary Logic Design
Logica progr. e ad interruttori
Multiplexer/Selector
Multiplexer/selettori come blocchi logici di uso generale
Un multiplexer 2 n-1 :1 puo’ realizzare qualsiasi funzione di n variabili
n-1 variabili di controllo; l’ultima e’ usata come ingresso al mux
Esempio:
F(A,B,C) = m0 + m2 + m6 + m7
= A' B' C' + A' B C' + A B C' + A B C
= A' B' (C') + A' B (C') + A B' (0) + A B (1)
1
0
1
0
0
0
1
1
0
1
2
3
4
5
6
7
F
8:1
MUX
S2 S1 S0
A
B
C
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
F
1
0
1
0
0
0
1
1
C
C
0
C
C
0
1
0
1
2
3
F
4:1
MUX
S1
S0
A
B
1
"Lookup Table"
© R.H. Katz 4-36
Contemporary Logic Design
Logica progr. e ad interruttori
Multiplexer/Selector
Generalizzazione
I 1 I 2 … In
n-1 variabili
di controllo
una variabile
di dato
…
0
1
F
0
0
0
1
1
0
1
1
Quattro possibili
configurazioni delle
righe della tabella
di verita’
0
In
In
1
Possono essere
espresse in
funzione di In, 0, 1
Esempio:
G(A,B,C,D) puo’ essere realizzata da un mux 8:1:
Mappa di
Karnaugh con
A,B,C come
controllo
Realizzazione
a multiplexer
Riduce il numero di
integrati (non di porte)
1
D
0
1
D
D
D
D
0
1
2
3
4
5
6
7
G
8:1
mux
S2
A
S1
S0
B
C
© R.H. Katz 4-37
Contemporary Logic Design
Logica progr. e ad interruttori
Decodificatori/Demultiplexer
Decodificatore: un ingresso di dato, n ingressi di controllo, 2n uscite
Ingressi di controllo (selezione S) rappresentano l’indice binario
dell’uscita a cui l’ingresso e’ collegato
L’ingresso di dato di solito si chiama "enable" (G)
Decodificatore 1:2 :
O0 = G • S; O1 = G • S
Decodificatore 2:4 :
O0 = G • S0 • S1
Decodificatore 3:8 :
O0 = G • S0 • S1 • S2
O1 = G • S0 • S1 • S2
O2 = G • S0 • S1 • S2
O1 = G • S0 • S1
O3 = G • S0 • S1 • S2
O2 = G • S0 • S1
O4 = G • S0 • S1 • S2
O3 = G • S0 • S1
O5 = G • S0 • S1 • S2
O6 = G • S0 • S1 • S2
O7 = G • S0 • S1 • S2
© R.H. Katz 4-38
Contemporary Logic Design
Logica progr. e ad interruttori
Decodificatori/Demultiplexer
Realizzazioni altrnative
G
Select
/G
Output0 Select
Output0
Output1
Output1
Decodificatore 1:2, Enable attivo alto
Decodificatore 1:2, Enable attivo basso
/G
G
Select0
Output0
Output0
Output1
Output1
Output2
Output2
Output3
Output3
Select1
Decodificatore 2:4, Enable attivo alto
Select0
Select1
Decodificatore 2:4, Enable attivo basso
© R.H. Katz 4-39
Contemporary Logic Design
Logica progr. e ad interruttori
Decodificatori/Demultiplexer
Realizzazioni ad interruttori
Select
Select
G
G
Output
0
Select
Select
Output
0
Select
Select
"0"
Select
Output
1
Select
Select
Output
1
Select
Realizzazione sbagliata
Select
Non tutte le uscite sono sempre pilotate
"0"
Select
Realizzazione corretta del decodificatore 1:2
© R.H. Katz 4-40
Contemporary Logic Design
Logica progr. e ad interruttori
Decodificatori/Demultiplexer
Realizzazione ad interruttori del decodificatore 2:4
Select
G
0
Select
1
Output
0
Funzionamento del decodificatore 2:4
"0"
S0 = 0, S1 = 0
"0"
G
Output
1
"0"
un cammino diretto
tre cammini diagonali
"0"
G
Output
2
"0"
"0"
G
Output
3
"0"
"0"
© R.H. Katz 4-41
Decodificatore/Demultiplexer
Decodificatore come blocco logico funzionale
Enb
3:8
dec
S2
A
S1
B
S0
0
1
2
3
4
5
6
7
ABC
ABC
ABC
ABC
ABC
ABC
ABC
ABC
Contemporary Logic Design
Logica progr. e ad interruttori
Il decodificatore genera il
mintermine appropriato
dati i segnali di controllo
C
Esempio:
F1 = A' B C' D + A' B' C D + A B C D
F2 = A B C' D' + A B C
F3 = (A' + B' + C' + D')
© R.H. Katz 4-42
Decodificatore/Demultiplexer
Contemporary Logic Design
Logica progr. e ad interruttori
Decodificatore come blocco logico funzionale
Enb
4:16
dec
S3 S2 S1 S0
A
B C
D
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
A B CD
A B CD
A B CD
A B CD
A B CD
A B CD
A B CD
A B CD
A B CD
A B CD
A B CD
A B CD
A B CD
A B CD
A B CD
A B CD
F1
F2
F3
Se enable e’ attivo basso, usate porte NAND!
© R.H. Katz 4-43
Contemporary Logic Design
Logica progr. e ad interruttori
Multiplexer/Decodificatori
Realizzazioni alternative di mux 32:1
I7
I6
I5
I4
I3
I2
I1
I0
C
D
E
EN
I31 7 151
EN 1 6
5
1
Y5
I23 7 151
41 4
6
3
W 6
EN 1 5 52 2
1
3
5
1
I15 7 151
41 4
40Y 6
1
52 3
W
EN 1 6
5
2
3
3 1 Y 19
1
5C
7 151
41 4
B
4 0W 1 6A
6 5 3
0
22
5
9
1
3 1 Y 15 C
4
4 0 1 6B
13
W0 A
2
9
1
1 1 C
B
0 1A
S2 0
1
S1
S0
1 1G 1Y 3
1391Y 2
A 3 1B 1Y 1
2 1A 1Y 0
B
15 2G 2Y 3
2Y 2
13 2B 2Y 1
14 2A 2Y 0
1 GA
3 A3
4 A2
5 A1
6 A0
13
12
11
10
1
5
153
YA 7
B3
B2
YB 9
B1
B0
GBS1 SO
2 14
A B
Solo con multiplexer
F(A, B, C, D, E)
7
6
5
4
9
10
11
12
7 EN 146
5
154
I31 7 151
1
3
6
7 EN
22
I5 145
31 Y 5
154
I23 7 I4151
40
3
7 EN 146 I3 1
W 6
I5 5 I2 2 2
9C
154 I1 3 1 Y 10
5B
I15 7 I4151
3 I0 4 0 W 116A
7 EN 146 I3 1
I5 5 I2 22 C 9 C
S2
154 I1 31Y 10
5B
I7 7 I4151
S1
1
4
D
I0
0
I6 6 I3 3
W 116A
I5 5 I2 2 2 C 9C
S2
E S0
5B
I4 4 I1 3 1 Y 10
S1
4
D
I3 3 I0 0 W 116A
I2 2 C 9 S2
E S0
I1 1 10C
B
S1
D
I0 0 11A
C S2E S0
D S1
E S0
F(A, B, C, D, E)
Multiplexer + Decodificatore
© R.H. Katz 4-44
Contemporary Logic Design
Logica progr. e ad interruttori
Multiplexer/Decodificatori
Decodificatore 5:32
\EN
S4
S3
\EN
\Y31
Decodificatore
.
5:32
.
.
1G
1Y 3
139 1Y 2
1B 1Y 1
1A 1Y 0
2G 2Y 3
2Y 2
2B 2Y 1
2A 2Y 0
S2
S1
S0
G1
G2A
G2B
Y7
Y6
Y5
Y4
138 Y 3
Y2
C
Y1
B
Y0
A
\Y 31
\Y 30
\Y 29
\Y 28
\Y 27
\Y 26
\Y 25
\Y 24
Y7
Y6
Y5
Y4
138 Y 3
Y2
C
Y1
B
Y0
A
\Y 23
\Y 22
\Y 21
\Y 20
\Y 19
\Y 18
\Y 17
\Y 16
Y7
G1
G2A Y 6
G2B Y 5
138 Y 4
Y3
C
Y2
B
Y1
A
Y0
\Y 15
\Y 14
\Y 13
\Y 12
\Y 11
\Y 10
\Y 9
\Y 8
G1 Y 7
G2A Y 6
G2B Y 5
138 Y 4
Y3
Y2
C
Y1
B
Y0
A
\Y 7
\Y 6
\Y 5
\Y 4
\Y 3
\Y 2
\Y 1
\Y 0
G1
G2A
G2B
S2
S1
S0
\Y0
S4 S3 S2 S1 S0
S2
S1
S0
S2
S1
S0
© R.H. Katz 4-45
Contemporary Logic Design
Tri-State ed Open-Collector
Logica progr. e ad interruttori
Il terzo stato
Stati logici: "0", "1"
Stato Don't Care/Don't Know: "X" (ha un valore definito nel circuito!)
Terzo stato: "Z" — alta impedenza — resistenza infinita, non connesso
Porte tri-state: valori di uscita "0", "1", and "Z"
ingresso di abilitazione (Output Enable, OE)
A OE F
X 0 Z
0 1 0
1 1 1
Quando OE e’ alto, la porta e’ un "buffer” non invertente
Quando OE e’ basso, e’ come se la porta si
staccasse dall’uscita!
Permette di connettere piu’ di una porta ad un solo filo
di uscita, purche’ una sola abbia l’abilitazione attiva
in un dato momento
100
Forma d’onda del
buffer non invertente
A
OE
F
"Z"
"Z"
© R.H. Katz 4-46
Contemporary Logic Design
Logica progr. e ad interruttori
Tri-state ed Open Collector
Come usare porte tri-state per realizzare un multiplexer economico:
Input
F
0
OE
Input
1
OE
Quando SelectInput e’ ad 1,
Input1 e’ collegato ad F
Quando SelectInput e’ a 0,
Input0 e’ collegato ad F
Si comporta come un mux 2:1
SelectInput
© R.H. Katz 4-47
Contemporary Logic Design
Logica progr. e ad interruttori
Tri-state ed Open Collector
Esempio differente di tri-state
Input
F
0
OE
Input
Tri-state con abilitazione
attiva bassa e buffer
invertenti
1
1
OE
SelectInput
F
I
OE
Realizzazione ad
interruttori di una
porta tri-state
0
© R.H. Katz 4-48
Tri-State ed Open Collector
Un’altra realizzazione del multiplexer 4:1
\EN 1
S1
S0
1G 1Y 3
1Y 2
3 139
1B 1Y 1
2
1A 1Y 0
15
7
6
5
4
Contemporary Logic Design
Logica progr. e ad interruttori
D3
9
2G 2Y 3 10
2Y 2
13 2B
2Y 1 11
14 2A
2Y 0 12
D2
D1
D0
Decodificatore + 4 porte tri-state
© R.H. Katz 4-49
Tri-state ed Open Collector
Contemporary Logic Design
Logica progr. e ad interruttori
Open Collector
Un altro modo di collegare molte porte ad uno stesso filo
La porta puo’ solo pilotare verso lo 0 la sua uscita, non puo’
pilotarla ad 1
Il valore 1 e’ ottenuto usando una resistenza (“pull up”)
+5 V
Pull-up resistor
Open-c ollector
NAND gate
F
0V
A
B
Porte NAND OC
Wired AND:
Se A e B sono chiusi, l’uscita e’ pilotata a 0
Se C e D sono chiusi, l’uscita e’ pilotata a 0
Se una porta e’ a 0 e l’altra ad 1, lo 0 vince
Se entrambe le porte hanno un interruttore
aperto, l’uscita e’ portata ad 1 dalla resistenza
Quindi le due funzioni NAND sono in “AND”!
© R.H. Katz 4-50
Contemporary Logic Design
Logica progr. e ad interruttori
Tri-state ed Open Collector
Multiplexer 4:1
\EN 1
Y3
G
139 Y 2
3
Y1
S1
B
2
A
Y0
S0
+5V
7
6
5
4
\I3
OR
\I2
OR
\I1
OR
\I0
OR
F
Decodificatore + 4 porte Open Collector
© R.H. Katz 4-51
Contemporary Logic Design
Logica progr. e ad interruttori
Memorie a sola lettura
Read Only Memory (ROM): matrice bidimensionale di 0 ed 1
Una riga e’ chiamata “parola” (word), l’indice e’ chiamato “indirizzo”
La “larghezza di parola” e’ anche detta numero di bit o wordsize
L’indirizzo e’ l’ingresso, la parola selezionata e’ l’uscita
+5V +5V +5V +5V
n
2 -1
Dec
i
Word Line 0011
j
Word Line 1010
0
0
n-1
Indirizzo
Bit Lines
Organizzazione interna
© R.H. Katz 4-52
Contemporary Logic Design
Logica progr. e ad interruttori
Memorie a sola lettura
Esempio: realizzazione di logica combinatoria
F0 = A' B' C + A B' C' + A B' C
F1 = A' B' C + A' B C' + A B C
F2 = A' B' C' + A' B' C + A B' C'
F3 = A' B C + A B' C' + A B C'
A
0
0
0
0
1
1
1
1
Indirizzo
ROM
8 parole di
¥
4 bit
A B C
Indirizzo
F0
F1
F2
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
F0
0
1
0
0
1
1
0
0
F1
0
1
1
0
0
0
0
1
F2
1
1
0
0
1
0
0
0
F3
0
0
0
1
1
0
1
0
Contenuto di
una parola
F3
Uscite
© R.H. Katz 4-53
Contemporary Logic Design
Logica progr. e ad interruttori
Memorie a sola lettura
Simili ad una
PLA con piano AND
completamente
decodificato
(mintermini)!
Matrice di memoria
Decodificatore
2n word
line
n ingressi di
indirizzo
2n parole di
m bit
m uscite
ROM o PLA?
ROM va bene quando
(1) c’e’ poco tempo per progettare (non c’e’ tempo per minimizzare)
(2) servono quasi tutte le combinazioni di ingresso (convertitori di codice)
(3) non c’e’ molta condivisione di termini tra le uscite
Problemi della ROM: dimensione raddoppia ad ogni ingresso in piu’, non
usa i don’t care
PLA/PAL va bene quando
(1) si puo’ usare un programma CAD come espresso
(2) ci sono pochi mintermini ad 1
(3) molti mintermini sono condivisi tra le uscite
Problema della PAL: vincolo sugli ingressi nel piano OR
© R.H. Katz 4-54
Contemporary Logic Design
Logica progr. e ad interruttori
Memorie a sola lettura
2764 EPROM
8K x 8
2764
VPP
PGM
A12
A11
A10 O7
A9
O6
A8
O5
A7
O4
A6
O3
A5
O2
A4
O1
A3
O0
A2
A1
A0
CS
OE
2764
VPP
PGM
A12
A11
A10 O7
A9 O6
A8 O5
A7 O4
A6 O3
A5 O2
A4 O1
A3 O0
A2
A1
A0
CS U3
OE
+
A13
/OE
A12:A0
D15:D8
D7:D0
+
2764
VPP
PGM
A12
A11
A10 O7
A9 O6
A8 O5
A7 O4
A6 O3
A5 O2
A4 O1
A3 O0
A2
A1
A0
CS U1
OE
2764
VPP
PGM
A12
A11
A10 O7
A9 O6
A8 O5
A7 O4
A6 O3
A5 O2
A4 O1
A3 O0
A2
A1
A0
CS U2
OE
+
+
2764
VPP
PGM
A12
A11
A10 O7
A9 O6
A8 O5
A7 O4
A6 O3
A5 O2
A4 O1
A3 O0
A2
A1
A0
CS U0
OE
Sottosistema
16K x 16
© R.H. Katz 4-55
Specifiche informali di reti combinatorie
Contemporary Logic Design
Logica progr. e ad interruttori
Metodo generale di progetto
1. Capire il problema
che cosa deve fare il circuito?
scrivere gli ingressi (dati, controllo) e le uscite
disegnare uno schema a blocchi
2. Formulare il problema con una tabella di verita’ o un’altra
rappresentazione opportuna (diagramma con forme d’onda)
3. Scegliere la tecnologia di realizzazione
ROM, PAL, PLA, Mux, Decodificatore + OR, porte logiche
4. Usare il metodo opportuno di realizzazione
mappe di Karnaugh, espresso, misII
© R.H. Katz 4-56
Specifiche informali di reti combinatorie
Controllo di linea di produzione
Contemporary Logic Design
Logica progr. e ad interruttori
Descrizione del problema
Barre di lunghezza variabile (+/-10%) su nastro trasportatore
Braccio meccanico spinge barre accettabili (+/-5%) da un lato
Un secondo braccio spinge quelle troppo lunghe dall’altro
Le barre troppo corte rimangono sul nastro
3 sensori di luce (lampadina + fotocellula)
Progettare la rete logica combinatoria che controlla i bracci
Capire il problema
Ingressi: 3 sensori, uscite: 2 segnali di controllo dei bracci
Supponiamo che i sensori producano “1” quando sono bloccati,
altrimenti “0”
Chiamare i sensori A, B, C
Disegnare una figura!
© R.H. Katz 4-57
Specifiche informali di reti combinatorie
Controllo di linea di produzione
Contemporary Logic Design
Logica progr. e ad interruttori
+10%
+ 5%
+ 5%
Spec
Spec
Spec
- 5%
- 5%
- 10%
barra
troppo
lunga
barra
accettabile
barra
troppo
corta
Dove mettere i sensori A, B, e C per distinguere i tre casi?
Supponiamo che A identifichi il lato anteriore della barra
sul nastro trasportatore
© R.H. Katz 4-58
Contemporary Logic Design
Logica progr. e ad interruttori
Specifiche informali di reti combinatorie
Controllo di linea di produzione
A
Specifica
- 5%
accettabile
lunga
corta
Specifica
+ 5%
B
C
A e B ad una distanza pari alla specifica - 5%
A e C ad una distanza pari alla specifica +5%
© R.H. Katz 4-59
Specifiche informali di reti combinatorie
Controllo di linea di produzione
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
Funzione
X
X
X
X
corta
X
accettabile
lunga
Contemporary Logic Design
Logica progr. e ad interruttori
Tabella di verita’ e realizzazione
logica adesso sono facili
”troppo lunga" = A B C
(3 sensori bloccati)
”accettabile" = A B C'
(primi 2 sensori bloccati)
© R.H. Katz 4-60
Contemporary Logic Design
Logica progr. e ad interruttori
Specifiche informali di reti combinatorie
Controllo display a 7 segmenti in BCD
Capire il problema:
ingressi: cifra BCD a 4 bit
uscite: segnali di controllo del display
4 ingressi A, B, C, D
7 uscite C0 — C6
C0 C1 C2 C3 C4 C5 C6
C0
C5
C6
C4
C3
7-Segment
dis play
C1
C2
BCD-to-7-s egment
c ontrol s ignal
dec oder
C C C C C C C
0 1 2 3 4 5 6
A
B
C
D
Schema a blocchi
© R.H. Katz 4-61
Specifiche informali di reti combinatorie
Controllo display a 7 segmenti in BCD
Contemporary Logic Design
Logica progr. e ad interruttori
Formulare il problema come tabella di verita’
Scegliere la tecnologia di realizzazione
se ROM, basta la tabella di verita’
i don't care implicano che una PAL/PLA puo’
essere meglio
Seguire la tecnica di progetto:
mappa di Karnaugh a mano
oppure
espresso
© R.H. Katz 4-62
Contemporary Logic Design
Logica progr. e ad interruttori
Specifiche informali di reti combinatorie
Controllo display a 7 segmenti in BCD
A
AB
00
01
11
10
00
1
0
X
1
01
0
1
X
1
CD
A
AB
00
01
11
10
00
1
1
X
1
01
1
0
X
1
CD
D
11
1
1
X
11
1
1
X
1
1
X
X
00
1
1
X
1
01
1
1
X
1
11
1
1
X
X
10
0
1
X
X
C
10
1
0
X
X
B
K-map for C0
K-map for C1
K-map for C2
A
A
AB
01
11
10
00
1
0
X
1
01
0
1
X
0
11
1
0
X
X
00
01
11
10
00
1
0
X
1
01
0
0
X
0
11
0
0
X
X
CD
C
X
X
00
01
11
10
00
1
1
X
1
01
0
1
X
1
11
0
0
X
X
CD
1
1
X
X
00
01
11
10
00
0
1
X
1
01
0
1
X
1
11
1
0
X
X
10
1
1
X
X
CD
D
D
C
10
A
AB
D
C
1
A
AB
D
1
10
B
00
10
11
B
AB
CD
01
D
X
C
10
00
CD
D
X
C
A
AB
C
10
0
1
X
X
B
B
B
B
K-map for C3
K-map for C 4
K-map for C5
K-map for C6
C0 = A + B D + C + B' D'
C1 = A + C' D' + C D + B'
C2 = A + B + C' + D
14 termini prodotto distinti
C3 = B' D' + C D' + B C' D + B' C
C4 = B' D' + C D
C5 = A + C' D' + B D' + B C'
C6 = A + C D' + B C' + B' C
© R.H. Katz 4-63
Specifiche informali di reti combinatorie
Controllo display
a 7 segmenti in BCD
Contemporary Logic Design
Logica progr. e ad interruttori
Incr ement
1
0
First
fuse
number s
4
8
12
16
20
24
28
0
32
64
96
128
160
192
224
19
256
288
320
352
384
416
448
480
18
512
544
576
608
640
672
704
736
17
768
800
832
864
896
928
960
992
16
1024
1056
1088
1120
1152
1184
1216
1248
15
1280
1312
1344
1376
1408
1440
1472
1504
14
1536
1568
1600
1632
1664
1696
1728
1760
13
1792
1824
1856
1888
1920
1952
1984
2016
12
2
3
16H8PAL
basta per realizzare
le funzioni
4
5
6
7
8
9
11
Note: Fuse number = first fuse number + incr ement
© R.H. Katz 4-64
Contemporary Logic Design
Logica progr. e ad interruttori
Specifiche informali di reti combinatorie
Controllo display
a 7 segmenti in BCD
Increment
012 3
4
8
10
12
14
16
18
20
24
27
1
2
Fir st
fuse
numbers
14H8PAL
non basta per
realizzare le
funzioni
23
0
28
56
84
22
1
112
140
21
168
196
20
224
252
19
280
308
18
336
364
17
392
420
16
448
476
504
532
15
3
4
5
6
7
8
9
10
14
11
13
N ote: Fuse number = fir st fuse number + i ncrement
© R.H. Katz 4-65
Specifiche informali di reti combinatorie
Controllo display a 7 segmenti in BCD
.i 4
.o 7
.ilb a b c d
.ob c0 c1 c2 c3 c4 c5 c6
.p 16
0000 1111110
0001 0110000
0010 1101101
0011 1111001
0100 0110011
0101 1011011
0110 1011111
0111 1110000
1000 1111111
1001 1110011
1010 ------1011 ------1100 ------1101 ------1110 ------1111 ------.e
.i 4
.o 7
.ilb a b c d
.ob c0 c1 c2 c3 c4 c5 c6
.p 9
-10- 0000001
-01- 0001001
C0
-0-1 0110000
-101 1011010
C1
--00 0110010
C2
--11 1110000
C3
-0-0 1101100
C4
1--- 1000011
-110 1011111
C5
.e
C6
uscita di
espresso
Contemporary Logic Design
Logica progr. e ad interruttori
= B C' D + C D + B' D' + B C D' + A
= B' D + C' D' + C D + B' D'
= B' D + B C' D + C' D' + C D + B C D'
= B C' D + B' D + B' D' + B C D'
= B' D' + B C D'
= B C' D + C' D' + A + B C D'
= B' C + B C' + B C D' + A
9 termini prodotto distinti!
63 letterali, 20 porte
ingresso di
espresso
© R.H. Katz 4-66
Specifiche informali di reti combinatorie
Controllo display a 7 segmenti in BCD
Contemporary Logic Design
Logica progr. e ad interruttori
Realizzazione a PLA
© R.H. Katz 4-67
Specifiche informali di reti combinatorie
Controllo display a 7 segmenti in BCD
Contemporary Logic Design
Logica progr. e ad interruttori
Realizzazione multi-livello
X = C' + D'
Y = B' C'
C0 = C3 + A' B X' + A D Y
C1 = Y + A' C5' + C' D' C6
C2 = C5 + A' B' D + A' C D
C3 = C4 + B D C5 + A' B' X'
52 letterali
33 porte
Abbiamo usato male
i don’t care
C4 = D' Y + A' C D'
C5 = C' C4 + A Y + A' B X
C6 = A C4 + C C5 + C4' C5 + A' B' C
© R.H. Katz 4-68
Contemporary Logic Design
Logica progr. e ad interruttori
Specifiche informali di reti combinatorie
Barrel shifter ad 8 ingressi
Specifica:
Ingressi: D7, D6, …, D0
Uscite: O7, O6, …, O0
Controlli: S2, S1, S0
Rotazione (“shift”) a destra
del numero binario in ingresso
per un numero specificato
di posizioni
Capire il problema:
D7
D6
D5
D4
D3
D2
D1
D0
.
.
.
O7
O6
O5
O4
O3
O2
O1
O0
S2, S1, S0 = 0 0 0
D7
D6
D5
D4
D3
D2
D1
D0
.
.
.
O7
O6
O5
O4
O3
O2
O1
O0
S2, S1, S0 = 0 0 1
D7
D6
D5
D4
D3
D2
D1
D0
.
.
.
O7
O6
O5
O4
O3
O2
O1
O0
S2, S1, S0 = 0 1 0
© R.H. Katz 4-69
Contemporary Logic Design
Logica progr. e ad interruttori
Specifiche informali di reti combinatorie
Barrel shifter ad 8 ingressi
Tabella funzionale
Equazioni
logiche
S2 S1 S0
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
O7
D7
D6
D5
D4
D3
D2
D1
D0
O6
D6
D5
D4
D3
D2
D1
D0
D7
O5
D5
D4
D3
D2
D1
D0
D7
D6
O4
D4
D3
D2
D1
D0
D7
D6
D5
O3
D3
D2
D1
D0
D7
D6
D5
D4
O2
D2
D1
D0
D7
D6
D5
D4
D3
O1
D1
D0
D7
D6
D5
D4
D3
D2
O0
D0
D7
D6
D5
D4
D3
D2
D1
O7 = S2' S1' S0' D7 + S2' S1' S0 D6 + … + S2 S1 S0 D0
O6 = S2' S1' S0' D6 + S2' S1' S0 D5 + … + S2 S1 S0 D7
O5 = S2' S1' S0' D5 + S2' S1' S0 D4 + … + S2 S1 S0 D6
O4 = S2' S1' S0' D4 + S2' S1' S0 D3 + … + S2 S1 S0 D5
O3 = S2' S1' S0' D3 + S2' S1' S0 D2 + … + S2 S1 S0 D4
O2 = S2' S1' S0' D2 + S2' S1' S0 D1 + … + S2 S1 S0 D3
O1 = S2' S1' S0' D1 + S2' S1' S0 D0 + … + S2 S1 S0 D2
O0 = S2' S1' S0' D0 + S2' S1' S0 D7 + … + S2 S1 S0 D1
© R.H. Katz 4-70
Contemporary Logic Design
Logica progr. e ad interruttori
Specifiche informali di reti combinatorie
Barrel shifter ad 8 ingressi
Realizzazione molto semplice a porte logiche OPPURE
8 multiplexer 8:1 (troppi fili!) OPPURE
Logica ad interruttori
S000
O7
O6
O5
O4
O3
O2
O1
O0
S000
O6
O5
O4
O3
O2
O1
O0
D7
D7
S001
D6
O7
S001
S001
D6
S001
S010
S010
D5
D5
S011
D4
S011
D4
D3
S100
D3
S100
D2
S101
D2
S101
D1
S110
D1
S110
S111
S111
D0
D0
Interruttori agli incroci
Barrel shifter con tutte le
combinazioni possibili
© R.H. Katz 4-71
Riassunto del capitolo
Contemporary Logic Design
Logica progr. e ad interruttori
• Blocchi logici complessi:
PAL/PLA
Multiplexer/selettori
Decodificatori/demultiplexer
ROM
Tri-state, Open Collector
• Specifiche informali di problemi logici:
Capire il problema
Formularlo come tabella di verita’
Scegliere la tecnologia di realizzazione
Realizzare usando la procedura opportuna
© R.H. Katz 4-72
Scarica

Capitolo 4