Introducción a los
Sistemas Secuenciales
02:59 Sistemas Logicos I 1
Combinacional Vs.
Secuencial
02:59 Sistemas Logicos I 2
Introducción
Hasta hoy todo era combinacional
Las salidas dependían únicamente de las entradas en
cada momento.
En los Sistemas Secuenciales o también llamados
Maquinas de Estados Finitos, las salidas no solo
dependen de las entradas presentes, también
dependerá de la historia pasada, de lo que sucedió
antes.
02:59 Sistemas Logicos I 3
Secuencia temporal
Los distintos valores que toma la entrada y la salida,
a medida que transcurre el tiempo.
Cuando se deja explícita la variación temporal, se
está describiendo una secuencia de valores.
Si ∆t es constante secuencia sincrónica.
Si ∆t es variable secuencia asincrónica.
02:59 Sistemas Logicos I 4
Tipos de circuitos
secuenciales
Existen dos tipos de circuitos secuenciales
Sincrónicos: Son sistemas cuyo comportamiento puede
definirse a partir del conocimiento de sus señales en
instantes discretos de tiempo.
Asincrónicos: Depende del orden que cambien las
señales de entrada y pueda ser afectadas en un instante
dado de tiempo.
02:59 Sistemas Logicos I 5
Sistemas Sincrónicos (o con
clock)
Son sistemas que actúan bajo un control de
tiempo, este control se denomina reloj (clock).
Clock: es una señal que se alterna entre los valores
lógicos 0 y 1 en un periodo regular.
T
Fig. 1: Señales de Clock
02:59 Sistemas Logicos I 6
El Clock
El Periodo (T): es el tamaño en tiempo de un
ciclo.
La Frecuencia (f): es el inverso del periodo, 1/T y
está dada en Hertz (Hz).
Ejemplo:
Una señal con frecuencia de 200 MHz, corresponde a una
señal que tenga un periodo de 5 ns.
En la mayoría de los sistemas sincrónicos, los
cambios ocurren en las transiciones donde la señal
cambia de 0 a 1 ó de 1 a 0.
02:59 Sistemas Logicos I 7
Diagrama conceptual de un
sistema secuencial
02:59 Sistemas Logicos I 8
Comentarios sobre el
diagrama
Con: n entradas,
m variables de estado,
p variables de salida
Se tienen:
Salidas
zi= Ci( x1,.. xn, y1,.. ym) con i desde 1 a p.
Estado interno
Yk= Sk( x1,.. xn, y1,.. ym) con k desde 1 a m
02:59 Sistemas Logicos I 9
Frecuencia máxima de
operación del Reloj
a) tp: retardo de propagación a través de los circuitos combinacionales, por la
vía más larga también llamada ruta crítica.
b) tf: el tiempo de propagación en el flip-flop.
c) tsu: el tiempo de setup, o tiempo durante el cual las entradas de los flip-
flops no deben cambiar, antes del flanco.
d) tskew: variaciones por el tiempo de propagación. El período del reloj puede
cambiar debido a variaciones de la frecuencia o por temperatura.
10
Frecuencia máxima de
operación del Reloj
Si tenemos un reloj:
Por la condición c t1 > tsu
Por las condiciones a, b, c y d, to + t1 > tf + tp+ tsu+ tskew.
Tmín = tf + tp + tsu+ tskew.
02:59 Sistemas Logicos I 11
Representación de Sistemas
Secuenciales – Modelo de
MOORE
X, Variables de entrada
Z, variables de salida
Y, variables de estado interno
02:59 Sistemas Logicos I 12
Representación de Sistemas
Secuenciales – Modelo de
MEALY
X, Variables de entrada
Z, variables de salida
Y, variables de estado interno
02:59 Sistemas Logicos I 13
Descripción del
comportamiento.
Diagrama de estados
02:59 Sistemas Logicos I 14
02:59 Sistemas Logicos I 15
Transformación de Mealy a
Moore
En el diagrama de Mealy deben separarse aquellos estados, para los
cuáles existan transiciones con diferentes valores de salida, para igual
entrada
02:59 Sistemas Logicos I 16
Transformación de Mealy a
Moore:
Sistema reconocedor de secuencia de
2 o mas unos
02:59 Sistemas Logicos I 17
Análisis de un
Sistemas Secuencial
02:59 Sistemas Logicos I 18
Análisis de un sistema
secuencial a partir de su
diagrama
Reset
de estados
02:59 Sistemas Logicos I 19
Análisis de un sistema
secuencial a partir de su
circuito
02:59 Sistemas Logicos I 20
02:59 Sistemas Logicos I 21
02:59 Sistemas Logicos I 22
Circuito Secuencial – Modelo
tipo Moore con Flip Flops tipo D
1 2
•Del circuito encontramos: D1 q1q2 xq1
D2 xq1
z q2
02:59 Sistemas Logicos I 23
Tabla y diagrama de estados del
circuito
0
q1* q2* 00
1
q1 q2 x=0 x=1 z
1
0 0 00 10 1 0 0
0 1 00 10 0 10
1
1 0 10 11 1 1 1
1 1 00 01 0 01 0 11
0 0
02:59 Sistemas Logicos I 24
Circuito Secuencial – Modelo
tipo Moore con Flip Flops tipo
JK
Este es un circuito de modelo tipo
Moore, ya que la salida z, que es igual J A x K A xB
a A + B, es una función del estado, o
sea, el contenido de los flip flops, y no J B K B x A
de la entrada x.
z A B
02:59 Sistemas Logicos I 25
Tabla de estados para el
ejemplo anterior
A* B*
A B x=0 x=1 z
0 0 01 11 0
0 1 00 10 1
1 0 10 01 1
1 1 11 10 1
Para completar la tabla hay que tener en cuenta las ecuaciones
de entrada de los flip flops y el funcionamiento de cada uno de
ellos para determinar el estado siguiente.
02:59 Sistemas Logicos I 26
Trazado en el tiempo y Diagrama de
tiempos
x 0 0 1 0 1 1 0
A 0 0 0 1 1 1 0 0
B 0 1 0 1 1 0 1 0 1
z 0 1 0 1 1 1 1 0 1
02:59 Sistemas Logicos I 27
Diagrama de Estados para el
ejemplo 00
0 0
01 11 0
1 1
1
0 1
1
10
1
02:59 Sistemas Logicos I 28
Ejemplo con el modelo Mealy
En algunos casos, la salida depende de la entrada actual así como del valor
de los estados actuales.
Este tipo de circuitos son clasificados como sistemas secuenciales de
modelo Mealy.
Un ejemplo de este modelo es este sistema.
02:59 Sistemas Logicos I 29
Ecuaciones
Las ecuaciones de entrada y salida para el circuito son:
D1 xq1 xq2
D2 xq1q2
z xq1
Como son flip flops tipo D, entonces q* = D
02:59 Sistemas Logicos I 30
Tabla de estados y diagrama de
estados
0/0
0/0
00 11
1/0
q1 * q 2 * z 0/0
0/0 1/1
q1 q2 x=0 x=1 x=0 x=1
0 0 00 01 0 0
01 10
0 1 00 10 0 0 1/0
1 0 00 10 0 1 1/1
1 1 00 10 0 1
02:59 Sistemas Logicos I 31
Diseño de un Sistemas
Secuencial
02:59 Sistemas Logicos I 32
Síntesis de una maquina
secuencial sincrónica
02:59 Sistemas Logicos I 33
Detector de secuencia «110»
02:59 Sistemas Logicos I 34
Diseño de un control para
robot muy simple
Implementar un sistema de control de un pequeño robot. La unidad de control dispone
de dos pulsadores (I1 y I2) como entradas del sistema y de dos salidas S0 y S1.
Se deben de cumplir las siguientes condiciones:
En estado de reposo (I1=I2=0) el robot no se moverá.
Si se pulsa el pulsador I1 el robot se moverá hacia adelante, continuando el
movimiento al dejar de presionar dicho pulsador.
Si se pulsan ambos pulsadores I1 y I2 a la vez el robot se moverá hacia atrás,
continuando el movimiento al dejar de pulsarlos.
Si se pulsa el pulsador I2 el robot se parará.
Las señales de salida en función del movimiento del robot deberán de ser las siguientes:
Si el robot está parado S0=S1=0
Si el robot se mueve hacia atrás S0=0 y S1=1
Y si el robot se mueve hacia adelante S0=1 y S1=0
02:59 Sistemas Logicos I 35
Diseño de un control para
robot muy simple
Diagrama de estado a partir de las especificaciones
Q1 Q0 Estado
0 0 PARA
0 1 ADELANTE
1 0 ATRAS
1 1 No usado
02:59 Sistemas Logicos I 36
Diseño de un control para
robot muy simple
Entradas Estado en el Estado en el Excitación de los Salida
A partir del diagrama se construyen
instante “t” las tablas
instante “t+1” biestables “D”
I2 I1 Q1 Q0 Q1 Q0 D1 D0 S1 S0
0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 1 0 1 0 1
1 0 0 0 0 0 0 0 0 0
1 1 0 0 1 0 1 0 1 0
0 0 0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1
1 0 0 1 0 0 0 0 0 0
1 1 0 1 1 0 1 0 1 0
0 0 1 0 1 0 1 0 1 0
0 1 1 0 0 1 0 1 0 1
1 0 1 0 0 0 0 0 0 0
1 1 1 0 1 0 1 0 1 0
Tabla de transición de estados Tabla de Tabla de salida
excitación de
02:59 Sistemas Logicos I biestables 37
Diseño de un control para
robot muy simple
Encontramos las funciones de estado interno y de salida
D1 = I´2 I´1 Q1 Q´0 + I2 I1 Q´1 + I2 I1 Q´0
D0 = I´2 I1 Q1 + I´2 I1 Q´0 + I2 Q´1 Q0
S1 = Q1 Q´0
S0 = Q´1 Q0
02:59 Sistemas Logicos I 38
Diseño de un control para
robot muy simple
NOTA: el mismo diagrama de estado, realizado con la herramienta de diseño
VISUALSTATE®
02:59 Sistemas Logicos I 39
Implementación mediante
lenguajes HDL
02:59 Sistemas Logicos I 40
Implementación mediante
lenguajes HDL
Secuencial Y1
X
Y0
02:59 Sistemas Logicos I 41
Architectute ….
Signal estado_actual, estado_siguiente: integer range 0 to 1: = 0;
Begin
Process (estado_actual, X)
Begin
Case estado_actual is
When 0 =>
If X=’0’ then estado_siguiente<=0; Y<=”10”;
Else estado_siguiente<= 0; Y<=”01”;
End if;
When 1 =>
If X=’0’ then estado_siguiente<=1; Y<=”01”;
Else estado_siguiente<= 0; Y<=”10”;
End if;
End case;
End process;
Process (Reloj)
Begin
If reloj’event and reloj=’1’ then
Estado_actual<=estado_siguiente;
End if;
02:59 Sistemas Logicos I 42
End process;
Editor de diagrama de
estados
02:59 Sistemas Logicos I 43
Señales para simulación
02:59 Sistemas Logicos I 44
Corriendo simulación
02:59 Sistemas Logicos I 45