Automi per circuiti

Automi di Moore

In un circuito sequenziale di Moore si ha che:

  • , quindi ogni output dipende dallo stato corrispondente
  • , per cui la transizione di stato dipende dall'input e dallo stato precedente

Ogni possibile transizione viene rappresentata dalla tabella di transizione di stato, per esempio:

Esempio di automa di Mealy

La minimizzazione della tabella di transizione consiste nel trovare un'equazione minimizzata per ogni n-esimo bit che compone lo stato, in modo da trovare la funzione , per esempio:

Esempio di automa e minimizzazione

Automi di Mealy

Al confronto del circuito di Moore, in quello di Mealy si ha che:

Quindi, l'output non verrà posizionato sui nodi affianco agli stati, ma sugli archi affianco agli input, per esempio:

Esempio di automa di Mealy

Vanno quindi fatte le due mappe di Karnaugh per i bit di e per quelli di , per poi ricavarne le equazioni.

Un esempio completo è:

Esempio completo di un automa di Mealy

Microistruzioni

Quando ci sono tanti stati diventa complicato disegnare l'automa, per questo è utile scrivere un microprogramma attraverso delle microistruzioni che seguono il formato:

Stato0:
 Out1←1,  # Valori output di Stato0
 Out2←0
 case (In1, In2) of  # Casi input
  (_, 0): Stato0
  (_, 1): Stato1  # Transizione a Stato1

Stato1:
 Out1←0,
 Out2←1
 case (In1, In2) of
  (0, _): Stato1
  (1, _): Stato0

Sulla CPU queste microistruzioni possono essere salvate all'interno di una ROM ed avere un suo micro Program Counter che tiene traccia dell'istruzione corrente in modo da semplificare l'ISA.