Reti Logiche 1 - uniroma2.it · • individuare gli ingressi e le uscite ... 2. Formulare il...

101
Reti Logiche 1 Prof. B. Buttarazzi A.A. 2009/2010 MUX-DEMUX-ROM-PLA

Transcript of Reti Logiche 1 - uniroma2.it · • individuare gli ingressi e le uscite ... 2. Formulare il...

Reti Logiche 1

Prof. B. Buttarazzi

A.A. 2009/2010

MUX-DEMUX-ROM-PLA

Sommario

Sintesi di Reti Combinatorie mediante

•Multiplexer

21/06/2010 Corso di Reti Logiche 2009/10 2

•Multiplexer

•Demultiplexer

•ROM

•PLA

Metodo generale di sintesi di reti combinatorie

1. Capire il problema• definire cosa deve fare il circuito• individuare gli ingressi e le uscite• disegnare uno schema a blocchi

21/06/2010 Corso di Reti Logiche 2009/10 3

• disegnare uno schema a blocchi

2. Formulare il problema con una tabella di verità.

3. Scegliere il metodo opportuno di semplificazione(mappe di Karnaugh, QMC)

I metodi di sintesi fin qui esposti, basati sugli algoritmi di

Karnaugh, Quine Mc Cluskey normalmente sono chiamati

metodi di sintesi a 2 livelli ( in quanto si perviene ad una rete

costituita da 2 soli livelli di porte), permettono di progettare

qualsiasi funzione booleana usando porte elementari

21/06/2010 Corso di Reti Logiche 2009/10 4

qualsiasi funzione booleana usando porte elementari

(componenti SSI - (Small Scale Integration))

Solitamente questo approccio si segue per la progettazione di circuiti

semplici (numero di porte limitato < 10)

Per la progettazione di circuiti più complessi si utilizzano

circuiti programmabili MSI e LSI (Medium, Large Scale

Integration).

21/06/2010 Corso di Reti Logiche 2009/10 5

Tali circuiti, come apparirà chiaro in seguito, consentono di realizzare funzioni

logiche combinatorie senza effettuare operazioni di minimizzazione sulle funzioni.

Il Multiplexer è un circuito combinatorio costituito da 2n linee di

ingresso (I0, I1, I2,I3,…) + n linee di selezione (ingressi di indirizzo)

(S0, S1, Si2, .., Sn-1) e una singola uscita U.

Questo circuito ha la funzione, mediante le linee di selezione, di

selezionare una delle 2n linee di ingresso , e di fornire, sulla uscita, il

Multiplexer

21/06/2010 Corso di Reti Logiche 2009/10 6

selezionare una delle 2n linee di ingresso , e di fornire, sulla uscita, il

segnale corrispondente alla linea selezionata.

Tabella di verità del multiplexer a 4 ingressi (I0, I1, I2,I3)

2 segnali di controllo (s1, s0)

Segnali di

selezione uscita

S1 S0 U

21/06/2010 Corso di Reti Logiche 2009/10 7

0 0 I0

0 1 I1

1 0 I2

1 1 I3

Tabella di verità del multiplexer a 4 ingressi (I0, I1, I2,I3)

2 segnali di controllo (s1, s0)

Segnali di

selezione uscita

S1 S0 U

Se è stata selezionata la linea 00

avremo in uscita I0.

Se è stata selezionata la linea 01

avremo in uscita I1….

21/06/2010 Corso di Reti Logiche 2009/10 8

0 0 I0

0 1 I1

1 0 I2

1 1 I3

Tabella di verità del multiplexer a 4 ingressi (I0, I1, I2,I3)

2 segnali di controllo (s1, s0)

Segnali di

selezione uscita

S1 S0 U

Se è stata selezionata la linea 00

avremo in uscita I0.

Se è stata selezionata la linea 01

avremo in uscita I1….

21/06/2010 Corso di Reti Logiche 2009/10 9

0 0 I0

0 1 I1

1 0 I2

1 1 I3

E’ facile realizzare un circuito logico che implementi questa funzione infatti (vedi prossime

slides), basta mettere in AND con ciascuna linea di ingresso (i0, i1, i2, ..in) il segnale di

controllo corrispondente e collegare le uscite delle porte AND agli ingressi di una porta OR.

Segnali di

I3

I2

I0

I1

U

1

2

3

0

Dati in input

Output selezionato

MUX

21/06/2010 Corso di Reti Logiche 2009/10 10

Segnali di selezione

Segnali di

selezione uscita

S1 S0 U

0 0 I0

0 1 I1

1 0 I2

1 1 I3

S1 S0

0

Segnali di

I3

I2

I0

I1

U

1

2

3

0

Dati in input

Output selezionato

MUX 4-1

multiplexer 22*1ovvero 4 linee in ingresso2 variabili di controllo

L’uscita della porta OR

porta solo il segnale

della linea di ingresso

selezionata.

21/06/2010 Corso di Reti Logiche 2009/10 11

Segnali di selezione

Segnali di

selezione uscita

S1 S0 U

0 0 I0

0 1 I1

1 0 I2

1 1 I3

S1 S0

02 variabili di controllo1 uscita

In base allo schema disegnato si può ricavare l’espressione della funzione realizzata che risulta:

u = s1’·s0’·i0 + s1’·s0·i1 + s1’·s0·i2 + s1·s0·i3 .

Questa espressione scritta più sinteticamente risulta:

∑∑∑∑ −−−−====

12n

Imu

21/06/2010 Corso di Reti Logiche 2009/10 12

∑∑∑∑ −−−−

====

====12

0k kk

n

Imu

Un multiplexer dovendo realizzare la funzione:

Può essere implementato con:• tanti AND quanti sono i mintermini del segnale di controllo (in

realtàdevono anche essere presenti anche le porte NOT per generare tutti i termini negati delle variabili)

∑∑∑∑−−−−

========

12

0k kk

n

imu

21/06/2010 Corso di Reti Logiche 2009/10 13

Ogni AND ha n+1 ingressi: - n variabili di controllo ( che formano il mintermine)- uno dei 2n segnali di ingresso.

• una sola porta OR che ha in ingresso i segnali di uscita delle 2n porte AND

L’uscita sulla porta OR è ad ogni istante solo quella relativa alla porta AND abilitata.

Ad esempio, con il codice

di selezione 01 si abilita la

porta di ingresso numero 1

quindi il segnale

disponibile all'uscita sarà i

Multiplexer 4-1

I3

I2

I

I1

U

1

2

3

21/06/2010 Corso di Reti Logiche 2009/10 14

disponibile all'uscita sarà i1

Multiplexer a 4 ingressi

S1 S0

I0

0

invece con il codice di

selezione 11 si abilita la

porta di ingresso numero 3,

e quindi all'uscita sarà

Multiplexer 4-1

I3

I2

I1

U

1

2

3

21/06/2010 Corso di Reti Logiche 2009/10 15

e quindi all'uscita sarà

disponibile il segnale i3.

Multiplexer a 4 ingressi

S1 S0

I0

1

0

In figura è mostrata una possibile implementazione di un

multiplexer 21 *1

ovvero 2 segnali in ingresso ,1 variabile di controllo e 1

uscita

Multiplexer 2-1

21/06/2010 Corso di Reti Logiche 2009/10 16

uscita

U

S

I0

I1

Una rappresentazione semplificata del

MultiplexerI3

I2

I1

I0

I3

I2

I

U2

3

Dati in input

U

21/06/2010 Corso di Reti Logiche 2009/10 17

S1 S0

S1 S0

I0

I1

1

0 A

S1

D

B

C

S0

U

0 0

Nella rappresentazione semplificata il

Multiplexer è assimilabile ad

commutatore a posizioni multiple

(selettore - la cui posizione dipende dai

bit di controllo).

Multiplexer

A

D

B

C

U

21/06/2010 Corso di Reti Logiche 2009/10 18

bit di controllo).

Questa rappresentazione evidenzia la

funzione del multiplexer come

convertitore parallelo-seriale.

S1

D

S0

0 0

MULTIPLEXER

come generatore di funzioni

Il multiplexer, può essere utilizzato per la sintesi di

funzioni booleane generiche.

21/06/2010 Corso di Reti Logiche 2009/10 19

x1 x2 x3 f

0 0 0 10 0 1 1

0 1 0 0

0 1 1 11 0 0 0

1 0 1 1

1 1 0 1

I0

I1

I2

I3

I4

I5

I6

1

1

0

1

0

1

1

21/06/2010 Corso di Reti Logiche 2009/10 20

1 1 0 1

1 1 1 1

f = Σm(0,1,3,5,6,7)

I6

I7

1

1

Basta forzare sugli ingressi del multiplexer i valori, che

corrispondono alla tabella di verità della funzione che si

vuole implementare in uscita e utilizzare le variabili di

controllo come variabili di ingresso.

x1 x 2 x3

Sintesi con Multiplexer

1) Si sceglie un MUX con un numero di vie pari alle

righe della tabella della verità da realizzare.

2) Si impone su ciascuna via o il valore “0” o il valore “1”

Il procedimento di sintesi mediante multiplexer si articola nei

seguenti passi:

21/06/2010 Corso di Reti Logiche 2009/10 21

3) Si collegano gli ingressi di selezione ai segnali che corrispondono

alle variabili della funzione.

2) Si impone su ciascuna via o il valore “0” o il valore “1”

seguendo le indicazioni fornite dalla tabella di verità.

ESEMPIO: Funzione majority

2/1),...,(1

1 nxxxfn

i

in >⇔= ∑=

x1 x2 x3 f

0 0 0 0

21/06/2010 Corso di Reti Logiche 2009/10 22

0 0 0 0

0 0 1 0

0 1 0 0

0 1 1 1

1 0 0 0

1 0 1 1

1 1 0 1

1 1 1 1

f = Σm(3,5,6,7)

Sintesi della Funzione Majority con Multiplexer

F = ΣΣΣΣ3 m (3,5,6,7)

I0

I0

+Vcc

•Gli n segnali di ingresso della

funzione booleana sono stati

collegati agli ingressi di controllo

del MUX, mentre gli N ingressi

principali sono stati

21/06/2010 Corso di Reti Logiche 2009/10 23

0

I1

I2

I3

I4

I5

I6

I7

0

0

1

0

1

1

1

x1 x 2 x3GND

principali sono stati

individualmente cablati al valore

"0" o "1" (corrispondenti ad

esempio ai valori della massa e

dell'alimentazione), secondo

quanto specificato dalla tabella di

verità.

Osservazione

Con un multiplexer 2n*1 possiamo implementare una qualsiasi

Funzione di n variabili

21/06/2010 Corso di Reti Logiche 2009/10 24

In realtà con un mltiplexer 2n*1 (aggiungendo altre porte) si

possono realizzare anche funzioni booleane di n+1 variabili

x1 x2 x3 f

0 0 0 0 I0

I0

Ad esempio osservando la funzione rappresentata si può osservare

che le prime 4 righe della funzione hanno x1=0 e le rimanenti x1=1,

quindi anziché realizzare la funzione con un MUX 23*1

21/06/2010 Corso di Reti Logiche 2009/10 25

0 0 0 00 0 1 0

0 1 0 0

0 1 1 11 0 0 0

1 0 1 1

1 1 0 1

1 1 1 1

I1

I2

I3

I4

I5

I6

I7

x1 x 2 x3

0

0

1

0

1

1

1

U

x1 x2 x3 f

0 0 0 0

0 0 1 0

potremmo utilizzare 2 MUX 22*1 ciascuno che realizza metà funzione

(M1 e M2) e prevedere in uscita M1 se x1=0 e M2 se x1=1.

A tal fine basta mettere, in AND M1 con x1’ e M2 con x1 e fare l’OR

dei due valori ottenuti.

10

13

12

11

2 *12

M1X1 X2 X3

f

21/06/2010 Corso di Reti Logiche 2009/10 26

0 0 1 0

0 1 0 0

0 1 1 11 0 0 0

1 0 1 1

1 1 0 1

1 1 1 1

x 1 f

0 M1

1 M2

10

13

12

11

2 *12

M2

Il Demultiplexer è un circuito combinatorio costituito da n+1 linee di

ingresso, una (y) che porta il segnale e n (s0,s1.. sn-1 ) che fungono

da linee di controllo per selezionare una delle 2n linee di uscita

(O0,O1,O2,….)

La sua funzione è inversa a quella del multiplexer pertanto riceve

Demultiplexer

21/06/2010 Corso di Reti Logiche 2009/10 27

in ingresso un segnale y e seleziona tramite i segnali di controllo la

linea di uscita su cui distribuire il segnale.

Il demultiplexer a fronte di ciascuna delle 2n diverse configurazioni di controllo

attiva una sola delle 2n linee di uscita - quella relativa al corrispondente

valore decimale - compreso fra 0 e 2n-1) .

(O0,O1,O2,….) (che rappresentano la traduzione decimale della

combinazione binaria che il circuito riceve in ingresso nelle linee di

controllo)

21/06/2010 Corso di Reti Logiche 2009/10 28

Ad esempio nel caso n=3 lo schema è il seguente.

I0

I

y

21/06/2010 Corso di Reti Logiche 2009/10 29

I1

I2

I3

I4

I5

I6

I7

x1

x2

x3

I0

I

y

Quindi se ad esempio in ingresso abbiamo 000 viene attivata

l’uscita I0 come indicato in figura

y

21/06/2010 Corso di Reti Logiche 2009/10 30

I1

I2

I3

I4

I5

I6

I7

x1

x2

x3

I0

I

y

Se invece in ingresso abbiamo 011 verrà attivata l’uscita I3 come

indicato in figura . In definitiva, qualunque sia la configurazione di

ingresso viene attivata una sola linea di uscita.

21/06/2010 Corso di Reti Logiche 2009/10 31

I1

I2

I3

I4

I5

I6

I7

x1

x2

x3

y

Tabella di verità di un demultiplexer a 3 ingressi ( 8 funzioni di uscita)

X1 X2 X3 0 1 2 3 4 5 6 7

0 0 0 y 0 0 0 0 0 0 0

0 0 1 0 y 0 0 0 0 0 0

0 1 0 0 0 y 0 0 0 0 0

0 1 1 0 0 0 y 0 0 0 0

21/06/2010 Corso di Reti Logiche 2009/10 32

Nel Demultiplexer è verificata la relazione

n=log2N n ingressi di controllo=3 e N uscite =8

1 0 0 0 0 0 0 y 0 0 0

1 0 1 0 0 0 0 0 y 0 0

1 1 0 0 0 0 0 0 0 y 0

1 1 1 0 0 0 0 0 0 0 y

Tabella di verità di un demultiplexer a 3 ingressi con Y=1

( 8 funzioni di uscita)

X1 X2 X3 0 1 2 3 4 5 6 7

0 0 0 1 0 0 0 0 0 0 0

0 0 1 0 1 0 0 0 0 0 0

0 1 0 0 0 1 0 0 0 0 0

0 1 1 0 0 0 1 0 0 0 0

21/06/2010 Corso di Reti Logiche 2009/10 33

Nel Demultiplexer è verificata la relazione

n=log2N n ingressi di controllo=3 e N uscite =8

1 0 0 0 0 0 0 1 0 0 0

1 0 1 0 0 0 0 0 1 0 0

1 1 0 0 0 0 0 0 0 1 0

1 1 1 0 0 0 0 0 0 0 1

Dalla tabella risulta ovvio che per fare in modo che dalla porta

logica la cui uscita corrisponde alla linea 0 deve venir fuori 1 solo

se tutti e 3 gli ingressi sono nulli è necessario usare il seguente

circuito (una porta AND dove arrivano gli ingressi negati).

Demultiplexer

21/06/2010 Corso di Reti Logiche 2009/10 34

Linea 0

X1 X2 X3

In modo del tutto analogo si usa il circuito seguente per collegare

agli ingressi la logica corrisponde alla linea 1.

Demultiplexer

21/06/2010 Corso di Reti Logiche 2009/10 35

Linea 1

X1 X2 X3

Riutilizzando le stesse porte Not

per tutte le linee,

nel caso n=2 otteniamo lo

Demultiplexer a 4 uscite

Demultiplexer

2

3O3

O2

21/06/2010 Corso di Reti Logiche 2009/10 36

nel caso n=2 otteniamo lo

schema.

S1 S0

1

0

O1

O0

DEMULTIPLEXERIl Demultiplexer viene tipicamente usato come decodificatore.

E’ noto che con n bit è possibile rappresentare 2n diverse

informazioni.

Quindi con un Demultiplexer a n ingressi posso realizzare un

decoder di 2n informazioni

21/06/2010 Corso di Reti Logiche 2009/10 37

decoder di 2n informazioni

21/06/2010 Corso di Reti Logiche 2009/10 38

DEMULTIPLEXER come

generatore di minterminiUn demultiplexer (n, 2n ) con n ingressi di controllo e 2n uscite

è di fatto un generatore di mintermini in quanto realizza i 2n

distinti prodotti di n variabili.

I0

I

x1’x2’x3’

x1’x2’x3

21/06/2010 Corso di Reti Logiche 2009/10 39

I1

I2

I3

I4

I5

I6

I7

x1

x 2

x3

x1’x2’x3

x1’x2x3’

x1’x2x3

x1x2’x3’

x1x2’x3

x1x2x3’

x1x2x3

DEMULTIPLEXER come

generatore di minterminiUn demultiplexer (n, 2n ) con n ingressi di controllo e 2n uscite

è di fatto un generatore di mintermini in quanto realizza i 2n

distinti prodotti di n variabili.

I0

I

x1’x2’x3’

x1’x2’x3X1 X2 X3 0 1 2 3 4 5 6 7

21/06/2010 Corso di Reti Logiche 2009/10 40

I1

I2

I3

I4

I5

I6

I7

x1

x 2

x3

x1’x2’x3

x1’x2x3’

x1’x2x3

x1x2’x3’

x1x2’x3

x1x2x3’

x1x2x3

X1 X2 X3 0 1 2 3 4 5 6 7

0 0 0 1 0 0 0 0 0 0 0

0 0 1 0 1 0 0 0 0 0 0

0 1 0 0 0 1 0 0 0 0 0

0 1 1 0 0 0 1 0 0 0 0

1 0 0 0 0 0 0 1 0 0 0

1 0 1 0 0 0 0 0 1 0 0

1 1 0 0 0 0 0 0 0 1 0

1 1 1 0 0 0 0 0 0 0 1

ESEMPIO: Funzione majority

2/1),...,(1

1 nxxxfn

i

in >⇔= ∑=

x1 x2 x3 f

0 0 0 0

21/06/2010 Corso di Reti Logiche 2009/10 41

0 0 0 0

0 0 1 0

0 1 0 0

0 1 1 1

1 0 0 0

1 0 1 1

1 1 0 1

1 1 1 1

f = Σm(3,5,6,7)

Sintesi della funzione majority con Demultiplexer e Or

f = ΣΣΣΣ3 m (3,5,6,7)

U0

U1

U2

U3

U

x1 x2 x3 f

0 0 0 0

0 0 1 0

0 1 0 0

0 1 1 1

21/06/2010 Corso di Reti Logiche 2009/10 42

3

U4

A U5

B U6

C U7

x1

x2

x3

0 1 1 1

1 0 0 0

1 0 1 1

1 1 0 1

1 1 1 1

Per fare la sintesi della funzione basta posizionare

esternamente al demultiplexer una porta OR che raccoglie in

una finestra temporale adeguata tutti i mintermini necessari

ad implementare effettivamente la funzione. f

Osservando il demultiplexer (n, 2n ) si osserva che le 2n

uscite rappresentano i valori dei possibili mintermini di una

generica funzione booleana di n variabili. Ad esempio per n=3

la linea 0 corrisponde a x1’x2’x3’ proprio perché vale 1

quando i 3 ingressi sono tutti nulli e così via.

Questo risultato è importante in quanto, permette di

implementare una funzione qualsiasi, dopo aver determinato la

21/06/2010 Corso di Reti Logiche 2009/10 43

implementare una funzione qualsiasi, dopo aver determinato la

prima forma canonica (per individuare i mintermini presenti).

Infatti basta sommare le uscite del demultiplexer

corrispondenti ai mintermini della funzione con una porta

OR senza bisogno di minimizzare la funzione.

Una ROM é un dispositivo con n ingressi (dette linee di indirizzamento) ed m

uscite (dette linee dati).

ROM

21/06/2010 Corso di Reti Logiche 2009/10 44

n ingressi

m uscite

La ROM conserva le informazioni

stabilite all'atto della sua fabbricazione.

21/06/2010 Corso di Reti Logiche 2009/10 45

ROM senza informazioni registrate

21/06/2010 Corso di Reti Logiche 2009/10 46

uscite

3 ingressi

a

b

c

0

1

2a

ROM con informazioni registrate

21/06/2010 Corso di Reti Logiche 2009/10 47

3 ingressi

9 uscite

2

3

4

5

6

7

a

b

c

ROM senza informazioni registrate

ingressi

Dal punto di vista logico possiamo immaginare che le

informazioni risiedono sugli incroci tra le n righe e le m colonne.

21/06/2010 Corso di Reti Logiche 2009/10 48

ingressi

uscite

ROM senza informazioni registrate

ingressi

Esistono diverse tecnologie per realizzare memorie ROM (matrici di diodi).

21/06/2010 Corso di Reti Logiche 2009/10 49

ingressi

uscite

ingressi

Esistono diverse tecnologie per realizzare memorie ROM (matrici di diodi).

Come si vede dall’ingrandimento negli incroci ci sono dei diodi posti

fra le linee di indirizzo decodificate e l'uscita.

21/06/2010 Corso di Reti Logiche 2009/10 50

ingressi

uscite

ingressi

Esistono diverse tecnologie per realizzare memorie ROM (matrici di diodi).

Come si vede dall’ingrandimento negli incroci ci sono dei diodi posti

fra le linee di indirizzo decodificate e l'uscita.

21/06/2010 Corso di Reti Logiche 2009/10 51

ingressi

uscite

Come si vede dall’ingrandimento negli incroci ci sono dei diodi posti

fra le linee di indirizzo decodificate e l'uscita.

In serie ai diodi ci sono dei fusibili (le linee ondulate) che rappresentano le

connessioni che possono essere eliminate singolarmente (per vaporizzazione tramite

un passaggio eccessivo di corrente).

Il fusibile e' costituito da una breve connessione (3-5 micron)

larga circa 1 micron di una lega a base di titanio e tungsteno

21/06/2010 Corso di Reti Logiche 2009/10 52

larga circa 1 micron di una lega a base di titanio e tungsteno

che può essere distrutta da una corrente circa 6 volte maggiore

di quella normale di funzionamento.

Il circuito viene fornito con tutte le connessioni e prima di

essere utilizzato deve essere programmato.

La programmazione consiste nell’applicare ai terminali

dell'integrato gli impulsi di tensione adeguati alla distruzione

dei fusibili desiderati.

ingressi

Esistono diverse tecnologie per realizzare memorie ROM (matrici di diodi).

Inizialmente sono presenti tutte le connessioni. I diodi servono

semplicemente a garantire il flusso unidirezionale della corrente per

evitare interferenze che si verificherebbero se i diodi fossero sostituiti

da semplici conduttori

21/06/2010 Corso di Reti Logiche 2009/10 53

ingressi

uscite

ROM con informazioni registrate

ingressi

Si tratta di una ROM con 8 indirizzi (righe della matrice) di locazioni di 8 bit

(colonne della matrice) le informazioni sono:

11000000

00110110

01100000

21/06/2010 Corso di Reti Logiche 2009/10 54

ingressi

uscite

01100000

00011000

00000110

00000000

11000000

00000000

ingressi

11000000

00110110

01100000

ROM

Una ROM (Read Only Memory) può essere utilizzata, selezionando una linea di

indirizzo, per leggere le informazioni scritte al momento della sua fabbricazione

21/06/2010 Corso di Reti Logiche 2009/10 55

ingressi

uscite

01100000

00011000

00000110

00000000

11000000

00000000

ROM

Le (n) 3 linee di ingresso a,b,c selezionano, tramite un decodificatore, una fra le

(2n =) 8 righe della matrice 23 x 9 (2n x m).

La selezione della riga i-esima della matrice consente di leggere, in uscita il

valore precedentemente memorizzato su ciascuna colonna.

0

1

20a

21/06/2010 Corso di Reti Logiche 2009/10 56

Esempio

input= 011

output = 010101100

3 ingressi

9 uscite

2

3

4

5

6

7

0

1

1

0 1 0 1 0 1 1 0 0

a

b

c

ROM

Una ROM (Read Only Memory) può essere utilizzata per realizzare un insieme

di funzioni booleane le cui specifiche siano fornite in termini di tabelle di verità.

21/06/2010 Corso di Reti Logiche 2009/10 57

ingressi

uscite

ROM

La realizzazione é molto semplice: basta "copiare" la parte destra della tabella di

verità (che é una matrice 2nxm, dove 2n sono le possibili combinazioni delle n

variabili di ingresso, ed m sono le funzioni booleane di uscita) nella matrice della

ROM.

21/06/2010 Corso di Reti Logiche 2009/10 58

ingressi

uscite

Realizzare una ROM che soddisfi le seguenti specifiche:

f1=ab+bc

f2=ab+abc

f3=abc

Esercizio

21/06/2010 Corso di Reti Logiche 2009/10 59

f3=abc

f1=ab+bc

f2=ab+abc

f3=abc

a b c f1 f2 f30 0 0 1 1 0

0 0 1 1 1 0

0 1 0 0 0 0

Soluzione

21/06/2010 Corso di Reti Logiche 2009/10 60

0 1 0 0 0 0

0 1 1 0 1 1

1 0 0 1 0 0

1 0 1 0 0 0

1 1 0 0 0 0

1 1 1 0 0 0

a

a b c f1 f2 f30 0 0 1 1 0

0 0 1 1 1 0

0 1 0 0 0 0

21/06/2010 Corso di Reti Logiche 2009/10 61

a

b

c

f1 f2 f3

0 1 0 0 0 0

0 1 1 0 1 1

1 0 0 1 0 0

1 0 1 0 0 0

1 1 0 0 0 0

1 1 1 0 0 0

a b c x y

0 0 0 0 0

0 0 1 0 1

Realizzare una ROM che soddisfi le seguenti specifiche:

Esercizio

21/06/2010 Corso di Reti Logiche 2009/10 62

0 1 0 0 0

0 1 1 0 1

1 0 0 0 0

1 0 1 1 1

1 1 0 0 1

1 1 1 1 1

a b c x y

0 0 0 0 0

0 0 1 0 1a

Soluzione

21/06/2010 Corso di Reti Logiche 2009/10 63

0 1 0 0 0

0 1 1 0 1

1 0 0 0 0

1 0 1 1 1

1 1 0 0 1

1 1 1 1 1

a

b

c

x y

a b c x y

0 0 0 0 0

0 0 1 0 1a

21/06/2010 Corso di Reti Logiche 2009/10 64

0 1 0 0 0

0 1 1 0 1

1 0 0 0 0

1 0 1 1 1

1 1 0 0 1

1 1 1 1 1

a

b

c

x y

• Si può constatare che la ROM è un modulo

combinatorio universale, che può essere utilizzato per realizzare un insieme di m

funzioni dello stesso insieme di n variabili.

21/06/2010 Corso di Reti Logiche 2009/10 65

funzioni dello stesso insieme di n variabili.

• L’unica osservazione che possiamo fare è

che la ROM consente di realizzare solo funzioni in forma canonica SOP, in quanto

utilizza un decodificatore.

Paragone fra le soluzioni considerate

MUX

• il componente può essere riutilizzato

• ogni componente realizza una sola funzione booleana

ROM

21/06/2010 Corso di Reti Logiche 2009/10 66

ROM

• il componente non può essere riutilizzato, in quanto la

realizzazione delle specifiche é a cura del fabbricante del

circuito integrato. Esistono particolari tipi di ROM

(EPROM) che consentono la riscrittura della matrice.

• ogni componente realizza più funzioni booleane

Un PLA (Programmabile Logic Array) è un circuito a k ingressi e

m uscite

che contiene n porte AND ed m porte OR programmabili.

PLA

21/06/2010 Corso di Reti Logiche 2009/10 67

I PLA (Programmable Logic Array) detti anche MATRICI LOGICHE programmabili,

sono dispositivi (LSI - Large Scale Integration) molto utilizzati per la SINTESI di reti combinatorie.

Prima della programmazione sonodisponibili tutte le possibili connessioni

PLA con 3 ingressi e 4 uscite, 5 AND, 4 OR,

ESEMPIO

ingressi

21/06/2010 Corso di Reti Logiche 2009/10 68uscite

A B C D E F

PLA con

•6 ingressi

A B C D E F

• 4 uscite

Schema semplificato di PLAingressi

21/06/2010 Corso di Reti Logiche 2009/10 69

Z1 z2 z3 z4

• 4 uscite

Z1 Z2 Z3 Z4

• 14 porte AND

• 4 porte OR

uscite

Come si vede osservando lo schema semplificato del PLA:

• ciascuna porta AND può realizzare il prodotto delle variabili di

ingresso

• ciascuna porta OR può ricevere in ingresso le uscite delle porte

21/06/2010 Corso di Reti Logiche 2009/10 70

• ciascuna porta OR può ricevere in ingresso le uscite delle porte

AND e rappresenta la funzione che si desidera ottenere.

La programmazione consiste nel costruire su ogni riga della matrice,

nella sezione di AND, un implicante della funzione e nel combinare

poi tali implicanti nella sezione OR.

Programmazione di PLA

21/06/2010 Corso di Reti Logiche 2009/10 71

Ad esempio se dobbiamo realizzare la funzione z1

z1=ABC + AB

abbiamo bisogno di 2 termini prodotto

ABC e AB

che potremo generare attraverso 2 porte AND

Esempio

21/06/2010 Corso di Reti Logiche 2009/10 72

che potremo generare attraverso 2 porte AND

mentre per generare la funzione z1 basterà utilizzare una uscita del

PLA mettendo in ingresso sulla corrispondente porta OR i termini

prodotto generati.

PLA con 5 AND, 4 OR, 3 ingressi e 4 usciteA B C

Prima della programmazione sonodisponibili tutte le possibili connessioni

21/06/2010 Corso di Reti Logiche 2009/10 73

A B C D E F

PLA con

•14 porte AND

• 4 porte OR

• 6 ingressi

A B C D E F

Schema semplificato di PLA

21/06/2010 Corso di Reti Logiche 2009/10 74

Z1 z2 z3 z4

A B C D E F

• 4 uscite

Z1 Z2 Z3 Z4

z1=ABC + AB

Se invece dobbiamo realizzare la funzione z2

Esempio

21/06/2010 Corso di Reti Logiche 2009/10 75

z2=ABC + BD

abbiamo bisogno di 2 termini prodotto

ABC e BD

(di cui uno già creato) che potremo generare attraverso 2 porte AND

mentre per generare la funzione z2 basterà utilizzare una uscita del

PLA mettendo in ingresso sulla corrispondente porta OR i termini

prodotto generati.

A B C D E F

PLA con

•14 porte AND

• 4 porte OR

• 6 ingressi

e complessivamente:

21/06/2010 Corso di Reti Logiche 2009/10 76

Z1 z2 z3 z4

• 6 ingressi

A B C D E F

• 4 uscite

Z1 Z2 Z3 Z4

z2=ABC + BD

I PLA sono i dispositivi programmabili più flessibili, sia dal

punto di vista della RETE AND, sia dal punto di vista della

RETE OR. Infatti con i PLA è possibile sintetizzare qualsiasi

21/06/2010 Corso di Reti Logiche 2009/10 77

RETE OR. Infatti con i PLA è possibile sintetizzare qualsiasi

espressione di tipo SP (e non necessariamente mintermini)

•senza vincoli di alcun tipo,

•senza limitazioni sul numero dei fattori per termine o

•sul numero di termini per espressione.

Con tali dispositivi (a differenza delle ROM) si possono

rappresentare anche forme SP non canoniche.

21/06/2010 Corso di Reti Logiche 2009/10 78

rappresentare anche forme SP non canoniche.

Infatti alle porte AND è possibile associare qualsiasi variabile

presente in ingresso.

In un PLA, fissato il numero di ingressi n e di uscite m, in

corrispondenza degli n ingressi ci sono p porte AND che ci

permettono di creare i termini prodotto che desideriamo e non

21/06/2010 Corso di Reti Logiche 2009/10 79

permettono di creare i termini prodotto che desideriamo e non

necessariamente tutti i mintermini ( come nelle ROM - dove c’è

il decoder) ciascuna delle quali può alimentare m porte OR.

Facendo opportune connessioni sulle porte AND è possibile

creare i termini prodotto desiderati.

Facendo opportune connessioni sulle porte OR è possibile

ottenere in uscita le funzioni con i termini prodotto desiderati.

Implementare la funzione Majority con un PLA con le

seguenti caratteristiche:

• 3 ingressi

• 2 uscite

Esercizio

21/06/2010 Corso di Reti Logiche 2009/10 80

• 8 porte AND

Dati:

Funzione Majority PLA

f0 = ΣΣΣΣ3 m (3,5,6,7) x1 x2 x3

21/06/2010 Corso di Reti Logiche 2009/10 81

f0 f1

Dati:

Funzione Majority PLA

f0 = ΣΣΣΣ3 m (3,5,6,7) x1 x2 x3

o o o

o o o

o o o

o o o

o

o

o

o

21/06/2010 Corso di Reti Logiche 2009/10 82

f0 f1

o o o o

Paragone fra le soluzioni considerate

MUX

• il componente può essere riutilizzato

• ogni componente realizza una sola funzione booleana

ROM

• il componente non può essere riutilizzato

21/06/2010 Corso di Reti Logiche 2009/10 83

• il componente non può essere riutilizzato

• ogni componente realizza più funzioni booleane in forma

SOP

PLA

• il componente non può essere riutilizzato

• ogni componente realizza più funzioni booleane in forma

SP (non canoniche)

Supponendo di avere a disposizione un dispositivo PLA con le

seguenti caratteristiche:

• 6 ingressi

• 4 uscite

• 14 porte AND

Esercizio n.1

21/06/2010 Corso di Reti Logiche 2009/10 84

Implementare una funzione le cui uscite sono date dalle seguenti

espressioni:

Z1= abc + bd + bcdef + ef

Z2= abcf + bd + bef

Z3= cbe + abcdef + bcf

Z4= acf + bd + bef + acf

Supponendo di avere a disposizione un dispositivo

PLA con le seguenti caratteristiche:

• 3 ingressi

• 3 uscite

• 8 porte AND

000

001

010

011

001

010

011

100

Ingresso Uscita

Esercizio n.2

21/06/2010 Corso di Reti Logiche 2009/10 85

• 8 porte AND

Implementare un Incrementatore a 3 bit.

Un incrementatore é un dispositivo che riceve in

ingresso n bit A1..An che rappresentano il numero K, e

produce in uscita n bit che rappresentano il numero

K+1.

Quando K=2n-1 il risultato è una stringa di zero.

011

100

101

110

111

100

101

110

111

000

Esercizio n.3Si progetti una rete combinatoria per il di controllo di una centrale termica.

La rete deve controllare i seguenti eventi pericolosi:

• innalzamento della Temperatura oltre una soglia di sicurezza,

• Velocità dei motori troppo elevata

• livello del liquido di raffreddamento troppo basso.

In particolare:

se la temperatura è troppo elevata ma il liquido di raffreddamento è sufficiente,

21/06/2010 Corso di Reti Logiche 2009/10 86

se la temperatura è troppo elevata ma il liquido di raffreddamento è sufficiente,

si deve azionare il freno per ridurre la velocità;

se la temperatura è troppo elevata e il liquido di raffreddamento è insufficiente, è

necessario aumentare il liquido;

se la velocità è troppo alta, si deve azionare il freno

se il liquido è scarso, è necessario aumentare il liquido;

Inoltre ogni volta che si verificano due eventi pericolosi simultaneamente è

necessario inviare un segnale di warning ai tecnici di controllo.

Realizzare il circuito usando tutte le possibili tecnologie studiate (MUX,

PLA, porte e ROM). Supponendo che tutte le porte hanno lo stesso

tempo di risposta e considerando che il circuito deve essere il più veloce

possibile, individuare qual’è la realizzazione migliore.

21/06/2010 Corso di Reti Logiche 2009/10 87

possibile, individuare qual’è la realizzazione migliore.

Soluzione - Esercizio n.3Si progetti una rete combinatoria per il di controllo di una centrale termica.

La rete deve controllare i seguenti eventi pericolosi:

• innalzamento della Temperatura oltre una soglia di sicurezza,

• Velocità dei motori troppo elevata

• Livello del liquido di raffreddamento troppo basso.

In particolare:

se la temperatura è troppo elevata ma il liquido di raffreddamento è sufficiente, si deve azionare il

Freno per ridurre la velocità;

se la temperatura è troppo elevata e il liquido di raffreddamento è insufficiente, è necessario

aumentare il Liquido (M);

21/06/2010 Corso di Reti Logiche 2009/10 88

aumentare il Liquido (M);

se la velocità è troppo alta, si deve azionare il freno

se il liquido è scarso, è necessario aumentare il liquido;

Inoltre ogni volta che si verificano due eventi pericolosi simultaneamente è necessario inviare un

segnale di Warning ai tecnici di controllo.

Soluzione - Esercizio n.3

La funzione che volgiamo realizzare è la seguente:

T V L F M W

0 0 0 0 0 0

0 0 1 0 1 0

0 1 0 1 0 0

0 1 1 1 1 1

1 0 0 1 0 0

1 0 1 0 1 1

21/06/2010 Corso di Reti Logiche 2009/10 89

1 0 1 0 1 1

1 1 0 1 0 1

1 1 1 1 1 1

Soluzione - Esercizio n.3Realizzazione mediante MUX_8-1 :

M

U

0

0

1

F

M

U

0

1

0

M

M

U

0

0

0

W

21/06/2010 Corso di Reti Logiche 2009/10 90

U

X

1

1

1

0

1

1

U

X

0

1

0

1

0

1

U

X

0

1

0

1

1

1

T

V

L

Soluzione - Esercizio n.3Realizzazione mediante MUX_8-1 :

M

U

0

0

1

F

M

U

0

1

0

M

M

U

0

0

0

W

21/06/2010 Corso di Reti Logiche 2009/10 91

U

X

1

1

1

0

1

1

U

X

0

1

0

1

0

1

U

X

0

1

0

1

1

1

T

V

L

Soluzione - Esercizio n.3

Realizzazione mediante ROM :

T

V

D

E

C

*

*

*

*

*

*

*

*

21/06/2010 Corso di Reti Logiche 2009/10 92

L C *

*

*

* *

*

*

*

F M W

Soluzione - Esercizio n.3Mappe di Karnaugh :

_

da cui Fmin = V + T⋅ L , Mmin = L , Wmin = V⋅ L + T⋅ L + T⋅ V

V L T

00 01 11 10

0

1

0 0 1 1

1 0 1 1

V L T

00 01 11 10

0

1

0 1 1 0

0 1 1 0

V L T

00 01 11 10

0

1

0 0 1 0

0 1 1 1

21/06/2010 Corso di Reti Logiche 2009/10 93

da cui Fmin = V + T⋅ L , Mmin = L , Wmin = V⋅ L + T⋅ L + T⋅ V

Soluzione - Esercizio n.3Mappe di Karnaugh :

_

da cui Bmin = V + T⋅ L , Amin = L , Wmin = V⋅ L + T⋅ L + T⋅ V

V L T

00 01 11 10

0

1

0 0 1 1

1 0 1 1

V L T

00 01 11 10

0

1

0 1 1 0

0 1 1 0

V L T

00 01 11 10

0

1

0 0 1 0

0 1 1 1

21/06/2010 Corso di Reti Logiche 2009/10 94

da cui Bmin = V + T⋅ L , Amin = L , Wmin = V⋅ L + T⋅ L + T⋅ V

Soluzione - Esercizio n.3Realizzazione con PLA :

V

L

21/06/2010 Corso di Reti Logiche 2009/10 95

T

F

M

W

Soluzione - Esercizio n.3

Realizzazione con porte logiche :

V

F

21/06/2010 Corso di Reti Logiche 2009/10 96

T

L

W

M

Soluzione - Esercizio n.3

Confronto per massimo numero di porte attraversate:

• MUX = 1not + 3and + 7or = 11 porte

• PLA = 1not + 1and + 1or opp. 1and + 2or = 3 porte

• ROM = 1not + 2and + 1diodo = 3 porte e 1 diodo

• PORTE = 1not + 1and + 1or opp. 1and + 2or = 3 porte

La soluzione migliore è pertanto quella costituita da porte logiche e PLA.

21/06/2010 Corso di Reti Logiche 2009/10 97

La soluzione migliore è pertanto quella costituita da porte logiche e PLA.

Riepilogo 1

MUX:

è un circuito combinatorio costituito da 2n linee di ingresso,

n linee di controllo e una sola uscita u.Questo circuito ha la

funzione di individuare una delle 2n linee di ingresso ,può

21/06/2010 Corso di Reti Logiche 2009/10 98

funzione di individuare una delle 2n linee di ingresso ,può

essere implementato con tanti AND quanti sono i mintermini

del segnale di controllo,1 porta OR e n porte NOT per generare

tutti i termini negati nei mintermini.Il componente può essere

riutilizzato e ogni componente realizza una sola funzione

booleana

• DEMUX:

è un circuito combinatorio costituito da n linee di ingresso

e 2n linee di uscita ,a fronte di ciascuna delle 2n diverse

configurazioni di ingresso attiva una sola delle 2n linee di

Riepilogo 2

21/06/2010 Corso di Reti Logiche 2009/10 99

configurazioni di ingresso attiva una sola delle 2n linee di

uscita.Può essere usato come decodificatore o generatore

di mintermini.Per fare la sintesi della funzione si posiziona

esternamente al demultiplexer una porta OR che raccoglie

tutti i mintermini necessari ad implementare

effettivamente la funzione.

• ROM:

é un dispositivo con n ingressi ed m uscite .Dal punto di vista logico possiamo immaginare che le informazioni risiedono sugli incroci tra le n righe e le m colonne.Può essere utilizzato per realizzare un insieme di m funzioni dello stesso insieme di n variabili.Il componente non può essere riutilizzato e ogni componente

Riepilogo 3

21/06/2010 Corso di Reti Logiche 2009/10 100

componente non può essere riutilizzato e ogni componente realizza più funzioni booleane in forma SOP

• PLA:

è un circuito a k ingressi e m uscite che contiene n porte AND ed m porte OR programmabili .La programmazione consiste nel costruire su ogni riga della matrice, nella sezione di AND, un implicante della funzione e nel combinare poi tali implicanti nella sezione OR.Il componente non può essere riutilizzato e ogni componente

Riepilogo 4

21/06/2010 Corso di Reti Logiche 2009/10 101

componente non può essere riutilizzato e ogni componente realizza più funzioni booleane in forma SP non canoniche.