Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
M. Sonza Reorda
Politecnico di Torino
Dip. di Automatica e Informatica
1
Introduzione
2
Sistemi digitali
3
Esempi di sistemi digitali
4
Diagramma a blocchi
x1 AND Memoria
CPU
NOT
OR
x1 EXOR x2
NOT
Bus
AND
x2
Periferici
5
Struttura / comportamento
6
Progetto
Siano dati:
• un sistema da realizzare, di cui è noto il
comportamento e una serie di altre specifiche
• una serie di componenti (di solito già disponibili), di
cui è noto il comportamento e una serie di altre
caratteristiche.
L’attività di progetto consiste nell'individuare una
connessione di componenti tale per cui
• il comportamento globale sia quello desiderato
7
• le specifiche (tra cui il costo) siano soddisfatte.
Specifiche
8
Costo
Il costo che si cerca di minimizzare nel progetto è
solitamente una combinazione pesata del costo per
• il progetto
• la produzione
• la manutenzione.
9
Ciclo di vita di un prodotto
Si compone tipicamente di 4 fasi:
• Specifica
- Si passa dall’idea ad un documento (o altro) che
descrive il comportamento del sistema e i vincoli per il
progetto
• Progetto
- Si passa dalle specifiche ad un modello utilizzabile da
chi produce il sistema
• Produzione
- Si passa dal modello a un prodotto
• Operatività
- Il prodotto è operativo.
10
Ciclo di vita di un prodotto
Si compone tipicamente di 4 fasi:
• Specifica
- Si passa dall’idea ad un documento (o altro) che
descrive il comportamento del sistema e i vincoli per il
progetto
• Progetto
- Si passa dalle specifiche ad un modello utilizzabile da
chi produce il sistemaPrima di passare alla fase successiva
è fondamentale verificare la
• Produzione correttezza di quanto sviluppato fino
a quel
- Si passa dal modello ad punto.
un prodotto
• Operatività Più si va avanti, più il costo per
riparare eventuali errori cresce.
- Il prodotto è operativo.
11
Modello del sistema
12
Simulazione
Modello Stimoli di
del ingresso
sistema
Simulatore
Uscite
13
Progetto gerarchico
sistema
ALU bus
registri
interno
15
transistor 1 transistor 2 transistor 3 transistor 4
Livello di progetto
17
Flusso di progetto
Il progetto di un sistema avviene normalmente
tramite l’iterazione ai vari livelli delle stesse
operazioni:
• definizione delle specifiche (tramite opportuno
formalismo)
• sintesi (manuale o automatica)
• verifica (attraverso simulazione o altro).
Se si segue l’approccio top-down, il risultato del
progetto ad un livello spesso costituisce
direttamente l’insieme delle specifiche per il livello
inferiore.
18
Sistemi combinatori e sequenziali
20
Esempio
Si consideri il sistema che a
implementa un codificatore x0
b
prioritario a 3 bit, in grado di x1
generare sull’uscita x l’indice del c
bit di ingresso avente valore 1 e
indice massimo:
if(a==1)
x=3;
else if(b==1)
x=2;
else if(c==1)
x=1;
else
21 x=0;
Esempio (II)
a b c x1 x0 Funzione
0 0 0 0 0 booleana
0 0 1 0 1 x1 a b
0 1 0 1 0
0 1 1 1 0 x 0 a bc
1 0 0 1 1
1 0 1 1 1
1 1 0 1 1 Tavola di verità
22 1 1 1 1 1
Sistemi sequenziali
23
Formati di descrizione
24
Esempio
I O
Si consideri un sistema avente
un ingresso I e un’uscita O.
Il sistema campiona con una frequenza prefissata
l’ingresso I.
L’uscita O assume
• il valore 1 se durante i 3 istanti di
campionamento precedenti l’ingresso I ha
assunto i valori 101
• il valore 0 diversamente.
25
Variabile di stato
26
Diagramma degli stati/uscite
1 0 1 0
A0 B0 C0 D1 E0
0 1 1 1
27
Diagramma degli stati/uscite
In questo caso l’uscita
dipende esclusivamente dallo
stato in cui si trova il sistema.
Quindi è associata al vertice.
1 0 1 0
A0 B0 C0 D1 E0
0 1 1 1
28
Diagramma degli stati/uscite
Nel caso più generale le
uscite dipendono dallo stato
in cui si trova il sistema e dal
valore degli ingressi.
Quindi le uscite sono
associate agli archi.
0
1 0 1 0
A0 B0 C0 D1 E0
0 1 1 1
29
Tavola degli stati/uscite
Stato corrente Ingresso Stato futuro Uscita
A 0 A 0
A 1 B 0
B 0 C 0
B 1 B 0
C 0 A 0
C 1 D 0
D 0 E 1
D 1 B 1
E 0 A 0
E 1 D 0
30
Funzione di transizione
31
Esempio: funzione di transizione
in forma simbolica
f(0,A) A,0
f(1,A) B,0
f(0,B) C,0
f(1,B) B,0
f(0,C) A,0
f(1,C) D,0
f(0,D) E,1
f(1,D) B,1
f(0,E) A,0
32 f(1,E) D,0
Macchina a Stati Finiti
35
Progetto a livello transistor
Il sistema viene visto come un’interconnessione di transistor,
considerati come interruttori pilotati dal segnale di base.
A seconda della tecnologia utilizzata (PMOS o NMOS) il
transistor è chiuso/aperto quando il segnala di base ha una
tensione inferiore/maggiore ad una certa soglia.
In ogni caso, la velocità di commutazione di un transistor è
dell’ordine dei nanosecondi.
collettore
base
emettitore
36
Tensioni/valori logici
In un circuito elettronico è Vmax
comune associare i valori logici Valore logico 1
(0/1) alle tensioni (alta/bassa).
Tale operazione richiede di V1,min
fissare
Vsoglia Valori proibiti
• una soglia per discriminare
le tensioni alte da quelle V0,max
basse
Valore logico 0
• una fascia di tensioni
proibita, per evitare gli
effetti del rumore.
0
37
Inverter NMOS
Vcc
Se Vin<Vsoglia:
Vout=Vcc
Vout
Se Vin>Vsoglia:
collettore
base Vout=Vground
Vin
emettitore
38
Buffer PMOS
Vcc
Se Vin>Vsoglia:
Vout=Vcc
Vout
Se Vin<Vsoglia:
collettore
base Vout=Vground
Vin
emettitore
39
Inverter CMOS
40
Porte logiche
41
Progetto a livello porte logiche
42
Porte logiche (I)
z x1x2 x1 x2 z x1x2 x1 x2
0 0 0 0 0 1
0 1 0 0 1 1
1 0 0 1 0 1
43 1 1 1 1 1 0
Porte logiche (II)
OR NOR
x1 x1
z z
x2 x2
z x1 +x2 x1 x2 z x1 + x2 x1 x2
0 0 0 0 0 1
0 1 1 0 1 0
1 0 1 1 0 0
44 1 1 1 1 1 0
Porte logiche (III)
EXOR EXNOR
x1 x1
z z
x2 x2
z x1 x2 z x1 x2
0 0 0 0 0 1
0 1 1 0 1 0
1 0 1 1 0 0
45 1 1 0 1 1 1
Porte logiche (IV)
NOT
x z
zx
0 1
1 0
46
Implementazione delle
porte logiche tramite transistor NMOS
Vcc
Vcc
Vout
Vout
V1
V1 V2
V2
49
Circuiti combinatori
ben formati
Si dicono Circuiti Combinatori Ben Formati (ccbf) i circuiti
combinatori che soddisfano le seguenti regole:
• una singola linea o una singola porta è un ccbf
• la giustapposizione di 2 ccbf è un ccbf
• se C1 e C2 sono due ccbf, il circuito ottenuto connettendo un
insieme di linee di uscita di C1 ad un insieme di linee di
ingresso di C2 è un ccbf
• se xi ed xj sono due linee di ingresso ad un ccbf, il circuito
ottenuto connettendo insieme xi e xj è un ccbf
• non sono presenti cicli.
50
Circuiti combinatori
ben formati
Si dicono Circuiti Combinatori Ben Formati (ccbf) i circuiti
combinatori che soddisfano le seguenti regole:
• una singola linea o una singola porta è un ccbf
• la giustapposizione di 2 ccbf è un ccbf
• se C1 e C2 sono due ccbf, il circuito ottenuto connettendo un
insieme di linee di uscita di C1 ad un insieme di linee di
ingresso di C2 è un ccbf
• se xi ed xj sono due linee di ingresso ad un ccbf, il circuito
ottenuto connettendo insieme xi ed xj è un ccbf
• non sono presenti cicli.
51
Circuiti combinatori
ben formati
Si dicono Circuiti Combinatori Ben Formati (ccbf) i circuiti
combinatori che soddisfano le seguenti regole:
• una singola linea o una singola porta è un ccbf
• la giustapposizione di 2 ccbf è un ccbf
• se C1 e C2 sono due ccbf, il circuito ottenuto connettendo un
insieme di linee di uscita di C1 ad un insieme di linee di
ingresso di C2 è un ccbf
• se xi ed xj sono due linee di ingresso ad un ccbf, il circuito
ottenuto connettendo insieme xi ed xj è un ccbf
• non sono presenti cicli.
52
Circuiti combinatori
ben formati
Si dicono Circuiti Combinatori Ben Formati (ccbf) i circuiti
combinatori che soddisfano le seguenti regole:
• una singola linea o una singola porta è un ccbf
• la giustapposizione di 2 ccbf è un ccbf
• se C1 e C2 sono due ccbf, il circuito ottenuto connettendo un
insieme di linee di uscita di C1 ad un insieme di linee di
ingresso di C2 è un ccbf
• se xi ed xj sono due linee di ingresso ad un ccbf, il circuito
ottenuto connettendo insieme xi e xj è un ccbf
• non sono presenti cicli.
53
Circuiti combinatori
ben formati
Si dicono Circuiti Combinatori Ben Formati (ccbf) i circuiti
combinatori che soddisfano le seguenti regole:
• una singola linea o una singola porta è un ccbf
• la giustapposizione di 2 ccbf è un ccbf
• se C1 e C2 sono due ccbf, il circuito ottenuto connettendo un
insieme di linee di uscita di C1 ad un insieme di linee di
ingresso di C2 è un ccbf
• se xi ed xj sono due linee di ingresso ad un ccbf, il circuito
ottenuto connettendo insieme xi e xj è un ccbf
• non sono presenti cicli.
54
Circuiti combinatori
ben formati
Si dicono Circuiti Combinatori Ben Formati (ccbf) i circuiti
combinatori che soddisfano le seguenti regole:
• una singola linea o una singola porta è un ccbf
• la giustapposizione di 2 ccbf è un ccbf
• se C1 e C2 sono due ccbf, il circuito ottenuto connettendo un
insieme di linee di uscita di C1 ad un insieme di linee di
ingresso di C2 è un ccbf
• se xi ed xj sono due linee di ingresso ad un ccbf, il circuito
ottenuto connettendo insieme xi ed xj è un ccbf
• non sono presenti cicli.
55
Esempio di circuito ben formato
56
Fanin
È il numero di segnali in ingresso ad una porta.
Fanout
È il numero di altre porte pilotate dall’uscita di
una porta.
57
Fanin e fanout: esempi
Questa porta ha
• fanin= 2
• fanout = 1.
Questa porta ha
• fanin= 2
• fanout = 2.
Questa porta ha
• fanin= 3
• fanout = 1.
58
Progetto di circuiti combinatori
59
Esempio
+
60
Equivalenza di reti logiche
61
Esempio (II)
x1
x2
62 x3
Algebra booleana
È definita sui seguenti elementi ed operatori:
• elementi: 0, 1
• operatori: AND (·), OR (+), NOT (¯)
• assiomi: (Postulati di Huntington) K={0,1}
• chiusura: a K , b K ab K , a b K
• identità: a+0=a, a · 1=a
• commutatività: a+b=b+a, a · b=b · a
• distributività: a(b+c)=a · b+a · c, a+(b · c)=(a+b) ·(a+c)
• inverso: aa 0, a a 1
63
Leggi dell’algebra booleana
• Associatività:
a+(b+c)=(a+b)+c
a(bc)=(ab)c
• Idempotenza:
a+a=a
aa=a
• De Morgan:
a b ab
ab a b
• Involuzione:
aa
64
Minimizzazione
65
Circuito combinatorio minimo
66
Circuiti a 2 livelli
• prodotto di somme
f ( x 1 , x 2 ,..., x n ) xi
i1 x i 2 ... x in
67
Circuiti a 2 livelli (II)
Se tutte le variabili di ingresso sono disponibili affermate o
negate, tali espressioni sono direttamente trasformabili in circuiti
a 2 livelli composti esclusivamente da porte AND e OR.
Esempio
La funzione svolta da un sommatore a 2 bit può essere scritta
come
c0=x0c1+y0c1+x0y0
che si può trasformare nel circuito seguente:
68
Circuiti a 2 livelli (III)
x0
y0 c0
c1
c0=x0c1+y0c1+x0y0
69
Circuiti a 2 livelli (IV)
x0
y0 c0
c1
minterm x 1 x 2 ... x n
maxterm x 1 x 2 ... x n
cubo x i ... x j ... x k
71
Terminologia
Corrisponde a x o x
i i
letterale xi
minterm x 1 x 2 ... x n
maxterm x 1 x 2 ... x n
cubo x i ... x j ... x k
72
Canonicità
73
Costruzione circuito minimo
75
Mappe di Karnaugh
76
Esempio
x1x2
x3 00 01 11 10
0 1 0 0 0
1 1 1 1 0
77
Esempio Ogni casella a 1
corrisponde a un
minterm
x1x2
x3 00 01 11 10
0 1 0 0 0
1 1 1 1 0
x1x2
x3 00 01 11 10
0 1 0 0 0
1 1 1 1 0
79
Esempio
Ogni coppia di caselle a 1
adiacenti corrisponde ad
un cubo
x1x2
x3 00 01 11 10
0 1 0 0 0
1 1 1 1 0
80
f1 Esempio
x1x2
x3 00 01 11 10
0 1 0 0 0
1 1 1 1 0
81
Procedura di sintesi
x1x2
x3 00 01 11 10
0 1 1 0 1
1 1 0 0 1
83
Esempio
x1x2
x3 00 01 11 10
0 1 1 0 1
1 1 0 0 1
84
f1 Esempio
x1x2
x3 00 01 11 10
0 1 1 0 1
1 1 0 0 1
85
Mappe di Karnaugh con 4 ingressi
86
Esempio
x1x2
x3 x4 00 01 11 10
00 0 0 1 1
01 0 0 0 0
11 1 0 0 1
10 0 0 1 1
87
f1 + Esempio
x1x2
x3 x4 00 01 11 10
00 0 0 1 1
01 0 0 0 0
11 1 0 0 1
10 0 0 1 1
88
Esempio 2
x1x2
x3 x4 00 01 11 10
00 0 1 1 0
01 1 1 1 1
11 1 1 1 1
10 0 0 0 0
89
f1 + Esempio 2
x1x2
x3 x4 00 01 11 10
00 0 1 1 0
01 1 1 1 1
11 1 1 1 1
10 0 0 0 0
90
Don’t care
91
Esempio
• Consideriamo una
funzione che riceve in
ingresso i 4 bit
corrispondenti a una cifra
BCD e ritorna il valore 1
se e solo se tale cifra
corrisponde a un multiplo
di 3:
92
Esempio
• Consideriamo una
funzione che riceve in
ingresso i 4 bit
corrispondenti a una cifra
BCD e ritorna il valore 1
se e solo se tale cifra
corrisponde a un multiplo
di 3:
93
Esempio
94
Ritardi
L’uscita di una porta logica assume il valore corretto solo dopo che
è trascorso un certo tempo k dalla stabilizzazione dei segnali di
ingresso.
1
Segnale
0
di ingresso 1
Segnale
di uscita
0
1
1
Ritardo k della
t
95 porta
Ritardo associato a un circuito
98
Cammino critico
99
Livelli
100
Livelli: esempio
z0
x0
y0
c1
c0
101
Livelli: esempio
I z0
x0
I
y0 II
c1
III c0
102
Calcolo del cammino critico
103
Cammino critico
I z0
x0
I
y0 II
c1
III c0
104
Circuiti sequenziali
• Implementano funzioni dipendenti dal tempo
• Sono in grado di memorizzare informazioni
• Sfruttano i ritardi delle porte:
x1
z
x2 y
z(t+)=x1(t)x2(t)
105
Flip-Flop
S
10 y2
2<1 01 00 y1
R
2 10 1
S
10 y2
2>1 00 01 y1
R
2 10 1
107
Flip-Flop SR asincrono
S
y SR
00 01 10
0 0 0 1
y
1 1 0 1
y Simbolo
R Tavola degli stati
S y
Schema
R y
108
Flip-Flop sincrono
S
y
Clock
109
Flip-Flop SR con Clock,
Preset e Clear asincroni
P
S
y
Clock
y
R
C
110
Flip-Flop D
D
D 0 1
S 1 y
0 0 1
Clock y
1 0 1
R 0 y
Tavola degli stati
111
Flip-Flop Master-Slave
D Q
D Q D Q
CLK
112
L’uscita del circuito in figura commuta
Flip-Flop Master-Slave
sul fronte di discesa di Clock.
Collegando l’ingresso di Clock dei due
Flip-Flop a CLK in modo opposto si può
ottenere la versione che commuta sul
In alcuni casi fronte
(quando di salita.
non si può controllare il
I due Flip-Flop prendono il
nome duty cycle di
di Master e Clock)
Slave, è utile utilizzare una versione
rispettivamente.
di Flip-Flop in cui la transizione può avvenire solo
sul fronte di salita (o di discesa) di Clock.
D Q
D Q D Q
CLK
113
Circuiti sincroni
114
Modello di Huffman
x1 z1
x2 z2
… …
xm Rete zk
combinatoria
flip-flop
y1 Y1
y2 Y2
…
yn Yn
Clock
115
Modello di Huffman
x1 z1
x2 z2
… …
xm Rete zk
combinatoria
flip-flop
y1 Y1
y2 Y2
…
yn Yn
Questa architettura
implementa una FSM di
Clock Mealy
116
FSM di Moore (a) e Mealy (b)
117
Frequenza di funzionamento
118
Tabella degli stati
119
Progetto di circuiti sequenziali
sincroni
120
Esempio
Consideriamo il riconoscitore della sequenza 1-0-1.
Il diagramma degli stati è
1 0 1 0
A0 B0 C0 D1 E0
0 1 1 1
121
Esempio (II)
Lo stato E è equivalente allo stato C; il diagramma
può quindi essere così semplificato:
0 0
1 0 1
A0 B0 C0 D1
0 1 1
122
Esempio (II)
Lo stato E è equivalente allo stato C; il diagramma
può quindi essere così semplificato:
0 0
1 0 1
A0 B0 C
Due
0 D1
diagrammi degli stati sono
equivalenti se data una qualsiasi
0 1 sequenza
1 di ingresso, il loro
comportamento in termini di valori
prodotti sulle uscite è identico.
123
Esempio (III)
124
Esempio (IV)
La tavola di verità della Il valore dell’uscita z può
funzione di transizione essere facilmente generato
degli stati è: tenendo conto che esso è 1
solo quando il circuito è nello
i y1 y2 Y1 Y2 stato 11:
0 00 00
1 00 01 i y1 y2 z
0 01 10 - 00 0
1 01 01 - 01 0
0 10 00 - 10 0
1 10 11 - 11 1
0 11 10
125111 01
Esempio (V)
Y2=i
z=y1y2
126
Esempio (VI)
Il circuito che implementa il riconoscitore di
sequenza è:
Y1 y1
CLK FF1
i Y2 y2
FF2
z
127
Frequenza di lavoro
128
Frequenza di lavoro
• T0: un nuovo insieme di valori è applicato agli
ingressi della parte combinatoria
T0
t
129
Frequenza di lavoro
• T0: un nuovo insieme di valori è applicato agli
ingressi della parte combinatoria
• T1 = T0 + : le uscite della parte combinatoria
assumono un valore stabile
T0 T1
t
130
Frequenza di lavoro
• T0: un nuovo insieme di valori è applicato agli
ingressi della parte combinatoria
• T1 = T0 + : le uscite della parte combinatoria
assumono un valore stabile
• T2: si applica un nuovo fronte al segnale di
clock; il valore sulle uscite della parte
combinatoria è memorizzato nei flip flop
T0 T1 T2
t
131
Frequenza di lavoro
• T0: un nuovo insieme di valori è applicato agli
ingressi della parte combinatoria
• T1 = T0 + : le uscite della parte combinatoria
assumono un valore stabile
• T2: si applica un nuovo fronte al segnale di
clock; il valore sulle uscite della parte
combinatoria è memorizzato nei flip flop
• T3 = T2 + d: il nuovo valore è disponibile sulle
uscite dei flip flop
T0 T1 T2 T3
d t
132
Frequenza di lavoro
• T0: un nuovo insieme di valori è applicato agli
ingressi della parte combinatoria
• T1 = T0 + : le uscite della parte combinatoria
I tempi un
assumono travalore
T1 e T2 e tra T3 e T0 possono
stabile
essere minimizzati a piacere dall’utente.
• T2: si applica un nuovo fronte al segnale di
clock – ilInvalore
ogni caso deveuscite
sulle essere della parte
combinatoria è memorizzato
T > d nei flip flop
• T3 = T2 + d: il nuovo valore è disponibile sulle
uscite dei flip flop
T0 T1 T2 T3 T0 T1 T2 T3
d d t
133 T