049kl-progetto di circuiti digitali - corsi di laurea a...
Post on 18-Feb-2019
216 Views
Preview:
TRANSCRIPT
05EKL05EKL--Progetto di Circuiti Progetto di Circuiti DigitaliDigitali
Tutore: Federico QuaglioTutore: Federico Quagliofederico.quaglio@polito.itfederico.quaglio@polito.it
011011--564 4004 (564 4004 (40044004))
Sommario
• Richiami di algebra booleana• Mappe di Karnaugh• Coperture SP & PS• Alee statiche e loro minimizzazione• Circuiti sequenziali semplici• Ulteriori Circuiti
Algebra Booleana
• Negazione o inversione: NOT • A={0,1} B=NOT(A)= =A’={1,0}• Tabella di Verità: Simbolo:
A BA B0 10 11 01 0
( )
A
Algebra Booleana
• Prodotto logico: AND; • C=A*B=AB• Tavola di verità: Simbolo:
A B U A B U 0 0 00 0 00 1 00 1 01 0 01 0 01 1 11 1 1
•• C = 1 C = 1 A=B=1A=B=1
Algebra Booleana
• Somma logica: OR; • C=A+B• Tavola di Verità: Simbolo:
A B U A B U 0 0 00 0 00 1 10 1 11 0 11 0 11 1 11 1 1
•• C = 0 C = 0 A=B=0A=B=0
Algebra Booleana
• OR Esclusivo: EXOR;•
• Tavola di Verità: Simbolo:A B U A B U 0 0 00 0 00 1 10 1 11 0 11 0 11 1 01 1 0
• Comparatore di DISUGUAGLIANZA
BABABAC ⊕=⋅+⋅=
Algebra Booleana
• NAND (AND Negata):•
• Tavola di verità: Simbolo:A B U A B U 0 0 10 0 10 1 10 1 11 0 11 0 11 1 01 1 0
• C=0 A=B=1
ABC =
Algebra Booleana
• NOR (OR Negata): •
• Tavola di Verità: Simbolo:A B U A B U 0 0 10 0 10 1 00 1 01 0 01 0 01 1 01 1 0
• C = 1 A=B=0
BAC +=
Algebra Booleana
• EXNOR (EXOR Negata);•
• Tavola di Verità: Simbolo:A B U A B U 0 0 10 0 10 1 00 1 01 0 01 0 01 1 11 1 1
• Comparatore di UGUAGLIANZA
BABABAC ⊕=⋅+⋅=
• NAND, NOR SONO GATE UNIVERSALI• Si possono ricavare tutte le altre funzioni
logiche a partire da essi• Es (con NAND):
Algebra Booleana
Algebra Booleana
Proprietà fondamentali:A*0=0; A+1=1; A*A=A; A+A=AA*(NOT(A))=0; A+(NOT(A))=1A+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; A+NOT(A)*B=A+B; A*(NOT(A)+B)=A*BNOT(A+B)=NOT(A)*NOT(B)NOT(A*B)=NOT(A)+NOT(B)NOT(NOT(A))=A
Minimizzazione di Funzioni Logiche• Somma di Prodotti (SP)
• f(A,B,C)=(A*B*C)+(A’BC)+ etc…• In tabella di verità identifico i prodotti degli ingressi
che hanno uscita ‘1’ e li sommo• Ingresso a ‘1’ Considerato “dritto”• Ingresso a ‘0’ Considerato “negato”
• Prodotti di Somme (PS)• f(A,B,C)=(A+B+C)(A’+B+C)etc…• In tabella di verità identifico le somme che danno
uscita ‘0’ e le moltiplico• Ingresso a ‘0’ Considerato “dritto”• Ingresso a ‘1’ Considerato “negato”
Minimizzazione di Funzioni Logiche
• Ottengo rappresentazione in forma canonica
• Minimizzo funzione usando proprietà dell’algebra Booleana• Funzione minima
Minimizzazione di Funzioni Logiche• Esempio (SP):
Tabella di veritàA B C U0 0 0 00 0 1 00 1 0 00 1 1 11 0 0 01 0 1 11 1 0 11 1 1 1
BCAI =1
CBAI =2CABI =3
ABCI =4
ABCCABCBABCA
IIIIU
+++=
=+++= 4321
Minimizzazione di Funzioni Logiche
• Riduzione a espressione minima
( )( ) ( )
( )( ) BCACABABCAB
BABCABCBABCAB
CBAACBCBACACB
CABCBABCCABCBAAABC
ABCCABCBABCAIIIIU
++=++==++=++=
=++=++=
=++=+++=
=+++=+++= 4321
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…
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 Karnaugh0
0
1
1
XY
XY00 01 11 10
0
1
W
00 01 11 10
00
01
11
10
XYWZ
0 2
1 3
0 2 6 4
1 3 7 5
0
1
3
2
4
5
7
6
12 8
13 9
15 11
14 10
U=…
U=…
U=…
Mappe di Karnaugh
00 01 11 10
00
01
11
10
XYWZ 00 01 11 10
V=0 V=1
0
1
3
2
4
5
7
6
12
13
15
14 10
11
9
8 16
17
19
18
20
21
23
22
28
29
31
30 26
27
25
24
Da tabella di verità a Mappa di Karnaugh
• Tabella di veritàA B C U0 0 0 00 0 1 00 1 0 00 1 1 11 0 0 01 0 1 11 1 0 11 1 1 1
• MappaAB
C 00 01 11 10
0
17 5
4
3
62
1
01
11 1
0 0 0
0
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’) in celle “Adiacenti”
• Celle sono Adiacenti c’è la variazione di UN SOLO ingresso
Regola per la copertura
• Esempi celle adiacenti:
00 01 11 10
00
01
11
10
XYWZ 00 01 11 10
00
01
11
10
XYWZ
Regola per la copertura
• Esempi celle adiacenti:
00 01 11 10
00
01
11
10
XYWZ 00 01 11 10
00
01
11
10
XYWZ
Mappe particolari
111
03
17
015
010
12
06
114
09
113
18
11
05
00
14
012
C,D 00 01 11 10
00
01
11
10
A,B
11
03
00
12
0 1
0
1
A
B
EXOR
05
17
14
11
03
00
12
06
A,B
00 01 11 10
0
1
C
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’)
Copertura PS
• Si coprono gli ‘0’• Comportamento duale a copertura SP
• Se ingresso ‘0’ ingresso preso “dritto”• Se ingresso ‘1’ ingresso è negato
Esempio di rete combinatoriaTabella di verità
# A B C D U
0 0 0 0 0 1 1 0 0 0 1 12 0 0 1 0 03 0 0 1 1 04 0 1 0 0 15 0 1 0 1 16 0 1 1 0 17 0 1 1 1 18 1 0 0 0 09 1 0 0 1 1
10 1 0 1 0 011 1 0 1 1 012 1 1 0 0 013 1 1 0 1 114 1 1 1 0 015 1 1 1 1 1
Mappa di Karnaugh
19
11
15
113
011
03
17
115
010
02
16
014
08
10
14
012
C,D 00 01 11 10
00
01
11
10
A,B
Copertura minima SP
BD
19
11
15
113
011
03
17
115
010
02
16
014
08
10
14
012
A,BC,D 00 01 11 10
00
01
11
10
A,B A’C’
C’D
A’B
DCBDCABAU +++=
Copertura minima SPA,BA,B
A’+D19
11
15
113
011
03
17
115
010
02
16
014
08
10
14
012
C,D 00 01 11 10
00
01
11
10
B+C’
( )( )CBDAU ++=
Esempio
0 0
0 1
0 0
1 0
0 1
0 0
1 0
0 0
00 01 11 10
00
01
11
10
XYWZ
0 0
0 0
0 0
1 0
1 0
1 0
1 0
0 0
00 01 11 10V=0 V=1
Esempio
0 0
0 1
0 0
1 0
0 1
0 0
1 0
0 0
00 01 11 10
11
XYWZ
00
01
10
0 0
0 0
0 0
1 0
1 0
1 0
1 0
0 0
00 01 11V=0 V=1
10
YZVI =1
XYZI =2
WYXVI =3
WYXVXYZYZVU ++=
Sommario
• Richiami di algebra booleana• Mappe di Karnaugh• Coperture SP & PS• Alee Statiche e loro minimizzazione• Circuiti sequenziali semplici• Ulteriori circuiti
Esempio:
• Sia data la tabella di verità:
A B C U0 0 0 00 0 1 00 1 0 10 1 1 01 0 0 01 0 1 11 1 0 11 0 1 1
• Dalla mappa di Karnaugh si ricava
15
17
04
01
03
00
12
16
A,B
00 01 11 10
0
1
CBC’
AC
U=AC+BC’
Porte con ritardi non nulli
• Supponiamo che le porte abbiano tempi di propagazione diversi.
• Ad esempio:
U
A
B
C
t_AND1 = 2 ns
t_AND2 = 1 ns
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
Copertura Hazard-Free
• Inserisco anche i “cubi” che coprano variazioni contemporanee di + segnali
• Esempio
15
17
04
01
03
00
12
16
A,B
00 01 11 10
0
1
CBC’
AC
AB
Cubo Aggiunto
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
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
Concetti Preliminari
• Un circuito sequenziale generico sarà costituito da (modello di Huffman)
CalcoloUscite e
Stato
R
Ingressi Uscite
Stato
Futuro
Stato
Presente
(interno)
Elemento di ritardo
Concetti preliminari
• Tipi principali di circuiti sequenziali:• Circuiti Asincroni: lo stato può cambiare in
ogni istante (in base a ritardi intrinseci porte)• Circuiti Sincroni: lo stato può cambiare
solo in corrispondenza di un segnale di cadenza
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
Concetti preliminari
• L’elemento di memorizzazione/ritardo si può ricondurre ad un anello di inverter
1
1
0
0
Il dato memorizzato non si può
modificare!!!
Concetti preliminari• Al fine di “inserire” valori dall’esterno le
NOT si possono sostituire con porte che possono “simulare” lo stesso comportamento:• NAND oppure NOR
1
1
0
0
1
1
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 predicibilea priori METASTABILITA’
Tempistica del Flip-Flop• Metastabilità è dovuta alla presenza di un punto quasi-
stabile (“metastabile”) nella transcaratteristica ingresso-uscita dell’anello di inverter
• Se campiono ingresso con valore vicino a quel punto impiego del tempo per “risolvere” metastabilità
• Più campiono vicino a punto metastabile, più lungo sarà il tempo con uscita non definita
Punto Metastabile
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
Dt_su
t_h
Flip-Flop T
• Se ingresso T=‘1’ l’uscita Q varia, alternandolo, il suo valore ad ogni colpo di CLK (“toggle”)
• Si dimezza la frequenza di clock
T Q
QNCK
RST
• Tabella di verità:RST CK T Q_n QN_n
0 - - 0 1 1 0 Q_n-1 QN_n-1
1 1 QN_n-1 Q_n-1
Flip-Flop J-K• Tabella di verità:
RST CK J K Q_n QN_n
0 - - - 0 1 1 0 0 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
J Q
QN
CK
RST
K
Registri
• Affiancando n flip-flop D si ottiene un registro• Esempio Registro a 4 bit:
D Q
D Q
D Q
D Q
R4 4
Calcolo Frequenza Massima
• Identifico i percosi combinatori che collegano elementi sequenziali (cammini tra FF)
• Sommo i ritardi di propagazione delle porte combinatorie e del FF da cui esce un segnale
• Sommo il tempo di set-up del FF a cui segnale arriva
• Se ho percorsi paralleli che si ricongiungono considero il tempo massimo
Calcolo Frequenza Massima
• Esempio
U
A
B
C
D U
D U
D U
t ck -> U
t ck -> U t P (AND)
t P (AND)
t P (NOT)
t P (OR)t SU
Calcolo Frequenza Massima
• Percorso 1:
U
A
B
C
D U
D U
D U
t ck -> U
t ck -> U t P (AND)
t P (AND)
t P (NOT)
t P (OR)t SU
( ) ( ) SUORPANDPUck ttttT +++= → 1
ns ns ns ns ns 1342251 =+++=T
Calcolo Frequenza Massima• Percorso 2:
U
A
B
C
D U
D U
D U
t ck -> U
t ck -> U t P (AND)
t P (AND)
t P (NOT)
t P (OR)t SU
( ) ( ) SUORPANDPUck ttttT +++= → 2
ns ns ns ns ns 1342252 =+++=T
Calcolo Frequenza Massima
• Percorso 3:
U
A
B
C
D U
D U
D U
t ck -> U
t ck -> U t P (AND)
t P (AND)
t P (NOT)
t P (OR)t SU
( ) ( ) ( ) SUORPANDPNOTPUck tttttT ++++= → 3
ns ns ns ns ns ns 5.134225.053 =++++=T
Calcolo Frequenza Massima
• Percorso 4:
U
A
B
C
D U
D U
D U
t ck -> U
t ck -> U t P (AND)
t P (AND)
t P (NOT)
t P (OR)t SU
( ) ( ) SUORPANDPUck ttttT +++= → 4
ns ns ns ns ns 5.1342254 =+++=T
Calcolo Frequenza Massima• Periodo Minimo di clock richiesto:
U
A
B
C
D U
D U
D U
t ck -> U
t ck -> U t P (AND)
t P (AND)
t P (NOT)
t P (OR)t SU
( ) ns 5.13,,,max 34321min === TTTTTT
MHz 07,741
minmax ==
Tf
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 log2(n) segnali di selezione• Esempio MUX a 2 ingressi:
MUX
A
B
SEL
U
Multiplexer
• Con i MUX e porte NOT si possono realizzare qualsiasi funzione logica
• Es:
( )
BABAABAAA
ABAAU
+==+=+=
=⋅+⋅=
Driver Tri-State
• 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)
• Tabella di verità
EN A OUT
0 0 00 1 11 - HiZ
A OUT
EN
Shift Register
• Serie di flip-flop D in cui l’uscita di 1 corrisponde all’ingresso del successivo
• Esempio Shith Register a 4 bit
D Q D Q D Q D QDin
CLK
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 flip-flop
• Si riduce notevolmente la probabilità di entrare in metastabilità
Contatore
• “Conta” un numero 2 di colpi di clock (n è il numero di flip-flop utilizzati)
• Esempio Contatore UP modulo 8 (3 flip-flop)
n
CLK
D Q D Q D Q
Logica di conteggio
OUT
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:
T
QN
Q‘1’
Esempio:
• Usiamo flip-flop T:
• 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
TQN
Q1
top related