La máquina de estados finitos no se inicializa en el estado inicial planificado

0

Tengo una asignación donde tengo que diseñar un FSM que genere el siguiente número hexadecimal en binario, un dígito a la vez: 12498A3B. El FSM debe usar una señal de reloj y D flip-flops para hacerlo.

Primero hice el diagrama de estado, luego hice la tabla de estado actual / siguiente, luego creé 4 mapas de Karnaugh para determinar la siguiente salida de bits de estado para cada DFF. Utilicé las 4 expresiones booleanas derivadas de estos mapas K para crear mi FSM en el programa "Logisim".

Mi circuito recorre cada dígito como debería en el orden correcto, sin embargo, la salida inicial de mi FSM no es el dígito inicial del número hexadecimal, sino uno de los dígitos en el centro del número. ¿Cómo es esto posible? Soy nuevo en el diseño de FSM, pero tuve la impresión de que, al implementar las expresiones booleanas obtenidas de los mapas K, se produciría el estado inicial esperado.

Puedo proporcionar capturas de pantalla de todo mi trabajo si se necesita mayor claridad.

    
pregunta KOB

1 respuesta

3

Cuando un flip flop se enciende, el estado en el que aparece es efectivamente aleatorio. Tienes que forzar al FSM a pasar al estado inicial por otros medios. De lo contrario parece muy probable que comience la secuencia en algún lugar del medio.

Si sus chanclas han establecido y restablecido los pines, entonces puede usar un circuito de detección de encendido para configurarlos a un estado inicial. Si no lo hacen, entonces necesitas algo adicional para impulsar el estado inicial en ellos.

    
respondido por el vini_i

Lea otras preguntas en las etiquetas