Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
M. Sonza Reorda
Politecnico di Torino
Dip. di Automatica e Informatica
1
Sommario
Introduzione
Progetto a livello di porte logiche
Progetto a livello registri
Progetto a livello sistema
Introduzione
Un sistema una collezione di oggetti (componenti)
connessi a formare unentit omogenea con una ben
precisa funzionalit.
La funzione svolta dal sistema determinata da:
funzioni svolte dai componenti
modo in cui i componenti sono connessi (topologia).
Un circuito un particolare tipo di sistema.
Sistemi digitali
Verranno presi in considerazione i sistemi per
lelaborazione delle informazioni, che agiscono su
un insieme di dati A e producono un insieme di
dati B.
Si assume che i dati in A e in B siano quantit
discrete (sistema digitale) corrispondenti a valori
rappresentati su bit.
Diagramma a blocchi
Permette di descrivere in modo semplice la struttura di un
sistema, modellando mediante un grafo:
vertici componenti
archi linee per il trasferimento di dati tra componenti.
x1
AND
Memoria
CPU
NOT
OR
x1 EXOR x2
NOT
Bus
AND
x2
Periferici
Struttura / comportamento
Struttura = Diagrammi a blocchi senza informazioni
funzionali
Comportamento = Funzione di trasformazione dai dati
in ingresso A a quelli in uscita B.
Progetto
Siano dati:
un sistema da realizzare, di cui noto il
comportamento e una serie di altre specifiche
una serie di componenti, di cui noto il
comportamento e una serie di altre caratteristiche.
Lattivit di progetto consiste nell'individuare una
connessione di componenti tale per cui
il comportamento globale sia quello desiderato
le specifiche (tra cui il costo) siano soddisfatte.
8
Specifiche
Possono includere specifici vincoli su parametri
quali
la velocit
il consumo di potenza
laffidabilit
la durata
ecc.
Costo
Il costo che si cerca di minimizzare nel progetto
solitamente una combinazione pesata del costo per
il progetto
la produzione
la manutenzione.
10
- Il prodotto operativo.
12
fondamentale
verificare
la
Produzione
correttezza di quanto sviluppato fino
a quel
punto.
- Si passa dal modello ad
un prodotto
Pi si va avanti, pi il costo per
Operativit
riparare eventuali errori cresce.
- Il prodotto operativo.
13
Progetto gerarchico
di solito eseguito in maniera top-down. Nella pratica spesso
si combinano tecniche top-down con altre bottom-up.
Linee guida:
i componenti possono corrispondere ad entit fisiche
(circuiti integrati, schede, ecc.) o a moduli predefiniti (ad
esempio appartenenti ad una libreria)
ogni componente deve essere il pi indipendente possibile,
in modo da poter essere sviluppato o modificato in
maniera indipendente
in molti casi il progettista conosce le funzioni e le
caratteristiche di un modulo, senza conoscere i dettagli
sulla sua implementazione (black box).
14
Livello di progetto
definito dal tipo dei componenti utilizzati in ciascuna
fase del progetto.
Un componente ad un certo livello corrisponde ad un
insieme di componenti al livello inferiore.
Il progetto dei sistemi elettronici pu avvenire a diversi
livelli:
elettrico
transistor (o switch)
porte logiche (o gate)
registri
sistema.
15
Componenti
Unit di dato
Unit di tempo
10-3103s
memorie
Register
Parole
10-910-6s
Bit
10-1010-8s
16
Flusso di progetto
Il progetto di un sistema avviene normalmente
tramite literazione ai vari livelli delle stesse
operazioni:
definizione delle specifiche (tramite opportuno
formalismo)
sintesi (manuale o automatica)
verifica (attraverso simulazione o altro).
17
Sistemi combinatori
Il valore delle uscite ad un certo istante dipende
esclusivamente dal valore degli ingressi in
quellistante.
Il comportamento di un sistema combinatorio pu
essere descritto attraverso
una tavola di verit, che specifica per ogni
combinazione di ingresso la corrispondente
combinazione di uscita, oppure
la funzione booleana implementata dalle uscite.
19
Esempio
Si consideri il sistema che
implementa
un
codificatore
prioritario a 3 bit, in grado di
generare sulluscita x lindice del
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
x=0;
20
a
b
c
x0
x1
Esempio (II)
Il comportamento del sistema pu essere descritto
come tavola di verit o come funzione booleana:
a
0
0
0
0
1
1
1
21 1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
x1
0
0
1
1
1
1
1
1
x0
0
1
0
0
1
1
1
1
Funzione
booleana
x1 = a + b
x 0 = a + bc
Tavola di verit
Sistemi sequenziali
La risposta di un sistema sequenziale in un qualsiasi
istante dipende da
valori X applicati in quellistante agli ingressi del
sistema
storia passata del sistema stesso, che viene di solito
codificata dallo stato Y del sistema.
In genere lo stato del sistema non direttamente
osservabile dallesterno.
22
Formati di descrizione
La descrizione di un sistema sequenziale pu
assumere 3 forme:
tavola degli stati/uscite
diagramma degli stati/uscite
funzione di transizione degli stati e funzione
delle uscite.
23
Esempio
Si consideri un sistema avente un ingresso I e
unuscita O.
Il sistema campiona con una frequenza prefissata
lingresso I.
Luscita O assume il valore 1 se durante i 3 istanti di
campionamento precedenti lingresso I ha assunto i
valori 101, e assume il valore 0 diversamente.
24
Variabile di stato
Poich deve memorizzare quanto necessario
relativamente alla storia passata del sistema, in
prima battuta potrebbe memorizzare i valori
assunti da I negli ultimi 3 istanti di
campionamento
Quindi la variabile di stato pu assumere 8
possibili valori
possibile dimostrare che sono sufficienti 5
valori.
25
0
0
A0
0
26
B0
1
C0
1
D1
E0
0
0
A0
0
27
B0
1
C0
1
D1
E0
0
0
A0
0
28
B0
1
C0
1
D1
E0
29
Ingresso
Stato futuro
Uscita
Funzione di transizione
Siano X, Y e Z tre spazi associati alle variabili di ingresso,
di stato e di uscita, rispettivamente.
La funzione di
trasformazione
transizione
effettua
la
seguente
f: X x Y Y x Z
Per poter esprimere f come funzione booleana
necessario eseguire preventivamente lassociazione tra i
simboli che identificano gli stati e la rispettiva
rappresentazione booleana.
30
f(1,E) D,0
dipende
32
Livello elettrico
Il sistema viene modellato come interconnessione di
componenti (quali resistori, condensatori, induttori,
etc.) connessi tra loro in serie o parallelo.
Il calcolo dei valori di corrente e tensione nei diversi
punti (a regime o nel transitorio) comporta la
risoluzione di un sistema di equazioni differenziali.
Sul mercato esistono vari pacchetti SW (ad es.
SPICE) in grado di simulare circuiti di dimensioni
comunque ridotte.
33
Esempio
possibile modellare il comportamento di un
transistor attraverso opportuni modelli, tra cui il
seguente (noto come modello di Giacoleto):
34
Livello transistor
Il sistema viene visto come uninterconnessione 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
dellordine dei nanosecondi.
base
collettore
emettitore
35
Tensioni/valori logici
In un circuito elettronico
comune associare i valori logici
(0/1) alle tensioni (alta/bassa).
Vmax
V1,min
di
Valore logico 1
Vsoglia
Valori proibiti
V0,max
Valore logico 0
Inverter NMOS
Vcc
Se Vin<Vsoglia:
Vout
base
Vin
37
collettore
emettitore
Vout=Vcc
Se Vin>Vsoglia:
Vout=Vground
Buffer PMOS
Vcc
Se Vin>Vsoglia:
Vout
base
Vin
38
collettore
emettitore
Vout=Vcc
Se Vin<Vsoglia:
Vout=Vground
Inverter CMOS
Integra la tecnologia NMOS con
quella PMOS.
C sempre un transistor aperto
ed uno chiuso.
In questo modo non c mai un
collegamento tra alimentazione
e massa, e si riduce il consumo.
39
Vcc
Vin
Vout
Porte logiche
Utilizzando i transistor possibile implementare
una qualsiasi porta logica.
quindi possibile costruire una libreria di porte
logiche utilizzabili per il progetto al livello
superiore.
40
41
NAND
x1
x1
z
x2
z = x1x2 = x1 x2
42
x2
z = x1x2 = x1 x2
OR
x1
x1
z
x2
z = x1 +x2 = x1 x2
43
z
x2
z = x1 +x2 = x1 x2
EXNOR
x1
x1
z
x2
z = x1 x2
44
z
x2
z = x1 x2
z=x
45
Implementazione
delle porte logiche tramite transistor
Vcc
Vcc
Vout
Vout
V1
V1
V2
46
Porta NAND
V2
Porta NOR
Circuiti combinatori
Implementano funzioni combinatorie.
Una funzione combinatoria una trasformazione
z: Bn B,
dove B={0,1}.
Le funzioni combinatorie non coinvolgono il tempo (a differenza
di quelle sequenziali) e possono essere descritte (se il numero di
variabili piccolo) attraverso tavole di verit.
I circuiti combinatori possono essere implementati attraverso
opportune combinazioni di porte logiche.
48
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.
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 ed 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 ed 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 ed xj un ccbf
non sono presenti cicli.
54
55
Fanin
il numero di segnali in ingresso ad una porta.
Fanout
il numero di altre porte pilotate dalluscita di
una porta.
56
Questa porta ha
fanin= 2
fanout = 1.
Questa porta ha
fanin= 2
fanout = 2.
Questa porta ha
fanin= 3
fanout = 1.
57
58
Esempio
59
60
Esempio (II)
La derivazione della seconda forma dalla prima
pu essere ottenuta applicando le regole
dellalgebra booleana.
61
Algebra booleana
definita sui seguenti elementi ed operatori:
elementi: 0, 1
operatori: AND (), OR (+), NOT ( )
assiomi: (Postulati di Huntington)
chiusura:
K={0,1}
a K , b K ab K , a + b K
aa = 0, a + a = 1
a + b = ab
ab = a + b
Involuzione:
a=a
63
Minimizzazione
Dovendo implementare il circuito combinatorio
corrispondente ad una tavola di verit data,
preferibile identificare quello con costo minimo, ad
esempio in termini di minimo numero di porte.
64
65
Circuiti a 2 livelli
Una soluzione comune al problema del progetto dei circuiti
combinatori rappresentata dai circuiti a 2 livelli.
Il metodo di Quine-McCluskey permette di passare dalla tavola
di verit ad un circuito minimo a 2 livelli.
Esso consiste nel trasformare la tavola di verit in una
espressione booleana di uno dei 2 tipi seguenti:
somma di prodotti
f ( x 1 , x 2 , ..., x n ) =
i1
x i 2 ... x in
prodotto di somme
f ( x 1 , x 2 , ..., x n ) =
66
x
i
i1
+ x i 2 + ... + x in
67
x0
y0
c1
c0
c0=x0c1+y0c1+x0y0
68
x0
y0
c1
c0
c0 = x0c1 y0c1 x0 y0
Terminologia
letterale
xi
70
x 1 + x 2 + ... + x n
cubo
x 1 x 2 ... x n
minterm
maxterm
x i ... x j ... x k
Terminologia
Corrisponde a x o x
i
letterale
xi
71
x 1 + x 2 + ... + x n
cubo
x 1 x 2 ... x n
minterm
maxterm
x i ... x j ... x k
Canonicit
Qualsiasi funzione booleana possiede due possibili forme
canoniche:
come somma di prodotti, ove tutti i prodotti sono cubi
come prodotto di somme.
72
74
Mappe di Karnaugh
Una
mappa
di
Karnaugh
una
rappresentazione grafica del comportamento di
un sistema combinatorio
Tale rappresentazione utilizzabile per
funzioni con una sola uscita e un numero di
ingressi fino a 4
Utilizzando le mappe di Karnaugh possibile
identificare la funzione booleana minimale per
il sistema, e di qui realizzare il circuito
minimale corrispondente.
75
Esempio
x3
Tavola di verit
76
x1x2
00 01
11
10
Mappa di Karnaugh
Esempio
x3
Ogni casella a 1
corrisponde a un
minterm
x1x2
00 01
11
10
Caselle a 1 adiacenti
L'ordine delle
corrispondono ad un
non
Mappa dicolonne
Karnaugh
Tavola di verit
cubo
casuale!
77
Esempio
x3
Tavola di verit
78
Ogni casella a 1
corrisponde ad un
minterm
x1x2
00 01
11
10
Mappa di Karnaugh
x3
Tavola di verit
79
x1x2
00 01
11
10
Mappa di Karnaugh
Esempio
f1
x3
Tavola di verit
80
x1x2
00 01
11
10
Mappa di Karnaugh
Procedura di sintesi
Una volta costruita la mappa di Karnaugh
corrispondente alla tabella di verit, si deve
- Identificare il minimo insieme di cubi che
coprono tutti gli 1 nella mappa di
Karnaugh, scegliendo quelli di dimensione
massima; i cubi possono eventualmente
sovrapporsi
- Trasformare i cubi nella corrispondente
espressione in forma di somma di prodotti
- Costruire il corrispondente circuito.
81
Esempio
x3
82
x1x2
00 01
11
10
Esempio
x3
83
x1x2
00 01
11
10
Esempio
f1
x3
84
x1x2
00 01
11
10
85
Esempio
x1x2
x3 x4
86
00 01
11
10
00 0
01 0
11 1
10 0
f1
Esempio
x1x2
x3 x4
87
00 01
11
10
00 0
01 0
11 1
10 0
Esempio 2
x1x2
x3 x4
88
00 01
11
10
00 0
01 1
11 1
10 0
f1
Esempio 2
x1x2
x3 x4
89
00 01
11
10
00 0
01 1
11 1
10 0
Dont care
In alcuni casi le specifiche per un sistema
combinatorio possono non prevedere alcun
valore in uscita in corrispondenza di alcune
combinazioni di ingresso, ad esempio perch
queste non si presentano mai
In tal caso si parla di valori dont care
Il processo di sintesi pu sfruttare questi valori
per minimizzare il circuito.
90
Esempio
Consideriamo
una
funzione che riceve in
ingresso
i
4
bit
corrispondenti ad una
cifra BCD e ritorna il
valore 1 se e solo se tale
cifra corrisponde ad un
multiplo di 3:
91
Esempio
La corrispondente mappa di Karnaugh include
6 caselle con il valore dont care
Esse
possono
essere
considerate
come
se
contenessero il valore 0 o 1, a
seconda di cosa pi
conveniente per la sintesi.
92
Ritardi
Luscita di una porta logica assume il valore corretto solo dopo che
trascorso un certo tempo k dalla stabilizzazione dei segnali di
ingresso.
1
Segnale
di ingresso
1
t
Segnale
di uscita
0
1
93
Ritardo k della
porta
Cammino critico
Il cammino lungo il quale il ritardo con il quale
una variazione in ingresso si propaga sulle uscite
massimo si definisce cammino critico (critical
path).
La lunghezza del cammino critico determina la
massima frequenza con cui si possono applicare i
vettori di ingresso al circuito.
Ridurre la lunghezza del cammino critico permette
quindi di migliorare le prestazioni (in termini di
velocit) dei circuiti.
96
Livelli
Ad ogni porta logica in un circuito pu essere assegnato un livello
nella seguente maniera:
il livello delle porte che hanno come ingressi solo linee di
ingresso 1
il livello delle altre porte pari al livello della porta di ingresso
avente il livello massimo, pi 1.
La profondit di un circuito pari al livello della porta di livello
massimo. Questa alimenter sicuramente una linea di uscita.
97
Livelli: esempio
z0
I
x0
I
y0
c1
II
III
I
98
c0
99
Cammino critico
z0
I
x0
I
y0
c1
II
III
I
100
c0
Circuiti sequenziali
Implementano funzioni dipendenti dal tempo
Sono in grado di memorizzare informazioni
Sfruttano i ritardi delle porte:
x1
x2
z(t+)=x1(t)x2(t)
101
Flip-Flop
in grado di mantenere linformazione per un periodo
illimitato di tempo.
Comportamento:
S=R=0: mantiene il
valore su y1
S
y2
R
102
10
01
2<1
00
y1
01
y1
10
S
y2
10
2>1
103
00
2
10
Flip-Flop SR asincrono
S
00
y
10
Simbolo
Schema
104
SR
01
Flip-Flop sincrono
Clock
y
R
105
Clock
y
R
C
106
Flip-Flop D
D
D
Clock
R
y
0
y
Tavola degli Stati
107
Circuiti sincroni
Il funzionamento di un circuito sequenziale dipende dai valori
relativi dei ritardi delle porte logiche nella rete combinatoria
(corse o race).
Questo pu essere evitato facendo in modo che la
memorizzazione dei valori in ingresso avvenga per tutti i FlipFlop in uno stesso istante, determinato dal valore di un segnale
comune (clock).
Tale segnale ha un andamento ad onda quadra la cui frequenza
dipende dal ritardo massimo attraverso la rete combinatoria.
I circuiti dotati di clock si dicono sincroni.
108
Modello di Huffman
x1
x2
z1
z2
Rete
combinatoria
y1
y2
109
FF
Y1
Y2
y3
Y3
y4
Y4
Clock
110
111
Esempio
Consideriamo il riconoscitore della sequenza 1-0-1.
Il diagramma degli stati
0
0
A0
0
112
B0
1
C0
1
D1
E0
Esempio (II)
Lo stato E equivalente allo stato C; il diagramma
pu quindi essere cos semplificato:
0
A0
0
113
B0
1
C0
1
D1
Esempio (II)
Lo stato E equivalente allo stato C; il diagramma
pu quindi essere cos semplificato:
0
A0
0
114
B0
1
1
C
D1
0
Due
diagrammi
degli stati sono
equivalenti se data una qualsiasi
sequenza
di ingresso, il loro
1
comportamento in termini di valori
prodotti sulle uscite identico.
Esempio (III)
Una possibile codifica degli
stati :
115
00
01
10
11
Esempio (IV)
La
funzione
di
transizione degli stati :
f(0,00) 00
f(1,00) 01
f(0,01) 10
f(1,01) 01
f(0,10) 00
f(1,10) 11
f(0,11) 10
116f(1,11) 01
Esempio (V)
Si possono ora sintetizzare le 3 funzioni f1, f2 e h,
ottenendo:
+
f2=i
h=y1y2
117
i +
Esempio (VI)
Il circuito che implementa il riconoscitore di
sequenza :
CLK
FF1
i
FF2
118
Frequenza di lavoro
La frequenza del clock f deve essere
determinata in modo che il tempo T = 1 / f tra
due fronti di clock successivi rispetti la seguente
disuguaglianza
T>+
dove
il massimo
combinatoria
ritardo
della
logica
Frequenza di lavoro
T0: un nuovo insieme di valori applicato agli
ingressi della parte combinatoria
T0
120
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
121
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
122
T1 T2
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 + : il nuovo valore disponibile sulle
uscite dei flip flop
T0
123
T1 T2 T3
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
tra valore
T1 e T2
e tra T3 e T0 possono
assumono
stabile
essere minimizzati a piacere dallutente.
T2: si applica un nuovo fronte al segnale di
ogni caso
deveuscite
essere della parte
clock ilInvalore
sulle
combinatoria memorizzato
T > + nei flip flop
T3 = T2 + : il nuovo valore disponibile sulle
uscite dei flip flop
T0
124
T1 T2 T3 T0
T1 T2 T3