Logica Digitale
Fondamenti di Informatica - Prof. Gregorio Cosentino
1
Ma in fondo quali sono i
mattoncini che compongono
un calcolatore elettronico ?
Porte
And, Or, Nand, Nor, Not
Circuiti
Multiplexer, Codif, Shifter, ALU
Aritmetica
Sommatori
Memorie
Latch, Flip Flop
Bus
Sincroni clk, Asincroni M/slave
I/O
Chip paralleli
Fondamenti di Informatica - Prof. Gregorio Cosentino
2
Circuiti Digitali
i1
INGRESSI
in
CIRCUITO
DIGITALE
o1
USCITE
om
• Circuiti elettronici i cui ingressi e le
cui uscite assumono solo due livelli
• Al circuito sono associate le funzioni
che calcolano le uscite a partire dagli
ingressi
o1 = f1(i1,….,in )
..
.
om = fm(i1,….,in )
Fondamenti di Informatica - Prof. Gregorio Cosentino
3
Una semplice
applicazione
•Variabile di controllo: X
–due stati:
• X=0 -> interruttore aperto
• X=1 -> interruttore chiuso
•Uscita Y
–Due stati:
• Lampadina spenta (Y=0)
• Lampadina accesa (Y=1)
X=0
Y=0
X=1
Fondamenti di Informatica - Prof. Gregorio Cosentino
Y=1
4
Modello logico
AND
X2
X1
Y
Y = X1 X2
X1
Y
OR
Y = X1 + X2
X2
Fondamenti di Informatica - Prof. Gregorio Cosentino
5
Funzioni Logiche (Booleane)
y,x1,…,xn ∈{ 0,1}
y = f(x1,…,xn)
f { 0,1}
{ 0,1} →
n
• Variabili con due soli valori possibili:
{ 0,1}
FALSO
VERO
{F,T}
FALSE
TRUE
Tavola di verità
x1
0
0
..
.
1
x2 …… x n-1 xn
0 …….. 0 0
0 …….. 0 1
..
.. ..
.
. .
1 …….. 1 1
f
0
1
..
.
0
• 2n n combinazioni di ingresso
• 22 funzioni distinte di n variabili
Fondamenti di Informatica - Prof. Gregorio Cosentino
6
Funzioni Booleane (Esempi)
• Con n=1 si hanno 4 funzioni:
x1
0
1
f0
0
0
f1
0
1
f2 f3
1 1
0 1
• La funzione f2 è detta NOT
• Con n=2 si hanno 16 funzioni, tra cui:
x1
0
0
1
1
x2
0
1
0
1
f0
0
0
0
0
f1
0
0
0
1
f2
0
0
1
0
f3
0
0
1
1
f4
0
1
0
0
f5
0
1
0
1
f6
0
1
1
0
f7
0
1
1
1
• La funzione f1 è nota come AND
• La funzione f7 è nota come OR
Fondamenti di Informatica - Prof. Gregorio Cosentino
7
Algebra Circuitale (Booleana)
• È una struttura algebrica (insieme
più operatori)
• Reticolo distributivo complementato
Insieme: I = { 0,1 }
Operatori: AND, OR
Complementazione: NOT
Notazione
• Se x e y sono due variabili booleane:
– L’ AND di x e y si indica con x·y
– L’ OR di x e y si indica con x + y
– Il NOT di x si indica con x
Fondamenti di Informatica - Prof. Gregorio Cosentino
8
Porte NAND e NOR
È possibile simulare AND, OR e NOT, e
quindi realizzare qualsiasi circuito, usando
soli NAND oppure soli NOR che richiedono
meno transistors.
0,0
1
1,1
Simulazione AND
Fondamenti di Informatica - Prof. Gregorio Cosentino
9
Porte XOR
• Calcola la funzione OR Esclusivo (diverso da
OR): dà uscita 1 (vero) quando uno solo degli
ingressi (ma non entrambi) vale 1
• Facilmente realizzabile con porte AND, OR e
NAND
0
0
0
0
1
1
0
0
1
0
1
Fondamenti di Informatica - Prof. Gregorio Cosentino
10
Riepilogo
Operatore
NOT
Simbolo
y=x
Proprietà
y=1 se e solo se x=0
AND
y=x1x2
y=1 se e solo se
x1=x2=1
OR
y=x1+x2
y=0 se e solo se
x1=x2=0
NAND
y=x1/x2
y=0 se e solo se
x1=x2=1
NOR
y= x↓x2
y=1 se e solo se
x1=x2=0
XOR
y = x1⊕x2
y=1 se e solo se x1≠x2
XNOR
y= x1≡x2
y=1 se e solo se
x1=x2
Fondamenti di Informatica - Prof. Gregorio Cosentino
11
Porte universali
•Con l’insieme delle tre porte
(NOT, AND, OR) può essere
realizzata qualunque funzione
(insieme completo); non è
minimo: l’operatore AND
(oppure OR) è ridondante
•Le porte NAND ed NOR sono le
(uniche) porte universali poiché
mediante esse può essere
realizzata qualunque funzione
binaria
Fondamenti di Informatica - Prof. Gregorio Cosentino
12
Circuiti Logici
• Porte Logiche: circuiti elementari che
realizzano gli operatori dell’algebra
Qualsiasi funzione booleana può essere
calcolata con un circuito realizzato
con sole porte AND, OR e NOT
• Le porte logiche vengono realizzate
con circuiti elettronici:
NOT
NAND
NOR
Fondamenti di Informatica - Prof. Gregorio Cosentino
13
Circuiti Logici
•Una porta logica e’ un dispositivo con
N ingressi ed una uscita che realizza un
legame tra il valore logico presente
all’uscita e quelli presenti all’ingresso,
esprimibile tramite una funzione logica
elementare
NOT
NAND
NOR
Fondamenti di Informatica - Prof. Gregorio Cosentino
14
Forme canoniche
•Esiste un modo
“standard” (o canonico)
per definire una
qualunque funzione?
•Si, 2 forme: Somma di
Prodotti (SP) e la duale
Prodotto di Somme (PS)
Fondamenti di Informatica - Prof. Gregorio Cosentino
15
Mintermine
•Un mintermine mi di n
variabili, è una funzione
che vale 1 solo in
corrispondenza
dell’assegnamento di
verità i
m13=x4 x3 x2 x1
•Qualunque funzione è
esprimibile come
somma dei mintermini
per cui y = 1
Fondamenti di Informatica - Prof. Gregorio Cosentino
16
Espressioni Algebriche
Teor.: ogni funzione booleana è
algebrica, cioè rappresentabile
con un’espressione dell’algebra
Prima Forma Canonica
f = Σj=1..m
Π
i=1..n
xij*
• xij* vale xi oppure xi
• f è espressa come OR delle combinazioni per cui la funzione è vera
(somma di mintermini)
Qualsiasi funzione booleana può
essere messa in questa forma
Fondamenti di Informatica - Prof. Gregorio Cosentino
17
Funzioni Booleane (Esempio)
ES
• Tre variabili booleane A, B, C
• Funzione di maggioranza M: è vera
solo se almeno due delle tre variabili
sono vere
D0
D1
D2
D3
D4
D5
ABC
D6
ABC
D7
ABC
ABC
M = ABC + ABC + ABC + ABC
111
D3
111
D5
111
D6
111
D7
Fondamenti di Informatica - Prof. Gregorio Cosentino
18
Funzioni Booleane (Esempio)
ES
•Tre variabili booleane A, B, C
•Funzione di maggioranza M:
Consente di operare la sintesi di una
qualsiasi funzione logica con una
tecnica a due livelli, un primo livello
di porte AND ai cui ingressi
pervengono le variabili di ingresso
(dirette o negate) ed un secondo
livello di OR a cui pervengono le
uscite delle porte AND del primo
livello.
M = ABC + ABC + ABC + ABC
Fondamenti di Informatica - Prof. Gregorio Cosentino
19
Circuiti Logici: (Esempio)
(Funzione di Maggioranza)
M = ABC + ABC + ABC + ABC
Fondamenti di Informatica - Prof. Gregorio Cosentino
20
Circuiti Logici: (Esempio)
(Funzione di Maggioranza)
Invia alla sua unica uscita il valore logico presente
nell’i-esimo dei suoi 2n ingressi selezionato dal
valore i codificato in N ulteriori ingressi di
controllo
Fondamenti di Informatica - Prof. Gregorio Cosentino
21
Circuiti Logici: (Esercizio)
1) Uno dei seguenti non rappresenta
un insieme di operatori logici
universali.
a) and e or
b) nand
c) or e not
Motivare brevemente la risposta
(massimo tre righe)
Fondamenti di Informatica - Prof. Gregorio Cosentino
22
Circuiti Logici: (Esercizio)
1)Data una rappresentazione delle
cifre decimali (0...9)
in cui 0 è codificato come 0000, 1
come 0001, 2 come 0010 ,..., 9 come
1001,
scrivere la tabella di verità della
funzione di commutazione
che è vera quando la cifra è compresa
tra 4 e 6, estremi inclusi.
Fornire il circuito logico che la
calcola come somma di mintermini.
Fondamenti di Informatica - Prof. Gregorio Cosentino
23
Circuiti Logici: (Esercizio)
1) Data una rappresentazione delle
cifre decimali (0...9) in cui 0 è
codificato come 0000, 1 come
0001, 2 come 0010 ,..., 9 come
1001, scrivere la tabella di verità
della funzione di commutazione
che è vera quando la cifra è
compresa tra 3 e 6, estremi inclusi.
Fornire il circuito logico che la
calcola
come
somma
di
mintermini.
Fondamenti di Informatica - Prof. Gregorio Cosentino
24
Circuiti Logici: (Esercizio)
1) Data una rappresentazione
delle cifre decimali (0...9) a
quattro digit,
scrivere la
tabella di verità della funzione
di commutazione che è vera
quando la cifra è pari, escluso
lo zero. Commentare e Fornire
il circuito logico che la calcola
come somma di mintermini.
Fondamenti di Informatica - Prof. Gregorio Cosentino
25
Circuiti Integrati
• Un circuito integrato è un dispositivo
elettronico costituito dall'integrazione di un
circuito elettronico su di un substrato di
materiale semiconduttore.
• Molte porte realizzate sulla stessa piastrina
di silicio (chip)
• Contenitori da 14 a 68 piedini
• Vari livelli di integrazione:
– SSI (Small Scale)
1-10 porte
– MSI (Medium Scale) 10-100 ”
– LSI (Large Scale)
102-105 ”
– VLSI (Very Large Sc.) > 105 ”
• Tempi di commutazione 1-20 nsec
Fondamenti di Informatica - Prof. Gregorio Cosentino
26
Circuiti Integrati
• Quattro porte realizzate sulla stessa
piastrina di silicio (chip)
• Contenitori da 14 piedini: due input e
un output per porta, una alimentazione
e una terra
• livello di integrazione:
– SSI (Small Scale)
1-10 porte
– il notch identifica l’orientamento
Fondamenti di Informatica - Prof. Gregorio Cosentino
27
Comparatore
0
0
0
0
0
0
0
0
0
1
0
0
NOR gate
0
Semplice 4-bit comparatore Word A Word B.
Se tutti e quattro i bit sono uguali, al NOR
arrivano quattro zero,in uscita avrò zero, faccio
NOR cosi da avere 1 se le word sono uguali.
Fondamenti di Informatica - Prof. Gregorio Cosentino
28
Semiaddizionatore
(Half Adder)
AND gate
• Circuito a 2 ingressi e 2 uscite: somma e
riporto (carry)
• Non può essere usato per la somma di
numerali a più bit, dove occorre sommare
anche il riporto della cifra precedente
Fondamenti di Informatica - Prof. Gregorio Cosentino
29
ALU a 1 bit (bit slice)
• A e B sono bit omologhi degli operandi
• F0 e F1 segnali di controllo selezionano la funzione (00:
AND), (01: OR), (10: NOT), (11: SUM) del decoder ( 00
passa linea 0,etc)
• La linea passata = 1 abilita un solo and della logical unit
oppure il sommatore;uscita su OR semplice
• ENA ed ENB sono segnali di enable
• INVA permette di negare A
• Default ENA=ENB=1 e INVA=0 per non modificare in
questo caso il valore di A e B, servono per altre funzioni
Fondamenti di Informatica - Prof. Gregorio Cosentino
30
ALU a 1 bit (bit slice)
• Per realizzare una ALU ad 8 bit non
devo fare altro che mettere in serie 8
ALU a 1 bit
Fondamenti di Informatica - Prof. Gregorio Cosentino
31
Arithmetic Logic Units (2)
Otto 1-bit ALU connessi per realizzare un 8-bit ALU.
I segnali di Enables e Invert non sono riportati per
semplicità grafica.
Il segnale INC è utile per effettuare addizioni: esso
incrementa ( INC ) di 1 il risultato, rendendo possibili
operazioni tipo A+1 e A+B+1 molto utili in tutti i
programmi software
Fondamenti di Informatica - Prof. Gregorio Cosentino
32
Clocks
Oscillatore
(a) A clock.(b) The timing diagram for the clock.(c) Generation of an asymmetric clock.
Ilclock è un circuito che emette una serie di
impulsi con una precisa ampiezza e un preciso
intervallo tra impulsi consecutivi,
praticamente da il tempo in modo che due o
più eventi “ digitali “ siano sincronizzati.
Il delay produce una serie in ritardo, aumento il
numero di impulsi ( b )
Se metto A in AND con B aumento ancora il numero di
impulsi
Fondamenti di Informatica - Prof. Gregorio Cosentino
33
Circuiti Logici: (Esercizio)
1) Un circuito digitale con
funzione di comparatore a due
ingressi A e B ciascuno di
quattro bit è composto da:
a) quattro and e un or
b) un nand e quattro or
c) quattro or esclusivo e un nor
Motivare brevemente la risposta
(massimo tre righe + una
figura obbligatoria)
Fondamenti di Informatica - Prof. Gregorio Cosentino
34