SlideShare una empresa de Scribd logo
1 de 19
MÁ Q U I N A S D E E S T A D O I T L A C 
MÁQUINAS DE ESTADOS FINITOS (FSM) 
Las máquinas de estados finitos, cuyo nombre proviene del hecho de que el comportamiento 
funcional de estos circuitos puede representarse mediante un número finito de estados, son una 
clase general de circuitos en los que las salidas dependen de la conducta anterior del circuito, 
así como de los valores presentes en las entradas. También se denominan circuitos 
secuenciales. En la mayor parte de los casos se usa una señal de reloj para controlar la 
operación de un circuito secuencial; un circuito de este tipo se llama circuito secuencial 
síncrono. La alternativa, en la que no se emplea ninguna señal de reloj, se denomina circuito 
secuencial asíncrono. Es más fácil diseñar circuitos síncronos y se utilizan en la inmensa 
mayoría de las aplicaciones prácticas. Estos circuitos son el tema del presente trabajo. 
Los circuitos síncronos secuenciales se realizan usando la lógica combinacio nal y uno o más 
flip- flops. Su estructura general se muestra en la Figura 1.1. El circuito tiene una serie de 
entradas principales, W, y produce una serie de salidas, Z. Los valores de las salidas de los 
flip- flops se conocen como el estado, Q, del circuito. Bajo el control de la señal de reloj, las 
salidas de los flip- flops cambian su estado según lo determina la lógica combinacional que 
alimenta las entradas de esos flip- flops. De esta manera el circuito pasa de un estado a otro. 
Para asegurar que sólo hay una transición de un estado a otro durante un ciclo del reloj, los 
flip-flops deben ser del tipo disparado por flanco. 
W 
reloj 
Z 
Circuito 
combinacional Flip-flops 
Q 
Circuito 
combinacional 
Figura 1.1. Forma general de un circuito secuencial. 
D I S E Ñ O D I G I T A L C O N V H D L | 1
MÁ Q U I N A S D E E S T A D O I T L A C 
Pueden dispararse ya sea por el flanco positivo (transición de 0 a 1) o por el negativo 
(transición de 1 a 0) del reloj. Se empleará el término flanco activo del reloj para referirnos al 
flanco del reloj que produce el cambio de estado. 
La lógica combinacional que proporciona las señales de entrada a los flip- flops deriva sus 
entradas de dos fuentes: las entradas principales, W, y las salidas presentes (actuales) de los 
flip- flops, Q. Por tanto, los cambios de estado dependen tanto del estado presente como de los 
valores de las entradas principales. 
En la Figura 1.1 se indica que las salidas del circuito secuencial se generan mediante otro 
circuito combinacional, de tal forma que las salidas son una función del estado presente de los 
flip- flops y de las entradas principales. Aun cuando las salidas siempre dependen del estado 
presente, no necesariamente deben depender de manera directa de las entradas principales. Por 
ende, la conexión mostrada en rojo en la figura podría existir o no. Para distinguir entre estas 
dos posibilidades, se acostumbra decir que los circuitos secuenciales cuyas salidas dependen 
sólo del estado del circuito son del tipo Moore, mientras que aquellas cuyas salidas dependen 
tanto del estado como de las entradas principales son del tipo Mealy. Estos nombres se 
asignaron en honor a Edward Moore y George Mealy, quienes investigaron el comportamiento 
de estos circuitos en la década de 1950. 
PASOS BÁSICOS DE DISEÑO 
Se presentan las técnicas para el diseño de circuitos secuenciales por medio de un ejemplo 
sencillo. Supóngase que deseamos diseñar un circuito que cumpla con la especificación 
siguiente: 
1. El circuito tiene una entrada, w, y una salida, z. 
2. Todos los cambios en el circuito deben ocurrir en el flanco positivo de una señal de reloj. 
3. La salida z es igual a 1 si durante dos ciclos del reloj inmediatamente anteriores la entrada 
w era igual 1. De lo contrario, el valor de z es igual a 0. 
Por tanto, el circuito detecta si dos o más 1 consecutivos ocurren en su entrada w. Los 
circuitos que detectan la ocurrencia de un patrón en particular en s u(s) entrada(s) se conocen 
D I S E Ñ O D I G I T A L C O N V H D L | 2
MÁ Q U I N A S D E E S T A D O I T L A C 
como detectores de secuencia. A partir de esta especificación es evidente que la salida z no 
puede depender únicamente del valor presente en w. Para ilustrar esto, considérese la 
secuencia de valores de las señales w y z durante 11 ciclos del reloj, como se muestra en la 
Tabla 1.1. Los valores de w se suponen arbitrariamente; los valores de z corresponden a 
nuestra especificación. Estas secuencias de valores de entrada y salida indican que para un 
valor de entrada, la salida puede ser 0 o 1. Por ejemplo, w=0 durante los ciclos del reloj t2 y t5, 
pero z=0 durante t2 y z=1 durante t5. De modo similar, w=1 durante t1 y t8, pero z=0 durante t1 
y z=1 durante t8. Esto significa que z no está determinada sólo por el valor presente en w, así 
que debe haber diferentes estados en el circuito que determinen el valor de z. 
DIAGRAMA DE ESTADO 
El primer paso en el diseño de una máquina de estado finito consiste en determinar cuántos 
estados se necesitan y cuáles transiciones son posibles de un estado a otro. No hay un 
procedimiento determinado para esta tarea. 
Tabla 1.1. Secuencias de señales de entrada y salida. 
Ciclo de reloj t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 
w: 0 1 0 1 1 0 1 1 1 0 1 
z: 0 0 0 0 0 1 0 0 1 1 0 
El diseñador debe pensar detenidamente en lo que la máquina debe hacer. Una buena forma de 
comenzar es elegir un estado en particular como estado inicial; éste es el estado en el que debe 
entrar el circuito cuando se encienda por primera vez o cuando se le aplique una señal reset 
(reinicio). Para nuestro ejemplo, supongamos que el estado inicial se llama estado A. Siempre 
que la entrada w sea 0, el circuito no necesita hacer nada y, por tanto, cada flanco activo del 
reloj debe dar como resultado que el circuito permanezca en el estado A. Cuando w se vuelve 
igual a 1, la máquina debe reconocerlo y pasar a un estado distinto, al cual llamaremos estado 
B. Esta transición se lleva a cabo en el siguiente flanco activo del reloj después que w se ha 
vuelto igual a 1. En el estado B, igual que en el A, el circuito debe mantener el valor de la 
salida z en 0, ya que aún no ha visto w=1 para dos ciclos del reloj consecutivos. Cuando se 
D I S E Ñ O D I G I T A L C O N V H D L | 3
MÁ Q U I N A S D E E S T A D O I T L A C 
halla en el estado B, si w es 0 en el siguiente flanco activo del reloj el circuito debe regresar al 
estado A. Sin embargo, si w =1 cuando se encuentra en el estado B el circuito debe cambiar a 
un tercer estado, llamado C, y luego debe generar una salida z=1. El circuito ha de permanecer 
en el estado C siempre que w=1 y debe seguir manteniendo z=1. Cuando w se vuelve 0, la 
máquina tiene que moverse de regreso al estado A. Como la descripción anterior maneja todos 
los valores posibles de la entrada w que la máquina puede encontrar en sus distintos estados, 
se puede concluir que se necesitan tres estados para implementar la máquina deseada. Ahora 
que se han determinado de manera informal las posibles transiciones entre los estados, se 
describirá un procedimiento más formal para diseñar el circuito secuencial correspondiente. El 
comportamiento de un circuito secuencial puede describirse de varias formas. El método 
conceptualmente más simple es utilizar una representación gráfica en forma de un diagrama de 
estado, que es una gráfica que representa los estados del circuito como nodos (círculos) y las 
transiciones entre estados como arcos con dirección. El diagrama de estado de la Figura 1.2 
define el comportamiento que corresponde a nuestra especificación. 
W=1 
Reset 
A/z=0 B/z=0 
W=0 
C/z=1 
W=1 
W=0 
W=0 
W=1 
Figura 1.2. Diagrama de estado de un circuito secuencial simple. 
Los estados A, B y C aparecen como nodos en el diagrama. El nodo A representa el estado 
inicial y también el estado en el que entrará el circuito después que se aplique una entrada w=0. 
En este estado la salida z debe ser 0, lo cual se indica como A/z=0 en el nodo. El circuito debe 
permanecer en el estado A siempre que w=0, lo que se indica por medio de un arco con una 
D I S E Ñ O D I G I T A L C O N V H D L | 4
MÁ Q U I N A S D E E S T A D O I T L A C 
etiqueta w=0 que se origina y termina en este nodo. La primera ocurrencia de w=1 (después de 
la condición w=0) se registra al pasar del estado A al estado B. Esta transición se indica en la 
gráfica por medio de un arco que se origina en A y termina en B. La etiqueta w=1 en este arco 
denota el valor de entrada que ocasiona la transición. En el estado B la salida permanece en 0, 
lo cual se indica como B/z=0 en el nodo. 
Cuando el circuito se halla en el estado B, cambiará al estado C si w aún es igual a 1 en el 
siguiente flanco activo del reloj. En el estado C la salida z se vuelve igual a 1. Si w permanece 
en 1 durante los ciclos subsiguientes del reloj, el circuito permanecerá en el estado C 
manteniendo z=1. No obstante, si w se vuelve 0 cuando el circuito está ya sea en el estado B o 
en el estado C, el siguiente flanco activo del reloj producirá una transición al estado A. En el 
diagrama se indica que la entrada Reset se utiliza para forzar el circuito a entrar en el estado A, 
lo cual es posible independientemente del estado en el que se encuentre el circuito. 
Se podría tratar Reset simplemente como otra entrada al circuito y mostrar una transición de 
cada estado al estado inicial A bajo el control de la entrada Reset. Esto complicaría el 
diagrama de modo innecesario. Los estados de una máquina de estado fi nito se implementan 
usando flip-flops. Como por lo general éstos tienen la capacidad reset, se puede suponer que la 
entrada Reset se utiliza para establecer todos en 0 mediante tal capacidad. Se indicará esto 
como se muestra en la Figura 1.2 para mantener los diagramas tan simples como sea posible. 
TABLA DE ESTADO 
Aun cuando el diagrama de estado brinda una descripción del comportamiento de un circuito 
secuencial que es fácil de comprender, para proseguir con la implementación del circuito es 
conveniente traducir la información contenida en el diagrama de estado en forma de tabla. 
Esto se muestra la Tabla 1.2 la cual corresponde a la tabla de estado para el circuito secuencial. 
Ahí se indican todas las transiciones de cada estado presente al estado siguiente para los 
diferentes valores de la señal de entrada. Nótese que la salida z se especifica respecto al estado 
presente, en concreto, el estado en el que se halla el circuito en el momento presente. 
Obsérvese también que no se incluye la entrada Reset; en vez de ello se hizo la suposición 
implícita de que el primer estado en la tabla es el estado inicial. Ahora se muestran los pasos 
D I S E Ñ O D I G I T A L C O N V H D L | 5
MÁ Q U I N A S D E E S T A D O I T L A C 
de diseño que producirán el circuito final. Para explicar los conceptos de diseño básicos, 
primero se sigue un procedimiento tradicional de realizar manualmente cada paso de diseño. 
Tabla 1.2. Tabla de estado para el circuito secuencial de la Figura 1.2 
Figura 1.2. 
Estado presente Estado siguiente Salida 
z 
w=0 w=1 
A A B 0 
B A C 0 
C A C 1 
Luego se presenta una explicación de las técnicas de diseño automatizadas que usan 
herramientas de diseño asistido por computadora (CAD). 
ASIGNACION DE ESTADOS 
La Tabla 1.2 define los tres estados en términos de las letras A, B y C. Cuando se implementa 
en un circuito lógico, cada estado se representa por medio de una valoración (combinación de 
valores) en particular de las variables de estado. Cada variable de estado puede implementarse 
en forma de un flip-flop. Como deben producirse tres estados, basta utilizar dos variables de 
estado. Sean estas variables y1 y y2. Ahora se puede adaptar el diagrama de bloque general de 
la Figura 1.1 a nuestro ejemplo, como se muestra en la Figura 1.3, para indicar la estructura 
del circuito que implementa la máquina de estado finito buscada. Dos flip- flops representan 
las variables de estado. 
A partir de la especificación de la Figura 1.2 y la Tabla 1.2, la salida z está determinada sólo 
por el estado presente del circuito. Por tanto, el diagrama de bloque de la Figura 1.3 muestra 
que z es una función sólo de y1 y y2; este diseño es más del tipo Moore. Es necesario diseñar 
un circuito combinacional que utilice y1 y y2 como señales de entrada y que genere una señal 
de salida correcta z para todas las combinaciones posibles de estas entradas. 
Las señales y1 y y2 también se alimentan de regreso en el circuito combinacional que determina 
el siguiente estado de la FSM. 
D I S E Ñ O D I G I T A L C O N V H D L | 6
MÁ Q U I N A S D E E S T A D O I T L A C 
Circuito 
combinacional 
Circuito 
combinacional 
w 
clk 
Y1 
Z 
Y2 
y1 
y2 
Figura 1.3. Un circuito secuencial general con la entrada w, la salida z y dos flip-flops 
de estado. 
Este circuito también utiliza la señal de entrada principal w. Sus salidas son las dos señales, Y1 
y Y2, que se emplean para establecer el estado de los flip- flops. Cada flanco activo del reloj 
hará que los flip- flops cambien su estado a los valores de Y1 y Y2en ese momento. Por 
consiguiente, Y1 y Y2 se llaman variables del estado siguiente y y1 y y2 variables del estado 
presente. Debemos diseñar un circuito combinacional con entradas w, y1 y y2 tales que, para 
todas las combinaciones de estas entradas, las salidas Y1 y Y2 ocasionarán que la máquina pase 
al estado siguiente que satisface la especificación. El paso siguiente en el proceso de diseño 
consiste en crear una tabla de verdad que defina este circuito, así como el circuito que genera z. 
Para producir la tabla de verdad deseada, asignamos una combinación específica de las 
variables y1 y y2 para cada estado. Una asignación posible se da en la Tabla 1.3, donde los 
estados A, B y C se representan por medio de y1y2 =00, 01 y 10, respectivamente. La cuarta 
combinación, y2 y1=11, no se necesita en este caso. 
El tipo de tabla dado en la Tabla 1.3 suele llamarse tabla de asignación de estados. Esta tabla 
puede servir directamente como una tabla de verdad para la salida z con las entradas y1 y y2. 
Aun cuando para las funciones del estado siguiente Y1 y Y2 la tabla no posee la apariencia de 
una tabla de verdad normal, porque hay dos columnas separadas en la tabla para cada valor de 
D I S E Ñ O D I G I T A L C O N V H D L | 7
MÁ Q U I N A S D E E S T A D O I T L A C 
w, es evidente que la tabla incluye toda la información que define las funciones del estado 
siguiente en términos de las combinaciones de las entradas w, y1 y y2. 
Tabla 1.3. Tabla de asignación de estados para el circuito secuencial de la Tabla 1.2 
secuencial de la fi gura 8.4. 
Estado presente 
y1 y y2 
Estado siguiente Salida 
z 
w=0 w=1 
Y2Y1 Y2Y1 
A 
B 
C 
Figura 1.2. 
00 00 01 0 
01 00 10 0 
10 00 10 1 
11 dd dd d 
ELECCIÓN DE FLIP-FLOPS Y DERIVACIÓN DE LAS EXPRESIONES DE ESTADO 
SIGUIENTE Y DE SALIDA 
A partir de la tabla de asignación de estados anterior se pueden derivar las expresiones lógicas 
de las funciones del estado siguiente y de la salida. Pero primero se debe decidir el tipo de 
flip- flops que se utilizarán en el circuito. La opción más sencilla es usar flip- flops tipo D, pues 
en este caso los valores de Y1 y Y2 simplemente se registran en los flip- flops para que se 
vuelvan los nuevos valores de y1 y y2. En otras palabras, si las entradas a los flip- flops se 
llaman D1 y D2, entonces estas señales son las mismas que Y1 y Y2. 
Las expresiones lógicas requeridas pueden deducirse usando mapas de Karnaugh, quedando de 
la siguiente forma 
Y  
wy y 
1 2 
Y  w y  
y 
z  
y 
( ) 
2 1 2 
2 
Puesto que D1=Y1 y D2=Y2, el circuito lógico correspondiente a las expresiones anteriores se 
implementa como se muestra en la Figura 1.4. Obsérvese que se incluye una señal de reloj y 
D I S E Ñ O D I G I T A L C O N V H D L | 8
MÁ Q U I N A S D E E S T A D O I T L A C 
que el circuito se proporciona con una capacidad reset activa en nivel bajo. Conectar la entrada 
clear de los flip- flops a una señal Resetn externa, como se muestra en la figura, brinda una 
forma sencilla de forzar a que el circuito entre en un estado conocido. Si aplicamos la señal 
Resetn=0 al circuito, entonces los dos flip- flops se borrarán, poniendo la FSM en el estado 
y2y1= 00. 
Q GRB 
Q 
CLR 
D 
Q GRB 
Q 
CLR 
Y2 
Y1 
D w 
clk 
resetn 
z 
y2 
y1 
Figura 1.4. Implementación final del circuito secuencial. 
DIAGRAMA DE TIEMPO 
de estado. 
Para comprender cabalmente la operación del circuito consideremos su diagrama de tiempo 
presentado en la Figura 1.5. En el diagrama se describen las formas de onda de las señales que 
corresponden a las secuencias de valores de la Tabla 1.1. 
Como estamos utilizando flip- flops disparados por el flanco positivo, todos los cambios en las 
señales ocurren poco tiempo después del flanco positivo del reloj. La cantidad de demora del 
flanco del reloj depende de los retrasos de propagación a través de los flip-flops. Obsérvese 
que la señal de entrada w también se muestra para cambiar ligeramente después del flanco 
activo del reloj. Esta suposición es buena porque en un sistema digital típico una entrada como 
w sería sólo una salida de otro circuito sincronizado por el mismo reloj. 
D I S E Ñ O D I G I T A L C O N V H D L | 9
MÁ Q U I N A S D E E S T A D O I T L A C 
Figura 1.5. Diagrama de tiempo para el circuito de la Figura 1.4. 
de estado. 
Un aspecto clave que ha de notarse es que aun cuando w cambia poco tiempo después del 
flanco activo del reloj y, por tanto, su valor es igual a 1 (o a 0) para casi todo el ciclo de re loj, 
no ocurrirá ningún cambio en el circuito hasta el comienzo del siguiente ciclo de reloj cuando 
el flanco positivo haga que los flip- flops cambien de estado. Por ende, el valor de w debe ser 
igual a 1 para dos ciclos de reloj si el circuito va a alcanzar el estado C y a generar la salida 
z=1. 
MODELO DE ESTADO TIPO MEALY 
El ejemplo introductorio fue un circuito secuencial en el que cada estado tenía valores 
específicos de las señales de salida asociadas con él. Como se explicó al principio del presente 
trabajo, se dice que estas máquinas de estado finito corresponden al tipo Moore. Ahora se 
explorará el concepto de máquinas tipo Mealy en las que los valores de salida se generan con 
base tanto en el estado del circuito como en los valores presentes en las entradas. Esto brinda 
mayor flexibilidad en el diseño de circuitos secuenciales. Se presentaran las máquinas tipo 
Mealy usando una versión un tanto modificada de un ejemplo anterior. 
D I S E Ñ O D I G I T A L C O N V H D L | 10
MÁ Q U I N A S D E E S T A D O I T L A C 
La esencia del primer circuito secuencial presentado es generar la salida z=1 siempre que una 
segunda ocurrencia de la entrada w=1 se detecte en ciclos del reloj consecutivos. La 
especificación indica que la salida z debe ser igual a 1 en el ciclo del reloj que sigue a la 
detección de la segunda ocurrencia de w=1. Supóngase ahora que se elimina este requisito y se 
especifica ahora que la salida z debe ser igual a 1 en el mismo ciclo del reloj cuando se detecta 
la segunda ocurrencia de w=1. Por tanto, una secuencia de entrada-salida adecuada puede ser 
como se muestra en la Tabla 1.4. Para ver cómo se puede producir el comportamiento dado en 
esta tabla se comienza seleccionando un estado inicial, A. Siempre que w=0, la máquina debe 
permanecer en el estado A, produciendo la salida z=0. Cuando w=1, la máquina debe pasar a 
un estado nuevo, B, para registrar el hecho de que ha ocurrido una entrada igual a 1. 
Tabla 1.4. Secuencias de señales de entrada y salida (ejemplo 2). 
Ciclo de reloj t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 
w: 0 1 0 1 1 0 1 1 1 0 1 
z: 0 0 0 0 1 0 0 1 1 0 0 
Si w aún es igual a 1 cuando la máquina está en el estado B, lo cual ocurre si w=1 durante al 
menos dos ciclos consecutivos de reloj, la máquina debe permanecer en el estado B y producir 
una salida z=1. En cuanto w se vuelve 0, z debe volverse 0 de inmediato y la máquina debe 
regresar al estado A en el siguiente flanco activo del reloj. Por ende, el comportamiento 
especificado en la Tabla 1.4 puede lograrse con una máquina de dos estados, la cual tiene un 
diagrama de estado como el que aparece en la Figura 1.6. Sólo se requieren dos estados porque 
hemos permitido que el valor de salida dependa del valor presente en la entrada así como del 
estado presente de la máquina. El diagrama indica que si la máquina se halla en el estado A, 
seguirá en él si w=0 y la salida será 0. Esto se señala mediante un arco con la etiqueta 
w= 0/z=0. Cuando w se vuelve 1, la salida permanece en 0 hasta que la máquina pasa al estado 
B en el siguiente flanco activo del reloj. Esto se denota por medio de un arco de A a B con la 
etiqueta w=1/z=0. En el estado B la salida será 1 si w=1, y la máquina permanecerá en el 
estado B, como se indica con la etiqueta w=1/z=1 en el arco correspondiente. Sin embargo, si 
D I S E Ñ O D I G I T A L C O N V H D L | 11
MÁ Q U I N A S D E E S T A D O I T L A C 
w=0 en el estado B, entonces la salida será 0 y una transición al estado A ocurrirá en el 
siguiente flanco activo del reloj. 
RESET 
W=1/ Z=0 
A B 
W=0/Z=0 W=1/Z=1 
W=0/Z=0 
Figura 1.6. Diagrama de estado de una FSM que realiza la tarea de la Tabla 1.4. 
Tabla 1.4. 
Un aspecto importante que debe comprenderse es que durante el ciclo de reloj actual el valor 
de estado. 
de salida corresponde a la etiqueta en el arco que proviene del nodo del estado presente. 
Podemos implementar la FSM de la Figura 1.6 usando los mismos pasos de diseño que en el 
ejemplo anterior. La tabla de estado se muestra en la Tabla 1.5. En ella se indica que la salida z 
depende del valor presente en la entrada w y no sólo del estado presente. 
Tabla 1.5. Secuencias de señales de entrada y salida (ejemplo 2). 
Estado presente Estado siguiente Salida z 
w=0 w=1 w=0 w=1 
A A B 0 0 
B A B 0 1 
La Tabla 1.6 proporciona la tabla de asignación de estados. Como sólo hay dos estados, es 
suficiente utilizar una sola variable de estado, y. Si suponemos que y se produce con un flip-flop 
D, las expresiones requeridas de estado siguiente y de salida son 
Y D w 
z wy 
  
 
D I S E Ñ O D I G I T A L C O N V H D L | 12
MÁ Q U I N A S D E E S T A D O I T L A C 
El circuito resultante se presenta en la Figura 1.7 junto con un diagrama de tiempo el cual se 
presenta en la Figura 1.8. Este último corresponde a las secuencias de entrada-salida de la 
Tabla 1.4. 
Tabla 1.6. Tabla de asignación de estados para la FSM de la Tabla 1.4 
Estado presente Estado siguiente Salida z 
Tabla 1.5. 
w=0 w=1 w=0 w=1 
y Y Y z z 
A 
B 
0 0 1 0 1 
1 0 1 0 1 
La mayor flexibilidad de las FSM tipo Mealy a menudo desemboca en la realización de un 
circuito más simple. 
z 
Q GRB 
Q 
CLR 
D 
w 
reloj 
resetn 
y 
z 
Figura 1.7. Implementación de la máquina de estado finito de la Tabla 1.5. 
Tabla 1.4. 
de estado. 
D I S E Ñ O D I G I T A L C O N V H D L | 13
MÁ Q U I N A S D E E S T A D O I T L A C 
Figura 1.8. Diagrama de tiempo de la máquina de estado finito de la Figura 1.6. 
Tabla 1.4. 
DISEÑO DE MÁQUINAS DE ESTADO FINITO de estado. 
CON HERRAMIENTAS (CAD) 
Se dispone de herramientas CAD muy modernas para el diseño de máquinas de estado fi nito y 
las presentamos en esta sección. Una forma rudimentaria de emplear ta les herramientas para el 
diseño de una FSM podría ser como sigue: el diseñador usa las técnicas manuales descritas 
antes para derivar un circuito con flip- flops y compuertas lógicas a partir de un diagrama de 
estado. Este circuito se introduce en el sistema CAD trazando un diagrama esquemático o 
escribiendo código estructural en lenguaje de descripción de hardware (HDL, Hardware 
Description Language). El diseñador utiliza entonces el sistema CAD para simular el 
comportamiento del circuito y las herramientas CAD para implementar en forma automática el 
circuito en un chip, por ejemplo en un PLD. 
Resulta tedioso sintetizar manualmente un circuito a partir de un diagrama de estado. Como 
las herramientas CAD se diseñaron para evitar esa tarea, se han desarrollado formas más 
atractivas de utilizarlas para el diseño de FSM. Un mejor enfoque consiste en introducir 
directamente el diagrama de estado en el sistema CAD y realizar todo el proceso de síntesis de 
forma automática. 
Las herramientas CAD soportan este método en dos formas principales. Otro enfoque radica 
en permitir al diseñador trazar el diagrama de estado utilizando una herramienta gráfica 
parecida a la herramienta de captura esquemática. El diseñador d ibuja círculos para 
D I S E Ñ O D I G I T A L C O N V H D L | 14
MÁ Q U I N A S D E E S T A D O I T L A C 
representar los estados y arcos para representar las transiciones de un estado a otro, e indica 
las salidas que la máquina debe generar. El enfoque más popular consiste en utilizar HDL para 
escribir código que represente el diagrama de estado, como se describe enseguida. 
Muchos HDL proveen constructores que permiten al diseñador representar un diagrama de 
estado. Para mostrar cómo se hace esto, se proporcionará el código de VHDL que representa 
la máquina simple diseñada manualmente en el primer ejemplo. 
CÓDIGO DE VHDL PARA FSM TIPO MOORE 
VHDL no define una manera estándar de describir una máquina de estado finito. Por tanto, 
cuanto nos apeguemos a la sintaxis de VDHL requerida, habrá más de una forma de describir 
una FSM. En la Figura 1.9 se presenta un ejemplo de código de VHDL para la FSM de la 
Figura 1.2. En aras de facilitar la explicación, las líneas de código están numeradas en el lado 
izquierdo. En las líneas 21 a 26 se declara una entidad llamada simple, que tiene puertos de 
entrada Clock, Resetn y w, y un puerto de salida, z. En la línea 27 se usa el nombre Behavior 
para el cuerpo de arquitectura, pero desde luego en su lugar podría utilizarse cualquier nombre 
válido en VHDL. En la línea 28 se introduce la palabra reservada TYPE, que es una función 
de VHDL que nos permite crear un tipo de señal definido por el usuario. El nuevo tipo de 
señal se llama State_type, y el código especifica que una señal de este tipo puede tener tres 
valores posibles: A, B o C. En la línea 29 se define una señal llamada y que es del tipo 
State_type. La señal y se usa en el cuerpo de arquitectura para representar las salidas de los 
flip- flops que implementan los estados de la FSM. El código no especifica el número de bits 
representado por y. En vez de ello, indica que y puede tener los tres valores simbólicos A, B y 
C. Esto significa que no hemos especificado el número de flip- flops de estado que deben 
utilizarse para la FSM. Como veremos enseguida, el compilador de VHDL elige de forma 
automática un número apropiado de flip-flops de estado cuando se sintetiza un circuito para 
implementar la máquina. 
También elige la asignación de estado para los estados A, B y C. Algunos sistemas CAD, 
como Quartus II, suponen que el primer estado enumerado en la instrucción TYPE (línea 28) 
es el estado reset para la máquina. La asignación de estado que tiene todas las salidas de flip- 
D I S E Ñ O D I G I T A L C O N V H D L | 15
MÁ Q U I N A S D E E S T A D O I T L A C 
flop iguales a 0 se utiliza para este estado. Más adelante en esta sección mostraremos cómo es 
posible especificar manualmente la codificación de estados en el código de VHDL si así se 
desea. 
Una vez definida una señal para representar los flip- flops de estado, el siguiente paso consiste 
en especificar las transiciones entre estados. En la Figura 1.9 se presenta una forma de 
describir el diagrama de estado; esto se representa por medio del proceso de las líneas 31 a 57. 
Figura 1.9. Código de VHDL para la FSM de la Figura 1.2. 
Tabla 1.4. 
D I S E Ñ O D I G I T A L C O N V H D L | 16 
de estado.
MÁ Q U I N A S D E E S T A D O I T L A C 
La instrucción PROCESS describe la máquina de estado fi nito como un circuito secuencial. 
Las señales utilizadas por el proceso son Clock, Resetn, w y y, y la única señal modificada por 
el proceso es y. Las señales de entrada que pueden hacer que el proceso cambie la señal y son 
Clock y Resetn; por consiguiente, aparecen en la lista de sensibilidad. Nótese que w no está 
incluida en esa lista, ya que un cambio en su valor no puede afectar a y hasta que ocurre un 
cambio en la señal Clock. 
En las líneas 33 y 34 se especifica que la máquina debe entrar en el estado A, el estado reset, si 
Resetn=0. Puesto que la condición para la instrucción IF no depende de la señal de reloj, el 
estado reset es asíncrono, razón por la que Resetn se incluye en la lis ta de sensibilidad en la 
línea 31. 
Cuando la señal reset no se válida, la instrucción ELSIF en la línea 35 especifica que el 
circuito espera el flanco positivo de la señal de reloj (Clock). El comportamiento de y se 
define por medio de la instrucción CASE de las líneas 36 a 55. Corresponde al diagrama de 
estado de la Figura 1.2. Como la instrucción CASE está dentro de la instrucción ELSIF, 
cualquier cambio en y sólo puede ocurrir como resultado de un flanco positivo del reloj. En 
otras palabras, la condición ELSIF implica que y debe implementarse como la salida de uno o 
más flip-flops. Cada cláusula WHEN en la instrucción CASE representa un estado de la 
máquina. Por ejemplo, la cláusula WHEN en las líneas 37 a 42 describe el comportamiento de 
la máquina cuando se halla en el estado A. Según el pr incipio de la instrucción IF en la línea 
38, cuando la FSM se encuentra en el estado A, si w=0 la máquina debe permanecer en el 
estado A; pero si w=1, debe cambiar al estado B. Las cláusulas WHEN en la instrucción 
CASE corresponden exactamente al diagrama de estado de la Figura 1.9. La parte final de la 
descripción de la máquina de estado aparece en la línea 58. Especifica que si la máquina se 
encuentra en el estado C, entonces la salida z debe ser 1; de lo contrario, z debe ser 0. 
ESPECIFICACIÓN DE FSM TIPO MEALY CON VHDL 
Una FSM tipo Mealy puede especificarse de una manera similar a una FSM tipo Moore. En la 
Figura 1.10 se proporciona el código de VHDL completo para la FSM de la Figura 1.6. Las 
transiciones de estado se describen de la misma forma que en nuestro ejemplo de VHDL 
D I S E Ñ O D I G I T A L C O N V H D L | 17
MÁ Q U I N A S D E E S T A D O I T L A C 
original de la Figura 1.9. La señal y representa los flip-flops de estado y State_type especifica 
que y puede tener los valores A y B. Comparado con el código de la Figura 1.9, la principal 
diferencia en el caso de una FSM tipo Mealy es el modo en que se escribe el código para la 
salida. 
Figura 1.10. Código de VHDL para la FSM de la Figura 1.6. 
Tabla 1.4. 
de estado. 
D I S E Ñ O D I G I T A L C O N V H D L | 18
MÁ Q U I N A S D E E S T A D O I T L A C 
En la Figura 1.10 la salida z se define con una instrucción CASE. Establece que cuando la 
FSM se halla en el estado A, z debe ser 0, pero cuando se encuentra en el estado B, z debe 
tomar el valor de w. Esta instrucción CASE describe de manera apropiada la lógica necesaria 
para z, pero tal vez no sea evidente por qué se usa una segunda instrucción CASE en el código 
en vez de especificar el valor de z dentro de la instrucción CASE que define las transiciones 
de estado. La razón es que la instrucción CASE para las transiciones de estado está anidada 
dentro de la instrucción IF que espera que ocurra un flanco del reloj. Por consiguiente, si 
colocamos el código para z dentro de esta instrucción CASE, entonces el valor de z sólo 
podría cambiar como resultado de un flanco del reloj. Esto no satisface los requisitos de la 
FSM tipo Mealy, pues el valor de z debe depender no sólo del estado de la máquina sino 
también de la entrada w. 
CONCLUSIONES 
En el siguiente texto se consiguió discernir entre las dos máquinas de estado a las que se 
refiere este texto, se abstrajeron los conceptos de diagrama y tabla de estado un circuito 
secuencial como una FSM, además de que se reafirmaron las bases para el diseño de circuitos 
secuenciales(máquinas de estado). 
BIBLOGRAFÍA: 
Brown, Stephen y Vranesic, Zvonko Fundamentos de lógica digital con diseño VHDL, 
segunda edición, editorial Mc Graw Hill. 
Tocci, Ronald J. Sistemas digitales principios y aplicaciones, décima edición, Editorial 
Prenctice Hall. 
Pong P. Chu, “FPGA Prototyping by VHDL Examples: Xilinx Spartan 3-E”, primera edición, 
Ed Wiley & Sons, 2008. 
Floyd Thomas L; Fundamentos de sistemas digitales, novena edición, Editorial Pearson 
Educación, México 2006. 
Morris Mano, M., Diseño Digital, Tercera edición, Pearson Educación, México 2003. 
D I S E Ñ O D I G I T A L C O N V H D L | 19

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Mapas de Karnaugh
Mapas de KarnaughMapas de Karnaugh
Mapas de Karnaugh
 
multivibradores Monoestable y astable
multivibradores Monoestable y astablemultivibradores Monoestable y astable
multivibradores Monoestable y astable
 
Programación GRAFCET
Programación GRAFCETProgramación GRAFCET
Programación GRAFCET
 
Informe sobre Arduino.
Informe sobre Arduino.Informe sobre Arduino.
Informe sobre Arduino.
 
Sistemas lineales invariantes en el tiempo
Sistemas lineales invariantes en el tiempoSistemas lineales invariantes en el tiempo
Sistemas lineales invariantes en el tiempo
 
Neumatica informe terminado
Neumatica informe terminadoNeumatica informe terminado
Neumatica informe terminado
 
Clases Amplificadores Operacionales
Clases Amplificadores OperacionalesClases Amplificadores Operacionales
Clases Amplificadores Operacionales
 
Practica 3 e3 ujt
Practica 3 e3 ujtPractica 3 e3 ujt
Practica 3 e3 ujt
 
Electroneumatica
ElectroneumaticaElectroneumatica
Electroneumatica
 
TTL-CMOS
TTL-CMOSTTL-CMOS
TTL-CMOS
 
Electrónica digital: Comparadores
Electrónica digital: ComparadoresElectrónica digital: Comparadores
Electrónica digital: Comparadores
 
Sesion contadores y registros
Sesion  contadores y registrosSesion  contadores y registros
Sesion contadores y registros
 
Clase MSI
Clase MSIClase MSI
Clase MSI
 
Circuitos secuenciales
Circuitos secuencialesCircuitos secuenciales
Circuitos secuenciales
 
Máquina lineal de corriente continua
Máquina lineal de corriente continuaMáquina lineal de corriente continua
Máquina lineal de corriente continua
 
Trabajo sobre Flip Flop
Trabajo sobre Flip FlopTrabajo sobre Flip Flop
Trabajo sobre Flip Flop
 
Los Flip Flops
Los Flip FlopsLos Flip Flops
Los Flip Flops
 
Scr, triac y diac
Scr, triac y diacScr, triac y diac
Scr, triac y diac
 
Análisis de redes electricas
Análisis de redes electricasAnálisis de redes electricas
Análisis de redes electricas
 
Ejercicios resueltos con diodos
Ejercicios resueltos con diodosEjercicios resueltos con diodos
Ejercicios resueltos con diodos
 

Destacado

Presentacion 2 - Maquinas de Estado Finito
Presentacion 2 - Maquinas de Estado FinitoPresentacion 2 - Maquinas de Estado Finito
Presentacion 2 - Maquinas de Estado Finitojunito86
 
Maquinas de Estado Finito
Maquinas de Estado FinitoMaquinas de Estado Finito
Maquinas de Estado FinitoRosangela Perez
 
Maquina de Estado Finito, Circuito Secuenciales y Automatas de Estado Finito
Maquina de Estado Finito, Circuito Secuenciales y Automatas de Estado FinitoMaquina de Estado Finito, Circuito Secuenciales y Automatas de Estado Finito
Maquina de Estado Finito, Circuito Secuenciales y Automatas de Estado FinitoRosangela Perez
 
Unidad1 sd2
Unidad1 sd2Unidad1 sd2
Unidad1 sd2haibsel
 
Combinacionales y secuenciales (1)
Combinacionales y secuenciales (1)Combinacionales y secuenciales (1)
Combinacionales y secuenciales (1)Cristian Ramirez
 
Recorridos eulerianos
Recorridos eulerianosRecorridos eulerianos
Recorridos eulerianosmark2207
 
Instalación de sgbd en diferentes plataformas de windows
Instalación de sgbd en diferentes plataformas de windowsInstalación de sgbd en diferentes plataformas de windows
Instalación de sgbd en diferentes plataformas de windowsDaniel Huerta Cruz
 
Teoria de automatas
Teoria de automatasTeoria de automatas
Teoria de automatasequipolf
 
Diapo teoria de grafos
Diapo teoria de grafosDiapo teoria de grafos
Diapo teoria de grafosGera Lopez
 
Árboles Binarios y Grafos
Árboles Binarios  y GrafosÁrboles Binarios  y Grafos
Árboles Binarios y GrafosNoel E Jimenez
 
[#1][Conjunto Potencia][Matemáticas Discretas]
[#1][Conjunto Potencia][Matemáticas Discretas][#1][Conjunto Potencia][Matemáticas Discretas]
[#1][Conjunto Potencia][Matemáticas Discretas]Oscar Garcia
 
Arboles binarios
Arboles binariosArboles binarios
Arboles binariosfavi_hola
 
Notación Científica
Notación CientíficaNotación Científica
Notación Científicapacheco
 

Destacado (20)

Presentacion 2 - Maquinas de Estado Finito
Presentacion 2 - Maquinas de Estado FinitoPresentacion 2 - Maquinas de Estado Finito
Presentacion 2 - Maquinas de Estado Finito
 
Máquinas de Estado
Máquinas de EstadoMáquinas de Estado
Máquinas de Estado
 
Maquinas de Estado Finito
Maquinas de Estado FinitoMaquinas de Estado Finito
Maquinas de Estado Finito
 
Máquinas de Estado Finito en VHDL
Máquinas de Estado Finito en VHDLMáquinas de Estado Finito en VHDL
Máquinas de Estado Finito en VHDL
 
Maquina de Estado Finito, Circuito Secuenciales y Automatas de Estado Finito
Maquina de Estado Finito, Circuito Secuenciales y Automatas de Estado FinitoMaquina de Estado Finito, Circuito Secuenciales y Automatas de Estado Finito
Maquina de Estado Finito, Circuito Secuenciales y Automatas de Estado Finito
 
Automatas de estado finito
Automatas de estado finitoAutomatas de estado finito
Automatas de estado finito
 
Unidad1 sd2
Unidad1 sd2Unidad1 sd2
Unidad1 sd2
 
Combinacionales y secuenciales (1)
Combinacionales y secuenciales (1)Combinacionales y secuenciales (1)
Combinacionales y secuenciales (1)
 
Recorridos eulerianos
Recorridos eulerianosRecorridos eulerianos
Recorridos eulerianos
 
Linux Yocto y GPIO
Linux Yocto y GPIOLinux Yocto y GPIO
Linux Yocto y GPIO
 
Grafos
GrafosGrafos
Grafos
 
Instalación de sgbd en diferentes plataformas de windows
Instalación de sgbd en diferentes plataformas de windowsInstalación de sgbd en diferentes plataformas de windows
Instalación de sgbd en diferentes plataformas de windows
 
Teoria de automatas
Teoria de automatasTeoria de automatas
Teoria de automatas
 
Diapo teoria de grafos
Diapo teoria de grafosDiapo teoria de grafos
Diapo teoria de grafos
 
Árboles Binarios y Grafos
Árboles Binarios  y GrafosÁrboles Binarios  y Grafos
Árboles Binarios y Grafos
 
Arboles y grafos
Arboles y grafosArboles y grafos
Arboles y grafos
 
[#1][Conjunto Potencia][Matemáticas Discretas]
[#1][Conjunto Potencia][Matemáticas Discretas][#1][Conjunto Potencia][Matemáticas Discretas]
[#1][Conjunto Potencia][Matemáticas Discretas]
 
Arboles binarios
Arboles binariosArboles binarios
Arboles binarios
 
Notación Científica
Notación CientíficaNotación Científica
Notación Científica
 
Matemáticas discretas- Teoría de Conjuntos
Matemáticas discretas- Teoría de ConjuntosMatemáticas discretas- Teoría de Conjuntos
Matemáticas discretas- Teoría de Conjuntos
 

Similar a FSM Diseño circuito secuencial detección secuencia

14531428 secuenciales-asincronos
14531428 secuenciales-asincronos14531428 secuenciales-asincronos
14531428 secuenciales-asincronosAzariel Haiayel
 
Multivibradores
MultivibradoresMultivibradores
MultivibradoresShennys
 
Configuracion de multivibradores
Configuracion de multivibradoresConfiguracion de multivibradores
Configuracion de multivibradoresCristian Peña
 
Lógica Secuencial FF-Contad-Reg
Lógica Secuencial  FF-Contad-RegLógica Secuencial  FF-Contad-Reg
Lógica Secuencial FF-Contad-RegEdgar Rivera
 
Lógica Secuencial - FF-Contad-Reg
Lógica Secuencial - FF-Contad-RegLógica Secuencial - FF-Contad-Reg
Lógica Secuencial - FF-Contad-RegEdgar Rivera
 
Electrónica digital: Tema 7 Sistemas secuenciales síncronos
Electrónica digital: Tema 7 Sistemas secuenciales síncronosElectrónica digital: Tema 7 Sistemas secuenciales síncronos
Electrónica digital: Tema 7 Sistemas secuenciales síncronosSANTIAGO PABLO ALBERTO
 
informe proyecto-convertidor-sepic-con-control-de-potencia-en-la-entrada
informe proyecto-convertidor-sepic-con-control-de-potencia-en-la-entradainforme proyecto-convertidor-sepic-con-control-de-potencia-en-la-entrada
informe proyecto-convertidor-sepic-con-control-de-potencia-en-la-entradaDivar4
 
PLL (OSCILADOR POR CAMBIO DE FASE) - PHASE SHIFT OSCILLATOR
PLL (OSCILADOR POR CAMBIO DE FASE) - PHASE SHIFT OSCILLATORPLL (OSCILADOR POR CAMBIO DE FASE) - PHASE SHIFT OSCILLATOR
PLL (OSCILADOR POR CAMBIO DE FASE) - PHASE SHIFT OSCILLATORFernando Marcos Marcos
 
Capitulo 6 IMAGEN DE OPERACIONALES
Capitulo 6 IMAGEN DE OPERACIONALESCapitulo 6 IMAGEN DE OPERACIONALES
Capitulo 6 IMAGEN DE OPERACIONALESAlex Denox
 
006 Electroneumática y Neumática: Método secuenciador
006 Electroneumática y Neumática: Método secuenciador006 Electroneumática y Neumática: Método secuenciador
006 Electroneumática y Neumática: Método secuenciadorSANTIAGO PABLO ALBERTO
 
Electrónica digital: Tema 6 Teoría de autómatas síncronos
Electrónica digital: Tema 6 Teoría de autómatas síncronosElectrónica digital: Tema 6 Teoría de autómatas síncronos
Electrónica digital: Tema 6 Teoría de autómatas síncronosSANTIAGO PABLO ALBERTO
 
TRABAJO DE ELECTRÓNICA.
TRABAJO DE ELECTRÓNICA. TRABAJO DE ELECTRÓNICA.
TRABAJO DE ELECTRÓNICA. German Higuera
 
Desentrañando los Fundamentos del Circuito Integrado 555: Un Análisis básico ...
Desentrañando los Fundamentos del Circuito Integrado 555: Un Análisis básico ...Desentrañando los Fundamentos del Circuito Integrado 555: Un Análisis básico ...
Desentrañando los Fundamentos del Circuito Integrado 555: Un Análisis básico ...JulioGomezAssan
 

Similar a FSM Diseño circuito secuencial detección secuencia (20)

14531428 secuenciales-asincronos
14531428 secuenciales-asincronos14531428 secuenciales-asincronos
14531428 secuenciales-asincronos
 
Multivibradores
MultivibradoresMultivibradores
Multivibradores
 
Tema4 lógica secuencial
Tema4 lógica secuencialTema4 lógica secuencial
Tema4 lógica secuencial
 
timer 555
timer 555timer 555
timer 555
 
Configuracion de multivibradores
Configuracion de multivibradoresConfiguracion de multivibradores
Configuracion de multivibradores
 
Lógica Secuencial FF-Contad-Reg
Lógica Secuencial  FF-Contad-RegLógica Secuencial  FF-Contad-Reg
Lógica Secuencial FF-Contad-Reg
 
Lógica Secuencial - FF-Contad-Reg
Lógica Secuencial - FF-Contad-RegLógica Secuencial - FF-Contad-Reg
Lógica Secuencial - FF-Contad-Reg
 
Electrónica digital: Tema 7 Sistemas secuenciales síncronos
Electrónica digital: Tema 7 Sistemas secuenciales síncronosElectrónica digital: Tema 7 Sistemas secuenciales síncronos
Electrónica digital: Tema 7 Sistemas secuenciales síncronos
 
Matematica discreta
Matematica discreta Matematica discreta
Matematica discreta
 
informe proyecto-convertidor-sepic-con-control-de-potencia-en-la-entrada
informe proyecto-convertidor-sepic-con-control-de-potencia-en-la-entradainforme proyecto-convertidor-sepic-con-control-de-potencia-en-la-entrada
informe proyecto-convertidor-sepic-con-control-de-potencia-en-la-entrada
 
Expo flip flop
Expo flip flopExpo flip flop
Expo flip flop
 
PLL (OSCILADOR POR CAMBIO DE FASE) - PHASE SHIFT OSCILLATOR
PLL (OSCILADOR POR CAMBIO DE FASE) - PHASE SHIFT OSCILLATORPLL (OSCILADOR POR CAMBIO DE FASE) - PHASE SHIFT OSCILLATOR
PLL (OSCILADOR POR CAMBIO DE FASE) - PHASE SHIFT OSCILLATOR
 
Capitulo 6 IMAGEN DE OPERACIONALES
Capitulo 6 IMAGEN DE OPERACIONALESCapitulo 6 IMAGEN DE OPERACIONALES
Capitulo 6 IMAGEN DE OPERACIONALES
 
006 Electroneumática y Neumática: Método secuenciador
006 Electroneumática y Neumática: Método secuenciador006 Electroneumática y Neumática: Método secuenciador
006 Electroneumática y Neumática: Método secuenciador
 
Contadores (electronica)
Contadores (electronica)Contadores (electronica)
Contadores (electronica)
 
Electrónica digital: Tema 6 Teoría de autómatas síncronos
Electrónica digital: Tema 6 Teoría de autómatas síncronosElectrónica digital: Tema 6 Teoría de autómatas síncronos
Electrónica digital: Tema 6 Teoría de autómatas síncronos
 
TRABAJO DE ELECTRÓNICA.
TRABAJO DE ELECTRÓNICA. TRABAJO DE ELECTRÓNICA.
TRABAJO DE ELECTRÓNICA.
 
Flip flops
Flip flopsFlip flops
Flip flops
 
Electrónica digital
Electrónica digitalElectrónica digital
Electrónica digital
 
Desentrañando los Fundamentos del Circuito Integrado 555: Un Análisis básico ...
Desentrañando los Fundamentos del Circuito Integrado 555: Un Análisis básico ...Desentrañando los Fundamentos del Circuito Integrado 555: Un Análisis básico ...
Desentrañando los Fundamentos del Circuito Integrado 555: Un Análisis básico ...
 

Más de Erick Bello

Circuito detector de numeros primos de 4 bits
Circuito detector de numeros primos de 4 bitsCircuito detector de numeros primos de 4 bits
Circuito detector de numeros primos de 4 bitsErick Bello
 
Tipos de investigación
Tipos de investigaciónTipos de investigación
Tipos de investigaciónErick Bello
 
Metodo de Newton-Raphson
Metodo de Newton-RaphsonMetodo de Newton-Raphson
Metodo de Newton-RaphsonErick Bello
 
ejercicios resueltos de ecuaciones diferenciales de primer orden
ejercicios resueltos de ecuaciones diferenciales de primer ordenejercicios resueltos de ecuaciones diferenciales de primer orden
ejercicios resueltos de ecuaciones diferenciales de primer ordenErick Bello
 
programa de matematicas en lenguaje c
programa de matematicas en lenguaje c programa de matematicas en lenguaje c
programa de matematicas en lenguaje c Erick Bello
 

Más de Erick Bello (6)

Circuito detector de numeros primos de 4 bits
Circuito detector de numeros primos de 4 bitsCircuito detector de numeros primos de 4 bits
Circuito detector de numeros primos de 4 bits
 
Tipos de investigación
Tipos de investigaciónTipos de investigación
Tipos de investigación
 
Metodo de Newton-Raphson
Metodo de Newton-RaphsonMetodo de Newton-Raphson
Metodo de Newton-Raphson
 
ejercicios resueltos de ecuaciones diferenciales de primer orden
ejercicios resueltos de ecuaciones diferenciales de primer ordenejercicios resueltos de ecuaciones diferenciales de primer orden
ejercicios resueltos de ecuaciones diferenciales de primer orden
 
tipos de diodos
tipos de diodostipos de diodos
tipos de diodos
 
programa de matematicas en lenguaje c
programa de matematicas en lenguaje c programa de matematicas en lenguaje c
programa de matematicas en lenguaje c
 

Último

Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxEduardoSnchezHernnde5
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdfevin1703e
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaXjoseantonio01jossed
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAJAMESDIAZ55
 
CLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civilCLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civilDissneredwinPaivahua
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónXimenaFallaLecca1
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfDanielaVelasquez553560
 
Rendimiento-de-Maquinaria y precios unitarios para la construcción de una ma...
Rendimiento-de-Maquinaria y precios unitarios  para la construcción de una ma...Rendimiento-de-Maquinaria y precios unitarios  para la construcción de una ma...
Rendimiento-de-Maquinaria y precios unitarios para la construcción de una ma...RichardRivas28
 
nom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfnom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfDiegoMadrigal21
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfmatepura
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxSergioGJimenezMorean
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfKEVINYOICIAQUINOSORI
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfalexquispenieto2
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxEverardoRuiz8
 

Último (20)

Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptx
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdf
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
 
CLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civilCLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civil
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcción
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdf
 
Rendimiento-de-Maquinaria y precios unitarios para la construcción de una ma...
Rendimiento-de-Maquinaria y precios unitarios  para la construcción de una ma...Rendimiento-de-Maquinaria y precios unitarios  para la construcción de una ma...
Rendimiento-de-Maquinaria y precios unitarios para la construcción de una ma...
 
nom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfnom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdf
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdf
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdf
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdf
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptx
 

FSM Diseño circuito secuencial detección secuencia

  • 1. MÁ Q U I N A S D E E S T A D O I T L A C MÁQUINAS DE ESTADOS FINITOS (FSM) Las máquinas de estados finitos, cuyo nombre proviene del hecho de que el comportamiento funcional de estos circuitos puede representarse mediante un número finito de estados, son una clase general de circuitos en los que las salidas dependen de la conducta anterior del circuito, así como de los valores presentes en las entradas. También se denominan circuitos secuenciales. En la mayor parte de los casos se usa una señal de reloj para controlar la operación de un circuito secuencial; un circuito de este tipo se llama circuito secuencial síncrono. La alternativa, en la que no se emplea ninguna señal de reloj, se denomina circuito secuencial asíncrono. Es más fácil diseñar circuitos síncronos y se utilizan en la inmensa mayoría de las aplicaciones prácticas. Estos circuitos son el tema del presente trabajo. Los circuitos síncronos secuenciales se realizan usando la lógica combinacio nal y uno o más flip- flops. Su estructura general se muestra en la Figura 1.1. El circuito tiene una serie de entradas principales, W, y produce una serie de salidas, Z. Los valores de las salidas de los flip- flops se conocen como el estado, Q, del circuito. Bajo el control de la señal de reloj, las salidas de los flip- flops cambian su estado según lo determina la lógica combinacional que alimenta las entradas de esos flip- flops. De esta manera el circuito pasa de un estado a otro. Para asegurar que sólo hay una transición de un estado a otro durante un ciclo del reloj, los flip-flops deben ser del tipo disparado por flanco. W reloj Z Circuito combinacional Flip-flops Q Circuito combinacional Figura 1.1. Forma general de un circuito secuencial. D I S E Ñ O D I G I T A L C O N V H D L | 1
  • 2. MÁ Q U I N A S D E E S T A D O I T L A C Pueden dispararse ya sea por el flanco positivo (transición de 0 a 1) o por el negativo (transición de 1 a 0) del reloj. Se empleará el término flanco activo del reloj para referirnos al flanco del reloj que produce el cambio de estado. La lógica combinacional que proporciona las señales de entrada a los flip- flops deriva sus entradas de dos fuentes: las entradas principales, W, y las salidas presentes (actuales) de los flip- flops, Q. Por tanto, los cambios de estado dependen tanto del estado presente como de los valores de las entradas principales. En la Figura 1.1 se indica que las salidas del circuito secuencial se generan mediante otro circuito combinacional, de tal forma que las salidas son una función del estado presente de los flip- flops y de las entradas principales. Aun cuando las salidas siempre dependen del estado presente, no necesariamente deben depender de manera directa de las entradas principales. Por ende, la conexión mostrada en rojo en la figura podría existir o no. Para distinguir entre estas dos posibilidades, se acostumbra decir que los circuitos secuenciales cuyas salidas dependen sólo del estado del circuito son del tipo Moore, mientras que aquellas cuyas salidas dependen tanto del estado como de las entradas principales son del tipo Mealy. Estos nombres se asignaron en honor a Edward Moore y George Mealy, quienes investigaron el comportamiento de estos circuitos en la década de 1950. PASOS BÁSICOS DE DISEÑO Se presentan las técnicas para el diseño de circuitos secuenciales por medio de un ejemplo sencillo. Supóngase que deseamos diseñar un circuito que cumpla con la especificación siguiente: 1. El circuito tiene una entrada, w, y una salida, z. 2. Todos los cambios en el circuito deben ocurrir en el flanco positivo de una señal de reloj. 3. La salida z es igual a 1 si durante dos ciclos del reloj inmediatamente anteriores la entrada w era igual 1. De lo contrario, el valor de z es igual a 0. Por tanto, el circuito detecta si dos o más 1 consecutivos ocurren en su entrada w. Los circuitos que detectan la ocurrencia de un patrón en particular en s u(s) entrada(s) se conocen D I S E Ñ O D I G I T A L C O N V H D L | 2
  • 3. MÁ Q U I N A S D E E S T A D O I T L A C como detectores de secuencia. A partir de esta especificación es evidente que la salida z no puede depender únicamente del valor presente en w. Para ilustrar esto, considérese la secuencia de valores de las señales w y z durante 11 ciclos del reloj, como se muestra en la Tabla 1.1. Los valores de w se suponen arbitrariamente; los valores de z corresponden a nuestra especificación. Estas secuencias de valores de entrada y salida indican que para un valor de entrada, la salida puede ser 0 o 1. Por ejemplo, w=0 durante los ciclos del reloj t2 y t5, pero z=0 durante t2 y z=1 durante t5. De modo similar, w=1 durante t1 y t8, pero z=0 durante t1 y z=1 durante t8. Esto significa que z no está determinada sólo por el valor presente en w, así que debe haber diferentes estados en el circuito que determinen el valor de z. DIAGRAMA DE ESTADO El primer paso en el diseño de una máquina de estado finito consiste en determinar cuántos estados se necesitan y cuáles transiciones son posibles de un estado a otro. No hay un procedimiento determinado para esta tarea. Tabla 1.1. Secuencias de señales de entrada y salida. Ciclo de reloj t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 w: 0 1 0 1 1 0 1 1 1 0 1 z: 0 0 0 0 0 1 0 0 1 1 0 El diseñador debe pensar detenidamente en lo que la máquina debe hacer. Una buena forma de comenzar es elegir un estado en particular como estado inicial; éste es el estado en el que debe entrar el circuito cuando se encienda por primera vez o cuando se le aplique una señal reset (reinicio). Para nuestro ejemplo, supongamos que el estado inicial se llama estado A. Siempre que la entrada w sea 0, el circuito no necesita hacer nada y, por tanto, cada flanco activo del reloj debe dar como resultado que el circuito permanezca en el estado A. Cuando w se vuelve igual a 1, la máquina debe reconocerlo y pasar a un estado distinto, al cual llamaremos estado B. Esta transición se lleva a cabo en el siguiente flanco activo del reloj después que w se ha vuelto igual a 1. En el estado B, igual que en el A, el circuito debe mantener el valor de la salida z en 0, ya que aún no ha visto w=1 para dos ciclos del reloj consecutivos. Cuando se D I S E Ñ O D I G I T A L C O N V H D L | 3
  • 4. MÁ Q U I N A S D E E S T A D O I T L A C halla en el estado B, si w es 0 en el siguiente flanco activo del reloj el circuito debe regresar al estado A. Sin embargo, si w =1 cuando se encuentra en el estado B el circuito debe cambiar a un tercer estado, llamado C, y luego debe generar una salida z=1. El circuito ha de permanecer en el estado C siempre que w=1 y debe seguir manteniendo z=1. Cuando w se vuelve 0, la máquina tiene que moverse de regreso al estado A. Como la descripción anterior maneja todos los valores posibles de la entrada w que la máquina puede encontrar en sus distintos estados, se puede concluir que se necesitan tres estados para implementar la máquina deseada. Ahora que se han determinado de manera informal las posibles transiciones entre los estados, se describirá un procedimiento más formal para diseñar el circuito secuencial correspondiente. El comportamiento de un circuito secuencial puede describirse de varias formas. El método conceptualmente más simple es utilizar una representación gráfica en forma de un diagrama de estado, que es una gráfica que representa los estados del circuito como nodos (círculos) y las transiciones entre estados como arcos con dirección. El diagrama de estado de la Figura 1.2 define el comportamiento que corresponde a nuestra especificación. W=1 Reset A/z=0 B/z=0 W=0 C/z=1 W=1 W=0 W=0 W=1 Figura 1.2. Diagrama de estado de un circuito secuencial simple. Los estados A, B y C aparecen como nodos en el diagrama. El nodo A representa el estado inicial y también el estado en el que entrará el circuito después que se aplique una entrada w=0. En este estado la salida z debe ser 0, lo cual se indica como A/z=0 en el nodo. El circuito debe permanecer en el estado A siempre que w=0, lo que se indica por medio de un arco con una D I S E Ñ O D I G I T A L C O N V H D L | 4
  • 5. MÁ Q U I N A S D E E S T A D O I T L A C etiqueta w=0 que se origina y termina en este nodo. La primera ocurrencia de w=1 (después de la condición w=0) se registra al pasar del estado A al estado B. Esta transición se indica en la gráfica por medio de un arco que se origina en A y termina en B. La etiqueta w=1 en este arco denota el valor de entrada que ocasiona la transición. En el estado B la salida permanece en 0, lo cual se indica como B/z=0 en el nodo. Cuando el circuito se halla en el estado B, cambiará al estado C si w aún es igual a 1 en el siguiente flanco activo del reloj. En el estado C la salida z se vuelve igual a 1. Si w permanece en 1 durante los ciclos subsiguientes del reloj, el circuito permanecerá en el estado C manteniendo z=1. No obstante, si w se vuelve 0 cuando el circuito está ya sea en el estado B o en el estado C, el siguiente flanco activo del reloj producirá una transición al estado A. En el diagrama se indica que la entrada Reset se utiliza para forzar el circuito a entrar en el estado A, lo cual es posible independientemente del estado en el que se encuentre el circuito. Se podría tratar Reset simplemente como otra entrada al circuito y mostrar una transición de cada estado al estado inicial A bajo el control de la entrada Reset. Esto complicaría el diagrama de modo innecesario. Los estados de una máquina de estado fi nito se implementan usando flip-flops. Como por lo general éstos tienen la capacidad reset, se puede suponer que la entrada Reset se utiliza para establecer todos en 0 mediante tal capacidad. Se indicará esto como se muestra en la Figura 1.2 para mantener los diagramas tan simples como sea posible. TABLA DE ESTADO Aun cuando el diagrama de estado brinda una descripción del comportamiento de un circuito secuencial que es fácil de comprender, para proseguir con la implementación del circuito es conveniente traducir la información contenida en el diagrama de estado en forma de tabla. Esto se muestra la Tabla 1.2 la cual corresponde a la tabla de estado para el circuito secuencial. Ahí se indican todas las transiciones de cada estado presente al estado siguiente para los diferentes valores de la señal de entrada. Nótese que la salida z se especifica respecto al estado presente, en concreto, el estado en el que se halla el circuito en el momento presente. Obsérvese también que no se incluye la entrada Reset; en vez de ello se hizo la suposición implícita de que el primer estado en la tabla es el estado inicial. Ahora se muestran los pasos D I S E Ñ O D I G I T A L C O N V H D L | 5
  • 6. MÁ Q U I N A S D E E S T A D O I T L A C de diseño que producirán el circuito final. Para explicar los conceptos de diseño básicos, primero se sigue un procedimiento tradicional de realizar manualmente cada paso de diseño. Tabla 1.2. Tabla de estado para el circuito secuencial de la Figura 1.2 Figura 1.2. Estado presente Estado siguiente Salida z w=0 w=1 A A B 0 B A C 0 C A C 1 Luego se presenta una explicación de las técnicas de diseño automatizadas que usan herramientas de diseño asistido por computadora (CAD). ASIGNACION DE ESTADOS La Tabla 1.2 define los tres estados en términos de las letras A, B y C. Cuando se implementa en un circuito lógico, cada estado se representa por medio de una valoración (combinación de valores) en particular de las variables de estado. Cada variable de estado puede implementarse en forma de un flip-flop. Como deben producirse tres estados, basta utilizar dos variables de estado. Sean estas variables y1 y y2. Ahora se puede adaptar el diagrama de bloque general de la Figura 1.1 a nuestro ejemplo, como se muestra en la Figura 1.3, para indicar la estructura del circuito que implementa la máquina de estado finito buscada. Dos flip- flops representan las variables de estado. A partir de la especificación de la Figura 1.2 y la Tabla 1.2, la salida z está determinada sólo por el estado presente del circuito. Por tanto, el diagrama de bloque de la Figura 1.3 muestra que z es una función sólo de y1 y y2; este diseño es más del tipo Moore. Es necesario diseñar un circuito combinacional que utilice y1 y y2 como señales de entrada y que genere una señal de salida correcta z para todas las combinaciones posibles de estas entradas. Las señales y1 y y2 también se alimentan de regreso en el circuito combinacional que determina el siguiente estado de la FSM. D I S E Ñ O D I G I T A L C O N V H D L | 6
  • 7. MÁ Q U I N A S D E E S T A D O I T L A C Circuito combinacional Circuito combinacional w clk Y1 Z Y2 y1 y2 Figura 1.3. Un circuito secuencial general con la entrada w, la salida z y dos flip-flops de estado. Este circuito también utiliza la señal de entrada principal w. Sus salidas son las dos señales, Y1 y Y2, que se emplean para establecer el estado de los flip- flops. Cada flanco activo del reloj hará que los flip- flops cambien su estado a los valores de Y1 y Y2en ese momento. Por consiguiente, Y1 y Y2 se llaman variables del estado siguiente y y1 y y2 variables del estado presente. Debemos diseñar un circuito combinacional con entradas w, y1 y y2 tales que, para todas las combinaciones de estas entradas, las salidas Y1 y Y2 ocasionarán que la máquina pase al estado siguiente que satisface la especificación. El paso siguiente en el proceso de diseño consiste en crear una tabla de verdad que defina este circuito, así como el circuito que genera z. Para producir la tabla de verdad deseada, asignamos una combinación específica de las variables y1 y y2 para cada estado. Una asignación posible se da en la Tabla 1.3, donde los estados A, B y C se representan por medio de y1y2 =00, 01 y 10, respectivamente. La cuarta combinación, y2 y1=11, no se necesita en este caso. El tipo de tabla dado en la Tabla 1.3 suele llamarse tabla de asignación de estados. Esta tabla puede servir directamente como una tabla de verdad para la salida z con las entradas y1 y y2. Aun cuando para las funciones del estado siguiente Y1 y Y2 la tabla no posee la apariencia de una tabla de verdad normal, porque hay dos columnas separadas en la tabla para cada valor de D I S E Ñ O D I G I T A L C O N V H D L | 7
  • 8. MÁ Q U I N A S D E E S T A D O I T L A C w, es evidente que la tabla incluye toda la información que define las funciones del estado siguiente en términos de las combinaciones de las entradas w, y1 y y2. Tabla 1.3. Tabla de asignación de estados para el circuito secuencial de la Tabla 1.2 secuencial de la fi gura 8.4. Estado presente y1 y y2 Estado siguiente Salida z w=0 w=1 Y2Y1 Y2Y1 A B C Figura 1.2. 00 00 01 0 01 00 10 0 10 00 10 1 11 dd dd d ELECCIÓN DE FLIP-FLOPS Y DERIVACIÓN DE LAS EXPRESIONES DE ESTADO SIGUIENTE Y DE SALIDA A partir de la tabla de asignación de estados anterior se pueden derivar las expresiones lógicas de las funciones del estado siguiente y de la salida. Pero primero se debe decidir el tipo de flip- flops que se utilizarán en el circuito. La opción más sencilla es usar flip- flops tipo D, pues en este caso los valores de Y1 y Y2 simplemente se registran en los flip- flops para que se vuelvan los nuevos valores de y1 y y2. En otras palabras, si las entradas a los flip- flops se llaman D1 y D2, entonces estas señales son las mismas que Y1 y Y2. Las expresiones lógicas requeridas pueden deducirse usando mapas de Karnaugh, quedando de la siguiente forma Y  wy y 1 2 Y  w y  y z  y ( ) 2 1 2 2 Puesto que D1=Y1 y D2=Y2, el circuito lógico correspondiente a las expresiones anteriores se implementa como se muestra en la Figura 1.4. Obsérvese que se incluye una señal de reloj y D I S E Ñ O D I G I T A L C O N V H D L | 8
  • 9. MÁ Q U I N A S D E E S T A D O I T L A C que el circuito se proporciona con una capacidad reset activa en nivel bajo. Conectar la entrada clear de los flip- flops a una señal Resetn externa, como se muestra en la figura, brinda una forma sencilla de forzar a que el circuito entre en un estado conocido. Si aplicamos la señal Resetn=0 al circuito, entonces los dos flip- flops se borrarán, poniendo la FSM en el estado y2y1= 00. Q GRB Q CLR D Q GRB Q CLR Y2 Y1 D w clk resetn z y2 y1 Figura 1.4. Implementación final del circuito secuencial. DIAGRAMA DE TIEMPO de estado. Para comprender cabalmente la operación del circuito consideremos su diagrama de tiempo presentado en la Figura 1.5. En el diagrama se describen las formas de onda de las señales que corresponden a las secuencias de valores de la Tabla 1.1. Como estamos utilizando flip- flops disparados por el flanco positivo, todos los cambios en las señales ocurren poco tiempo después del flanco positivo del reloj. La cantidad de demora del flanco del reloj depende de los retrasos de propagación a través de los flip-flops. Obsérvese que la señal de entrada w también se muestra para cambiar ligeramente después del flanco activo del reloj. Esta suposición es buena porque en un sistema digital típico una entrada como w sería sólo una salida de otro circuito sincronizado por el mismo reloj. D I S E Ñ O D I G I T A L C O N V H D L | 9
  • 10. MÁ Q U I N A S D E E S T A D O I T L A C Figura 1.5. Diagrama de tiempo para el circuito de la Figura 1.4. de estado. Un aspecto clave que ha de notarse es que aun cuando w cambia poco tiempo después del flanco activo del reloj y, por tanto, su valor es igual a 1 (o a 0) para casi todo el ciclo de re loj, no ocurrirá ningún cambio en el circuito hasta el comienzo del siguiente ciclo de reloj cuando el flanco positivo haga que los flip- flops cambien de estado. Por ende, el valor de w debe ser igual a 1 para dos ciclos de reloj si el circuito va a alcanzar el estado C y a generar la salida z=1. MODELO DE ESTADO TIPO MEALY El ejemplo introductorio fue un circuito secuencial en el que cada estado tenía valores específicos de las señales de salida asociadas con él. Como se explicó al principio del presente trabajo, se dice que estas máquinas de estado finito corresponden al tipo Moore. Ahora se explorará el concepto de máquinas tipo Mealy en las que los valores de salida se generan con base tanto en el estado del circuito como en los valores presentes en las entradas. Esto brinda mayor flexibilidad en el diseño de circuitos secuenciales. Se presentaran las máquinas tipo Mealy usando una versión un tanto modificada de un ejemplo anterior. D I S E Ñ O D I G I T A L C O N V H D L | 10
  • 11. MÁ Q U I N A S D E E S T A D O I T L A C La esencia del primer circuito secuencial presentado es generar la salida z=1 siempre que una segunda ocurrencia de la entrada w=1 se detecte en ciclos del reloj consecutivos. La especificación indica que la salida z debe ser igual a 1 en el ciclo del reloj que sigue a la detección de la segunda ocurrencia de w=1. Supóngase ahora que se elimina este requisito y se especifica ahora que la salida z debe ser igual a 1 en el mismo ciclo del reloj cuando se detecta la segunda ocurrencia de w=1. Por tanto, una secuencia de entrada-salida adecuada puede ser como se muestra en la Tabla 1.4. Para ver cómo se puede producir el comportamiento dado en esta tabla se comienza seleccionando un estado inicial, A. Siempre que w=0, la máquina debe permanecer en el estado A, produciendo la salida z=0. Cuando w=1, la máquina debe pasar a un estado nuevo, B, para registrar el hecho de que ha ocurrido una entrada igual a 1. Tabla 1.4. Secuencias de señales de entrada y salida (ejemplo 2). Ciclo de reloj t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 w: 0 1 0 1 1 0 1 1 1 0 1 z: 0 0 0 0 1 0 0 1 1 0 0 Si w aún es igual a 1 cuando la máquina está en el estado B, lo cual ocurre si w=1 durante al menos dos ciclos consecutivos de reloj, la máquina debe permanecer en el estado B y producir una salida z=1. En cuanto w se vuelve 0, z debe volverse 0 de inmediato y la máquina debe regresar al estado A en el siguiente flanco activo del reloj. Por ende, el comportamiento especificado en la Tabla 1.4 puede lograrse con una máquina de dos estados, la cual tiene un diagrama de estado como el que aparece en la Figura 1.6. Sólo se requieren dos estados porque hemos permitido que el valor de salida dependa del valor presente en la entrada así como del estado presente de la máquina. El diagrama indica que si la máquina se halla en el estado A, seguirá en él si w=0 y la salida será 0. Esto se señala mediante un arco con la etiqueta w= 0/z=0. Cuando w se vuelve 1, la salida permanece en 0 hasta que la máquina pasa al estado B en el siguiente flanco activo del reloj. Esto se denota por medio de un arco de A a B con la etiqueta w=1/z=0. En el estado B la salida será 1 si w=1, y la máquina permanecerá en el estado B, como se indica con la etiqueta w=1/z=1 en el arco correspondiente. Sin embargo, si D I S E Ñ O D I G I T A L C O N V H D L | 11
  • 12. MÁ Q U I N A S D E E S T A D O I T L A C w=0 en el estado B, entonces la salida será 0 y una transición al estado A ocurrirá en el siguiente flanco activo del reloj. RESET W=1/ Z=0 A B W=0/Z=0 W=1/Z=1 W=0/Z=0 Figura 1.6. Diagrama de estado de una FSM que realiza la tarea de la Tabla 1.4. Tabla 1.4. Un aspecto importante que debe comprenderse es que durante el ciclo de reloj actual el valor de estado. de salida corresponde a la etiqueta en el arco que proviene del nodo del estado presente. Podemos implementar la FSM de la Figura 1.6 usando los mismos pasos de diseño que en el ejemplo anterior. La tabla de estado se muestra en la Tabla 1.5. En ella se indica que la salida z depende del valor presente en la entrada w y no sólo del estado presente. Tabla 1.5. Secuencias de señales de entrada y salida (ejemplo 2). Estado presente Estado siguiente Salida z w=0 w=1 w=0 w=1 A A B 0 0 B A B 0 1 La Tabla 1.6 proporciona la tabla de asignación de estados. Como sólo hay dos estados, es suficiente utilizar una sola variable de estado, y. Si suponemos que y se produce con un flip-flop D, las expresiones requeridas de estado siguiente y de salida son Y D w z wy    D I S E Ñ O D I G I T A L C O N V H D L | 12
  • 13. MÁ Q U I N A S D E E S T A D O I T L A C El circuito resultante se presenta en la Figura 1.7 junto con un diagrama de tiempo el cual se presenta en la Figura 1.8. Este último corresponde a las secuencias de entrada-salida de la Tabla 1.4. Tabla 1.6. Tabla de asignación de estados para la FSM de la Tabla 1.4 Estado presente Estado siguiente Salida z Tabla 1.5. w=0 w=1 w=0 w=1 y Y Y z z A B 0 0 1 0 1 1 0 1 0 1 La mayor flexibilidad de las FSM tipo Mealy a menudo desemboca en la realización de un circuito más simple. z Q GRB Q CLR D w reloj resetn y z Figura 1.7. Implementación de la máquina de estado finito de la Tabla 1.5. Tabla 1.4. de estado. D I S E Ñ O D I G I T A L C O N V H D L | 13
  • 14. MÁ Q U I N A S D E E S T A D O I T L A C Figura 1.8. Diagrama de tiempo de la máquina de estado finito de la Figura 1.6. Tabla 1.4. DISEÑO DE MÁQUINAS DE ESTADO FINITO de estado. CON HERRAMIENTAS (CAD) Se dispone de herramientas CAD muy modernas para el diseño de máquinas de estado fi nito y las presentamos en esta sección. Una forma rudimentaria de emplear ta les herramientas para el diseño de una FSM podría ser como sigue: el diseñador usa las técnicas manuales descritas antes para derivar un circuito con flip- flops y compuertas lógicas a partir de un diagrama de estado. Este circuito se introduce en el sistema CAD trazando un diagrama esquemático o escribiendo código estructural en lenguaje de descripción de hardware (HDL, Hardware Description Language). El diseñador utiliza entonces el sistema CAD para simular el comportamiento del circuito y las herramientas CAD para implementar en forma automática el circuito en un chip, por ejemplo en un PLD. Resulta tedioso sintetizar manualmente un circuito a partir de un diagrama de estado. Como las herramientas CAD se diseñaron para evitar esa tarea, se han desarrollado formas más atractivas de utilizarlas para el diseño de FSM. Un mejor enfoque consiste en introducir directamente el diagrama de estado en el sistema CAD y realizar todo el proceso de síntesis de forma automática. Las herramientas CAD soportan este método en dos formas principales. Otro enfoque radica en permitir al diseñador trazar el diagrama de estado utilizando una herramienta gráfica parecida a la herramienta de captura esquemática. El diseñador d ibuja círculos para D I S E Ñ O D I G I T A L C O N V H D L | 14
  • 15. MÁ Q U I N A S D E E S T A D O I T L A C representar los estados y arcos para representar las transiciones de un estado a otro, e indica las salidas que la máquina debe generar. El enfoque más popular consiste en utilizar HDL para escribir código que represente el diagrama de estado, como se describe enseguida. Muchos HDL proveen constructores que permiten al diseñador representar un diagrama de estado. Para mostrar cómo se hace esto, se proporcionará el código de VHDL que representa la máquina simple diseñada manualmente en el primer ejemplo. CÓDIGO DE VHDL PARA FSM TIPO MOORE VHDL no define una manera estándar de describir una máquina de estado finito. Por tanto, cuanto nos apeguemos a la sintaxis de VDHL requerida, habrá más de una forma de describir una FSM. En la Figura 1.9 se presenta un ejemplo de código de VHDL para la FSM de la Figura 1.2. En aras de facilitar la explicación, las líneas de código están numeradas en el lado izquierdo. En las líneas 21 a 26 se declara una entidad llamada simple, que tiene puertos de entrada Clock, Resetn y w, y un puerto de salida, z. En la línea 27 se usa el nombre Behavior para el cuerpo de arquitectura, pero desde luego en su lugar podría utilizarse cualquier nombre válido en VHDL. En la línea 28 se introduce la palabra reservada TYPE, que es una función de VHDL que nos permite crear un tipo de señal definido por el usuario. El nuevo tipo de señal se llama State_type, y el código especifica que una señal de este tipo puede tener tres valores posibles: A, B o C. En la línea 29 se define una señal llamada y que es del tipo State_type. La señal y se usa en el cuerpo de arquitectura para representar las salidas de los flip- flops que implementan los estados de la FSM. El código no especifica el número de bits representado por y. En vez de ello, indica que y puede tener los tres valores simbólicos A, B y C. Esto significa que no hemos especificado el número de flip- flops de estado que deben utilizarse para la FSM. Como veremos enseguida, el compilador de VHDL elige de forma automática un número apropiado de flip-flops de estado cuando se sintetiza un circuito para implementar la máquina. También elige la asignación de estado para los estados A, B y C. Algunos sistemas CAD, como Quartus II, suponen que el primer estado enumerado en la instrucción TYPE (línea 28) es el estado reset para la máquina. La asignación de estado que tiene todas las salidas de flip- D I S E Ñ O D I G I T A L C O N V H D L | 15
  • 16. MÁ Q U I N A S D E E S T A D O I T L A C flop iguales a 0 se utiliza para este estado. Más adelante en esta sección mostraremos cómo es posible especificar manualmente la codificación de estados en el código de VHDL si así se desea. Una vez definida una señal para representar los flip- flops de estado, el siguiente paso consiste en especificar las transiciones entre estados. En la Figura 1.9 se presenta una forma de describir el diagrama de estado; esto se representa por medio del proceso de las líneas 31 a 57. Figura 1.9. Código de VHDL para la FSM de la Figura 1.2. Tabla 1.4. D I S E Ñ O D I G I T A L C O N V H D L | 16 de estado.
  • 17. MÁ Q U I N A S D E E S T A D O I T L A C La instrucción PROCESS describe la máquina de estado fi nito como un circuito secuencial. Las señales utilizadas por el proceso son Clock, Resetn, w y y, y la única señal modificada por el proceso es y. Las señales de entrada que pueden hacer que el proceso cambie la señal y son Clock y Resetn; por consiguiente, aparecen en la lista de sensibilidad. Nótese que w no está incluida en esa lista, ya que un cambio en su valor no puede afectar a y hasta que ocurre un cambio en la señal Clock. En las líneas 33 y 34 se especifica que la máquina debe entrar en el estado A, el estado reset, si Resetn=0. Puesto que la condición para la instrucción IF no depende de la señal de reloj, el estado reset es asíncrono, razón por la que Resetn se incluye en la lis ta de sensibilidad en la línea 31. Cuando la señal reset no se válida, la instrucción ELSIF en la línea 35 especifica que el circuito espera el flanco positivo de la señal de reloj (Clock). El comportamiento de y se define por medio de la instrucción CASE de las líneas 36 a 55. Corresponde al diagrama de estado de la Figura 1.2. Como la instrucción CASE está dentro de la instrucción ELSIF, cualquier cambio en y sólo puede ocurrir como resultado de un flanco positivo del reloj. En otras palabras, la condición ELSIF implica que y debe implementarse como la salida de uno o más flip-flops. Cada cláusula WHEN en la instrucción CASE representa un estado de la máquina. Por ejemplo, la cláusula WHEN en las líneas 37 a 42 describe el comportamiento de la máquina cuando se halla en el estado A. Según el pr incipio de la instrucción IF en la línea 38, cuando la FSM se encuentra en el estado A, si w=0 la máquina debe permanecer en el estado A; pero si w=1, debe cambiar al estado B. Las cláusulas WHEN en la instrucción CASE corresponden exactamente al diagrama de estado de la Figura 1.9. La parte final de la descripción de la máquina de estado aparece en la línea 58. Especifica que si la máquina se encuentra en el estado C, entonces la salida z debe ser 1; de lo contrario, z debe ser 0. ESPECIFICACIÓN DE FSM TIPO MEALY CON VHDL Una FSM tipo Mealy puede especificarse de una manera similar a una FSM tipo Moore. En la Figura 1.10 se proporciona el código de VHDL completo para la FSM de la Figura 1.6. Las transiciones de estado se describen de la misma forma que en nuestro ejemplo de VHDL D I S E Ñ O D I G I T A L C O N V H D L | 17
  • 18. MÁ Q U I N A S D E E S T A D O I T L A C original de la Figura 1.9. La señal y representa los flip-flops de estado y State_type especifica que y puede tener los valores A y B. Comparado con el código de la Figura 1.9, la principal diferencia en el caso de una FSM tipo Mealy es el modo en que se escribe el código para la salida. Figura 1.10. Código de VHDL para la FSM de la Figura 1.6. Tabla 1.4. de estado. D I S E Ñ O D I G I T A L C O N V H D L | 18
  • 19. MÁ Q U I N A S D E E S T A D O I T L A C En la Figura 1.10 la salida z se define con una instrucción CASE. Establece que cuando la FSM se halla en el estado A, z debe ser 0, pero cuando se encuentra en el estado B, z debe tomar el valor de w. Esta instrucción CASE describe de manera apropiada la lógica necesaria para z, pero tal vez no sea evidente por qué se usa una segunda instrucción CASE en el código en vez de especificar el valor de z dentro de la instrucción CASE que define las transiciones de estado. La razón es que la instrucción CASE para las transiciones de estado está anidada dentro de la instrucción IF que espera que ocurra un flanco del reloj. Por consiguiente, si colocamos el código para z dentro de esta instrucción CASE, entonces el valor de z sólo podría cambiar como resultado de un flanco del reloj. Esto no satisface los requisitos de la FSM tipo Mealy, pues el valor de z debe depender no sólo del estado de la máquina sino también de la entrada w. CONCLUSIONES En el siguiente texto se consiguió discernir entre las dos máquinas de estado a las que se refiere este texto, se abstrajeron los conceptos de diagrama y tabla de estado un circuito secuencial como una FSM, además de que se reafirmaron las bases para el diseño de circuitos secuenciales(máquinas de estado). BIBLOGRAFÍA: Brown, Stephen y Vranesic, Zvonko Fundamentos de lógica digital con diseño VHDL, segunda edición, editorial Mc Graw Hill. Tocci, Ronald J. Sistemas digitales principios y aplicaciones, décima edición, Editorial Prenctice Hall. Pong P. Chu, “FPGA Prototyping by VHDL Examples: Xilinx Spartan 3-E”, primera edición, Ed Wiley & Sons, 2008. Floyd Thomas L; Fundamentos de sistemas digitales, novena edición, Editorial Pearson Educación, México 2006. Morris Mano, M., Diseño Digital, Tercera edición, Pearson Educación, México 2003. D I S E Ñ O D I G I T A L C O N V H D L | 19