Sei sulla pagina 1di 589

Obiettivo del corso di Reti Logiche

Imparare a:
descrivere e
progettare
le MACCHINE DIGITALI

Aspiranti ingegneri
dellinformazione

Macchina Digitale e Rete Logica


Una macchina digitale
un oggetto artificiale
che elabora informazioni
Allinterno della macchina digitale le informazioni
sono rappresentate da grandezze fisiche che possono
assumere un numero finito di valori
Se questo numero 2 si parla di macchina digitale binaria

Una rete logica una rappresentazione astratta


di una macchina digitale binaria
In una RL le informazioni
sono rappresentate con zeri e uni

Materiale per il corso

Dispense di riferimento
R. Laschi, M.Prandini Reti Logiche Esculapio, 2007

Informazioni, Lucidi e Testi di Prove Scritte


http://didattica.arces.unibo.it/

Contatti
Tel
: 051 2095421
e-mail : tullio.salmoncinotti@unibo.it

Ricevimento durante il corso


Marted:

dopo la lezione

Posizionamento di reti logiche


nel percorso formativo
Prerequisiti: nessuno
Insegnamenti che richiederanno la conoscenza di
Reti Logiche:
Elettronica T (cio Elettronica Digitale)
Calcolatori Elettronici T e M
Progetto di Sistemi Elettronici T

Professioni che richiederanno la conoscenza di reti


logiche:
Ingegnere dellInformazione
Progettista Hardware e Software

Esame: Regole e Date


In questo Anno Accademico 2011-12 lesame avr una
durata di circa quattro ore e consister di una prova scritta
con 33 punti disponibili suddivisi come segue:
9 punti per domande di teoria. Questa parte dellesame scritto
potrebbe essere sostituita da una prova orale o da una prova di
laboratorio a discrezione dei docenti
24 punti per due esercizi che riguarderanno lanalisi, la
progettazione o la composizione di Reti Logiche; questi due
esercizi verranno presi in considerazione ai fini dellesame solo se
stata superata la prova di teoria.

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

Ogni messaggio contiene Informazione


Il testo informazione
Le immagini sono informazione
Il linguaggio parlato (laudio) informazione
Una variabile binaria che mi dice se una porta aperta
o chiusa informazione

Qualunque informazione si pu rappresentare sotto


forma di una sequenza di zeri e uni
Loperazione di traduzione di una informazione in una
sequenza di 0 e 1 si chiama
CODIFICA delle INFORMAZIONI
(la codifica delle informazioni argomento del corso)

Il trasporto dellinformazione: segnali

sorgente
segnali

destinazione

SEGNALE - Grandezza fisica variabile nel tempo il cui


andamento o forma donda
rappresenta linformazione
che la parte sorgente vuole inviare alla parte destinazione.
SEGNALI ANALOGICI: ogni variazione della grandezza fisica
modifica linformazione trasportata.
SEGNALI DIGITALI: solo a certe variazioni corrisponde una
modifica di significato.

Forme donda di segnali


y(t) informazione
Il segnale analogico

Il disturbo
Il segnale digitale
segnale analogico interpretato
come insieme finito di valori

Il segnale digitale binario


segnale analogico interpretato come
variabile binaria

H
L

Esempio: telefonia digitale


Hell
o

Hello

1010

1010

Hello

A/D

Hello

RL

TX

RX

RL

D/A

Modello generale di sistema digitale


capace di elaborare segnali digitali e analogici
segnali analogici
microfono
termostato
altimetro
Convertitore
A/D

segnali binari
tastiera
mouse
Hard disk

segnali analogici
altoparlante
plotter
dinamo

Elaborazione
di
segnali
binari

Convertitore
D/A

segnali binari
lampadina
stampante
Hard disk

Esempi di segnali da un bit (binari):


Aperto, Chiuso Luce, Buio
Presente, Assente High, Low ecc.

levetta:
alta/bassa

tensione elettrica:
High/Low

contatto:
aperto/chiuso

cristallo liquido:
trasparente/opaco

lampadina:
accesa/spenta

corrente elettrica:
presente/assente

Elaborazione delle informazioni


rappresentate come sequenze di bit
Dato che linformazione codificata in bit una
entit intangibile, per elaborare, ma anche per
trasmettere e memorizzare informazioni dobbiamo
far corrispondere agli zeri e agli uni valori diversi
di grandezze fisiche rilevabili e modificabili
Oggi queste grandezze fisiche sono solitamente
segnali elettrici
La pi comune macchina digitale che elabora
informazioni il calcolatore

Che succede allinterno di un


calcolatore?
Allinterno di un calcolatore linformazione,
rappresentata con segnali binari, viene
elaborata, memorizzata e trasmessa
Inoltre:
La funzione svolta dal calcolatore dettata dal
software, cio da un insieme di istruzioni codificate in
binario e memorizzate allinterno del calcolatore stesso
I calcolatori sono quindi un caso particolare di
macchina digitale:
Sono cio macchine binarie programmabili

Architettura dellhardware
di un calcolatore elettronico
(rappresentazione astratta)
BUS

Processore

Memoria
principale

Unit di
ingresso/
uscita

I principali metodi di gestione della complessit utilizzati dagli ingegneri


sono:
1. La astrazione (separazione delle informazioni essenziali dai dettagli)
2. La decomposizione di entit in entit pi semplici interconnesse tra
loro

10

I livelli di astrazione
CPU

ALU CU
BIU M

MEM

I/O

Livello
Architettonico

Livello
Logico

Livello
Fisico

Esempi di sistemi artificiali che


contengono macchine digitali
Tutti i seguenti prodotti dellingegneria industriale hanno allinterno
almeno uno o pi macchine digitali (solitamente calcolatori):

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

Nuova definizione di Macchina Digitale


Macchina digitale:
Sistema artificiale
che impiega grandezze fisiche
variabili nel tempo
e con un numero finito di valori
per rappresentare,
elaborare
e comunicare
informazioni

Esempi: lorologio, il calcolatore,..

Nuova definizione di Rete Logica

Rete Logica: modello della macchina digitale


che consente
di astrarre dalla tecnologia
di dettagliarne limmagine architettonica

12

Crescita della densit di Macchine Digitali


nella Societ dellInformazione
Ubiquitous Computing (1999 2005):
0.1 to 1 device per m3
Pervasive Computing (2005 2015):
1 to 10 devices per m3
Ambient Intelligence (2015 2025):
10 to 100 devices per m3
(Source: James L. Crowley: Context Driven Observation of Human Activity. EUSAI
2003: 101-118)

Programma di reti logiche


5: Reti sequenziali sincrone

Saper
Descrivere
Progettare
e Analizzare
Le
Macchine
Digitali

4: Reti sequenziali asincrone


3: Reti combinatorie
2: Codifica binaria dellinfor.

1: Macchine digitali

13

Capitolo 1
Macchine digitali

1.1 - Descrizione e progettazione

Analisi & Sintesi


astrazione
cosa fa
Descrizione
del
COMPORTAMENTO
Sintesi
come
fatta

Analisi

Macchina
digitale

Descrizione
della
STRUTTURA

14

Analisi & Sintesi


astrazione
cosa fa
Descrizione
del
COMPORTAMENTO
Sintesi
come non
fatta univoco

univoco

esito

Analisi

Macchina
digitale

Descrizione
della
STRUTTURA

Approccio gerarchico alla descrizione


di una macchina digitale (Livelli di descrizione)

La descrizione del comportamento


pu essere pi e pi volte decomposta
in comportamenti pi semplici
Ogni livello di questa gerarchia individua
strutture formate da componenti astratti
la cui struttura definita nel livello sottostante

Scendendo dallalto verso il basso


aumenta il numero di componenti
diminuisce la complessit dellazione svolta da ciascuno

15

Schemi a blocchi

16

Rappresentazione della struttura


di una rete logica
Una rete logica pu essere descritta in molti
modi diversi
Un modello di rappresentazione molto
importante della sua struttura lo schema a
blocchi
La schema a blocchi rappresenta la
rete logica come insieme di blocchi
interconnessi

Il modello del blocco o scatola nera


Alfabeto
duscita

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

Propret di composizione e decomposizione


delle reti logiche
Composizione: un numero arbitrario di reti logiche
connesse ancora una rete logica
Decomposizione: una rete logica pu essere
decomposta in un insieme di reti logiche pi semplici,
fino al raggiungimento di reti logiche non pi
suddividibili ( dette reti logiche elementari o operatori
logici elementari)
(lo studio di reti logiche elementari un argomento
del corso)

Regole elementari di composizione


a) in serie

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

I due blocchi operano


contemporaneamente.
u=M1(i, s)
Funzione
s=M2(u)
ricorsiva
u=M1(i, M2(u))
necessario che lanello completi
un calcolo prima di avviarne uno
nuovo.

18

Bit, configurazioni
Binarie
e relative forme donda

Variabili binarie (bit)


Bit (binary digit) - Variabile x tale che:
x B0,1
logica positiva e negativa
Segnali binari: Presente, Assente High, Low
Aperto, Chiuso Luce, Buio ecc.

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

logica negativa logica positiva

19

Configurazioni binarie
n bit

Configurazione binaria di n bit: Stringa


di n simboli 0 e 1.

b2 b1 b0

Bn-1

n bit possono assumere 2n configurazioni binarie diverse


Una configurazione di n bit pu rappresentare:
i valori di n segnali binari ad un certo istante
i valori di un segnale binario in n istanti.

Es:
abc
000
100
010
001
110
101
011
111

0
t

t1

t2

t3

Diagrammi ad occhio per rappresentare


sinteticamente pi forme donda binarie

Andamento di 3 segnali:
010

101

000

Relazione di causa/effetto di un blocco con 3


ingressi e 2 uscite:
ingresso
010

101

000

uscita
11

00

01

10

01

20

Dal capitolo 4
Reti logiche

4.1 - Funzioni, espressioni e schemi logici

Il modello strutturale delle reti logiche


Configurazioni
di n bit
che codificano
i simboli di
un insieme I

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

Rete logica combinatoria


nessuna retroazione
Rete logica sequenziale asincrona retroazioni dirette
Rete logica sequenziale sincrona retroazioni con flip-flop

Reti logiche (terza definizione)

Modello matematico che assume come primitive alcune


semplici modalit di elaborazione di segnali binari e deduce da
queste in modo rigoroso
quale struttura soddisfa un dato comportamento (sintesi),
quale comportamento ha una data struttura (analisi).

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

Rete logica combinatoria - I valori dei segnali duscita


dipendono solo
dai valori contemporanei dei segnali dingresso.

Descrizione del comportamento di una rete


combinatoria: Tabelle della verit
Tabella della verit - Descrizione tabellare di una funzione
di variabili binarie.
n+1 colonne

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

F(x1, x2, , xn)


0 oppure 1 oppure 0 oppure 1 oppure 0 oppure 1 oppure 0 oppure 1 oppure 0 oppure 1 oppure -

0 1 1 ..1
1 1 1 ..1

0 oppure 1 oppure 0 oppure 1 oppure -

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

u1= F1(i1, i2, , in)


.
.
.
um= Fm(i1, i2, , in)

Funzione completa di n variabili binarie z = F(x1, x2, , xn)


Insieme di 2n coppie ordinate x, z x Bn, z B formate da
una configurazione di valori delle variabili indipendenti xi e
dal corrispondente valore della variabile dipendente z.
Il numero di distinte funzioni
di n variabili binarie finito.
2n

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.

Funzione incompleta o non completamente specificata


Il dominio un sottoinsieme di Bn

Tabelle della verit


Tabella della verit - Descrizione tabellare di una funzione
di variabili binarie.
n+1 colonne

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

F(x1, x2, , xn)


0 oppure 1 oppure 0 oppure 1 oppure 0 oppure 1 oppure 0 oppure 1 oppure 0 oppure 1 oppure -

0 1 1 ..1
1 1 1 ..1

0 oppure 1 oppure 0 oppure 1 oppure -

Funzioni
incomplete

Funzioni
Incomplete di
variabili binarie

i1
.
.
.
in

rete
combinatoria

u1= F1(i1, i2, , in)


.
.
.
um= Fm(i1, i2, , in)

Funzione incompleta o non completamente specificata


Il dominio un sottoinsieme di Bn
Esempio:
Rosso
Giallo
Verde

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

Il Calcolo delle proposizioni


Proposizioni: significato vero/ falso
Connettivi: e/o/non
P, Q : proposizioni
Assunzioni:
non P vero se e solo se P falso
P e Q vero se e solo se P vero e Q vero
P o Q vero se e solo o P vero, o Q vero,
o lo sono entrambe
Proposizioni e funzioni di variabili binarie possono essere
messe in corrispondenza tra di loro

Funzioni di una variabile


x f0 f3 f1 f2
0 0 1 0 1
1 0 1 1 0

4 funzioni
di una
variabile

Se diamo a 0 il significato di falso e


diamo a 1 il significato di vero, allora:

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)

Funzioni booleane di due variabili


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

f0 e f15: costanti

f3, f12, f5, f10 dipendono da una sola variabile

f11
1
0
1
1

f4
0
1
0
0

16
funzioni
di due
variabili

f1: x0 e x1
f7: x0 o x1

Operazione logica: operazione definita tramite


una funzione booleana di una o due variabili
Ad ogni operazione logica viene associato un simbolo
Gate o porta logica o operatore logico elementare:
componente primitivo che realizza una funzione
di una o due variabili.
Ad ogni gate viene associata una rappresentazione grafica

Esempio di corrispondenza tra funzione di due


variabili, operazione logica e porta logica (o gate)

Funzione binaria:

f1 (vedi slide precedente)

Corrispondente operazione logica :

Prodotto Logico

Simbolo matematico della suddetta operazione:


Corrispondente porta logica (o gate):

.
AND

Simbolo del gate AND:


Il gate and

Porte logiche
Strutture e comportamenti elementari (3)

Strutture e comportamenti elementari (4)

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

N.B. Gli interruttori


in parallelo possono
essere pi di due.

V1
0
+E

+E
0

V2

Porte logiche
Strutture e comportamenti elementari (3)

Strutture e comportamenti elementari (4)

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

realizza f5: non x0

+E
realizza
f8: non (x0 o x1)

+E

Vu
0 volt
oppure
+E volt

Vi

+E volt
oppure
0 volt

Vu
Vi

Vu

N.B. Gli interruttori


in parallelo possono
essere pi di due.

V1
0
+E

+E
0

V2

V1

V2

Vu

L
L
H
H

L
H
L
H

H
L
L
L

Dualit tra and e or(1)


Logica positiva
I1
0
1
0
1

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

La stessa realizzazione corrisponde a due diverse funzioni dette duali

Dualit tra and e or(2)


Logica positiva
I1
I1
00
11
00
11

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

Dualit tra ex-or e ex-nor(3)


Logica positiva
I1
I1
00
11
00
11

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

Somma modulo due: x y


Regole:
00=0
01=1
10=1
11=0

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

Nand (operazione di Shaffer): z = x y


Regole:
00=1
01=1
10=1
11=0

Funzione: x
0
0
1
1

y
0
1
0
1

z
1
1
1
0

Realizzazione:
x

z
y

Nor (operazione di Pierce): z = x y


Regole:
00=1
01=0
10=0
11=0

Funzione: x
0
0
1
1

y
0
1
0
1

z
1
0
0
0

Realizzazione:
x
z
z

Funzioni e operazioni logiche


Espressioni
Espressioni e funzioni
Espressioni e schemi logici

Reti combinatorie
comportamento-espressione-struttura
Espressione

Comportamento

Struttura
x1
x2

z = F(x1,.., xn)
sintesi

G3

x3

tdv
analisi

Gk
xn

G2

G1

Reti combinatorie: analisi


struttura-espressione-comportamento
Espressione
Comportamento

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

Espressione logica - Stringa formata da costanti, bit, operatori


logici e parentesi, in accordo con le seguenti regole:
le costanti 0 e 1 sono espressioni
le variabili binarie sono espressioni
se x unespressione, allora anche (x) unespressione
se x e y sono espressioni, allora lo sono anche
(x+y), (x.y), (xy), (xy), (xy), (xy)
Esempi: (x y) (z w)

(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

Si attribuisce un simbolo al segnale duscita di ogni gate e,


a partire dai gate pi a monte, si associa a ciascun simbolo
lespressione che descrive loperazione svolta dal gate.
Una volta arrivati al segnale duscita, si eliminano
progressivamente tutte le variabili intermedie

Esempi
Schema logico
b
c
a
c
b
a
b
c
a

Epressione
a+(b.c)

(((a) + b) . c)

a (bc)

N.B. - Lo schema logico di una espressione non pu avere segnali


in retroazione (luscita di ogni gate dipende da segnali dingresso
e/o da uscite di gate disposti a monte).

Valutazione di una espressione


Valutazione di una espressione di n variabili per una n-pla di valori
1 - Si sostituisce ad ogni variabile il valore che le compete.
2 - Partendo dalle parentesi pi interne si sostituisce ogni
operazione con il suo risultato fino ad ottenere
o la costante 0 o la costante 1.
Esempio: E(a,b,c) = a+(b.c) per a=0, b=1, c=0
= 0+(1.0)
= 0+0
=0
N di valutazioni - Una espressione di n variabili
pu essere valutata in 2n modi diversi.

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.

Equivalenza tra espressioni


Espressioni equivalenti - Due espressioni E1, E2
sono equivalenti, e si scrive E1 = E2,
se e solo se descrivono la stessa funzione.

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!

Avviamento alla sintesi:


Espressioni e Schemi logici
T5) Ogni espressione descrive una struttura formata da gate
connessi in serie e/o in parallelo.
Per individuare lo schema descritto da una espressione:
1 - si parte dalle parentesi pi interne e si traccia il simbolo del gate
corrispondente alloperazione, collegandone gli ingressi ai segnali esterni;
2 - si procede in modo analogo con le altre coppie di parentesi, considerando
via via come ingressi dei nuovi gate anche le uscite di quelli gi tracciati.

La sintesi di una rete combinatoria si effettua attraverso i passaggi:


Descrizione (es. tdv) Espressione Struttura (es.: schema logico)
Ora dobbiamo imparare a passare dalla descrizione allespressione

Reti combinatorie
Introduzione
Algebra della
commutazione
Analisi
Sintesi Canonica
Sintesi con
decoder e OR

9/28/2011

Un insieme di operatori logici funzionalmente completo

Nella prima settimana del corso abbiamo introdotto il modello di comportamento e


di struttura delle reti combinatorie.
Nelle prossime diapositive studieremo uno strumento matematico (lalgebra della
commutazione) che ci consente di eseguire lanalisi e la sintesi di reti logiche
combinatorie composte dagli operatori logici elementari AND, OR e NOT.
Questi tre operatori costituiscono un insieme di operatori funzionalmente
completo: con essi cio possibile realizzare qualunque rete logica combinatoria
Trattandosi di operatori logici combinatori essi verranno considerati operatori con
ritardo nullo
Quando invece vorremo tener conto del ritardo introdotto da un operatore
utilizzeremo il seguente modello:
disegneremo il ritardo con un blocco specifico sulluscita delloperatore (oppure
indicheremo il ritardo allinterno delloperatore)

p
Operatore logico
combinatorio AND
9/28/2011

AND con ritardo p


Reti Combinatorie

Comportamento & Struttura


di una rete logica combinatoria
?
Rete logica combinatoria

Tabella della verit


x1x2x3 xn

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

Algebra della commutazione


un sistema matematico che consente di eseguire lanalisi e la
sintesi di reti logiche combinatorie. Lalgebra della commutazione
consente infatti di passare dallo schema logico alla tabella della
verit e viceversa
Lalgebra viene definita assegnando:
gli operatori dellalgebra
i simboli su cui gli operatori agiscono
i postulati che definiscono il comportamento degli operatori
Studiare lalgebra di commutazione significa studiare le propriet dei
suoi operatori al fine di imparare a manipolare, costruire e analizzare
espressioni
C una corrispondenza biunivoca tra gli operatori dellalgebra di
commutazione e gli operatori logici elementari AND OR e NOT

9/28/2011

Reti Combinatorie

Definizione dei simboli e delle operazioni


dellalgebra della commutazione
Lalgebra della commutazione :
uninsieme di 3 operazioni
un insieme di 2 simboli (0 e 1): questo insieme lalfabeto binario su cui
le operazioni dellalgebra agiscono

1) Operazioni:

somma logica (+) (4 postulati, diap. 22)


prodotto logico (.) (4 postulati, diap. 23)
complementazione () (2 postulati, diap.22)

Le operazioni dellalgebra agiscono su costanti e variabili


2) Costanti: 0, 1
3) Variabili: simboli sostituibili o con 0 o con 1

9/28/2011

Reti Combinatorie

(segue)

Definizione delle tre operazioni dellalgebra di


commutazione e dei corrispondenti operatori logici
Complementazione : z = x , z =x , z = x

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

C una corrispondenza biunivoca tra luscita delloperatore logico e il


risultato delloperazione algebrica
9/28/2011

Reti Combinatorie

Giustificazione delle prossime diapositive

Sintesi Analisi

Lalgebra della commutazione il ponte tra la struttura della rete combinatoria e la


descrizione del suo comportamento (cio della relazione tra ingressi e uscita)
rappresenteremo la struttura con il suo schema logico
rappresenteremo la relazione ingressi/uscita (cio il comportamento) sotto forma di
funzione binaria di variabili binarie
Per fare lanalisi assoceremo a ogni schema logico una espressione dellalgebra e di l
passeremo alla funzione con un procedimento detto valutazione dellespressione
Per fare la sintesi impareremo a determinare una espressione dellalgebra che descriva
la funzione da sintetizzare e quindi impareremo a disegnare lo schema logico
corrispondente allespressione trovata
Dobbiamo quindi definire i seguenti oggetti e le relative propriet:
lespressione dellalgebra
la funzione binaria di variabili binarie
lo schema logico
dobbiamo inoltre imparare ad applicare il seguente metoo di analisi:
1.
2.
3.

9/28/2011

passare dallo schema logico allespressione e viceversa


studiare il procedimento di valutazione delle espressioni
descrivere le funzioni (ad esempio con la tabella della verit e quindi con una descrizione a
parole)
Reti Combinatorie

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

Loperazione di prodotto prioritaria rispetto alla somma e non obbligatorio


racchiuderla tra parentesi.
La notazione AB indica A.B
Le parentesi sono obbligatorie solo se omettendole cambia lordine in cui le
operazioni sono applicate agli operandi
9/28/2011

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

con le mappe di Karnaugh

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

Due rappresentazioni equivalenti della stessa funzione z = F(x2, x1, x0)


9/28/2011

Reti Combinatorie

10

Descrizione di una funzione


mediante Tabella della verit
La Tabella della verit una
- Descrizione tabellare di una funzione di variabili binarie

n+1 colonne

2n righe

x1, x2, , xn F(x1, x2, , xn)


0 0 0 ..0 0 oppure 1
1 0 0 ..0 0 oppure 1 Quante colonne ha la
0 1 0 ..0 0 oppure 1 t.d.v. di una funzione
1 1 0 ..0 0 oppure 1 di 4variabili?
righe ha la
0 0 1 ..0 0 oppure 1 Quante
t.d.v. di una funzione
di 8 variabili?

9/28/2011

0 1 1 ..1
1 1 1 ..1

0 oppure 1
0 oppure 1

11

Descrizione di una funzione mediante


Mappe di Karnaugh
Mappa di Karnaugh - Rappresentazione bidimensionale della
tabella della verit di una funzione di 2,3,4 variabili, i cui valori
sono stati elencati sui bordi in maniera che due configurazioni
consecutive siano a distanza 1, differiscano cio per il valore
di un solo bit.
ab

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

Importante propriet delle mappe di Karnaugh:


Adiacenza tra celle
Coppia di celle adiacenti su mappe di Karnaugh - Due celle le
cui coordinate differiscono per un solo bit sono celle adiacenti.
In una mappa che descrive una funzione di n variabili ogni cella
ha n celle adiacenti.

Regola grafica per ladiacenza Sono adiacenti celle aventi un lato


in comune o poste allestremit di una stessa riga o colonna.
cella scelta come esempio

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

Estensione delle mappe a 5 e a 6 variabili


ef
00

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

Ulteriore regola di adiacenza Sono adiacenti celle che occupano


la stessa posizione in sotto-mappe
adiacenti.

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?

Si risponda alle due domande precedenti con alcuni esempi.


Cosa la sintesi di una rete combinatoria?
Cosa lanalisi di una rete combinatoria?

Come si passa da unespressione alla funzione? Col procedimento


di valutazione che vediamo nelle prossime diapositive
Come si passa dalla funzione allespressione? Con i procedimenti
di sintesi che vedremo pi avanti
9/28/2011

Reti Combinatorie

15

Analisi di reti combinatorie


Procedimenti, esempi ed esercizi

9/28/2011

Reti Combinatorie

16

Valutazione di una espressione in un punto


Sia data una espressione E in cui compaiono n variabili e sia data una
configurazione binaria di queste n variabili
Valutare lespressione E nella configurazione binaria data (cio in un particolare
punto del suo dominio di definizione) significa eseguire i seguenti passi:
1 - sostituire ad ogni variabile il valore che ha nella configurazione data
2 - partendo dalle parentesi pi interne sostituire ogni
operazione con il corrispondente risultato calcolato applicando i postulati
dellalgebra, fino ad ottenere o la costante 0 o la costante 1.

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

Regole di priorit nella valutazione


Si ricordi che, in assenza di parentesi valgono le seguenti
regole:

Loperazione di complementazione prioritaria


rispetto a prodotto e somma
Loperazione di prodotto prioritaria rispetto alla
somma e non obbligatorio racchiuderla tra
parentesi.

9/28/2011

Reti Combinatorie

18

Passaggio dalla espressione alla funzione


Il passaggio dalla espressione alla funzione si chiama anche valutazione
della espressione nel suo dominio
Valutare una espressione di n variabili nel suo dominio Bn significa
costruire una tabella della verit di 2n righe (una per ogni configurazione
delle n variabili) e n+1 colonne.
Ogni riga conterr nelle n colonne pi a sinistra la configurazione binaria
associata alla riga stessa
Nella colonna pi a destra di ogni riga si deve invece riportare la costante
determinata valutando lespressione nel punto individuato dalla
configurazione binaria indicata nelle n colonne pi a sinistra della riga
stessa
Con la valutazione di una espressione possibile ottenere la funzione
associata allespressione data

9/28/2011

Reti Combinatorie

19

Dallespressione alla funzione:


esempio
La valutazione di una espressione E(x0, x2, , xn-1) nei 2n punti del
suo dominio d origine a 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

Tabella della verit


della
funzione associata
allespressione data

T1) Ogni espressione descrive una e una sola funzione


9/28/2011

Reti Combinatorie

20

Dallespressione alla funzione: altri


esempi
T2) Una funzione pu essere descritta da infinite espressioni

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

Analisi di una rete logica combinatoria:


dalla Struttura al Comportamento
Espressione

Valutazione

Tabella della verit


x1x2x3 xn

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

Rete logica combinatoria

0 oppure 1
0 oppure 1
Reti Combinatorie

xn
Schema logico:
insieme di operatori AND,
OR, NOT
interconnessi in serie e
parallelo
22

Dallo schema logico allespressione


Per individuare lespressione corrispondente ad un dato schema
si parte dai gate che elaborano solo segnali di ingresso, si assegna
un simbolo alla loro uscita e si annota a parte lespressione.
Si procede in modo analogo con i gate i cui ingressi sono gi stati
denominati. Una volta individuata lespressione del gate di uscita,
vi si sostituiscono tutti i simboli con le corrispondenti espressioni.

c = a

Questa rete realizza un importante


operatore logico detto
OR ESCLUSIVO o XOR (Exclusive Or)

e = (c . b)

z=e+f
= (c.b) + (a.d)
= ab + a.b
b

d = b
9/28/2011

f = (a . d)

Qual la tdv di questa rete?


Se ne descriva a parole il comportamento

Reti Combinatorie

23

Check point

Come si esegue lanalisi di uno schema logico composto da AND, OR e NOT


interconnessi?

Qual il risultato dellanalisi?

Esistono altre tecniche di analisi oltre a quella basata sulla valutazione delle
espressioni? S, le vedremo in alcune diapositive successive

Quante espressioni sono associate a uno schema logico?

Quante funzioni sono associate a una espressione?

Quante espressioni sono associate a una funzione?

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

Si verifichi con il simulatore la correttezza della soluzione trovata

Si tracci la tabella della verit e lo schema logico corrispondenti


allespressione:
E(D, C,B,A) = D.(C + B)
Si descriva a parole la funzione nel caso in cui i bit D, C, B, A
rappresentino i coefficienti del numero D.23+ C.22+ B.21+ A.20
9/28/2011

Reti Combinatorie

25

Check point sullanalisi delle reti


combinatorie

Abbiamo visto un metodo di analisi basato sulla valutazione delle espressioni


associate allo schema logico assegnato.

Questo metodo pu diventa impraticabile quando lespressione complessa

In questo caso si possono utilizzare in generale due metodi alternativi:

la semplificazione dellespressione mediante applicazione di alcune


propriet dellalgebra della commutazione
la semplificazione sistematica dellespressione mediante applicazione del
teorema di espansione

Nelle prossime diapositive illustreremo alcune propriet (o teoremi)


dellalgebra di commutazione e mostreremo qualche esempio del primio
metodo

Il secondo metodo verr presentato successivamente

9/28/2011

Reti Combinatorie

26

Equivalenza tra espressioni


Espressioni equivalenti - Due espressioni E1, E2 sono equivalenti,
e si scrive
E1 = E2 , se e solo se descrivono la stessa funzione.

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

Altre equivalenze notevoli


dellalgebra di commutazione
Propriet della complementazione:
T10) involuzione

(x )

=x

T11) limite

x+x
x.x
xy + xy
(x+y).(x+y)

=1
=0
=x
=x

T12) combinazione

T13) Ia legge di De Morgan (x + y)


Iia legge di De Morgan (x . y)
T14) consenso

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

Conseguenza del Principio di Dualit


Se una rete logica esegue una certa funzione considerando
ingressi e uscite in logica positiva, allora la rete duale
esegue la stessa funzione considerando ingressi e uscite in
logica negativa
Esempio: land duale dellor
Funzione dellAND:
luscita vale 1 se entrambi gli ingressi valgono 1

Funzione dellOR:
Luscita vale zero se entrambi gli ingressi valgono zero
9/28/2011

Reti Combinatorie

31

Qualche commento sui


teoremi dellalgebra di commutazione

La propriet associativa per lOR si pu anche scrivere come segue:


(x + y) + z = x + (y + z) = (z + x) + y = x + y + z
Questa propriet ci dice che combinando in qualunque modo tre ingressi con due OR in
cascata si ottengono sempre espressioni equivalenti; la funzione che si ottiene vale 1 se
e solo se almeno un ingresso vale 1. Possiamo chiamare questa funzione OR a tre
ingressi; possibile nello stesso modo definire lOR a n ingressi
si verifichi la propriet associativa con il simulatore
chiamiamo NOR loperatore composto da un OR e un NOT in cascata; si disegni la tdv
di questo operatore composto e si dimostri che per questo operatore non vale la propriet
associativa
Per la terza propriet sulla dualit quello che abbiamo detto per lOR vale anche per
lAND e quello che non vale per il NOR non vale nemmeno per loperatore composto
dalla serie AND-NOT (il NAND)
I teoremi di De Morgan indicano lequivalenza tra NOR e AND degli ingressi
complementati e lequivalenza tra NAND e OR degli ingressi complementati
Il teorema del consenso indica due diversi modi per realizzare la funzione multiplexer a
due vie gi vista in un esempio precedente

9/28/2011

Reti Combinatorie

32

Qualche esercizio di analisi da svolgere utilizzando i


teoremi dellalgebra della commutazione
Si esegua lanalisi delle seguenti espressioni:
xy + xz + xyz + yz
(((x+y)+(z+w))+1)
((x+y)+(z+y))
per lultimo esercizio si consiglia di eseguire le
semplificazioni a partire dallo schema logico
Per il primo si suggerisce di provare sia con i teoremi, sia

tracciando direttamente la mappa di Karnaugh


9/28/2011

Reti Combinatorie

33

Check point

Ora siamo in grado di eseguire lanalisi delle reti combinatorie realizzate


con gli operatori dellalgebra di commutazione. Il procedimento si basa
sulla semplificazione delle espressioni (ottenuta applicando
intuitivamente i teoremi dellalgebra) e sulla relativa valutazione.

Resta ancora da vedere una tecnica di semplificazione sistematica


dellespressione basata sullapplicazione del teorema di espansione gi
annunciato e che dobbiamo ancora studiare

Prima vogliamo affrontare il problema della sintesi e vogliamo inoltre


dimostrare che gli operatori dellalgebra sono un insieme funzionalmente
completo (il che significa che con AND, OR e NOT possibile realizzare
qualunque tabella della verit)

9/28/2011

Reti Combinatorie

34

Sintesi di Reti Combinatorie


Introduzione
Numero di livelli e ritardi in una RC
Dallespressione allo schema logico

9/28/2011

Reti Combinatorie

35

Il problema della sintesi


Funzione
assegnata

Espressioni equivalenti

Schemi logici

Individuazione dellespressione che fornisce lo schema


migliore per la realizzazione della funzione assegnata.
Massima velocit
Minima complessit

Massima flessibilit
9/28/2011

Reti Combinatorie

36

Velocit e lunghezza dei percorsi


(a.b+a.b).c+(a.b+a.b).c

c
a
b
a
b
a
b
a
b
c

tp
tp

tp

tp

9/28/2011

a.b.c +a.b.c+a.b. c +a.b.c


a
b
c
a
b
c
a
b
c
a
b
c

Reti Combinatorie

tp

tp

Questa rete
pi veloce
37

Stima della durata del transitorio


(metodo del caso peggiore)
I1
U
I0

I1

I0

I1

3 U
I0
9/28/2011

Reti Combinatorie

38

Funzioni non completamente specificate


Alcune configurazionidi ingresso possono essere impossibili, oppure per certe configurazioni di
ingresso pu non interessare il valore delluscita. In questi casi la funzione incompleta o non
completamente specificata

6) Funzioni incomplete - Funzioni di n variabili il cui dominio un sottoinsieme di Bn


Le configurazioni di valori delle variabili al di fuori del dominio sono dette
condizioni di indifferenza e sono indicate nella tdv con il simbolo - nella colonna
ove va indicato il valore della funzione.

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

Espressioni di funzioni incomplete


Espressioni equivalenti di funzioni incomplete - Espressioni che
forniscono eguale valutazione limitatamente al dominio di una
funzione incompleta data sono dette equivalenti rispetto alla funzione

Espressioni per lENCODER:


Come funziona un encoder?

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

Sintesi di reti combinatorie


mediante AND, OR, NOT
Come si esegue la sintesi di una rete combinatoria di cui
data la tabella della verit? Si pu utilizzare lalgebra di
commutazione
In tal caso si passa dalla tdv alla espressione e,
successivamente, dalla espressione allo schema logico
Nelle prossime diapositive verr illustrato il passaggio
dallespressione allo schema logico. Il problema della
determinazione di una espressione associata alla tdv verr
esaminato successivamente

9/28/2011

Reti Combinatorie

41

Dallespressione allo schema logico


T3) Ogni espressione descrive una struttura formata da gate
AND, OR, NOT connessi in serie e/o in parallelo (schema logico)
Per individuare lo schema logico corrispondente ad una data
espressione si parte dalle parentesi pi interne e si traccia il
simbolo del gate corrispondente alloperazione, collegandone
gli ingressi ai segnali esterni. Si procede in modo analogo con
le altre parentesi, considerando via via come ingressi dei nuovi
gate anche le uscite di quelli gi tracciati.

a+(b.c)

9/28/2011

b
c
a
Reti Combinatorie

42

Dallespressione allo schema logico:


altro esempio

(((a) + b) . c)

c
b
a

N.B. - Lo schema logico di una espressione non pu avere segnali


in retroazione (luscita di ogni gate dipende da segnali dingresso
e/o da uscite di gate disposti a monte).

9/28/2011

Reti Combinatorie

43

Sintesi di reti combinatorie

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).

Quando linteresse preminente la velocit di risposta,


lespressione migliore quella normale !
Nellambito delle espressioni normali hanno particolare rilievo:
le espressioni canoniche e le espressioni generali, che individuano
circuiti utili nella sintesi di qualsiasi funzione;
le espressioni minime, che consentono di realizzare una funzione
con il minimo numero di gate e di collegamenti.
9/28/2011

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

Espressioni canoniche della funzione


a implica b
a b ab
00 1
01 1
10 0
11 1

IIa forma canonica:


F(a,b) = a + b
Ia forma canonica:
F(a,b) = a . b + a . b + a . b

Verifica della equivalenza per manipolazione algebrica:


F(a,b) = a . b + a . b + a . b
= a . (b + b) + a . b
= a.1 + a . b
= a + a . b
= a + a . b + a . b
= a + b
9/28/2011

Reti Combinatorie

47

Sintesi canonica delloperatore EX-OR


1 se e solo se
x0=0 e x1=1

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

Sintesi di un ENCODER a tre ingressi


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

z1

N.B. le altre configurazioni


sono per ipotesi impossibili

z1 = x2 x1x0+ x2 x1 x0
z0 = x2 x1x0+ x2 x1x0
9/28/2011

z0

x2 x1 x0
Reti Combinatorie

49

Addizione colonna per colonna ...


(S)2 = (A)2 + (B)2
rn rn-1

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

e sintesi canonica del 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

r r a a b b
9/28/2011

Reti Combinatorie

51

Sintesi della trascodifica da binario a 1 su N


Esempio: Trascodifica 2:4
U0 = B. A

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

Il circuito integrato DECODER


Decoder o Rete di decodifica - Rete logica combinatoria che
realizza i 2n distinti prodotti di n variabili (n = 2,3,4)
U0
U1
U2
EN

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

Composizione modulare di Decoder


N.B. il prodotto
associativo

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

Notazioni simboliche per le espressioni


canoniche
i

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)

m(i) : mintermine di n bit che assume il valore 1 solo per la n-pla di


valori delle variabili corrispondente allindice i.
M(i) : maxtermine di n bit che assume il valore 0 solo per la n-pla
di valori delle variabili corrispondente allindice i.
9/28/2011

Reti Combinatorie

55

Sintesi del Full Adder con Decoder e Or


S = S3 m (1,2,4,7)
R = S3 m (3,5,6,7)
138

b
a
r

A
B
C

U0
U1
U2
U3
U4
U5
U6
U7

N.B - Le uscite di un decoder


TTL hanno fan-out >10.
Come si modifica lo schema se
si prende atto che le uscite sono
attive basse?
9/28/2011

R
S

56

Il problema della sintesi

Assegnata una qualsiasi funzione di variabili binarie,


possibile descriverla con una espressione
contenente solo le operazioni eseguite dai gate?

Struttura & Comportamento


di una rete logica combinatoria
Espressione
Comportamento

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

Algebra del nor


{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 (+)

prodotto logico (.)

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:

simboli sostituibili o con 0 o con 1

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

N.B - Loperazione di prodotto prioritaria rispetto alla somma e


non obbligatorio racchiuderla tra parentesi. La notazione AB
indica A.B

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

E10) Ia legge di De Morgan


IIa legge di De Morgan
E11) consenso

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)

x, y, z sono espressioni di variabili binarie

Espressioni di funzioni incomplete


ENCODER a 3 ingressi
x2

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
-

N.B. le altre configurazioni


sono per ipotesi impossibili

Espressioni di funzioni incomplete


Espressioni equivalenti di funzioni incomplete - Espressioni che
forniscono eguale valutazione limitatamente al dominio di una
funzione incompleta sono dette equivalenti.

Espressioni per lENCODER:


z1 = x2 x1x0+ x2 x1 x0
z0 = x2 x1x0+ x2 x1x0
u1 = x2 + x1
u0 = x2 + x0

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.

Espressioni canoniche della funzione


a implica b
a b a
b
00
1
01
1
10
0
11
1

IIa forma canonica:


F(a,b) = a + b
Ia forma canonica:
F(a,b) = a . b + a . b + a . b

a
b
a
b

Verifica della equivalenza per manipolazione algebrica:


F(a,b) = a . b + a . b + a . b
= a . (b + b) + a . b
E3
= a.1 + a . b
E8
= a + a . b
E5
= a + a . b + a . b
una parte inclusa nel tutto
= a + b
E3, E8, E5

EX-OR

x0x1= x0x1+ x0x1

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

N.B. le altre configurazioni


sono per ipotesi impossibili

x2 x1 x0
z1 = x2 x1x0+ x2 x1 x0 + x2 x1 x0 + ....
z0 = x2 x1x0+ x2 x1x0 + ....

z1

z0

Notazioni
simboliche

Notazioni simboliche per le


espressioni canoniche
i
0
1
2
3
4
5
6
7

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(i) : mintermine di n bit che assume il valore 1 solo per la n-pla di


valori delle variabili corrispondente allindice i
M(i) : maxtermine di n bit che assume il valore 0 solo per la n-pla di
valori delle variabili corrispondente allindice i

I DECODER 2:4 e 3:8


m(0)= BA

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

Sintesi del Full Adder con Decoder e Or


S = 3 m (1,2,4,7)
R = 3 m (3,5,6,7)
DEC
3:8

b
a
r

A
B
C

U0
U1
U2
U3
U4
U5
U6
U7

R
S

Espressioni
generali

Teoremi di espansione (o di Shannon)


T8) E(x1,x2,..,xn-1,xn) = xn.E(x1,x2,..,xn-1,0) + xn .E(x1,x2,..,xn-1,1)
T9) E(x1,x2,..xn-1,xn) = (xn+E(x1,x2,..,xn-1,0)).(xn+E(x1,x2,..,xn-1,1))

Esempio:
E= x1+x2 x3
= x1.(0+x2 x3)+x1.(1+x2 x3)
= (x1+(0+x2 x3)).(x1+(1+x2 x3))

Mux e teoremi di espansione


I1

F(1,x2 ...xn)

F
I0

F(0,x2 ...xn)

xn ... x2
Esempio :

x1

x1+x2 x3 = x1 (0 + x2 x3) + x1 (1 + x2 x3)


1

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

Estrazione di due variabili con T8


x1
xn-2

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

Il MUX con n bit dindirizzo e 2n vie dingresso

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

F(x1,x2,...xi,..xn) = m(i) . F(i)

(SP)

i=0

2n-1

F(x1,x2,...xi,..xn) = ( M(i) + F(i))

(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

Sintesi di un full-adder con MUX

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

Famiglie di circuiti logici integrati


Tutti i gate !!!
Moltissime reti di gate!!!

Livello logico
Livello fisico

Full Adder con AND, OR e EX-OR


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
manipolazione algebrica:
S = r. (a. b + a . b) + r . (a. b + a . b)
S = r. (a b) + r . (a b)
S = r (a b)
R = (r + r) . a . b + r . (a. b + a . b)
R = a . b + r . (a b)
HA

FA
S

a
b

R
HA

Confronto tra due numeri di n bit

CFR = (a0. b0 + a0. b0 ) . (a1. b1 + a1. b1 ). .


CELLA:
2 AND a due ingressi
1 OR a due ingressi
2 NOT

CELLA:
1 EX-NOR a due ingressi

Famiglie di gate (TTL SSI -1968/74)


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
9

SN7411

14 13 12 11 10

SN7407

SN7408

Famiglia di circuiti logici:


 alimentazione e consumo
 segnali e soglie
 fan-out (n max. di ingressi
collegabili alluscita)
 velocit di commutazione

SN7423

SN7432

14 13 12 11 10

14 13 12 11 10

SN7400

SN7498

Circuiti combinatori MSI e LSI


Sono disponibili come parti elementari anche reti di gate
particolarmente utili per il progettista logico:
2
4
5
6

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

Si consiglia di visitare il sito


di un Costruttore
(ad es. www.ti.com) !

Trascodifica P
Buffer
RAM

Fan-in e fan-out

Effetto di carico: uso di Buffer e Not


Fan-out
luscita di un gate ha un numero massimo di ingressi
di altri gate a cui pu essere collegata

> 10
> 10

1
> 10

And e Or: propriet associativa


Fan-in

Gate con un massimo di otto ingressi

x0
x1
x2

E2

x0
x1
x2

Parit con EX-OR (1)


P = b0 b1 b2 b3.. b7
Fan-in

N.B. Loperazione di somma


modulo due associativa

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

Parit con EX-OR (2)


b0
b1
b2
b3
b4
b5
b6
b7

P/E

0/P

Generazione parit e rilevazione errori singoli su dati da due byte:


8+8

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

Il ritardo sui fronti


Il ritardo sui fronti di salita (LH) e di discesa
(HL) presente in ogni tipo di gate e varia in
modo notevole da dispositivo a dispositivo.
A causa della marcata differenza dei due valori,
la durata di una situazione H o L in ingresso ad
un gate diversa dalla corrispondente
situazione in uscita.
A causa della inerzia del gate, un segnale di
ingresso impulsivo e troppo stretto pu
non essere avvertito in uscita.

Un modello pi realistico per il gate


x1
x2

Simbolo grafico
del gate
o gate ideale

ritardo di
propagazione

xn
gate reale (o quasi)

Z = F(x1, x2, .., xn)


z(t) = Z(t-tp)
N.B. - I Costruttori di famiglie logiche forniscono i valori minimo,
nominale e massimo di tp

I modelli del ritardo di propagazione


ritardo di propagazione: tp = max (LH, HL)
Ritardo puro
tp
t < tp

Ritardo inerziale

nessun
effetto
tp

Il modello del ritardo inerziale il pi vicino alla realt.


minima
di un valore
o L:da3-4
tp
Il Durata
ritardo puro
(o matematico)
per piHfacile
simulare.

Comportamento
in transitorio

Velocit e lunghezza dei percorsi


(a.b+a.b).c+(a.b+a.b).c

c
a
b
a
b
a
b
a
b
c

tp
tp

tp
tp

a.b.c +a.b.c+a.b. c +a.b.c


a
b
c
a
b
c
a
b
c
a
b
c

tp

tp

Questa rete
pi veloce

Comportamento a regime e in transitorio


dei circuiti combinatori
I nuovi valori dei segnali di ingresso di una rete combinatoria
devono propagarsi allinterno della struttura prima di
riuscire ad imporre al segnale duscita il valore che ad essi
deve corrispondere. Ci determina un comportamento in
transitorio, che in generale sar diverso da quello a regime.
ingresso i
uscita u

F(i)
comportamento
in
transitorio

F(i)
comportamento
a
regime

Stima della durata del transitorio


(metodo del caso peggiore)
I1
U
I0
A

I1

I0
A

I1

3 U
I0
A

Tipi di transitorio: il ritardo


I1

U?

Tipo ritardo - Luscita


mantiene il vecchio valore
per tutto il transitorio

2
I1

Tipi di transitorio: lalea statica


1

Retroazioni dirette
delle reti asincrone
3

a
Tipo alea statica Luscita, che dovrebbe
rimanere costante, assume
temporaneamente laltro
valore.

U?

c
b
U

Tipi di transitorio: lalea dinamica


1

4
Tipo alea dinamica Luscita varia pi volte
prima di assestarsi sul
nuovo valore.

A,B

10

01

Decoder

Il circuito integrato DECODER


Decoder o Rete di decodifica - Rete logica combinatoria che
realizza i 2n distinti mintermini di n variabili (n = 2,3,4)
U0
U1
U2
EN

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)

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

Composizione modulare di un Decoder 4:16


N.B. - Il prodotto
logico gode della
propriet associativa

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

Sintesi a MUX di funzioni di 4 variabili


I0 SN74151
I1
I2
F(Q0 ,Q1 ,Q2 ,0)
I3
Z
I4
I5
SN74157
I6
I0
I7 C B A
Z
I1
I0 SN74151
A
I1
I2
I3
Z
I4
F(Q0 ,Q1 ,Q2 ,1)
I5
I6
I7 C B A
1 0 Q2Q1Q0

Q3

F (Q0 ,Q1 ,Q2 , Q3)

Sintesi con MUX a n-1 bit dindirizzo


F(0,0,0,Q3) = 1
F(0,0,1,Q3) = 0
F(0,1,0,Q3) = Q3
F(0,1,1,Q3) = Q3
F(1,0,0,Q3) = Q3
F(1,0,1,Q3) = Q3
F(1,1,0,Q3) = Q3
F(1,1,1,Q3) = 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

Amplificatore a 3 stati duscita

OE
H
H
L

I
L
H
X

O
L
H
Z

Lo stato elettrico del segnale


duscita indefinito o fluttuante
(Terzo Stato, Stato di Alta Imp.)

OE
OE
I
O

tpZ(L/H)

tp(L/H)Z

Retroazione

Rete ideale, ritardo e retroazione


Vu = V3 (V1 V2)

V1 (t + 2p) = Vu (t)
V3

Vu

2p

V1
V2

+E

+E
Vu

V1
V2

V3

Descrizione della retroazione


Livello fisico

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

Cosa occorre per scrivere un 1 (o uno 0)?


R=0
Q
q=0

2p

S: 0
1

t = 2p
S
Q

Dopo t dal fronte


di salita di S, q passa
da 0 a 1, condizione
che si mantiene anche
se S torna a 0

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

MUX con amplificatori 3-state (1)


In ogni istante di tempo
non deve esserci pi di

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

Le uscite del decoder non variano simultaneamente


Nei 3-state il tempo di risposta allabilitazione (tpZH, tpZL)
inferiore a quello necessario per il ritorno nel terzo stato (tpHZ, tpLZ)

MUX con amplificatori 3-state (2)


I0

I0

I1

I1

I2

I2
I3

I3
EN
A0
A1

DEC
Ai
EN
Z

EN
A0
A1

2 1 0

DEC

Selezione con MUX


S3

S2

S1

S0

0 BA
1 P/S 1
2
3 MUX

Selezione con amplificatore a tre stati


S3

S2

S1

S0

EN A1 A0

Il Bus

Sintesi di reti
combinatorie
Espressioni generali
MULTIPLEXER

25 ottobre 2001

Sintesi con multiplexer

Notazioni simboliche per le espressioni


canoniche
i

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

Abbiamo gi visto che una funzione pu


essere espressa come somma di
mintermini o come prodotto di
maxtermini
Questo esempio ne mostra la notazione
applicata al caso del full adder

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)

m(i) : mintermine di n bit che assume il valore 1 solo per la n-pla


di valori delle variabili corrispondente allindice i.
M(i) : maxtermine di n bit che assume il valore 0 solo per la n-pla
di valori delle variabili corrispondente allindice i.
25 ottobre 2001

Sintesi con multiplexer

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

Espressione generale - Espressione in grado di descrivere qualsiasi


funzione di n variabili:
2n-1

F(x1,x2,...xi,..xn) = S m(i) . F(i)


i=0

(SP)

2n-1

F(x1,x2,...xi,..xn) = P ( M(i) + F(i))

(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

M(i) : maxtermine di n bit


F(i): valutazione dalla funzione
per la n-pla di valori delle
variabili per cui M(i)=0

Sintesi con multiplexer

La rete basata sullespressione generale


(caso SP)
2n-1

Espressione in grado
di descrivere qualsiasi
funzione di n variabili

F(x1,x2,...xi,..xn) = S m(i). F(i)


i=0

F(i): costante detta anche bit


di programmazione
F(0)
F(1)
F

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

Sintesi con multiplexer

I Multiplexer a partire dai decoder


MUX a 4 vie, detto anche MUX di due variabili (espressione SP)
U = (C1. C0). I0 + (C1. C0) . I1 +( C1 . C0). I2 + (C1 . C0) . I3

I0
I1

I2
I3
U0 U1 U2 U3

DECODER
I1

C1

I0

C0

Ricordando che il decoder la


rete che genera i mintermini,
la realizzazione del MUX con
decoder, and or a partire
dallespressione di U
immediata ( sufficiente
applicare la propriet
associativa ai 4 prodotti logici)
C1 e C0 si chiamano anche
variabili di controllo o
bit di indirizzo
del MUX

Sintesi con multiplexer

F E Schematico:
Realizzazione di una tdv con un MUX
Una tdv pu essere rappresentata
algebricamente con lespressione generale SP:
23-1

E(x0,x1,x2) = S m(i) .U(i)


0

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

Per ogni conf. di ingresso i si attiva il solo


mintermine m(i), quindi quando lingresso i
lespressione assume il valore U(i)

Lespressione generale SP pu essere realizzata


con un MUX:
Il mux infatti porta in uscita il valore dellingresso Ii
ove il pedice i il numero individuato dalla
configurazione delle variabili di controllo (C2, C1, C0)
Quindi:
Il valore di U associato a ciascuna configurazione
i di ingresso va portato allingresso Ii del mux,
mentre agli ingressi di controllo vanno portate le
variabili indipendenti dellespressione

Circuiti integrati che realizzano MUX di 1, 2, 3, e


4 variabili (detti anche MUX a 2, 4, 8 e 16 vie)
SN74157
I0
I1
Z

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

Sintesi con Multiplexer


Il Multiplexer con n bit di indirizzo la realizzazione della
espressione generale SP di n variabili.
Il procedimento di sintesi mediante multiplexer si articola nei
seguenti passi:

1) Si sceglie, o si realizza, un MUX con un numero di vie pari alle


righe della tabella della verit da realizzare.
2) Si collegano gli ingressi di selezione ai segnali che corrispondono
alle variabili della funzione.
3) Si impone su ciascuna via o il valore 0 o il valore 1
seguendo le indicazioni fornite dalla tabella della verit.
N. B. - Nello schema elettrico limposizione di un valore logico (0 o 1)
implica il collegamento con il corrispondente valore fisico (es. 0V o 5 V)
25 ottobre 2001

Sintesi con multiplexer

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

Sintesi di un full-adder con MUX

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

Impiego dei MUX per semplificare la sintesi


di funzioni di molte variabili
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

Dividiamo in due una t.d.v. di


n variabili in modo che
ognuna delle due
sottotabelle ottenute abbia
una variabile di ingresso
costante (es.: xn-1)
Si ottengono cos 2 tdv di n-1
variabili ciascuna associata a
un valore costante di xn-1
La rete che realizza la tdv di n
var. assegnata pu essere
realizzata inviando a un MUX
a due vie controllato da xn-1 le
uscite delle 2 reti di n-1
variabili che realizzano le due
sottotabelle
10

Iterazione del procedimento illustrato


nel lucido precedente

Il procedimento illustrato nel lucido precedente semplicemente


lapplicazione del teorema di espansione

Il procedimento pu essere iterato suddividendo ulteriormente le tdv di n-1


variabili in due tdv di n-2 variabili

La realizzazione della tdv assegnata, dopo due iterazioni, si riduce a:


la realizzazione di 4 funzioni di n-2 variabili
un albero di multiplexer a due vie

lalbero di MUX realizza a sua volta la funzione di mux a 4 vie, come


illustrato dal prossimo lucido

Il teorema di espansione pu essere applicato in tutto n volte (TANTE


QUANTE SONO LE VAR. DI INGRESSO)

Alla fine si arriva alla realizzazione delllespressione generale SP tramite


albero di MUX a n livelli

25 ottobre 2011

Sintesi con multiplexer

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

Teoremi di espansione (o di Shannon)


T19) F(x1,x2,..xn-1,xn) = xn.F(x1,x2,..xn-1,0) + xn .F(x1,x2,..xn-1,1)
T20) F(x1,x2,..xn-1,xn) = (xn+ F(x1,x2,..xn-1,0)).(xn+ F(x1,x2,..xn-1,1))
F(x1,x2,..xn-1,0), F(x1,x2,..xn-1,1) sono rispettivamente le parti della tdv di F in
cui rispettivamente si ha xn=0 e xn=1.
Se F descritta da una espressione E(x1,x2,..xn-1,xn), allora
F(x1,x2,..xn-1,0), F(x1,x2,..xn-1,1) si ottengono da E sostituendo a xn i valori 0
e 1.

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))

Sintesi con multiplexer

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

Sintesi con multiplexer

14

Esempio di iterazione del teorema di espansione


Sia F(Q0 ,Q1 ,Q2 ,Q3) una espressione di 4 variabili.
Applichiamo tre volte il teorema di espansione e otteniamo:
Z = F(Q0 ,Q1 ,Q2 ,Q3)

= F(0,0,0, Q3) Q2Q1Q0


F(0,1,0, Q3) Q2Q1 Q0
F(1,0,0, Q3) Q2 Q1Q0
F(1,1,0, Q3) Q2 Q1 Q0
F(0,0,0,Q3)
F(0,0,1,Q3)
F(0,1,0,Q3)
F(0,1,1,Q3)
F(1,0,0,Q3)
F(1,0,1,Q3)
Q3

F(1,1,0,Q3)
F(1,1,1,Q3)

+ F(0,0,1, Q3) Q2Q1Q0 +


+ F(0,1,1, Q3) Q2Q1 Q0 +
+ F(1,0,1, Q3) Q2 Q1Q0 +
+ F(1,1,1, Q3) Q2 Q1 Q0
I0 SN74151
I1
I2
I3
Z
I4
I5
I6
I7 C B A
Q2Q1Q0

Unulteriore iterazione
avrebbe portato alla
espressione generale
(somma di prodotti)

15

Mapping di reti logiche su gate array


programmabili

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

Sintesi con multiplexer

16

FPGA: struttura di una cella tipo


Interconnettendo tra loro pi celle di un FPGA possibile realizzare
reti combinatorie e sequenziali di notevole complessit
Ogni cella ha le seguenti caratteristiche:
5 o 6 ingressi combinatori
un mux a due vie: una via un ingresso, la variabile di controllo un altro
ingresso e laltra via una qualunque funzione degli altri 3 o 4 ingressi
(scelta dal fitter)
un FFD con ingressi di clock, enable, e clear+preset sincroni
2 uscite: luscita del mux e luscita del FFD
lingresso del FFD luscita del MUX

In questo modo ogni cella pu essere impiegata per realizzare la


funzione G, la funzione F o il registro con lo stato presente

25 ottobre 2001

Sintesi con multiplexer

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

Sintesi con multiplexer

18

Esercizi di mapping su FPGA


Si mappi su due celle una funzione di 5 variabili
Si mappi su tre celle il generatore di forme donda assegnato nella
prima prova intermedia
Si scelgano a piacere tre reti e le si mappi su FPGA
Questi esercizi si possono risolvere applicando alle funzioni da
mappare il teorema di espansione come indicato nel lucido n.10
(semplificazione di reti complesse)

25 ottobre 2001

Sintesi con multiplexer

19

Sintesi a MUX di funzioni complesse (1)


Caso di studio: sintesi di una funzione incompleta di 4 variabili
usando MUX con 3 ingressi di selezione.

Q2Q1 Q0
Q3
000 001 010 011 100 101 110 111
0 1 0 1 0 0 0 1 0
- - 1
1 1 0 - - -

Vedremo di seguito 2 diverse realizzazioni:


a): con un mux a due vie, 2 mux a 8 vie e 16 costanti
b): con un mux a 8 vie e 8 funzioni di una variabile
25 ottobre 2001

Sintesi con multiplexer

20

Sintesi a MUX di funzioni complesse (1 bis)


Soluzione a): sintesi con un mux a due vie (controllato da
Q3) e 2 mux a 8 vie con ingressi di dato
vincolati a costante (0 o 1)
Z = F(Q0 ,Q1 ,Q2 , Q3) = F(Q0 ,Q1 ,Q2 ,0).Q3 + F(Q0 ,Q1 ,Q2 ,1).Q3
Q2Q1 Q0
Q3
000 001 010 011 100 101 110 111
0 1 0 1 0 0 0 1 0
1 1 0 - - - - - 1

25 ottobre 2001

Sintesi con multiplexer

21

Sintesi a MUX di funzioni complesse (2)


I0 SN74151
I1
I2
F(Q0 ,Q1 ,Q2 ,0)
I3
Z
I4
I5
SN74157
I6
I0
I7 C B A
Z
I1
I0 SN74151
A
I1
I2
I3
Z
I4
F(Q0 ,Q1 ,Q2 ,1)
I5
I6
I7 C B A
1 0 Q2Q1Q0
25 ottobre 2001

F (Q0 ,Q1 ,Q2 , Q3)

Q3
Sintesi con multiplexer

22

Sintesi a mux: altra soluzione


Soluzione b): Si applica 3 volte il teorema di espansione per
estrarre una dopo laltra le variabili Q0, Q1 e Q2,
quindi si impiega un mux a 8 vie
Z = F(Q0 ,Q1 ,Q2 ,Q3)
= F(0,0,0, Q3) Q2Q1Q0
F(0,1,0, Q3) Q2Q1 Q0
F(1,0,0, Q3) Q2 Q1Q0
F(1,1,0, Q3) Q2 Q1 Q0
F(0,0,0,Q3)
F(0,0,1,Q3)
F(0,1,0,Q3)

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)

+ F(0,0,1, Q3) Q2Q1Q0 +


+ F(0,1,1, Q3) Q2Q1 Q0 +
+ F(1,0,1, Q3) Q2 Q1Q0 +
+ F(1,1,1, Q3) Q2 Q1 Q0
I0 SN74151
I1
I2
I3
Z
I4
I5
I6
I7 C B A
Q2Q 1Q0

23

Sintesi a MUX - soluzione b) (2)


Q 2 Q 1 Q0
Q3
000 001 010 011 100 101 110 111
0 1 0 1 0 0 0 1 0
- - 1
1 1 0 - - -

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) .

Q2Q1Q0 genera le 4 funzioni di una variabile !


Sintesi con multiplexer

24

Esercizio 4.9
Si consideri la precedente funzione Z e si esegua
la sintesi con MUX a 8 vie estraendo dapprima

solo Q0 e poi Q1, Q2 ,Q3 .

25 ottobre 2001

Sintesi con multiplexer

25

Capitolo 2
Codifica binaria
dellinformazione

2.1 Rappresentazione dellinformazione


2.2 Codifica di caratteri
2.3 Codifica dei numeri
2.4 Trasmissione dellinformazione
2.5 Protezione dellinformazione
1

2.1
Rappresentazione
dellinformazione

Simbolo, alfabeto e stringa


Informazione - Stringa di lunghezza finita formata da simboli
si appartenenti ad un alfabeto di definizione A:
s1 s2 s3 . si sn-1 sn con si A:a1, a2, .., am
Alfabeto A: insieme di informazioni elementari

Esempi:
testo e caratteri

numero e cifre

immagine, pixel e toni di grigio

musica e note

disegno e pend./lung. di tratti

misura e posizione di un indice

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

percorso 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

Codici ridondanti e non ridondanti


2n M

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

Universal Product Code


a b c d e f g

11

Trascodifica

12

La trascodifica sul percorso dei dati


Trascodifica
Unit di
Codice elaborazione
interno
e
di memoria

Codici
esterni
Trascodifica

Il codice interno di norma non ridondante per minimizzare il n di bit


da elaborare e da memorizzare.
Il codice esterno di norma ridondante, per semplificare la generazione
e la interpretazione delle informazioni, e standard, per rendere possibile
la connessione di macchine (o unit di I/O) fatte da Costruttori diversi.
13

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

Codici proprietari e standard


Codice proprietario - Codice fissato da un Costruttore per mettere
in comunicazione apparati da lui realizzati
Luso di codici proprietari ottimizza le prestazioni e protegge il
mercato di certe apparecchiature.
Esempi: Linguaggio Assembler, Periferiche, Telecomando TV
Codice standard - Codice fissato da norme internazionali ( de iure )
o dal costruttore di una macchina utile per tutti gli altri ( de facto ).
Luso di codici standard nelle unit di I/O consente di collegare
macchine fatte da costruttori diversi
Esempi: Stampanti e Calcolatori, Calcolatori e Calcolatori
16

2.2
La codifica
dei caratteri

17

La codifica Morse (1830)

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

Efficiente per luso da


parte di operatori umani
Difficoltoso il progetto di
ricetrasmettitori automatici

Stringhe di uguale lunghezza - Baudot (1874): 5 bit


18

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

Codice ASCII esteso (8 e 16 bit)

3 bit
8 conf.

5 bit : 32 configurazioni

Lo standard Unicode (16 bit) codifica


in binario i caratteri di tutte le lingue!
20

Bit map: un codice duscita ridondante


per simboli alfanumerici
Bianco/nero:
1 pixel, 1 bit

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

Rappresentazione dei numeri


Esterna: BCD, ASCII, Unicode
Interna: Sistema di numerazione in base 2

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

Il sistema di numerazione in base 2


(il caso dei numeri naturali < 2n)
n bit
bn-1 bn-2
N10
0
1
2
3
4
5
6
7

N2
0000
0001
0010
0011
0100
0101
0110
0111

(N)2 = bn-1 .2n-1 + bn-2 .2n-2 + + b0 .20

b1 b0
N10
8
9
10
11
12
13
14
15

N2
1000
1001
1010
1011
1100
1101
1110
1111

Lunghezza della stringa in base 2 e in


base 10
Dato un numero decimale con m cifre
0 (N)10 10m -1
per la sua rappresentazione binaria deve
essere 2n > 10 m e quindi
n = (mlog2 10) (3,32 m)

25

Conversione di base

26

Conversioni da base 2 a base 10 e viceversa


di numeri naturali
ESEMPIO: 100110
0+
2+
4+
Conversione da base 2 a base 10
0+
(N)10 = (bn-1 .2n-1 + bn-2 .2n-2 + + b1 .21 + b0 .20)10
0+
32 =
38
Conversione da base 10 a base 2
Osservazione preliminare:
(N)10 = (bn-1 .2n-1 + bn-2 .2n-2 + + b1 .21 + b0 .20)10
(N)10/2= (bn-1 .2n-2 + bn-2 .2n-3 + + b1 .20) + (b0 .2-1)10
=
Q
+ R. 2-1
27

Conversione di un numero naturale


N da base 10 a base 2
i=0
A=N

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

Altre rappresentazioni di numeri binari


Sistema esadecimale: B =16
cifre: 0,1,..,9,a,b,c,d,e,f
codice binario: 0 = 0000, 1 = 0001, , f = 1111
n di bit per cifra: 4
ESEMPIO: 11000100 1100-0100 c4

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

Addizione (con riporto)


0+0 = 00
0+1 = 01
1+0 = 01
1+1 = 10

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

Moltiplicazione (shift and add)


y3

y2

y1

y0

x3

x2

x1

x0

x0y3 x0y2 x0y1 x0y0


x1y3 x1y2 x1y1 x1y0

x2y3 x2y2 x2y1 x2y0


x3y3 x3y2 x3y1 x3y0

p7

p6

p5

p4

p3

0 +

0 +

0 +

p2

p1

p0
32

Rappresentazione dei numeri razionali


Come coppia di interi (pi un bit per il segno)

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

Obiettivo: riconoscere alla destinazione le configurazioni modificate.


Condizione necessaria: il codice deve essere ridondante
se arriva una configurazione non utilizzata la destinazione
ha la certezza della sua non integrit;
se arriva una configurazione utilizzata la destinazione
ha solo una certa probabilit che sia integra.
Ulteriore condizione - Le configurazioni non utilizzate devono
essere le modifiche pi probabili delle configurazioni utilizzate.
35

Codici separabili: rilevazione di errori


bit di informazione
(information bits)

bit di controllo
(check bits)

I
F

Tx

C
Rx

C
F
R C bit di
sindrome
derrore

36

Gestione degli errori


NO

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

Lipotesi degli errori indipendenti


Consideriamo una stringa di n bit e supponiamo che levento di
modifica di un bit (o errore) da parte di un disturbo
a) sia indipendente dalla posizione del bit nella stringa;
b) si verifichi con probabilit pari a p (tasso di errore).
La probabilit che la stringa ricevuta contenga e errori data da:

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 %

Per n = 8 le modifiche pi probabili riguardano un solo bit


Per n = 16 le modifiche pi probabili riguardano uno o due bit
39

Distanza minima di un codice


Distanza fra due configurazioni binarie di n bit: D(A,B) Numero di bit omologhi che hanno valore diverso.
Esempi: D(100,101) = 1; D(011,000) = 2; D(010,101) = 3
Distanza minima di un Codice C: DMIN (C) - Valore minimo
della distanza tra due qualsiasi delle configurazioni utilizzate.
Esempi: DMIN (Codice ASCII) = 1; DMIN (Codice semaforo) = 2

I codice non ridondanti hanno DMIN=1.


I codice ridondanti possono avere DMIN > 1.
Esempio: DMIN (UPC) = 2
40

Distanza minima e rilevazione degli errori


Un codice per la rilevazione di tutti i possibili errori singoli,
o SEDC (Single Error Detection Code), deve non utilizzare
tutte le configurazioni che distano uno da ciascuna delle
configurazioni utilizzate.
Un codice SED deve dunque avere almeno DMIN = 2 .

Un codice per la rilevazione di modifiche su k bit deve


avere almeno DMIN = k+1 .

41

Il bit di parit : una semplice modalit


per ottenere la rilevazione di errori singoli
Bit di parit p - bit che la sorgente aggiunge ad una stringa di bit di
codifica al fine di renderne pari il n di uni.
Errore di parit e - bit che la destinazione pone a 1 se e solo se riceve
una configurazione con un numero dispari di uni.

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

Calcolo della parit e della sindrome derrore


x1
x2

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

La correzione di errori singoli (esempio)


100
110

101
111

000
010

100

110

001
011

Tx trasmette
o NO = 000 o SI = 111

101
111

000
010

001
011

Se P1>> P2 ogni configurazione


errata pu essere corretta

A causa dei disturbi Rx pu


ricevere una terna qualsiasi
45

Distanza minima e correzione degli errori


Il codice dellesempio precedente ha DMIN=3.
Ogni SECC (Single Error Correction Code) deve avere
DMIN 3.
Un codice con DMIN = 2k+1 rileva 2k errori e pu correggerne
fino a k .
Di solito si corregge un solo bit e si usa la ridondanza introdotta
per valutare la qualit del canale (manutenzione/sostituzione)

46

Codici separabili: correzione di errori


Hamming (Bell Labs, 1950) ha dimostrato che per correggere gli
errori singoli su informazioni codificate con I bit occorrono C bit
di controllo tali che 2C I + C + 1 .
I
F

Tx

C
Rx

C
F
R

ICU
000
1 1di
C0bit
101
sindrome
110
derrore

Le 2C configurazioni delle sindromi di errore devono indicare


se non c errore (1 situazione) e se c, dov (I + C situazioni).

47

Aritmetica binaria
sui numeri relativi
(somme e sottrazioni)
e
Unit aritmetiche
Esercizi da laboratorio ed
esercizi per lesame
30 ottobre 2011

Reti Logiche

Numeri relativi: rappresentazione in


complemento a 2 con n bit
N = -2n-1 . bn-1 + bn-2 .2n-2 + + b0 .20
Se il bit pi significativo 1, N <0
Se il bit pi significativo 0, N 0
b3 b2 b1 b0
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1

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

Calcolo del complemento a 2 di un numero


naturale N formato da n-1 bit (intero senza
segno)
2N

= 2n - N

Calcolo di 2N senza la sottrazione


2N = 2n - N
= (2n - 1) - N + 1
= not (N) + 1
1

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

Propriet della rappresentazione


in complemento a 2
Siano A e B due numeri nella rappresentazione in complemento a 2:

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

per sommare o sottrarre due numeri relativi espressi


in complemento a 2 sufficiente un sommatore! 4

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

Note sulla Somma


Ipotesi: usiamo n bit con n = 8
Se eseguiamo la somma di quantit senza segno (i numeri rappresentabili
vanno da 0 e 255) possiamo utilizzare 8 full adder e lultimo carry segnala con
il valore 1 lerrore nel risultato che troppo grande per essere rappresentato
Se consideriamo la somma di numeri con segno e usiamo la notazione in
complemento a 2, allora i numeri rappresentabili vanno da -128 a 127. In
questo caso lerrore di risultato non rappresentabile non indicato dal
valore 1 del carry out dellultimo full adder. Occorre invece realizzare una rete
logica che legga almeno i segni degli operandi, il segno delluscita ed il bit di
carry out dellultimo full adder. In alternativa si ottiene la stessa informazione
dallo XOR del carry in e del carry out dellultimo full adder. Questo XOR d
quindi lindicazione della situazione di overflow. Questa soluzione, non
dipendente dal segno degli operandi descritta in una successiva slide.

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

Esercizio: si progetti una funzione che rappresenti


il bit di errore nelle operazioni aritmetiche di
somma e sottrazione tra numeri relativi di n bit
sgn_a sgn_b sgn_ s c_out

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

n = 8 (numeri fra -128 e 127)


sgn_a, sgn_b, sgn_s = segno di a,b,s (1= negativo) = a7, b7, s7
c_out= carry out del ladder pi significativo

err=1: risultato un numero non rappresentabile (overflow)


err=0: risultato corretto
err= - situazione che non pu verificarsi (ingresso proibito)

a7, a6, a0 +

b 7 , b6 , b0
err, s7, s6, s0

Sottrazione fra numeri naturali


metodo alternativo non molto utilizzato in quanto, come abbiamo
visto, per fare la sottrazione sufficiente un sommatore

Sottrazione fra due numeri da un bit


0 - 0 = 0 ; 1 - 0 = 1 ; 1 - 1 = 0 ; 0 - 1 : quantit non rappresentabile.
Sottrazione colonna per colonna fra due numeri da n bit
D =A- B
pn-1

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

Solo sottrazione fra quantit positive e con


risultati positivi

Lordine
delle righe
diverso da
quello che
stato
mostrato a
lezione

Per il laboratorio
e per lesame

Istruzioni per il laboratorio

sommatore da 4 bit e relativi esercizi

unit aritmetica programmabile e


relativi esercizi
9

Istruzioni per il Laboratorio


Per aprire un progetto esistente, si apra il progetto: .QPF, non lo schematico!

Per creare un nuovo progetto:


1. File -> new project wizard
2. Creare una nuova cartella selezionando e decidere il nome
progetto
3. Premere Finish lasciando il valore di default alle altre opzioni
Per passare a modalit visualizzazione quartus_II:
Tools-> customize-> General e selezionare Quartus II in sezione look
and feel
Prima di creare I nuovi file accertarsi di aver selezionato licona
del progetto nel riquadro in alto a sinistra(presente solo in
modalit look and feel= quartus II) e verificare che I nuovi file
creati siano inclusi nel progetto, andando a verificare nella
sezione file-> add/remove files to projects dello stesso riquadro
in alto a sinistra

10

Terminato lo schematico si eseguano I seguenti comandi:


1) Assignements-> Settings-> Simulator settings-> Simulation mode: selezionare
inizialmente Functional e non Timing!
2) Processing->Start-> Analysis and elaboration (nei progetti che includono files creati
da voi ATTENZIONE a dove vi chiede di salvare il .BDF)
3) Processing -> Generate functional simulation netlist
4) Creare il file .vwf (file -> new vector waveform file)
5) Mentre si editano le forme donda: Edit-> mettere valori adeguati in grid size e end
time (es: 20ns, 1us)
6) Editare il file in modo SENSATO (ATTENZIONE ANCHE ALLA SCELTA DEI PIN)
7) Processing -> start simulation
Per eseguire la Timing simulation:
1) Assignements-> Settings-> Simulator settings-> Simulation mode, imporre Timing
2) Processing-> Start Compilation and simulation
3) Per ripassare a Functional occorre rigenerare la netlist!!!
Per usare un componente realizzato:
1) File-> Create/Update -> Create Symbol Files For Current File (verr creato un .bsf)
2) Nel nuovo progetto importare il .BDF ed utilizzare nello schematico il .BSF
11

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

Progettazione di un adder a 4 bit (seconda parte)

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

Esercizio: verificare la correttezza


dellespressione di ov
Se il bit di overflow vale 1 abbiamo sempre un errore di

rappresentazione del risultato? E se il bit di overflow vale 0 il


risultato sempre corretto? Si considerino i 4 casi di operandi con lo
stesso segno e con segno diverso

Inizio della risposta: si disegni una mappa di Karnaugh di 4 variabili


(I segni degli operandi e c_in e c_out del full adder pi significativo,
quindi si riempi la mappa.

8 celle si possono riempire immediatamente osservando che, se il


segno degli operandi discorde,il risultato sempre rappresentabile
e inoltre (lo si verifichi) c_in c_out quindi ci sono 4 condizioni di

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

lingesso Cin e non con a o b del full adder a monte?


Nel sommatore a 4 bit visto in lab c un componente
che potrebbe essere rimosso? un half adder? Se s
quale? Perch?

16

Ricordando la tecnica di determinazione del complemento a 2 di un numero si


descriva a parole il comportamento del seguente adder/subtractor
programmabile e quindi se ne ricavino le
CI
forma donda che verifichino quanto affermato

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

.. stesso esercizio, con due


ingressi di programmazione
in pi (C1 e C2)

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

Sintesi della rete di pre-elaborazione


ak = c2 x.k +c2 0 =.c2 xk
bk = c0

(.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

Check point su:


Applicazione dellespressione generale
Logica Positiva e Logica Negativa e
applicazione del principio di dualit
Si suggerisce di rappresentare visualmente
mediante tabelle, mappe e schemi logici
tutte le affermazioni dei prossimi lucidi

10/11/2011

RETI LOGICHE T

Il punto della situazione sulla


Applicazione delle espressioni generali

Tabelle della verit e memorie a sola lettura


Espressione generale e multiplexer
Multiplexer e memorie
Interconnessione di memorie
Logica binaria e terzo stato buffer tristate
Realizzazione di mux con decoder e buffer
tristate
Multiplexer distribuiti
10/11/2011

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

La tdv rappresenta anche il contenuto di una memoria


a sola lettura di 2n celle da un bit
ogni cella ha per indirizzo una configurazione degli n bit di
ingresso
Ingressi di f indirizzi di mem
Uscita di f dato in mem
10/11/2011

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

Abbiamo visto gli schemi per:


1.
2.
3.

10/11/2011

Realizzare mux con un decoder e una rete SP


Realizzare tdv di n variabili con n grande, che si basano sulla tecnica
di cablare i 2n valori della funzione allinterno del dispositivo che
realizza il mux
Estendere a m il numero di uscite della tdv, ( e quindi anche il
numero di bit di ogni cella) a cui corrisponde una realizzazione di m
mux basata su un solo decoder e m reti SP
RETI LOGICHE T

Composizione di tdv (mem) per


ottenere tdv (mem) pi grandi
Si possono comporre dispositivi di memoria secondo due
diversi schemi in modo da:
1.

2.

Estendere la dimensione della singola cella, lasciando immutato il


numero di celle: il numero di variabili di ingresso non cambia, mentre
cambia il numer di uscite
Estendere il numero di celle lasciandone immutata la dimensione: il
numero di var di igresso aumenta di uno ogni volta che si desidera
raddoppiare il numero di celle di mem, mentre il numero di uscite
resta immutato

Questi schemi corrispondono alla applicazione del principio di


composizone delle reti logiche. Pi in dettaglio, con lo schema 1
aumenta il numero di mux realizzati a partire dallo stesso decoder
mentre lo schema 2 corrisponde alla realizzazione di mux pi grandi
ottenuti componendo pi decoder con la tecnica dei decoder ad
albero
10/11/2011

RETI LOGICHE T

Un nuovo approccio alla realizzazione dei mux basata sul


concetto di logica tristate in sostituzione della logica binaria:
mux distribuiti
Le uscite di buffer tristate (definiti nel file intitolato Reti Programmabili)
possono essere collegate tra loro a condizione che non capiti mai che due buffer
tristate interconnessi siano entrambi attivi
I buffer tristate sostituiscono la rete SP nella realizzazione di Multiplexer
I buffer tristate consentono la realizzazione di mux distribuiti:
ogni componente da multiplexare viene equipaggiato con un buffer di uscita tristate
Data path: le uscite corrispondenti di detti componenti vengono interconnesse tra loro
al fine di generare un unico segnale (segnale di bus)
Control path: i dispositivi interconnessi devono essere attivati uno alla volta, in modo
mutuamente esclusivo
quindi i segnali che abilitano i buffer di uscita tristate dei dispositivi interconnessi
devono essere pilotati da un DECODER esterno
Visto che decoder e buffer tristate risiedono in blocchi diversi, questi mux si chiamano
MULTIPLEXER DISTRIBUITI
10/11/2011

RETI LOGICHE T

Controllo del decoder


in un MUX distribuito
Le uscite di buffer tristate possono essere
cortocircuitate a condizione che mai, nemmeno in
transitorio, si abbiano due buffer abilitati
contemporaneamente
Quindi, se le uscite dei buffer tristate sono controllati
da un decoder, il decoder deve essere un decoder con
ingresso di enable (EN)
nelle applicazioni pratiche (es. bus dei calcolatori) si
tiene EN normalmente non attivo ( EN=0 in Logica
Positiva ) e si attiva EN (in LP si pone EN=1) solo dopo
che gli ingressi del decoder si sono stabilizzati
Per un richiamo sul significato di Logica Positiva e Negativa si veda il prossimo lucido
10/11/2011

RETI LOGICHE T

Logica Positiva e Logica Negativa


Logica Positiva (L.P.)

Voltage

Logica Negativa (L.N.)

High (H)

Low (L)

Convenzione nella
denominazione del
segnale

x#

Segnale
attivo alto

(si aggiunge il carattere #


al nome del segnale)

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

Applicazione del principio di dualit


Una delle propriet della dualit :
Ed = E(a, b, c, ...)
Cio:

RL1

RL
b

b#

a#

RLd

z#
z = /z#

RL equivalente a RL1 (cio RL e RL1 hanno la stessa tabella della verit)


Es.: se RL un AND allora si dir che lAND equivalente al NOR dei negati
RLd realizza in logica negativala stessa funzione che RL realizza in logica positiva
Es: lOR realizza in LN la stessa funzione dellAND in LP

In LN lOR descritto come segue:


luscita attiva (cio a 0) se entrambi gli ingressi sono attivi (cio a 0)
10/11/2011

RETI LOGICHE T

10

Reti combinatorie
Sintesi minima
con gli operatori dellalgebra di
commutazione

26 ottobre 2000

Reti combinatorie - sintesi minima

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

Due rappresentazioni equivalenti della stessa funzione z = F(x2, x1, x0)


26 ottobre 2000

Reti combinatorie - sintesi minima

Richiamo: Funzioni non completamente specificate


Alcune
Alcuneconfigurazionidi
configurazionidiingresso
ingressopossono
possonoessere
essereimpossibili,
impossibili,oppure
oppureper
percerte
certeconfigurazioni
configurazionididi
ingresso
ingressopu
punon
noninteressare
interessareililvalore
valoredelluscita.
delluscita.InInquesti
questicasi
casilalafunzione
funzione incompleta
incompletaoonon
non
completamente
specificata
completamente specificata

6) Funzioni incomplete - Funzioni di n variabili il cui dominio un sottoinsieme di Bn


Le configurazioni di valori delle variabili al di fuori del dominio sono dette
condizioni di indifferenza e sono indicate nella tdv con il simbolo - nella colonna
ove va indicato il valore della funzione.

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

Reti combinatorie - sintesi minima

Richiamo: Espressioni di funzioni incomplete


Espressioni equivalenti di funzioni incomplete - Espressioni che
forniscono eguale valutazione limitatamente al dominio di una
funzione incompleta data sono dette equivalenti rispetto alla funzione

Espressioni per lENCODER:


Come
Comefunziona
funzionaun
unencoder?
encoder?

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

Reti combinatorie - sintesi minima

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

Descrizione di una funzione mediante


Mappe di Karnaugh
Mappa di Karnaugh - Rappresentazione bidimensionale della
tabella della verit di una funzione di 2,3,4 variabili, i cui valori
sono stati elencati sui bordi in maniera che due configurazioni
consecutive siano a distanza 1, differiscano cio per il valore
di un solo bit.
ab

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

Reti combinatorie - sintesi minima

Importante propriet delle mappe di Karnaugh:


Adiacenza tra celle
Coppia di celle adiacenti su mappe di Karnaugh - Due celle le
cui coordinate differiscono per un solo bit sono celle adiacenti.
In una mappa che descrive una funzione di n variabili ogni cella
ha n celle adiacenti.

Regola grafica per ladiacenza Sono adiacenti celle aventi un lato


in comune o poste allestremit di una stessa riga o colonna.
cella scelta come esempio
celle adiacenti
b
a
0 1
0
1

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

Estensione delle mappe a 5 e a 6 variabili


ef
cd

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

Ulteriore regola di adiacenza Sono adiacenti celle che occupano


la stessa posizione in sotto-mappe
adiacenti.

10

01
11
10

26 ottobre 2000

ab =01

ef

01 11 10 cd

ab =10

Reti combinatorie - sintesi minima

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

Un raggruppamento rettangolare di ordine p


su una mappa di Karnaugh un insieme di
2p celle ognuna delle quali ha p celle adiacenti
tutte appartenenti al raggruppamento
Nella mappa a fianco sono indicati un RR di
ordine 3 (detto anche RR3), un RR2, un RR1
ed un RR0

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

Reti combinatorie - sintesi minima

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

Reti combinatorie - sintesi minima

Espressioni
minime

26 ottobre 2000

Reti combinatorie - sintesi minima

10

Complessit e velocit
Indicatori :

Complessit

Ngate = numero di gate,


Nconn = numero di connessioni
Ncasc = numero di gate disposti in cascata sul pi
lungo percorso di elaborazione

funzione crescente di Ngate , Nconn

Velocit di elaborazione
Esempio:
x

funzione decrescente di Ncasc


x

y
z

y
z

 Le due reti sono equivalenti (T6).


 Hanno la stessa velocit di elaborazione.
 La rete di sinistra meno complessa.
26 ottobre 2000

Reti combinatorie - sintesi minima

11

Schemi logici di costo minimo (forme normali)


Rete combinatoria di tipo SP e di costo minimo - Schema logico
che realizza una funzione connettendo ad un OR di uscita
il minimo numero di AND con il minimo numero di ingressi.
Rete combinatoria di tipo PS e di costo minimo - Schema logico
che realizza una funzione connettendo ad un AND di uscita
il minimo numero di OR con il minimo numero di ingressi.
N.B. - Lo schema di costo minimo viene ricercato fra quelli aventi la
massima velocit di elaborazione (al pi 2 gate in cascata).
Il numero di gate e/o di connessioni della rete di costo minimo di
tipo SP in generale diverso da quello della rete di costo minimo
di tipo PS che realizza la stessa funzione.
26 ottobre 2000

Reti combinatorie - sintesi minima

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).

N.B - E possibile che pi espressioni normali dello stesso tipo siano


minime (abbiano cio eguali valori di Ngate e Nconn).

26 ottobre 2000

Reti combinatorie - sintesi minima

13

Raggruppamenti rettangolari di uni e condizioni di


indifferenza
RR ed implicanti -Un RR di ordine p costituito da celle
contenenti valore 1, ed eventualmente condizioni di indifferenza,
individua un termine prodotto che copre la funzione e si chiama
implicante della funzione. Nel prodotto compaiono
le sole (n-p) variabili che rimangono costanti nel RR, in forma
vera se valgono 1, in forma complementata se valgono 0.
RR ed implicati -Un RR di ordine p costituito da celle
contenenti valore 0, ed eventualmente condizioni di indifferenza,
individua termine somma che copre la funzione e si chiama
implicato della funzione. Nella somma compaiono le
sole (n-p) variabili che rimangono costanti nel RR, in forma vera
se valgono 0, in forma complementata se valgono 1.

26 ottobre 2000

Reti combinatorie - sintesi minima

14

Ricerca della I forma normale minima


Individuazione di termini prodotto minimi (implicanti primi)
su una mappa (1 di 2)
Definizione:Un R-R di ordine p formato da celle contenenti i valori 1 o - ma
non 0, e non contenuto in nessun altro R-R di ordine maggiore (anchesso
contenente i valori 1 o - ma non 0, si chiama R-R di uni di ordine
massimo
RR di uni di dimensione massima ed implicanti primi Un RR di uni di ordine massimo individua un termine prodotto con un
numero minimo di letterali che copre la funzione data.
Questo termine prodotto si chiama implicante primo

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

Reti combinatorie - sintesi minima

bd non un
implicante
primo !
d un implicante
primo !
15

Ricerca dellespressione minima SP (2 di 2)


Lespressione minima SP una somma di implicanti primi; questi
infatti coprono gli uni su R-R di ordine massimo, quindi coprono il
massimo numero di uni contemporaneamente e inoltre sono termini
prodotto con il minimo numero di operandi
E importante trovare il numero minimo di implicanti primi che
coprono lintera funzione. A tal fino conviene partire dagli implicanti
primi essenziali, cio da quegli implicanti primi in assenza dei quali
la funzione non verrebbe completamente coperta
Lo studente deve acquisire dimestichezza con questo procedimento
manuale di ricerca dellespressione SP minima

26 ottobre 2000

Reti combinatorie - sintesi minima

16

Ricerca dellespressione minima PS


Lespressione minima PS un prodotto di implicati primi; questi infatti
coprono gli zeri su R-R di ordine massimo, quindi coprono il massimo
numero di zeri contemporaneamente e inoltre sono termini somma con
il minimo numero di operandi
E importante trovare il numero minimo di implicati primi che coprono
lintera funzione. A tal fino conviene partire dagli implicati primi
essenziali, cio da quegli implicanti primi in assenza dei quali gli
zeri della funzione non verrebbero tutti coperti
Lo studente deve acquisire dimestichezza con questo procedimento
manuale di ricerca dellespressione PS minima

26 ottobre 2000

Reti combinatorie - sintesi minima

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

Reti combinatorie - sintesi minima

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

e scrivere le corrispondenti espressioni SP e PS.


26 ottobre 2000

Reti combinatorie - sintesi minima

19

Esempi di ricerca delle espressioni minime


con il metodo grafico

26 ottobre 2000

Reti combinatorie - sintesi minima

20

Coperture ed espressioni (1)


ab

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

Uno dei due RR non di


dimensione massima (acd
non un implicante primo):
lespressione non minima.

cd
00
01
11
10

26 ottobre 2000

c + ad

Lespressione minima !

Reti combinatorie - sintesi minima

21

Coperture ed espressioni (2)


ab

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+ abc + bcd + ac

Somma irridondante di implicanti primi (non possiamo togliere


nessun termine prodotto senza lasciare almeno un uno scoperto),
ma non espressione minima
ab

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

Coperture ed espressioni (3)


ab

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

Individuazione grafica dellespressione minima (1)


A partire dalla mappa che descrive la funzione occorre determinare la
copertura minima e da questa la corrispondente espressione minima. Il
procedimento per sua natura non sistematico e presuppone labilit
di chi lo esegue.
tuttavia possibile delineare una sequenza di passi che consentono
di individuare con facilit la copertura minima:
1) Si decide se cercare lespressione di tipo SP o PS e ci si
predispone di conseguenza a coprire gli uni o gli zeri.
cd
ab
00 01 11 10
00 0 0 0 1
1) scegliamo SP
01 0 1 1 11 1 1 0 0
10 1 1 0 0
26 ottobre 2000

Reti combinatorie - sintesi minima

24

Individuazione grafica
dellespressione minima (2)

2) Si cerca di individuare tra le celle da coprire una cella che possa


essere racchiusa in un solo RR e lo si traccia di dimensione massima,
annotando il termine corrispondente. Se la funzione incompleta il RR
pu contenere anche condizioni di indifferenza.
ab

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

Reti combinatorie - sintesi minima

25

Individuazione grafica dellespressione


minima (3)
3) Si ripete fino a quando possibile il passo 2, tenendo conto
della possibilit di coprire anche celle incluse in RR gi
tracciati.
ab

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

Reti combinatorie - sintesi minima

26

Individuazione grafica dellespressione


minima (4)
4) Si prendono in considerazione le cella ancora da coprire e se ne
sceglie a colpo docchio la copertura migliore, tenendo conto
come al solito della possibilit di coprire celle gi coperte e
condizioni di indifferenza.
ab

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) Si ripete il passo 4 fino a soddisfare la condizione di copertura. Si


scrive infine lespressione minima.

5) acd + ac + abd

26 ottobre 2000

Reti combinatorie - sintesi minima

27

Altri esempi di applicazione del procedimento grafico


ab

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

Le coperture minime PS ed SP portano alla


stessa espressione
Reti combinatorie - sintesi minima

28

Mappa del mux a due vie e due possibili coperture con


implicanti primi di cui una minima
In rosso i RR essenziali, in blu un RR ridondante
I1 I0
A
00
0 0
1 0

01 11 10
1
1 0
0

Somma degli
implicanti primi
U

U = AI0 + I1 I0 + AI1

1
Implicante primo
eliminabile

Questo lucido dimostra il teorema del


consenso!!
U = AI0 + AI1
26 ottobre 2000

Reti combinatorie - sintesi minima

29

Sintesi minima di un encoder

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

Reti combinatorie - sintesi minima

z0 = x0 + x2

30

Sintesi di un trascodificatore da BCD a 7 segmenti


DCBA
0
0
0
0
0
0
0
0
1
1

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

Progetto della rete di costo minimo (1)


BA
DC 00

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

Reti combinatorie - sintesi minima

c = CBA

32

Progetto della rete di costo minimo (2)


BA
DC 00

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

d = CBA + CBA + CBA

f = DCA + BA + CB
g = DCB + CBA

Risposta della rete di costo minimo a


configurazioni non previste dal codice BCD
a
b
c
d
e
f
g

DCBA
1100
1101
1
0

1010
0

1011
0

1110
1

1111
0

la rete di costo minimo non consente la rilevazione


26 ottobre 2000
Reti combinatorie - sintesi minima
di alcuna configurazione di ingresso illecita

34

Progetto della rete in grado di rilevare le


configurazioni di ingresso illecite (1)
Alle configurazioni illecite devono corrispondere sul display simboli diversi da quelli
previsti per le configurazioni lecite; in particolare il display deve essere spento per la
configurazione DCBA = 1111. Questultima specifica richiede di ri-sintetizzare solo le
funzioni a, b, c.

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

La soluzione integrata (1)

26 ottobre 2000

Reti combinatorie - sintesi minima

36

La soluzione integrata (2)


I gate aggiuntivi previsti nella soluzione integrata servono per
conseguire ulteriori funzionalit, derivabili da specifici segnali di
ingresso-uscita (tutti attivi a livello logico 0) ed elencate in ordine di
priorit decrescente:

BI (Blanking Input)

display spento

LT (Lamp Test)

display acceso

RBI (Ripple Blanking Input)

26 ottobre 2000

display spento e attivazione del


segnale di uscita RBO (Ripple
Blanking Output) solo se il dato
in ingresso zero (DCBA = 0000)

Reti combinatorie - sintesi minima

37

Reti combinatorie

Sintesi con NAND, NOR, EX-OR

14 novembre 2001

Reti combinatorie - sintesi con


NAND, NOR, XOR

Sintesi con
NAND, NOR,
EX-OR

14 novembre 2001

Reti combinatorie - sintesi con


NAND, NOR, XOR

Quali altre algebre si possono utilizzare


oltre allalgebra di commutazione?

Ora conosciamo lalgebra di commutazione


Esistono altre algebre binarie che utilizzano altri operatori elementari, cio
altre funzioni di due variabili al posto delland e dellor?
Nei prossimi lucidi elenchiamo le funzioni di una e due variabili, quindi
citiamo le altre principali algebre sviluppate
Infine vedremo che senza bisogno di approfondire le altre algebre possiamo
per trovare facilmente le regole per passare da espressioni dellalgebra di
commutazione a espressioni di altre algebre e viceversa.
Cos riusciamo a svincolarci dalla necessit di utilizzare nelle realizzazioni
circuitali gli operatori dellalgebra di commutazione se questi dovessero non
essere convenienti. Nel contempo possiamo continuare a impiegare lalgebra
di commutazione, di gran lunga pi semplice delle altre nella maggior parte
dei problemi di analisi e sintesi

14 novembre 2001

Reti combinatorie - sintesi con


NAND, NOR, XOR

Numero di funzioni di n variabli


Numero di funzioni - Il numero di distinte funzioni
binarie finito. Le funzioni di n variabili sono:
2n
(n) = 2

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

Reti combinatorie - sintesi con


NAND, NOR, XOR

Elenco delle funzioni di una e due variabili


x f0 f3 f1 f2
0 0 1 0 1
1 0 1 1 0
x0
0
0
1
1

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

Reti combinatorie - sintesi con


NAND, NOR, XOR

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

Algebra del nand


{0, 1}} {}
un operatore

Algebra del nor


{0, 1}} {}
un operatore

C. Shannon (1938)

Algebra lineare
{0, 1}} { , .}}
due operatori

Sintesi con NAND


La sintesi a NAND pu essere effettuata trasformando
unespressione normale SP che descrive la funzione assegnata in
una nuova espressione contenente esclusivamente operatori
:
F = a. b + c. d + e. f + g
definizione delloperatore
F = (a b) + (c d) + (e f) + g
T13 (IIa legge di De Morgan)
F = ((a b) . (c d) . (e f) . g)
definizione delloperatore
F = (a b) (c d) (e f) g
14 novembre 2001

Reti combinatorie - sintesi con


NAND, NOR, XOR

Algoritmo per la sintesi a NAND


1) Si parte da unespressione SP, SPS, SPSP... e si introducono
gli operatori . e le parentesi non indicati esplicitamente.
2) Si sostituisce il simbolo ad ogni simbolo .
3) Si sostituisce il simbolo ad ogni simbolo + e si
complementano le variabili e le costanti affiancate a tale
simbolo senza linterposizione di una parentesi.
4) Si disegna lo schema logico corrispondente allespressione trovata. Se
lespressione di partenza a pi di due livelli si cerca leventuale presenza
di NAND con ingressi identici e li si sostituisce con uno solo (sfruttando il
fan-out >1 del gate corrispondente).
N.B. - La trasformazione dellespressione minima SP individua lespressione
minima a NAND.
14 novembre 2001

Reti combinatorie - sintesi con


NAND, NOR, XOR

Esempio: sintesi a NAND di un EX-OR


U = a b + ab
U = a b + ab + aa + bb
U = a (a + b) + b (a + b)

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

Reti combinatorie - sintesi con


NAND, NOR, XOR

Sintesi con componenti SSI di un selettore a due vie


U = (A I0) (A I1)

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

N.B. - La disponibilit di gate diversi da AND, OR, NOT consente


spesso di minimizzare il numero di parti impiegate.

10

Sintesi con NOR


La sintesi a NOR pu essere effettuata trasformando
unespressione normale PS che descrive la funzione assegnata in
una nuova espressione contenente esclusivamente operatori
:
F = (a + b + c) . (d + e) . f . g
definizione delloperatore
F = (a b c) . (d e) . f . g
T13 (Ia legge di De Morgan)
F = ((a b c) + (d e) + f + g)
definizione delloperatore
F = (a b c) (d e) f g
14 novembre 2001

Reti combinatorie - sintesi con


NAND, NOR, XOR

11

Algoritmo per la sintesi a NOR


1) Si parte da unespressione PS, PSP, PSPS... e si introducono
gli operatori . e le parentesi non indicati esplicitamente.
2) Si sostituisce il simbolo ad ogni simbolo +
3) Si sostituisce il simbolo ad ogni simbolo . e si complementano le
variabili e le costanti affiancate a tale simbolo senza linterposizione di una
parentesi.
4) Si disegna lo schema logico corrispondente allespressione trovata. Se
lespressione di partenza a pi di due livelli si cerca leventuale presenza
di NOR con ingressi identici e li si sostituisce con uno solo (sfruttando il
fan-out >1 del gate corrispondente).
N.B. - La trasformazione dellespressione minima PS
individua lespressione minima a NOR.
14 novembre 2001

Reti combinatorie - sintesi con


NAND, NOR, XOR

12

Esempio: sintesi a NOR di un equivalence


U = (a + b) . ( a + b)
U = (a + b) . (a + b) . (a + a) . (b + b)
U = (a + ab) . (b + ab) PSP !
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

Reti combinatorie - sintesi con


NAND, NOR, XOR

13

Full Adder con AND, OR e EX-OR


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
manipolazione algebrica:
S = r. (a. b + a . b) + r . (a. b + a . b)
S = r. (a b) + r . (a b)
S = r (a b)
R = (r + r) . a . b + r . (a. b + a . b)
R = a . b + r . (a b)
HA

FA
S

a
b

R
HA

14

Composizione modulare di addizionatori


0
a0
b0

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.

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?

14 novembre 2001

Reti combinatorie - sintesi con


NAND, NOR, XOR

16

Parit con EX-OR (1)


P = b0 b1 b2 b3.. b7
N.B. Loperazione di somma
modulo due associativa

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

Parit con EX-OR (2)


b0
b1
b2
b3
b4
b5
b6
b7

SN74280
(MSI)

P/E

0/P

Generazione parit e rilevazione errori singoli su dati da due byte:


8+8

280

280

Trasmettitore

280

280

Ricevitore

E
18

Confronto con EX-OR


a0
b0

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

Reti combinatorie - sintesi con


NAND, NOR, XOR

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

Reti combinatorie - sintesi con


NAND, NOR, XOR

20

Capitolo 5
Circuiti programmabili

5.1 - Memorie a sola lettura


5.2 - Matrici logiche programmabili
5.3 - Unit aritmetica e logica

La programmazione dellhardware
Funzioni di
n variabili
macchina
di
programmazione

Ho bisogno
di questa!

Le reti combinatorie programmabili


Rete combinatoria programmabile - Rete combinatoria
in grado di presentare diverse relazioni ingresso/uscita
singolarmente selezionabili mediante lattribuzione di
una determinata configurazione ad un gruppo di ingressi
detti bit di programmazione.
p1 p2
x1
x2
xn

py

Rete
combinatoria
programmabile

z1
z2
zm

zi = F (p1,p2 ,..,py ,x1,x2 ,..,xn) = Fp (x1,x2 ,..,xn)

5.1
Memorie a sola
lettura

La rete basata sullespressione generale


2n-1

F(x1,x2,...xi,..xn) = m(i) . F(i)


i=0

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

MUX come reti


programmabili
SN74157
I0
I1
Z
A

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

ROM (Read Only Memory)


I MUX disponibili nelle famiglie logiche hanno un basso numero
di segnali di selezione.
Difatti al crescere di n cresce esponenzialmente il numero dei pin
del circuito integrato da utilizzare per i bit di programmazione.
Esempio: n=16

216 = 65536 pin per la


programmazione !

Le ROM sono reti combinatorie programmabili basate sulla


espressione generale SP ed aventi i bit di programmazione
integrati allinterno del dispositivo.

Struttura di una ROM (1)


Una diversa realizzazione
del MUX ( T5 )

I contatti al posto dei segnali


di programmazione

F(3) F(2) F(1)F(0)

x1 x0

x1 x0
F

F(i)=0/1

Contatto aperto/chiuso

Struttura di una ROM (2)


Rappresentazione compatta della struttura di una ROM :
contatto
chiuso
contatto
aperto

x1 x0

Realizzazione integrata di pi funzioni.


Esempio: in un contenitore da 24 pin possibile alloggiare un chip
che realizza o 8 funzioni di 14 variabili o una funzione di 21 variabili.

Le ROM come circuiti di memoria


A0
A1
.
.
An-1

D
E
C

m0
m1
Bit di
programmazione
m2n-1

D0

D1

Dk

Ogni configurazione delle variabili di ingresso pu essere vista


come lindirizzo di un dato formato dai bit che sono stati
programmati nella riga corrispondente.

Le vere e proprie ROM


I contatti vengono realizzati dal costruttore nellultimo stadio del
processo di fabbricazione del circuito su ordine dellacquirente:

Le ROM sono programmabili una sola volta (OTP: one time


programmable).
memorie a sola lettura (Read Only).
memorie non volatili

Memorie non volatili a sola lettura


Memorizzazione di informazioni che devono permanere quando
il sistema non alimentato e che non non cambiano durante
il funzionamento .
Esempi: il loader, il programma di un
sistema embedded, il BIOS del PC ..
Limitazioni delle ROM

Costi fissi elevati


Non adatte allo sviluppo
(OTP)
Grossi volumi di
produzione.

PROM (Programmable ROM)

La programmazione viene effettuata dallutente mediante


unapposita apparecchiatura che consente di bruciare
selettivamente i fusibili inseriti dal costruttore.
Convenienti per bassi-medi volumi di produzione
Dispositivi programmabili una sola volta

EPROM (Erasable PROM)


Q

Programmazione effettuata dallutente mediante una apposita


apparecchiatura che consente di inviare impulsi elettrici che
provocano accumulazione di carica sul terminale di comando.
Cancellazione ottenuta convogliando luce ultravioletta sui
terminali di comando attraverso una finestra di quarzo
presente sul contenitore.
Costo superiore a quello delle PROM
Dispositivi riprogrammabili

Memorie a sola lettura cancellabili


elettricamente
EEPROM (Electrically Erasable PROM) : si programmano e
cancellano byte-per-byte tramite segnali elettrici e senza
rimuovere il dispositivo dalla piastra stampata.
FLASH-EPROM: si programmano/cancellano elettricamente
direttamente sulla piastra. La cancellazione pi veloce rispetto
alle EEPROM: con ununica operazione possibile cancellare
lintero dispositivo oppure uno o pi settori.

Selezione a due dimensioni (1)


F(A2,A1, A0)

= A2A1A0 F(0) + A2A1A0 F(1) + A2A1A0 F(2) + A2A1A0 F(3) +


A2A1A0 F(4) + A2A1A0 F(5) + A2A1A0 F(6) + A2A1A0 F(7)
= A2(A1A0 F(0) + A1A0 F(1) + A1A0 F(2) + A1A0 F(3)) +
A2 (A1A0 F(4) + A1A0 F(5) + A1A0 F(6) + A1A0 F(7))
m0

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

Selezione a due dimensioni (2)


Matrice di bit di programmazione

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

Estensione del numero di uscite


xn
x1
x0
A0 A1 ..An-1

ROM
D0 D1 Dk
z0 z1 zk

A0 A1 ..An-1

ROM
D0 D1 Dk
zk+1 zk+2 z2k+1

Collegamento in parallelo di pi ROM

Estensione del numero di ingressi


Teorema di espansione
m
A0 A1 ..Am-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

N.B. - Al primo livello occorrono 2(n-m) ROM

Amplificatore a 3 stati duscita


O

I
OE

I
OE

OE
H
H
L

I
L
H
X

O
L
H
Z

OE
I
O

Lo stato elettrico del segnale


indefinito o fluttuante (Terzo
Stato, Stato di Alta Impedenza)

MUX con amplificatori 3-state (1)


I0

In ogni istante di tempo


non deve esserci pi

I1
Z

I2
I3

A0
A1

DEC

0
MUX
4:1

di un 3-state abilitato !

Situazione di corto circuito


(conflitto elettrico) con
possibili malfunzionamenti
del sistema

Le uscite del decoder non variano simultaneamente


Nei 3-state il tempo di risposta allabilitazione (tpZH, tpZL)
inferiore a quello necessario per il passaggio nel terzo stato (tpHZ, tpLZ)

MUX con amplificatori 3-state (2)


I0

I0

I1

I1

I2

I2
I3

I3
EN
A0
A1

DEC
Ai
EN
Z

EN
A0
A1

2 1 0

DEC

Stadio di uscita di una ROM


A0
A1

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

Progetto di un banco di ROM (1)


Supponiamo di voler connettere 32K byte di ROM ad una CPU
con 16 bit di indirizzo (A0..A15) ed 8 bit di dato e di avere a
disposizione dispositivi ROM da 8K x 8 . Supponiamo inoltre
che la CPU veda il banco di ROM nella parte alta del suo
spazio di indirizzamento (8000H - FFFFH, cio A15=1).
Estensione del numero degli ingressi
a[0..12]
MRD
a15

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

Progetto di un banco di ROM (1)


MRD*
a[0..12]
A0 A1 A12
ROM
OE*
CE*
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

Esercizi 5.1 e 5.2


Si riprogetti il banco di ROM da 32KB (byte) nel caso in cui si
disponga di una ROM 16K x 8, una ROM 8K x 8, due ROM
4K x 8.

Si individui uno schema che consente di collegare al bus dati


8 pulsanti di cui il processore deve poter fare il polling
allindirizzo di I/O 0000H.

5.2
Matrici logiche
programmabili

Rappresentazione di una ROM in


termini di matrici AND e OR
ROM 2x2

Caso generale
Matrice AND
Programmata
dal costruttore
NAND = 2n
Matrice OR
Programmata
dallutente

N.B. - Ogni AND realizza un potenziale mintermine e pu


essere impiegato per la programmazione di ciascuna uscita
(espressione generale SP).

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

N.B. - Ogni AND realizza un implicante (espressione normale SP).


Nelle PLA gli implicanti possono essere comuni a pi uscite.

Sintesi con PLA


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

z
w

Sintesi con PAL

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

PAL con I/O programmabile (16L8)

5.3
Unit aritmetica
e logica

ALU: Arithmetic and Logic Unit


c
flag

ALU

u
u = Fc (x , y)

ALU - Rete combinatoria in grado di eseguire diverse


operazioni di tipo aritmetico o logico. Loperazione di
volta in volta eseguita dipende dal valore attribuito ai
bit di programmazione (codice operazione)

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

Sottrazione fra numeri naturali


Sottrazione fra due numeri da un bit
0 - 0 = 0 ; 1 - 0 = 1 ; 1 - 1 = 0 ; 0 - 1 : quantit non rappresentabile.
Sottrazione colonna per colonna fra due numeri da n bit
D = A - B (A B)

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

Complemento a 2 di un numero naturale


N formato da n bit
2N

= 2n - N

Calcolo di 2N senza la sottrazione


2N = 2n - N
= (2n - 1) - N + 1
= not (N) + 1
1

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

Numeri relativi: rappresentazione


segno-valore assoluto
n bit
bn-1 bn-2

b1 b0

segno
(0: positivo, 1: negativo)
valore assoluto
|N| = (bn-2 .2n-2 + + b0 .20)

N [-(2n-1 - 1), +(2n-1 - 1)]

Numeri relativi: rappresentazione in


complemento a 2
N 0 : segno-valore assoluto

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

N.B. - anche nella rappresenta+7 = 0 1 1 1


- 7 = 1 0 0 0 + zione in complemento a 2 il bit
pi significativo indica il
1
segno (0:positivo, 1:negativo).
=1 001

N = -2n-1 . bn-1 + bn-2 .2n-2 + + b0 .20

N [-2n-1, +(2n-1 - 1)]

Propriet della rappresentazione


in complemento a 2
Siano A e B due numeri nella rappresentazione in complemento a 2:
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

N.B. - per sommare o sottrarre due numeri relativi espressi in


complemento a 2 sufficiente un addizionatore.

Esercizi 5.4 e 5.5


Utilizzando una 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

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

Sintesi della rete di pre-elaborazione


ak = c2 . xk +c2 . 0 = c2 . xk
bk = c0 . (c1. yk) + c0 .(c1 . yk) = c0 (c1 . yk)
C1
x0

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

Bit di modalit e operazioni logiche


M (bit di modalit, 0: logica, 1: aritmetica)

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

....pi operazioni logiche


C3

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

N. B. - In questa tabella . il simbolo della


somma logica e + quello del prodotto.

Segnali di flag
c

ZERO FLAG: vale 1 se il


risultato vale 0.

SF

SIGN FLAG: vale 1 se il


risultato negativo.

CF

CARRY FLAG: vale 1 se


CO=1 .

flag

ZF

ALU
u

OF

OVERFLOW FLAG: vale 1 in caso di traboccamento


del risultato di unoperazione fra numeri relativi
rappresentati in complemento a 2.

PF

PARITY FLAG: vale 1 se il bit di parit del risultato


vale 1.

Generazione dei flag per una ALU a 4 bit


ZF = (u0 + u1 + u2 + u3)
SF = u3
CF = CO
OF = r3 CO
CO r3 r2 r1
(-7)
(-2)

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

Uno shifter a 4 bit


R

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

Esercizi 5.6 e 5.7


Si determini la tabella delle operazioni eseguite dalla ALU nel
caso M=1.

Si indichi come deve essere modificato lo shifter per poter


eseguire anche delle divisioni per 2 su numeri relativi
rappresentati in complemento a 2.

Fenomeni transitori: alee

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

f0, f15 : costanti 0 e 1


f1 : and
f3 , f5 : identit o buffer f14 : nand
f12 , f10 : not
f7 : or
f8 : nor
f9: equivalence
18 ott 2000
f6: ex-or

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

Rimuoviamo ora lipotesi ideale di


ritardo nullo degli operatori elementari

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

Famiglie di gate (TTL SSI -1968/74)


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

14 13 12 11 10

SN7404
14 13 12 11 10

SN7408

14 13 12 11 10

SN7400

SN7411

SN7407

2 183 ott 42000


5

Parametri che caratterizzano


una famiglia di circuiti logici:
alimentazione e consumo
segnali e soglie
fan-out (n max. di ingressi
collegabili alluscita)
velocit di commutazione

SN7423

SN7432

54

SN7498

Circuiti combinatori MSI e LSI


Sono poi stati resi disponibili anche integrati contenenti gate gi connessi
in strutture particolarmente utili per il progettista logico:
2
4
5
6

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

Si consiglia di visitare il sito


di un Costruttore
(ad es. www.ti.com) !

Trascodificatori
5

Tipi di transitorio: il ritardo


I1

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

Tipo ritardo - Luscita


mantiene il vecchio valore
per tutto il transitorio
c
Come si vede confrontando mappa e
forme donda, durante il transitorio (2 t)
il comportamento delle rete logica
diverso da quanto previsto dalla mappa
11 nov 2011

U
6

Tipi di transitorio: lalea statica


1

Commuta lingresso A
t

t a

U?

b
3t

Tipo alea statica Luscita, che dovrebbe


rimanere costante, assume
temporaneamente laltro
valore.

c
b
U

18 ott 2000

Stima della durata del transitorio


(metodo del caso peggiore)
I1
U
I0

I1

t
I0

t
I1

3t U
I0
8

Tipi di transitorio: il ritardo


I1

Commuta lingresso I1

t U?
0

t
1

2t

Tipo ritardo - Luscita


mantiene il vecchio valore
per tutto il transitorio

I1

U
9

Tipi di transitorio: lalea statica


1

Commuta lingresso A

t a

U?

3t

a
Tipo alea statica Luscita, che dovrebbe
rimanere costante, assume
temporaneamente laltro
valore.

c
b
U
10

Tipi di transitorio: lalea dinamica


1

b
4

t
B

Tipo alea dinamica Luscita varia pi volte


A
prima di assestarsi sul
nuovo valore.
Solo reti logiche a pi di
tre livelli possono
presentare alee dinamiche. R

La rete ha pi di tre livelli


(es.:PSP)
Commuta lingresso A
4t

11

Le reti SP e PS non presentano alee dinamiche

Conseguenze dei ritardi nelle reti logiche combinatorie SP:


le alee statiche di 1

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

Alea di 1: impulso indesiderato di 0 non previsto dalla tdv


la tabella della verit indica che luscita dovrebbe mantenere il valore costante 1
Lingresso si sposta tra due configurazioni adiacenti che danno a regime uscita 1;
i diversi ritardi con cui si presentano i segnali agli ingressi dellOR causano lalea di 1.

12

Causa ed eliminazione delle alee statiche

LAlea statica di 1 un impulso indesiderato di uscita non previsto dalla tabella


della verit: un impulso di 0 che si verifica quando luscita dovrebbe rimanere a 1
LAlea statica di 0 un impulso indesiderato di uscita non previsto dalla tabella
della verit: un impulso di 1 che si verifica quando luscita dovrebbe rimanere a 0
Le reti SP in cui gli ingressi dellOR commutano verso valori complementari in
conseguenza di una variazione di un ingresso della RL presentano strutturalmente
unalea di 1. Le reti SP non presentano mai alee di zero.
Analogamente, le reti PS in cui gli ingressi dellAND commutano verso valori
complementari in conseguenza di una sola variazione di un ingresso della RL presentano
unalea di 0. Le reti PS non presentano mai alee di uno.

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

che si propaga lungo pi cammini. Si possono eliminare le alee statiche


nelle reti SP e PS adottando il seguente metodo: si considerano le
configurazioni di ingresso adiacenti in cui non cambia il valore di uscita e ci si
assicura che esse siano coperte da un medesimo RR, a cui corrisponde un
implicante (reti SP) o implicato (Reti PS) nel quale la variabile di ingresso che
cambia non compare.
13

Esempio: evitare alee di uno nel caso di


copertura di uni
Il raggruppamento rosso individua un IMPLICANTE RIDONDANTE:
1.

che non dipende dalla variabile che commuta

2.

la cui uscita rimane stabilmente a 1 durante la transizione indicata

Pertanto, se si inserisce detto implicante nellespressione SP che copre gli


uni della funzione assegnata, lalea di 1 viene eliminata. Infatti in questo
modo non pu pi verificarsi la situazione transitoria di ingressi nulli
allingresso dellOR della rete SP

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

Si noti che reti SP non presentano alee statiche di zero!


14

Leliminazione delle alee di uno in rete SP porta a soluzioni


che non sono di costo minimo
xy
z

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

Il caso della sintesi PS:


eliminazione delle alee statiche di zero
Mentre se si esegue la sintesi PS di una funzione zeri adiacenti devono cadere
sotto un unico raggruppamento rettangolare per evitare alee di 0.
Copriamo gli zeri della funzione assegnata nei lucidi prcedenti:

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)

Il raggruppamento introdotto corrisponde ad un OR che rimane stabilmente a 0


durante la transizione indicata, in modo che l AND duscita non possa trovarsi
temporaneamente con tutti gli ingressi ad 1.

Si noti che reti PS non presentano alee statiche di uno!


16

2
I modelli di
comportamento
dei sistemi digitali

Comportamento combinatorio o sequenziale?


22 settembre 2002

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(t) = P(t, i(t))


a) Linterazione uomo/macchina
Dati
MACCHINA
Risultati
22 settembre 2002

Esempio di comportamento di un sistema digitale

u=

dato

25

49

risultato

7
t

Luscita allistante t funzione dellingresso in quellistante


Luscita u(t) non dipende da i() con < t
Luscita non risente della storia passata degli ingressi
Il sistema non ha memoria
possiamo scrivere:
u = P(i)
u(t) = P(i(t)) oppure
Questo comportamento detto: combinatorio
Questo comportamento pu essere descritto da una tabella della verit
Le reti logiche che realizzano questo tipo di comportamento
si chiamano: reti logiche combinatorie
22 settembre 2002

La macchina combinatoria
Un sistema digitale in cui luscita dipende solo dal valore
contemporaneo dellingresso detto macchina combinatoria.
U(t) = f (I(t))

In una macchina combinatoria, Se I linsieme delle


informazioni in ingresso e U linsieme delle informazioni in
uscita il comportamento della macchina descritto mediante
la funzione

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

Un altro esempio di macchina combinatoria:


il campanello

Tabella del comportamento


i: Pulsante

u = F(i)

Premuto
Rilasciato

22 settembre 2002

u: Suoneria
Suono
Nessun Suono
6

Un altro possibile comportamento


V
T0
t0

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

Approfondiamo lesempio: u(Tn) = P(s( Tn))


V
T0
t0

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

Ecco la tabella che associa luscita allo stato interno presente

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

Questa una corrispondenza tra un


insieme finito di simboli di ingresso
( i sette valori dello stato interno) e un
insieme finito di simboli di uscita ( i tre
colori);
se chiamiamo S linsieme dei sette stati
e U linsieme dei valori possibili
delluscita, e se chiamiamo F la
corrispondenza tra S e U, allora
possiamo scrivere:

uscita
verde
verde
verde
giallo
rosso
rosso
rosso

F: S U
22 settembre 2002

E sufficiente assegnare la funzione F: S U per descrivere il


funzionamento del semaforo?

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

No, perch dobbiamo anche dire come viene


aggiornato lo stato presente che rappresenta la
memoria del sistema; la stato presente ci dice a
che punto siamo del ciclo; dunque deve essere
aggiornato ad ogni istante di clock.
La tabella di fianco ci dice, per ogni stato qual
il successivo. Se ad ogni istante di clock
facciamo passare lo stato presente dal valore
della colonna di sinistra al valore della colonna
di destra, allora otteniamo il corretto
funzionamento del nostro semaforo

Questa tabella descrive la funzione G: S S


22 settembre 2002

10

Conclusione: il comportamento del semaforo descritto dalle


due funzioni F: S U e G: S S

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

Rappresentazione del comportamento delle


RSS con un grafo orientato
(diagramma degli stati)

Definizione di grafo orientato:


un grafo orientato costituito da un insieme di nodi (o vertici)
e un insieme di rami (o archi) caratterizzati dalla seguente
propriet: a ogni ramo associata una coppia ordinata di nodi
Un ramo associato a una coppia di vertici a e b si dice ramo
incidente su a e b; viceversa i si dice che i nodi a e b sono
adiacenti se sono associati a uno stesso arco

C
D

I nodi sono 7 (A, B, C, D, E, F, G)


I rami sono 8 (AB, BC, CD, DE, EF, FG, GA, GC)
A adiacente a B e G
G adiacente a F (via ramo entrante), ad A e a C
(via rami uscenti)

Esempio di grafo orientato


22 settembre 2002

12

Propriet e utilizzo dei grafi


I grafi si utilizzano in molte discipline, tra cui
lingegneria, leconomia, la chimica,
linformatica, la ricerca operativa
Servono per rappresentare relazioni tra gli
elementi di insiemi discreti
Esempio:
se i nodi rappresentano citt, i rami possono
rappresentare le strade tra di esse; allora la
teoria dei grafi pu essere applicata allo
studio dei percorsi minimi, etc.
22 settembre 2002

13

Impiego dei grafi nella descrizione


del comportamento del semaforo
Noi utilizziamo i grafi per rappresentare legami non nello spazio ma nel tempo:
tornando allesempio del semaforo, possiamo pensare di associare un nodo a
ciascuno dei 7 intervalli di tempo in cui diviso il periodo del ciclo semaforico.
A ogni nodo possiamo associare un numero (es. da 0 a 6) oppure una lettera (es.
da A ad G) e il colore del semaforo in quellintervallo; i rami servono per indicare
le transizioni, cio i passaggi da un intervallo allaltro

0,V

1,V

2,V
3,G

6,R

5,R

22 settembre 2002

4,R

Ogni nodo rappresenta uno stato interno della RSS


La rete resta in ogni stato per un tempo Tn
I rami indicano per ogni stato della rete quale sar
lo stato successivo (stato futuro) in cui la rete andr
allo scadere dellintervallo di tempo Tn
Dunque i rami individuano le transizioni stato
presente stato futuro
Allinterno di ogni nodo si indicano:
il nome dello stato e luscita che la rete ha finch
si trova in quello stato
14

Trasformazione di un grafo degli stati in


tabella di flusso
Consideriamo ad esempio un grafo degli stati con un solo ramo
uscente per ogni nodo: e possibile condensare in una tabella tutte le
informazioni contenute nel grafo e precisamente:

Stato
presente

i rami uscenti da ogni nodo


(cio le corrispondenze
stato presente stato futuro)
il valore delluscita in ogni nodo
0,V

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

La tabella denominata tabella di flusso


Se ne analizzi attentamente
la struttura!!!!

G: S S

F: S U

22 settembre 2002

15

La Tabella di Flusso descrive in modo compatto


le due funzioni combinatorie F e G
V
T0
t0

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

Continuazione del procedimento di sintesi:


la macchina binaria che controlla il semaforo
Il comportamento del semaforo specificato dalle funzioni F: S U e G: S S

z1

rete
sequenziale
sincrona

clock

z2
z3

Il sistema di elaborazione che dobbiamo progettare un sistema BINARIO;


cio un sistema in grado di trattare solamente variabili binarie.
Quindi necessario che tutti le informazioni trattate (gli insiemi S e U) siano
tradotte in sequenze di zeri e uni.
Questa operazione detta codifica
dobbiamo dunque codificare gli stati con variabili binarie che chiameremo
variabili di stato interno
dobbiamo codificare i simboli di uscita con variabili binarie di uscita
22 settembre 2002

17

Codifica degli stati e delle uscite


V
T0
t0

T1
t1

T2
t2

T3
t3

R
T4

T5
t5

T7

T6
t6

t7

T8
t8

T9

t9

Per codificare 7 informazioni sono necessarie 3 variabili binarie


La codifica arbitraria
Le uscite sono codificate in modo ridondante (basterebbero anche due bit)
Codifica

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

La tabella delle transizioni


Se si applica alla tabella di flusso la codifica degli stati e delle uscite si ottiene una
nuova tabella detta tabella delle transizioni
La tabella delle transizioni esprime in forma binaria le funzioni F e G!!
Le funzioni F e G sono combinatorie
Stato
presente

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

Per poter realizzare le sei funzioni Y2 Y1 Y0 e z3 z2 z1


necessario studiare lalgebra di comutazione

Si pone ora il problema


di progettare
le 6 reti combinatorie
che realizzano
le sei funzioni binarie
Y2 Y1 Y0 e
z3 z2 z1
Si noti che le variabili di stato
presente si indicano con y
minuscola
mentre le variabilidi stato futuro
(uscite della rete G)
si indicano con la Y maiuscola

22 settembre 2002

19

La rete logica sequenziale sincrona


che controlla il semaforo
uscita u
z1
z2

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

Variazione del comportamento del semaforo e


suo impatto sul grafo degli stati

Riprendiamo
il grafo degli stati del semaforo

22 settembre 2002

21

Il grafo degli stati del semaforo


A,V

B,V

C,V
D,G

G,R

F,R

E,R

Ogni nodo rappresenta uno stato


Allinterno di ogni nodo sono indicati i simboli dello stato e delluscita
Ogni ramo rappresenta la transizione da stato presente a stato futuro
Dal grafo possibile ricavare le funzioni F e G, e quindi la T. d. F.
Le transizioni avvengono in corrispondenza degli impulsi di clock
22 settembre 2002

22

11

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, e
successivamente fa tornare verde il semaforo al primo impulso di clock in cui
non pi attivo?
Soluzione 1

A,V

B,V

C,V
0

G,R

H,R

D,G

1
1

1
0

F,R

E,R

La scritta indicata sul ramo


identifica la configurazione
binaria dellingresso che
determina la transizione

Analizzare attentamente il comportamento,


quindi ricavare la tabella di flusso e la tabella
delle transizioni
22 settembre 2002

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

Come si trasforma il trattino nella Tdf?


24

12

Riepilogo ipertestuale:
Procedimento di sintesi di RSS
Dalla descrizione a parole alla rete

22 settembre 2002

25

Procedimento di sintesi di R.S.S.:


dalla DESCRIZIONE A PAROLE alla RETE LOGICA
Si pu passare da una descrizione a parole del funzionamento di una macchina sequenziale
sincrona alla R.S.S. corrispondente eseguendo in sequenza i seguenti passi:
1 - si costruisce il diagramma degli stati
2 - si ricava la tabella di flusso
3 - si individua la tabella di flusso minima (cio la tabella col numero minimo di stati)
4 - si codificano gli stati con variabili binarie (variabili di stato)
5 - si ricava la tabella delle transizioni
6 - si ricavano le TdV delle variabili di stato e di uscita (funzioni F e G)
7 - si esegue la sintesi di dette TdV (sintesi di F e G)
8 - si disegna lo schema logico inserendo un ritardo T sul ramo di retroazione di ogni
variabile di stato
9 - si individua la massima frequenza di clock compatibile con il corretto funzionamente della
rete
10 - si realizza il circuito
Sono di uso comune strumenti di sintesi automatica che consentono di passare direttamente
dal diagramma degli stati al file di configurazione di circuiti logici programmabili (es. FPGA)
22 settembre 2002

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

Obiettivo della sintesi:


la macchina binaria che controlla il semaforo
Il comportamento del semaforo specificato dalle funzioni F: S U e G: S S

z1

clock

rete
sequenziale
sincrona

z2
z3

Il sistema di elaborazione che dobbiamo progettare un sistema BINARIO;


cio un sistema in grado di trattare solamente variabili binarie.
Quindi necessario che tutti le informazioni trattate (gli insiemi S e U) siano
tradotte in sequenze di zeri e uni.
Questa operazione detta codifica
dobbiamo dunque codificare gli stati con variabili binarie che chiameremo
variabili di stato interno
dobbiamo codificare i simboli di uscita con variabili binarie di uscita
22 settembre 2002

28

14

Il grafo degli stati del semaforo


V
T0
t0

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

Ogni nodo rappresenta uno stato


Allinterno di ogni nodo sono indicati i simboli dello stato e delluscita
Ogni ramo rappresenta la transizione da stato presente a stato futuro
Dal grafo possibile ricavare le funzioni F e G, e quindi la T. d. F.
Le transizioni avvengono in corrispondenza degli impulsi di clock
22 settembre 2002

29

La Tabella di Flusso descrive in modo compatto


le due funzioni combinatorie F e G
V
T0
t0

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

Codifica degli stati e delle uscite


V
T0
t0

T1
t1

T2
t2

T3

R
T4

t3

T5
t5

T7

T6
t6

t7

T8
t8

T9

t9

Per codificare 7 informazioni sono necessarie 3 variabili binarie


La codifica arbitraria
Le uscite sono codificate in modo ridondante (basterebbero anche due bit)
Codifica

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

La tabella delle transizioni


Se si applica alla tabella di flusso la codifica degli stati e delle uscite si ottiene una
nuova tabella detta tabella delle transizioni
La tabella delle transizioni esprime in forma binaria le funzioni F e G!!
Le funzioni F e G sono combinatorie
Stato
presente

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

Per poter realizzare le sei funzioni Y2 Y1 Y0 e z3 z2 z1


necessario studiare lalgebra di comutazione
22 settembre 2002

Si pone ora il problema


di progettare
le 6 reti combinatorie
che realizzano
le sei funzioni binarie
Y2 Y1 Y0 e
z3 z2 z1
Si noti che le variabili di stato
presente si indicano con y
minuscola
mentre le variabilidi stato futuro
(uscite della rete G)
si indicano con la Y maiuscola
32

16

La rete logica sequenziale sincrona


che controlla il semaforo

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

Variazione del comportamento del semaforo e


suo impatto sul grafo degli stati

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

La scritta indicata sul ramo


identifica la configurazione
binaria
degli ingressi associata alla
ricavare
transizone

Analizzare attentamente, quindi


la tabella di flusso e la tabella delle transizioni

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

le macchine sequenziali si suddividono in:


Macchine sequenziali sincrone
Macchine sequenziali asincrone

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

Un esempio di sistema digitale con memoria che


non ha bisogno di misurare la durata degli
intervalli di tempo

Il comportamento di una lampada da tavolo che si accende e si spegne premendo un


pulsante riconducibile al modello delle Macchine Sequenziali Asincrone: lo stato
della lampada non dipende dalla posizione del pulsante (premuto o rilasciato), n dalla
durata degli intervalli di tempo in cui il pulsante stato premuto o rilasciato; dipende
invece dal numero di volte in cui il pulsante stato premuto nel passato, dipende cio
solamente dalla sequenza con cui cambiato lo stato del pulsante (i. e. il valore
dellingresso)

u(t) = P(i(t-))
0

22 settembre 2012

Le variazioni delluscita (lampadina) sono


dovute a variazioni dellingresso (pulsante)
Il valore delluscita non dipende dalla durata
delle configurazioni di ingresso, quindi non
dipende
dal valore di t, ma dipende solo dalla sequenza
con cui variato lingresso
Nelle M.S.A. la storia passata rappresentata
solo dalla sequenza con cui variato lingresso,
e non dalla durata di ogni configurazione di
ingresso
3

Esempi di sistemi digitali con memoria


in cui necessario (o opportuno) misurare la durata degli intervalli di tempo

u(t) = P(t)

colore

Le variazioni
delluscita sono
dovute al trascorrere
del tempo

istruzione
operando

u(t) = P(t, i(t-))


0

istruzione operando

CPU

risultato

Dipende anche dalle


istruzioni e dai dati
precedenti

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

codifica binaria delle grandezze discrete elaborate dalla macchina


data
Si viene cos a definire una corrispondenza tra macchina digitale e
rete logica

22 settembre 2012

La macchina digitale e la rete logica


i(t) I
(alfabeto di ingresso)

u(t) U
(alfabeto di uscita)

Macchina digitale

Ingressi e uscite sono simboli appartenenti a un alfabeto assegnato


Si pu descrivere la M.D. con il diagramma degli stati e con la tabella di flusso

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

Comportamenti delle macchine sequenziali

Chiamiamo macchine sequenziali asincrone (MSA) quelle macchine sequenziali in cui


uscita stato interno e uscita vengono aggiornati ad ogni cambiamento della
configurazione di ingresso o dello stato interno

Chiamiamo macchine sequenziali sincrone (MSS) quelle macchine sequenziali in cui lo


stato interno viene aggiornato in istanti discreti di tempo ti.
Solitamente lintervallo di tempo ti. - ti-1. costante e si chiama periodo di clock.
Macchine sequenziali con periodo di clock costante e noto possono essere impiegate
per la misura di intervalli di tempo.
In gnerale luscita delle Macchine sequenziali viene aggiornata tutte le volte che cambia
lingresso o lo stato interno

Una MS che cambia uscita solo in corrispondenza di una variazione di


stato interno si chiama macchina di MOORE
Nelle macchine di MOORE la funzione F diventa:
F: S I
Una MS che cambia uscita in corrispondenza di una variazione di
stato interno o di ingresso si chiama macchina di Mealy
22 settembre 2012

Modello astratto e schema a blocchi


della macchina sequenziale
Lautoma a stati finiti
M = {I, U, S, F, G}
formato da 3 INSIEMI
I: i1, i2, , in alfabeto di ingresso
U: u1, u2, , um alfabeto di uscita
S: s1, s2, , sk insieme degli stati
da 2 FUNZIONI
F : S I U funzione di uscita
G : S I S funzione di aggiornamento
dello stato interno

pu essere rappresentato graficamente


con lo schema a blocchi accanto in cui
messo in evidenza il ruolo di MEMORIA
svolto della retroazione sullo stato:
la MEMORIA mantiene il vecchio stato s
fino a quando non necessario
sostituirlo con il nuovo stato s*
(il prossimo istante di clock se la rete sincrona)
22 settembre 2012

u
F

s*

memoria
(ritardo)
9

Il modello delle M.S.S.


la discretizzazione del tempo e le funzioni F,G
i(tn)

u(t) = P(t, i(t-))


0

u(tn)
F

u(tn ) = P (i ,i(t0),i(t1), ., i(tn-1), i(tn))

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)

stato interno: il riassunto


della storia passata
T0
t0

T1
t1

T2
t2

22 settembre 2012

T3
t3

Tn-1

Tn
tn

Ritardo
T

Tn+1
tn+1

s(t0) = i

10

Il modello delle M.S.A.


la retroazione diretta dello stato interno (T=0)
u(t) = P(t, i(t-))
0

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

Astrazione di un modello per M.S.S. e M.S.A.


Le variabili discrete sS, iI, uU e le funzioni F e G
La funzione F:
S x I U

La funzione G:
S x I S
S

S
I

U
22 settembre 2012

S
12

Descrizione del comportamento


con tabella di flusso
insieme
degli
stati

ingresso
i1
s1
s2
..
..

stato
presente

sj
..
..

sk

..
..
..
..

i2

ii

in

..
..

.
.
..
..

..
..

.
.
..
..

..
..

..
..

. sp,uq .
..
..
..
..
..
..

..
..

alfabeto
dingresso

. . .
stato futuro, uscita

22 settembre 2012

13

Descrizione con grafo degli stati


Per ogni stato e
per ogni valore di ingresso lecito si
devono individuare
stato futuro e valore delluscita

S1

Sp

i1, um
Sj

ii, uq

in, un

Sk

22 settembre 2012

S2

14

Classificazione dei comportamenti e quindi del


grafo degli stati delle Macchine Sequenziali
i1, u1

1: una variazione di ingresso


determina (al pi) una
variazione di uscita

i2, u2
i2, u2

i1, u1

2: una variazione di ingresso


determina un numero limitato
di variazioni di uscita
3: una variazione di ingresso
determina continue
variazioni di uscita
22 settembre 2012

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

Questo comportamento pu essere


convenientemente realizzato con una R.S.A.
E comunque possibile realizzare questo
comportamento con una R.S.S.
16

La macchina sequenziale asincrona


Per ottenere il comportamento 1 (al pi una variazione delluscita a
fronte di una variazione dellingresso) sufficiente progettare il
diagramma degli stati in modo che lo stato darrivo non vari in
corrispondenza del nuovo ingresso:

se sj = G( si , i) allora sj = G( sj , i)

si

i,

i,

sj

Lo stato viene aggiornato con il ritardo della rete G


Una volta aggiornato, lo stato resta stabile e immutato
fino allarrivo della prossima configurazione di ingresso
(infatti lo stato futuro resta uguale allo stato presente)

Macchine di questo tipo sono dette asincrone perch il loro


comportamento dipende dal verificarsi di eventi (le
variazioni degli ingressi) e non dal trascorrere del tempo.
Si dice che una R.S.A. si comporta in modo
fondamentale se il suo dds rispetta la regola suindicata
22 settembre 2012

17

Esempio di comportamento 2: una lavapiatti


stop
Immissione acqua

Riposo

Riscaldamento

start

Controllo

Timer

Scarico
acqua

Getti

Detersivo
& getti

Immissione acqua

Scarico
acqua

I cambiamenti di stato avvengono quando il timer segnala che scaduto il tempo


previsto per la fase del ciclo associato allo stato presente.
22 settembre 2012

18

Esempio di comportamento n. 3: il semaforo


colore

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:

numero degli stati nel dds = k


(tn - tn-1) = Tck

22 settembre 2012

19

La macchina sequenziale sincrona


Nei comportamenti 2 e 3 (definiti nel lucido 15) si hanno variazioni di uscita
e stato anche con ingresso costante. Tali variazioni quindi non possono
che essere dovute al trascorrere del tempo.
La macchina deve allora essere in grado di misurare il trascorrere del
tempo. Ci viene ottenuto inserendo un ritardo costante, Tck, sul ramo
di retroazione della funzione G
Questo ritardo, solitamente chiamato periodo di clock, diventa lunit
di misura del tempo della macchina
Macchine di questo tipo sono dette sincrone perch il loro
comportamento dipende sia dal trascorrere del tempo sia dal verificarsi
di eventi.

Nelle macchine sincrone con ingressi sincroni la durata di un simbolo di


uscita sempre un multiplo di Tck . Per ottenere una durata pari a k Tck
occorrono k transizioni di stato
22 settembre 2012

20

Analisi e sintesi di
reti logiche sequenziali

22 settembre 2012

21

Modello formale di ogni rete


che riceve e fornisce segnali binari
1: Schema logico (struttura)
x1(t)
x2(t)
x3(t)

z1(t)
z2(t)

Rete logica
zm(t)

xn(t)

2: Espressioni (comportamento)
22 settembre 2012

xi(t), zj(t) B0,1


zj(t) = Fj (t, x1(t) , x2(t), , xn(t)) per j=1,..,m

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

Dalla macchina sequenziale sincrona


alla rete sequenziale sincrona (1/2)
la discretizzazione del tempo e le funzioni F,G e il ritardo sulla retroazione

u(tn ) = P (i ,i(t0),i(t1), ., i(tn-1), i(tn))

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

Ti : iesimo periodo di clock (periodo = T)


ti : iesimo istante di clock (ti - ti-1 = T)
In corrispondenza degli istanti di clock ti
lo stato interno si aggiorna e quindi rimane
stabile per tutto il periodo Ti fino a ti+1

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

Dalla macchina sequenziale sincrona


alla rete sequenziale sincrona (2/2):
Una realizzazione della rete sequenziale sincrona

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

z i n = F i (x 1,.., x n , y 1 ,.., y k)n per i = 1, .. , m


y i n+1 = Y i n = G i (x 1,.., x n , y 1 ,.., y k)n per i = 1, .. , k
22 settembre 2012

25

Il flip-flop come elemento di ritardo


D

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

realizzazione delle reti sequenziali sincrone


x1
xn
y1
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
22 settembre 2012

Reti
Combinatorie
(F e G)
Q

z1
zm
Y1

Yk

27

Vincolo per il corretto funzionamento di una


rete sequenziale sincrona

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

I problemi di sintesi e di analisi


per le reti sequenziali sincrone
SINTESI - Dato un comportamento di tipo 1, 2 o 3, individuare:
la pi opportuna frequenza del clock,
il n minimo di stati
la migliore realizzazione delle reti di uscita (Funzione F
della FSM) e di aggiornamento dello stato interno (Funzione
G della FSM)
ANALISI - Dato uno schema logico con gate e flip-flop sincroni,
individuare:
il grafo degli stati
una descrizione a parole del comportamento
22 settembre 2012

29

Procedimento di sintesi di R.S.S.:


dalla DESCRIZIONE A PAROLE alla RETE LOGICA
Si pu passare da una descrizione a parole del funzionamento di una macchina sequenziale sincrona alla
R.S.S. corrispondente eseguendo in sequenza i seguenti passi:
1 - si costruisce il diagramma degli stati
2 - si ricava la tabella di flusso
3 - si individua la tabella di flusso minima (cio la tabella col numero minimo di stati)
4 - si codificano gli stati con variabili binarie (variabili di stato)

5 - si ricava la tabella delle transizioni


6 - si disegnano le mappe di Karnaugh o le t.d.v. delle variabili di stato e di uscita (funzioni F e G)
7 - si scrivono le espressioni di costo minimo dello stato futuro e delle uscite (sintesi di F e G)
8 - si disegna lo schema logico inserendo un FF-D sul ramo di retroazione di ogni variabile di stato
9 - si individua la massima frequenza di clock compatibile con il corretto funzionamente della rete
10 - si realizza il circuito con FF-D e operatori elementari, oppure con dispositivi programmabili
Il passo 3 e la minimizzazione nel passo 7 non sono strettamente necessari; se effettuati portano alla
sintesi minima della R.S.S. con FF-D; sempre possibile, ma ormai in disuso, utilizzare altri tipi di flip flop
al posto dei FF-D
Sono ormai di uso comune strumenti di sintesi logica automatica che consentono di passare
direttamente dal diagramma degli stati al file di configurazione di circuiti logici programmabili (es. FPGA)
22 settembre 2012

30

Procedimento di analisi di R.S.S.:

dalla RETE LOGICA alla DESCRIZIONE A PAROLE


Si pu passare dallo schema logico di una R.S.S. (con ritardi sulla retroazione realizzati con FF-D)
alla descrizione a parole del suo comportamento eseguendo in sequenza i seguenti passi:
1 - si scrivono le espressioni di G ed F, cio le espressioni delle variabili di stato stato futuro (ingressi D
dei FF) e delle uscite
2 - si esegue lanalisi delle espressioni di G e F (si disegnano cio le mappe di Karnaugh o le t.d.v.
delle variabili di stato futuro e di uscita)
3 - si ricava la tabella delle transizioni (t.d.t)
4 - si assegna un nome simbolico ad ogni configurazione delle variabili di stato interno presente (una
configurazione, cio uno stato per ogni riga della t.d.t.)

5 - si ricava la tabella di flusso (t.d.f.)


6 - si disegna il diagramma degli stati (d.d.s.)
7 - si descrive a parole il funzionamento della macchina sequenziale sincrona a cui corrisponde il d.d.s.
disegnato aiutandosi eventualmente con forme donda
I passi 4 e 5 sono opzionali

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

Riepilogo sulla classificazione


delle macchine digitali
e sul loro comportamento nel tempo
Forme donda di riferimento

22 settembre 2012

32

Classificazione delle macchine


Macchina

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

Un orologio esterno (clock) suddivide il tempo in intervalli tutti eguali, durante i


quali ingresso, uscita e stato sono per ipotesi costanti. Laggiornamento dello stato
avviene nellistante che delimita due intervalli consecutivi (istante di sincronismo).
22 settembre 2012

33

La macchina combinatoria
tn

tn+1

ingresso

uscita

F(i)

F(j)

F(k)

ritardo p

p : intervallo di tempo impiegato per il calcolo di F


22 settembre 2012

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

p : intervallo di tempo impiegato dal calcolo di F e di G 36

22 settembre 2012

flip-flop e reti asincrone

1 LATCH Set Reset


2 - Reti asincrone
3 - Latch CD
4 - Flip-flop D (edge triggered)

La memorizzazione di un bit

richiede due stati interni,


due comandi ..
Metti in memoria 1 !
0
1

Metti in memoria 0 !

e un po di fatica !

S
/Q

1
Flip Flop SR

Flip Flop ( o Latch) SR

Premessa sulle Reti Sequenziali Asincrone


i

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 !!

Flip Flop SR (detto anche LATCH SR)


S

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

ANALISI DEL LATCH SR


Valutazione della espressione
del segnale in retroazione
SR
y

SR

00 01 11 10
0 0
0
1 1
1 1

Y = S + y . R

Questa espressione detta


Equazione Caratteristica del
Latch Set Reset

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.

Descrizione con tabella di flusso

S,R
00
01

11

10

S,R
00 01

11

10

La macchina asincrona: lo stato si aggiorna allarrivo di un nuovo


ingresso (quando necessario) e poi si stabilizza.
Questa una t.d.f in modo fondamentale quindi
Il comportamento di tipo 1: luscita cambia solo se cambiano gli
ingressi e per ogni nuovo ingresso si ha al pi una variazione duscita.

Descrizione del FF SR con grafo degli stati


comando
di set

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

Il comando di set serve per memorizzare il valore 1, il comando di


reset serve per memorizzare il valore 0
Lo stato ricorda quale stato lultimo comando ricevuto (1: set, 0: reset)

Cenno storico: LATCH SR


realizzato con diodi e resistenze - realizzazione a NOR
Vu = V3 (V1 V2)

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)

Latch SR a NOR (2)

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

Cosa occorre per scrivere un 1 (o uno 0)?


R=0
Q
q=0

2tp

S: 0 1

Dt = 2tp
S
Q
q

Dopo Dt dal fronte


di salita di S, q passa
da 0 a 1, condizione
che si mantiene anche
se S torna a 0 (infatti S il
secondo in ingresso di un
NOR che ha gi un
ingresso a 1 (q)

La durata minima di un comando di set/reset indicata


nel data-sheet del latch SR

Cosa occorre per mantenere un 1 (o uno 0)?


y=Y

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

Due tratti di saturazione


(pendenza minore di 1)
connessi da un tratto con
alto guadagno
(pendenza maggiore di 1):
3 intersezioni !

y
Y

-e

Per chiudere la retroazione occorre


una amplificazione del segnale ed un
comando energico.
Se limpulso di set/reset ha durata
inferiore al tempo di set-up il latch
pu andare in metastabilit.
Valore attuale?? E futuro ??

2
Reti Sequenziali
Asincrone

s*

s
Dt
Dt:
Ritardo della rete G

Reti sequenziali asincrone (comportamento)


ingresso i

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)

Condizioni necessarie per il corretto


funzionamento delle RSA
Requisito sulla codifica delle variabili di ingresso
1. La configurazione binaria di ingresso pu cambiare solo quando lo
stato della rete stabile (cio a transitori estinti)
Quindi sono ammesse solo transizioni tra configurazioni a distanza 1

Requisito sulla codifica degli stati


2. Stati adiacenti devono essere codificati con configurazioni binarie a
distanza 1
Le situazioni in cui la T.d.T. prevede la transizione tra stati con D>1 sono dette corse. Le corse
vanno analizzate una per una, in quanto in alcuni casi in presenza di corsa la rete potrebbe
comportarsi in modo diverso da quanto previsto dalla T.d.T. (potrebbe cio finire in uno stato
non desiderato); queste situazioni sono dette corse critiche e devono essere eliminate.

Requisito sulle espressioni delle variabili di stato futuro (rete G)


3. Le uscite della rete G devono essere prive di alee statiche o dinamiche
onde evitare che la rete venga a trovarsi in stati non previsti dalla T.d.T.

Ulteriore requisito sui disallineamenti delle variabili di ingresso


4. La rete G deve essere priva di alee essenziali
(alee essenziali potrebbero essere presenti solo in RSA con pi di una variabile di stato; in tal
caso questo requisito non pu essere soddisfatto a livello di progetto logico: deve invece essere
considerato a livello circuitale, vedi lucido 21 e FF-D edge triggered)

Vincoli sulla codifica degli ingressi e degli stati nelle RSA


Le transizioni tra conf. di ingresso a distanza > 1 sono prive di significato in una RSA
Esempio: 10 01

10 - 11 - 01

10 - 00 - 01

Quindi, per evitare comportamenti non previsti dalla T.d.T.


bisogna assicurarsi che:
Simboli di ingresso consecutivi e stati adiacenti differiscano per il valore di
un solo bit, cio siano codificati con configurazioni binarie a distanza 1

Reti sequenziali asincrone (struttura)


Circuito combinatorio

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)

Esempio di T.d.T. malata se riferita a RSA


x1 x0

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?

Esempio: Si vuole analizzare il


LATCH SR a NOR e si vuole
Capire se utile rendere
disponibili allesterno entrambe
le uscite dei NOR

Analisi del latch SR a NOR (1 & 2)


1. Si taglia idealmente la retroazione, si identifica la
variabile di stato q e si considera la variabile di uscita X
S

2) Si scrivono le espressioni NOR della rete combinatoria a


tre ingressi e due uscite cos ottenuta:
F:
X=Sq
G:
Q = (S q) R

Analisi del latch SR a NOR (3)


3) Si trasformano le espressioni NOR in espressioni AND,
OR, NOT e se ne riportano le valutazioni su una mappa.

X=Sq
= (S + q) = S. q

SR
q

00 01 11 10
0 0,1 0,1 0,0 1,0

1 1,0 0,0 0,0 1,0


Q = (S q) R
= ((S + q) + R)
= (S + q) . R

Q,X

Analisi del latch SR a NOR (3)


4) Si eliminano le valutazioni fuori dal dominio delle due
funzioni (la condizione di ingresso S = R = 1 per ipotesi
impossibile) e si evidenziano sulla mappa le quattro
situazioni di stabilit.
SR
q
00 01 11 10
0 0,1 0,1 0,0 1,0

1 1,0 0,0 0,0 1,0


Q,X
Conclusioni: In ogni situazione di stabilit si ha X = Q.
Chi deve impiegare il latch pu cos disporre della forma
vera e complementata del bit in memoria.

Latch SR a NAND
SR
SR
01
10
11

QX
1 0
0 1
Q Q

1 1,0 0,1 1,1 1,0


analisi

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

Si noti che il latch SR a NAND poteva essere


immediatamente dedotto dal latch SR a NOR
applicando il principio di dualit!

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 - grafo degli stati


x, z
0,1

1,0

1,-

0,0

0,0

1,1

1,-

0,1

Stabilit - Ogni stato stabile per lingresso che lo genera.


Indifferenza sulluscita (quando commuta)
- La modifica di uscita pu essere rinviata al raggiungimento
della stabilit.

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

In ogni colonna si raggiunge sempre una condizione di stabilit


(altrimenti la rete oscillerebbe). Se lo stato futuro sempre uno
stato stabile per lingresso con cui viene raggiunto allora siamo in
presenza di un T.d.F. in modo fondamentale

3 - codifica e tabella delle transizioni


x
y2
y1,y2
0
1
0
1
y1
a 00 00,1
01,b 01 11,0
01,0
0
b
a
g 11
11,0
10,d 10
00,1
10,1
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

4 Mappe delle funzioni di stato futuro e di uscita


(G ed F)
Ipotesi: si desiderano reti minime di tipo SP
x

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

Y1 = x.y2 + x.y1 + y2.y1 Y2 = x.y2 + x.y1 + y2.y1

1 -

z = y2

Coperture ridondanti - Per eliminare a priori il pericolo di alea


statica (causato dal probabile sfasamento tra x e x) ogni
coppia di 1 adiacenti deve essere coperta da almeno un RR.

5 schema logico e retroazioni


x
x.y1
Y1

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

Una memoria binaria con controllo della


memorizzazione diverso rispetto al LATCH SR
Latch CD - Memoria binaria in cui:
1. il valore 1 di un segnale C individua quando scrivere
2. il valore contemporaneo di un segnale D dice cosa scrivere.
Trascodifica da CD a SR

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

Y = S + /R. y = CD + /(C. /D). y= CD + (/C + D) y

Mappa dello stato futuro del LATCH CD


Y = S + /R. y = CD + /(C. /D). y= CD + (/C + D) y
Quindi:
Y = CD + /C y + D y
Ove D y una copertura ridondante che assicura a Y
lassenza di alee statiche
CD
y

00 01 11 10
0 0
0 1 0
1 1

Q=y
Q = /y

0
Le uscite sono quelle del
LATCH SR

TdT e DDS del LATCH CD

Si lascia allo studente il compito di:


1. ricavare T.d.T e D.D.S. del Latch CD
2. Verificare che le condizioni di corretto funzionamento della
RSA sono soddisfatte se si assicura che gli ingressi cambino
sempre uno alla volta

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

Il latch CD a NAND ed a NOR


C

C
S

Quando C = 1 il valore presente su D


si propaga allinterno della rete prima di diventare il valore
del segnale Q.
Il comando che ha generato un nuovo valore di Q deve mantenersi
fino al raggiungimento della stabilit sullanello di retroazione.

I tempi di set-up, di hold e di risposta


Larghezza dellimpulso di campionamento - Il segnale di comando C deve restare
attivo per un tempo non inferiore alla durata minima dei segnali S e R in ingresso al latch SR
(vedi il parametro tw min nel data-sheet del LATCH SR). Inoltre il bit da memorizzare deve
soddisfare i tempi di set up e hold rispetto al fronte di discesa di C

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

Una quarta realizzazione del LATCH CD


CD
q 00 01 11 10
0
0 0 1 0
1
1 1 1 0
Q
Un ritardo che
elimina gli
impulsi di durata
inferiore al ritardo
stesso si chiama
RITARDO
INERZIALE

Q = C.D + C.q

D
Ritardo
INERZIALE

Multiplexer

Il ritardo inerziale dei due NOT elimina il glitch (impulso spurio)


generato dallalea statica del MUX

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

Dimostrare che lo schema sopra indicato ha lo stesso comportamento


di quello precedentemente ricavato per la lampada da tavolo.
Suggerimento:
Y1 = x.y2 + x.y1 + y2.y1 = x.y2 + (x + y2).y1 = S1 + R1.y1
Y2 = x.y2 + x.y1 + y2.y1 = x.y1 + (x+ y1).y2 = S2 + R2.y2
z = y2

Qn+1 = Dn
I

CK

4
Flip-flop D

yi
/Q

RSA con due variabili di


stato, quindi con 4 stati

PREMESSA: Si pu realizzare la rete che controllo la lampada


tavolo con un solo latch CD?
No, la rete ha 4 stati, il latch CD ne mette a disposizione 2 INFATTI:

Q Q se x = 1
(la rete oscilla)
Q Q se x=0

Se x = 1 dura pi del tempo di


risposta si verificano diverse
commutazioni di Q.

x
Q

Se x = 1 durasse meno del tempo di risposta


e pi del tempo tw-min, si avrebbe una sola
oscillazione, ma soddisfare questo requisito
praticamente impossibile.

No!

Irrealizzabile !!

Con due latch in cascata (4 stati) si pu eliminare loscillazione se


si pilotano i due LATCH CD con segnali F1 e F2 in controfase.
Bisogna per riuscire a trasformare la variabile di ingresso x
(cio il pulsante della lampada) in F1 e F2
F1 : QM QS
F2 : QS QM

x
F1

F1

C
D

QM

F2

QM
QS
(lampada)

F2

Qs

QS

QM

Generazione delle fasi F1 e F2


a partire dalla variabile di ingresso x
T

Master

C
D

trasparente

Q
QM

Slave
memorizza

Master
memorizza

Slave
Copia

Master
trasparente

Slave
memorizza

(trasparente)

QS

Ma quando entrambi i LATCH sono


trasparenti la rete potrebbe oscillare.
Questa situazione va studiata

x
x

Il flip-flop D master-slave con


campionamento sul fronte negativo

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

Il flip-flop D master-slave con


campionamento sul fronte positivo
Qn+1 = Dn
I
CK

c
d

CK

M
I

/Q

Q
yi

YM = cd + /c . ym + d.ym = /CK I + CK . ym + I .ym


YS = cd + /c . ys + d. ys = CK ym + /CK . ys + ys.ym

In blu i termini anti-alea

/Q

RSA con due variabili di stato,


quindi con 4 stati

ANALISI DEL FF-D

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

Tabella delle transizioni (1/2)


Con riferimento alle mappe del lucido precedente:
CK I

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)

Tabella delle transizioni (2/2)


Ulteriore analisi della T.d.T.
CK I

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

Diagramma degli stati


Se in 00
sono stabile
con
ingresso 11
perch ci
sono
arrivato da
10, infatti la
transizione
01-11
non pu
verificarsi
nella stato
00 perch
con ingresso
01 la rete
cambia stato

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

Le espressioni e quindi la T.d.T. , il d.d.s. e lequazione caratteristica sono


identiche rispetto al caso precedente.
Cambia solo lallineamento del clock dello slave, che ora in ritardo rispetto
a quello del master

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)

Il flip-flop D master-slave: caso in cui il disallineamento si pu trascurare


perch il tempo di risposta del master maggiore dellintervallo in cui
entrambi i LATCH CD sono trasparenti
CS(t+2) = CK(t)

CM
Trasp.

M 0

M 0

tsu th

QM
U= QS

Il clock esterno in anticipo rispetto a entrambi i clock dei due LATCH CD

I tempi di set-up, di hold e di risposta

Se sono soddisfatti i tempi di set-up, di


hold (requisiti) allora il FF-D reagisce
con il tempo di risposta max anchesso
indicato nel data-sheet

Fronte del
clock

Segnale
D
set-up

hold

Segnale
Q
risposta

Il FF-D ha anche due


ingressi asincroni!

Comando
asincrono

Comando
sincrono

/PR
/CL

Q
/Q

Requisiti per il corretto funzionamento del FF-D

Funzioni del FF-D edge triggered


1. Il FF-D campiona e copia sulluscita il valore della variabile di
ingresso D nellistante del fronte positivo di CK
2. Il FF-D una memoria da un bit (il valore campionato viene
mantenuto fino al prossimo fronte positivo di CK
1. Se il CK un segnale periodico di periodo Tck e il segnale di
ingresso D sincrono con il fronte positivo del CK (cio stato a
sua volta generato a partire da un precedente fronte positivo di
CK), allora il FF-D ritarda il segnale di ingresso di Tck (da cui il
nome FF-D, ove D sta per Delay)
D

Q
/Q

Qn+1 = Dn
Delay!!

Generazione di ritardi precisi rispetto a segnali SINCRONI


Delay = n*Tck con n FF-D in cascata
I

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

Impiego dei FF-D


nelle Reti Sequenziali Sincrone
i

u
F

s*

Qn+1 = Dn

Q
/Q

CK (f = fck)

Nelle RSS si inserisce un FF-D su ogni


variabile in retroazione: su D si porta
lo stato futuro e su Q si ritrova lo stato
presente con un ritardo pari a Tck
Si capisce immediatamente che nelle RSS non
pi necessario soddisfare i requisiti di corretto
funzionamento delle RSA (vedi lucido 18) in
quanto il FF-D interrompendo la retroazione
consente alle variabili di stato futuro di
stabilizzarsi prima di essere trasferite agli
ingressi della rete G sotto forma di stato presente
E sufficiente che il prossimo fronte positivo di
clock arrivi dopo che tutti i transitori della rete G
si sono estinti

Complessit e Componenti

Un altro flip-flop (ormai poco utilizzato): il flip-flop JK


Jn
0
hold
0
1
set
1
reset 0
0
1
toggle
1

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.

Tracciare i due schemi logici

APPENDICE ALLA SEZIONE SULLE RSA


Incipit della costruzione del
Grafo degli Stati del FF-D edge triggered
(esempio di grafo degli stati di RSA)

Costruzione del dds del Flip Flop D


edge triggered (rete asincrona che
campiona con un fronte di salita)
CD,Q
01, 0

Il fronte di salita di C
campiona D=1 e ne
ordina la memorizzazione

11, 1

A
00, 0

10

Per ipotesi impossibile


che D vari durante un
fronte di salita di C

D va a 0 prima del fronte di


C. Q non deve cambiare
(segue)

Il grafo degli stati del FF-D positive edge triggered

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

Luca Faggianelli lfaggianelli@arces.unibo.it

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

Diagramma degli stati di un contatore binario per 2n


Contatore
x2^n

OUT
n

Se luscita del contatore a n bit ( OUT[n-1 .. 0] ) le configurazioni duscita


sono 2^n, quindi il valore massimo contato 2^n - 1.

2^n-1

2^n-2

Esempio: contatore binario per 24


In caso di contatore per 16 si scriver:

k +1

= ( S k + 1 ) mod 16

Dunque raggiunta la configurazione 1111, il contatore ricomincia a contare


da 0.
CLK
Q R4 D
4

Quando il segnale CLK passa


da 0 a 1 (fronte di salita) i 4 FFD
del registro da 4 bit R4 leggono
il valore su D e lo portano in
uscita ( su Q). Tra un fronte
positivo del clock e il fronte
successivo il valore di Q non
cambia, mentre invece il valore
di D[3..0] si incrementa di 1 per
predisporre gli ingressi del
registro in attesa del prossimo
fronte positivo di clock.
4

Contatore binario x8 (3 bit)


Vediamo ora come realizzare un contatore binario da 3 bit.
Ci servir un sommatore da 3 bit, che potrebbe essere realizzato con 3 full adder e 3
Flip Flop D (ognuno dei quali memorizza un bit) come da figura. Si noti che il CI
posto a 0 e loperando B posto a 001. Lo stesso risultato si pu ottenere ponendo
CI a 1 e B a 000. Questo consente di semplificare grandemente la rete combinatoria
eliminando la logica che elabora loperatore B: si possono dunque sostituire i 3
FULL-ADDER con 3 HALF-ADDER

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

Segnali di comando di un contatore


Il contatore binario x8 della slide precedente non pu essere controllato:
appena acceso, il contatore inizia a contare incrementandosi su ogni fronte
positivo del clock (quindi con frequenza fck se fck la frequenza del clock).
Il contatore diventa pi interessante se possiamo controllare la modalit di
conteggio con opportuni comandi. I comandi dovranno essere SINCRONI,
in modo da assicurare che, se la frequenza di clock stata ben calcolata,
sia soddisfatto il requisito sul tempo di set up minimo dellingresso D dei
FF rispetto al fronte positivo del Clock. Si possono ipotizzare, ad esempio, i
seguenti comandi:
RESET Il conteggio riparte da zero (qualunque sia il valore di conteggio corrente)
ENABLE Il contatore conta cio incrementa il suo valore in risposta ai fronti
positivi del clock solo se il comando di ENABLE attivo, altrimenti il contatore
mantiene il suo valore; ipotizziamo che il reset prevalga sullenable
UP/DOWN# Se il contatore realizzato in modo da poter contare sia in avanti che
allindietro (cio se pu sia incrementarsi sia decrementarsi in risposta ai fronti
positivi del clock), allora questo comando indica il senso del conteggio (1 in avanti e
0 allindietro)
LOAD Il contatore viene inizializzato con un valore arbitrario inviato ad appositi
6
ingressi (quindi il contatore pu partire anche da un valore diverso da zero)

Segnali di comando di un contatore


(un esempio)
EN
UP/DOWN#
RESET#
LOAD
LD[2..0]

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

ove I rappresenta lo stato


presente (il valore del contatore) e
luscita U il prossimo valore del
contatore (determinato dagli halfadder)

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

X = X [ n 1..0 ]; 2C(X) = complemento a 2 di X


X k = X + 2C (k) = X + ( k + 1 )

Se X un numero binario senza segno di n bit si ha:

..00 1 + 1 ) = X + 1{
..110 + 1 = X + 11
..2
111
X 1 = X + ( 0{
3
n1

n1

In pratica per sottrarre uno, basta sommare la configurazione di tutti 1,


quindi se n=3 abbiamo che:

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

Conteggio fino a X<2^n


Una funzione molto utile nei contatori (specialmente in quelli a molti bit) il
conteggio fino ad un numero X diverso dal valore massimo di conteggio.
Una soluzione pu essere quella di
comandare lingresso di reset
sincrono con una rete che decodifichi
(cio riconosca) conosca il numero X.

RST

CNT

3
X
1

Questa soluzione prevede dunque linserimento di una rete aggiuntiva (il


mintermine m(X): quasta una buona soluzione se il numero X fisso, ma
come possiamo invece agire nel caso di X variabile? Una soluzione pi
flessibile quella di partire da X e arrivare a 0 (invece che da 0 a X). Il che
possibile grazie alla modalit di conteggio inversa (UP/DOWN=0) e al
comando di LOAD.
EN
1
COUNT
Raggiunto il valore
UP/DOWN
0
COUNT=0, al clock
3
successivo il contatore viene
LD
X
riinizializzato col valore X
LOAD
END_COUNT
Quale sar lespressione di
14
END_COUNT?

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

Il registro da n bit edge-triggered


n

Out[n-1..0]

Qn-1..0

clock

Registro da n bit

In[n-1..0]

Qn-1

Struttura del registro da n bit

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

Questo registro ha 2n + 3 pin:


2 di alimentazione, 1 per il clock
n di ingresso (stato futuro) ed
n di uscita (stato presente)
2

Il registro da n bit edge-triggered con uscita


tristate
Out[n-1..0]

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

Questo registro ha 2n + 4 pin:


2 di alimentazione,
n di ingresso ed n di uscita
1 per il clock,
1 per il controllo delle uscite tristate
3

Il registro: segnale di Load/Hold


load
clock
In[n-1..0]

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#

Questo registro viene aggiornato in corrispondenza dei fronti


positivi di clock solo se L/H# si mantenuto stabile a 1 prima
del fronte del clock almeno per il tempo di set up minimo

DOMANDE:

Come fatto un registro da 8 bit con


ingresso di load (detto anche enable) e
uscita tristate?
In quali situazioni serve?

Il registro a scorrimento (verso destra)


LEFT_IN

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

Registro a scorrimento (verso sinistra)


RIGHT_IN

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

Universal Shift Register: funzionamento


A1..0
A1..0
A1..0
A1..0

=
=
=
=

00
10
01
11

:
:
:
:

il registro mantiene il valore corrente (HOLD)


scorrimento verso destra
scorrimento verso sinistra
il registro carica il valore presente su I (LOAD)

OE = 1  tutte le uscite sono tristate


Out[n-1..0]
n
LEFT_IN
RIGHT_IN
clock

MSB
LSB

Qn-1..0

Universal Shift Register da n-bit

In-1..0

EN#

OE
A1..0

MODE[1..0]

n
In[n-1..0]
8

Universal Shift Register: struttura


Qn-1..0

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

Sintesi delle variabili di stato futuro con Mux


realizzati con DEC e buffer tristate
Tabella della verit

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

Universal Shift Register con segnali di


controllo indipendenti
Out[n-1..0]
LEFT_IN

Qn-1..0

MSB
LSB

RIGHT_IN
clock

USR (Universal Shift Register)


da n-bit

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

Se le variabili di stato futuro


sono realizzate come indicato in
questo lucido, con quattro
segnali di controllo indipendenti,
cosa succede se 2 o pi segnali
di controllo sono attivi (valore
logico 0) contemporaneamente?
 si pu verificare un conflitto
logico ed elettrico sulle uscite
dei buffer tristate
11

Come possibile cautelarsi?


Con un priority encoder seguito da un decoder!
HOLD

LEFT

RIGHT

LOAD

R.C.: una sola uscita alla volta pu


essere attiva (in L.N: valore 0)

Y0

Y1

Y2

Y3
Ii

qi+1

HOLD

LEFT

RIGHT

LOAD

Di
?

qi-1
A0

A1

qi
DEC

Y0 Y1 Y2 Y3

12

Si analizzi a fondo questa TdV


HOLD#

LEFT#

RIGHT#

LOAD#

A1

A0

HOLD

LEFT

RIGHT

LOAD

HOLD

HOLD

HOLD

Nellesempio qui sopra in caso di due o pi ingressi attivi simultaneamente


lencoder genera la configurazione 00, quindi il decoder imporr la condizione
di hold; quindi un erroneo controllo del registro a traslazione tiene il registro
fermo senza che insorgano conflitti logici o elettrici
HOLD#
LEFT#
RIGHT#
LOAD#

E
N
C

A0
A1

Y0
D
E
C

Y1
Y2
Y3
13

Addizione: sequenziale o combinatoria


Macchina sequenziale

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

s(t0) = riporto iniziale


An-1
Bn-1

CI
S
FA
A
B
CO

Sn-1
CO

n bit Adder

14

ESEMPI DI IMPIEGO DEI REGISTRI

15

Rete sequenziale sincrona per laddizione


(con ADDER da n bit)
n

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:

TCK TRmax + TADDERmax + TSUmin , dove:


TRmax (tempo di risposta massimo del registro)
TADDERmax (ritardo massimo delln-bit adder)
TSUmin (tempo di set-up minimo del registro)

Si disegnino le forme
donda che
Illustrano il funzionamento
di questa rete!!

Il sistema funziona come segue:


Ad ogni clock si caricano due operandi sui registri di ingresso e si carica sul registro di uscita la somma
degli operandi caricati sui registri di ingresso in corrispondenza del precedente impulso di clock

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:

Su a vengano inviati ad ogni clock i bit di un numero binario An-1..0 di n bit,


partendo dal bit meno significativo A0

Su b vengano inviati ad ogni clock i bit di un numero binario di Bn-1..0 di n bit,


partendo dal bit meno significativo B0

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

Una volta risolto questo esercizio si passi alla prossima slide!


17

Rete sequenziale sincrona per laddizione


(con un F.A.)
n

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

Potrebbero piacerti anche