Diseñar una máquina Moore

2

Para un proyecto de clase, debo diseñar una Máquina Moore basada en un problema que nos dieron. Ya lo he hecho con una máquina de Mealy, pero me estoy encontrando con errores con la máquina de Moore. Específicamente, mi diseño no se "apegará" a un estado cuando se supone que debe hacerlo. Por ejemplo, cuando la entrada es 1,0 y está en el estado 1, y alterno el reloj pero mantengo la entrada igual, no permanece en el estado 1. Consultar el diagrama de estado puede ayudarlo a comprender mejor de qué estoy hablando.

Comopuedever,midiseñodebetener2entradas.Laentrada0,1noesválidaparamidiseño.Elnúmeroentreparéntesiseslasalidaparacadaestado.

AquíestámitabladetransicióndeestadoylosmapasdeKarnaugh.Lasentradasestánenlaforma(P,N),olvidéagregar.Además,laentrada0,1notienesentidoenmidiseño.

Basándome en eso, obtuve las ecuaciones

D2 = (N '* q2' * q1 '* q0) + (P * N * q2 * q0') + (P * q2 '* q1' * q0)

D1 = (P * N * q2 '* q0') + (N '* q2 * q0')

D0 = P * N '* q0'

Me temo que mis ecuaciones pueden ser incorrectas, en realidad no tengo idea de cómo resolver 5 mapas K variables (y no se espera que lo hagamos para esta clase), así que usé un programa para resolverlos.

Usando estas ecuaciones, traté de simularlo usando LogicWorks. Aquí es donde me encontré con el problema anterior. En ciertas situaciones funciona, pero realmente no funciona cuando intento que se quede en un estado. ¿Alguna ayuda?

    
pregunta Bill

2 respuestas

2

Su diagrama de estado tiene una serie de errores, por lo que debe corregirlos antes de intentar implementar la máquina. Por ejemplo, desde S0 tiene dos transiciones etiquetadas 0,0 y desde S1 tiene dos transiciones etiquetadas 1,0. Revise cuidadosamente todos los estados y todas sus transiciones. No tiene sentido ir más lejos hasta que tenga la especificación correcta para la máquina.

    
respondido por el Joe Hass
0

Si el estado codifica q2q1q0 = 001 = Estado1, y (P, N) = (1, 0) entonces

Puedo ver eso en la ecuación,

D2 = (N '* q2' * q1 '* q0) + (P * N * q2 * q0') + (P * q2 '* q1' * q0)

N '= 1, q2' = 1, q1 '= 1 y q0 = 1, entonces el primer término (N' * q2 '* q1' * q0) = 1 forzando q2 a 1 en el siguiente reloj. Eso es definitivamente un problema.

    
respondido por el mj6174

Lea otras preguntas en las etiquetas