Richiami di reti logiche - Corsi di Laurea a Distanza

05EKL- Progetto di Circuiti
Digitali
Tutore: Federico Quaglio
[email protected]
011--564 4004 (4004
011
(4004))
Richiami di Reti Logiche
Tutoraggio #1
1
Sommario
•
•
•
•
•
•
Richiami di algebra booleana
Mappe di Karnaugh
Coperture SP & PS
Alee statiche e loro minimizzazione
Circuiti sequenziali semplici
Ulteriori Circuiti
Sommario
•
•
•
•
•
•
Richiami di algebra booleana
Mappe di Karnaugh
Coperture SP & PS
Alee statiche e loro minimizzazione
Circuiti sequenziali semplici
Ulteriori Circuiti
2
Richiami di Algebra Booleana
•
•
•
•
Negazione: A={0,1} B=NOT(A)={1,0}
Prodotto logico: AND; C=A*B
C=1 ó A=B=1
Somma logica: OR; C=A+B
C=0 ó A=B=0
OR Esclusivo: EXOR; C=A + B
C=1 ó A = B
Richiami di Algebra Booleana
Proprietà fondamentali:
A*0=0; A+1=1; A*A=A; A+A=A
A*(NOT(A))=0; A+(NOT(A))=1
A+B=B+A; A*B=B*A
(A+B)+C=A+(B+C);(A*B)*C=A*(B*C)
A+A*B=A; A*(A+B)= A
NOT(A+B)=NOT(A)*NOT(B)
NOT(A*B)=NOT(A)+NOT(B)
NOT(NOT(A))=A
3
Sommario
•
•
•
•
•
•
Richiami di algebra booleana
Mappe di Karnaugh
Coperture SP & PS
Alee statiche e loro minimizzazione
Circuiti sequenziali semplici
Ulteriori Circuiti
Mappe di Karnaugh
•
•
•
Servono a minimizzare espressioni logiche
Copertura a Somma di Prodotti (SP)
f(A,B,C)=(A*B*C)+(A’BC)+ etc…
Copertura a Prodotti di Somme (PS)
f(A,B,C)=(A+B+C)(A’+B+C)etc…
4
Mappe di Karnaugh
Metodo grafico molto veloce
Adatto per minimizzazione manuale
Complessità esponenziale con numero di
variabili di ingresso
Al massimo fino a 5-6 ingressi
•
•
•
•
Mappe di Karnaugh
X
0
Y
XY
W
1
0
0
2
1
3
00
11
10
0
1
U=…
01
1
XY
WZ
00
01
11
10
00
01
11
0
2
6
4
1
3
7
5
U=…
10
0
4
12
8
1
5
13
9
3
7
15
11
2
6
14
10
U=…
5
Da tabella di verità a Mappa di
Karnaugh
•
Tabella di verità
ABC U
•
0
0
0
0
1
1
1
1
C
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
Mappa
AB
00
0
0
1
0
01
0
1
0
1
11
2
3
1
1
10
6
7
0
1
4
5
U
Regola per la copertura
•
•
Iniziare a coprire gli ‘1’ (o gli ‘0’) non
ancora coperti
Massimizzare il “CUBO” includendo il
maggior numero di ‘1’ (o ‘0’)
6
Esempio
AB
AB
00
C
0
01
0
0
0
1
11
0
1
2
1
1
10
0
6
1
3
4
1
7
5
BC
AC
Mappe particolari
A,B
A
0
B
0
0
1
1
C,D
1
1
0
2
EXOR
0
1
00
00
0
01
1
11
0
C
00
0
0
1
1
01
11
1
0
0
2
0
1
10
10
1
10
0
1
4
0
1
12
1
5
1
3
0
0
9
1
15
1
6
8
13
7
0
2
11
11
0
14
10
1
6
1
3
1
0
3
A,B
01
4
0
7
5
7
Sommario
•
•
•
•
•
Richiami di algebra booleana
Mappe di Karnaugh
Coperture SP & PS
Alee Statiche e loro minimizzazione
Circuiti sequenziali semplici
Copertura SP
•
•
•
•
Si coprono gli ‘1’
Rimangono solo ingressi che non sono
“variati” dentro uno stesso cubo
Ingresso vale ‘1’
Compare in uscita il
suo valore diretto (A)
Ingresso vale ‘0’
Compare in uscita il
suo valore negato (A’)
8
Copertura PS
•
•
Si coprono gli ‘0’
Comportamento duale a copertura SP
Esempio di rete combinatoria
Tabella di verità
#
A
B
C
D
U
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
9
Mappa di Karnaugh
A,B
C,D
00
00
1
01
1
11
0
10
0
01
1
0
11
10
0
0
4
1
1
12
1
5
1
7
1
2
1
13
1
3
8
0
15
0
6
9
11
0
14
10
Copertura minima SP
A,B
C,D
A’C’
00
00
1
01
1
11
0
10
0
01
1
0
1
0
0
12
1
5
1
3
1
1
C’D
9
0
15
0
6
8
13
7
1
2
10
4
1
A’B
11
11
BD
0
14
10
U=A’B+A’C’+BD+C’D
10
Copertura minima SP
C,D
B+C’
A,B
00
00
1
01
1
11
0
10
0
01
1
0
10
0
0
4
1
1
12
1
5
1
3
1
1
9
A’+D
0
15
0
6
8
13
7
1
2
11
11
0
14
10
U=(A’+D)(B+C’)
Sommario
•
•
•
•
•
•
Richiami di algebra booleana
Mappe di Karnaugh
Coperture SP & PS
Alee Statiche e loro minimizzazione
Circuiti sequenziali semplici
Ulteriori circuiti
11
Esempio:
•
Sia data la tabella di
verità:
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
0
C
0
1
0
1
0
1
0
1
U
0
0
1
0
0
1
1
1
•
Dalla mappa di
Karnaugh si ricava
A,B
C
BC’
00
0
0
1
0
01
11
1
0
1
2
0
1
10
0
6
1
3
4
1
7
5
AC
U=AC+BC’
Rete Combinatoria ottenuta
12
Comportamento ideale: porte
logiche con ritardi nulli
A
B
C
C’
AC
BC’
U
Porte con ritardi non nulli
•
•
Supponiamo che le porte abbiano tempi di
propagazione diversi.
Ad esempio:
t_AND1 = 2 ns
t_AND2 = 1 ns
13
Comportamento del circuito
A
B
C
C’
Transizione
spuria
AC
BC’
U
t_AND2
t_AND2
t_AND1
Analisi del comportamento
•
•
•
•
•
I diversi tempi di ritardo causano transizioni
spurie (“Glitch”)
Sono dovuti al fatto che nella funzione logica
non considero variazioni simultanee di + segnali
Transizioni spurie causano anche maggiore
dissipazione di potenza
Per minimizzarne l’effetto si inserisce altra logica
che mantiene fissi i segnali
Non ho più funzioni minime
14
Copertura Hazard-Free
•
•
Inserisco anche i “cubi” che coprano variazioni
contemporanee di + segnali
Esempio
Cubo Aggiunto
A,B
BC’
C
00
01
11
0
0
1
1
1
0
0
2
0
1
10
0
6
1
3
4
1
7
5
AC
AB
U=AB+AC+BC’
Sommario
•
•
•
•
•
•
Richiami di algebra booleana
Mappe di Karnaugh
Coperture SP & PS
Alee Statiche e loro minimizzazione
Circuiti sequenziali semplici
Ulteriori circuiti
15
Concetti preliminari
•
Circuiti digitali sono
costituiti da una parte
di “elaborazione”
(Rete combinatori”)
ed una parte di
controllo e
temporizzazione
(“Parte sequenziale”)
Concetti Preliminari
•
•
•
•
Le uscite dei circuiti sequenziali
dipendono: dagli ingressi attuali, ma anche
dagli INGRESSI PASSATI
Sono cioè circuiti con MEMORIA
Il circuito si trova in uno STATO
PRESENTE
Evolverà in uno STATO FUTURO
16
Concetti Preliminari
•
Un circuito sequenziale generico sarà
costituito da
Ingressi
Stato
Uscite
Calcolo
Uscite e
Stato
Stato
Presente
(interno)
Futuro
R
Concetti preliminari
•
•
•
Tipi principali di circuiti sequenziali:
Circuiti Asincroni: lo stato può cambiare in
ogni istante
Circuiti Sincroni: lo stato può cambiare
solo in corrispondenza di un segnale di
cadenza
17
Concetti preliminari
•
•
•
La maggioranza dei circuiti integrati digitali progettati
sono “CIRCUITI SINCRONI”
Esiste un segnale di cadenza (chiamato spesso “clock”)
che “valida” e sincronizza i segnali considerati
Esempio:
Dato Valido
Concetti preliminari
•
•
I segnali devono mantenersi “stabili” a
seguito di un “fronte” del segnale di
cadenza
Si devono inserire dei circuiti logici che
memorizzino lo stato dei segnali
18
Latch SR
Latch e flip-flop D
19
FLIP-FLOP D
•
D
Tabella di verità:
Q
CK
QN
RST
RST
CK
0
1
-
1
D
Q_n
QN_n
0
0
0
1
1
1
1
0
Tempistica del Flip-Flop
•
•
Il dato D è “campionato” sul “fronte di salita” del
clock
Se D varia durante tale fronte cosa succede?
CLK
D
Q
Oscillazione dell’uscita di durata non predicibile
a priori
METASTABILITA’
20
Tempi di set-up e hold
•
•
•
Per evitare metastabilità
dato deve essere
“stabile” prima e dopo fronte del clock
Tempo min. per cui dato deve essere stabile
prima del clock
tempo di set-up (t_ su)
Tempo min. per cui dato deve essere stabile
dopo il clock
tempo di hold (t_ h)
CLK
D
t_su
t_h
Flip-Flop T
•
T
Q
CK
QN
RST
•
•
Tabella di verità:
RST
0
1
1
CK
-
T
0
Q_n QN_n
0
1
Q_n-1 QN_n-1
1
QN_n-1 Q_n-1
Se ingresso T=‘1’
l’uscita Q varia,
alternandolo, il suo valore ad ogni colpo di CLK
(“toggle”)
Si dimezza la frequenza di clock
21
Flip-Flop J-K
•
J
CK
K
Q
QN
RST
Tabella di verità:
RST
0
1
CK
-
J
0
K
0
Q_n QN_n
0
1
Q_n-1 QN_n-1
1
0
1
0
1
1
1
0
1
0
1
1
1
QN_n-1 Q_n-1
Registri
•
•
Affiancando n flip-flop D si ottiene un registro
Esempio Registro a 4 bit:
D Q
D Q
4
4
R
D Q
D Q
22
Sommario
•
•
•
•
•
•
Richiami di algebra booleana
Mappe di Karnaugh
Coperture SP & PS
Alee Statiche e loro minimizzazione
Circuiti sequenziali semplici
Ulteriori circuiti
Multiplexer
•
•
•
Seleziona tra n ingressi
Necessita di log 2(n) segnali di selezione
Esempio MUX a 2 ingressi:
A
B
M
U
X
U
SEL
23
Driver Tri-State
•
•
•
•
EN
Si utilizzano per pilotare
bus biderezionali
Presentano un ingresso
di abilitazione “enable”
(EN)
Se è attivo uscita
corrisonde ad ingressi
Se è disattivato uscita è
in Alta Impedenza (HiZ)
OUT
A
•
Tabella di verità
EN A
0
0
1
0
1
-
OUT
0
1
HiZ
Shift Register
•
•
Serie di flip-flop D in cui l’uscita di 1
corrisponde all’ingresso del successivo
Esempio Shith Register a 4 bit
CLK
Din
D Q
D Q
D Q
D Q
24
Sincronizzatore
•
•
Metastabilità non si può eliminare
completamente, ma si può cercare di ridurre
Tale problema è molto più evidente per gli
ingressi provenienti dall’esterno che variano +
lentamente
CLK
D
Sincronizzatore
•
•
Si possono far passare gli ingressi in una catena di flipflop
Si riduce notevolmente la probabilità di entrare in
25
Contatore
n
•
•
“Conta” un numero 2 di colpi di clock
(n è il numero di flip-flop utilizzati)
Esempio Contatore UP modulo 8
(3 flip-flop)
CLK
OUT
D Q
D Q
D Q
Logica di
conteggio
Esempio progetto logica di
conteggio
•
Analizziamo andamento delle uscite:
000 001 010 011 …
•
•
•
L’ultimo bit varia ad ogni colpo di clock
Comportamento tipo flip-flop T (“toggle”)
Lo realizziamo:
‘1’
T
Q
QN
26
Esempio:
•
Usiamo flip-flop T:
1
T
Q
QN
•
•
•
•
Uscita Q varia quando ingresso è ‘1’
Da tabella di verità T1=Q0
Da tabella di verità: T2=Q0*Q1
Fine conteggio (TC): TC=Q0*Q1*Q2
27