Nota:la versione html presenta alcuni problemi di conversione dei simboli non realizzati con il "formula formatter". In particolare:

il simbolo 3 appare al posto del segno di maggiore o uguale;

la freccia verso il basso appare al posto del simbolo "not"

un piccolo rombo appare al posto della freccia verso destra.

Compito A

27 gennaio 1999

Esercizio 1

Si progetti un registro di 3 bit, realizzato con FF di tipo JK, sul quale sia possibile eseguire le seguenti operazioni, ciascuna attivata da un opportuno segnale di controllo in ingresso al registro:

SHIFT_LEFT: fa scorrere l'informazione di una posizione verso sinistra. Il bit più significativo (MSB) viene trasferito nel meno significativo (LSB)

SHIFT_RIGHT: fa scorrere l'informazione di una posizione verso destra. Il bit meno significativo (LSB) viene trasferito nel più significativo (MSB)

PARALLEL_LOAD : carica in parallelo sui 3 FF una stringa di bit

PARALLEL_READ: legge in parallelo il contenuto del registro

CLEAR: azzera il contenuto del registro

NOTA MOLTO BENE: Il progetto va realizzato usando la metodologia generale di sintesi di sistemi sequenziali vista a lezione. E' dunque necessario, inizialmente, ricavare l'automa a stati finiti che rappresenta il funzionamento del circuito. Dall'automa, si ricaverà quindi la tabella degli stati futuri e lo schema circuitale. Il semplice schema circuitale non costituisce una risposta sufficiente.

Esercizio 2

Si realizzi un circuito che riceve in ingresso due stringhe di n bit, A e B, e produce in uscita:

1 se A ³ B

0 altrimenti

NOTA MOLTO BENE: Il progetto va realizzato usando la metodologia generale di sintesi di sistemi sequenziali vista a lezione. E' dunque necessario, inizialmente, ricavare l'automa a stati finiti che rappresenta il funzionamento del circuito. Dall'automa, si ricaverà quindi la tabella degli stati futuri e lo schema circuitale. Il semplice schema circuitale non costituisce una risposta sufficiente.

 

 

 

Compito B

Esercizio 1. Realizzare un sommatore aritmetico seriale.

NOTA MOLTO BENE: Il progetto va realizzato usando la metodologia generale di sintesi di sistemi sequenziali vista a lezione. E' dunque necessario, inizialmente, ricavare l'automa a stati finiti che rappresenta il funzionamento del circuito. Dall'automa, si ricaverà quindi la tabella degli stati futuri e lo schema circuitale. Il semplice schema circuitale non costituisce una risposta sufficiente.

Esercizio 2

Si progetti un registro di 3 bit, realizzato con FF di tipo JK, sul quale sia possibile eseguire le seguenti operazioni, ciascuna attivata da un opportuno segnale di controllo in ingresso al registro:

SHIFT_LEFT: fa scorrere l'informazione di una posizione verso sinistra. Il bit più significativo (MSB) viene perso, ed uno "0" entra nel meno significativo (LSB)

SHIFT_RIGHT: fa scorrere l'informazione di una posizione verso destra. . Il bit meno significativo (LSB) viene perso, ed uno "0" entra nel più significativo (MSB)

PARALLEL_LOAD : carica in parallelo sui 3 FF una stringa di bit

PARALLEL_READ: legge in parallelo il contenuto del registro

SET: pone tutti i bit del registro al valore 1

NOTA MOLTO BENE: Il progetto va realizzato usando la metodologia generale di sintesi di sistemi sequenziali vista a lezione. E' dunque necessario, inizialmente, ricavare l'automa a stati finiti che rappresenta il funzionamento del circuito. Dall'automa, si ricaverà quindi la tabella degli stati futuri e lo schema circuitale. Il semplice schema circuitale non costituisce una risposta sufficiente.

 

 

 

Soluzioni

Esercizio 1: Il circuito sequenziale riceve in ingresso 5 segnali di controllo e tre bit di ingresso, i2i1i0. Produce in uscita tre segnali o2o1o0.

Tuttavia, i 5 segnali di controllo non possono assumere tutte le possibili configurazioni. In ogni istante, i segnali possono essere tutti disattivati, oppure uno solo fra i 5 può essere attivo. Quanto ai tre input, è necessario considerarne il valore solo se PARALLEL_LOAD=1. Analogamente, l'output del sistema sarà sempre 000, tranne nel caso in cui PARALLEL_READ=1. In tal caso, o2o1o0=Q2Q1Q0.

L'automa ha 8 stati, tante quante sono le possibili diverse configurazioni di 3 bit, ma il numero delle transizioni è notevole, pertanto cercheremo di rappresentarlo in maniera semplificata.

 

 

 

Per maggiore leggibilità, la figura è replicata.

Da notare che gli stati in cui è memorizzato 000 e 111 effettuano transizioni su stati esterni rispettivamente, solo nel caso di PARALLEL_LOAD (000) e CLEAR o PARALLEL_LOAD (111).

La tabella degli stati futuri è riportata qui di sotto. Le possibili combinazioni della tabella dipendono dai valori degli 8 input (indicate per brevità con C SR SL PR PL i2i1i0)e delle 3 variabili di stato (Q2Q1Q0), dunque sono 211 . Naturalmente, poiché solo alcune combinazioni degli ingressi, tra le 28, sono effettivamente possibili, la compilazione della tabella degli stati futuri può essere notevolmente semplificata.

Per chiarezza:

Q(t)® Q(t+1)

J K

0® 0

0® 1

1® 0

1® 1

0 X

  1. X

X 1

X 0

Oppure tenendo conto che uno slittamento circolare a destra (sinistra) comporta la copiatura nel FF i-esimo del FF i-1esimo modulo 2 (i+1 esimo).

righe (non evidenziate nella tabella) corrispondono a configurazioni di ingresso non possibili, e dunque ad altrettanti don't care

Input

C SR SL PR PL i2 i1 i0

Stato di partenza

S(t)

Stato di arrivo S(t+1)

J2K2J1K1J0K0 o2o1o0

0 0 0 0 0 XXX

Q2Q1Q0

Q2Q1Q0

00 00 00 0 0 0

0 0 0 0 1 i2 i1 i0

Q2Q1Q0

i2 i1 i0

i2Ø i2 i1Ø i1 i0Ø i0 0 0 0

0 0 0 1 0 XXX

Q2Q1Q0

Q2Q1Q0

00 00 00 Q2Q1Q0

0 0 1 0 0 XXX

000

001

010

011

100

101

110

111

000

010

100

110

001

011

101

111

00 00 00 0 0 0

Questa parte della tabella può essere riempita o codificando le singole transizioni, o ponendo per ogni riga:

Q1Ø Q1Q0Ø Q0Q2Ø Q2 0 0 0

(il risultato è identico)

0 1 0 0 0 XXX

000

001

010

011

100

101

110

111

000

100

001

101

010

110

011

111

00 00 00 0 0 0

Questa parte della tabella può essere riempita o codificando le singole transizioni, o ponendo per ogni riga:

Q0Ø Q0Q2Ø Q2Q1Ø Q1 0 0 0

(il risultato è identico)

1 0 0 0 0 XXX

Q2Q1Q0

000

01 01 01 0 0 0

Abbiamo dunque:

Variante (compito B)

La variante proponeva una diversa definizione dell'effetto dei comandi di slittamento (in questo caso non ad anello) e la presenza di un segnale di set anziché di clear.

Lo studente può facilmente ricavare il nuovo automa, molto simile a quello visto per il compito A.

La tabella degli stati futuri si modifica come segue:

 

 

 

 

Input

S SR SL PR PL i2 i1 i0

Stato di partenza

S(t)

Stato di arrivo S(t+1)

J2K2J1K1J0K0 o2o1o0

0 0 0 0 0 XXX

Q2Q1Q0

Q2Q1Q0

00 00 00 0 0 0

0 0 0 0 1 i2 i1 i0

Q2Q1Q0

i2 i1 i0

i2Ø i2 i1Ø i1 i0Ø i0 0 0 0

0 0 0 1 0 XXX

Q2Q1Q0

Q2Q1Q0

00 00 00 Q2Q1Q0

0 0 1 0 0 XXX

000

001

010

011

100

101

110

111

000

010

100

110

000

010

100

110

00 00 00 0 0 0

Questa parte della tabella può essere riempita o codificando le singole transizioni, o ponendo per ogni riga:

Q1Ø Q1Q0Ø Q0 00 0 0 0

(il risultato è identico)

0 1 0 0 0 XXX

000

001

010

011

100

101

110

111

000

000

001

001

010

010

011

011

00 00 00 0 0 0

Questa parte della tabella può essere riempita o codificando le singole transizioni, o ponendo per ogni riga:

00 Q2Ø Q2 Q1Ø Q1 0 0 0

(il risultato è identico)

1 0 0 0 0 XXX

Q2Q1Q0

000

10 10 10 0 0 0

Le corrispondenti equazioni variate sono:

 

Esercizio 2 (compito A). Il circuito descritto è un circuito comparatore. Si veda lo svolgimento sul Bovet. A pag 93.

Esercizio 1 (compito B) Un sommatore sequenziale produce la somma S(t) tra i valori I1(t) ed I2(t) dei due input, più il valore del carry memorizzato nell'istante precedente, C(t-1)

Poiché occorre memorizzare solo un bit, l' automa che modella il sistema ha due stati, corrispondenti al valore memorizzato del carry. Dunque, indichiamo con C(t) il valore memorizzato sul FF.

Rappresentiamo direttamente la tabella degli stati futuri, nell'ipotesi di utilizzare un FF di tipo Toggle.

I1I2C(t)

C(t+1)

T(t) S(t)

000

001

010

011

100

101

110

111

0

0

0

1

0

1

1

1

0 0

1 1

0 1

0 0

0 1

0 0

1 0

0 1