Encontrar las expresiones lógicas de una máquina de estados finitos que tiene tres entradas posibles

2

Estoy familiarizado con las máquinas de estados finitos cuando hay dos estados posibles para la entrada, a los que llamaré w. Es decir, w = 1 o w = 0 . Sin embargo, ¿qué pasa con la situación en la que w puede ser igual a A, B, or C ? En esta situación, creo que tendría que representar la entrada con dos bits, como A = 00 , B = 01 y C = 11 .

Por ejemplo, supongamos que tengo que detectar la secuencia ABCB (usando una máquina Moore). A continuación se muestra una imagen del diagrama de estado, la tabla de estado y la tabla de asignación de estado:

Aquí, represento el estado actual con tres bits, y el siguiente estado con tres bits. Normalmente, no tengo problemas para encontrar las expresiones lógicas requeridas usando los mapas de Karnaugh dado que w = 1 or 0 . Sin embargo, aquí w = A, B, or C . Suponiendo que permito que A = 00 , B = 01 y C = 11 , ¿cómo derivaría las expresiones lógicas apropiadas?

Mi inclinación es resolver un Mapa de Karnaugh de 5 variables para cada flip-flop de Next State (es decir, Y2, Y1, Y0 ). Por ejemplo, Y2 es una función de y1, y2, y3, and w que se puede encontrar usando un Mapa de Karnaugh.

¿Estoy yendo en la dirección correcta con mi razonamiento aquí? Cualquier entrada constructiva es apreciada.

Nota: Esto está relacionado con una asignación mía, pero este no es el patrón que estoy tratando de detectar.

Edit: Ahora que lo pensé un poco más, parece que realmente tengo 5 bits para trabajar con respecto al Mapa de Karnaugh, que técnicamente tiene cuatro variables porque yn representa 1 bit y w representan dos bits.

    
pregunta Mlagma

1 respuesta

3

Ya casi ha terminado, todo lo que queda es obtener las ecuaciones lógicas de la tabla. Recuerde que w es una entrada, por lo que forma parte del estado actual y la utilizaremos para calcular los valores del siguiente estado.

Sea w un número de 2 bits, $$ w = w_1w_0 $$

así que si permitimos que A = 00, B = 01, y C = 11 entonces:

$$   w = \ left. \ begin {cases} \ bar {w_1} \ bar {w_0} &erio; w = A \\ \\ w_1 \ bar {w_0} & w = B \\ \\   w_1 w_0 & w = C \ end {cases} \ right \} \\ \\ $$

y los 5 estados son $$   S_i = \ left. \ begin {cases}         \ bar {y_2} \ bar {y_1} \ bar {y_0} & i = 1 \\ \\          \ bar {y_2} \ bar {y_1} y_0 & i = 2 \\ \\          \ bar {y_2} y_1 \ bar {y_0} & i = 3 \\ \\          \ bar {y_2} y_1 y_0 & i = 4 \\ \\          y_2 \ bar {y_1} \ bar {y_0} & i = 5         \ end {cases} \ right \} $$

Para obtener la lógica para calcular el siguiente estado, se obtiene la ecuación booleana para cada bit del siguiente estado por separado. Por ejemplo, para obtener la lógica para calcular y0:

$$  y_ {0, siguiente} = S_1 A + S_2 A + S_3A + S_3 C + S_4 A + S_5 A $$

$$  y_ {0, siguiente} = \ bar {y_2} \ bar {y_1} \ bar {y_0} \ bar {w_1} \ bar {w_0}       + \ bar {y_2} \ bar {y_1} y_0 \ bar {w_1} \ bar {w_0}       + \ bar {y_2} y_1 \ bar {y_0} \ bar {w_1} \ bar {w_0}       + \ bar {y_2} y_1 \ bar {y_0} w_1 w_0       + \ bar {y_2} y_1 y_0 \ bar {w_1} \ bar {w_0}       + y_2 \ bar {y_1} \ bar {y_0} \ bar {w_1} \ bar {w_0} $$

que se reduce a

$$  y_ {0, siguiente} = \ bar {w_1} \ bar {w_0} + \ bar {y_2} y_1 \ bar {y_0} w_1 w_0 $$

Repita esto para y2 y y1, para obtener el resto de la lógica combinatoria requerida.

La salida (z) es alta cuando esta máquina de estados está en el estado 5, por lo que Z estará dada por:

$$   z = S_5 = y_2 \ bar {y_1} \ bar {y_0} $$

Esta es una máquina de Moore, ya que Z solo depende del estado actual.

    
respondido por el KillaKem

Lea otras preguntas en las etiquetas