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,
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
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.
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
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.
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
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.
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
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).
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
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';
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.
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
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 =>
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.
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.
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.
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 |
|----|----|----|----|----|----|----|----|----|----|----|----|----|----|
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.
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.
Top Related