Progettare una macchina a stati finiti che manda in output 1 quando esattamente due
degli ultimi 3 input sono a 1. Si assume come input una linea seriale ad 1 bit.
====================================================================================
Descriviamo l'automa a stati finiti. Gli input sono:
X = {0, 1}
le uscite sono:
Z = {0, 1}
e gli stati interni sono:
S = {A, B, C, D, E}
dove:
A = stato iniziale
B = E' arrivato 0
C = E' arrivato 1
D = l'input precedente e' la sequenza 0 1
E = l'input precedente e' la sequenza 1 0
Il diagramma di flusso sara' il seguente:
da cui otteniamo la seguente tabella delle transizioni:
Proviamo a semplificare l'automa a stati finiti. Alla fine del processo di semplificazione
(come si vede dalla figura precedente) si ottengono le seguenti classi di equivalenza:
[A,B], [C,D], [E]
che chiamiamo rispettivamente alfa, beta e gamma. Otterremo allora il nuovo automa a
stati finiti avente gli stessi X e Z del precedente, ma avente gli stati:
S = {alfa, beta, gamma}
e la seguente tabella delle transizioni:
in cui abbiamo codificato:
alfa = 00
beta = 01
gamma = 11
Costruiamo infine il circuito sequenziale. Le mappe di karnough relative alla parte
combinatoria sono:
Otteniamo quindi il seguente circuito: