Appello del 16 giugno 1999



Soluzioni in formato Word 98, RTF, Word 95.
Risultati del compito scritto.

Esercizio 1 (versione 1). (18 punti)

Progettare un circuito il cui output è 1 quando viene riconosciuta una delle seguenti stringhe:

00011

10010

10011

00010

l'output è zero altrimenti.

Utilizzare FF di tipo "Toggle".Costituiranno elemento di valutazione non solo la correttezza ma anche l'ottimalità della soluzione e la completezza e chiarezza dell'esposizione.

Esercizio 1 (versione 2). (18 punti)

Progettare un circuito il cui output è 1 quando viene riconosciuta una delle seguenti stringhe:

01001

11001

01000

l'output è zero altrimenti.

Utilizzare FF di tipo "Toggle".Costituiranno elemento di valutazione non solo la correttezza ma anche l'ottimalità della soluzione e la completezza e chiarezza dell'esposizione.

Esercizio 2 (12 punti)

Assegnata la seguente tabella di verità:

I3I2I1I0

O3O2O1O0

0000

0000

0001

0010

0010

0111

0011

0000

0100

0001

0101

0100

0110

1000

0111

1000

1000

0000

1001

0000

1010

0000

1011

1000

1100

1000

1101

0001

1110

0000

1111

0000

Progettare i relativi schemi circuitali utilizzando porte logiche, Programmable Logic Arrays (PLA) e multiplexers a 4 ingressi.

Si descriva inoltre il funzionamento generale di un circuito multiplexer e se ne disegni lo schema circuitale interno, per il caso di un MPX a 4 ingressi.

Soluzioni

Esercizio 1. Versione 1 (16 punti) Progettare un circuito il cui output è 1 quando viene riconosciuta una delle seguenti stringhe:

00011

10010

10011

00010

l'output è zero altrimenti.

Si osservi che, in realtà, il sistema deve riconoscere la stringa X001X, dove il simbolo X indica "don't care". Ovvero, il sistema deve emettere un "1" ogni volta che riconosce una stringa di cinque bit, i cui tre bit interni siano "001".

L'automa è pertanto il seguente (considerando che le stringhe vengano lette da destra verso sinistra):

 

 

Utilizziamo la seguente codifica per gli stati:

S0 ® 000

S1® 001

S2® 010

S3® 011

S4® 100

La tabella degli stati futuri è data dalla:

 

IQ2Q1Q0 (t)

S(t)

Q2Q1Q0 (t+1)

T2T1T0 (t)

Out (t® t+1)

0000

0001

0010

0011

0100
0101
0110

0111

1000

1001

1010

1011

1100
1101
1110

1111

S0

S1

S2

S3

S4

X

X

X

S0

S1

S2

S3

S4

X

X

X

S1

S1

S3

S4

S0

X

X

X

S1

S2

S1

S1

S0

X

X

X

001

000

001

111

100

XXX

XXX

XXX

001

011

011

010

100

XXX

XXX

XXX

0

0

0

0

1

X

X

X

0

0

0

0

1

X

X

X

Si noti che le configurazioni di stato non ammesse corrispondono a valori dei segnali Ti qualsiasi.

Questo consente di semplificare il relativo circuito combinatorio.

Alternativamente, se si desidera che, in caso di errore, il sistema transiti comunque in una configurazione nota, si può imporre che da un qualsiasi stato non ammesso venga "forzata" una transizione in S0.

Si omette - perché banale- il calcolo col metodo delle mappe di Karnaugh delle espressioni booleane minimizzate per T2T1T0 e per Out.

Versione 1

Rispetto alla versione 2, il problema è complicato dal fatto che una stringa, la 11000, non è inclusa nell'elenco delle stringhe da riconoscere, perciò, non è possibile "generalizzare" le stringhe da riconoscere in un'unica stringa.

Possiamo tuttavia cosiderare la seguente generalizzazione parziale: X1001 e 01000.

La lettura delle stringhe viene sempre effettuata da destra verso sinistra.

L'automa risultante viene mostrato in figura.

Ogni stato, oltre al simbolo Si, reca anche l'indicazione della porzione di stringa riconosciuta. L'output dell'automa è evidenziato solo in corrispondenza degli archi S4® S0 e S8® S0. Tutte le altre transizioni producono un output uguale a zero.

Nota: Un automa di Moore avrebbe richiesto uno stato in più.

Occorrono comunque 4 FF per codificare i 9 stati.

Una possibile codifica è la seguente:

S0=0000, S1=0001, S2=0010,S3=0011,S4=0100,S5=0101,S6=0110,S7=0111,S8=1000

La soluzione completa viene poi derivata nel modo usuale.

 

Esercizio 2 (14 punti) Assegnata la seguente tabella di verità:

I3I2I1I0

O3O2O1O0

0000

0001

0010

0011

0100
0101
0110

0111

1000

1001

1010

1011

1100
1101
1110

1111

0000

0010

0111

0000

0001

0100

1000

1000

0000

0000

0000

1000

1000

0001
0000

0000

Progettare i relativi schemi circuitali utilizzando porte logiche, Programmable Logic Arrays (PLA) e multiplexers a 4 ingressi.

Si descriva inoltre il funzionamento generale di un circuito multiplexer e se ne disegni lo schema circuitale interno, per il caso di un MPX a 4 ingressi.

Soluzione:

Le espressioni booleane per O3O2O1O0 sono date dalle:

Nel realizzare tanto il circuito AND-OR che il PLA, si osservi che alcuni termini prodotto (ad esempio il primo di O0 e di O2) compaiono nell'espressione booleana di più di una variabile di uscita, pertanto NON vanno replicate le relative porte AND.

Di seguito è riportato uno schema parziale del PLA

 

 

La realizzazione con MPX è molto semplice. L'esercizio richiede che si utilizzino MPX a 4 ingressi, perciò ogni funzione booleana Oi può essere realizzata usando 5 MPX connessi come in figura (che illustra specificamente il circuito relativo alla funzione di uscita O0).

In figura, gli input del circuito combinatorio vengono usati come segnali di controllo per i multiplexers. I segnali I0 ed I1 controllano il primo stadio di 4 MPX., mentre I2 ed I3 controllano il MPX del secondo stadio.

Gli ingressi dei 4 MPX del primo stadio devono essere connessi in modo permanente ai valori basso (0 logico) e alto (1 logico), seguendo i valori riportati nella colonna della tabella di verità relativa a O0.

Si osservi che, per ogni valore della quartupla I3I2I1I0 , il valore di O0 è proprio quello richiesto dalla tabella di verità.

Si vedano gli appunti per una trattazione funzionamento dei multiplexers e sul loro uso per la realizzazione di circuiti combinatori.