¿Cómo levantar las ecuaciones del Flip Flop D de un ASM-Chart?

1

Por ejemplo, ya tengo el siguiente ASM-Chart, que representa una puerta automática :

Consensoresenmovimiento...

Tiene4bloquesdeestado,hay3entradas:

P-Sensordepresencia,puertaAcompletamenteabierta,puertaFcompletamentecerrada;

Y2salidas:SF:ladireccióndelapuerta(cierreoapertura)conSF=1significasucierreyfinalmenteestáenON,loquesignificaqueelmotorestáfuncionando(lapuertaseestámoviendo).

AhoratengoquelevantarlasecuacionesdeestadoparalaFlipD.Flop.Yatengolassolucionesperonosécómollegaroquémétodoutilizar,

    
pregunta Alex

1 respuesta

2

Sugerencia: cree una tabla de verdad para la lógica del siguiente estado en función de los valores de entrada y estado actuales. Dado que hay 2 bits de estado actual (x1, x0) y 3 bits de entrada (P, A, F), habrá como máximo 32 filas en la tabla (2 ^ 5 = 32) si dibuja el total cuadrícula.

El proceso consiste básicamente en seguir los bordes que hacen la transición de un estado al siguiente. Donde quiera que el borde pase por una condición de decisión, el siguiente estado también depende de esa condición de entrada. Nota: Asumo que True = 1 y False = 0, y estoy usando _ para representar un término que no me importa. Este es el patrón básico para una tabla de verdad para 4 estados, sin considerar las condiciones de entrada.

x1  x0  P   A   F   |   D1  D0  
0   0   _   _   _   |   
0   1   _   _   _   |   
1   0   _   _   _   |   
1   1   _   _   _   |   

Para el primer estado (0,0), el siguiente estado depende de la entrada P. Las entradas A y F se ignoran en este estado. Así que la fila de la tabla de verdad para el estado = (0,0); P = 0; A = 0; F = 0 debe establecer el estado siguiente = (0,0); y la fila de la tabla de verdad para el estado = (0,0); P = 1; A = 0; F = 0 debe establecer el siguiente estado = (0,1).

x1  x0  P   A   F   |   D1  D0  
0   0   0   _   _   |   0   0  
0   0   1   _   _   |   0   1  
0   1   _   _   _   |   
1   0   _   _   _   |   
1   1   _   _   _   |   

También obtenemos el mismo resultado si A es 1, por lo que esas dos filas se pueden copiar para la variación A = 1. Los términos adicionales se reducirán cuando hagas el K-map. O puede eliminar las filas duplicadas de la tabla de verdad designando las entradas A y F como "no importa". ( A menudo, esto se indica con "X" en lugar de "0" o "1", lo que incidentalmente hace que la elección del instructor de x como nombre de variable sea algo poco estándar. Por lo general, en el mundo real usamos "s" para indicar la siguiente estado. ) Ya que vas a escribir las ecuaciones manualmente, puede que simplemente marques A y F como que no importa, así que hay menos cosas que escribir.

Desde el estado (0,1), el siguiente estado depende de la entrada A (pero no de las otras entradas).

x1  x0  P   A   F   |   D1  D0  
0   0   0   _   _   |   0   0  
0   0   1   _   _   |   0   1  
0   1   _   0   _   |   
0   1   _   1   _   |   
1   0   _   _   _   |   
1   1   _   _   _   |   

El borde del estado (0,1); A = 0 lleva al estado (0,1).

x1  x0  P   A   F   |   D1  D0  
0   0   0   _   _   |   0   0  
0   0   1   _   _   |   0   1  
0   1   _   0   _   |   0   1   
0   1   _   1   _   |   
1   0   _   _   _   |   
1   1   _   _   _   |   

El borde del estado (0,1); A = 1 lleva al estado (1,0).

x1  x0  P   A   F   |   D1  D0  
0   0   0   _   _   |   0   0  
0   0   1   _   _   |   0   1  
0   1   _   0   _   |   0   1   
0   1   _   1   _   |   1   0   
1   0   _   _   _   |   
1   1   _   _   _   |   

Siga el mismo procedimiento básico para construir el resto de la tabla de verdad. Los términos de salida de la máquina de estado se desarrollan de la misma manera.

    
respondido por el MarkU

Lea otras preguntas en las etiquetas