Contenuto principale

Panoramica sulle macchine di Mealy e Moore

R2026b

In una macchina a stati finiti, lo stato è una combinazione di dati locali e attività del grafico. Per “calcolo dello stato" si intende l'aggiornamento dei dati locali e l'esecuzione di transizioni da uno stato attualmente attivo a uno nuovo. Nei modelli di macchine a stati, lo stato successivo è una funzione dello stato attuale e dei suoi input:

X(n+1)=f(X(n),u)

In questa equazione:

  • X(n) rappresenta lo stato al passo temporale n.

  • X(n+1) rappresenta lo stato al passo temporale successivo n+1.

  • u rappresenta gli input.

Lo stato rimane invariato da un passo temporale al successivo.

Semantica delle macchine di Mealy e Moore

Le macchine di Mealy e di Moore sono spesso considerate i paradigmi di base e standard del settore per la modellazione delle macchine a stati finiti. È possibile creare grafici che implementino la semantica pura di Mealy o di Moore come sottoinsieme della semantica del grafico Stateflow®. È possibile utilizzare i grafici di Mealy e Moore nella simulazione e nella generazione di codice con i software Embedded Coder®, Simulink® Coder™ e HDL Coder™.

Semantica dei grafici di Mealy

Le macchine di Mealy sono macchine a stati finiti in cui le transizioni avvengono sui fronti di clock. L'output di un grafico di Mealy è una funzione degli input e dello stato:

y=g(X,u)

Ad ogni passo temporale, un grafico di Mealy si attiva, valuta il proprio input e poi transita verso una nuova configurazione di stati attivi, detta anche il suo stato successivo. Il grafico calcola il proprio output mentre transita allo stato successivo.

Per garantire che l'output sia una funzione dell'input e dello stato, le macchine a stati di Mealy applicano questa semantica:

  • Gli output non dipendono dallo stato successivo.

  • Il grafico calcola gli output solo nelle transizioni, non negli stati.

  • Il grafico si attiva periodicamente in base al clock di sistema.

Le macchine di Mealy calcolano il loro output sulle transizioni. Pertanto, i grafici di Mealy possono calcolare il loro primo output nel momento in cui viene eseguito il percorso predefinito del grafico. Se si abilita la proprietà Execute (enter) Chart At Initialization di un grafico di Mealy, questo calcolo viene eseguito quando t = 0 (primo passo temporale). In caso contrario, viene eseguito quando t = 1 (passo temporale successivo). Per ulteriori informazioni, vedere Execute (enter) chart at initialization.

Semantica dei grafici di Moore

Le macchine di Moore sono macchine a stati finiti in cui l'output viene modificato ai fronti di clock. L'output di un grafico di Moore è una funzione esclusivamente dello stato:

y=g(X)

Ad ogni passo temporale, un grafico di Moore si attiva, calcola il proprio output, quindi valuta il proprio input per riconfigurarsi per il passo temporale successivo. Ad esempio, dopo aver valutato il proprio input, il grafico può transitare a una nuova configurazione di stati attivi. Il grafico calcola il proprio output prima di valutare il proprio input e aggiornare lo stato.

Per garantire che l'output sia una funzione esclusivamente dello stato attuale, le macchine a stati di Moore applicano questa semantica:

  • Gli output non dipendono dagli input.

  • Gli output non dipendono dagli output precedenti.

  • Gli output non dipendono dalla logica temporale.

Le macchine di Moore calcolano il loro output negli stati. Pertanto, le macchine di Moore possono calcolare gli output solo dopo l’esecuzione del percorso predefinito. Fino ad allora, gli output assumono i valori predefiniti.

Creazione di grafici di Mealy e di Moore

Quando si crea un grafico Stateflow il tipo predefinito è un modello ibrido di macchina a stati chiamato grafico classico. I grafici classici combinano la semantica dei grafici di Mealy e Moore con la semantica estesa del grafico Stateflow.

Per creare un grafico di Mealy, al prompt dei comandi di MATLAB®, inserire:

sfnew -Mealy

Block icon for Mealy chart.

Per creare un grafico di Moore, al prompt dei comandi di MATLAB, inserire:

sfnew -Moore

Block icon for Moore chart.

In alternativa, dopo aver aggiunto un blocco del grafico Stateflow a un modello di Simulink, è possibile scegliere il tipo di semantica per il grafico impostando la proprietà State Machine Type del grafico.

Vantaggi dei grafici di Mealy e di Moore

I grafici di Mealy e di Moore offrono i seguenti vantaggi rispetto ai grafici Stateflow classici:

  • È possibile verificare che i grafici di Mealy e di Moore creati siano conformi alle rispettive definizioni formali e alle regole semantiche. I messaggi di errore compaiono in fase di compilazione (non in fase di progettazione).

  • I grafici di Moore offrono un'implementazione più efficiente rispetto ai grafici classici per le destinazioni C/C++ e HDL.

  • È possibile utilizzare un grafico di Moore per modellare un loop di feedback. Nei grafici di Moore, gli input non hanno un passaggio diretto. È possibile progettare un loop con feedback dalla porta di output alla porta di input senza introdurre un loop algebrico. I grafici di Mealy e classici presentano un passaggio diretto e generano un errore in presenza di un loop algebrico.

    Simulink model containing a Moore chart in a feedback loop.

Vedi anche

Argomenti