Sei sulla pagina 1di 8

Linguaggio del calcolatore

 Solo assenza o presenza di tensione: 0 o 1


Circuiti e reti combinatorie  Tante componenti interconnesse che si
basano su 0 e 1
 Anche per esprimere concetti complessi
Appendice A + dispense  Bit: binary digit (0 o 1)

1 2

Algebra di Boole AND, OR, NOT


 Strumento matematico su cui si basano i sistemi  AND: risultato 1 se e solo se entrambi gli
digitali (George Boole, 1854)
operando sono 1
 Variabili che possono avere solo uno di due
valori: 1 (vero) o 0 (falso)  OR: risultato 1 se almeno uno dei due
 Operazioni di base tra le variabili: AND, OR, operandi e’ 1
NOT  NOT: inverte il valore dell’operando
A AND B = A x B
A OR B = A + B  Esempio: A + (B x C) = D
Ā

 NOT A = D =1 se A=1 o se B=0 e C=1

3 4

Notazione And e or
 Senza parentesi, AND ha precedenza
sull’OR
 Esempio: A + (B x C) = A + B x C
 Spesso scritto senza x:
 Esempio: A + BC
 Tabella di verita’
 Risultato per ogni possibile combinazione dei
valori degli operandi

5 6

1
AND OR NOT
Xor e not A B A AND B A B A OR B A NOT A
falso falso falso falso falso falso falso vero
falso vero falso falso vero vero vero falso
vero falso falso vero falso vero
vero vero vero vero vero vero

A B R A B R A R
0 0 0 0 0 0 0 1
0 1 0 0 1 1 1 0
1 0 0 1 0 1
1 1 1 1 1 1

A A
R R A R
B B

Proprieta’ dell’algebra di Boole Altre proprieta’ dell’algebra di Boole


 Regole di base (postulati):  Assorbimento
 Commutativita’ 0xA=0
 A+B=B+A
1+A=1
 A x B=B x A
 Distributivita’  Idempotenza
 A + (B x C) = (A + B) x (A + C) AxA=A
 A x (B + C) = (A x B) + (A x C) A+A=A
 Elementi neutri
 1xA=A  Associativita’
 0+A=A  A x (B x C) = (A x B) x C
 Elementi inversi  A + (B + C) = (A + B) + C
 Ax =0
 A+
Ā

Ā =1
 Leggi di De Morgan Ā

AxB= +B Ā

A+ = xB
B

9 10

Porte logiche Completezza di and, or, e not


 Circuito elettronico che, dati dei segnali in  16 operazioni logiche binarie (tante
ingresso, produce un segnale (0 o 1) ottenuto
effettuando una operazione Booleana sugli quante possibili scelte di 4 valori)
ingressi  4 operazioni logiche unarie
 Ogni porta ha 1 o 2 input e 1 output
 Dati gli input, l’output corrispondente appare  Tutte possono essere ottenute
quasi istantaneamente (ritardo di componendo and, or, e not
commutazione)
 Di solito, solo pochi tipi di porte  identificare
insieme di porte funzionalmente completi

11 12

2
NAND NOR
Completezza A B A NAND B A B A NOR B
falso falso vero falso falso vero
falso vero vero falso vero falso
 A OR B = NOT((NOT A) AND (NOT B)) vero falso vero vero falso falso

 Quindi anche {AND, NOT} e’ un insieme vero vero falso vero vero falso

completo A B R A B R
0 0 1 0 0 1
 Lo stesso per {OR, NOT}
0 1 1 0 1 0
1 0 1 1 0 0
1 1 0 1 1 0

A A
R R
B B

13

NOT AND Riassunto: porte logiche di base


A
A R R
B

OR
A

Quindi NAND o NOR sono complete  circuiti con solo porte NAND o solo porte NOR.

16

⇒ ≡
A B A ⇒ B A B A ⇒ B A B A ≡ B A ≡ B equivale a
0 0 1
falso falso
falso vero
vero
vero
0 0
0 1
1
1 0 1 0
(A ⇒ B) AND (B ⇒ A)
vero falso falso 1 0 0 1 0 0 A B A ⇒ B B ⇒ A (A ⇒ B)AND(B ⇒ A)
vero vero vero 1 1 1 1 1 1
0 0 1 1 1
0 1 1 0 0
A ⇒ B equivale a (NOT A) OR B 1 0 0 1 0
1 1 1 1 1
A B NOT A (NOT A) OR B
0 0 1 1 A A
R
0 1 1 1 B B
1 0 0 0 R
1 1 0 1

3
≠ o XOR A XOR B equivale a Dalla tabella di verita’ ad un circuito
A B A ≠ B
NOT (A ≡ B)  Implementazione di funzioni Booleane
0 0 0
0 1 1 A B A ≡ B NOT(A ≡ B)  Tanti circuiti diversi per una stessa funzione
1 0 1 0 0 1 0  Un metodo che funziona sempre (somma di
1 1 0 0 1 0 1 prodotti):
1 0 0 1  Tanti input quante sono le dimensioni della tabella
1 1 1 0  Un solo output
 Un OR la cui uscita e’ l’output
A  Tanti AND quanti sono gli 1 della tabella
 Input degli AND: 1 se diretto, 0 se negato
B
A A
A ≠ B F = not(A)B + B not(A)
R B
X R A B
0 0 0 B

0 1 1 R
1 0 1
1 1 0
20

Anche prodotto di somme Una funzione Booleana, tanti


 Somma di prodotti: uscita 1 se si verifica
qualche combinazione di ingressi che produce circuiti
un 1
 Prodotto di somme: uscita 1 se non si verifica  Esempio:
nessuna combinazione di ingresso che produce F = (not(A) x B) + (B x not(C))
0
 Un AND la cui uscita e’ l’output  Ma anche F = B x (not(A) + not(C))
 Tanti OR quanti sono gli 0 della tabella
 Input degli OR: 0 se diretto, 1 se negato
A B A ≠ B
0 0 0
Circuito corrispondente?
0 1 1 F = (A + B) x (not(A) + not(B))
1 0 1
1 1 0
21 22

Esercizio Esercizio

•Determinare la tavola di verità del •Partendo dalla tavola di verità


seguente circuito: dell’esercizio precedente, costruite un
A not or è una tavola circuito che la realizza seguendo il
nota? metodo dela somma di prodotti e quello
B
not and del prodotto di somme.
R
or

23 24

4
Esercizio Esercizio

•Si disegni un circuito logico che realizza •Dare la tavola di verita’ delle formule:
la seguente tavola di verita’:
•(A  NOT(B)) OR (A AND B)
•A=0, B=0  R = 1
•A OR (A AND NOT(B))
•A=0, B=1  R = 1
•(NOT(A)  NOT(B)) OR (NOT(A)
•A=1,B=0  R = 1 AND B)
•A=1, B=1  R = 0 25 26

Reti combinatorie Reti combinatorie (segue)


 Vediamo alcuni esempi di circuiti:
 I circuti che abbiamo visto non hanno cicli  I segnali sono discretizzati e di solito assumono solo
 Sono rappresentabili da reti combinatorie due stati:
 Rete combinatoria: insieme di porte logiche
connesse il cui output in un certo istante e’
funzione solo dell’input in quell’istante
 N input binari e m output binari
 Ad ogni combinazione di valori di ingresso
corrisponde una ed una sola combinazione di  I circuiti piu’ complessi sono realizzati attraverso la
valori di uscita combinazione di circuiti semplici (porte logiche)

27 28

Esercizio: SOLUZIONE : creazione della tabella


dal problema alla rete combinatoria A B C f
0 0 0 0 Espressione booleana
Progettare una rete combinatoria a tre ingressi 0 0 1 0 f = ABC + ABC + ABC + ABC
che restituisca in output 1 solo se ALMENO due 0 1 0 0
ingressi sono a 1
0 1 1 1
Somma di prodotti
1 0 0 0
A 1 0 1 1
B ? f 1 1 0 1
C
1 1 1 1

29 30

5
SOLUZIONE : riduzione della espressione SOLUZIONE : schema della rete combinatoria
f = ABC + ABC + ABC + ABC
= ABC + ABC + AB(C + C) distributiva
= ABC + ABC + AB(1) complemento f = (B + A)C + AB
= ABC + ABC + AB identità
A
= ABC + ABC + AB + ABC idempotenza
B
= ABC + AC(B + B) + AB distributiva
C f
= ABC + AC(1) + AB complemento
= ABC + AC + AB identità
= ABC + AC + AB + ABC = … idempotenza
= BC + AC + AB = (B + A)C + AB
31 32

Implementazioni NAND e NOR Reti combinatorie (segue)


 Porte Logiche:
 Sono realizzate tramite transistor (sono in pratica
 Spesso si vuole usare solo porte NAND o interruttori automatici)
solo porte NOR
 A volte non minimale, ma regolare
 Esempio:
Ā

 F = B( +C)
 A = A e teorema di De Morgan
Ā

 = nand(nand( ,B),nand(B,C))
F

33 34

Reti combinatorie: specifica e Reti combinatorie piu’ usate


progetto  Confrontatore, a due ingressi (x,y) ed una
uscita (z)
 La specifica di una funzione logica da
implementare mediante rete combinatoria può z := not (x = y)
essere vista come un programma
 Commutatore, a due ingressi primari (x,y),
 La progettazione diventa combinazione e
complemento di reti già note un ingresso di controllo (α) ed una uscita
 Componenti standard (z)
 Confrontatore, commutatore, selezionatore z := if not α then x else y
 Alcuni ingressi possono essere usati per
controllare il funzionamento della rete • Selettore, ad un ingresso primario (x), un
combinatoria (bit di selezione o controllo) ingresso di controllo (α) e due uscite (z1,z2)
 if not α then (z1 := x ; z2 := 0) else (z1 := 0 ; z2
35 := x) 36

6
Confrontatore Commutatore z := if not α then x else y
α

z := not (x = y)

X X

Y
Z Z

37 38

if not α then (z1 := x ; z2 := 0)


Selettore else (z1 := 0 ; z2 := x)
Reti combinatorie multi-funzione
α

 Operatori aritmetico logici a specifica


diretta
 Addizione, sottrazione, traslazione,
rotazione, incremento, decremento, etc.
Z1
 Reti aritmetico logiche multi-funzione
X  Eseguono una delle operazioni suddette a
seconda del valore assunto da un certo
Z2 numero di ingressi di controllo
 Si usano per implementare le ALU
(arithmetic logic unit)
39 40

Multiplexer (o selettore) 2n a 1
Uso del multiplexer
 Solo uno degli ingressi viene
trasferito all’output
 n ingressi di controllo: indicano  Caricamento del program counter, con valore
l’ingresso da trasferire proveniente da
 2n linee di input
 Un contatore binario (incremento per successiva
( D0 - D7)
istruzione)
 n linee di controllo
(A,B,C)  Registro istruzione corrente (istruzione di salto)
 1 linea di output (F)  Output della ALU
 Per ogni combinazione degli  Input primari tanti quante linee di ingresso, PC in
ingressi di controllo, 2n -1 delle output ad un multiplexer (1 multiplexer per ogni bit del
porte AND hanno uscita 0, l’altra
PC)
fa uscire l’ingresso

41 42

7
Demultiplexer Comparatore
 E’ il circuito inverso del Multiplexer ed è spesso usato in
combinazione con quest’ultimo (seleziona comunicazione fra
 Compara due ingressi e produce un output che
linee) indica la uguaglianza (0) o meno (1) degli
ingressi
 Esempio di comparatore ad 1 bit: si realizza con
una porta XOR

Realizzazione con porte NAND


43 44

Comparatore a piu’ bit Traslatore (shifter)


 Comparatori ad  Trasla i bit in ingresso (D) di una posizione, a
1 bit vengono sinistra o a destra a seconda del valore del bit di
collegati tramite controllo (C) (C=1 shift a destra)
una porta NOR
 L’output vale 1
solo se tutti gli
output dei
singoli
comparatori ad
1 bit valgono 0
 (Ai=Bi) per ogni
i, cioe’ A=B 45 46

Sommatore
 Somma due numeri binari
 Prima bisogna capire cosa sono i numeri
binari e come si sommano

47