MÁQUINAS MOORE

Embed Size (px)

Citation preview

MQUINAS MOORE. MQUINAS MEALY Los circuitos lgicos secuenciales tratados en el texto principal de este libro son estudiados en cursos universitarios superiores desde un punto de vista un poco ms formal, utilizando un lenguaje un poco ms elegante. En realidad, se est hablando de lo mismo. No hay introduccin de nuevas tcnicas de diseo que podamos considerar imprescindibles para lo que podemos lograr con lo que ya hemos cubierto. De cualquier modo, este Suplemento tiene como objetivo cubrir esta perspectiva un poco ms formal con la finalidad de hacer este libro lo suficientemente flexible como para que pueda ser utilizado por estudiantes universitarios o por tcnicos interesados en proseguir con estudios ms formales en la materia de lgica digital.

Recordemos el contador binario de conteo ascendente construdo con flip-flops J-K. Supngase que hemos diseado un contador binario de conteo ascendente de 4 bits usando cuatro flip-flops J-K, al cual denotaremos aqu como una mquina. En cualquier momento, entre un pulso de la seal de reloj y el pulso que le sigue para llevar de el contador de un estado al siguiente, podemos hablar del estado de la mquina. Si en un momento dado entre un pulso de reloj y el que le sigue nuestro contador binario de 4 bits tiene al primer flip-flop J-K en el estado Q1=1, si el segundo flip-flop est en el estado Q2=0, si el tercer flip-flop J-K est en el estado Q3=0 y si el cuarto flip-flop est en el estado Q4=1, entonces el estado de la mquina es Q1Q2Q3Q4=1001. Puesto que, por diseo, esta es una mquina sin entradas, el siguiente estado de la mquina ser Q1Q2Q3Q4=1010. No puede ser de otra manera, puesto que as se ha diseado la mquina.

Veamos a continuacin una representacin para una mquina de estado finito (finite state machine) conocido como diagrama de estados:

Aqu tenemos una mquina que podemos suponer fue construda con dos flip-flops. Cada crculo representa uno de los estados de la mquina, la cual slo puede estar en un estado en un momento dado. Podemos ver esta representacin como un juego en el cual los crculos estn dibujados en el suelo y en cualquier momento estamos situados en uno de los crculos. De acuerdo al diagrama, esta mquina puede estar en uno de los siguientes tres estados: q1q0=00 q1q0=01 q1q0=10 Las flechas exteriores (vrtices) a los estados (crculos) que salen o llegan a un estado son la entrada o las entradas puestas en la mquina en un momento dado. En este caso, tenemos una mquina que posee una sola entrada designada como x. Veamos ahora lo que sucede en esta mquina dependiendo del valor de la entrada x y del estado q=q1q0 en el que se encuentre.

Si la mquina se encuentra en el estado q1q0=00 y la entrada es x=1, entonces en el siguiente "pulso de reloj" la mquina pasar al estado q1q0=01. Pero si la entrada es x=0 cuando la mquina se encuentra en el estado , entonces en el siguiente "pulso de reloj" pasar al estado q1q0=10.

Por otro lado, si la mquina se encuentra en el estado q1q0=01 y la entrada es x=1, entonces en el siguiente "pulso de reloj" la mquina pasar al estado q1q0=10. Pero si la entrada es x=0 cuando la mquina se encuentra en el estado q1q0=01, entonces en el siguiente "pulso de reloj" la mquina se mantendr en el mismo estado, como si estuviese "atorada" sin poder salir de all.

As, este diagrama de estados describe por completo el comportamiento de la mquina para todos los estados posibles de la mquina.

Podemos clasificar las mquinas usando dos modelos diferentes:

(1) Como mquinas Moore.

(2) Como mquinas Mealy.

A continuacin tenemos un ejemplo de una mquina Moore, llamada as en honor del Profesor Edward F. Moore (1925-2003) quien propuso este modelo matemtico para el estudio de mquinas secuenciales:

La mquina Moore se distingue por ser una mquina en la cual dentro de cada crculo adems de especificarse el estado de la mquina se especifican la salida o las salidas que se producen en dicho estado. Las salidas no son necesariamente iguales al estado de la mquina. Pueden serlo, como en el caso del contador binario de conteo ascendente de 4 bits mencionado previamente. Pero si cada una de las terminales Q del contador binario mencionado es conectada a una red de circuitos lgicos que convierte el conjunto de salidas en un conjunto de salidas distintas, entonces es obvio que las salidas producidas sern diferentes a los estados de la mquina. La notacin utilizada dentro de cada crculo tiene una forma como 10/11, en donde la primera palabra binaria (10) nos indica el estado de la mquina y la segunda palabra binaria (11) nos indica la salida de la mquina que denominaremos z.

En el ejemplo mencionado para una mquina Mealy, tenemos una mquina que podemos suponer fue construda con dos flip-flops. De acuerdo al diagrama, esta mquina puede estar en uno de los siguientes tres estados: q1q0=00 dando una salida de z1z0=01 q1q0=01 dando una salida de z1z0=11 q1q0=10 dando una salida de z1z0=11 Como en el caso de una mquina de estado finito comn y corriente que vimos al principio, las flechas exteriores a los estados (crculos) que salen o llegan a un estado son la entrada o las entradas puestas en la mquina en un momento dado. En este caso, tenemos una mquina Moore que tambin posee una sola entrada designada como x. El comportamiento de esta mquina dependiendo del valor de la entrada x y del estado q=q1q0 en el que se encuentre la mquina es similar a lo que vimos anteriormente, excepto que si la mquina se encuentra en el estado q1q0=00 tendr una salida z=z1z0=01. A continuacin tenemos un ejemplo de una mquina Mealy:

La mquina Mealy se distingue por ser una mquina en la cual si la mquina est en cierto estado, entonces al aplicarle cierta entrada transicionar a otro estado produciendo cierta salida como consecuencia de la transicin. La notacin utilizada en los vrtices tiene una forma como 1/0, en donde la primera palabra binaria (1) nos indica la entrada dada a la mquina y la segunda palabra binaria (0) nos indica la salida producida al llevarse a cabo la transicin de un estado al siguiente.

En el ejemplo mencionado para una mquina Mealy, tenemos una mquina que nuevamente podemos suponer que fue construda con dos flip-flops. De acuerdo al diagrama, esta mquina puede estar en uno de los siguientes tres estados: q1q0=00 q1q0=01 q1q0=11 En este caso, tenemos una mquina Mealy que tambin posee una sola entrada designada como x. La forma de leer este diagrama de estado es la siguiente: Si la mquina se encuentra en el estado q1q0=00, entonces de acuerdo con la notacin en el vrtice, 1/1, si se le aplica a la mquina una entrada de 1 entonces en el siguiente "pulso de reloj" transicionar al estado q1q0=01 produciendo una salida de 1. Y por el contrario, si est en ese estado de q1q0=00 y se le aplica a la mquina una entrada de 0, entonces en el siguiente "pulso de reloj" la mquina transicionar al estado q1q0=11 produciendo una salida de 1.

Se puede demostrar, con rigor matemtico, que toda mquina Moore es equivalente a una mquina Mealy, y viceversa. Con esto queremos decir que dada una mquina Moore podemos producir una mquina Mealy, o dada una mquina Mealy podemos producir una mquina Moore tal que ambas tendrn la misma secuencia de salidas q si ambas son alimentadas la misma secuencia en sus entradas x. La demostracin para convertir una mquina Mealy en una mquina Moore requiere aumentar el nmero de estados.

De inters para nosotros es el hecho de que existen programas de computadora que nos permiten convertir cualquier mquina de estado finito en un circuito lgico formado por funciones lgicas bsicas y flip-flops. Sin embargo, esto no se cubrir en este Suplemento, porque como ya se dijo, constituye materia para un curso ms avanzado impartido a nivel universitario, un curso en una materia conocida como Teora de Autmatas.

Se encuentra disponible en Internet un tutorial que entra en mayores detalles sobre las definiciones formales y las aplicaciones prcticas de las mquinas Moore y las mquinas Mealy, en la siguiente direccin:

nos d el acceso a un interesante programa educativo interactivo, el programa JFLAP, un conjunto de herramientas grficas para ayudar en el aprendizaje de los conceptos bsicos de la teora de Lenguajes Formales y la Teora de Autmatas. Podemos clasificar las mquinas usando dos modelos diferentes: (1) Como mquinas Moore. (2) Como mquinas Mealy. A continuacin tenemos un ejemplo de una mquina Moore, llamada as en honor del Profesor Edward F. Moore (1925-2003) quien propuso este modelo matemtico para el estudio de mquinas secuenciales:

La mquina Moore se distingue por ser una mquina en la cual dentro de cada crculo adems de especificarse el estado de la mquina se especifican la salida o las salidas que se producen en dicho estado. Las salidas no son necesariamente iguales al estado de la mquina. Pueden serlo, como en el caso del contador binario de conteo ascendente de 4 bits mencionado previamente. Pero si cada una de las terminales Q del contador binario mencionado es conectada a una red de circuitos lgicos que convierte el conjunto de salidas en un conjunto de salidas distintas, entonces es obvio que las salidas producidas sern diferentes a los estados de la mquina. La notacin utilizada dentro de cada crculo tiene una forma como 10/11, en donde la primera palabra binaria (10) nos indica el estado de la mquina y la segunda palabra binaria (11) nos indica la salida de la mquina que denominaremos z.En el ejemplo mencionado para una mquina Mealy, tenemos una mquina que podemos suponer fue construda con dos flip-flops. De acuerdo al diagrama, esta mquina puede estar en uno de los siguientes tres estados:

A continuacin tenemos un ejemplo de una mquina Mealy:

La mquina Mealy se distingue por ser una mquina en la cual si la mquina est en cierto estado, entonces al aplicarle cierta entrada transicionar a otro estado produciendo cierta salida como consecuencia de la transicin. La notacin utilizada en los vrtices tiene una forma como 1/0, en donde la primera palabra binaria (1) nos indica la entrada dada a la mquina y la segunda palabra binaria (0) nos indica la salida producida al llevarse a cabo la transicin de un estado al siguiente.En el ejemplo mencionado para una mquina Mealy, tenemos una mquina que nuevamente podemos suponer que fue construda con dos flip-flops. De acuerdo al diagrama, esta mquina puede estar en uno de los siguientes tres estados:

Mquinas de Moore Una mquina de Moore es similar a una de Mealy, salvo en que la respuesta slo depende del estado actual de la mquina y es independiente de la entrada. Precisamente, una mquina de Moore es una estructura de la forma

donde

La semntica procedimental de la mquina de Moore es la siguiente: Al inicio de cualquier computacin, la mquina se encuentra en el estado q0. Posteriormente, cuando la mquina se encuentra en un estado de entrada de salida , entonces transita al nuevo estado . , y recibe una literal y emite el smbolo

Ejemplos 1. Congruencias mdulo 3: Supongamos que se da un nmero en su representacin binaria y se quiere calcular su residuo mdulo 3. Consideremos la mquina cuya representacin grfica se muestra en la figura (3.3). Figure 3.3: Mquina de Moore para calcular congruencias mdulo 3 de nmeros dados en binario.

Las funciones de transicin y de respuesta quedan especificadas de manera tabular como sigue:

Por induccin en la longitud n de cualquier palabra representacin en binario de un nmero

, que sea la

se puede ver que la respuesta final obtenida

al aplicar es . En efecto, para n=1, con las palabras '0' y '1' se tiene las respuestas correctas 0 y 1. Sea n>0. Supongamos que para una palabra , de longitud n1, se tiene como respuesta final i, donde y x es el nmero representado en binario por . Para el nmero representado por la concatenacin de con s,

es 2x+s, el cual es congruente mdulo 3 con valores se tiene

. Al tabular estos ltimos

lo que corresponde naturalmente a la tabla de transiciones del autmata construdo. De hecho, ste es un caso particular del siguiente ejemplo ms general: Sea n>1 una base de representacin de nmeros naturales y sea k>0 un nmero natural. Sea mquina de Moore tal que

la

posee n smbolos de entrada posee k estados

, , y k smbolos de salida, uno por cada estado. ,y

tiene como transicin a la funcin tiene como respuesta .

Entonces

calcula el residuo mdulo k de cualquier nmero en base n. En la

tabla (3.3) presentamos las tablas de transicin de las mquinas , para k=5,7,13. Table 3.3: Clculo de residuos mdulo 5, 7 y 13 en notacin decimal.