Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Imparare a:
descrivere e
progettare
le MACCHINE DIGITALI
Aspiranti ingegneri
dellinformazione
Dispense di riferimento
R. Laschi, M.Prandini Reti Logiche Esculapio, 2007
Contatti
Tel
: 051 2095421
e-mail : tullio.salmoncinotti@unibo.it
dopo la lezione
Date importanti:
Ultima lezione:
Marted 20/12/2011
Prima prova scritta: 16/1/2012 ore 14:00 Aule tbd
Altre prove scritte: febbraio, giugno, luglio, settembre
Requisiti
per il superamento dellesame
Metodo
Esperienza
Creativit
Informazione
Segnali analogici
e digitali
Informazione
Linformazione un attributo di un messaggio
Linformazione una entit misurabile
Lunit di misura dellinformazione il bit (da Binary digIT)
Informazione diminuzione di incertezza
Infatti linformazione esprime una scelta tra un insieme di
alternative possibili
Un messaggio porta un bit di informazione se rappresenta una
scelta (cio una riduzione di incertezza) tra due alternative
possibili
Una informazione pu essere rappresentata in bit
Il bit (binary digit) una variabile che pu assumere solo
due valori: 1 e 0
La quantit di informazione associata a un messaggio data
dal numero minimo di bit necessari a rappresentarlo
Esempi di informazione
sorgente
segnali
destinazione
Il disturbo
Il segnale digitale
segnale analogico interpretato
come insieme finito di valori
H
L
Hello
1010
1010
Hello
A/D
Hello
RL
TX
RX
RL
D/A
segnali binari
tastiera
mouse
Hard disk
segnali analogici
altoparlante
plotter
dinamo
Elaborazione
di
segnali
binari
Convertitore
D/A
segnali binari
lampadina
stampante
Hard disk
levetta:
alta/bassa
tensione elettrica:
High/Low
contatto:
aperto/chiuso
cristallo liquido:
trasparente/opaco
lampadina:
accesa/spenta
corrente elettrica:
presente/assente
Architettura dellhardware
di un calcolatore elettronico
(rappresentazione astratta)
BUS
Processore
Memoria
principale
Unit di
ingresso/
uscita
10
I livelli di astrazione
CPU
ALU CU
BIU M
MEM
I/O
Livello
Architettonico
Livello
Logico
Livello
Fisico
I telefonini
I pda (personal data assistant) palmari
Le centrali telefoniche
I router e i server di Internet
gli strumenti di misura
gli strumenti biomedici
i mezzi di trasporto
Le macchine per la composizione dei giornali
Gli elettrodomestici
..
11
12
Saper
Descrivere
Progettare
e Analizzare
Le
Macchine
Digitali
1: Macchine digitali
13
Capitolo 1
Macchine digitali
Analisi
Macchina
digitale
Descrizione
della
STRUTTURA
14
univoco
esito
Analisi
Macchina
digitale
Descrizione
della
STRUTTURA
15
Schemi a blocchi
16
Alfabeto
dingresso
ingresso dei
dati
uscita dei
risultati
processo di elaborazione:
relazione ingresso/uscita
relazione di causa/effetto
trasformazioni
e dinamica
Descrivibili
mediante
Tabelle
Diagrammi
Frasi
Acronimi
17
M1
M2
b) in parallelo
u1
M2
u2
c) in retroazione
M1
s
M2
(i)
{ uu =M
=M (i)
1
M1
i
Funzione
composta
Deve operare prima il blocco a
sinistra, poi quello a destra.
u=M2(M1(i))
Sistema di
funzioni
18
Bit, configurazioni
Binarie
e relative forme donda
v
0
1
tensione
alta
bassa
v
1
0
C
0
1
Contatto
aperto
chiuso
C
1
0
L
0
1
Lampada
accesa
spenta
L
1
0
19
Configurazioni binarie
n bit
b2 b1 b0
Bn-1
Es:
abc
000
100
010
001
110
101
011
111
0
t
t1
t2
t3
Andamento di 3 segnali:
010
101
000
101
000
uscita
11
00
01
10
01
20
Dal capitolo 4
Reti logiche
i1
.
.
in
Configurazioni
di k bit
che codificano
i simboli di
un insieme S
u1
.
.
um
F:
IS U
G:
IS S
y1
.
.
yk
memoria
memoria
Y1
.
.
Yk
Configurazioni
di m bit
che codificano
i simboli di
un insieme U
Configurazioni
di k bit
che codificano
i simboli di
un insieme S
Reti combinatorie
Rete combinatoria:
comportamento e struttura
i1
.
.
.
.
.
in
F: I U
sistema di m funzioni
di n variabili binarie
u1 = F1(i1,.., in)
.
ui = Fi(i1,.., in)
.
.
um = Fm(i1,.., in)
COMPORTAMENTO
2n righe
x1 x2 xn
0 0 0 ..0
1 0 0 ..0
0 1 0 ..0
1 1 0 ..0
0 0 1 ..0
0 1 1 ..1
1 1 1 ..1
Funzioni
incomplete
Rete combinatoria:
Descrizione della struttura: schema logico
i1
.
.
.
.
.
in
G3
G2
G1
Gk
u1 = F1(i1,.., in)
.
ui = Fi(i1,.., in)
.
.
um = Fm(i1,.., in)
STRUTTURA
Lo schema logico
un insieme di reti logiche (blocchi Gi) interconnesse
Ad ogni blocco dello schema logico verr associato
nella realizzazione fisica un componente hardware
comportamento-espressione-struttura
Espressione
Comportamento
Struttura
x1
x2
z = F(x1,.., xn)
sintesi
G3
x3
tdv
analisi
Gk
xn
G2
G1
Descrizione algebrica
delle reti combinatorie
Entit appartenenti
alle reti logiche
Segnali
Blocchi
Gate
Schemi
Corrispondenti entit
nella descrizione algebrica
Variabili binarie
Funzioni booleane
Operazioni logiche
Espressioni logiche
Funzioni
booleane
Funzioni di
variabili binarie
(funzioni booleane)
i1
.
.
.
in
rete
combinatoria
F (n) = 2
4 funzioni di 1 variabile,
16 funzioni di 2 variabili,
256 funzioni di 3 variabili,
65.536 funzioni di 4 variabili, ecc.
2n righe
x1 x2 xn
0 0 0 ..0
1 0 0 ..0
0 1 0 ..0
1 1 0 ..0
0 0 1 ..0
0 1 1 ..1
1 1 1 ..1
Funzioni
incomplete
Funzioni
Incomplete di
variabili binarie
i1
.
.
.
in
rete
combinatoria
x1 x0
00
01
10
11
La configurazione di ingresso 11
Non si verificher mai!
Non devo specificare la corrisondente uscita
F(x1, x0)
0
0
1
-
STOP
STOP
GO
Valore di F non specificato
Altro esempio:
BCD 7 segmenti
4 funzioni
di una
variabile
f0: falso
f3: vero
f1 : x
(f1 vero se e solo se x vero)
f2: non x (f2 vero se e solo se x falso)
x1
0
1
0
1
f0
0
0
0
0
f15
1
1
1
1
f3
0
0
1
1
f5
0
1
0
1
f12
1
1
0
0
f10
1
0
1
0
f1
0
0
0
1
f14
1
1
1
0
f7
0
1
1
1
f8
1
0
0
0
f9
1
0
0
1
f6
0
1
1
0
f13
1
1
0
1
f2
0
0
1
0
f0 e f15: costanti
f11
1
0
1
1
f4
0
1
0
0
16
funzioni
di due
variabili
f1: x0 e x1
f7: x0 o x1
Funzione binaria:
Prodotto Logico
.
AND
Porte logiche
Strutture e comportamenti elementari (3)
Il gate or
Il gate and
Contatti in parallelo
Contatti in serie
A
B
I1
I1
aperto
aperto
chiuso
chiuso
I2
aperto
chiuso
aperto
chiuso
AB
aperto
aperto
aperto
chiuso
I1
I1
aperto
aperto
chiuso
chiuso
I2
aperto
chiuso
aperto
chiuso
AB
aperto
chiuso
chiuso
chiuso
V1
V2
Vu
L
L
H
H
L
H
L
H
H
L
L
L
I2
I2
Il gate nor
Il not elettronico
I
x1
x2
+E
+E
Vu
0 volt
oppure
+E volt
Vi
+E volt
oppure
0 volt
Vu
Vi
Vu
V1
0
+E
+E
0
V2
Porte logiche
Strutture e comportamenti elementari (3)
Il gate or
Il gate and
Contatti in serie
A
I1
realizza f7: x0 o x1
realizza f1: x0 e x1
operazione logica:
prodotto logico
I1
aperto
aperto
chiuso
chiuso
I2
aperto
chiuso
aperto
chiuso
Contatti in parallelo
AB
aperto
aperto
aperto
chiuso
I1
I1
aperto
aperto
chiuso
chiuso
I2
aperto
chiuso
aperto
chiuso
AB
aperto
chiuso
chiuso
chiuso
I2
I2
Il gate nor
Il not elettronico
I
x1
x2
+E
realizza
f8: non (x0 o x1)
+E
Vu
0 volt
oppure
+E volt
Vi
+E volt
oppure
0 volt
Vu
Vi
Vu
V1
0
+E
+E
0
V2
V1
V2
Vu
L
L
H
H
L
H
L
H
H
L
L
L
I2
0
0
1
1
AB
0
0
0
1
Il gate and
I1
0
1
0
1
I2
0
0
1
1
AB
0
1
1
1
Il gate or
Due differenti
astrazioni!
{aperto = 0, chiuso = 1}
Contatti in serie
A
B
I1
Logica negativa
I2
I1
aperto
aperto
chiuso
chiuso
{aperto = 1, chiuso = 0}
I2
aperto
chiuso
aperto
chiuso
AB
aperto
aperto
aperto
chiuso
I2
I2
00
00
11
11
Il gate or
AB
AB
00
11
11
11
I1
0
1
0
1
I2
0
0
1
1
AB
0
0
0
1
Il gate and
Due differenti
astrazioni!
{aperto = 0, chiuso = 1}
Contatti in parallelo
A
Logica negativa
I1
I1
aperto
aperto
chiuso
chiuso
{aperto = 1, chiuso = 0}
I2
aperto
chiuso
aperto
chiuso
AB
aperto
chiuso
chiuso
chiuso
I2
La stessa realizzazione
corrisponde a due diverse espressioni dette duali
deviatore
D1
I2
I2
00
00
11
11
AB
AB
00
11
11
01
I1
0
1
0
1
I2
0
0
1
1
AB
1
0
0
1
{alto = 0, basso = 1}
{alto = 1, basso = 0}
{aperto = 0, chiuso = 1}
{aperto = 1, chiuso = 0}
deviatore
D2
D1
alto
basso
alto
basso
D2
alto
alto
basso
basso
AB
aperto
chiuso
chiuso
aperto
Operazioni
logiche
Funzioni e operazioni
Unoperazione detta logica se la descrizione matematica
di una funzione booleana di una o di due variabili.
NOTAZIONI
f(x) = *(x)
f(x) = (x)*
f(x,y) = *(x,y)
f(x,y) = x * y
SIMBOLI
f descritta da ..
operatore
Identit : z = x
Regole:
0=0
1=1
Funzione: x
0
1
z
0
1
Realizzazione:
x
Complementazione : x , x, x
Regole:
0 = 1
1 = 0
Funzione: x
0
1
= : il complemento di 0 vale 1
z
1
0
Realizzazione:
x
Somma logica: x + y , x y
Regole:
0+0=0
0+1=1
1+0=1
1+1=1
Funzione: x
0
0
1
1
y
0
1
0
1
z
0
1
1
1
Realizzazione:
x
z
y
Prodotto logico: x . y , xy , x y
Regole:
0.0=0
0.1=0
1.0=0
1.1=1
Funzione: x
0
0
1
1
y
0
1
0
1
z
0
0
0
1
Realizzazione:
x
z
y
Funzione: x
0
0
1
1
y
0
1
0
1
z
0
1
1
0
Realizzazione:
z
1
0
0
1
Realizzazione:
x
z
Equivalenza: x y
Regole:
00=1
01=0
10=0
11=1
Funzione: x
0
0
1
1
y
0
1
0
1
z
y
Funzione: x
0
0
1
1
y
0
1
0
1
z
1
1
1
0
Realizzazione:
x
z
y
Funzione: x
0
0
1
1
y
0
1
0
1
z
1
0
0
0
Realizzazione:
x
z
z
Reti combinatorie
comportamento-espressione-struttura
Espressione
Comportamento
Struttura
x1
x2
z = F(x1,.., xn)
sintesi
G3
x3
tdv
analisi
Gk
xn
G2
G1
Struttura
x1
x2
z = F(x1,.., xn)
sintesi
G3
x3
G2
tdv
analisi
Gk
xn
Ad ogni gate Gi associata una operazione logica
Ad ogni operazione logica associata una funzione (tdv)
Ad ogni schema logico associata una espressione
Ad ogni espressione associata una funzione (tdv)
G1
Operazioni e Espressioni
f1(x) = x
f7(x,y) = x + y
f1(x,y) = x . y
f6(x,y) = x y
f2(x) = x
f8(x,y) = x y
f14(x,y) = x y
f9(x,y) = x y
(x y) 0
a + (b.c)
Deduzione dellespressione
che descrive uno schema
a
c = a
e=c+d
f=c+b
d = b
z=e.f.g
= (c+d)(c+b)(a+d)
= (a+b).(a+b).(a+b)
g=a+d
Esempi
Schema logico
b
c
a
c
b
a
b
c
a
Epressione
a+(b.c)
(((a) + b) . c)
a (bc)
Espressioni e Funzioni
Le 2n valutazioni di una espressione E(x1, x2, , xn) creano
2n coppie x, z x, z x Bn, z B
Esempio: E(a,b,c) = a+(b.c)
abc E
E(0,0,0) = 0+(0.0) = 0
000 0
E(0,0,1) = 0+(0.1) = 0
001 0
E(0,1,0) = 0+(1.0) = 0
010 0
E(0,1,1) = 0+(1.1) = 1
011 1
E(1,0,0) = 1+(0.0) = 1
100 1
E(1,0,1) = 1+(0.1) = 1
101 1
E(1,1,0) = 1+(1.0) = 1
110 1
E(1,1,1) = 1+(1.1) = 1
111 1
T1) Ogni espressione descrive una e una sola funzione completa.
Conseguenza: Ad ogni espressione corrisponde una e una sola tdv.
Questa tdv completamente specificata.
Funzioni
di
n variabili
Espressioni
di
n variabili
Espressioni
di F
F
Metodi per dimostrare lequivalenza: induzione perfetta
manipolazione algebrica
Propriet
T2) propriet commutativa (+, ., , , , )
a*b=b*a
T3) propriet associativa (+, ., )
(a * b) * c = a * (b * c) = a * b * c
T4) complementi:
(x + y) = x y
(x . y) = x y
(x y) = x y
N.B. lapice!
Reti combinatorie
Introduzione
Algebra della
commutazione
Analisi
Sintesi Canonica
Sintesi con
decoder e OR
9/28/2011
p
Operatore logico
combinatorio AND
9/28/2011
z = F(x1,.., xn)
0 0 0 ..0
1 0 0 ..0
0 1 0 ..0
1 1 0 ..0
0 0 1 ..0
0 oppure 1
0 oppure 1
0 oppure 1
0 oppure 1
0 oppure 1
Nellalgebra di
comutazione i blocchi Gi
sono AND OR e NOT
x1
x2
sintesi
x3
analisi
0 1 1 ..1
1 1 19/28/2011
..1
0 oppure 1
0 oppure 1
G3
G2
G1
Gk
xn
Reti Combinatorie
9/28/2011
Reti Combinatorie
1) Operazioni:
9/28/2011
Reti Combinatorie
(segue)
Postulati:
0 = 1
1 = 0
Funzione: x
0
1
z
1
0
Realizzazione:
z
x
Operatore NOT
Somma logica: z = x + y , z = x y
Postulati:
0+0=0
0+1=1
1+0=1
1+1=1
9/28/2011
Funzione: x
0
0
1
1
y
0
1
0
1
Reti Combinatorie
z
0
1
1
1
Realizzazione:
Operatore OR
z
y
(segue) 6
Prodotto logico: z = x . y , z = xy , z = x y
Postulati:
0.0=0
0.1=0
1.0=0
1.1=1
Funzione: x
0
0
1
1
y
0
1
0
1
z
0
0
0
1
Realizzazione:
x
z
y
Operatore logico AND
C una corrispondenza biunivoca tra gli operatori logici NOT, OR, AND
e le tre operazioni dellalgebra complementazione, somma logica e
prodotto logico (rispettivamente rappresentate con i caratteri + . )
C una corrispondenza biunivoca tra ingressi delloperatore logico e
operandi delloperazione algebrica
Reti Combinatorie
Sintesi Analisi
9/28/2011
Definizione di espressione
dellalgebra di commutazione
Espressione: - Stringa finita di costanti, variabili, operatori e parentesi,
formata in accordo con le seguenti regole:
1) 0 e 1 sono espressioni
2) una variabile una espressione
3) se A unespressione, lo sono anche (A) e A
4) se A, B sono espressioni, lo sono anche (A+B), (A.B)
Esempi:
a+(b.c)
a.b
a + bc
(a+b)
ab + 0 + ab
Reti Combinatorie
Definizione di
Funzione completamente specificata
Una Funzione completamente specificata di n variabili binarie z=F(x1, x2, , xn)
linsieme di tutte le 2n coppie ordinate x,z x Bn, z B formate da
una configurazione di valori delle n variabili indipendenti xi e
dal corrispondente valore della variabile dipendente z.
Una funzione pu essere descritta in diversi modi, come, ad esempio:
Con la tabella della verit
X2
X1
X0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
x1 x0
x2
00 01 11 10
0 0
1
1 0
1 0
Reti Combinatorie
10
n+1 colonne
2n righe
9/28/2011
0 1 1 ..1
1 1 1 ..1
0 oppure 1
0 oppure 1
11
Esempi:
a
0
0 0
1 1
1
1
1
cd
00
01
11
10
00 01 11 10
0 1 0 1
1 0 1 0
0 1 0 1
1 0 1 0
Somma
logica
9/28/2011
Parit pari su
4 variabili
Reti Combinatorie
12
celle adiacenti
b
a
0 1
0
1
2 variabili
9/28/2011
ab
a
bc
00 01 11 10
0
1
3 variabili
Reti Combinatorie
cd
00 01 11 10
00
01
11
10
4 variabili
13
cd
de
de
00
bc
01 11 10 bc
00
00
00
01
11
01
11
10
10
a=0
01 11 10
ef
01 11 10 cd
00
00
01
11
01
11
10
10
ab=00
ef
00
cd
a=1
00
00
00
00
5 variabili
01
11
10
01
11
10
9/28/2011
Reti Combinatorie
ab =01
ef
01 11 10 cd
01 11 10
ab =10
01 11 10
ab=11
6 variabili
14
Check point
Cosa una funzione completamente specificata e come possiamo
rappresentarla?
Cosa una espressione dellalgebra di commutazione e quali
operazioni pu includere?
Reti Combinatorie
15
9/28/2011
Reti Combinatorie
16
Esempio:
Valutiamo E(a,b,c) = a+(b.c) con a=0, b=1, c=0
0+(1.0)
= 0+0
=0
N di valutazioni - Una espressione di n variabili pu
essere valutata su 2n configurazioni binarie diverse
9/28/2011
Reti Combinatorie
17
9/28/2011
Reti Combinatorie
18
9/28/2011
Reti Combinatorie
19
Reti Combinatorie
20
Esercizio
Verificare che le valutazioni di
E1=(a.b) + (b.c) + (a.b)
E2=(a+b).(a+c)
sono identiche a quelle di
E = a+(b.c)
9/28/2011
Reti Combinatorie
abc
000
001
010
011
100
101
110
111
E E1 E2
0
0
0
1
1
1
1
1
21
Valutazione
z = F(x1,.., xn)
0 0 0 ..0
1 0 0 ..0
0 1 0 ..0
1 1 0 ..0
0 0 1 ..0
0 oppure 1
0 oppure 1
0 oppure 1
0 oppure 1
0 oppure 1
Avendo studiato
come si passa
dallespressione
alla funzione,
dobbiamo ora
esaminare il
passaggio dallo
schema logico
della rete
combinatoria
allespressione
9/28/2011
x1
x2
G3
x3
G2
G1
Gk
analisi
0 1 1 ..1
1 1 1 ..1
0 oppure 1
0 oppure 1
Reti Combinatorie
xn
Schema logico:
insieme di operatori AND,
OR, NOT
interconnessi in serie e
parallelo
22
c = a
e = (c . b)
z=e+f
= (c.b) + (a.d)
= ab + a.b
b
d = b
9/28/2011
f = (a . d)
Reti Combinatorie
23
Check point
Esistono altre tecniche di analisi oltre a quella basata sulla valutazione delle
espressioni? S, le vedremo in alcune diapositive successive
9/28/2011
Reti Combinatorie
24
Esercizi
Si disegni lo schema logico dellespressione: ac + bc
La rete cos ottenuta si chiama multiplexer a due vie
Si analizzi questa rete (se ne tracci la mappa) e se ne descriva a
parole il funzionamento
Reti Combinatorie
25
9/28/2011
Reti Combinatorie
26
Funzioni
di
n variabili
Espressioni
di
n variabili
Espressioni
di F
F
Se si vuole analizzare una espressione conviene cercare tra le espressioni equivalenti
alla espressione data, quelle pi facili da analizzare! Questa ricerca pu essere effettuta
applicando le equivalenze indicate nelle prossime due diapositive
9/28/2011
Reti Combinatorie
27
Equivalenze notevoli
dellalgebra di commutazione
Propriet della somma e del prodotto logico:
T4) commutativa
T5) associativa
T6) distributiva
T7) idempotenza
T8) identit
T9) limite
9/28/2011
x+y
x.y
(x + y) + z
(x . y) . z
(x . y) + (x . z)
(x + y) . (x + z)
x+x
x.x
x+0
x.1
x+1
x.0
Reti Combinatorie
=
=
=
=
=
=
=
=
=
=
=
=
y+x
y.x
x+y+z
x . y. z
x . (y + z)
x + (y . z)
x
x
x
x
1
0
28
(x )
=x
T11) limite
x+x
x.x
xy + xy
(x+y).(x+y)
=1
=0
=x
=x
T12) combinazione
9/28/2011
= x .y
= x +y
xy + xz + yz
(x+y).(x+z).(y+z)
Reti Combinatorie
= xy + xz
= (x+y).(x+z)
29
Dualit
Espressioni duali - Data lespressione E(x, y, z, .., 1, 0, +, ., )
detta duale di E e denotata con Ed lespressione che si ottiene
scambiando tra loro 0,1 e .,+
Ed = E(x, y, z, .., 0, 1, .,+, ).
Esempio: A+B e A.B (nellesempio si scambiano solo gli operatori . e +)
Propriet della dualit:
(Ed)d = E
Ed = E(x, y, z, ...)
Se E1 = E2 allora (E1 )d = (E2 )d
La terza propriet dice che se due espressioni sono equivalenti, lo sono anche le
rispettive duali. Si verifichi questa propriet nelle equivalenze notevoli dei lucidi
precedenti
N.B. - A causa delle due possibili codifiche dei valori di un segnale binario, il comportamento di ogni struttura di
interruttori azionabili indipendentemente uno dallaltro ha due descrizioni algebriche, una duale dellaltra.
9/28/2011
Reti Combinatorie
30
Funzione dellOR:
Luscita vale zero se entrambi gli ingressi valgono zero
9/28/2011
Reti Combinatorie
31
9/28/2011
Reti Combinatorie
32
Reti Combinatorie
33
Check point
9/28/2011
Reti Combinatorie
34
9/28/2011
Reti Combinatorie
35
Espressioni equivalenti
Schemi logici
Massima flessibilit
9/28/2011
Reti Combinatorie
36
c
a
b
a
b
a
b
a
b
c
tp
tp
tp
tp
9/28/2011
Reti Combinatorie
tp
tp
Questa rete
pi veloce
37
I1
I0
I1
3 U
I0
9/28/2011
Reti Combinatorie
38
ENCODER a 3 ingressi
x2
x1
x0
z1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
N.B. le altre configurazioni
sono per ipotesi impossibili
9/28/2011
z0
0
1
0
1
x2
x1
x0
z1
z0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
Reti Combinatorie
39
z1 = x2 x1x0+ x2 x1 x0
z0 = x2 x1x0+ x2 x1x0
u1 = x2 + x1
u0 = x2 + x0
9/28/2011
x2
x1
x0
z1 u1 z0 u0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
Reti Combinatorie
0
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
40
9/28/2011
Reti Combinatorie
41
a+(b.c)
9/28/2011
b
c
a
Reti Combinatorie
42
(((a) + b) . c)
c
b
a
9/28/2011
Reti Combinatorie
43
9/28/2011
Sintesi con
espressioni
canoniche
decoder
Sintesi con
decoder e or
esercizi ed esempi
Reti Combinatorie
44
Espressioni normali
Espressione normale - Espressione del tipo somma di prodotti
logici (SP) o prodotto di somme logiche (PS).
Lo schema logico corrispondente ad una espressione normale
contiene al pi due gate in cascata (tre, se non sono disponibili
anche i complementi dei segnali di ingresso).
Reti Combinatorie
45
Espressioni canoniche
T16) Espressione canonica SP (Somma di Prodotti)
Ia forma canonica - Ogni funzione pu essere descritta da una
somma di tanti prodotti logici quante sono le configurazioni
per cui vale 1. In ciascun prodotto, o mintermine, appaiono tutte
le variabili, in forma o vera o complementata a seconda che nella
configurazione corrispondente presentino valore 1 o valore 0.
T17) Espressione canonica PS (Prodotto di Somme)
IIa forma canonica - Ogni funzione pu essere descritta da un
prodotto di tante somme logiche quante sono le configurazioni
per cui vale 0. In ciascuna somma, o maxtermine, appaiono tutte
le variabili, in forma o vera o complementata a seconda che nella
configurazione corrispondente presentino valore 0 o valore 1.
9/28/2011
Reti Combinatorie
46
Reti Combinatorie
47
x0
x1
1 se
x0=0 e x1=1
oppure se
x0=1 e x1=0
0 negli altri
due casi
x1 x0 x0x1
0
0
1
1
0
1
0
1
0
1
1
0
9/28/2011
1 se e solo se
x0=1 e x1=0
x0
x1
Reti Combinatorie
48
x1
x0
z1
z0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
z1
z1 = x2 x1x0+ x2 x1 x0
z0 = x2 x1x0+ x2 x1x0
9/28/2011
z0
x2 x1 x0
Reti Combinatorie
49
ri
r1 0
an-1
ai
a1 a0
bn-1
bi
b1 b0
sn sn-1
si
s1 s0
9/28/2011
Reti Combinatorie
r a b R
000
001
010
011
100
101
110
111
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
50
r r a a b b
9/28/2011
Reti Combinatorie
51
B A U0 U1 U2 U3
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
U1 = B. A
0
0
0
1
U2 = B . A
U3 = B . A
A
B
9/28/2011
Reti Combinatorie
52
U3
A
B
Quando EN=1, vale 1 luscita
il cui pedice, in decimale,
corrisponde al numero binario
in ingresso (A bit di minor peso)
9/28/2011
N.B. - In realt
le uscite sono
attive basse
SN74139 U0
(MSI)
U1
EN
U2
A
U3
B
SN74138 U0
(MSI)
U1
U2
U3
EN
U4
A
U5
B
U6
C
U7
SN74154 U0
(MSI)
U1
U2
U3
U4
U5
U6
U7
U8
U9
U10
EN
U11
A
U12
B
U13
C
U14
53
D
U15
1
C
D
U0
U
DEC 1
U2
2:4
U3
U0
U1
DEC
U2
2:4
U3
U0
U1
U2
U3
U0
U1
U2
U3
U0
U1
U2
U3
U4
U5
U6
U7
DEC
2:4
DEC
2:4
9/28/2011
A
B
U0
U
DEC 1
U2
2:4
U3
U8
U9
U10
U11
U12
U13
U14
U15
54
rab
0
1
2
3
4
5
6
7
000
001
010
011
100
101
110
111
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
S (r,a,b) = S3 m (1,2,4,7)
S (r,a,b) = P3 M (0,3,5,6)
R (r,a,b) = S3 m (3,5,6,7)
R (r,a,b) = P3 M (0,1,2,4)
Reti Combinatorie
55
b
a
r
A
B
C
U0
U1
U2
U3
U4
U5
U6
U7
R
S
56
Struttura
x1
x2
sintesi
G3
x3
z = F(x1,.., xn)
analisi
Gk
xn
G2
G1
Algebre binarie
Algebra binaria - Sistema matematico formato da un insieme di
operatori definiti assiomaticamente ed atti a descrivere con una
espressione ogni funzione di variabili binarie
Calcolo delle proposizioni Crisippo (250 a.c.)
{vero, falso}} {e, o, non}} G. Boole (1854)
tre operatori
Algebra di commutazione
{0, 1}} {+, . , }}
tre operatori
Algebra del nand
{0, 1}} {}
un operatore
C. Shannon (1938)
Algebra lineare
{0, 1}} { , .}}
due operatori
4.2
Algebra di
commutazione
Algebra di commutazione
1) Costanti:
0, 1
2) Operazioni:
somma logica (+)
complementazione ()
3) Postulati:
0+0=0
0.0=0
0 = 1
1+0=1
1.0=0
1 = 0
0+1=1
0.1=0
1+1=1
1.1=1
4) Variabili:
Espressioni
5) Espressione - Stringa finita di costanti, variabili, operatori
e parentesi, formata in accordo con le seguenti regole:
1) 0 e 1 sono espressioni
2) una variabile una espressione
3) se A unespressione, lo anche (A)
4) se A, B sono espressioni, lo sono anche (A+B), (A.B)
Esempi:
a+(b.c)
a.b
(a+b)
a + bc
ab + 0 + ab
Teoremi di
equivalenza
Equivalenze notevoli
Propriet della somma e del prodotto logico:
E1) commutativa
E2) associativa
E3) distributiva
E4) idempotenza
E5) identit
E6) limite
x+y
x.y
(x + y) + z
(x . y) . z
(x . y) + (x . z)
(x + y) . (x + z)
x+x
x.x
x+0
x.1
x+1
x.0
=
=
=
=
=
=
=
=
=
=
=
=
y+x
y.x
x+y+z
x . y. z
x . (y + z)
x + (y . z)
x
x
x
x
1
0
Equivalenze notevoli
Propriet della complementazione:
E7) involuzione
(x ) = x
E8) limitazione
x+x=1
x.x =0
xy + xy = x
(x+y).(x+y) = x
E9) combinazione
Eliminazione
della
ridondanza
(x + y) = x . y
(x . y) = x + y
xy + xz + yz = xy + xz
(x+y).(x+z).(y+z) = (x+y).(x+z)
x1
x0
z1
z0
x2
x1
x0
z1
z0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
-
0
1
0
1
-
x2
x1
x0
z1 u1 z0 u0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
Espressioni
canoniche
Espressioni canoniche
T6) Espressione canonica SP (Somma di Prodotti)
Ia forma canonica - Ogni funzione di n variabili descritta da una
somma di tanti prodotti logici quante sono le configurazioni
per cui vale 1. In ciascun prodotto, o mintermine, appare ogni
variabile, in forma vera se nella configurazione corrispondente
vale 1, in forma complementata se vale 0.
T7) Espressione canonica PS (Prodotto di Somme)
IIa forma canonica - Ogni funzione di n variabili descritta da un
prodotto di tante somme logiche quante sono le configurazioni
per cui vale 0. In ciascuna somma, o maxtermine, appare ogni
variabile, in forma vera se nella configurazione corrispondente
vale 0, in forma complementata se vale 1.
a
b
a
b
EX-OR
x0
x1
x0 x1 x0x1
0
0
1
1
0
1
0
1
0
1
1
0
x0x1= (x0+x1).(x0+x1)
x0
x1
Full Adder
S = r. a. b + r. a . b + r . a. b + r. a . b
R = r. a . b + r . a. b + r . a . b + r . a . b
rab
000
001
010
011
100
101
110
111
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
r r a a b b
Espressioni canoniche
di funzioni incomplete
x2
x1
x0
z1
z0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
x2 x1 x0
z1 = x2 x1x0+ x2 x1 x0 + x2 x1 x0 + ....
z0 = x2 x1x0+ x2 x1x0 + ....
z1
z0
Notazioni
simboliche
rab
000
001
010
011
100
101
110
111
R
0
0
0
1
0
1
1
1
S
0
1
1
0
1
0
0
1
S (r,a,b) = 3 m (1,2,4,7)
S (r,a,b) = 3 M (0,3,5,6)
R (r,a,b) = 3 m (3,5,6,7)
R (r,a,b) = 3 M (0,1,2,4)
m(0)=CBA
m(1)=CBA
m(1)=BA
m(2)=CBA
m(2)=BA
m(3)=CBA
m(4)=CBA
m(3)=BA
m(5)=CBA
m(6)=CBA
A
B
i = B.21+A.20
m(7)=CBA
A
B
C
i = C.22+B.21+A.20
i = C.22+B.21+A.20
Decoder 3:8
m(0) = C.B.A
m(1) = C.B.A
m(2) = C.B.A
m(3) = C.B.A
m(4) = C.B.A
m(5) = C.B.A
m(6) = C.B.A
m(7) = C.B.A
A
B
C
Il DEC n:2n
DEC
n:2n
Bit di
indirizzo
A0
A1
.
.
An-1
0
1
.
.
.
.
.
.
.
.
2n-1
Codice
1 su 2n
i = An-1.2n-1+ .. +A1.21+A0.20
b
a
r
A
B
C
U0
U1
U2
U3
U4
U5
U6
U7
R
S
Espressioni
generali
Esempio:
E= x1+x2 x3
= x1.(0+x2 x3)+x1.(1+x2 x3)
= (x1+(0+x2 x3)).(x1+(1+x2 x3))
F(1,x2 ...xn)
F
I0
F(0,x2 ...xn)
xn ... x2
Esempio :
x1
x3
x2
x1
MUX
I1
F
I0
A
La decomposizione indotta da T8
x1
x2
.
.
xn
x1
x2
.
xn-1
z=F(x1,x2 ...xn)
F(x1 ...xn-1,1)
I1
z
F(x1 ...xn-1,0)
xn
I0
A
F(x1 ...xn-2,0,0)
F(x1 ...xn-2,1,0)
F(x1 ...xn-2,0,1)
F(x1 ...xn-2,1,1)
xn-1
xn
I0
I1
I2
I3
A
B
Vie dingresso
i = An-1.2n-1+ .. +A1.21+A0.20
Bit di
indirizzo
0
MUX
1
.
.
.
z
.
.
.
.
2n-1
An-1 . A1 A0
Applicazione iterata
dei teoremi di espansione
E(x1x2 x3) = x1+x2 x3
= x1(0+x2x3)+x1(1+x2x3)
= x1x2(0+0.x3)+x1x2(0+1.x3)+ x1x2(1+0.x3)+ x1x2(1+1.x3)
= x1x2 x3(0+0.0) +
m(0).E(0) +
x1x2 x3 (0+0.1) +
m(1).E(1) +
x1x2 x3(0+1.0) +
m(2).E(2) +
x1x2 x3 (0+1.1) +
m(3).E(3) +
x1 x2 x3(1+0.0) +
m(4).E(4) +
x1 x2 x3 (1+0.1) +
m(5).E(5) +
x1 x2 x3(1+1.0) +
m(6).E(6) +
x1 x2 x3 (1+1.1)
m(7).E(7)
Espressioni generali
T10 e T11)- Ogni funzione descritta da una espressione in
cui compaiono o tutti i mintermini o tutti i maxtermini:
2n-1
(SP)
i=0
2n-1
(PS)
i=0
Caso SP
m(i) : mintermine di n bit
F(i): valore dalla funzione
per la n-pla di valori delle
variabili per cui m(i)=1
Caso PS
M(i) : maxtermine di n bit
F(i): valore dalla funzione
per la n-pla di valori delle
variabili per cui M(i)=0
a b r
S R
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1 0
a b r
I0
Mux
I1
I2
I3
Z
I4
I5
I6
I7 C B A
I0
Mux
I1
I2
I3
Z
I4
I5
I6
I7 C B A
4.3
Famiglie logiche
Livello logico
Livello fisico
FA
S
a
b
R
HA
CELLA:
1 EX-NOR a due ingressi
14 13 12 11 10
14 13 12 11 10
14 13 12 11 10
14 13 12 11 10
SN7404
9
SN7411
14 13 12 11 10
SN7407
SN7408
SN7423
SN7432
14 13 12 11 10
14 13 12 11 10
SN7400
SN7498
8
9
7
9
4
6
7
10 11 12
10 11 12 13 14
16 15 14 13 12 11 10
Aritmetica
Registro acc.
Contatore
Decoder
Multiplexer
28 27 26 25 24 23 22 21 20 19 18 17 16 15
14 13 12 11 10
Full adder
24 23 22 21 20 19 18 17 16 15 14 13
Trascodifica P
Buffer
RAM
Fan-in e fan-out
> 10
> 10
1
> 10
x0
x1
x2
E2
x0
x1
x2
P = ((b0 b1)
(b2 b3))
((.. b7))
E = P (((b0 b1)
(b2 b3))
((.. b7)))
b2 b3
9
SN7498
14 13 12 11 10
b4 b5
14 13 12 11 10
SN7498
b0 b1
b6 b7
0/P
P/E
P/E
0/P
280
280
Trasmettitore
280
280
Ricevitore
Tempo di
propagazione
Velocit di commutazione:
il ritardo del Not elettronico
+E
causa: Vi
Vu
alta
bassa
tempo
Vi
effetto: Vu
alta
T1
T2
bassa
tempo
Simbolo grafico
del gate
o gate ideale
ritardo di
propagazione
xn
gate reale (o quasi)
Ritardo inerziale
nessun
effetto
tp
Comportamento
in transitorio
c
a
b
a
b
a
b
a
b
c
tp
tp
tp
tp
tp
tp
Questa rete
pi veloce
F(i)
comportamento
in
transitorio
F(i)
comportamento
a
regime
I1
I0
A
I1
3 U
I0
A
U?
2
I1
Retroazioni dirette
delle reti asincrone
3
a
Tipo alea statica Luscita, che dovrebbe
rimanere costante, assume
temporaneamente laltro
valore.
U?
c
b
U
4
Tipo alea dinamica Luscita varia pi volte
prima di assestarsi sul
nuovo valore.
A,B
10
01
Decoder
U3
A
B
SN74139
(MSI)
EN
A
B
U0
U1
U2
U3
SN74138 U0
(MSI)
U1
U2
U3
EN
U4
A
U5
B
U6
C
U7
SN74154 U0
(MSI)
U1
U2
U3
U4
U5
U6
U7
U8
U9
U10
EN
U11
A
U12
B
U13
C
U14
D
U15
1
C
D
A
B
0
1
DEC
2
2:4
3
DEC
2:4
U0
U1
U2
U3
DEC
2:4
U4
U5
U6
U7
DEC
2:4
U8
U9
U10
U11
DEC
2:4
U12
U13
U14
U15
Multiplexer
I Multiplexer
A, B, C, D bit dindirizzo
Ii via o bit di programmazione
SN74157
I0
I1
Z
A
SN74153
I0
I1
I2
Z
I3
BA
SN74151
I0
I1
I2
I3
Z
I4
I5
I6
I7
CBA
SN74150
I0
I1
I2
I3
I4
I5
I6
I7
Z
I8
I9
I10
I11
I12
I13
I14
I15
DCBA
Q3
Q2Q1 Q0
Q3
000 001 010 011 100 101 110 111
0 1 0 1 0 0 0 1 0
1 1 0 0 1 1 1 0 1
I0 SN74151
I1
I2
I3
Z
I4
I5
I6
I7 C B A
Q 3 Q 3 1 0
Q2Q1Q0
genera le 4 funzioni di una variabile !
Data Selector
OE
H
H
L
I
L
H
X
O
L
H
Z
OE
OE
I
O
tpZ(L/H)
tp(L/H)Z
Retroazione
V1 (t + 2p) = Vu (t)
V3
Vu
2p
V1
V2
+E
+E
Vu
V1
V2
V3
Livello logico
Variabile dipendente
Variabile indipendente
Segnale in retroazione
Latch SR a NOR
Q = R (q S)
Q = (R + (q + S))
Q = R. (q + S)
S, R
00
01
11
10
Q
V2=V3=1 vietato !
Pongo S = V2
R = V3
Q = Vu
Vu = V3 (V1 V2)
Q/q
2p
S: 0
1
t = 2p
S
Q
q
La durata minima di un comando di set/reset spesso indicata
con la denominazione di tempo di set-up del latch
Manipolazione algebrica
A I0 I1 U
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
Ia forma canonica:
U = A. I0 . I1+ A. I0 . I1 + A . I0. I1 + A . I0 . I1
4 AND a 3 ingressi e 1 OR a 4 ingressi
forme equivalenti ottenute per manipolazione:
= A. I0 . (I1+ I1) + A . (I0 + I0) . I1
= A. I0 . 1 + A. 1 . I1
= A. I0 + A . I1
I1
U
I0
A
Decoder 3:8
m(0) = C.B.A
m(1) = C.B.A
m(2) = C.B.A
m(3) = C.B.A
m(4) = C.B.A
m(5) = C.B.A
i = C.22+B.21+A.20
carico
1A
1 B
1C
m(6) = C.B.A
m(7) = C.B.A
Tempo di propagazione:
il fenomeno del ritardo nel rel
corrente
C
A
D
B
la causa
SI
NO
tempo
contatto
AB
leffetto
T1
T2
chiuso
aperto
tempo
I0
I1
Z
I2
I3
A0
A1
DEC
0
MUX
4:1
un 3-state abilitato !
Situazione
Occorre di corto circuito
(conflitto
una pausaelettrico) con
malfunzionamenti
tra possibili
unabilitazione
dele sistema
laltra
I0
I1
I1
I2
I2
I3
I3
EN
A0
A1
DEC
Ai
EN
Z
EN
A0
A1
2 1 0
DEC
S2
S1
S0
0 BA
1 P/S 1
2
3 MUX
S2
S1
S0
EN A1 A0
Il Bus
Sintesi di reti
combinatorie
Espressioni generali
MULTIPLEXER
25 ottobre 2001
rab
0
1
2
3
4
5
6
7
000
001
010
011
100
101
110
111
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
S (r,a,b) = S4 m (1,2,4,7)
S (r,a,b) = P4 M (0,3,5,6)
R (r,a,b) = S4 m (3,5,6,7)
R (r,a,b) = P4 M (0,1,2,4)
Espressioni generali
La notazione del lucido precedente pu essere generalizzata come segue: si
consderano tutti i mintermini (caso SP) o i maxtermini(caso PS) e semplicemente
si mascherano cio si fanno sparire quelli che non interessano
(SP)
2n-1
(PS)
i=0
Caso PS
Caso SP
m(i) : mintermine di n bit
F(i): valore dalla funzione per la
n-pla di valori delle
variabili per cui m(i)=1
25 ottobre 2001
Espressione in grado
di descrivere qualsiasi
funzione di n variabili
Rete combinatoria
programmabile in grado
di realizzare qualsiasi
funzione di n variabile
Questa rete un
multiplexer a 2n vie e pu
anche essere realizzata con
un decoder di n variabili, 2n
AND con n+1 ingressi e un
OR con 2n ingressi
F(2n-1)
x1 x2 x n
25 ottobre 2001
I0
I1
I2
I3
U0 U1 U2 U3
DECODER
I1
C1
I0
C0
F E Schematico:
Realizzazione di una tdv con un MUX
Una tdv pu essere rappresentata
algebricamente con lespressione generale SP:
23-1
X2 X1 X0 U
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0 0
1 1
0 1
1 0
0 1
1 0
0 0
1 1
.
.
.
I0
I1
I2
I3
I4
I5
I6
I7
A,B,C,D
Ii
25 ottobre 2001
SN74153
I0
I1
I2
Z
I3
BA
SN74151
I0
I1
I2
I3
Z
I4
I5
I6
I7
CBA
ingressi ( xi )
bit di programmazione ( pi )
Sintesi con multiplexer
SN74150
I0
I1
I2
I3
I4
I5
I6
I7
Z
I8
I9
I10
I11
I12
I13
I14
I15
DCBA 7
Ci vuole un MUX
per ogni
variabile di
uscita!
a b r
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
S R
0 0 0
1 1 0
0 1 0
1 0 1
0 1 0
1 0 1
0 0 1
1 1 1
Vcc
25
ottobre 2001
GND
1
0
I0 SN74151
I1
I2
I3
Z
I4
I5
I6
I7 C B A
I0 SN74151
I1
I2
I3
Z
I4
I5
I6
I7 C B A
1 0
a b r
0
a=0 0
0
0
1
a=1 1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0 1
1 0
RC
MUX
0 U
1 C
1 0
0 1
RC
a
b
Una RC per a =0 e
una RC per a =1
r
Sintesi con multiplexer
25 ottobre 2011
11
Albero di MUX
Espressione SP di un MUX a 4 vie
U = A1. A0. I0 + A1. A0 . I1 + A1 . A0. I2 + A1 . A0 . I3
Manipolazione algebrica:
U = A1. (A0. I0 + A0 . I1) + A1 . (A0. I2 + A0 . I3)
I0
I1
I2
I3
MUX
0 U
1 A
MUX
0 U
1 A
MUX
0 U
1 A
A0
A1
Disponendo opportunamente pi MUX in serie/parallelo si
25 ottobre
2001 un MUX con
Sintesiun
con numero
multiplexer maggiore di vie.
12
ottiene
Esempio 1:
a b F(a,b)
0 0
0
0 1
1 0
1
1 1
1
25 ottobre 2001
b F(0,b)
0
0
1
1
1
b F(1,b)
0
1
1
1
Esempio 2:
E= x1+x2 x3
= x1.(0+x2 x3)+x1.(1+x2 x3)
= (x1+(0+x2 x3)).(x1+(1+x2 x3))
13
Espressioni Generali e
Teoremi di Shannon
se applichiamo n volte
i teoremi di espansione
a una espressione E di n variabili
ritroviamo le espressioni generali
25 ottobre 2001
14
F(1,1,0,Q3)
F(1,1,1,Q3)
Unulteriore iterazione
avrebbe portato alla
espressione generale
(somma di prodotti)
15
Il simulatore logico che utilizziamo nel corso di reti logiche deve sapere quale
dispositivo elettronico verr impiegato per realizzare le reti che vogliamo
simulare
I dispositivi utilizzabili sono gate array programmabili in campo (FPGA o
Field Programmable Gate Arrays) costruiti da Altera
Questi dispositivi sono costituiti da matrici di celle logiche, la cui struttura di
riferimento sar illustrata nel prossimo lucido
Solitamente le celle sono tutte uguali
Le loro principali caratteristiche sono la configurabilit e la interconnettibilit:
esiste un programma detto fitter che automaticamente converte la rete data
in una rete equivalente composta di celle configurate e interconnesse
Alcuni FPGA mantengono la configurazione anche in assenza di
alimentazione
Altri FPGA mantengono la configurazione su una memoria volatile che perde
il contenuto in assenza di alimentazione
25 ottobre 2001
16
25 ottobre 2001
17
Rappresentazione concettuale di
una cella logica di FPGA
a,b,c,d
ab
cd
00
01
11
10
00 01 11 10
X 1 1 X
X 1 1 X
X 1 1 X
0 1 1 X
z
MUX
0 U
1 A
YF
RC di 4 variabili
configurabile
e
Preset e clear del FFD non sono indicati
Il clock un segnale globale, esteso cio
a tutto il dispositivo
25 ottobre 2001
18
25 ottobre 2001
19
Q2Q1 Q0
Q3
000 001 010 011 100 101 110 111
0 1 0 1 0 0 0 1 0
- - 1
1 1 0 - - -
20
25 ottobre 2001
21
Q3
Sintesi con multiplexer
22
F(0,1,1,Q3)
F(1,0,0,Q3)
F(1,0,1,Q3)
F(1,1,0,Q3)
Q3
F(1,1,1,Q3)
23
I0 SN74151
I1
I2
I3
Z
I4
I5
I6
I7 C B A
Q3 Q3 1 0
25 ottobre 2001
F(0,0,0,Q3) = 1
F(0,0,1,Q3) = 0
F(0,1,0,Q3) = 1
F(0,1,1,Q3) = 0
F(1,0,0,Q3) = 0
F(1,0,1,Q3) = 0
F(1,1,0,Q3) = 1
F(1,1,1,Q3) = Q3
F
La soluzione b) presenta
minor numero di componenti e
minor ritardo rispetto alla a) .
24
Esercizio 4.9
Si consideri la precedente funzione Z e si esegua
la sintesi con MUX a 8 vie estraendo dapprima
25 ottobre 2001
25
Capitolo 2
Codifica binaria
dellinformazione
2.1
Rappresentazione
dellinformazione
Esempi:
testo e caratteri
numero e cifre
musica e note
parlato e fonemi
Macchine digitali e
rappresentazione dellinformazione
Rappresentazione esterna
delle richieste e delle notifiche
Rappresentazione binaria
delle richieste e delle notifiche
controllo
macchina
digitale
segnali
binari
Rappresentazione binaria
dei comandi e degli stati
Rappresentazione
esterna dei dati
Rappresentazione
esterna dei risultati
Rappresentazione binaria
dei dati e dei risultati
4
La codifica binaria
della informazione
n bit
b1 b2 b3
bn
Codici binari
Codice binario
Codice binario - Funzione dallinsieme delle 2n configurazioni
di n bit ad un insieme di M informazioni (simboli alfanumerici,
colori, eventi, stati interni, ecc.).
Condizione necessaria per la codifica: 2n M
0 0 0 ..0
2n config.
1 0 0 ..0
0 1 0 ..0
1 1 0 ..0
0 0 1 ..0
0 0 1 ..1
n.u.
1
5
M
informazioni
?
0 1 1 ..1
1 1 1 ..1
7
Propriet di un codice
Il codice una rappresentazione convenzionale dellinformazione.
La scelta di un codice condivisa da sorgente e destinazione
ed ha due gradi di libert:
il numero di bit (qualsiasi, a patto che sia 2n M )
lassociazione tra configurazioni e informazioni
A parit di n e di M le associazioni possibili sono
C = 2n! / (2n-M)!
n = 1, M = 2
n = 2, M = 4
n = 3, M = 8
n = 4, M = 10
C=2
C = 24
C = 64.320
C = 29.000.000.000
8
facilit duso
verifica dintegrit
Codici ridondanti
n > nmin
nmin = lg2 M
non ridondanti
n: n di bit
Codici
minimizzazione
del costodi codifica
Impossibilit
4
3
2
1
0
2
22
42
62
M: n di informazioni
0
1
+
-
00 01 11 10
1
0
segno
4.104
Esempi
0
1
n.u.
colori
Cifre decimali
Altri
29
miliardi
di
codici
a
4 bit
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
BCD
zero
uno
due
tre
quattro
cinque
sei
sette
otto
nove
1111110
0110000
1101101
1111001
0110011
1011011
0011111
1110000
1111111
1110011
7 segmenti
1000000000
0100000000
0010000000
0001000000
0000100000
0000010000
0000001000
0000000100
0000000010
0000000001
uno su dieci
10
Codice a 7 segmenti
a
b
zero
uno
ecc.
g
e
a b c d e f g
1 1 1 1 1 1 0
0 1 1 0 0 0 0
c
d
11
Trascodifica
12
Codici
esterni
Trascodifica
La calcolatrice tascabile
Codice
ridondante
per la
visualizzazione
dei dati
Codice
ridondante
per la
introduzione
dei dati e
dei comandi
Codice
BCD
per la
rappresentazione
interna
dei numeri
14
Le due trascodifiche
x4
x3
x2
x1
ENCODER
y2
trascod.
da 1 su 4
a binario
DECODER
x2
x1
x0
trascod.
da binario
a 1 su 8
y1
y0
y7
y6
y5
y4
y3
y2
y1
y0
x4 x3 x2 x1
0 0 0 0
0 0 0 1
0 0 1 0
0 1 0 0
1 0 0 0
y2 y1 y0
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
x2 x1 x0
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
y7 y6 y5 y4 y3 y2y1 y0
0 0 0 0 0 0 0 1
0 0 0 0 0 0 1 0
0 0 0 0 0 1 0 0
0 0 0 0 1 0 0 0
0 0 0 1 0 0 0 0
0 0 1 0 0 0 0 0
0 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0
15
2.2
La codifica
dei caratteri
17
E
T
A
I
N
M
O
S
R
G
W
U
K
t0
t 1 t 2 t3
D
F
H
B
X
V
C
Y
L
J
Z
Q
P
t0
t1
t2
t3
Caratteristiche:
Lunghezza variabile
Stringhe separate da pause
I 95
96 simboli di testo: ASCII a 7 bit (1967)
000
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
001
caratteri
di
controllo
010
011
100
101
110
111
SP
!
"
#
$
%
&
'
(
)
*
+
,
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
@0000
A0001
B 0010
C 0011
D0100
E 0101
F 0110
G0111
H1000
I 1001
J 1010
K1011
L 1100
M1101
N1110
O1111
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
'
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
DEL
19
3 bit
8 conf.
5 bit : 32 configurazioni
Stampanti
ad impatto:
ASCII
Tonalit:
1 pixel, 8 bit
Stampanti
laser, a getto,
monitor:
BITMAP
Colori RGB:
1 pixel, 3x8 bit
Font
Matrice di pixel: ad es. 8x8
21
2.3
La codifica
dei numeri
22
23
Numeri in base B
1) Rappresentazione:
an-1 a0 , a-1 a-m
ai {0, 1, ., (B-1)}
2) Valore:
(N)B = (an-1 .Bn-1 + + a0 .B0 + a-1 .B-1 + a-2 .B-2 + a-m .B-m)
24
N2
0000
0001
0010
0011
0100
0101
0110
0111
b1 b0
N10
8
9
10
11
12
13
14
15
N2
1000
1001
1010
1011
1100
1101
1110
1111
25
Conversione di base
26
ESEMPIO: 131
131/2 = 65 + 1.0,5
65/2 = 32 + 1.0,5
32/2 = 16 + 0
16/2 = 8 + 0
8/2 = 4 + 0
4/2 = 2 + 0
2/2 = 1 + 0
1/2 = 0 + 1.0,5
10000011
B = (A / 2) 10 = (Qi + Ri2-1) 10
A = Qi
bi = Ri
i = i+1
NO
A=0
SI
fine
28
0xc4
Sistema ottale: B = 8,
cifre: 0, 1, ,7
codice OCTAL: 0 = 000, , 7 = 111
n di bit per cifra: 3
ESEMPIO: 11000100 11-000-100 304
29
Operazioni
aritmetiche
30
ri
ai
bi
riporto
carry
rn rn-1 rn-2
r1 0
an-1 an-2
a1 a0
bn-1 bn-2
b1 b0
sn sn-1 sn-2
s1 s0
si
ri+1
Full
Adder
ri ai bi ri+1
si
000
001
010
011
100
101
110
111
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
31
y2
y1
y0
x3
x2
x1
x0
p7
p6
p5
p4
p3
0 +
0 +
0 +
p2
p1
p0
32
in in-1 ...
i0
f1
f2 ... fn
in in-1 ...
i0
f1
f2 ... fn
Notazione scientifica
s
mn mn-1 ... m0
en en-1 ... e0
33
2.5
Protezione
34
Disturbi e Guasti
sorgente
canale
linea di trasmissione
unit di memoria
destinazione
bit di controllo
(check bits)
I
F
Tx
C
Rx
C
F
R C bit di
sindrome
derrore
36
ricezione
Memoria
in Tx ?
N=N+1
NO
NO
Errore?
SI
E=E+1
Correzione
Perdita
consentita?
SI
SI
SI
Ritrasmissione
Manutenzione
o sostituzione
del canale
E/N >k?
NO
Scarto
37
Codici con
rilevazione
di errori
38
Pe =
Esempio:
p=1%
N.B. molto alto!
n
8
16
n
e
( ) . pe . (1-p)n-e
P0
P1
P2
92,27 % 7,46 % 0,26 %
85.14 % 13,76 % 1,04 %
P3
0,005 %
0,049 %
41
x1
0
0
1
1
x2
0
1
0
1
p
0
1
1
0
Codice con
DMIN = 2
x1
0
0
0
0
1
1
1
1
x2
0
0
1
1
0
0
1
1
p
0
1
0
1
0
1
0
1
e
0
1
1
0
1
0
0
1
42
x1
x2
x1
0
0
1
1
x2
0
1
0
1
p
0
1
1
0
p = F(x1, x2)
x1
0
0
0
0
1
1
1
1
x2
0
0
1
1
0
0
1
1
p p e
0 0
0
0 1
1
1 0
1
1 1
0
Si/No
1 0
1
1confronto
1
0
1 0
0
0 1
1
e = E(x1, x2, p)
p = F(x1, x2)
e = F(p, p)
43
Codici con
correzione
di errori
44
101
111
000
010
100
110
001
011
Tx trasmette
o NO = 000 o SI = 111
101
111
000
010
001
011
46
Tx
C
Rx
C
F
R
ICU
000
1 1di
C0bit
101
sindrome
110
derrore
47
Aritmetica binaria
sui numeri relativi
(somme e sottrazioni)
e
Unit aritmetiche
Esercizi da laboratorio ed
esercizi per lesame
30 ottobre 2011
Reti Logiche
N
-8
-7
-6
-5
-4
-3
-2
-1
b3 b2 b1 b0
0 0 0 0
0 1 1 1
0 1 1 0
0 1 0 1
0 1 0 0
0 0 1 1
0 0 1 0
0 0 0 1
N
0
7
6
5
4
3
2
1
n bit
bn-1 bn-2
b1
[-2
n-1,
b0
+(2n-1 - 1)
Rappresentazioni in bit:
N 0 : segno-valore assoluto
N < 0: 2n - |N|
con (-N) espresso in
segno-valore assoluto
2
= 2n - N
Calcolo di A - B con A B
A - B = A + (2n - B) - 2n
= (A + 2B) - 2n
calcola A + 2B
elimina il bit pi pesante
NB: se A<B il risultato non un numero naturale!
CI 4 BIT
a0 ADDER
a1
a2
a3
s0
s1
s2
s3
b0
b1
b2
b3
CO
A-B
eseguendo 2A si ottiene -A
A: 0 0 0 1 (+1)
1 0 0 1 (-7)
1110 +
0110 +
1
1
2A: 1 1 1 1
(-1)
0 1 1 1 (+7)
eseguendo A+B si ottiene la somma algebrica fra A e B:
A = -3 1 1 0 1 + A = -4 1 1 0 0 +
B = -4 1 1 0 0 = B = +3 0 0 1 1 =
-7
1001
-1
1111
eseguendo A + 2(B) si ottiene A - B
A = -4 1 1 0 0 +
B = +5 0 1 0 1 =
+1
0001
Esercizi
Utilizzando la rappresentazione in complemento a 2 con n=5 si
eseguano le seguenti operazioni:
(-12) + (+4)
(-12) + (-1)
(-12) - (-12)
(-12) + (+12)
(-12) + (-4)
(+10) - (+5)
(+10) - (+11)
(+12) +(+5)
(-14) + (-4)
Qual il valore dei seguenti numeri relativi espressi nella rappresentazione
in complemento a 2:
1111, 11111111, 11111110, 1110, 01111111, 10000000
ATTENZIONE: lultimo bit di carry out verr dora in poi chiamato carry out il
termine overflow verr utilizzato solo per indicare lo stato di errore dovuto a
risultato non visualizzabile
6
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
err
s = a + b (in complemento a 2)
0
1
0
0
0
0
1
0
a7, a6, a0 +
b 7 , b6 , b0
err, s7, s6, s0
pi
(A B)
pab
000
001
010
011
100
101
110
111
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
p1 0
an-1
ai
a1 a0
bn-1
bi
b1 b0
dn-1
di
d1 d0
Lordine
delle righe
diverso da
quello che
stato
mostrato a
lezione
Per il laboratorio
e per lesame
10
sum
XOR
Progettazione
di un adder
da 4 bit
(prima parte)
b
cout
AND
cin_i
a_i b_i
a
HA
cout_i
C S
OR
HA
C S
12
a3
b3
a3
a2 b2
b3
a2
b2
a1
b1
a1
b1
a0
a0
b0
b0
4bit_Adder
a b
Cin
FA
a b
a b
Cin
FA
Cout
Cout S
Cin
FA
Cout
a b
Cin
FA
Cout
XOR
ov
ov
s3
s3
s2
s2
s1
s1
s0
s0
13
indifferenza
Si completi poi la mappa.
14
Esercizi
Assumendo tp come ritardo di propagazione di un gate, si
determini quale il ritardo massimo di un 4 bit Full-Adder
realizzato connettendo in cascata 4 moduli FA.
E possibile realizzare a due livelli un addizionatore a 4
bit ?
Quali sono i vantaggi e gli svantaggi di questa soluzione
rispetto alladdizionatore realizzato connettendo in
cascata 4 moduli FA?
15
Domande
Quanto impiega il carryout a propagarsi?
Perch meglio connettere il Cout di un full adder con
16
x
C0
y
0
M
U
1X
CI
C0
0
1
x+y
x+y+1
x-y-1
x -y
CI 4 BIT
a0 ADDER
a1
a2
a3
s0
s1
s2
s3
b0
b1
b2
b3
CO
0000
0M
U
X
1
C1
0M
U
0000 X
1
C0
0M
U
X
1
x+y
x+y+1
0 0 1
x - y -1
x -y
0 1 0
x+1
0 1 1
x-1
1 0 0
y+1
C2 C1 C0
0 0 0
C2 CI
CI
CI 4 BIT
a0 ADDER
a1
a2
a3
s0
s1
s2
s3
b0
b1
b2
b3
CO
1 0 1
1 1 0
-(y +1)
-y
4
1 1 1 2 -1 , -1
(.c y ).
1
C1
x0
+ c0
(c . y ).
1
C0
= c0 c1 yk.
C2
CI
CI
a0
4 BIT
ADDER
4 BIT
ADDER
x1
a1
x2
a2
s
s0 0
a3
s
s1 1
x3
y0
b0
y1
b1
y2
b2
y3
b3
s2s2
s3s
CO
10/11/2011
RETI LOGICHE T
RETI LOGICHE T
equivalenza tra
tdv e mem a sola lettura
Una funzione binaria di n var binarie si rappresenta con
una tdv avente:
2n righe, n colonne di ingressi, una colonna per luscita
RETI LOGICHE T
Corrispondenza tra
espressione generale e multiplexer
Ogni tdv pu essere rappresentata in forma algebrica con una
espressione generale (es.: espressione generale SP)
In virt della corrispondenza tra espressione generale e mux si
pu affermare che:
ogni f si pu realizzare con un mux
Una mem da un bit si pu realizzare con un mux
10/11/2011
2.
RETI LOGICHE T
RETI LOGICHE T
RETI LOGICHE T
Voltage
High (H)
Low (L)
Convenzione nella
denominazione del
segnale
x#
Segnale
attivo alto
Si parla anche di
Segnale
attivo basso
Con un NOT si trasforma un segnale attivo basso in segnale attivo alto e viceversa
X
X#
X = /X#
10/11/2011
A parole si dice:
X cancelletto un segnale
attivo basso
X un segnale attivo alto
RETI LOGICHE T
a#
a# = /a
Il principio di dualit
Allo schema elettrico (struttura) di un sistema
digitale si possono associare due diverse
espressioni logiche (interpretazioni) , una in LP e
una in LN
Le due espressioni si dicono una duale dellaltra.
Si passa da una espressione alla duale eseguendo
i seguenti due passi:
1. si scambiano tra loro le costanti 0 e 1
2. Si scambiano tra loro le operazioni di somma logica
e prodotto logico
10/11/2011
RETI LOGICHE T
RL1
RL
b
b#
a#
RLd
z#
z = /z#
RETI LOGICHE T
10
Reti combinatorie
Sintesi minima
con gli operatori dellalgebra di
commutazione
26 ottobre 2000
Richiamo: Definizione di
Funzione completamente specificata
Una Funzione completamente specificata di n variabili binarie z=F(x1, x2, , xn)
linsieme di tutte le 2n coppie ordinate {x,z | x Bn, z B}} formate da
una configurazione di valori delle n variabili indipendenti xi e
dal corrispondente valore della variabile dipendente z.
Una funzione pu essere descritta in diversi modi, come, ad esempio:
Con
Conlalatabella
tabelladella
dellaverit
verit
X2
X1
X0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
con
conlelemappe
mappedidiKarnaugh
Karnaugh
x1 x0
x2
00 01 11 10
0 0
1
1 0
1 0
ENCODER a 3 ingressi
x2
x1
x0
z1
z0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
N.B. le altre configurazioni
sono per ipotesi impossibili
26 ottobre 2000
0
1
0
1
x2
x1
x0
z1
z0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
z1 = x2 x1x0+ x2 x1 x0
z0 = x2 x1x0+ x2 x1x0
u1 = x2 + x1
u0 = x2 + x0
26 ottobre 2000
x2
x1
x0
z1 u1 z0 u0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
4
Esempi:
a
b
0
0 0
1 1
1
1
1
Somma
logica
26 ottobre 2000
cd
00
01
11
10
00 01 11 10
0 1 0 1
1 0 1 0
0 1 0 1
1 0 1 0
Parit pari su
4 variabili
2 variabili
26 ottobre 2000
ab
bc
00 01 11 10
0
1
3 variabili
Reti combinatorie - sintesi minima
cd
00 01 11 10
00
01
11
10
4 variabili
6
de
bc
de
00
01 11 10 bc
00
00
00
01
11
01
11
10
10
a=0
01 11 10
ef
00
01 11 10 cd
00
00
01
11
01
11
10
10
ab=00
ef
a=1
00
cd
00
00
00
00
5 variabili
01
11
10
01
11
10
26 ottobre 2000
ab =01
ef
01 11 10 cd
ab =10
01 11 10
01 11 10
ab=11
6 variabili
7
Raggruppamenti rettangolari
di ordine p (RRp)
x1 x0
00 01 11 10
0
00
1
01
11 p=3
p=2
10
x3 x2
4 variabili
Le celle di un RRp sono individuate da una ben precisa e comune configurazione binaria di n-p
variabili; infatti nella cella queste n-p variabili restano costanti, mentre le altre p variabili assumono
tutte le loro 2p configurazioni possibili.
Quindi una funzione che assume valore 1 in tutte e sole le celle di un RRp pu essere espressa come
termine prodotto di n-p variabili (quelle che non cambiano). Ad esempio si consideri lRR1 di figura:
Z= m3 + m7 = /x3 /x2 x1 x0 + /x3 x2 x1 x0 = /x3 x2 x0 (/x2 + x2) = /x3 x1 x0
Il termine prodotto individua tutte le celle in cui x3=0, x1=x0=0, qualunque sia il valore di x2
(p=1, quindi 4-1=3 variabili non cambiano, mentre una varibile (x2) assume le sue due configurazioni)
26 ottobre 2000
Quesito
Se una funzione assume valore 0 in tutte e sole le celle di
un RRp, pu detta funzione essere espressa come termine
somma di n-p variabili (quelle che non cambiano)?
La risposta s; lo si dimostri per un RR2, mutuando la
dimostrazione da quella data nel lucido precedente per
una funzione che assume valore 1 nelle celle di un RR1
26 ottobre 2000
Espressioni
minime
26 ottobre 2000
10
Complessit e velocit
Indicatori :
Complessit
Velocit di elaborazione
Esempio:
x
y
z
y
z
11
12
Espressioni minime
Espressione minima (SP/PS) - Descrizione algebrica di una
rete di costo minimo: espressione normale (SP/PS) formata
dal minimo numero possibile di termini (prodotti/somme)
aventi ciascuno il minimo numero possibile di letterali
(variabili in forma vera o complementata).
26 ottobre 2000
13
26 ottobre 2000
14
Esempio:
ab
cd
00
01
11
10
26 ottobre 2000
00 01 11
X 1 1
X 1 1
X 1 1
0 1 1
10
X
X
X
X
bd non un
implicante
primo !
d un implicante
primo !
15
26 ottobre 2000
16
26 ottobre 2000
17
Esempio di implicati
ab
cd
00
01
11
10
00 01 11
0 x x
0 x x
0 x x
0 x 1
10
0
0
0
0
c + d non un
implicato
primo !
non un c + d
implicato
primo !
d un implicato primo !
26 ottobre 2000
18
Esercizio
Tracciare i RR che individuano tutti gli implicanti primi e
gli implicati primi della seguente funzione:
ab
cd
00
00 0
01 11 10
1
1 0
11 1
01
10
19
26 ottobre 2000
20
cd
00
01
11
10
ab
00 01 11
1 1 0
1 - 0
1 1 0
1 1 0
10
0
1
1
00 01 11
1 1 0
1 - 0
1 1 0
1 1 0
10
0
1
1
c + acd
cd
00
01
11
10
26 ottobre 2000
c + ad
Lespressione minima !
21
cd
00
01
11
10
00 01 11
0 0 0
0 1 1
1 1 0
1 1 0
10
1
1
0
0
cd
00
01
11
10
00 01 11
0 0 0
0 1 1
1 1 0
1 1 0
10
1
1
0
0
acd+ abd + ac
Espressione minima
22
cd
00
01
11
10
ab
00 01 11
1 0 0
1 1 0
0 1 1
0 0 1
10
1
0
0
1
00 01 11
1 0 0
1 1 0
0 1 1
0 0 1
10
1
0
0
1
(b+c+d).(a+c+d).(b+c+d).(a+c+d)
cd
00
01
11
10
26 ottobre 2000
(a+b+c).(a+b+d).(a+b+c) .(a+b+d)
Due espressioni
minime
di tipo PS
Reti combinatorie - sintesi minima
23
24
Individuazione grafica
dellespressione minima (2)
cd
00
01
11
10
00 01 11
0 0 0
0 1 1
1 1 0
1 1 0
26 ottobre 2000
10
1
0
0
1) scegliamo SP
2) acd
25
cd
00
01
11
10
26 ottobre 2000
00 01 11
0 0 0
0 1 1
1 1 0
1 1 0
10
1
0
0
1) scegliamo SP
2) acd
3) ac
26
cd
00
01
11
10
00 01 11
0 0 0
0 1 1
1 1 0
1 1 0
10
1
0
0
1) scegliamo SP
2) acd
3) ac
4) abd
5) acd + ac + abd
26 ottobre 2000
27
cd
00
01
11
10
00 01 11
0 0 0
0 1 1
- 1 1 1 -
10
0
0
0
0
1) scegliamo PS
2) a+b
3) b+d
4) a+ c
5) (a+b) . (b+d) . (a+c)
bc
00 01 11 10
0 0 1 0 0
1 1 0 1 0
a bc + abc + abc
Lespressione minima SP
lespressione canonica
26 ottobre 2000
ab
cd
00
01
11
10
00 01 11
0 1 1
1 1 1
- 1 1
0 1 1
10
0
1
0
PS: b + d
SP: b + d
28
01 11 10
1
1 0
0
Somma degli
implicanti primi
U
U = AI0 + I1 I0 + AI1
1
Implicante primo
eliminabile
29
x2
x1
x0
z1
z0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
-
0
1
0
1
-
z1
x1 x2
x0
00 01 11 10
0 0 1 - 1
1 0
z1 = x1 + x2
z0
x1 x2
x0
00 01 11 10
0 0 1 - 0
1 1
26 ottobre 2000
z0 = x0 + x2
30
a
b
Trascodifica c
d
da BCD a
7 segmenti e
f
g
f
g
e
c
d
D C B A
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
a
0
1
0
0
1
0
1
0
0
0
7
b
0
0
0
0
0
1
1
0
0
0
c
0
0
1
0
0
0
0
0
0
0
d
0
1
0
0
1
0
0
1
0
1
e
0
1
0
1
1
1
0
1
0
1
f
0
1
1
1
0
0
0
1
0
0
g
1
1
0
0
0
0
0
1
0
0
10
BA
DC 00
01
11
00
01
11
10
01
11
00
01
11
10
a = DCBA + CA
26 ottobre 2000
10
BA
DC 00
01
11
10
00
01
11
10
b = CBA + CBA
c = CBA
32
10
BA
DC 00
01
11
01
11
10
00
00
01
01
11
11
10
10
d
BA
DC 00
01
11
00
01
11
10
e = A + CB
e
10
BA
DC 00
01
11
10
00
01
11
10
f = DCA + BA + CB
g = DCB + CBA
DCBA
1100
1101
1
0
1010
0
1011
0
1110
1
1111
0
34
BA
00
DC
10
BA
00
DC
01
11
00
01
11
10
10
BA
00
DC
01
11
01
11
10
00
00
01
01
11
11
10
10
a = DCBA + CA
b = CBA + CBA
a1 = a + DC a2 = a + DB
b1 = b + DC b2 = b + DB
c
c = CBA
c1 = c + DC c2 = c + DB
26 ottobre 2000
36
BI (Blanking Input)
display spento
LT (Lamp Test)
display acceso
26 ottobre 2000
37
Reti combinatorie
14 novembre 2001
Sintesi con
NAND, NOR,
EX-OR
14 novembre 2001
14 novembre 2001
4 funzioni di 1 variabile,
16 funzioni di 2 variabili,
256 funzioni di 3 variabili,
65.536 funzioni di 4 variabili,
ecc.
14 novembre 2001
x1
0
1
0
1
f0
0
0
0
0
f15
1
1
1
1
4 funzioni
di una
variabile
f3
0
0
1
1
f5
0
1
0
1
f12
1
1
0
0
f10
1
0
1
0
f0, f3 : costanti 0 e 1
f1: identit o buffer
f2: not
f1
0
0
0
1
f14
1
1
1
0
f7
0
1
1
1
f8
1
0
0
0
f9
1
0
0
1
f6
0
1
1
0
f13
1
1
0
1
f1 : and
f0, f15 : costanti 0 e 1
f14 : nand
f3 , f5 : identit o buffer f7 : or
f12 , f10 : not
f8 : nor
f9: equivalence
f6: ex-or
14 novembre 2001
f2
0
0
1
0
f11
1
0
1
1
f4
0
1
0
0
16
funzioni
di due
variabili
In
Inrosso
rossolele
funzioni
funzioniche
che
degli
deglioperatori
operatori
dellalgebra
dellalgebradi
di
commutazione
commutazione
5
Algebre binarie
Algebra binaria - Sistema matematico formato da un insieme di
operatori definiti assiomaticamente ed atti a descrivere con una
espressione ogni funzione di variabili binarie
Calcolo delle proposizioni
{vero, falso}} {e, o, non}} G. Boole (1854)
tre operatori
Algebra di commutazione
{0, 1}} {+, . , }}
tre operatori
C. Shannon (1938)
Algebra lineare
{0, 1}} { , .}}
due operatori
SPS !
passo 1
U = ( a . (a + b) ) + ( b . (a + b) )
passi 2 e 3
U = ( a (a b) ) ( b (a b) )
passo 4
a
b
14 novembre 2001
U = A. I0 + A . I1
3
4
U
9
14 13 12 11 10
SN7400
14 13 12 11 10
14 13 12 11 10
I1
A
SN7408
I1
A
SN7404
A
I0
U
14 13 12 11 10
SN7432
I0
10
11
12
13
FA
S
a
b
R
HA
14
FA
r1
a1
b1
FA
rn-1
an-1
bn-1
FA
14 novembre 2001
s0
r1
CI
a0
a1
a2
a3
s0
s1
s2
s3
s1
r2
sn-1
r n = sn
Reti combinatorie - sintesi con
NAND, NOR, XOR
4 Bit
Full
Adder
b0
b1
b2
b3
CO
15
Esercizi
Assumendo p come ritardo di propagazione di un gate, si
determini quale il ritardo massimo di un 4 bit Full-Adder
realizzato connettendo in cascata 4 moduli FA.
14 novembre 2001
16
P = ((b0 b1)
(b2 b3))
((.. b7))
E = P (((b0 b1)
(b2 b3))
((.. b7)))
b2 b3
9
SN7498
14 13 12 11 10
b4 b5
14 novembre 2001
14 13 12 11 10
SN7498
b0 b1
b6 b7
0/P
P/E
17
SN74280
(MSI)
P/E
0/P
280
280
Trasmettitore
280
280
Ricevitore
E
18
a0
b0
a1
b1
a1
b1
z
an-2
bn-2
an-2
bn-2
an-1
bn-1
an-1
bn-1
14 novembre 2001
19
Esercizio
Quale la funzione svolta dalla rete in figura ?
SN74138 U0
U1
U2
U3
EN
U4
U5
U6
ABC
U7
I0
I1
I2
I3
I4
I5
I6
I7
a0 a1 a2
14 novembre 2001
SN74151
ABC
b0 b1 b2
20
Capitolo 5
Circuiti programmabili
La programmazione dellhardware
Funzioni di
n variabili
macchina
di
programmazione
Ho bisogno
di questa!
py
Rete
combinatoria
programmabile
z1
z2
zm
5.1
Memorie a sola
lettura
Espressione in grado
di descrivere qualsiasi
funzione di n variabili
Rete combinatoria
programmabile in grado
di realizzare qualsiasi
F funzione di n variabile
F(0)
F(1)
F(2n-1)
F(i): bit di
programmazione
x1 x2 xn
A,B,C,D
Ii
SN74153
I0
I1
I2
Z
I3
BA
SN74151
I0
I1
I2
I3
Z
I4
I5
I6
I7
CBA
ingressi ( xi )
bit di programmazione ( pi )
SN74150
I0
I1
I2
I3
I4
I5
I6
I7
Z
I8
I9
I10
I11
I12
I13
I14
I15
DCBA
x1 x0
x1 x0
F
F(i)=0/1
Contatto aperto/chiuso
x1 x0
D
E
C
m0
m1
Bit di
programmazione
m2n-1
D0
D1
Dk
A0
A1
D
E
C
m1
m2
m3
F(0)
F(4)
F(1)
F(5)
F(2)
F(6)
F(3)
F(7)
Bit di
programmazione
A2
MUX
F
A0
A1
R
O
w
D
E
C
C
O
L
D
E
C
Am-1
Am
Am+1
An-1
M
U
X
D0
D1
Dk
ROM
D0 D1 Dk
z0 z1 zk
A0 A1 ..An-1
ROM
D0 D1 Dk
zk+1 zk+2 z2k+1
A0 A1 ..Am-1
ROM
D0
n-m
A0 A1 ..Am-1
ROM
D0
ROM
D0
Dk
A
.. m
MUX
An-1
A
.. m
MUX
An-1
D0
Dk
I
OE
I
OE
OE
H
H
L
I
L
H
X
O
L
H
Z
OE
I
O
I1
Z
I2
I3
A0
A1
DEC
0
MUX
4:1
di un 3-state abilitato !
I0
I1
I1
I2
I2
I3
I3
EN
A0
A1
DEC
Ai
EN
Z
EN
A0
A1
2 1 0
DEC
R
O
W
D
E
C
Bit di programmazione
Am-1
Am
Am+1
An-1
C
O
L
D
E
C
MUX
D0
D1
Dk
O0
O1
Ok
CE
OE
A0 A1 A12
ROM
D0
A0 A1 A12
ROM
D0
A0 A1 A12
ROM
D0
A0 A1 A12
ROM
D0
D7
a[13,14]
MUX
MUX
d0
d7
a13
a14
a15
D
E
C
7
6
5
4
3
2
1
0
d0
d7
A0 A1 A12
ROM
OE*
CE*
D0
D7
A0 A1 A12
ROM
OE*
CE*
D0
D7
A0 A1 A12
ROM
OE*
CE*
D0
D7
5.2
Matrici logiche
programmabili
Caso generale
Matrice AND
Programmata
dal costruttore
NAND = 2n
Matrice OR
Programmata
dallutente
PLA e PAL
PLA: Programmable
Logic Array
PAL: Programmable
Array Logic
Matrice AND
Programmata
dallutente
Matrice AND
Programmata
dallutente
NAND << 2n
Matrice OR
Programmata
dallutente
Matrice OR
Programmata
dal costruttore
00 01 11
1 1 0
1 1 0
0 0 1
0 0 1
10
1
1
1
1
a
b
c
d
cd
ab
00
01
11
10
00 01 11
0 0 0
0 0 1
0 0 0
1 1 0
10
1
1
0
0
z
w
cd
ab
00
01
11
10
00 01 11
1 1 0
1 1 0
0 0 1
0 0 1
10
1
1
1
1
a
b
c
d
cd
ab
00
01
11
10
00 01 11
0 0 0
0 0 1
0 0 0
1 1 0
10
1
1
0
0
w
N.B. - Quando non si dispone di un numero sufficiente di AND
pu essere utile realizzare la funzione complemento.
z
w
Esercizio 5.3
Si sintetizzi un trascodificatore da codice BCD a codice Gray
utilizzando una PAL con 4 ingressi, 4 uscite e 4 AND per uscita.
ABCD
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
WXYZ
0
1
0
1
0
1
0
1
0
1
1
0 0 0 0
0 0 0 1
0 0 1 1
0 0 1 0
0 1 1 0
1 1 1 0
1 0 1 0
1 0 1 1
1 0 0 1
1 0 0 0
XXXX
1 0 0 1
XXXX
BCD
Gray
5.3
Unit aritmetica
e logica
ALU
u
u = Fc (x , y)
C2 C1 C0
0 0 0
CI
x+y x+y+1
C2 C1 C0
0 0 0
C3
xy
x or y
0 0 1
x - y -1
x -y
0 0 1
0 1 0
x+1
0 1 0
0 1 1
x-1
0 1 1
1 0 0
y+1
1 0 0
1 0 1
-(y +1)
-y
1 0 1
x or y
1 1 0
1 1 0
0000
x and y
1 1 1
24 -1 , -1
1 1 1
1111
1111
M=1
pag. 5.23
(x y) (x
y)
x
x or y
y
M=0
pag. 5.25
pab
pn-1
pi
p1 0
an-1
ai
a1 a0
bn-1
bi
b1 b0
dn-1
di
d1 d0
000
001
010
011
100
101
110
111
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
= 2n - N
Calcolo di A - B con A B
A - B = A + (2n - B) - 2n
= (A + 2B) - 2n
calcola A + 2B
elimina il bit pi pesante
CI 4 BIT
a0 ADDER
a1
a2
a3
s0
s1
s2
s3
b0
b1
b2
b3
CO
A-B
b1 b0
segno
(0: positivo, 1: negativo)
valore assoluto
|N| = (bn-2 .2n-2 + + b0 .20)
n bit
bn-1 bn-2
b1 b0
N < 0 : 2(-N)
con (-N) espresso in
segno-valore assoluto
Esempi ( n=4 )
+1 = 0 0 0 1
-1 = 1 1 1 0 +
1
=1 111
A = -4 1 1 0 0 +
B = +5 0 1 0 1 =
+1
0001
Un adder/subtractor programmabile
CI
CI 4 BIT
a0 ADDER
a1
a2
a3
s0
s1
s2
s3
b0
b1
b2
b3
CO
x
C0
y
0
M
U
1X
CI
C0
0
0
x+y
1 x-y-1
1
x+y+1
x -y
.. pi operazioni aritmetiche
C2 C1 C0
0 0 0
C2 CI
x
0000
0M
U
X
1
C1
0M
U
0000 X
1
C0
0M
U
X
1
CI 4 BIT
a0 ADDER
a1
a2
a3
s0
s1
s2
s3
b0
b1
b2
b3
CO
CI
x+y x+y+1
0 0 1
x - y -1
x -y
0 1 0
x+1
0 1 1
x-1
1 0 0
y+1
1 0 1
-(y +1)
-y
1 1 0
1 1 1
24 -1 , -1
C0
C2
CI
CI
a0
4 BIT
ADDER
4 BIT
ADDER
x1
a1
x2
a2
s
s0 0
a3
s
s1 1
x3
y0
b0
y1
b1
y2
b2
y3
b3
s2s2
s3s
CO
C2 C1 C0 CI
Rete
di
pre-elabor.
CI
a0
a1
a2
a3
b0
b1
b2
b3
C2 C1 C0
0 0 0
4 BIT
ADDER
con M
s0
s1
s2
s3
CO
M=0
r
R
a FA
b
s
s=ab
xy
0 0 1 (x y)
r
R
a FA
s
b
M=0
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
0000
1111
1 1 1
C1
C0
C2
M=0
xk
ak r
FA
yk
uk
bk R
C2 C1 C0
C3
0 0 0
M=0
0 0 1
x y (x
y)
1 x + y (x
y)
0
sk
0 1 0
0 1 1
x
x
x
x + y
1 0 0
y
y
1 0 1
1 1 0
1 1 1
y
x + y
0000
x .y
1111
1111
Segnali di flag
c
SF
CF
flag
ZF
ALU
u
OF
PF
1000
1001+
1110=
0110
CO r3 r2 r1
(+7)
(+2)
PF = u0 u1 u2 u3
0110
0111+
0010=
1001
La ALU a 4 bit
C3 C2 C1 C0
CI
x0
a0 M r0 s
0
x1
b0
ZF SF CF OF
PF
u0
x2
x3
Rete
di
pre-elabor.
y0
a1 M r1s
1
b1
u1
a2 M r2s
2
b2
u2
y1
y2
y3
a3 M r3s
3
b3
u3
CO
W0 = 0 . L .R +
u0 .L . R +
u1 .L .R
Wi = ui-1 . L . R +
ui . L .R +
ui+1 . L . R
i=1,2
W3 = u2 . L . R +
u3 . L . R +
0 . L. R
u0
L 0
w0
u1
w1
u2
w2
u3
w3
0
20/11/2011
Elenco delle funzioni di una e due variabili Descrivono il comportamento dei gate ideali con ritardo nullo
x f0 f3 f1 f2 4 funzioni
f0, f3 : costanti 0 e 1
0 0 1 0 1 di una
f1: identit o buffer
1 0 1 1 0 variabile
f : not
2
x0
0
0
1
1
x1
0
1
0
1
f0
0
0
0
0
f15
1
1
1
1
f3
0
0
1
1
f5
0
1
0
1
f12
1
1
0
0
f10
1
0
1
0
f1
0
0
0
1
f14
1
1
1
0
f7
0
1
1
1
f8
1
0
0
0
f9
1
0
0
1
f6
0
1
1
0
f13
1
1
0
1
f2
0
0
1
0
f11
1
0
1
1
f4
0
1
0
0
16
funzioni
di due
variabili
In rosso le
funzioni degli
operatori
dellalgebra di
commutazione
2
Consideriamo ancora reti logiche senza retroazioni; ma ipotizziamo che i gate con cui
queste reti sono realizzate introducano un ritardo non nullo
Sotto questa ipotesi si dice che due ingressi cambiano contemporaneamente se il
secondo ingresso cambia prima che si sia estinto leffetto della variazione del primo
Noi dobbiamo mantenere lipotesi che possa cambiare un solo ingresso alla volta (e cio
lipotesi che le transizioni in ingresso avvengano solo tra configurazioni binarie adiacenti)
Ma in presenza di gate con ritardo non nullo questa ipotesi assume un nuovo significato:
un ingresso pu cambiare solo dopo che si stabilizzato il transitorio dovuto alla
transizione precedente; se questa ipotesi non verificata la teoria sviluppata in
questo file non valida
Si ricorda che per il principio di non contemporaneit degli eventi, lipotesi di variazione di
un solo ingresso la volta naturalmente verificata in caso di operatori con ritardo nullo
Le reti logiche combinatorie realizzate con gate con ritardo non nullo
possono dar luogo a fenomeni transitori indesiderati denominati alee
In questo file si descrivono le alee e si propone un metodo di progetto che
consente di eliminarle nellipotesi di non contemporaneit delle variazioni
delle configurazioni di ingresso
3
14 13 12 11 10
14 13 12 11 10
14 13 12 11 10
14 13 12 11 10
14 13 12 11 10
SN7404
14 13 12 11 10
SN7408
14 13 12 11 10
SN7400
SN7411
SN7407
SN7423
SN7432
54
SN7498
5
6
9
10 11 12
10 11 12 13 14
Unit
Aritmetiche
Decoder
Multiplexer
28 27 26 25 24 23 22 21 20 19 18 17 16 15
14 13 12 11 10
18 ott 2000
16 15 14 13 12 11 10
Full adder
24 23 22 21 20 19 18 17 16 15 14 13
Trascodificatori
5
Commuta lingresso I1
ab
I1
t U?
a=0
b=1
2t
00 01 11 10
0 0 1 1
0 1 1 0 U
I1
U
6
Commuta lingresso A
t
t a
U?
b
3t
c
b
U
18 ott 2000
I1
t
I0
t
I1
3t U
I0
8
Commuta lingresso I1
t U?
0
t
1
2t
I1
U
9
Commuta lingresso A
t a
U?
3t
a
Tipo alea statica Luscita, che dovrebbe
rimanere costante, assume
temporaneamente laltro
valore.
c
b
U
10
b
4
t
B
11
xy
x=1
y
z=1
UnAlea statica
la variazione
temporanea e
indesiderata
delluscita
dovuta ai ritardi
nella rete
c
y
00 01 11 10
0 0 0 1
0 1 1 1
U = x /y + z y
xyz U
111 1
101 1
a
b
2t
z
3t
12
Nelle reti di tipo SP o PS (tre livelli inclusi i not per generare le variabili di
ingresso negate), lalea dovuta alla commutazione di un ingresso della rete
2.
xy
z
0
1
00 01 11 10
0 0 0 1
0 1 1 1
xy
z
0
1
00 01 11 10
0 0 0 1
0 1 1 1
0
1
x=1
00 01 11 10
0 0 0 1
0 1 1 1
b
a
U
y
c
z=1
xy
z
0
1
00 01 11 10
0 0 0 1
0 1 1 1
15
xy
z
0
1
00 01 11 10
0 0 0 1
0 1 1 1
U=(x+y)(z+y)
xy
z
0
1
00 01 11 10
0 0 0 1
0 1 1 1
U=(x+y)(z+y)(z+x)
2
I modelli di
comportamento
dei sistemi digitali
Modelli
Comportamento combinatorio
Comportamento sequenziale
Un esempio di macchina sequenziale sincrona
Il procedimento di sintesi
delle macchine sequenziali sincrone
22 settembre 2002
Il processo di elaborazione
astrazione
b) Il modello del blocco e la relazione ingresso/uscita
i(t) I
(alfabeto di ingresso)
u(t) U
(alfabeto di uscita)
u=
dato
25
49
risultato
7
t
La macchina combinatoria
Un sistema digitale in cui luscita dipende solo dal valore
contemporaneo dellingresso detto macchina combinatoria.
U(t) = f (I(t))
F: I U
La funzione F pu essere assegnata mediante una tabella che associa a
ogni simbolo di ingresso il corrispondente simbolo in uscita
22 settembre 2002
u = F(i)
Premuto
Rilasciato
22 settembre 2002
u: Suoneria
Suono
Nessun Suono
6
T1
t1
T2
t2
T3
R
T4
t3
T5
t5
T7
T6
t6
t7
T8
t8
T9
t9
u(t) = P(t)
Il sistema non ha ingressi ma deve tener conto dello scorrere del tempo
Il tempo deve essere discretizzato (cio suddiviso in intervalli Tn)
Luscita varia con andamento periodico: in qusto esempio ogni 7 Tn il ciclo si ripete identicamente
Luscita non dipendendo dagli ingressi, dipende da quanti intervalli di tempo sono passati dallinizio
del ciclo; dunque il sistema deve saper contare da 0 a 6 e deve ricordare il valore del conteggio
Dunque il sistema deve disporre di una memoria interna aggiornata agli istanti ti: Il valore del
conteggio riassume la storia passata del sistema
Il riassunto della storia passata (o memoria del sistema) si chiama anche:
stato interno presente del sistema
Luscita u(Tn) dipende dallo stato interno nello stesso intervallo Tn
Questo comportamento detto: sequenziale sincrono
sequenziale significa con stato interno che influenza luscita
sincrono significa che lo stato interno pu cambiare solo in
determinati istanti di tempo (quelli che separano Tn da Tn+1)
Le reti logiche che realizzano questo tipo di comportamento
si chiamano: reti logiche sequenziali sincrone
22 settembre 2002
T1
t1
T2
t2
T3
t3
R
T4
T5
t5
V
T7
T6
t6
t7
T8
t8
T9
t9
Specifica di funzionamento: il semaforo deve restare verde per 60 sec, giallo per 20 sec e rosso
per 60 sec, poi torna verde; quindi ha un comportamento periodico con periodo 140 sec.
Se dividiamo il tempo in intervalli di durata T = 20 sec, allora il semaforo resta verde in T0, T1,
T2 , giallo in T3 e rosso in T4, T5, T6 , poi torna verde
Si ha che u(Tn+7) = u(Tn): luscita periodica con periodo 7 T
Allora possiamo dire quanto segue:
luscita dipende dallintervallo Ti in cui ci troviamo
lintervallo in cui ci troviamo identifica lo stato interno presente s
lo stato interno si ripete con periodo 7 T;
se associamo uno stato interno a ciascuno dei 7 intervalli T in cui suddiviso il periodo di
funzionamento del semaforo, allora possiamo far corrispondere a ogni stato interno un suo valore
delluscita: u = P(s)
dunque possiamo dire che in questa macchina sequenziale sincrona luscita una funzione
combinatoria dello stato presente
22 settembre 2002
V
T0
t0
Stato
presente
A
B
C
D
E
F
G
T1
t1
Stato presente:
G
T2
t2
T3
T4
t3
T5
t5
V
T7
T6
t6
t7
T8
t8
T9
t9
uscita
verde
verde
verde
giallo
rosso
rosso
rosso
F: S U
22 settembre 2002
V
T0
t0
Stato
presente
A
B
C
D
E
F
G
Stato
futuro
B
C
D
E
F
G
A
T1
t1
T2
t2
T3
t3
R
T4
T5
t5
V
T7
T6
t6
t7
T8
t8
T9
t9
10
V
T0
t0
Stato
presente
A
B
C
D
E
F
G
uscita
T1
t1
T2
t2
T3
T4
t3
Stato
presente
t5
F: S U
T7
T6
t6
t7
B
C
D
E
F
G
A
G: S S
T8
t8
Stato
futuro
A
B
C
D
E
F
G
verde
verde
verde
giallo
rosso
rosso
rosso
T5
T9
t9
s*
T
F e G sono due blocchi combinatori
T lintervallo tra due aggiornamenti
successivi dello stato interno
22 settembre 2002
11
C
D
12
13
0,V
1,V
2,V
3,G
6,R
5,R
22 settembre 2002
4,R
Stato
presente
1,V
0
1
2
3
4
5
6
2,V
3,G
6,R
5,R
Stato
futuro
4,R
1
2
3
4
5
6
0
uscita
V
V
V
G
G
G
R
G: S S
F: S U
22 settembre 2002
15
In questa
rappresentazione
ogni stato stato
battezzato con
una lettera (da A
a G), invece che
con un numero;
Linformazione
contenuta nella
tabella la
stessa del lucido
precedente!
22 settembre 2002
T1
t1
T2
t2
Stato
presente
A
B
C
D
E
F
G
T3
R
T4
t3
T5
t5
Stato
futuro
B
C
D
E
F
G
A
V
T7 T8
T9
T6
t6
t7
t8
t9
uscita
verde
verde
verde
giallo
rosso
rosso
rosso
G: S S F: S U
S linsieme
degli stati
U linsieme
delle possibili
configurazioni
di uscita
16
z1
rete
sequenziale
sincrona
clock
z2
z3
17
T1
t1
T2
t2
T3
t3
R
T4
T5
t5
T7
T6
t6
t7
T8
t8
T9
t9
Stato
A
B
C
D
E
F
G
22 settembre 2002
y2 y1 y0
000
001
010
011
100
101
110
Uscita
Codifica
z3 z2 z1
Acceso verde
100
Acceso giallo
010
Acceso rosso
001
18
Stato
presente
y2 y1 y0
A
B
C
D
E
F
G
000
001
010
011
100
101
110
Stato
futuro
Uscita
001
010
011
100
101
110
000
100
100
100
010
001
001
001
z3 z2 z1
F: S U
G: S S
22 settembre 2002
19
Rete
logica
combinatoria
s(tn+1) = S(tn)
y2
y1
y0
stato presente s
22 settembre 2002
T
T
z3
u = F(s)
Y2
Y1
Y0
stato futuro S = G(s)
20
10
Riprendiamo
il grafo degli stati del semaforo
22 settembre 2002
21
B,V
C,V
D,G
G,R
F,R
E,R
22
11
A,V
B,V
C,V
0
G,R
H,R
D,G
1
1
1
0
F,R
E,R
23
Soluzione 2:
Con riferimento alla Soluzione 1, gli stati G e H sono indistinguibili
tra loro in quanto hanno la stessa uscita e per ogni configurazione
di ingresso hanno lo stesso stato futuro; quindi possono essere
sostituiti da un solo stato
S0,V
0
1
S1,V
S2,V
0
1
1
S3,G
S6,R
1
Il trattino associato a questo
ramo indica che qualunque
sia la configurazione binaria
degli ingressi si avr la
transizone associata al ramo
22 settembre 2002
S5,R
S4,R
12
Riepilogo ipertestuale:
Procedimento di sintesi di RSS
Dalla descrizione a parole alla rete
22 settembre 2002
25
26
13
Descrizione a parole
Si progetti la rete sequenziale sincrona che
controlli il funzionamento di un semaforo
secondo la seguente regola:
il semaforo deve restare verde per 60 sec, giallo per
20 sec e rosso per 60 sec, poi torna verde; quindi ha
un comportamento periodico con periodo 140 sec.
22 settembre 2002
27
z1
clock
rete
sequenziale
sincrona
z2
z3
28
14
T1
t1
T2
A,V
t2
T3
R
T4
t3
T5
t5
B,V
V
T7
T6
t6
t7
T8
t8
T9
t9
C,V
D,G
G,R
F,R
E,R
29
T1
t1
T2
t2
Stato
presente
A
B
C
D
E
F
G
22 settembre 2002
T3
R
T4
t3
T5
t5
Stato
futuro
B
C
D
E
F
G
A
G: S S
V
T7 T8
T9
T6
t6
t7
t8
t9
uscita
verde
verde
verde
giallo
rosso
rosso
rosso
F: S U
30
15
T1
t1
T2
t2
T3
R
T4
t3
T5
t5
T7
T6
t6
t7
T8
t8
T9
t9
Stato
A
B
C
D
E
F
G
000
001
010
011
100
101
110
Codifica
Uscita
y2 y1 y0
z3 z2 z1
Acceso verde
100
Acceso giallo
010
Acceso rosso
001
22 settembre 2002
31
Stato
presente
y2 y1 y0
A
B
C
D
E
F
G
000
001
010
011
100
101
110
Stato
futuro
Uscita
001
010
011
100
101
110
000
100
100
100
010
001
001
001
G: S S
z3 z2 z1
F: S U
16
6
Reti
logiche
combinatorie
s(tn+1) = S(tn)
y2
y1
y0
stato presente s
T
T
uscita u
z1
z2
z3
u = F(s)
Y2
Y1
Y0
stato futuro S = G(s)
22 settembre 2002
33
Riprendiamo
il grafo degli stati del semaforo
22 settembre 2002
34
17
Come cambia il d.d.s. se aggiungiamo al semaforo un ingresso binario che, quando attivo,
fa diventare rosso il semaforo al prossimo impulso di clock? Successivamente, il semaforo
dovr tornare verde al primo impulso di clock in cui questo ingresso non sar attivo.
Soluzione 1
A,V
B,V
C,V
0
G,R
H,R
1
0
F,R
11 ottobre 2001
D,G
E,R
35
Soluzione 2:
Con riferimento alla Soluzione 1, gli stati G e H sono indistinguibili tra loro in
quanto hanno la stessa uscita e per ogni configurazione di ingresso hanno lo
stesso stato futuro; quindi possono essere sostituiti da un solo stato (soluzione 2)
S0,V
0
1
S1,V
S2,V
0
1
1
S3,G
S6,R
1
Il trattino associato a questo
ramo indica che qualunque
sia la configurazione binaria
degli ingressi si avr la
transizone associata al ramo
22 settembre 2002
S5,R
S4,R
36
18
I modelli di
comportamento
dei sistemi digitali
Le macchine sequenziali
22 settembre 2012
Macchine sequenziali
Le macchine sequenziali sono modelli matematici che descrivono sistemi digitali in cui il valore
della grandezza presente in uscita non dipende solamente dal valore contemporaneo
dellingresso, ma dipende anche dai valori assunti dallingresso nel passato; le macchine
sequenziali descrivono dunque sistemi dotati di memoria
Nelle macchine sequenziali sincrone il tempo viene suddiviso in intervalli elementari di durata
costante T e vengono considerati solamente gli istanti di tempo ti che delimitano detti intervalli.
Gli intervalli elementari possono essere contati ed quindi possibile misurare il tempo. Pertanto
nelle macchine sequenziali sincrone il valore delluscita pu dipendere sia dalla sequenza dei
valori in ingresso, sia dalla relativa durata
Nelle macchine sequenziali asincrone non viene fissata una base dei tempi di riferimento;
pertanto le macchine S.A. non sono in grado di tener conto della durata dei valori in ingresso; il
valore delluscita dipende dalla sequenza dei valori in ingresso, ma non pu dipendere dalla
relativa durata.
22 settembre 2012
u(t) = P(i(t-))
0
22 settembre 2012
u(t) = P(t)
colore
Le variazioni
delluscita sono
dovute al trascorrere
del tempo
istruzione
operando
istruzione operando
CPU
risultato
risultato
t
La storia passata rappresentata dal tempo trascorso, dalla sequenza con cui sono
variati gli ingressi e dalla loro durata
Il comportamento di questi sistemi riconducibile al modello delle Macchine Sequenziali Sincrone
Al fine di misurare la durata degli intervalli di tempo, il tempo viene discretizzato cio viene suddiviso
in intervallini di durata costante T (vedi diapositiva n. 7)
T rappresenta lunit di misura del tempo
22 settembre 2012
Macchine digitali e
reti logiche
Una macchina digitale una rappresentazione astratta di un sistema
reale capace di elaborare grandezze discrete
E possibile realizzare reti logiche che si comportano come una
macchina digitale assegnata passando attraverso un procedimento di
22 settembre 2012
u(t) U
(alfabeto di uscita)
Macchina digitale
X[0..(n-1)]
(var. di ingresso)
Z[0..(n-1)]
(var. di uscita)
Rete logica
Ingressi e uscite sono: vettori di variabili binarie con cui gli alfabeti di cui
sopra sono codificati
necessario codificare anche gli stati interni
landamento delle variabili binarie z in funzione delle x e delle eventuali
variabili di stato interno descritto dalla tabella delle transizioni
Si ottiene la rete logica ad essa associata sintetizzando le variabili di uscita e
le variabili di stato futuro indicate dalla T.d.T.
22 settembre 2012
Macchine sequenziali e
automi a stati finiti
Il comportamento di una macchina sequenziale pu essere descritto dalla pentupla:
M = {I,U,S,F,G}
formato da 3 INSIEMI
I: alfabeto di ingresso
U: alfabeto di uscita
S: insieme degli stati interni
e da 2 FUNZIONI
F: funzione di uscita
G: funzione di aggiornamento dello stato interno
Linsieme M di 5 elementi detto Automa a Stati Finiti
22 settembre 2012
u
F
s*
memoria
(ritardo)
9
u(tn)
F
s(tn+1)
u(tn ) = F(s(tn),i(tn))
s(tn+1) = G(s(tn),i(tn))
Ti : intervalli
di durata T
ti : istanti
s(tn)
T1
t1
T2
t2
22 settembre 2012
T3
t3
Tn-1
Tn
tn
Ritardo
T
Tn+1
tn+1
s(t0) = i
10
i(t)
u(t)
F
u(t ) = F(s(t),i(t))
S(t) = G(s(t),i(t))
S(t)
stato interno: il riassunto
della storia passata
s(t0) = stato iniziale
s(t): stato interno presente
S(t): stato interno futuro
La variazione di i (ingresso) si ripercuote immediatamente
s(t)
sullo stato interno
Il modello non riesce a misurare la durata delle configurazioni di ingresso
Il modello riesce a ricordare la sequenza delle configurazioni di ingresso
22 settembre 2012
Ritardo
T=0
11
La funzione G:
S x I S
S
S
I
U
22 settembre 2012
S
12
ingresso
i1
s1
s2
..
..
stato
presente
sj
..
..
sk
..
..
..
..
i2
ii
in
..
..
.
.
..
..
..
..
.
.
..
..
..
..
..
..
. sp,uq .
..
..
..
..
..
..
..
..
alfabeto
dingresso
. . .
stato futuro, uscita
22 settembre 2012
13
S1
Sp
i1, um
Sj
ii, uq
in, un
Sk
22 settembre 2012
S2
14
i2, u2
i2, u2
i1, u1
i2, u1
i2, u3
i2, u2
i2, u2
i2, u3
i2, u3
g
15
Esempio di comportamento 1:
una lampada da tavolo
u: lampadina
U : {spenta, accesa}
rilasciato,spenta
premuto,accesa
premuto,
accesa
a
premuto, spenta
rilasciato,
accesa
rilasciato, accesa
rilasciato,
spenta
i: pulsante
I : {rilasciato,premuto}
22 settembre 2012
premuto,
spenta
se sj = G( si , i) allora sj = G( sj , i)
si
i,
i,
sj
17
Riposo
Riscaldamento
start
Controllo
Timer
Scarico
acqua
Getti
Detersivo
& getti
Immissione acqua
Scarico
acqua
18
u(tn) = P(tn)
Le variazioni
delluscita (colore)
sono dovute al
t
trascorrere del tempo
Il grafo degli stati del semaforo corrisponde al comportamento 3 indicato nel lucido 15 (il
semaforo passa ciclicamente e con continuit per pi stati senza che vi siano ingressi che
cambiano)
Il grafo degli stati del semaforo stato visto a lezione
Questo comportamento pu essere realizzato solamente con una rete sequenziale sincrona,
cio con una rete che cambia stato solo in corrispondenza degli istanti ti
Se si realizzasse il grafo del semaforo secondo il modello delle R.S.A. (cio con
retroazione diretta dello stato futuro sullo stato presente, lo stato interno e le uscite
oscillerebbero e quindi non assumerebbero mai un valore stabile e definito. Saremmo
dunque in presenza di un funzionamento erroneo
Il d.d.s. del semaforo un esempio di grafo degli stati di un generatore di forme donda
periodiche. Se il periodo della forma donda T = k * Tck, allora solitamente si avr:
22 settembre 2012
19
20
Analisi e sintesi di
reti logiche sequenziali
22 settembre 2012
21
z1(t)
z2(t)
Rete logica
zm(t)
xn(t)
2: Espressioni (comportamento)
22 settembre 2012
22
IL CASO GENERALE
di rete logica sequenziale
ingresso i
x1
x2
xn
uscita u
z1
z2
Rete
logica
combinatoria
zm
u = F(i,s)
s(t+Dt) = S(t)
yk
Yk
ritardo
y2
y1
stato presente s
22 settembre 2012
ritardo
ritardo
Y2
Y1
stato futuro S = G(i,s)
23
i(tn)
u(tn)
F
u(tn ) = F(s(tn),i(tn))
s(tn+1) = G(s(tn),i(tn))
T0
t0
T1
t1
T2
t2
T3
t3
Tn-1
Tn
tn
22 settembre 2012
s(tn+1)
Tn+1
tn+1
stato interno:
il riassunto
della
storia
passata
Stato futuro
s(tn)
Ritardo
T
s(t0) = i
24
x1
xn
y1
Rete
combinatoria
yk
Il ritardo sulla
retroazione viene
realizzato con una
rete logica detta
Flip Flop D (FF-D)
Ci vuole un FF-D
per ogni variabile di
stato
z1
zm
Y1
Yk
25
Q n+1 = D n
equazione
caratteristica
del FF D
clock C
(n-1) . T0
n . T0
(n+1) .T0
ingresso D
D n-1
Dn
D n+1
uscita Q
Q n-1
Qn
Q n+1
22 settembre 2012
26
Il ritardo sulla
retroazione viene
realizzato con una
rete logica detta
Flip Flop D (FF-D)
Ci vuole un FF-D
per ogni variabile di
stato
22 settembre 2012
Reti
Combinatorie
(F e G)
Q
z1
zm
Y1
Yk
27
Fronte
di salita
del clock
t
T 0 R + RC + SU
SU: tempo max. di set up dei FF
RC: tempo max. di risposta della rete comb.
R: tempo max. di risposta dei FF
Campionamento dei Di
22 settembre 2012
28
29
30
Sono ormai diffusi simulatori logici per Personal Computer che costruiscono landamento nel tempo
delle variabili di uscita di una R.S.S. in funzione di pattern di ingresso scelti dalloperatore.
Il simulatore pu essere utilizzato sia in fase di sintesi di una R.S.S. per verificarne il corretto
funzionamneto,
sia in analisi per individuare il comportamento di una R.S.S. assegnata
22 settembre 2012
31
22 settembre 2012
32
Comp.
Evento
Uscita
Stato
un solo stato
combinatoria
nuovo ingresso i
u = F(i)
asincrona
nuovo ingresso i
u = F(s,i)
sincrona
2, 3
s*=G(s,i)
aggiorn. immediato
= F(s*,i) s*=G(s*,i)
intervallo n-esimo
aggiorn. alla fine
un = F(sn,in) s*n=G(sn,in)
sn+1= s*n
33
La macchina combinatoria
tn
tn+1
ingresso
uscita
F(i)
F(j)
F(k)
ritardo p
34
La macchina asincrona
p : intervallo di tempo impiegato per il calcolo di F e di G
t
ingresso
stato presente
i
s*
uscita
F(j,s)
stato futuro
s = G(j,s)
22 settembre 2012
F(i,s)
= F(i,s*)
s* = G(i,s) = G(i,s*)
ritardo p
35
La macchina sincrona
T0 : intervallo di tempo in cui la macchina non modifica il suo stato
tn
tn+1= tn + T0
ingresso
i n-1
in
i n+1
stato presente
s n-1
sn
s n+1
uscita
F(in,sn)
stato futuro
G(in,sn)
ritardo p
22 settembre 2012
La memorizzazione di un bit
Metti in memoria 0 !
e un po di fatica !
S
/Q
1
Flip Flop SR
u
F
s*
s
Dt
Dt:
Ritardo della rete G
Nelle RSA
con d.d.s. di tipo 1,
grazie alle condizioni di stabilit
si ha che Yy
solo nellintervallo Dt
successivo a una transizione di
ingresso, dopodich lo stato non
cambia finch non si verifica una
nuova transizione di una variabile
di ingresso,
quindi:
STATO=MEMORIA
VINCOLO SUGLI INGRESSI:
Ogni configurazione di ingresso
deve mantenersi stabile per almeno
Dt !!
Y = S + y . R G
y
y(t +Dt) = Y(t)
Dt
Q=y
Q
Il FF SR una RSA con una variabile di stato e due ingressi S e R
Se ci si assicura che S.R=0, allora:
se S = R = 0 allora Y=y (lo stato interno non cambia)
se S = 1 allora Y=1 (memorizzo il valore 1 in y)
se R = 1 allora Y=0 (memorizzo il valore 0 in y)
Dunque il FFSR un bit di memoria che pu essere posto a zero con R e
pu essere posto a 1 con S
Luscita Q riflette il valore del bit memorizzato
SR
00 01 11 10
0 0
0
1 1
1 1
Y = S + y . R
00
0 0
1 1
01 11 10
0
- 1
0
Y = f (S,R, y)
N.B. - Se imponiamo che S e R non
siano mai contemporaneamente
Attivi (S . R = 0), allora la funzione Y
incompleta.
S,R
00
01
11
10
S,R
00 01
11
10
S
0
1
0
Q bit in
memoria
comando
R
di reset
set = 0, reset = 0
set = 0, reset = 1
R
0
0
1
Q
Q
1
0
set = 0, reset = 0
set = 1, reset = 0
set = 1, reset = 0
0
1
set = 0, reset = 1
V1 (t + 2tp) = Vu (t)
V3
Vu
2tp
V1
V2
+E
+E
Vu
V1
V2
V3
Pongo S = V2
R = V3
Q = Vu
Q: stato futuro
NOR a diodi
(anno 1960 circa)
V2 V3
V1
00
0 0
1 1
01 11 10
0
0 1
0
Vu
Vu = V3 (V1 V2)
Vu = (V3 + (V1 + V2))
Vu = V3. (V1 + V2)
S, R
Q(t) 00
01
11
10
V2=V3=1 vietato !
Pongo S = V2
R = V3
Q = Vu
Q(t+Dt)
S
2tp
S: 0 1
Dt = 2tp
S
Q
q
Y H
S
R
Circuito
combinatorio
L
H
L
y
Dt
y=Y
Y = f(S,R,y)
Sullanello di retroazione
si deve poter mantenere la
situazione di regime:
y=Y
-e
+e
Y=f(S,R,y):
caratteristica in catena chiusa
y=Y
Y H
L
H
y
Y
-e
2
Reti Sequenziali
Asincrone
s*
s
Dt
Dt:
Ritardo della rete G
Con k retroazioni
s(t+Dt) = S(t) si hanno 2k riassunti
di storia passata.
stato presente s
uscita
u = F(i,s)
stato futuro
S = G(i,s)
tpmax
Il ritardo intrinseco del circuito agisce da memoria temporanea dello
stato presente durante il calcolo dello stato futuro
Ogni retroazione memorizza un bit.
Es.:Il FFSR ha una sola retroazione, quindi una memoria da un bit
Il FF SR il pi semplice elemento di memoria realizzabile con
operatori logici elementari (gate)
10 - 11 - 01
10 - 00 - 01
ingresso
Rete
combinatoria
t1
tm
uscita
tn
tr
stato
presente
stato
futuro
Esercizio:
Si crei una T.d.T. su cui sia possibile dimostrare che:
Se i requisiti 1, 2, 3 del lucido 18 non sono soddisfatti la rete
potrebbe comportarsi in modo diverso da quanto previsto dalla T.d.T.
(potrebbe cio finire in uno stato non desiderato)
00
01
11
10
z1 z0
00
00
11
10
01
00
01
01
01
11
01
01
11
11
11
10
11
11
10
10
10
10
00
10
y1 y0
Con riferimento alla struttura della RSA riportata nel lucido precedente:
1.
2.
3.
la transizione dallo stato 00 a 11 con ingresso 01 una corsa critica: la rete non raggiunger mai
lo stato 11, ma si fermer in 01 o 10 (violato il requisito 2)
la transizione da 00 a 10 con ingresso 11 non verr quasi certamente effettuata, in quanto: se
cambia prima x1 ci si fermer in 01, mentre se cambia prima x0 si ricade nella situazione di corsa
critica precedente (violato il requisito 1)
Anche la transizione da 00 a 01 con ingresso 10 rischia di non avvenire se nella sintesi
lespressione di Y1 presenta unalea di zero tra le conf. 0000 e 0010 (es. sintesi PS senza copertura
dei due zeri adiacenti) (violato il requisito 3)
La violazione del requisito 4 (alea essenziale) si potrebbe verificare se: quando cambia una variabile di
ingresso, questa variazione viene sentita dalla rete Y1 dopo che y0 gi stato aggiornato (o viceversa)
Il procedimento di analisi
Il procedimento di analisi di una rete sequenziale asincrona
formato da 4 passi e consente di dedurne il comportamento
dallo schema logico:
1: individuazione delle variabili di stato,
2: analisi della parte combinatoria,
3: individuazione della tabella delle transizioni,
4: studio delle condizioni di stabilit.
S
X?
X=Sq
= (S + q) = S. q
SR
q
00 01 11 10
0 0,1 0,1 0,0 1,0
Q,X
Latch SR a NAND
SR
SR
01
10
11
QX
1 0
0 1
Q Q
00 01 11 10
0 0,1 0,1 1,1 1,1
Q, XQ
Q = S (q R)
Q = (S . (q . R))
Q = S + q.R
q
X
R
X = R q
X = R + q
Il procedimento di sintesi
Il procedimento di sintesi di una rete sequenziale asincrona
formato da 4 passi e consente di dedurne lo schema logico
dal comportamento:
1: individuazione del grafo degli stati,
2: definizione della tabella di flusso,
3: codifica degli stati e definizione della tabella delle transizioni,
4: sintesi della parte combinatoria e retroazioni.
Esempio di relazione ingresso/uscita (lampada da tavolo):
z cambia di valore ad ogni fronte di salita di x
1,0
1,-
0,0
0,0
1,1
1,-
0,1
2 - tabella di flusso
x
stato
a
b
g
d
0
a,1
g,0
g,0
a,1
1
b,b,0
d,d,1
Y1, Y2, z
Codifica degli stati - A stati consecutivi (stato presente e relativo stato futuro) si devono
assegnare configurazioni adiacenti. Se non possibile si pu ricorrere alle transizioni multiple.
Transizione multipla la transizione da uno stato stabile ad un altro attraverso
stati intermedi non utilizzati e resi instabili per la configurazione di ingresso considerata;
per introdurre le transizioni multiple spesso necessario aggiungere variabili di stato.
Ad es. se la tabella soprastante prevedesse anche ladiacenza tra a e g, si potrebbe aggiungere
la variabile y3 e passare da a (000) a g (110) attraverso la sequenza 000 001 101 111 110
y1y2
00 01 11 10
0 0 1
1 0
1 0
y1y2
y1y2
00 01 11 10 x
00 01 11 10
0 0
1
1 0
0 1
0
0 1
1 1
1 -
z = y2
y2.y1
x.y2
x.y1
y2.y1
Fan-out >1
Y2
Esercizio 6.1
Eseguire la sintesi di una rete sequenziale asincrona che fornisca 1
in uscita quando entrambi i suoi due ingressi valgono 1 e solo se
le due precedenti configurazioni (andando a ritroso) sono state 01
e 00. I segnali di ingresso possono cambiare di valore uno solo alla
volta.
Suggerimento: Il grafo parziale di figura in grado di individuare la
sequenza 00-01-11: bisogna completarlo considerando tutti gli altri
casi possibili.
00,0
01,0
11,1
11,-
3
Latch CD
C
CD
1 1
1 0
0 -
S
1
0
0
R
0
1
0
Latch CD
D
0
0
0
1
0
D
0
0
0
1
1
S = C.D
C
D
R = C.D
00 01 11 10
0 0
0 1 0
1 1
Q=y
Q = /y
0
Le uscite sono quelle del
LATCH SR
Campionamento e Memorizzazione
Segnale del Data Path
con valori significativi
solo in certi intervalli
Es: segnale D con glitch
segnale di campionamento C
attivo alto
segnale ricostruito
dal latch
dal Controller
dal Data Path
il latch CD
al Data Path
C
S
durata
minima
C (Comando
di Scrittura
nel latch CD
D (Bit in
Ingresso)
set-up
Bit in
memoria
hold
OLD
tempo max di risposta
Luscita trasparente
Comando di
campionam.
tw-min
Bit in
ingresso
Bit in
memoria
tempo di risposta
Quando C = 1 il LATCH CD trasparente.
Quindi, se C=1 per un intervallo maggiore di tw-min e
se durante questo intervallo D modifica il suo valore,
rispettando anchesso il vincolo su tw-min, allora le
stesse modifiche si ritrovano su Q.
CD
q 00 01 11 10
0
0 0 1 0
1
1 1 1 0
Q
Q = C.D + C.q
D
Ritardo
INERZIALE
Multiplexer
Esercizio 6.2
Applicare il procedimento di analisi allo schema logico del
circuito 75 per dimostrare, con la tabella delle transizioni,
che il comportamento quello del latch CD.
Esercizio 6.3
y1
y2
z
Qn+1 = Dn
I
CK
4
Flip-flop D
yi
/Q
Q Q se x = 1
(la rete oscilla)
Q Q se x=0
x
Q
No!
Irrealizzabile !!
x
F1
F1
C
D
QM
F2
QM
QS
(lampada)
F2
Qs
QS
QM
Master
C
D
trasparente
Q
QM
Slave
memorizza
Master
memorizza
Slave
Copia
Master
trasparente
Slave
memorizza
(trasparente)
QS
x
x
intervallo n
x
y
intervallo n+1
latch M trasp.
Qn+1 = Dn
latch S trasparente
tsu th
tr
Il campionamento
avviene quando lo
slave diventa
trasparente e lascia
passare il valore in
ingresso fino a quel
momento al master
c
d
CK
M
I
/Q
Q
yi
/Q
U = ys
Mappe di G ed F
Dal lucido precedente, trascurando i termini anti-alea di 1 (che non modificano
le mappe) si ha:
YM = cd + /c . ym = /CK I + CK . ym
YS = cd + /c . ys = CK ym + /CK . ys
U = ys
Ck I
ymys
00
00 0
01 11 10
1 0 0
01 0
11 0
10
YM
Ck I
ymys
00 01 11 10
00 0
0
0 0
11 1
01
10
YS
00
01
11
10
00
00
10
00
00
01
01
11
00
00
11
01
11
11
11
10
00
10
11
11
ym ys
Le frecce non in
rosso mostrano
transizioni in cui
CK non commuta:
in esse commuta D
ma non varia
luscita (
considerato solo il
caso di uscita = 0)
Con riferimento ai requisiti per il corretto funzionamento delle RSA si vede che:
1. Se il requisito 1 soddisfatto, allora le due transizioni evidenziate in rosso non si
verificheranno mai (quindi possiamo non considerarle nel dds)
2. Il requisito 2 soddisfatto (non ci sono corse)
3. Il requisito 3 soddisfatto perch nelle espressioni SP di YM e YS ricavate dalla
rete il termine anti-alea c (siamo partiti da due LATCH CD)
00
01
11
10
00
00
10
00
00
01
01
11
--
00
11
01
11
11
11
10
00
10
11
--
ym ys
Le frecce rosse mettono in evidenza lazione del fronte positivo del clock - Ck: 0 1 nei
casi in cui lingresso I diverso dalluscita U
Le altre frecce sono relative a transizioni in cui CK non commuta: in esse commuta D ma non
varia luscita ( considerato solo il caso di uscita = 1; il caso con uscita =0 stato messo in
evidenza nel lucido precedente)
Sono state inserite condizioni di indifferenza in quelle caselle in cui non ci si pu mai trovare
Ck I
00
1-
Nello stato 10
il Master
trasparente
00
01
01
00,0
11
Ck: 0 1 10
01
01,1
00
10,0
00
Nello stato 01 il
Master trasparente
Ck: 0 1
11,1
101
Il flip-flop D master-slave:
forme donda
CK = CS
CM
Latch trasp. M 2
tsu th
M 2
tsu th
M 2
tsu th
QM
U= QS
Il FF-D campiona lingresso I sul fronte positivo di CK
Si noti che se la condizione su th non soddisfatta, c il rischio di campionare il segnale D in un istante
successivo al fronte positivo del clock! (in realt in questo caso il FF-D andrebbe in metastabilit)
Il flip-flop D master-slave:
positive edge triggered, con un clock del LATCH slave in
ritardo rispetto a quello del master (disallineamento dei clock)
CK
M
I
Q
/Q
Q
Qn+1 = Dn
Il flip-flop D master-slave:
malfunzionamento quando entrambi i LATCH sono trasparenti
CS(t+2) =
CK(t)
CM
Trasp.
tsu th
M 0
tsu th
M 0
tsu th
QM
U= QS
Luscita QS commuta erroneamente sul fronte negativo di CK se quando lo slave blocca il master, che si
aperto prima, riuscito a far arrivare allo slave il nuovo ingresso (alea essenziale)
CM
Trasp.
M 0
M 0
tsu th
QM
U= QS
Fronte del
clock
Segnale
D
set-up
hold
Segnale
Q
risposta
Comando
asincrono
Comando
sincrono
/PR
/CL
Q
/Q
Q
/Q
Qn+1 = Dn
Delay!!
D Q
/Q
DQ
/Q
D Q
/Q
D Q
/Q
D Q
/Q
CK
I FF-D devono soddisfare la condizione: r > h
t0
t1
T0
I
t2
T1
t3
T2
r
t4
T3
t5
T4
t6
T5
t7
T6
u
F
s*
Qn+1 = Dn
Q
/Q
CK (f = fck)
Complessit e Componenti
Kn
0
0
0
0
1
1
1
1
Qn
0
1
0
1
0
1
0
1
Qn+1
0
1
1
1
0
0
1
0
Qn+1 = (J.Q+K.Q)n
Qn
0
1
Jn Kn
00 01 11 10
0 0 1 1
1 0 0 1
Qn+1
Esercizio 6.4
Con pochi gate ed un flip-flop D possibile ottenere una rete
che ha il comportamento del flip-flop JK.
Con pochi gate ed un flip-flop JK possibile ottenere una rete
che ha il comportamento del flip-flop D.
Il fronte di salita di C
campiona D=1 e ne
ordina la memorizzazione
11, 1
A
00, 0
10
CD,Q
01, 0
11, 1
11, -
00, 0
10, 1
10, 0
0-, 1
0-, 0
10, 0
B
11, 0
11, 1
00, 1
10, -
D
01, 1
Contatori Binari
Contatore binario
Un contatore binario una rete sequenziale sincrona che memorizza
un numero binario e lo incrementa a ogni fronte positivo del segnale
do clock.
Dunque un contatore conta i fronti positivi del segnale di clock.
Un contatore binario per 2n conta fino a (2n 1), quindi riparte da 0 e
mantiene il conteggio su un registro Rn di n bit. In figura mostrata
una possibile struttura di un contatore binario per 2n
Per sommare 1 a una
configurazione di n bit
bastano n half adder!
z=y
n
1
yn-1 .. 0
Stato presente
(n variabili)
9 dicembre 2009
Luca Faggianelli
lfaggianelli@arces.unibo.it
+
Rn
CLK
Yn-1 .. 0
Stato futuro
(n variabili)
2
OUT
n
2^n-1
2^n-2
k +1
= ( S k + 1 ) mod 16
CI
A
B
COUNT0
D Q
CK
CO
CI
S
A
B
COUNT1
D Q
CK
CO
CI
S
A
B
CO
D Q
COUNT2
CK
CO
CLK
CONTATORE
x8
3
COUNT[2..0]
CO
Non tutti i contatori hanno dispongono di tutti I comandi indicati nel lucido
precedente. Il comando pi importante il RESET che porta il contatore in
uno stato iniziale ben definito. Gli altri comandi aggiungono flessibilit al
contatore e possono esserci o non esserci. E sempre possibile immaginare
anche altri possibili comandi.
Reset
Lo stato futuro sar 000 se RESET=1, altrimenti sar uguale alluscita del
sommatore (la rete dei 3 HA, indicata con G in figura)
Si pu generare lo stato futuro del contatore con un mux da 3 bit a due vie
controllato dal segnale di reset. Una via va messa a 0:
Y[2..0] = 0.RESET + RESET/ . y[2..0]
Dallespressione si vede che il mux da 3 bit si riduce a tre AND a due
ingressi
D Q
3
RESET/
R3
CLK
Enable
A lezione abbiamo visto che il comando di enable si pu realizzare con un
altro mux a due vie sullingresso D.
Nel caso del nostro contatore proponiamo la seguente variante: si controlla
con il segnale ENABLE lingresso CI dellHALF-ADDER meno significativo
EN
CI
S
y0
Se CI=EN=0 -> U = I + 0
A
CO
Se CI=EN=1 -> U = I + 1
CI
y1
CO
CI
y2
S
A
CO
CO
Load
3
3
CI
3 HA
R3
CK
LOAD
RESET/
Il load una generalizzazione del reset: il reset impone il valore 000 allo
stato futuro del contatore, mentre il comando di LOAD, utilizzato come da
figura soprastante, pone lo stato futuro del contatore al valore L, che
rappresenta una qualunque configurazione binaria di 3 bit, da 000 e 111.
L il valore che verr memorizzato in R3 se LOAD=1 e REST = 0 quindi
proprio da L che ripartir il conteggio; LOAD il segnale di controllo che
abilita la funzione di load.
10
Up/Down#
Il comando Up/Down# seleziona la modalit di conteggio del contatore.
Se Up/Down# =1 : COUNT<=COUNT+1 sale a 7 e riparte da 0
Se Up/Down#=0 : COUNT<=COUNT-1 scende a 0 e riparte da 7
Modifichiamo il contatore sostituendo i 3 HA con 3 Full-Adder in modo da
consentirgli di decrementare il suo valore:
S
Detti:
Si ha:
k +1
= (S k 1)mod8
..00 1 + 1 ) = X + 1{
..110 + 1 = X + 11
..2
111
X 1 = X + ( 0{
3
n1
n1
X 001 = X + 111
11
Up/Down#
Quindi:
CI = 1
se Up / Down# = 1
B = 000
CI = 0
se Up / Down# = 0
B = 111
CI
B0
B1
B2
UP/DOWN#
Stato
futuro
3 FA
A2 A1 A0
EN
Stato
presente
3
12
Carry Out
Il segnale di uscita CO (carry out dellHalf-Adder pi significativo) segnala lo
stato di fine-conteggio (111), e pu essere lasciato volante oppure pu
essere utilizzato come ingresso sincrono di unaltra RSS
Se si vuol far contare il contatore sia in avanti che allindietro, allora si
propone di realizzare la funzione G con tre FULL-ADDER, piuttosto che con
3 HALF-ADDER. In questo caso:
Quando il contatore conta in avanti lunico caso in cui si ha riporto
sullultimo Full Adder quando lo stato presente 111: infatti in questo
stato le uscite della rete dei full-adder daranno 111+1 = 000 con 1 sul carry
out dellultimo full adder. Dunque CO vale 1 solo quando il contatore finisce
di contare!
Quando il contatore conta indietro, ad ogni conteggio somma 111 al suo
stato presente, quindi c sempre un riporto sullultimo Carry Out tranne nel
caso in cui lo stato presente 000: infatti 000+111=111 senza riporto. In
definitiva il CO vale 0 solo quando il contatore finisce di contare!
In pratica se vogliamo sapere quando un contatore nello stato di fineconteggio, possiamo tenere sotto controllo lultimo carry out, senza dover
controllare il valore di conteggio; il segnale di fine conteggio si dovr
attivare quando UP/DOWN# e CO sono entrambi a 1 o entrambi a 0.
13
RST
CNT
3
X
1
Contatore BCD
Ci sono alcuni casi in cui, anche se la soluzione del conteggio da X a 0
sarebbe pi semplice, bisogna necessariamente contare in avanti fino a
un numero minore di (2n -1) e poi ripartire da 0; in questo caso si pu
utilizzare una rete esterna per riconoscere il numero X e resettare il
contatore: un caso del genere il contatore BCD.
Il contatore BCD un contatore che conta da 0 a 9 (da 0000 a 1001),
quindi necessario usare un contatore x16 in cui lo stato futuro di 9 sia
0; il contatore deve cio resettarsi al clock successivo rispetto a quello in
cui ha raggiunto il valore 9. In questo caso si usa una rete che decodifica
lo stato 9 (mintermine di 4 variabili m(9) ). Tale mintermine dovr agire
da reset sincrono del contatore. Naturalmente anche i contatori BCD
possono essere realizzati con i comandi di LOAD e di ENABLE.
15
RETI LOGICHE T
A.A. 2009-10
Componenti ricorrenti nella progettazione digitale:
Registri da n bit
Registri a traslazione
Multiplexer
Esempi di impiego dei registri
15/12/2009
1
Out[n-1..0]
Qn-1..0
clock
Registro da n bit
In[n-1..0]
Qn-1
In-1..0
Q1
......
D
In-1
Viene utilizzato
per memorizzare
lo stato presente
nelle RSS (es.: Unit di
Controllo dei calcolatori)
I1
Q0
D
I0
n
Qn-1..0
Registro da n bit
con uscita tristate
clock
n
In[n-1..0]
C#
In-1..0
Q1
Qn-1
OE
Pu essere
utilizzato
come componente
di un mux distribuito
Struttura
Q0
OE
......
D
In-1
Se c# = 1,
allora le uscite
sono tutte
tristate
I1
I0
Qn-1..0
L/H#
Registro da n bit
con ingresso di LOAD
L/H# = 1: Load
L/H# = 0: Hold
In-1..0
Out[n-1..0]
i-esimo elemento
Qn-1
Qi
Qn-1
D
In-1
Q0
Qi
D
Ii
Q0
D
I0
clock
L/H#
L/H#
L/H#
DOMANDE:
MSB
n-1..0
Registro da n-bit
a scorrimento (RIGHT)
clock
Out[n-1..0]
i-esimo elemento
MSB
Qn-1
D
Qi
Qi-1
D
Q1
Q0
D
clock
LSB
n-1..0
Registro da n-bit
a scorrimento (LEFT)
clock
Out[n-1..0]
i-esimo elemento
Qn-2
Qn-1
D
Qi
Qi-1
D
LSB
Q0
D
clock
=
=
=
=
00
10
01
11
:
:
:
:
MSB
LSB
Qn-1..0
In-1..0
EN#
OE
A1..0
MODE[1..0]
n
In[n-1..0]
8
MSB
LSB
A1..0
In-1..0
Qn-1
qn-1
qn-2
MSB
In-1
0
1
2
3
qn-1
D
qi-1
Q
Qi
i-esimo elemento
qi
qi+1
Ii
A1..0 =
0 (HOLD)
1 (SHIFT LEFT)
2 (SHIFT RIGHT)
3 (LOAD)
OE
Q0
OE
1
2
3
q0
qi
0
D
LSB
q1
I0
1
2
3
A1..0
A1..0
A1..0
clock
q0
Schema a blocchi
A1
A0
Y3
Y2
Y1
Y0
qi+1
Ii
Y0
0
1 Di
2
3
Y1
qi
D
Y1
Y2
Y3
Y2
Y3
Ii
Q
qi+1
Di
qi-1
2
A1..0
D
E
C
A1
qi
qi-1
Y0
A0
qi
Calcolatori Elettronici A.A. 2008-09
10
Qn-1..0
MSB
LSB
RIGHT_IN
clock
In-1..0
OE
EN#
HOLD
HOLD#
LEFT
LEFT#
RIGHT
RIGHT#
LOAD
LOAD#
n
In[n-1..0]
HOLD
LEFT
RIGHT
LOAD
Ii
qi+1
qi-1
qi
Di
LEFT
RIGHT
LOAD
Y0
Y1
Y2
Y3
Ii
qi+1
HOLD
LEFT
RIGHT
LOAD
Di
?
qi-1
A0
A1
qi
DEC
Y0 Y1 Y2 Y3
12
LEFT#
RIGHT#
LOAD#
A1
A0
HOLD
LEFT
RIGHT
LOAD
HOLD
HOLD
HOLD
E
N
C
A0
A1
Y0
D
E
C
Y1
Y2
Y3
13
Macchina combinatoria
Si
Ai
A
B
Bi
CI
A0
FA
CI
stato
presente
CO
Memoria
S0
stato
futuro
CO
B0
A1
B1
CI
S
FA
A
B
CO
S1
CI
S
FA
A
B
CO
CI
S
FA
A
B
CO
Sn-1
CO
n bit Adder
14
15
A[n-1..0]
In-1..0
USR
Qn-1..0
n
An-1..0
LOAD
n bit
Adder
B[n-1..0]
In-1..0
LOAD
Qn-1..0
USR
clock
Cn-1..0
n
In-1..0
LOAD
USR
Qn-1..0
Bn-1..0
CI
CO
n
C[n-1..0]
Tutti e tre i registri funzionano come un normale registro edge-triggered (LOAD#=0). I restanti
segnali di controllo sono tutti NON attivi (HOLD#= LEFT#=RIGHT#=1). Per un corretto funzionamento
della rete (supponendo i 3 registri identici) il periodo del clock deve rispettare la seguente
diseguaglianza:
Si disegnino le forme
donda che
Illustrano il funzionamento
di questa rete!!
ESERCIZIO
Si progetti, iniziando dal grafo degli stati di Mealy una rete
sequenziale sincrona con due ingressi a e b e una uscita s che
si comporta come segue:
Supponiamo che:
Quando su a c Ai, su b c Bi
Allora si vuole ottenere che:
Sulluscita s arrivi il risultato della somma S=A+B, a partire dal bit meno
significativo.
Si deve quindi avere si = (A + B)i
A[n-1..0]
0
In-1..0
Q0
USR
A
S
LOAD RIGHT
B[n-1..0]
RIGHT
Q0
USR
USR
TEMP[n-1..0]
B
CI
RIGHT
Qn-1..0
F.A.
LOAD_AB# RIGHT_AB#
In-1..0LOAD
MSB
CO
In-1..0
RSS
di
controllo
LOAD_AB#
RIGHT_AB#
RESET#
LOAD_C#
Qn-1..0
USR
LOAD
RESET#
C[n-1..0]
LOAD_C#
In questo schema i registri di ingresso devono prima campionare gli operandi (A,B) da sommare e poi
scorrere verso destra per poter eseguire la somma dei singoli bit una coppia alla volta. Il registro sulluscita
s del F.A. programmato per scorrere sempre verso destra: dopo n colpi di clock questo registro conterr
il nuovo risultato. Il registro a valle (C) serve per mantenere lultimo risultato. A cosa serve il FF-D? Si
metta in relazione questo schema con la soluzione allesercizio assegnato nel lucido precedente.
Si noti che ad ogni nuova somma occorre resettare la rete sequenziale che calcola la somma. Perch?
Perch questo Data Path funzioni serve una RSS di controllo che generi gli ingressi di controllo dei 4 registri
e il reset del FF-D
18
Forme donda
(esempio di somma di due numeri da 4 bit)
Load di: A,B
Calcolo di:
C0
A,B
C1
C2
C0
C3
A,B
C1
C2
C0
C1
1101
0110
C3
C2
C3
0011
0001
Clock
A
0100
1010
+
0010
0011
TEMP
C
xxxx
1111
0001
0xxx
10xx
110x
xxxx
0110
1011
0101
1010
0110
1101
START#
Verificare che: LOAD_AB#=START#, RIGHT_AB#=/START#,
RESET#=START#, LOAD_C#(t+Tck) = START#(t) e fare la sintesi della
rete di controllo nel caso di un sommatore a 8 bit.
19
Esercizi
Analizzare le differenze tra i due tipi di funzionamento (es:
qual la durata minima del periodo di clock nel secondo
caso? E maggiore o minore del primo caso? Qual la
differenza in termini di costo (componenti usati) nei due
casi?)
Fare la sintesi di una rete sequenziale sincrona che
permetta di fare la somma di numeri da 16 bit, sia
utilizzando un solo sommatore da 8 bit, sia utilizzando un
solo FA
Fare la sintesi di una rete sequenziale sincrona che
consenta di fare la somma di una sequenza di numeri da
8 bit, utilizzando un sommatore da 8 bit
Simulare con QUARTUS le reti sequenziali mostrate
20