Subido por agpapuc

secuenciales 2

Anuncio
TEMA I: INTRODUCCIÓN A LOS CIRCUITOS
SECUENCIALES
Hasta ahora, únicamente hemos visto circuitos combinacionales, es decir, circuitos en los
que las salidas dependen única y exclusivamente de las combinaciones de entradas, y no de la
historia pasada del sistema. Vamos a ver cuáles serían las formas de onda del siguiente circuito.
A
B
A
F
B
F
F = A·B + A·F + B·F
Figura 1.1.- Ejemplo de circuito digital junto con sus formas de ondas.
En las formas de onda podemos comprobar que la señal de salida F cambiará de estado
(cuando sea necesario) después del retraso de la puerta AND y OR. Otra característica de este
circuito que también podemos observar es que la salida también muestra una dependencia de
ella misma, además de las señales de entrada; ésta implica que para una misma combinación de
señales de entrada podemos encontrar valores de salida diferentes, como sucede en el caso de
AB = “10”. Por lo tanto, el valor de la salida también depende de los valores pasados del circuito, es decir, de su historia.
La dependencia de esta historia puede ser ventajosa e incluso necesaria para algunas
aplicaciones en las que es necesario recordar una determinada situación. Algunos ejemplos de
esta ventaja (necesidad) pueden ser:
• La creación de un reloj, que se modelada con la afirmación “la salida será el valor
complementario de su valor anterior”,
• La creación de un contador, que se modelada con la afirmación “la salida será el resultado de sumar uno a su valor anterior”,...
2
Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
Por lo tanto, se ve cuando menos interesante incluir la dependencia del tiempo en los sistemas
y en especial, en los sistemas digitales.
1. Introducción. Definición de Sistema Secuencial
Los sistemas digitales que introducen la dependencia temporal son conocidos como sistemas secuenciales. Una definición más rigurosa de sistema secuencial puede ser la siguiente:
Un circuito de conmutación secuencial se define como un circuito bivaluado en el cual, la salida en cualquier instante depende de las entradas en
dicho instante y de la historia pasada (o secuencia) de entradas.
Esta definición implica una serie de características inherentes a estos sistemas. Entre éstas
podemos destacar las siguientes:
• Poseen uno o más caminos de realimentación, es decir, una o más señales internas o
de salida se vuelven a introducir como señales de entradas. Gracias a esta característica se garantiza la dependencia de la operación con la secuencia anterior.
• Como es lógico, existe una dependencia explícita del tiempo. Esta dependencia se
produce en los lazos de realimentación antes mencionados. En estos lazos es necesario distinguir entre las salidas y las entradas realimentadas. Esta distinción se traducirá en un retraso de ambas señales (en el caso más ideal), como se puede ver en la
figura 1.2, el cual puede producirse mediante dos elementos:
• Elementos de retraso, ya sean explícitos o implícitos debido al retraso de la lógica
combinacional. Este retraso es fijo e independiente de cualquier señal.
• Elementos de memoria, que son dispositivos que almacena el valor de la entrada
en un instante determinado por una señal externa y lo mantiene hasta que dicha
señal ordene el almacenamiento de un nuevo valor.
La diferencia de comportamiento entre ambos elementos radica en que la salida del elemento
de retraso es una copia de la señal de entrada; mientras que el elemento de memoria copia
determinados instantes de la entrada (determinados por una señal externa), y no la señal completa, el resto del tiempo la salida no cambia de valor, como podemos apreciar en la figura 1.2.
Entrada
Control
Retraso
Memoria
Figura 1.2.- Formas de onda de salida y entrada de un elemento de retraso y de memoria.
TEMA I: INTRODUCCIÓN A LOS CIRCUITOS SECUENCIALES
3
En este caso, podemos observar que la salida del elemento de retraso es una copia de la señal
de entrada retraso un determinado tiempo; mientras que la salida del elemento de memoria
copia los valores de la entrada cuando la señal de control tiene una transición de subida, por lo
que la copia no es exacta, sino que sólo copia lo que interesa.
Por lo tanto, el modelo clásico de un sistema secuencial consta de un bloque combinacional, que generará la función lógica que queramos realizar, y un grupo de elementos de memoria con una serie de señales realimentadas, como se muestra en la figura 1.3.
Salidas
Co
L
m ógi
bi
c
na a
ci
on
al
Entradas
Próximo
Estado
Elemento de
Memoria
Estado
Presente
Figura 1.3.- Modelo clásico de un sistema secuencial.
En ella podemos distinguir tres tipos de señales: señales de entradas, señales de salida y señales de estado. Las señales de entrada y salida tienen el mismo significado que en los sistemas
combinacionales. En cambio, las señales de estado son aquellas que mantienen la información
de la historia pasada del sistema. Las señales de estado tienen dos versiones, según se consideren a la salida o a la entrada del elemento de memoria:
• Si consideramos las señales de estado a la salida de los elementos de memoria, o lo
que es lo mismo, a la entrada del bloque combinacional, se denominan señales de
estado presente ya que nos indica el estado en el que se encuentra el sistema para realizar una operación.
• Si consideramos las señales de estado a la entrada de los elementos de memoria, o lo
que es lo mismo, a la salida del bloque combinacional, se denominan señales del
próximo estado ya que nos indican el estado al que llegará después de que el bloque
combinacional haya realizado la operación.
2. Clasificación de los Sistemas Secuenciales
Uno de los primeros problemas de los circuitos secuenciales era determinar el momento
en el que el próximo estado debía pasar a estado presente, sin capturar situaciones no deseadas
como pueden ser los azares. Este problema es lo que se conoce como sincronización, cuyas
soluciones dieron lugar a una de la principales clasificaciones de los sistemas secuenciales. Así
podemos dividir los sistemas en dos categorías:
4
Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
• Sistemas asíncronos.- La sincronización depende exclusivamente de los retrasos de
la lógica combinacional, sin necesidad de ninguna señal externa al sistema.
• Sistemas síncronos.- La sincronización depende exclusivamente de una señal externa
al sistema, conocida generalmente como señal de reloj. Esta señal de reloj controlará
el comportamiento de los elementos de memoria.
Las operaciones de un sistema asíncrono tienen efecto, es decir, se almacena el próximo
estado, en intervalos temporales diferentes. Por lo tanto, su velocidad de operación será distinta
para cada secuencia de entradas. De esta forma se toma como el parámetro de la velocidad de
operación el valor medio de todas las velocidades. Así, la operación de un sistema asíncrono se
denomina operación del caso medio.
En cambio, las operaciones de un sistema síncrono tienen efecto en el mismo intervalo
temporal, el dictaminado por el periodo de la señal de reloj. Por lo tanto, su velocidad de operación será siempre la misma para todas las secuencias de entrada. Esta velocidad debe ser tal
que todas las operaciones tengan el tiempo necesario para poder llevarse a cabo. Así, la velocidad de un sistema síncrono (y por tanto la frecuencia de la señal de reloj asociada) debe estar
limitada por la operación más lenta. A este tipo de operaciones se le suele denominar operación del caso peor.
Estos dos tipos de operaciones se muestran esquematizadas en la figura 1.4. Ambos se
pueden modelar de la misma forma, es decir, con una lógica combinacional y realimentaciones
a través de elementos de memoria. La diferencia radica en el control de estos elementos: en el
caso síncrono, los elementos de memoria son controlados por una señal externa, que por lo
general es controlada directamente por el usuario; mientras que en el caso asíncrono, esta señal
de control no existe (por lo que el elemento de memoria se traduce en un elemento de retraso)
o en su defecto dicha señal es generada por el propio circuito, luego el gobierno de las operaciones recaen completamente en el propio circuito. Así podemos apreciar que el cambio de las
señales de próximo estado a estado presente se llevan a cabo mediante un mayor o menor
retraso en el caso asíncrono o cuando lo indique una señal externa en el caso síncrno.
3. Representación de los sistemas secuenciales.
De igual forma que existe una representación de los sistemas combinacionales (mediante
tablas de combinaciones), los sistemas secuenciales también tienen sus formas de representación. Éstas son algo más complejas, debido a la dependencia temporal. Así, podemos encontrar
las siguientes formas equivalentes, mostradas en la figura 1.5:
• Diagrama de estados, es un grafo orientado en el que cada nudo es un estado y cada
transición indica el cambio, tanto de estado como de salida, respecto a un cambio en
alguna de las señales de entradas.
• Tablas de estado y de salida, es una representación tabular del grafo anterior. Las
entradas se representan como columnas, y los estados presentes como filas; y en el
interior de cada celda, se indica el próximo estado y el valor que tomará la salida
cuando sufra la transición.
Las representaciones del ejemplo de la figura podrían describirse verbalmente de la siguiente
forma:
5
TEMA I: INTRODUCCIÓN A LOS CIRCUITOS SECUENCIALES
Salidas
Entradas
ica
l
na
g
Ló
cio
na
bi
C
Próximo
Estado
Elemento de
Estado
Presente
Memoria
Próximo
Estado
Elemento de
n
bi
m
Co
om
Estado
Presente
l
na
io
ac
Memoria
ica
g
Ló
Salidas
Entradas
Reloj
Entradas
Entradas
P. estado
P. estado
Estado p.
Estado p.
Reloj
Caso Asíncrono
Caso Síncrono
Figura 1.4.- Esquematización de los casos secuenciales asíncronos y síncronos.
0,1
A
B
0,0
1,0
0,1
1,0
C
1,0
D
0
1
A
B, 1
C, 0
B
B, 1
D, 0
C
A, 0
D, 0
D
C, 1
C, 0
0,1
1,0
Diagrama de estados
Tabla de estados
Figura 1.5.- Representación de los sistemas secuenciales mediante diagramas de estados y
• Cuando el sistema está en el estado A y la señal de entrada vale ‘0’, pasaremos al
estado B con un valor de salida igual a ‘1’.
• Cuando el sistema está en el estado A y la señal de entrada vale ‘1’, pasaremos al
estado C con un valor de salida igual a ‘0’.
• Cuando el sistema está en el estado B y la señal de entrada vale ‘0’, no cambiaremos
de estado pero el valor de salida será igual a ‘1’.
6
Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
• Cuando el sistema está en el estado B y la señal de entrada vale ‘1’, pasaremos al
estado D con un valor de salida igual a ‘0’.
• Cuando el sistema está en el estado C y la señal de entrada vale ‘0’, pasaremos al
estado A con un valor de salida igual a ‘0’.
• Cuando el sistema está en el estado C y la señal de entrada vale ‘1’, pasaremos al
estado D con un valor de salida igual a ‘0’.
• Cuando el sistema está en el estado D y la señal de entrada vale ‘0’, pasaremos al
estado C con un valor de salida igual a ‘1’.
• Cuando el sistema está en el estado D y la señal de entrada vale ‘1’, pasaremos al
estado C con un valor de salida igual a ‘0’.
En principio, en cualquier sistema secuencial, las señales de salida y del próximo estado
van a venir determinadas por una función lógica de las señales de entrada y del estado presente, como muestra la siguiente ecuación.
Q i, F i = f ( q i, I i )
No obstante, la dependencia de las señales de entrada sobre las señales de salida pueden llegar
a eliminarse y encontrarlas de forma implícita en las señales de estado presente, es decir, siempre que lleguemos a un mismo estado, las salidas tomarán un único valor.
Por lo tanto, podemos encontrarnos con dos modelos o tipos de sistemas secuenciales en
función de la dependencia de las señales de salida:
• Modelo de Mealy.- Las señales de salida son funciones tanto de las señales de entrada
como de estado presente, como muestra las siguientes ecuaciones:
F i = f ( q i , I i ), Q i = f ( q i , I i )
• Modelo de Moore.- Las señales de salida son funciones únicamente de las señales del
estado presente, como muestra las siguientes ecuaciones:
F i = f ( q i ), Q i = f ( q i, I i )
debido a la diferencia de dependencia de las salidas, ambas máquinas las podemos representar
de dos formas tabulares diferentes, como podemos ver en la figura 1.6. En ella, el significado
de cada celda es diferente, puesto que un mismo sistema se debe poder representar de ambas
formas. En el caso de la representación de Mealy, el significado del interior de cada celda es el
que vimos anteriormente, es decir, el próximo estado al que llegará con el valor de salida
correspondiente. En cambio, en el representación de Moore, el interior de la celda de las
columnas de las entradas es el mismo, es decir, el próximo estado al que llegará el sistema; no
obstante, para saber cuál será la salida tenemos que obtenerlo del valor correspondiente al
próximo estado al que llegará.
Ambos tipos de modelos son equivalentes y existe una transformación directa entre ellos,
según el significado de las celdas de cada una de las representaciones.
• Para pasar de una máquina de Mealy a una de Moore, se siguen los siguientes pasos:
7
TEMA I: INTRODUCCIÓN A LOS CIRCUITOS SECUENCIALES
0
1
0
1
Salida
A
B, 1
C, 0
A
B
C
0
B
B, 1
D, 0
B
B
D
1
C
A, 0
D, 0
C
A
D
0
D
B, 1
C, 0
D
B
C
0
Autómata de Moore
Autómata de Mealy
Figura 1.6.- Representaciones tabulares de los autómatas de Mealy y Moore.
• Se deja el mismo alfabeto de entradas y salidas
• El alfabeto de estados es el correspondiente al inicial más los estados a los que se
llega con diferentes valores de salida
• Para pasar de una máquina de Moore a una de Mealy, se siguen los siguientes pasos
• Se deja el mismo alfabeto de entradas y salidas
• En la tabla de estados, se le asigna como salida la correspondiente a la del próximo
estado y se eliminan las filas idénticas.
Ambas transformaciones se muestran en la figura 1.7. En este ejemplo, cuando pasamos de
Moore a Mealy, los estados A, B y D permanecen igual ya que siempre se llega con el mismo
valor de salida. No obstante al estado C se llega con dos valores de salida diferentes, luego
tenemos que añadir tantos estados como valores diferentes de salida presente (en este caso
dos). En la conversión contraria, en el interior de la celda se indica tanto el próximo estado
como el valor de salida al que llega (indicado por la última columna de la máquina de Mealy).
Una vez hecho esto, si existiesen filas iguales, solamente nos quedaríamos con una de ellas eliminando los estados sobrantes.
0
A B, 1
C, 0
B, 1
D, 0
C A, 0
D, 0
D C, 1
C, 0
B
0
1
Salida
0
1
Salida
A0 B1
C0
0
A
B
C
0
A B, 1
C, 0
B0 B1
D0
1
B
B
E
1
B B, 1
E, 0
C0 A0
D0
0
C
A
E
0
C A, 0
E, 0
C1 A0
D0
1
D
A
E
1
D A, 0
E, 0
D0 C1
C0
0
E
D
C
0
E D, 1
C, 0
1
Mealy --> Moore
0
1
Moore --> Mealy
Figura 1.7.- Conversiones entre máquinas de Mealy y máquinas de Moore.
Por lo tanto, hemos obtenido dos implementaciones que modelan el mismo sistema
secuencial. Luego
Se dice que dos sistemas secuenciales son equivalentes cuando generan la
misma secuencia de salida para la misma secuencia de entrada, con independencia de cómo sea ésta.
8
Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
Si consideramos las máquinas de la figura 1.7, para cualquier secuencia de las señales de
entrada, deberíamos poder encontrar un estado inicial tal que la secuencia de salida sería la
misma. Este hecho lo podemos ver en la figura 1.8, donde se muestran las formas de ondas
para ambas máquinas. Debemos destacar que hemos elegido como estados iniciales equivalentes, los estados B (de la máquina de Mealy) y B1 (de la máquina de Moore). También podemos
observar que cuando la entrada toma el valor ‘1’, ningún estado se estabiliza sino que existe un
cambio continuo entre los estados C y D (C0 y D0); el estado en el que se produce la transición
de entrada depende del retraso de la máquina.
Entrada
Estado
B
D
C
D
C
A B
D
C
A
B
C0 A0 B1 D0
C0
A0
B1
Salida
Máquina de Mealy
Estado
B1
D0
C0
D0
Salida
Máquina de Moore
Figura 1.8.- Equivalencia entre dos máquinas secuenciales.
4. Aplicaciones de sistemas secuenciales.
Como ya hemos comentado, los sistemas secuenciales forman un conjunto de circuitos
muy importantes en la vida cotidiana. En cualquier elemento que sea necesario almacenar
algún parámetro, es necesario un sistema secuencial. Así, cualquier elemento de programación
(o lo que es lo mismo, con más de una función) necesita un sistema secuencial.
A modo de ejemplo, expondremos el caso de una máquina de refrescos. En esta máquina
iremos introduciendo monedas hasta alcanzar o sobrepasar el valor del refresco que deseamos
sacar. Por lo tanto, en este sistema se debe almacenar una serie de datos, como pueden ser:
• Los precios de los productos ofertados.
• Estado de existencia de los mismos.
• Cantidad de dinero que hayamos introducido en la máquina hasta el momento.
Así, vemos que es necesario almacenar temporalmente una serie de datos, por lo que nos
encontramos ante un sistema secuencial.
Descargar