Circuitos Secuenciales Síncronos

20
 Prof. S. Saucedo ICE/2010 Circuitos Secuenciales Síncronos En estas notas se aprenderá:  Técnicas de diseño para circuitos que usan flip-flops  El concepto de estados y su implementación con flip-flops  Control sincrónico al usar una señal de reloj  Comportamiento secuencial de circuitos digitales  Un procedimiento completo para diseñar circuitos digitales  Una especificación VHDL de circuitos digitales  El concepto de máquinas de estados finitos En este apartado se aborda una clase general de circuitos en los cuales las salidas dependen del comportamiento anterior del circuito, así como de los valores presentes de las entradas que se llaman circuitos secuenciales.  En la mayoría de los casos una señal de reloj es usada para controlar la operación de un circuito secuencial; tal que un circuito es llamado  un circuito secuencial síncrono.  La alternativa, en la cual no se usa señal de reloj, es llamado un circuito secuencial asíncrono.  Los circuitos Síncronos son fáciles de diseñar y se usan en la vasta mayoría de las aplicaciones prácticas; y son el tópico de este apartado. Los circuitos Asíncronos no serán discutidos aquí. Los circuitos Síncronos secuenciales se reali zan usando lógica combinacional y uno o más flip-flops. La estructura general de tal circuito es mostrada en la Figura 1. El circuito tiene un conjunto de entradas primaria, V, y produce un conjunto de salidas, S. Los valores de las salidas de los flip-flops son referidos como el estado, Q, del circuito. Bajo el control de la señal de reloj, las salidas de flip-flops cambian su estado como lo determina la lógica combinacional que alimentan las entradas de tales flip-flops. Por tanto, el circuito se mueve desde un estado a otro, para asegurar que solo una transición desde un estado a otro tome lugar durante un ciclo de reloj, los flip-flops deben ser del tipo disparados por flanco. Ellos pueden ser disparados ya sea por el flanco positivo (transición 0 a 1) o por el flanco negativo (transición 1 a 0) del reloj. Se usara el termino  flanco activo del reloj  para referirse al flanco del reloj que causa el cambio en el estado. La lógica combinacional que provee las señales de entrada para los flip-flops derives sus entradas desde dos fuentes: las entradas primarias, V, y las salidas presentes (actuales) de los flip-flops, Q. Es decir, los cambios en el estado depende tanto del estado presente como de los valores de las entradas primarias. La figura 1 indica que las salidas del circuito secuencial son generadas mediante otro circuito combinacional, tal que las salidas son una función del estado presente de los flip-flops y de las entradas primarias. Aunque las salidas siempre dependen del estado presente, ellas no necesariamente deben de depender directamente de las entradas primarias. Esto es, la conexión mostrada en guinda en la figura puede o no puede existir. Para distinguir entre estas dos posibilidades, es costumbre decir que los circuitos secuenciales cuyas salidas dependen solo del estado del circuito son del tipo  Moore, mientras que aquellas cuyas salidas dependen de ambos el estado y las entradas  primarias son del t ipo Mealy. Tales nombres son en honor de Edward Moore y George Mealy,

Transcript of Circuitos Secuenciales Síncronos

Page 1: Circuitos Secuenciales Síncronos

5/10/2018 Circuitos Secuenciales S ncronos - slidepdf.com

http://slidepdf.com/reader/full/circuitos-secuenciales-sincronos 1/20

Prof. S. Saucedo ICE/2010

Circuitos Secuenciales Síncronos

En estas notas se aprenderá:

♦  Técnicas de diseño para circuitos que usan flip-flops

♦  El concepto de estados y su implementación con flip-flops

♦  Control sincrónico al usar una señal de reloj

♦  Comportamiento secuencial de circuitos digitales

♦  Un procedimiento completo para diseñar circuitos digitales

♦  Una especificación VHDL de circuitos digitales

♦  El concepto de máquinas de estados finitos

En este apartado se aborda una clase general de circuitos en los cuales las salidas

dependen del comportamiento anterior del circuito, así como de los valores presentes de lasentradas que se llaman circuitos secuenciales. En la mayoría de los casos una señal de reloj es

usada para controlar la operación de un circuito secuencial; tal que un circuito es llamado uncircuito secuencial síncrono. La alternativa, en la cual no se usa señal de reloj, es llamado un circuito secuencial asíncrono. Los circuitos Síncronos son fáciles de diseñar y se usan en lavasta mayoría de las aplicaciones prácticas; y son el tópico de este apartado. Los circuitosAsíncronos no serán discutidos aquí. Los circuitos Síncronos secuenciales se realizan usando

lógica combinacional y uno o más flip-flops. La estructura general de tal circuito es mostrada en

la Figura 1. El circuito tiene un conjunto de entradas primaria, V, y produce un conjunto de

salidas, S. Los valores de las salidas de los flip-flops son referidos como el estado, Q, delcircuito. Bajo el control de la señal de reloj, las salidas de flip-flops cambian su estado como lo

determina la lógica combinacional que alimentan las entradas de tales flip-flops. Por tanto, elcircuito se mueve desde un estado a otro, para asegurar que solo una transición desde un estado a

otro tome lugar durante un ciclo de reloj, los flip-flops deben ser del tipo disparados por flanco.

Ellos pueden ser disparados ya sea por el flanco positivo (transición 0 a 1) o por el flanco

negativo (transición 1 a 0) del reloj. Se usara el termino flanco activo del reloj para referirse alflanco del reloj que causa el cambio en el estado.

La lógica combinacional que provee las señales de entrada para los flip-flops derives sus entradas desde

dos fuentes: las entradas primarias, V, y las salidas presentes (actuales) de los flip-flops, Q. Es

decir, los cambios en el estado depende tanto del estado presente como de los valores de las

entradas primarias.

La figura 1 indica que las salidas del circuito secuencial son generadas mediante otrocircuito combinacional, tal que las salidas son una función del estado presente de los flip-flops yde las entradas primarias.

Aunque las salidas siempre dependen del estado presente, ellas no necesariamente deben de

depender directamente de las entradas primarias. Esto es, la conexión mostrada en guinda en la

figura puede o no puede existir. Para distinguir entre estas dos posibilidades, es costumbre decir 

que los circuitos secuenciales cuyas salidas dependen solo del estado del circuito son del tipo Moore, mientras que aquellas cuyas salidas dependen de ambos el estado y las entradas

 primarias son del tipo Mealy. Tales nombres son en honor de Edward Moore y George Mealy,

Page 2: Circuitos Secuenciales Síncronos

5/10/2018 Circuitos Secuenciales S ncronos - slidepdf.com

http://slidepdf.com/reader/full/circuitos-secuenciales-sincronos 2/20

Prof. S. Saucedo ICE/2010

quienes investigaron el comportamiento de tales circuitos en los 1950s.

Figura 1. Diagrama general de un circuito secuencial.

Los circuitos secuenciales son también llamados maquinas de estados finitos (FSMs), lo que es una manera más formal para nombrar lo que a menudos se halla en la literatura técnica.

Ese nombre se deriva del hecho de que la funcionalidad de tales circuitos se puede representar 

usando un número finito de estados. En este apartado se usa a menudo el termino maquina deestados finitos, o simplemente maquina, al referirse a los circuitos secuenciales.

1.  Pasos para un Diseño Básico 

Para introducir las técnicas para diseñar circuitos secuenciales por medio de un ejemplo simple.

Suponer que se desea diseñar un circuito que satisfaga la siguiente especificación:

1. El circuito tiene una entrada, V, y una salida, S. 

2. Todos los cambios en el circuito ocurren en el flanco positivo de la señal de reloj. 

3. La salida S es igual a 1 si durante los tres ciclos de reloj inmediatamente precedentes la

entrada V fue igual a 1. De otro modo, el valor de S es igual a 0.

Esto es, el circuito detecta si tres o más 1s consecutivos ocurren en su entrada V. Circuitos que

detectan la ocurrencia de un patrón particular en su(s) entrada(s) son referidos como detectoresde secuencia.

A partir de esta especificación es aparente que la salida S no puede depender únicamente

del valor presente de V. Para ilustrar esto, considerar la secuencia de valores de señales V y Sdurante 10 ciclos de reloj, según se muestra en la figure 2. Los valores de V se asumenarbitrariamente; los valores de S corresponden a nuestra especificación. Tales secuencias de

valores de entrada y salida indican que para un valor de entrada dado la salida puede ser 0 o 1.Por ejemplo, V = 0 durante los ciclos de reloj t2 y t5, pero S = 0 durante t2 y S = 1 durante t5. 

Similarmente, V = 1 durante t1 y t8, pero S = 0 durante t1 y durante t8. Esto significa que S no

está determinada sólo por el valor presente de V, así que deben existir diferentes estados en el

circuito que determinan el valor de S.

1.1 Diagrama de Estados 

Page 3: Circuitos Secuenciales Síncronos

5/10/2018 Circuitos Secuenciales S ncronos - slidepdf.com

http://slidepdf.com/reader/full/circuitos-secuenciales-sincronos 3/20

Prof. S. Saucedo ICE/2010

El primer paso al diseñar una maquina de estados finitos es determinar cuántos estados son

necesarios y cuales transiciones son posible de un estado hacia otro. No hay un procedimiento para esta tarea. El diseñador debe pensar con mucho cuidado acerca de lo que la maquina debe

realizar. Una buena manera de iniciar es seleccionar un estado particular como el estado de  arranque; esto es, el estado que el circuito debe tomar cuando la energía es encendida o cuando

la señal de inicio es aplicada. Para nuestro ejemplo, suponer que el estado de arranque es

llamado estado A. Mientras le entrada V es 0, el circuito no necesita hacer algo, y en cada flancoactivo del reloj debe resultar en que el circuito permanezca en el estado A. Cuando V se hace

igual a 1, la maquina debe reconocer eso, y moverse hacia un estado diferente, al que llamaremos

estado B. Esta transición toma lugar en el siguiente flanco activo de reloj después que V ha

llegado a ser igual a 1. En estado B, como en el estado A, el circuito debe mantener el valor desalida S en 0, pues el no ha visto aun V = 1 por tres ciclos consecutivos de reloj. Cuando en el

estado B, si V es 0 al siguiente flanco activo de reloj, el circuito debe regresar al estado A.

Sin embargo, si V = 1 cuando está en el estado B, el circuito debe cambiar al tercer estado, llamado C, y seguir generando una salida S = 0. Si estando en C se detecta una valor de 1

en el siguiente flanco activo del reloj se arriba al cuarto estado, D, y la salida S debe tomar elvalor 1. El circuito debe permanecer en el estado D mientras V = 1 y debe continuar el mantener 

S = 1. Cuando V se hace 0, la maquina debe moverse al estado A. Ya que la descripción

 precedente maneja todos los posible valores de la entrada V que la maquina puede encontrar en

sus varios estados, se puede concluir que los cuatro estados se necesitan para implementar la

maquina deseada.

Ciclos Reloj: t0 t1 t2 t3 t4 t5 t6 t7 t8 

V: 0 1 0 1 1 1 0 0 1

EDO: A B A B C D A A B

S: 0 0 0 0 0 1 0 0 0Figura 2 Ejemplo de secuencias de entrada y salida.

Ahora que se ha determinado en una manera informal las posibles transiciones entre

estados, se describirá un procedimiento más formal que se puede usar para diseñar el

correspondiente circuito secuencial. El comportamiento de un circuito secuencial puededescribirse en diferentes maneras. El método conceptualmente más simple es usar una

representación grafica en la forma, diagrama de estados, que es un grafo que describe estadosdel circuito como nodos (círculos) y transiciones entre estados como arcos dirigidos. El diagrama

de estados en la figura 3 define el comportamiento que corresponde a nuestra especificación. Los

estados A, B, C y D aparecen como nodos en el diagrama. El nodo A representa el estado dearranque, y es, además, el estado que el circuito alcanzara después que una entrada V = 0 es

aplicada. En este estado la salida S debe ser 0, lo cual se indica como A/0 en el nodo. El circuito

debe permanecer en el estado A mientras V = 0, lo cual se indica mediante un arco con unaetiqueta 0 que se origina y termina en este nodo. .Tras la primera ocurrencia de V = 1 (después

de la condición V = 0) es registrado moviéndose desde el estado A al estado B. Esta transición

es indicada en el grafo con un arco originado en A y terminando en B. La etiqueta 1 en este arcodenota el valor de entrada que causa la transición. In estado B la salida permanece en 0, lo que se

indica como B/0 en dicho nod0.

Page 4: Circuitos Secuenciales Síncronos

5/10/2018 Circuitos Secuenciales S ncronos - slidepdf.com

http://slidepdf.com/reader/full/circuitos-secuenciales-sincronos 4/20

Prof. S. Saucedo ICE/2010

Cuando el circuito esta en el estado B, cambiara al estado C si V es aun igual a 1 al

siguiente flanco activo de reloj. En el estado C la salida S no se hace igual a 1. Si V sigue en 1 elestado D es alcanzado y la salida S se hace 1. Si durante subsecuentes ciclos de reloj V = 1, el

circuito permanecerá en el estado D manteniendo S = 1. Sin embargo, si V se hace 0 cuando el

circuito esta ya sea en el estado B o en los estados C o D, el siguiente flanco activo de reloj

causara una transición al estado A y S = 0.

En el diagrama se indica que la entrada Inicio es usada para forzar al circuito al estado 1,

lo cual es posible sin importar en qué estado el circuito esta. Se puede tratar a Inicio  justo como

otra entrada al circuito, y demostrar que una transición desde cada estado hacia el estado de

arranque A bajo el control de la entrada Reset. Esto complicaría el diagrama innecesariamente.Los estados en una maquina de estados finitos se implementan usando flip-flops. Puesto que los

flip-flops usualmente cuentan con la capacidad de inicio, según se discutió en un apartado

anterior, se puede suponer que la entrada Inicio es usada para limpiar todos los flip-flops a 0 alemplear esta capacidad. Se indicaría esto como se muestra en la figura 3 para mantener los

diagramas lo más simples como sea posible.

Figura 3 diagrama de Estado de un circuito secuencial simple. (BOOLE-DEUSTO).

1.2 Tabla de Estado

Aunque el diagrama de estados proporciona una descripción del comportamiento de un circuito

secuencial que es fácil de entender, para proceder con la implementación del circuito, es

conveniente trasladar la información contenida en el diagrama de estados hacia una forma

tabular. La figura 4 ilustra la tabla de estado para nuestro circuito secuencial. La tabla indica

todas las transiciones desde cada estado presente al siguiente estado para diferentes valores

de la señal de entrada. Notar que la salida S se especifica con respecto al estado presente, esto es,el estado en que el circuito esta en el tiempo presente. Notar también que no se incluyo la entrada Inicio; en cambio, se hizo la suposición implícita de que el primer estado en la tabla es elestado de arranque. Se ven ahora los pasos del diseño que producirán el circuito final. Para

Page 5: Circuitos Secuenciales Síncronos

5/10/2018 Circuitos Secuenciales S ncronos - slidepdf.com

http://slidepdf.com/reader/full/circuitos-secuenciales-sincronos 5/20

Prof. S. Saucedo ICE/2010

explicar los conceptos básicos de diseño, primero vamos a través de un proceso tradicional de

manualmente efectuar  cada   paso de diseño. Esto es seguido por una discusión de técnicasautomatizadas de diseño que usan herramientas de diseño moderno con la ayuda por 

computadora (CAD).

1.3 Asignación de Estados

La tabla de estados en la figure 4 define los cuatro estados en términos de las letras A, B, C y D.

Cuando se implementa en un circuito lógico, cada estado es representado por una valuación

(combinación de valores) particular de variables de estado. Cada variable de estado puedeestar implementada en la forma de un flip-flop. Dado que cuatro estados deben realizarse, es

suficiente usar dos variables de estado. Se eligen dichas variables de estado como q1 y q0.

Ahora se puede adaptar el diagrama a bloques general en la figura 1 para nuestro ejemplo según

se muestra en la figura 5, para indicar la estructura del circuito que implementa la maquinarequerida de estados finitos. Dos flip-flops representan a las variables de estado. En la figura no

se ha especificado el tipo de flip-flops a ser usados; este aspecto es abordado en la próxima sub

sección. From the

Presente estado siguiente Salida

Estado V= 0 V= 1 S

A A B 0

B  A  C  0 

C A D 0

D  A  D  1 Figura 4 Tabla de estado para el circuito secuencial de la figura 3

Figure 5. Diagrama a bloques del diseño.

Page 6: Circuitos Secuenciales Síncronos

5/10/2018 Circuitos Secuenciales S ncronos - slidepdf.com

http://slidepdf.com/reader/full/circuitos-secuenciales-sincronos 6/20

Prof. S. Saucedo ICE/2010

Estado presente

Estado siguiente

V = 0 V = 1 Salida:

q1q0 Q1Q0 Q1Q0 S

A 00 00 01 0

B 01 00 10 0

C 10 00 11 0

D 11 00 11 1Figura 6 Tabla de asignación de estados.

1.4 Elección de Flip-Flops y Derivación del Estado siguiente y Expresiones de Salida

A partir de la tabla de asignación de estados en la figura 6, se pueden derivar las expresiones

lógicas para el siguiente estado y las funciones de salida. Pero primero se debe decidir sobre el

tipo de flip-flops que serán usados en el circuito. La elección más directa es usar flip-flops tipoD, porque en este caso los valores de Ql y Q0 son simplemente enviados hacia los flip-flops paraque sean los nuevos valores de q1 y q0. En otras palabras, si las entradas a los flip-flops son

llamadas D1 y D0, entonces tales señales son las mismas que Q1 y Q0. Notar que el diagrama en

la figura 5 corresponde exactamente a este uso de los flip-flops tipo D. Para otros tipos de flip-

flops, tales como el tipo JK, hallar las relaciones entre la siguiente variable de estado y las

entradas para un flip-flop no es tan directo; se considera esta situación en la sección 7.

Las expresiones lógicas requeridas se derivan como se ilustra en la figura 7. Se usan

mapas de Karnaugh para que al lector le sea fácil la verificación de la validez de talesexpresiones. Recordar que en la figura 6 se necesito el total de las cuatro valuaciones binarias  posibles para representar los estados. La cuarta valuación, q1q0 = 11, cuando ocurra en el

circuito hará que S se haga 1; por ello, no habrá condiciones irrelevantes. Usando los enlaces con1s se simplifican las expresiones, y se obtiene

    ·  

Como no se usaron irrelevantes, entonces las expresiones resultantes son ligeramente más

complejas.

Dado que D1 = Q1 y D0 = Q0, el circuito lógico que corresponda a las expresiones

 precedentes se implementa como se exhibe en la figura 8. Observar que una señal de reloj es

incluida, el circuito es provisto con la capacidad de inicio activa-alta. Conectando la entrada clr 

en los flip-flops a una señal externa Reset, como se muestra en la figura, provee un medio simple  para forzar al circuito hacia un estado conocido. Si se aplica la señal Reset = 1 al circuito,

entonces ambos flip-flops serán limpiados a 0, colocando a la FSM en el estado q1q0 = 00

Page 7: Circuitos Secuenciales Síncronos

5/10/2018 Circuitos Secuenciales S ncronos - slidepdf.com

http://slidepdf.com/reader/full/circuitos-secuenciales-sincronos 7/20

Prof. S. Saucedo ICE/2010

Figura 7. Derivación de expresiones lógicas para el circuito secuencial en la figura 6.

1.5 Cronograma

Para entender completamente la operación del circuito en la figura 8, considerar su diagrama de

tiempos presentado en la figura 9. Tal diagrama bosqueja las formas de onda de las señales quecorresponden a una secuencia semejante a la de valores en la figura 2.

Debido a que se usan flip-flops disparados por flanco positivo, todos los cambios en las

señales ocurren poco después del flanco positivo del reloj. La cantidad de nanosegundos del

retardo desde el flanco del reloj depende en los retardos por propagación a través de los flip-flops. Notar que la señal de entrada V también se muestra que cambia después del flanco

inactivo del reloj. Esto es una buena suposición porque en un sistema digital típico una entrada

como V puede ser una salida de otro circuito que es sincronizado por otro reloj. Se discute la

sincronización de señales de entrada con la señal de reloj en uno de los proyectos finales.

Un punto clave a observar es que incluso si V cambia poco después del flanco activo de reloj, y

el valor de V es igual a 1 (o 0) por casi el ciclo entero del reloj, no ocurrirán cambios en el

circuito hasta el inicio del siguiente ciclo de reloj cuando el flanco positivo cause que los flip-flops cambien su estado. Por ello, el valor de V debe ser igual a 1 por tres ciclos seguidos de

reloj si el circuito debe alcanzar el estado D y generar la salida S = 1.

Page 8: Circuitos Secuenciales Síncronos

5/10/2018 Circuitos Secuenciales S ncronos - slidepdf.com

http://slidepdf.com/reader/full/circuitos-secuenciales-sincronos 8/20

Prof. S. Saucedo ICE/2010

Figura 8. Implementación final del circuito secuencial en la figura 7. (BOOLE-DEUSTO).

Figura 9 Cronograma del circuito en la figura 8.

1.6 Sumario de los pasos del diseño

Se pueden sumariar los pasos implicados en el diseño de un circuito secuencial síncrono

como sigue: 

1.  Obtener la especificación del circuito deseado. 

2.  Derivar los estados para la maquina al seleccionar primero un estado de arranque.

Entonces, dada la especificación del circuito, considerar todas las valuaciones de las entradas al circuito

y crear nuevos estados según necesite la máquina para responder a esas entradas. Para rastrear los

estados cuando ellos son visitados, crear un diagrama de estados. Cuando este completo, eldiagrama de estado exhibe todos los estados de la maquina y da las condiciones bajo las cualesel circuito se mueve desde un estado a otro.

3. Crear una tabla de estados a partir del diagrama de estados. Alternativamente, puede ser 

conveniente el directamente crear la tabla de estados en el paso 2, en vez de primero crear eldiagrama de estados.

4. En nuestro circuito secuencial de ejemplo, sólo hay cuatro estados; de ahí que fue simple el

crear la tabla de estados que no contenga más estados de los necesarios. Sin embargo, en la

Page 9: Circuitos Secuenciales Síncronos

5/10/2018 Circuitos Secuenciales S ncronos - slidepdf.com

http://slidepdf.com/reader/full/circuitos-secuenciales-sincronos 9/20

Prof. S. Saucedo ICE/2010

 práctica es muy común lidiar con circuitos que tienen un gran número de e stados. En esos casos es

improbable que el primer intento para derivar la tabla de estados  produzca resultados óptimos. Casisiempre se tendrán más estados de los realmente necesarios. Esto se corrige mediante un

 procedimiento que minimiza el número de estados. Se discutirá tal proceso de minimización de

estado en el último apartado.

5. Decidir en el número de variables de estado necesarias para representar todos los estados y

realizar la asignación de estados. Hay muchas asignaciones diferentes del estado posibles para uncircuito secuencial dado. Algunas asignaciones pueden ser mejor que otras. En el ejemplo visto

se uso lo que parecía ser la asignación natural estado. Se puede retornar a esto con otro ejemplo y

demostrar que una diferente asignación puede conducir a un circuito más simple.

6. Escoger el tipo de flip-flops a usar en el circuito. Derivar las expresiones lógicas para

siguiente-estado para controlar las entradas a todos los flip-flops y entonces derivar las

expresiones lógicas para las salidas del circuito. Hasta ahora se han usado solo flip-flops tipo D.Se deben considerar otros tipos de flip-flops e inclusive pensar en mezcla de tipos.

7. Implementar el circuito según lo indican las expresiones lógicas. Se han ilustrado los pasos de

diseño usando un circuito secuencial muy simple. Desde el punto de vista del lector, un circuito

que detecta que una señal de entrada fue alta por tres pulsos consecutivos de reloj puede no tener 

mucha significancia práctica.

2.  Diseño de Circuitos secuenciales con herramientas CAD

Veamos ahora la metodología para diseñar un circuito síncrono empleando un dispositivo SPLD:

una GAL22V10 mediante el software ispLEVER classic de la firma Lattice Semiconductors. Ellenguaje a usar es VHDL.

El ejemplo consiste en diseñar el circuito que cumple con el enunciado: El sistema tiene cuatro

entradas: las señales de inicio y de reloj; además de las entradas U y V. Existe una salida, Y, que

será 1 sólo cuando U sea igual a V durante tres flancos activos consecutivos del reloj, de caso

contrario será 0. (Paso 1). La señal inicio tiene como finalidad colocar al estado en su estado

inicial o de arranque. Como se dijo la señal de reloj provee los pulsos para que el sistema puedaevolucionar.

2.1 Diagrama de Estados

Se eligen cuatro estados como necesarios para implementar el diseño: El estado A que es el de

arranque y que indica que no ha existido todavía una igualdad entre U y V. El estado B indica

que se ha detectado una primera igualdad entre las entradas U y V. El tercer estado, C, indica que

ha habido dos igualdades entre ambas entradas los dos flancos activos anteriores del reloj. El

último estado es D, en el que la salida Y vale 1, pues han llegado tres empates consecutivos en

las entradas. La figura 10 es el diagrama de estados del diseño. (Paso 2).

Page 10: Circuitos Secuenciales Síncronos

5/10/2018 Circuitos Secuenciales S ncronos - slidepdf.com

http://slidepdf.com/reader/full/circuitos-secuenciales-sincronos 10/20

Prof. S. Saucedo ICE/2010

Figura 10 Diagrama de estados para el ejemplo.

2.2 Tabla de estados

La siguiente figura refleja el diagrama de estados para apoyar al diseñador a escribir el código

VHDL que resuelve el ejemplo dado, paso 3. Notar que tabla y diagrama brindan la misma

información.

Presente estado siguiente Salida

Estado UV= 00 UV= 01 UV= 11 UV= 10 YA B A B A 0

B C A C A 0

C D A D A 0

D B A B A 1

Figura 11 Tabla de estado para el circuito secuencial de la figura 10

2.3 Modulo fuente del diseño

La siguiente figura contiene el texto para que el compilador VHDL implemente el diseño. Notar 

que la asignación de estados la hace ahora el software sinplify que acompaña al navegador de

  proyectos de Lattice. De igual forma se simularon diez vectores de prueba para cotejar el

funcionamiento.

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity Sin_Titulo is

Page 11: Circuitos Secuenciales Síncronos

5/10/2018 Circuitos Secuenciales S ncronos - slidepdf.com

http://slidepdf.com/reader/full/circuitos-secuenciales-sincronos 11/20

Prof. S. Saucedo ICE/2010

Port (

inicio: in std_logic;

ck: in std_logic;

U: in std_logic;

V: in std_logic;

Y: out std_logic );

end Sin_Titulo;

architecture behavioral of Sin_Titulo is

type nombres_estados is (A, B, C, D);

signal estado: nombres_estados;

signal entrada_aux: std_logic_vector (1 downto 0);

begin

entrada_aux <= U&V;

process(inicio, ck)

begin

if inicio='1' then

estado <= A;

elsif ck='1' and ck'event then

case estado is

when A =>

case entrada_aux is

when "00" => estado <= B;

when "01" => estado <= A;

when "10" => estado <= A;

when "11" => estado <= B;

when others => estado <= A;

end case;

when B =>

case entrada_aux is

when "00" => estado <= C;

when "01" => estado <= A;

when "10" => estado <= A;

when "11" => estado <= C;

when others => estado <= A;

end case;

when C =>

case entrada_aux is

when "00" => estado <= D;

when "01" => estado <= A;

when "10" => estado <= A;

when "11" => estado <= D;

when others => estado <= A;

end case;

when D =>

case entrada_aux is

when "00" => estado <= B;

when "01" => estado <= A;

when "10" => estado <= A;

when "11" => estado <= B;

when others => estado <= A;

end case;

when others => estado<=A;

end case;

end if;

end process;

process(estado)

begin

case estado is

when A => Y <= '0';

Page 12: Circuitos Secuenciales Síncronos

5/10/2018 Circuitos Secuenciales S ncronos - slidepdf.com

http://slidepdf.com/reader/full/circuitos-secuenciales-sincronos 12/20

Prof. S. Saucedo ICE/2010

when B => Y <= '0';

when C => Y <= '0';

when D => Y <= '1';

end case;end process;

end behavioral; 

Figura 12. Modulo de texto para compilar el diseño con VHDL.

En el cronograma de la figura 13 se aprecia que la salida Y se hace 1 despues de tres coincidencias en las

dos entradas. El estado de arranque A es q1q0 = 10.

Figura 13. Cronograma para probar diez vectores de prueba.

Figura 13. Asignación de terminales realizada por el software.

Page 13: Circuitos Secuenciales Síncronos

5/10/2018 Circuitos Secuenciales S ncronos - slidepdf.com

http://slidepdf.com/reader/full/circuitos-secuenciales-sincronos 13/20

Prof. S. Saucedo ICE/2010

PROBLEMAS

1.  Diseñar la FSM dada por la tabla de estados, usando flip-flops tipo D.

Estado

 presente

Estado siguiente

V = 0 V = 1 Salida:

q1q0 Q1Q0 Q1Q0 Z

A 00 10 11 0

B 01 01 00 0

C 10 11 00 0

D 11 10 01 1Figura 14 Tabla de asignación de estados Problemas 1 y 2.

2.  Diseñar la FSM dada por la tabla de estados, usando flip-flops tipo J-K.

3.  Diseñar una FSM con una entrada V y una salida Z de manera que Z sea 1 cuando la entrada V hasido 0110 o 0000 los últimos cuatro flancos del reloj, y 0 en caso contrario. Usar flip-flops tipo D.

Cortesía BOOLE-DEUSTO

Page 14: Circuitos Secuenciales Síncronos

5/10/2018 Circuitos Secuenciales S ncronos - slidepdf.com

http://slidepdf.com/reader/full/circuitos-secuenciales-sincronos 14/20

Prof. S. Saucedo ICE/2010

4.  Usar la GAL22V10 y lenguaje VHDL para resolver el problema 3.

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity FSMprob3 is

Port (

inicio: in std_logic;

ck: in std_logic;

V: in std_logic;

Z: out std_logic

);

end FSMprob3;

architecture behavioral of FSMprob3 is

type nombres_estados is (A, B, C, D, E, F, G);

signal estado: nombres_estados;

signal aux: std_logic;

 begin

aux <= V;

 process(inicio, ck)

 begin

if inicio='1' then estado <= A;

elsif ck='1' and ck'event then

case estado iswhen A =>

case aux is

when '0' => estado<=B;

when '1' => estado<=A;

when others => estado <= A;

end case;

when B =>case aux is

when '0' => estado <= C;

when '1' => estado <= D;

when others => estado <= A;

end case;

when C =>case aux is

when '0' => estado <= E;

when '1' => estado <= D;

when others => estado <= A;

end case;

when D =>case aux is

when '0' => estado <= B;

when '1' => estado <= F;

when others => estado <= A;

end case;

when E =>

Page 15: Circuitos Secuenciales Síncronos

5/10/2018 Circuitos Secuenciales S ncronos - slidepdf.com

http://slidepdf.com/reader/full/circuitos-secuenciales-sincronos 15/20

Prof. S. Saucedo ICE/2010

case aux is

when '0' => estado <= G;

when '1' => estado <= D;

when others => estado <= A;end case;

when F =>

case aux is

when '0' => estado <= G;

when '1' => estado <= A;

when others => estado <= A;

end case;

when G =>

case aux is

when '0' => estado <= B;

when '1' => estado <= A;

when others => estado <= A;

end case;

when others => estado<=A;

end case;

end if;

end process;

 process(estado)

 begin

case estado is

when A => Z<='0';

when B => Z<='0';

when C => Z<='0';

when D => Z<='0';

when E => Z<='0';

when F => Z<='0';

when G => Z<='1';end case;

end process;

end behavioral;

5.  Derivar una tabla de estado mínima para una sola entrada y una sola salida

tipo Moore para una FSM que produce una salida de 1 si en la secuencia deentrada se detectan patrones ya sea 110 o 101. Las secuencias traslapadas no

deben ser detectadas.6.  Repetir problema anterior para una FSM tipo Mealy.

7.  Derivar circuitos que satisfagan las dos tablas de estado siguientes.

Estado presente Estado siguienteV = 0 V = 1 Salida:

Q2q1q0 Q1Q0 Q1Q0 Z

A 000 B C 1

B 001 D F 1

C 010 F E 0

D 011 B G 1

E 100 F C 0

F 101 E D 0

G 110 F G 0Figura 15 para problema 7.

Page 16: Circuitos Secuenciales Síncronos

5/10/2018 Circuitos Secuenciales S ncronos - slidepdf.com

http://slidepdf.com/reader/full/circuitos-secuenciales-sincronos 16/20

Prof. S. Saucedo ICE/2010

Circuito para tabla anterior tras simplificar diagrama de estados.

Estado

 presente

Estado siguiente

V = 0 V = 1 Salida:

q1q0 Q1Q0 Q1Q0 Z

A 00 B C 1

B 01 A F 1

C 10 F C 0F 11 C A 0

Figura 16 Tabla de asignación de estados Problemas 7.

8.  Dado el siguiente diagrama de estados, intentar reducir el número de estados y efectuar el diseño

mediante biestables tipo D.

Page 17: Circuitos Secuenciales Síncronos

5/10/2018 Circuitos Secuenciales S ncronos - slidepdf.com

http://slidepdf.com/reader/full/circuitos-secuenciales-sincronos 17/20

Prof. S. Saucedo ICE/2010

Diagrama de estados (BOOLE-DEUSTO)

Circuito para el diagrama anterior, tras reducir un estado.

9.  La tabla de estados siguiente puede ser simplificada. Diseñar con biestables JK, tras simplificar.

X indica una combinación imposible en la entrada. Figura 8.56 del Brown-Vranesic.

Page 18: Circuitos Secuenciales Síncronos

5/10/2018 Circuitos Secuenciales S ncronos - slidepdf.com

http://slidepdf.com/reader/full/circuitos-secuenciales-sincronos 18/20

Prof. S. Saucedo ICE/2010

Estado

Presente

estado siguiente Salida

UV= 00 UV= 01 UV= 11 UV= 10 YA A C X B 0

B B D X E 0

C C F X G 0

D A A X A 1

E C C X C 1

F F H X I 0

G A A X A 1

H A A X A 1

I C C X C 1

Tabla de estado para el circuito secuencial del problema 9.

Las particiones para simplificar son:

P1 = (A, B, C, D, E, F, G, H, I)

P2 = (A, B, C, F)(D, E, G, H, I)

P3 = (A)(C)(B, F)(D, E, G, H, I)

P4 = (A)(C)(B, F)(D, G, H)(E, I)

P5 = P4 

Tabla Parcial de excitación de biestables y circuito correspondiente:

|V |U |q2 |q1 |q0 |Q2 |Q1 |Q0 |J2 |K2 |J1 |K1 |J0 |K0 |

|----|----|----|----|----|----|----|----|----|----|----|----|----|----|

|0 |0 |0 |0 |0 |0 |0 |0 |0 |x |0 |x |0 |x |

|----|----|----|----|----|----|----|----|----|----|----|----|----|----|

|0 |0 |0 |0 |1 |0 |0 |1 |0 |x |0 |x |x |0 |

|----|----|----|----|----|----|----|----|----|----|----|----|----|----|

|0 |0 |0 |1 |0 |0 |1 |0 |0 |x |x |0 |0 |x |

|----|----|----|----|----|----|----|----|----|----|----|----|----|----|

|0 |0 |0 |1 |1 |0 |0 |0 |0 |x |x |1 |x |1 |

|----|----|----|----|----|----|----|----|----|----|----|----|----|----|

|0 |0 |1 |0 |0 |0 |1 |0 |x |1 |1 |x |0 |x |

|----|----|----|----|----|----|----|----|----|----|----|----|----|----|

|0 |0 |1 |0 |1 |x |x |x |x |x |x |x |x |x |

|----|----|----|----|----|----|----|----|----|----|----|----|----|----|

|0 |0 |1 |1 |0 |x |x |x |x |x |x |x |x |x |

|----|----|----|----|----|----|----|----|----|----|----|----|----|----|

|0 |0 |1 |1 |1 |x |x |x |x |x |x |x |x |x |

|----|----|----|----|----|----|----|----|----|----|----|----|----|----|

|0 |1 |0 |0 |0 |0 |1 |0 |0 |x |1 |x |0 |x |

|----|----|----|----|----|----|----|----|----|----|----|----|----|----|

|0 |1 |0 |0 |1 |0 |1 |1 |0 |x |1 |x |x |0 |

|----|----|----|----|----|----|----|----|----|----|----|----|----|----|

Page 19: Circuitos Secuenciales Síncronos

5/10/2018 Circuitos Secuenciales S ncronos - slidepdf.com

http://slidepdf.com/reader/full/circuitos-secuenciales-sincronos 19/20

Prof. S. Saucedo ICE/2010

|0 |1 |0 |1 |0 |0 |0 |1 |0 |x |x |1 |1 |x |

|----|----|----|----|----|----|----|----|----|----|----|----|----|----|

|0 |1 |0 |1 |1 |x |x |x |x |x |x |x |x |x |

|----|----|----|----|----|----|----|----|----|----|----|----|----|----|

|0 |1 |1 |0 |0 |x |x |x |x |x |x |x |x |x |

|----|----|----|----|----|----|----|----|----|----|----|----|----|----|

|0 |1 |1 |0 |1 |x |x |x |x |x |x |x |x |x |

|----|----|----|----|----|----|----|----|----|----|----|----|----|----|

|0 |1 |1 |1 |0 |x |x |x |x |x |x |x |x |x |

|----|----|----|----|----|----|----|----|----|----|----|----|----|----|

|0 |1 |1 |1 |1 |x |x |x |x |x |x |x |x |x |

|----|----|----|----|----|----|----|----|----|----|----|----|----|----|

|1 |0 |0 |0 |0 |0 |0 |1 |0 |x |0 |x |1 |x |

|----|----|----|----|----|----|----|----|----|----|----|----|----|----|

|1 |0 |0 |0 |1 |1 |0 |0 |1 |x |0 |x |x |1 |

|----|----|----|----|----|----|----|----|----|----|----|----|----|----|

|1 |0 |0 |1 |0 |0 |1 |1 |0 |x |x |0 |1 |x |

Etc.

10. Dado el diagrama de estados, diseñar el circuito secuencial tipo Moore con flip-flops tipo D.

Page 20: Circuitos Secuenciales Síncronos

5/10/2018 Circuitos Secuenciales S ncronos - slidepdf.com

http://slidepdf.com/reader/full/circuitos-secuenciales-sincronos 20/20

Prof. S. Saucedo ICE/2010

X: valor irrelevante.

La fórmula para D1 se obtiene del siguiente mapa de Kaurnaugh, que tiene cuatro enlaces.