Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Reti Logiche T
Ingegneria Informatica
Scopo del corso
Progettare e analizzare macchine digitali
Esempio tipico di macchine digitali sono i calcolatori, ma in realtà la stragrande
maggioranza si trova nei cosiddetti sistemi embedded
Macchine digitali
• Computer, Tablet, etc
• Foto/Videocamere etc
• Telefonini, lettori audio/video, etc
• Ascensori, antifurti, domotica
•Automobili (iniezione, ABS, cruise cont.), controllo semafori
• Sistemi di guida per veicoli autonomi
• Distributori automatici, bancomat
• Robot domestici, orologi digitali, elettrodomestici, etc
• Macchine automatiche, sistemi industriali, robot, etc
• ............
Macchine digitali
5m
0m
Segnali analogici e digitali
s(t) s(t)
s(t) informazione a < s(t) < b informazione
t
• In un segnale analogico l’informazione è rappresentata da ogni possibile valore della
grandezza fisica (ovvero l’altezza di ogni una nuvola di fumo).
• In teoria, posso rappresentare infinite informazioni con un unico segnale (1 metro =
rosso rubino, 1.1 = bordeaux, 1.2 = viola, 1.3 = prugna, etc…). In pratica, un piccolo
disturbo sul segnale distrugge l’informazione (se sbaglio di poco a calcolare quanto
fumo accumulare prima di far partire una nuvola o se non sono preciso nel stimarne
l’altezza, potrei ricevere o produrre le tende del colore sbagliato). Inoltre è necessario
avere dispositivi estremamente sofisticati (e quindi costosi) per produrre e
riconoscere il segnale con la precisione richiesta.
• In un segnale digitale, invece, è l’intervallo in cui si trova la grandezza a rappresentare
l’informazione. Per esempio, se la nuvola è alta tra 0 e 1 metri = rosso, tra 1 e 2 metri =
viola, etc..)
• Accetto di rappresentare meno informazioni con una stessa grandezza fisica per
ottenere maggior robustezza nel trasferire l’informazione e minor complessità (e
costo) dei dispositivi necessari
Segnali analogici e digitali
Segnale analogico: l’escursione della grandezza fisica (altezza nuvola tra 0 e 5 m) è utilizzata per
rappresentare tutti i possibili colori
Segnale digitale: l’escursione della grandezza fisica (altezza nuvola tra 0 e 5 m) è utilizzata per
rappresentare solo 7 colori. Possiamo aumentare gli intervalli/colori se necessario, a scapito
della robustezza
Segnali binari
• Per avere la massima robustezza al rumore e utilizzare
dispositivi più semplici (e quindi più affidabili e più
economici) possibili, posso ridurre al minimo il numero di
intervalli considerati
• I segnali binari sono segnali digitali con due soli intervalli
• Interessa solo sapere se il segnale è sopra o sotto una
determinata soglia
• I due livelli del segnale digitale sono convenzionalmente
indicati con H(igh) e L(ow)
s(t)
• Problema: nell’esempio s(t) = H o L informazione
dei segnali di fumo H
potrei comunicare solo
due colori, per esempio
rosso o viola… L
Segnali binari
• Per avere una alta robustezza al rumore non bastano due intervalli, devo
anche gestire il segnale analogico sottostante con attenzione.
• In generale, il segnale deve mantenersi prossimo al suo valore massimo o
minimo e le transizioni tra questi due valori devono essere le più rapide
possibili.
Variabili binarie o bit
• Per descrivere a livello logico un segnale binario si utilizza una variabile, detta variabile
binaria o bit (binary digit), che può assumere i due soli valori «0» e «1»
• E’ importante ricordare che, nonostante il nome inglese, i bit nel caso generale non
sono numeri, ma solo valori logici (simboli) che indicano se il segnale è sopra o sotto
soglia. Invece di «0» e «1» potrei usare «falso» e «vero», o «Boris» e «Stanis».
• L’associazione dei due simboli logici binari 0 e 1 ai due livelli del segnale è arbitraria: se
uso il livello H per rappresentare 1 si parla di logica positiva, se uso il livello H per
rappresentare 0 si parla di logica negativa
• Nel seguito assumeremo logica positiva
s(t)
H
Logica 1 0 Logica
positiva negativa
0 L 1
Codici binari
=101
• Quanti fuochi mi servono per rappresentare 7 colori?
Codifica binaria dell’informazione
𝑛 0 1 2 3 4 5 6 7 8
2𝑛 1 2 4 8 16 32 64 128 256
𝑛 9 10 11 12 13 14 15 16
2𝑛 512 1024 2048 4096 8192 16384 32768 65536
Configurazioni di 𝑛 bit
1 bit 2 bit 3 bit 4 bit 5 bit …
2 conf. 4 conf. 8 conf. 16 conf. 32 conf.
𝑏0 𝑏1 𝑏0 𝑏2 𝑏1 𝑏0 𝑏3 𝑏2 𝑏1 𝑏0 𝑏4 𝑏3 𝑏2 𝑏1 𝑏0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 1 0 0 1 0 0 0 1 0 0 0 0 1
1 0 0 1 0 0 0 1 0 0 0 0 1 0
1 1 0 1 1 0 0 1 1 0 0 0 1 1
1 0 0 0 1 0 0 0 0 1 0 0
1 0 1 0 1 0 1 0 0 1 0 1
1 1 0 0 1 1 0 0 0 1 1 0
1 1 1 0 1 1 1 0 0 1 1 1
1 0 0 0 0 1 0 0 0
Un modo per elencarle tutte è 1 0 0 1 0 1 0 0 1
replicarne la regolarità, di nuovo 1 0 1 0 0 1 0 1 0
basata su potenze di 2:
1 0 1 1 0 1 0 1 1
• Il primo bit alterna «0» e «1»
1 1 0 0 0 1 1 0 0
• Il secondo alterna 2 volte «0»
e 2 volte «1» 1 1 0 1 0 1 1 0 1
• Il terzo alterna 4 volte «0» e 4 1 1 1 0 0 1 1 1 0
volte «1» 1 1 1 1 0 1 1 1 1
• … … … … … …
Esempio di codice binario
?
Livello logico
[Reti Logiche T]
Livello fisico
[Elettronica T]
Livelli di astrazione in Informatica
Software Applicativo
Software Linguaggio di Programmazione
Sistema Operativo
Instruction Set
Livello
architettonico Processore, Memoria, I/O, Bus
Livello
Hardware logico Reti logiche
Famiglie e Librerie di Circuiti
Livello
fisico Circuiti elettronici
Interruttori elettronici
Relazioni con altri corsi
FOND. di INFORMATICA T
SISTEMI OPERATIVI T
CALCOLATORI ELETTRONICI T
RETI LOGICHE T
ELETTRONICA T
ELETTROTECNICA T
FISICA T
Reti Logiche e Calcolatori
CALCOLATORI ELETTRONICI T
RETI LOGICHE T
𝑥 𝑧 𝑧=𝑥
0 1 𝑥 𝑧 oppure
1 0 𝑧 = 𝑥′
Gate con 2 ingressi
𝑛
• Usando la formula 22 con 𝑛 = 2 otteniamo che le possibili funzioni
elementari di 2 ingressi sono 16
𝑥 𝑦 𝑓0 𝑓1 𝑓2 𝑓3 𝑓4 𝑓5 𝑓6 𝑓7 𝑓8 𝑓9 𝑓10 𝑓11 𝑓12 𝑓13 𝑓14 𝑓15
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
𝑥 𝑦 𝑧
0 0 0 𝑧 =𝑥∙𝑦
𝑥
𝑧 oppure
0 1 0 𝑦
𝑧 = 𝑥𝑦
1 0 0
1 1 1
Il gate OR
Contatti in parallelo
• Il componente OR è C1
l’astrazione di due contatti in
parallelo
• L’uscita assume valore logico 1 C2
(la lampadina è accesa) se
almeno un ingresso ha valore
1, ovvero almeno uno dei
contatti è chiuso
𝑥 𝑦 𝑧
0 0 0 𝑥
𝑧 𝑧 =𝑥+𝑦
𝑦
0 1 1
1 0 1
1 1 1
AND e OR con più ingressi
𝑥 𝑦 𝑧
0 0 0 𝑥
𝑧 𝑧 =𝑥⊕𝑦
𝑦
0 1 1
1 0 1
1 1 0
Comportamento del gate EXOR
𝑥 𝑦 𝑧
NOR
0 0 1
𝑧=𝑥↓𝑦
0 1 0 𝑥
𝑧 oppure
𝑦
1 0 0 𝑧 =𝑥+𝑦
1 1 0
𝑥 𝑦 𝑧 EXNOR
0 0 1
𝑧=𝑥≡𝑦
0 1 0 𝑥
𝑧 oppure
𝑦
1 0 0 𝑧=𝑥𝑦
1 1 1
I gate NAND, NOR, EXNOR
𝑥 𝑥
𝑧 𝑧
𝑦 𝑦
Diagrammi ad occhio
𝑥 𝑥𝑦 01 11 10 11
𝑧
𝑦
𝑧
𝑥𝑦 01 11 10 11
𝑥 𝑍 ritardo
𝑍 0 1 0 1
𝑧
𝑦 «inerziale» 𝜏𝑝
𝑧 0 1
AND «ideale»
𝜏𝑝
Conversione A/D e D/A
RETE
A/D LOGICA D/A
011011 11100101
Esempio: acquisizione immagini
R {0,1,2,..,254,255}
G {0,1,2,..,254,255}
B {0,1,2,..,254,255}
Esempio: conversione A/D
• Un carello portautensili trasporta 3 fotodiodi e 3 fotocellule
• In ciascuna delle 8 posizioni, la fotocellula vede o no la luce emessa dal fotodiodo
per via della diversa trasparenza del materiale interposto
• La posizione viene così discretizzata in 8 intervalli, descritti tramite 3 segnali binari
• Posizioni consecutive differiscono di un solo bit (come mai?)
L
B
B
L L
L L
B B
B B B
B B
B B
L B
L
L
L
Luce/Buio
Luce/Buio
Luce/Buio
Esempio: conversione A/D (2)
• L’allineamento meccanico perfetto è in pratica impossibile
• Per evitare letture scorrette nei punti di disallineamento è opportuno utilizzare
configurazioni relative a posizioni consecutive che differiscono di un solo valore
B B B B
L B L B
L L L B
B B B B B B B B B B B B
Lettura: L L L B B B ☺ L L L B B B
L L L L L L L L L L B B
Codice di Gray
n bit
b1 b2 b3 bn
Codice binario
Codice binario - Funzione dall’insieme delle 2𝑛 configurazioni di 𝑛 bit ad un
insieme di 𝑀 informazioni (simboli alfanumerici, colori, numeri, ecc.).
Condizione necessaria per la codifica: 𝟐𝒏 𝑴 (se vi sono 𝑀 simboli da
codificare, occorrono almeno 2𝑛 ≥ 𝑀differenti configurazioni binarie)
0 0 0 …… 0 n.u. z
1 0 0 …… 0
0 1 0 …… 0 1
no 5
1 1 0 …… 0 a
2𝑛
0 0 1 …… 0
configu
razioni 0 0 1 …… 1
𝑀
0 1 1 …… 1 informazioni
1 1 1 …… 1
Proprietà di un codice
n = 1, M = 2 C=2
n = 2, M = 4 C = 24
n = 3, M = 8 C = 40.320
n = 4, M = 10 C = 29.059.430.400
Codici ridondanti e codici non ridondanti
• Poiché la condizione per rendere possibile la codifica è 2𝑛 𝑀, il numero
minimo di bit necessari per creare un codice che rappresenti 𝑀 informazioni è
𝒏𝒎𝒊𝒏 = log𝟐 𝑴
• Un codice che utilizza esattamente 𝑛min bit è detto codice non ridondante
• Un codice che utilizza un numero 𝑛 > 𝑛𝑚𝑖𝑛 di bit è detto codice ridondante
8
7 Codici ridondanti
6
non ridondanti
Codici
n: n° di bit
5
4
3
Codifica impossibile
2
1
0
2 22 42 62
M: n° di informazioni
00 01 11 10
M=2
n=1 0 + 1 M=7 0
n=3
C=2 1 - 0 C=40.320 n.u.
1
segno
colori
Non ridondanti cifre decimali Ridondanti
0000 zero 1111110 1000000000
0001 uno 0110000 0100000000
0010 due 1101101 0010000000
altri 0011 tre 1111001 0001000000
29.059.430.399 0100 quattro 0110011 0000100000
codici 0101 cinque 1011011 0000010000
a 4 bit 0110 sei 0011111 0000001000
0111 sette 1110000 0000000100
1000 otto 1111111 0000000010
1001 nove 1110011 0000000001
BCD 7 segmenti 1 su 10
Binary-Coded Decimal
Per codificare un alfabeto di simboli formato dalle 10 cifre decimali (M=10)
occorrono almeno n=4 bit. Ma è possibile utilizzarne anche 5, 6, ..
Codice BCD
• Es.: nel caso di due cifre decimali: ventuno -> 0010 0001
Codice a 7 segmenti
a b c d e f g 0 1 2 3 4
5 6 7 8 9
La conversione di codice (trascodifica)
Trascodifica
Unità di
codici codice
elaborazione
esterni interno
e di memoria
Trascodifica
Codice
Ridondante
7 segmenti
per la Codice
visualizzazione BCD
dei dati per la
rappresentazione
Codice interna
Ridondante dei numeri
1 su N
per la
introduzione
dei dati e
dei comandi
Esempio: l’ascensore
• Un ascensore serve 4 piani
• Segnali in ingresso: Presenza al 3
piano
• presenza o meno della
cabina a uno dei piani (4 2
rilevatori di presenza, 5 1
casi possibili)
• richiesta di spostamento T
della cabina (pulsantiera a Elaborazione e Display
4 tasti, 5 casi possibili) Pulsanti di trascodifica di cabina
chiamata
• in entrambi i casi: n=4,
M=5, codice ridondante
• Segnali in uscita:
• indicatore del piano
corrente ai vari piani e in
cabina (4 lampade, 5 casi
possibili) Pulsantiera in
• Anche in questo caso: cabina
Indicazione di
n=4, M=5, codice presenza al
ridondante piano
Trascodifica in un ascensore
Presenza al
piano Display di 3
(encoder) cabina
M=5 (decoder) 2
nmin = 3
1
ELABORAZIONE M=5
Pulsanti di (controllo nmin = 3 T
chiamata movimento cabina e
(encoder) apertura/chiusura
M=5 porte)
Indicazione di
nmin = 3
presenza al
piano
Pulsantiera in (decoder)
cabina
(encoder) M=5
M=5 nmin = 3
nmin = 3
Le due macchine combinatorie
per la trascodifica nell’ascensore
ENCODER x4 x3 x 2 x1 y2 y1 y0
x4
0 0 0 0 0 0 0
x3 y2 0 0 0 1 0 0 1
trascodifica
da «1 su 4» y1 0 0 1 0 0 1 0
x2
a binario 0 1 0 0 0 1 1
x1 y0 1 0 0 0 1 00
Codice «uno su N»
x2 x1 x0 y7 y6 y5 y4 y3 y2 y1 y0
DECODER y7
0 0 0 0 0 0 0 0 0 0 1
x2 y6 0 0 1 0 0 0 0 0 0 1 0
trascodifica y5 0 1 0 0 0 0 0 0 1 0 0
x1 da binario y4 0 1 1 0 0 0 0 1 0 0 0
x0 a «1 su 8» y3 1 00 0 0 0 1 0 0 0 0
y2 1 0 1 0 0 1 0 0 0 0 0
y1 1 1 0 0 1 0 0 0 0 0 0
y0 1 1 1 1 0 0 0 0 0 0 0
Codici proprietari e codici standard
Codice proprietario - Codice scelto da un Costruttore per
mettere in comunicazione macchine di sua produzione.
L’uso di codici proprietari mira ad ottimizzare le prestazioni
e a proteggere il mercato di certe macchine.
• 128 caratteri (33 di controllo) • American Standard Code for Information Interchange
• 0: 011 0000 • Primo standard de iure per la codifica binaria dei
• A: 100 0001; a: 110 0001 caratteri, per le comunicazioni a distanza di telescriventi
• DEL: 111 1111
Codice ASCII esteso (8 e 16 bit)
• Estensione del codice ASCII a 8 bit, includendo nell’insieme dei caratteri
rappresentati i simboli impiegati dalle lingue originate dal latino
• Standard Unicode: ulteriore estensione (16 bit) che permette di codificare in
binario i simboli di tutte le lingue conosciute; mantiene la compabilità con ASCII
3 bit
8 conf.
5 bit : 32 configurazioni
Bit map: un codice ridondante
per simboli alfanumerici
• Rappresentazione binaria dei simboli grafici dei caratteri
• Mentre nelle stampanti «ad impatto» basta il codice ASCII, per molti altri casi (getto
d’inchiosto, laser, ma anche per mostrare a monitor) è necessario definire dei simboli
grafici mediante matrici di pixel (bitmap)
• Ciascun elemento di una bitmap è rappresentato da un insieme di bit
• Bianco/nero: 1 pixel -> 1 bit
• Scala di grigi: 1 pixel -> 8 bit
• Colori RGB: 1 pixel -> 3x8 bit
• Font: insieme dei simboli grafici caratterizzati da un certo stile