Máquina de estados finitos

-5

Mi tarea es diseñar un FSM cuya salida sea alta para un solo ciclo cada vez que se detecte el patrón 10110 en su entrada. Supongo que necesitaré cinco burbujas de estado.

    
pregunta Charles Witiker

3 respuestas

3

El estado 0 solo es necesario inmediatamente después del reinicio. Un 0 en el estado 2 debería volver al estado 1, y el estado 4 debería volver al estado 1 inmediatamente después de emitir. Además, tiene 2 transiciones para el estado 3 en un '(solo se necesita una para indicar el estado 4).

Mucho más difícil de lo que pensé que sería. E incluso esto es probablemente más complejo de lo que necesita ser. El estado 4 indica una coincidencia.

    
respondido por el Ignacio Vazquez-Abrams
2
       |    1         0
-----------------------
INITIAL|    1   INITIAL 
     1 |    1        10
    10 |  101   INITIAL
   101 | 1011        10
  1011 |    1     10110
 10110 |    -         -

No puedo publicar imágenes, así que opté por volver a la versión de 'tabla' del FSM (si reconstruyes la imagen a partir de ella, todo estaría claro).

La columna más a la izquierda de la tabla representa los estados posibles (6 en total - INICIAL, 1,10,101,1011,10110 ), la fila superior representa las entradas posibles ( 0 y 1 ) . El contenido de la tabla representa la transición de un estado (columna izquierda) a otro estado bajo la entrada dada (fila superior).

explicó: Comienzas y esperas en estado INICIAL leyendo cualquier 0 s que haya entrado.

Cuando presionas 1 , pasas al estado 1 y luego continúas desde allí de manera similar ... Básicamente, los nombres de los estados representan la parte de lectura más "buena" de la entrada. , pero esto es solo para una mejor orientación, puedes nombrar los estados como quieras. El estado 10110 es definitivo. Si lo alcanzas, deberías disparar la señal o lo que sea.

Sin embargo, aquí hay un problema en su pregunta: no ha especificado si solo desea disparar la señal cada vez que los últimos 5 dígitos son 10110 , o si desea 'reiniciar el contador' después de encontrar esa secuencia .

Por lo tanto, puede agregar la transición del estado 10110 a 101 en 1 y al estado de INITIAL en 0 , si lo desea para activar una señal cada vez que "los últimos 5 dígitos en la entrada fueron 10110 ".

De lo contrario, agregue la transición del estado 10110 al estado INICIAL tanto en 0 como en 1 (eso significa "olvídese de todo lo que lea hasta el momento y comience nuevamente") .

    
respondido por el Fanick
0

Aunque la respuesta de Ignacio Vázquez-Abrams es cerrada, falla si 0110 se ingresa desde el inicio.

    
respondido por el StainlessSteelRat

Lea otras preguntas en las etiquetas