Professional Documents
Culture Documents
ndice
Aspectos generales sobre circuitos secuenciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Estructura general y funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Tipos de circuitos secuenciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Aspectos bsicos sobre circuitos secuenciales sncronos . . . . . . . . . . . . . . . . . . . . . . 7 Definicin y funcionamiento bsico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Nomenclatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Tipos de circuitos secuenciales sncronos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Sntesis de circuitos secuenciales sncronos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Planteamiento del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Obtencin del grafo (diagrama de estados) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Obtencin de la tabla de estados inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Minimizacin de la tabla de estados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Asignacin de estados y obtencin de la tabla de transicin resultante . . . . 28 Obtencin de las ecuaciones de salida del sistema . . . . . . . . . . . . . . . . . . . . . 31 Obtencin de las tablas de excitacin y ecuaciones de entrada de cada flip-flop del circuito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Implementacin del circuito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Inclusin del control de las entradas asncronas de los biestables . . . . . . . . 34
Ejercicios resueltos sobre sntesis de circuitos secuenciales sncronos . . . . . . . . . 36 Ejemplo 6. Circuito sumador serie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Ejemplo 7. Detector de secuencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Ejemplo 8. Contador BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Ejercicios propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
En la figura 1 pueden verse varios estados, en los que el sistema espera monedas o la seleccin de productos, o entrega el producto. Estos estados memorizan la ltima accin del usuario, de forma que el sistema puede responder a las nuevas acciones de forma diferente dependiendo de la historia pasada: si seleccionamos producto, la salida no ser la misma si ya le hemos entregado el dinero o todava no. Este puede ser un ejemplo sencillo de mquina secuencial, y a partir de ahora formalizaremos el concepto y estudiaremos la forma de analizar y disear este tipo de circuitos.
M1,... Mp-1). Cada elemento de memoria tiene unas entradas que vamos a denominar Ei y una salida que llamaremos Qi que almacenar el estado actual del circuito. Adems existe una seal auxiliar, la seal de reloj (CLK), que juega un papel fundamental en los sistemas secuenciales sncronos. Esta ltima seal no existe en los sistemas secuenciales asncronos.
Como se puede observar en la figura 2, al circuito combinacional llegan dos tipos de datos: las entradas de datos del circuito (X0(t), X1(t),... Xu-1(t)) y el estado actual , es decir, las salidas de la memoria (Q0(t),... Qp-1(t)). Las salidas del circuito combinacional son las salidas de datos (Z0(t), Z1(t),... Zv-1(t)) y las entradas de los elementos de memoria (E0(t),... Es-1(t)), (si bien en ciertos casos algunas de estas variables pueden ser comunes). El hecho de que parte de la informacin de salida del circuito combinacional se introduzca de nuevo a su entrada, previo paso por la memoria, se conoce como realimentacin.
de entrada a las salidas, y unas salidas pueden cambiar antes que otras. Hay que advertir que pueden existir situaciones en las que no se alcance la estabilidad (estados metaestables). En el diseo de circuitos se trata siempre de evitar la existencia de este tipo de estados. Dos tcnicas usuales para ello son, una impidiendo excitaciones marginales y otra evitando, o al menos reduciendo, la propagacin de seales metaestables). Segn esto, en los circuitos secuenciales asncronos despus de producirse un cambio en las entradas hay que esperar un tiempo hasta que se estabilicen los valores de las salidas y slo despus de que se alcance esta estabilizacin se podr realizar otro cambio en sus entradas, ya que en caso contrario no se vern reflejados estos cambios en las salidas. Evidentemente, el tiempo mnimo entre dos cambios consecutivos en las entradas de datos es funcin de los tiempos de propagacin del circuito combinacional y de los elementos de memoria. Los circuitos sncronos eliminan la incertidumbre producida por los tiempos de propagacin utilizando una seal de sincronismo o seal de reloj. Los cambios en las entradas y en los estados internos slo tienen efecto sobre el resto del sistema en instantes discretos de tiempo a los que denominaremos t, t+1, t+2,.... Estos instantes suelen coincidir con los flancos de subida o bajada de la seal de reloj. As, si nos fijamos en el circuito de la figura 2, las salidas que adopten los elementos Mi de memoria despus de un flanco de reloj (CLK), sern funcin nicamente de los valores que tenan sus entradas en el instante anterior al flanco de CLK, aunque estas hayan variado varias veces desde el ltimo flanco de reloj. Finalmente queremos indicar que, si bien parece que los circuitos sncronos presentan ventajas frente a los asncronos, no siempre es as. De hecho, al realizar el diseo de un circuito VLSI (Very Large Scale Integration), es necesario establecer una comparacin rigurosa entre las alternativas sncrona y asncrona, a fin de valorar las limitaciones y restricciones de ambos modos de operacin. Actualmente existe un auge e inters por el diseo de circuitos VLSI asncronos o autotemporizados, ya que el aumento de la velocidad de operacin y la complejidad de los circuitos digitales conllevan grandes problemas para conseguir que las seales de reloj que se propagan por caminos diferentes tengan idnticos tiempos de propagacin. Esto hace que la distribucin de la seal de reloj dentro de los circuitos digitales sea una tarea compleja, siendo una de las razones de esta complejidad los retrasos en dicha seal (lo que se conoce como clock skew), adems de los problemas de interferencias que puede sufrir (cross-talk). No es, sin embargo, objeto de este captulo el estudio de todos estos detalles.
-6-
-7-
El funcionamiento del autmata es tal que si recibe una nueva entrada en t, x(t) , {X}, (sta se hace efectiva mediante la seal de reloj en el instante t) y se encuentra en el estado q(t),{Q} (salidas de los FF), entonces la salida del autmata en el instante t ser funcin de x(t) y q(t), esto es, z(t) = g[x(t),q(t)] y pasar a un nuevo estado que ser funcin de x(t) y q(t) en el instante t+1, esto es, denominando al nuevo estado q(t+1) = h[f(x(t),q(t))]. A g se le denomina funcin de salida, a f funcin de excitacin y h es la funcin de los biestables, es decir, la transicin que producir el biestable con la excitacin aplicada. En resumen: q(t+1)=h[f(x(t),q(t))] z(t)=g[x(t),q(t)] Adems, tambin es necesario proporcionar el estado inicial a partir del cual empezar a evolucionar el autmata. Si no se indica lo contrario, a partir de ahora consideraremos q0 como estado inicial. En resumen una mquina de estados finitos se puede definir matemticamente como un conjunto de elementos: MEF=<x, z, q, q0, f, g, h> siendo: x: Datos de entrada z: Datos de salida q: Estados internos (variables de estado) q0: Estado inicial f: Funcin de excitacin de los biestables h: Funcin de los biestables g: Funcin de salida
2.2. Nomenclatura
La nomenclatura que se va a utilizar se muestra de forma resumida en la tabla 1:
Tabla 1. Nomenclatura de las distintas variables y constantes implicadas en un circuito secuencial sncrono.
Nombre de las lneas fsicas en el circuito X0, X1, ..., Xu-1 Z0, Z1, ..., Zv-1 Q0, Q1, ..., Qp-1 E0, E1, ..., Es-1
N de lneas fsicas u v p s
Combinaciones de la variable X={x0, x1, ..., xn-1} Z={z0, z1, ..., zr-1} Q={q0, q1, ..., qm-1} E={e0, e1, ..., el-1}
Por ejemplo, para implementar un autmata con 3 estados (m=3) se necesitan al menos 2 M. Mazo, S. E. Palazuelos, L. M. Bergasa -8Sistemas Secuenciales Sncronos
biestables (p=2), para que se cumpla la desigualdad m#2p. Q0 y Q1 son las dos salidas de los biestables, en las que est el estado actual codificado en binario, de forma que cada estado qi se corresponde con una combinacin de los valores de las salidas de los biestables: si asignamos a q1 el cdigo 01 (q1=01), el circuito estar en el estado q1 cuando Q1=0 y Q0=1. Cuando la informacin temporal sea necesaria, el instante de tiempo (t, t+1...) se indicar indistintamente en forma de funcin, como en x(t), o de superndice Q0t.
S S
los cambios en las entradas del circuito estn sincronizados con la seal de reloj, o los cambios en otros momentos no afecten negativamente al funcionamiento del sistema global.
-9-
-10-
Para el caso de los autmatas o mquinas de Mealy, la tabla tiene tantas filas como estados, p, y tantas columnas como combinaciones de las entradas, n. Si la fila k corresponde al estado qk y la columna m corresponde a la entrada xm, en la interseccin de ambas se escribirn los valores h[f(xm, qk)] y g(xm, qk), bien de la forma h[f(xm, qk)]/g(xm, qk) o bien h[f(xm, qk)], g(xm, qk).En la tabla 2 se muestra un ejemplo genrico de este tipo de tabla. Observse que la salida actual depende tanto del estado actual como de la entrada.
Tabla 2. Ejemplo genrico de tabla de estados de un autmata de Mealy.
x0 h[f(q0, x0)]/g(q0, x0) h[f(q1, x0)]/g(q0, x0) h[f(q2, x0)]/g(q2, x0) ...... h[f(qp-1, x0)]/g(qp-1, x0)
Entrada actual x1 ...... h[f(q0, x1)]/g(q0, x1) h[f(q1, x1)]/g(q1, x1) h[f(q2, x1)]/g(q2, x1) ...... h[f(qp-1, x1)]/g(qp-1, x1) ...... ...... ...... ....
xn-1 h[f(q0, xn-1)]/g(q0, xn-1) h[f(q1, xn-1)]/g(q1, xn-1) h[f(q2, xn-1)]/g(q2, xn-1) ..... ...... h[f(qp-1, xn-1)]/g(qp-1,xn-1)
q(t+1)/z(t) Estado siguiente/salida actual Como se puede ver, una tabla de estados o de transiciones no es ms que una versin de tabla de verdad de las funciones estado siguiente y salida actual en funcin de las variables estado actual y entrada del sistema. Tambin es posible separar la informacin del estado siguiente y la salida, presentndolas en columnas diferentes, obteniendo de este modo una versin extendida de la tabla de estados, como se puede observar en la tabla 3.
-11-
x0
xn-1
x0
xn-1
h[f(q0, x0)] h[f(q0, x1)] ..... h[f(q0, xn-1)] h[f(q1, x0)] h[f(q1, x1)] ..... h[f(q1, xn-1)] h[f(q2, x0)] h[f(q2, x1)] ..... h[f(q2, xn-1)] ...... ...... h[f(qp-1, x0)] h[f(qp-1, x1)] ..h[f(qp-1, xn-1)] q(t+1) Estado siguiente
g(q0, x0) g(q0, x1) .. g(q0, x0) g(q1, x1) .. g(q2, x0) g(q2, x1) .. ..... g(qp-1, x0) g(qp-1, x1) .. z(t) Salida actual
Ejemplo 1: Supongamos un circuito secuencial con dos entradas fsicas X0, X1, lo que supone que puede tener 4 posibles entradas x = {x0=00, x1 =01, x2 =10, x3 =11}, 2 estados internos q ={q0, q1} (que se pueden representar con una variable Q0, Q0=0=>q0, y Q0=1=>q1) y una salida fsica, Z0, por tanto z puede adoptar 2 posibles valores: z={z0=0, z1=1}. De la definicin del sistema se sabe que se debe cumplir: Estando en el estado q0, si la entrada es 00, el estado siguiente es q0 y su salida es 0. Estando en el estado q0, si la entrada es 01, el estado siguiente es q0 y su salida es 1. Estando en el estado q0, si la entrada es 10, el estado siguiente es q0 y su salida es 1. Estando en el estado q0, si la entrada es 11, el estado siguiente es q1 y su salida es 0. Estando en el estado q1, si la entrada es 00, el estado siguiente es q0 y su salida es 1. Estando en el estado q1, si la entrada es 01, el estado siguiente es q1 y su salida es 0. Estando en el estado q1, si la entrada es 10, el estado siguiente es q1 y su salida es 0. Estando en el estado q1, si la entrada es 11, el estado siguiente es q1 y su salida es 1.
Todo esto se puede representar en una tabla de estados como la tabla E1.1, donde denominamos al estado actual q(t), al estado siguiente q(t+1), y a las entradas y salidas actuales x(t) y z(t) respectivamente. Tabla E1.1. Tabla de estados del ejemplo E1.1. Estado actual q(t) q0 q1 Entrada actual x(t) x0 00 q0/0 q0/1 x1 01 q0/1 q1/0 x2 10 q0/1 q1/0 x3 11 q1/0 q1/1
La tabla de estados o de transiciones anterior se puede representar tambin de la forma indicada en la tabla E1.2, basta con recordar que q0=0 y q1= 1.
-12-
Tabla E1.2. Alternativa de representacin de la tabla E1.1 Estado actual q(t) q0 q1 Q0(t) 0 1 00 0 0 Entrada X0(t)X1(t) 01 0 1 10 0 1 11 1 1 Entrada X0(t)X1(t) 00 0 1 01 1 0 10 1 0 11 0 1
S S
Los estados se muestran dentro de crculos. Cada transicin entre estados se representa con un arco que empieza en su estado inicial y acaban en su estado final. De cada estado deben salir tantas flechas como posibles combinaciones tengan las entradas, ya que deben estar contempladas las transiciones para todas ellas. Sobre cada arco se indica la entrada que condiciona dicha transicin y la salida para esa entrada y ese estado actual, con una barra inclinada entre ellas, x(t)/z(t).
En la figura 5 se muestra la forma general de un diagrama de estados o grafo para el caso de un autmata de Mealy. En l se ha representado con una lnea ms gruesa el crculo correspondiente al estado inicial. Considrese la figura como una parte de un grafo mayor, de forma que las transiciones que aparentemente llegan o van a ningn estado, realmente son transiciones al resto del grafo.
Figura 5. Ejemplo que refleja la forma general de representar los diagramas de estados o grafos de los autmatas de Mealy.
La interpretacin que se debe hacer de un grafo es la siguiente: en cada momento estamos en un estado determinado (uno de los crculos), y las entradas tienen un valor (entrada actual). Miraremos cual es la flecha que sale de ese estado condicionada por la entrada actual, y nos dar la salida que tiene el sistema en ese momento. Cuando llegue un flanco de reloj, la transicin se har efectiva, y pasaremos al estado siguiente, volviendo a empezar el proceso.
-13-
x0
xn-1
h[f(q0, x0)] h[f(q0, x1)] ..... h[f(q1, x0)] h[f(q1, x1)] ..... h[f(q2, x0)] h[f(q2, x1)] ..... ...... h[f(qp-1, x0)] h[f(qp-1, x1)] ....... q(t+1) Estado siguiente
Ejemplo 2: Supongamos un circuito secuencial con dos entradas fsicas X0, X1, lo que supone un total de 4 posibles entradas {00, 01, 10, 11}, 4 estados internos Q ={q0, q1, q2, q3} que se codifican con 2 lneas de estado (Q0 y Q1) y una salida fsica, Z0, por lo que z puede adoptar 2 posibles valores, 0 y 1. Si de la definicin del sistema se sabe que debe cumplir: Para los estados q0 y q1 la salida es 0, y para los estados q2 y q3 la salida es 1. Estando en el estado q0, si la entrada es 00 el estado siguiente es q0. Estando en el estado q0, si la entrada es 11 el estado siguiente es q1. Estando en el estado q0, si la entrada es 10 10 el estado siguiente es q2. Estando en el estado q1, si la entrada es 10 01 el estado siguiente es q1. Estando en el estado q1, si la entrada es 11 el estado siguiente es q3.
-14-
Estando en el estado q1, si la entrada es 00 el estado siguiente es q2. Estando en el estado q2, si la entrada es 00 el estado siguiente es q0. Estando en el estado q2, si la entrada es 01 10 el estado siguiente es q2. Estando en el estado q2, si la entrada es 11 el estado siguiente es q1. Estando en el estado q3, si la entrada es 11 el estado siguiente es q3. Estando en el estado q3, si la entrada es 10 01 el estado siguiente es q1. Estando en el estado q3, si la entrada es 00 el estado siguiente es q2.
Todo esto se puede representar en una tabla como la E2.1: Tabla E2.1. Tabla de estados del ejemplo 2.
Entrada x(t) 00 q0 q2 q0 q2 01 q2 q1 q2 q1 11 q1 q3 q1 q3 10 q2 q1 q2 q1
En los grafos de los autmatas de Moore, los estados y las salidas que les corresponden se muestran dentro de crculos. Las transiciones entre estados se indican con arcos que conectan dos estados y sobre estos arcos se indican las entradas que condicionan las transiciones. En la figura 6 se muestra la forma general de un diagrama de estados o grafo para el caso de un autmata de Moore. Considrese la figura como una parte de un grafo mayor, de forma que las transiciones que aparentemente llegan o van a ningn estado, realmente son transiciones al resto del grafo.
-15-
La interpretacin que se debe hacer de un grafo es la siguiente: en cada momento estamos en un estado determinado (uno de los crculos), y las entradas tienen un valor (entrada actual). La salida que acompaa al estado actual dentro del crculo ser la salida que tenga el sistema en este momento. Cuando llegue un flanco de reloj, se har efectiva la transicin condicionada por la entrada actual al sistema, y pasaremos al estado siguiente correspondiente con sus valores de salida asociados, volviendo a empezar el proceso. En la figura E2.1 se representa el grafo correspondiente a la tabla del ejemplo 2.
-16-
Los pasos a seguir son: 4.1. Obtener las ecuaciones lgicas de las seales que se estn aplicando a las entradas de los flip-flops (excitaciones de los biestables). Estas ecuaciones son las funciones lgicas de las entradas de los flip-flops (RS -caso de flip-flops RS- JK -caso de flip-flops JK- D -caso de flipflops D- o T -caso de flip-flops T-) en funcin de las salidas de los propios flip-flops (estado actual), y las entradas del sistema.
-17-
J1t = 1 K 1t = Q 1t X 0 t J2 t = Q 1t X 0 t Q 2 t K 2 t = Q 1t X 0 t
En nuestro ejemplo, las ecuaciones lgicas de las entradas de los flip-flops son:
4.2. Obtener las ecuaciones lgicas del prximo estado: las prximas salidas de los flip-flops [Q(t+1) /Q(t+1)]. Para ello se sustituirn las expresiones lgicas de las entradas (obtenidas en el punto anterior) en las ecuaciones de la salida del tipo de biestable que se est utilizando. Recurdese que las ecuaciones de los flip-flops son:
Biestables JK: Q(t + 1) = J(t)Q(t) + K(t)Q(t) Biestables T: Q(t + 1) = T(t) Q(t) Biestables D: Q(t + 1) = D(t)
En este el ejemplo, al tratarse de flip-flops JK, las ecuaciones lgicas de los prximos estados son
Q 1 (t + 1) = J1 (t)Q 1 (t) + K 1 (t)Q 1 (t) = 1 Q 1 (t) + Q 1 (t) X 0 (t) Q 1 (t) Q 2 (t + 1) = J2 (t)Q 2 (t) + K 2 (t)Q 2 (t) = Q 1 (t) X 0 (t) Q 2 (t) Q 2 (t) + Q 1 (t) X 0 (t) Q 2 (t)
Simplificando estas expresiones se obtiene:
-18-
Tabla E3.1. Tabla de transiciones codificada correspondiente al ejemplo 3. Estado actual Q2(t) Q1(t) 0 0 1 1 0 1 0 1 Entrada actual X0(t) 0 1 11 10 01 00 11 10 01 10 Entrada actual X0(t) 0 1 1 1 1 1 1 0 1 0
Tabla E3.2. Tabla de estados codificada resumida del ejemplo 3. Estado actual Q2(t) Q1(t) 0 0 1 1 0 1 0 1 Entrada actual X0(t) 0 1 11/1 10/1 01/1 00/1 11/1 10/0 01/1 10/0
4.5. Asignar un nombre (q0, q1, q2, etc.) a cada combinacin binaria de las salidas de los flipflops y reescribir la tabla obtenida en el punto 4.4 como tabla de estados. Por ejemplo, en un caso en el que haya 2 biestables, si denominamos q0 a la combinacin 00, el circuito estar en el estado q0 cuando la salida de los dos biestables sea 0, y si llamamos q1 a la combinacin 01, el circuito estar en el estado q1 cuando Q1=1 y Q0=0.
Para el ejemplo 3, haciendo la siguiente asignacin de estados: q0 = 00, q1 = 01, q2=10, q3= 11, la tabla de estados ser (tabla E3.3): Tabla E3.3. Tabla de estados del ejemplo 3. Estado actual q(t) q0 q1 q2 q3 Entrada actual x(t) 0 1 q3/1 q2/1 q1/1 q0/1 q3/1 q2/0 q1/1 q2 /0
4.6. Representar el diagrama de estados o grafo de comportamiento del sistema a partir de la tabla de estados. M. Mazo, S. E. Palazuelos, L. M. Bergasa -19Sistemas Secuenciales Sncronos
El estado inicial es q0 porque los componentes conectados a las entradas asncronas de los biestables hacen que al conectar la alimentacin se realice un reset, y ambos flip-flops comiencen con salida 0. Ejemplo 4. Anlisis de un autmata de Moore. Para este ejemplo vamos a utilizar el circuito de la figura E4.1. Como se puede observar, es un circuito de una sola entrada, dos flip-flops de tipo D y una salida que depende nicamente de las salidas de los biestables, por tanto, se trata de un autmata de Moore.
D 0 t = Q 0 t X 0 t + Q 1t X 0 t = (Q 0 t + Q 1t ) X 0 t
M. Mazo, S. E. Palazuelos, L. M. Bergasa -20Sistemas Secuenciales Sncronos
D 1t = Q 1t X 0 t + Q 0 t X 0 t = (Q 1t + Q 0 t ) X 0 t
2) Funcin lgica del estado siguiente:
Z0(t) = Q0(t).Q1(t)
4) A partir de estas ecuaciones, se obtiene la tabla de transiciones codificada mostrada en la tabla E4.1:
Tabla E4.1. Tabla de transiciones codificada del ejemplo 4. Estado actual Q1(t)Q0(t) 00 01 10 11 0 00 00 00 00 Entrada X0(t) 1 01 10 11 11 Salida actual Z0(t) 0 0 0 1
5) Haciendo la siguiente asignacin de estados: q0 = 00, q1 = 01, q2=10, q3= 11, la tabla de estados ser la tabla E4.2, y el grafo de comportamiento del sistema es el mostrado en la figura E4.2: Tabla E4.2. Tabla de estados del ejemplo 4. Estado actual q(t) q0 q1 q2 q3 Entrada x(t) 0 q0 q0 q0 q0 1 q1 q2 q3 q3 Salida actual z(t) 0 0 0 1
El estado inicial es q0 porque el circuito conectado a las entradas asncronas de los biestables, que hacen que al conectar la alimentacin ambos biestables comiencen con salida 0.
-21-
-22-
-23-
Esta es la parte ms complicada del proceso de sntesis ya que es la ms intuitiva y menos sistemtica. Hemos de indicar que un mismo enunciado puede dar lugar a distintos grafos iniciales, todos ellos vlidos, pero que pueden ser muy diferentes y, por tanto, con mayor o menor complejidad de implementacin. Sin duda, el mejor grafo ser aquel que tenga un menor nmero de estados. De la habilidad, ingenio y experiencia del diseador depende la calidad del grafo, sin embargo, todas estas cualidades no garantizan que el grafo inicial obtenido sea el ptimo. Los pasos a seguir para establecer un grafo a partir del enunciado podran resumirse en: 1. Elegir una realizacin de mquina de Mealy o de Moore (en nuestro caso, en el enunciado se ha indicado que la mquina es de Mealy). 2. Identificar y asignar nombre a: 1) 2) 3) los estados, por ejemplo, q0, q1, q2....., las entradas, p. ej., x0, x1,..., y las salidas, p. ej., z0, z1,....
3. Seleccionar un estado inicial, llammosle q0, (este estado inicial, en muchos casos, lo sugiere el propio enunciado). Partiendo de este estado inicial, y para cada una de las posibles combinaciones de entrada, establecer la salida y el siguiente estado (que puede ser otro o incluso el mismo). 4. Si se trata de una mquina de Mealy: sobre cada flecha que une dos estados indicar la combinacin de entrada que origina dicha transicin entre estados y la salida actual. 5. Si se trata de una mquina de Moore: indicar sobre cada flecha que une dos estados la combinacin de entrada (entrada actual) que origina dicha transicin entre estados. Las salidas correspondientes a cada estado se indican junto a l, dentro del crculo. 6. El proceso indicado en 4) (caso de mquina de Mealy) o 5) (caso de mquina de Moore) se repite para todos los estados.
Ejemplo 5: En este caso, el circuito dispone de una sola entrada, que llamaremos X0, y una salida, que llamaremos Z0. En cuanto a los estados, se puede pensar inicialmente en los siguientes: Estado q0: no se ha recibido el primer 1 (estado inicial). Estado q1: se ha recibido el primer 1. Estado q2: se han recibido un 1 y un 0. Estado q3: se han recibido un 1, un 0 y un 1.
A partir de estos estados se deduce (siguiendo las sugerencias del punto 2.3) que: 1. Si estando en el estado q0 la entrada es 1 se debe pasar al estado q1, y si es 0 se debe permanecer en q0. En ambos casos la salida debe ser 0. 2. Estando en q1 (indicativo de que se ha recibido el primer 1) si se recibe un 0 se debe pasar al estado q2 (indicativo de que se ha recibido un la secuencia 10), si se recibe un 1 se debe interpretar este como el primero de la posible secuencia, por tanto, hay que permanecer en
-24-
q1. En ambos casos la salida debe ser 0. 3. Si estando en q2 se recibe un 1 se pasa al estado q3 (indicativo de haber recibido una secuencia 101). En este caso la salida se debe poner a 1. Si se recibe un 0, la secuencia se rompe, y hay que retornar al estado inicial q0 (es como si no se hubiera recibido ningn 1); en este caso la salida debe ser 0. 4. Si estando en q3 (indicativo de que se ha recibido la secuencia 101) se recibe un 0 se debe retornar al estado q2 (estado al que se llega con un 10). En este caso la salida debe ser 0. Si el dato de entrada es 1 se retorna al estado q1, ya que este nuevo 1 se considera como el primero de una nueva secuencia.
q(t) q0 q1 q2 q3
2Nmero de biestables $Nmero de estados El mtodo que se va utilizar para obtener la tabla mnima es el de Huffman (otro mtodo es el denominado de tablas de implicacin). Para minimizar la tabla de estados se averiguar qu estados son equivalentes y se eliminarn todos menos uno de ellos. Dos estados qi y qj se dice que son equivalentes (qi / qj) si y slo si para cada combinacin de entradas posibles se cumple: 1) 2) las seales de salida correspondiente son las mismas, y los estados siguientes correspondientes a cada combinacin de la entrada son equivalentes.
Con el fin de ilustrar este proceso de minimizacin vamos a utilizar una tabla de estados suficientemente significativa, que nos permita tener una idea clara del proceso a seguir. La tabla que vamos a utilizar es la mostrada a continuacin (tabla 5).
q(t) q0
q1 q2 q3 q4 q5 q6 q7
0
q0/0 q1/0 q2/0 q0/1 q0/1 q4/1 q1/0 q3/0
1
q1/0 q4/0 q7/0 q1/0 q1/0 q5/0 q4/0 q4/1
Los pasos a seguir son: 1. Dividir la tabla de estados en grupos de estados actuales tales que todos los estados de cada grupo tengan la misma salida ante la misma entrada (obsrvese que en la formacin de estos grupos no se tienen en cuenta los prximos estados). Cada grupo de estados se puede nombrar con una letra o un nmero. En la tabla 5 los estados actuales q0, q1, q2 y q6 tienen salidas 00, los estados actuales q3, q4 y q5 tienen salidas 10 y el estado actual q7 tiene salidas 01. Por tanto, siguiendo el punto 1 y asignando a cada grupo una letra identificativa, se obtiene la siguiente divisin de la tabla de estados (tabla 6), (en el siguiente punto se explicar cmo se rellena la ltima lnea de la tabla). 2. La ltima lnea la constituyen los grupos a los que pertenecen los prximos estados de cada estado actual. As por ejemplo, los estados siguientes del estado q0 son q0 (que pertenece M. Mazo, S. E. Palazuelos, L. M. Bergasa -26Sistemas Secuenciales Sncronos
al grupo A) y q1 (que pertenece al grupo A); los estados siguientes del estado q6 son q1 (que pertenece al grupo A) y q4 (que pertenece al grupo C); los estados siguientes del estado q5 son q4 (que pertenece al grupo C) y q5 (que pertenece al grupo C),...........
Tabla 6. Tabla con los estados agrupados por su salida. Salidas Grupos Estados actuales que constituyen el grupo Grupos de los prximos estados q0 A, A q1 A, C 00 A q2 A, B q6 A, C 01 B q7 C, C q3 A, A 10 C q4 A, A q5 C, C
3. Si en esta ltima tabla hay algn grupo (casillas de la segunda fila) dentro del cual hay algn estado actual que forma parte del grupo que no tiene los mismos grupos de los prximos estados (casillas de la ltima fila), esto significa que los estados actuales de dicho grupo no son equivalentes entre s. En este caso hay que dividir dicho grupo en otros ms pequeos que contengan estados actuales con los mismos grupos de los prximos estados.
Siguiendo esta idea, en nuestro ejemplo, el grupo A hay que dividirlo en tres grupos, que llamaremos A, D, E; el grupo C hay que dividirlo en dos grupos, que llamaremos C, F. Una vez realizada esta divisin, hay que asignar los nuevos grupos de los prximos estados, obtenindose la tabla 7:
Tabla 7. Tabla 6 subdividiendo los estados en grupos con los mismos grupos de prximos estados. Salidas Grupos Estados actuales que constituyen el grupo Grupos de los prximos estados A q0 A,D q1 D,C 00 D q6 D,C E q2 E,B 01 B q7 C,C q3 A,D C q4 A,D 10 F q5 C,F
4. Este proceso se repite hasta conseguir una tabla en la que los estados actuales que constituyen el grupo de cada grupo tengan los mismos grupos de los prximos estados. Dentro de esta tabla final los estados actuales que constituyen el grupo de cada grupo son estados equivalentes entre s, y se pueden sustituir por un nico estado.
Segn esto, la tabla 7 es ya la tabla final, ya que los estados actuales que constituyen el grupo de cada grupo tienen los mismos grupos de los prximos estados. Por tanto q1 y q6 son estados equivalentes y tambin lo son q3 y q4. Es necesario asignar un nombre a los nuevos estados, que son los grupos definitivos. As, por ejemplo, se pueden identificar los estados finales utilizando como subndice la letra del grupo al que pertenecen. En M. Mazo, S. E. Palazuelos, L. M. Bergasa -27Sistemas Secuenciales Sncronos
nuestro caso, por tanto, tenemos: qa = q0, qb = q7, qc = q3 = q4, qd = q1 =q6, qe =q2, y qf = q5 y, sustituyendo estos nuevos estados en la tabla 5 se obtiene la tabla mnima equivalente a la misma, que resulta ser la mostrada a continuacin (tabla 8):
Tabla 8. Tabla mnima correspondiente a la tabla 5. Estado actual q(t) qa qb qc qd qe qf Entrada actual x(t) 0 1 qa/0 qc/0 qa/1 qd/0 qe/0 qc/1 qd/0 qc/1 qd/0 qc/0 qb/0 qf/0
En el ejemplo 5 se puede ver (tabla E5.1) que los estados q1 y q3 son equivalentes, por ello denominaremos a los nuevos estados qa =q0, qb =q1= q3, y qc=q2, resultando la siguiente tabla: Tabla E5.2. Tabla de estados mnima del ejemplo 5. Estado actual q(t) qa qb qc Entrada actual x(t) 0 qa/0 qc/0 qa/0 1 qb/0 qb/0 qb/1
2m 2m! N! = m (2 N)! N
M. Mazo, S. E. Palazuelos, L. M. Bergasa -28Sistemas Secuenciales Sncronos
Una alternativa prctica es utilizar ciertas reglas, basadas nicamente en los estados actuales q(t) y prximos q(t+1) de la tabla de estados. Estas reglas, sin entrar en su justificacin, persiguen minimizar la lgica necesaria en las entradas de los biestables. De forma resumida estas reglas son: 1. Buscar en la tabla de estados, estados actuales (q(t)) que tengan idnticos prximos estados para las mismas entradas. Esto es, buscar por filas estados actuales que tengan dentro de cada columna (cada columna se corresponde con una entrada) de estados prximos, estados prximos iguales. A los estados actuales que cumplan esta condicin les vamos a llamar actuales-uno, y a sus prximos estados, si son distintos, los denominaremos prximos-uno. Para conseguir una realizacin buena del circuito, se deben asignar cdigos binarios adyacentes (que slo se diferencien en un bit) a los estados actuales-uno y tambin debern ser adyacentes las asignaciones de los prximos-uno (si son distintos). 2. Buscar en la tabla de estados, estados actuales (q(t)) que tengan idnticos prximos estados, y en la misma cantidad, pero para entradas diferentes. Esto es, buscar por filas estados actuales que tengan para diferentes columnas de estados prximos, estados prximos iguales (y en la misma cantidad). A los estados actuales que cumplan esta condicin les vamos a llamar actuales-dos, y a sus prximos estados si son distintos los denominaremos prximos-dos. Para conseguir una realizacin buena del circuito, se deben asignar cdigos binarios adyacentes a los estados actuales-dos y tambin se debe hacer lo mismo con los estados prximos-dos. 3. Buscar en la tabla de estados, estados actuales (q(t)) que tengan idnticos prximos estados para alguna de las entradas. Esto es, buscar por filas estados actuales que tengan en algunas columnas estados prximos iguales. A los estados actuales que cumplan esta condicin les vamos a llamar actuales-tres. Para conseguir una realizacin buena del circuito, se deben asignar cdigos binarios adyacentes a los estados actuales-tres, teniendo prioridad aquellos estados actuales-tres que tengan mayor nmero de prximos estados iguales. 4. Otra regla prctica es asignar cdigos adyacentes a los prximos estados de cada fila. 5. Y por ltimo, para una realizacin buena del circuito, se deben asignar cdigos binarios adyacentes a cada estado actual con sus prximos estados. Dado que no siempre se podr conseguir aplicar todas estas reglas, el orden de prioridad de aplicacin es el mismo que el de su numeracin en esta lista. Un consejo prctico, para tener claros los cdigos adyacentes, es utilizar mapas de Karnaugh (con los que el alumno ya est familiarizado, y donde estn presentes todas las posibilidades de adyacencia) con tantas variables como flip-flops tenga el circuito a disear. Con el fin de dar mayor claridad a la aplicacin de estas reglas prcticas vamos a utilizar la tabla de estados de la tabla 9. Lgicamente, si esta tabla se fuera a implementar habra que minimizarla, pero para dar mayor claridad al proceso de asignacin de estados se va a utilizar como est:
-29-
Tabla 9. Ejemplo de tabla para la asignacin de estados y obtencin de la tabla de transicin Entrada actual x(t) x1 x2 x3 x0 00 01 10 11 q0/0 q0/1 q4/0 q4/1 q2/1 q0/1 q1/0 q2/0 q0/0 q7/0 q5/1 q5/0 q1/1 q0/0 q2/1 q7/1 q1/0 q2/1 q0/0 q3/1 q3/1 q1/1 q1/0 q2/0 q2/0 q6/0 q2/1 q3/0 q1/1 q2/0 q3/1 q6/1
Aplicando las reglas anteriores tenemos: Regla 5.1: q0 adyacente q5; Regla 5.2: q4 adyacente q6; Regla 5.3: q1 adyacente q7 (3); q2 adyacente q3 (2); q3 adyacente q4 (1) q3 adyacente q6 (1) q0 adyacente q1 (1); q1 adyacente q5 (1); q4 adyacente q7 (1); q5 adyacente q6 (1); q0 adyacente q2 (1) Regla 5.4: q0 adyacente q1 adyacente a q2 q0 adyacente q7, q2, q6 Regla 5.5: q0 adyacente con q1 y q2 q1 adyacente con q0, q7, q2 y q6
Tabla 10. Mapa de Karnaugh.
Segn esto, una posible asignacin es la indicada en el mapa de Karnaugh de la tabla 10. Una vez realizada la asignacin de estados se obtiene la tabla de transiciones codificada (mera traduccin de la tabla de estados) tal como se hizo en el apartado de diseo. Es aconsejable que en la tabla de transiciones codificada aparezcan en columnas diferentes los prximos estados y las salidas actuales. Es evidente que si hay N estados y se utilizan m flip-flops, habr 2m - N combinaciones de las salidas de los biestables que no se correspondan con ningn estado de nuestro grafo. Esas combinaciones no aparecen nunca en la evolucin del circuito, y, por tanto, en el diseo podemos asignarle cualquier valor (X) tanto a sus salidas como a su estado siguiente.
Ejemplo 5. Asignacin de estados del ejemplo 5: qa= 00, qb=01, qc=10.
-30-
A partir de la asignacin de estados anterior y de la tabla de estados E5.2, la tabla de transicin codificada del ejemplo 5 se muestra en la tabla E5.3, reflejando en columnas diferentes los prximos estados y las salidas actuales. Tabla E5.3. Tabla de transicin codificada del ejemplo 5. Estado actual q(t) q0 q1 q2 q3 Q1(t)Q0(t) 00 01 10 11 Entrada actual X0(t) 0 00 10 00 XX 1 01 01 01 XX Entrada actual X0(t) 0 0 0 0 X 1 0 0 1 X
5.7. Obtencin de las tablas de excitacin y ecuaciones de entrada de cada flip-flop del circuito
En este punto se trata de resolver dos problemas: 1. Definir el tipo de flip-flop a utilizar (RS, JK, T, D). A modo de recordatorio, en la tabla 11 se muestran las excitaciones necesarias a la entrada de cada tipo de biestable para obtener todas las posibles transiciones. Se supone que las entradas son activas a nivel alto.
-31-
Tabla 11. Excitacin necesaria para producir cada transicin en los distintos tipos de biestables.
Q(t) 0 0 1 1
Q(t+1) 0 1 0 1
S R 0 1 0 X X 0 1 0
J K 0 1 X X X X 1 0
T 0 1 1 0
D 0 1 0 1
2. Obtener las ecuaciones de entrada de cada flip-flop (valores de R, S; J, K; T D) en funcin de los estados actuales y entradas al sistema. Con esto quedara ya definido el circuito. Para ello, y una vez elegido el tipo de flip-flop, debemos averiguar la excitacin que debemos poner a la entrada para cada estado y combinacin de las seales de entrada para producir la transicin deseada (para ello utilizaremos la tabla 11). Con esta informacin se construye la tabla de excitacin de los biestables, que puede incluir una sola funcin (en los biestables T o D) o dos funciones, (en el caso de los R S o J K). Si son 2 funciones, se divide la tabla y se construye una para cada variable. Por ltimo, se simplifican las tablas obtenidas, (por el mtodo de los mapas de Karnaugh por ejemplo), y se averigua la funcin lgica correspondiente a cada terminal de entrada.
Ejemplo 5. En este caso hay 3 estados, por tanto se necesitan 2 flip-flops. Utilizaremos flip-flops JK, y denominaremos Q1 y Q0 a sus salidas y J1, K1 y J0, K0 a sus entradas, respectivamente. Si reescribimos la tabla E5.3, considerando nicamente los estados actuales y prximos y los valores de J1, K1 y J0, K0, obtendremos la tabla E5.4.
Tabla E5.4. Tabla de excitacin de los flip-flops (ejemplo 5). Estado actual q(t) qa qb qc Q1(t)Q0(t) 00 01 10 11 Entrada actual X0(t) 0 00 10 00 XX 1 01 01 01 XX Entrada actual X0(t) 0 0X 1X X1 XX 1 0X 0X X1 XX Entrada actual X0(t) 0 0X X1 0X XX 1 1X X0 1X XX
Los mapas de Karnaugh correspondientes a las entradas de los dos flip-flops se muestran en la figura E5.3, junto a las funciones de entrada ya simplificadas.
-32-
J0 t = X 0 t
K 0t = X0t
J1t = Q 0 t X 0 t
K 1t = 1
Figura E5.3. Funciones lgicas de las entradas de los flip-flops del ejemplo 5.
Ejemplo 5:
Entradas de los flip flops: J0 t = X 0 t K0t = X0t J1t = Q 0 t X 0 t K 1t = 1 Salida: Z 0 t = X 0 t Q 1t
-33-
Ejemplo 5: En este caso debemos aadir los componentes necesarios para que el circuito al ser alimentado comience en el estado q0=00.
Como se puede observar, el circuito consta de un condensador, un resistor y un diodo, dispuestos como se muestra en la figura E5.5 para generar el control de una entrada asncrona activa a nivel bajo. Cuando conectemos la alimentacin el condensador estar descargado, e impondr un nivel bajo a las entradas CLR de los biestables, por lo que sus salidas sern 0. A medida que pasa el tiempo el condensador se va cargando a travs de la R, hasta que VCLR$ViHmin, y, a partir de ese momento, el biestable funcionar con normalidad con las entradas sncronas (el diodo en esta fase no influye porque estara polarizado en inversa). Los valores de R y C deben ser calculados para que el tiempo que en la entrada CLR haya un nivel bajo sea igual o superior al tCLRmn indicado por el fabricante. Si hay un fallo momentneo de la alimentacin durante el funcionamiento del sistema, el condensador se descargar rpidamente a travs del diodo, asegurando, de esta forma, un reset inicial al recuperar la alimentacin. En este caso, el circuito de control est conectado al CLR de los biestables, porque desebamos que al principio su salida fuera 0. Si necesitamos un 1 inicial, situaremos el circuito de control en las entradas PR. Si la entrada asncrona a controlar fuera activa a nivel alto, sera necesario conectar un circuito similar al anterior, pero cambiando la posicin de los componentes de forma que inicialmente haya 5V en el CLR (o el PR), y despus 0V.
-34-
La entrada asncrona no utilizada debe estar conectada siempre al valor necesario para que el biestable funcione de forma sncrona: en este ejemplo, como el PR es activo a nivel bajo hemos conectado los dos a Vcc. Adems, en algunos casos es necesario incluir la posibilidad de reiniciar el sistema en cualquier momento, es decir, hacer que se site en el estado inicial de forma asncrona, (por ejemplo, controlndolo con un pulsador). Esto se representa en el grafo como una transicin al estado inicial que no llega de ningn otro estado del grafo, y junto a la que aparece el nombre de la entrada asncrona que la controla, como se puede observar en la figura E5.6.
Figura E5.6. Grafo de ejemplo 5 incluyendo una entrada asncrona para reinicializar el circuito.
La posibilidad de reiniciar el sistema se implementa como un pulsador que se aade al circuito de control de las entradas asncronas, como se muestra en la figura E5.7. Este pulsador debe ser conectado de forma que al ser pulsado realice un reset/preset asncrono a los biestables, haciendo que en ese mismo instante el circuito se site en su estado inicial.
Ejemplo 5. En este ejemplo el estado inicial es q0=00, por lo que el pulsador ha sido conectado en el circuito de forma que al ser activado realice un reset a ambos biestables.
Figura E5.7. Circuito del ejemplo 5 incluyendo la posibilidad de hacer un reset asncrono con el pulsador P.
-35-
sobre
sntesis
de
circuitos
Acarreo anterior 0 (q0) 0 (q0) 0 (q0) 0 (q0) 1 (q1) 1 (q1) 1 (q1) 1 (q1)
X1 0 0 1 1 0 0 1 1
X0 0 1 0 1 0 1 0 1
Acarreo generado 0 (q0) 0 (q0) 0 (q0) 1 (q1) 0 (q0) 1 (q1) 1 (q1) 1 (q1)
Suma (S) 0 1 1 0 1 0 0 1
Segn la tabla E6.1, si estando en el estado q0 (acarreo anterior=0) los bits X0 y X1 toman valores X0=0 y X1= 0, X0= 0 y X1= 1 X0=1 y X1=0 la suma es 0, 1, 1, respectivamente y el acarreo generado es 0 en todos los casos, es decir, el estado siguiente es q0. Sin embargo, si el dato es X0=1 y X1=1, la suma es S=0 y se produce acarreo, por tanto, el estado siguiente ser q1. Por otra parte, si en q1 (acarreo anterior=1) los datos de entrada son X0=0 y X1=1, X0=1 y X1=0 X0=1 y X1=1 la suma es 0 (acarreo anterior (1) + 0 + 1 = 0), 0 (acarreo anterior (1) + 1 + 0 = 0), 1 (acarreo anterior (1) + 1 + 1 = 1), respectivamente, y en todos los casos el acarreo generado es 1, lo que hace que permanezca en el estado q1. Por el contrario, si los datos son X0=0 y X1=0, la suma es 1 y el acarreo generado es 0, y se pasa al estado q0. El estado inicial ser q0, porque el primer acarreo es 0. M. Mazo, S. E. Palazuelos, L. M. Bergasa -36Sistemas Secuenciales Sncronos
Entrada actual x0 00 q0/0 q0/1 x1 01 q0/1 q1/0 x2 10 q0/1 q1/0 x3 11 q1/0 q1/1
Como hay 2 estados, ser suficiente con 1 biestable. La asignacin de estados puede ser: q0= 0, q1= 1 y la tabla de transiciones codificada es la mostrada a continuacin (tabla E6.3). En ella, Q0 es la salida fsica del flip-flop, las lneas de entrada del circuito son X0 y X1, y la salida fsica Z0.
Tabla E6.3. Tabla de estados codificada.
Una vez que tenemos ya las transiciones del autmata como cambios entre 0 y 1 de Q0(t), debemos obtener la funcin de excitacin del biestable para conseguir que se produzcan dichas transiciones. Segn la tabla 11, para un biestable JK, y denominando J0 y K0 a las entradas, obtenemos la tabla E6.4.
-37-
Obsrvese que las columnas de la izquierda dentro del cuadro Entradas del flip-flop para cada combinacin de entrada, corresponden al valor que debe tomar J0 y las columnas de la derecha corresponden a K0.
Tabla E6.4. Tabla de excitacin del biestable.
Utilizando mapas de Karnaugh para obtener las funciones de entrada al flip-flop, se tienen los resultados mostrados en la figura E6.2.
J0 t = X 0 t X 1 t
K 0 t = X 0 t X 1t
A continuacin calculamos la funcin lgica de la salida del circuito, Z0(t), a partir de la informacin de la tabla E6.3, utilizando el mapa de Karnaugh de la figura E6.3.
A partir de este mapa de Karnaugh se obtiene como funcin de salida la siguiente expresin:
-38-
Z 0 t = X 0 t X 1t Q 0 t + X 0 t X 1t Q 0 t + X 0 t X 1t Q 0 t + X 0 t X 1t Q 0 t = X 0 t X 1t Q 0 t
Ya tenemos toda la informacin necesaria para implementar el circuito, que se muestra en la figura E6.4.
Por ltimo, conectamos en las entradas asncronas del biestable los componentes necesarios para asegurar que empezar en el estado q0, es decir, que al conectar la alimentacin Q0=0.
Como se puede observar, en este ejemplo las entradas asncronas son activas a nivel alto. Se desea que la salida inicial del biestable sea 0, por lo que el PR se ha conectado a nivel bajo, para que permita actuar a las entradas sncronas, y el circuito de control del CLR se ha diseado de forma que proporcione un nivel alto al conectar la alimentacin, realizando un reset, y, transcurrido un tiempo (determinado por los valores de R y C), un nivel bajo, para que el biestable funcione de forma sncrona. La funcin del diodo es la misma que la del diodo del ejemplo 5.
-39-
A partir de estos estados se puede deducir que: 1. Si estando en el estado q0 la entrada es 1 se debe pasar al estado q1, y si es 0 se debe permanecer en q0. La salida estando en q0 debe ser 0. 2. Estando en q1 (indicativo de que se ha recibido el primer 1) si se recibe un 1 se debe pasar al estado q2 (indicativo de que se ha recibido la secuencia 11). Si, por el contrario, se recibe un 0 la secuencia se rompe, y hay que retornar al estado inicial q0 (es como si no se hubiera recibido ningn 1). La salida estando en q1 debe ser 0. 3. Si en q2 se recibe un 1 se pasa al estado q3 (indicativo de haber recibido una secuencia 111). Si se recibe un 0, la secuencia se rompe, y hay que retornar al estado inicial q0 (es como si no se hubiera recibido ningn 1). La salida estando en q2 debe ser 0. 4. Si estando en q3 (indicativo de que se ha recibido la secuencia 111) se recibe un 0 se debe retornar al estado q0, y si la entrada es 1 se debe permanecer en q3. La salida estando en q3 debe ser 1. Por tanto, el grafo es el mostrado en la figura E7.1, que se corresponde con la tabla de estados mostrada en la tabla E7.1.
Tabla E7.1. Tabla de estados del ejemplo 7.
-40-
Como hay 4 estados se necesitan 2 flip-flops, y cada estado se codificar con una combinacin de 2 bits. La asignacin de estados puede ser: q0= 00, q1= 01, q2= 10, q3=11, y con esto se puede rescribir la tabla E7.1, obteniendo la tabla de estados codificada, que se muestra en la tabla E7.2. En este caso se van a utilizar flip-flops de tipo D, a cuyas salidas denominaremos Q1 y Q0 y a sus entradas D1 y D0 respectivamente. A continuacin debemos calcular la excitacin que es necesario aplicar a cada una de estas entradas para obtener las transiciones buscadas. Recordemos que esta informacin estaba incluida en la tabla 11 para todos los tipos de biestables, y en este ejemplo debemos utilizar la columna de los biestables D. En la tabla E7.3 se muestra la excitacin de los biestables para obtener las transiciones de la tabla E7.2.
Tabla E7.2. Tabla de estados codificada del ejemplo 7.
Los mapas de Karnaugh correspondientes a las entradas D1 y D0 se muestran en la figura E7.2, junto a las funciones ya simplificadas.
-41-
D 0 t = Q 0 t X 0 t + Q 1t X 0 t = (Q 0 t + Q 1t ) X 0 t
D 1t = Q 1t X 0 t + Q 0 t X 0 t = (Q 1t + Q 0 t ) X 0 t
Figura E7.2. Funciones lgicas de las entradas de los flip-flops del ejemplo 7.
A continuacin calculamos la funcin de salida. En este caso, al tratarse de un autmata de Moore, la salida slo depende del estado interno. A partir de la tabla E7.2 se obtiene: Z0t=Q0t.Q1t
Figura E7.3. Implementacin del ejemplo 7 (detector de secuencias de tres o ms 1's consecutivos).
Ahora ya tenemos todas las funciones necesarias para implementar el circuito, que se muestra en la figura E7.3. Por ltimo, es necesario incluir el control de las entradas asncronas de los biestables para asegurar que el estado inicial sea q0, es decir, que la salida de ambos biestables sea cero al conectar la alimentacin. El circuito completo se muestra en la figura E7.4.
-42-
Figura E7.4. Circuito detector de la secuencia 111" incluyendo el control de las entradas asncronas.
-43-
En este caso hay diez estados, por lo tanto se necesitan 4 flip-flops. Una posible asignacin de estados es la siguiente: q0= 0000, q1= 0001, q2= 0010, q3=0011,q4= 0100, q5= 0101, q6= 0110, q7=0111, q8=1000, q9=1001, y sustituyendo los cdigos en la tabla E8.1, obtenemos la tabla de estados codificada, mostrada en la tabla E8.2. Los estados 1010, 1011, 1100, 1101, 1110 y 1111 nunca se presentan y, por tanto, a las salidas y prximos estados correspondientes se les puede asignar cualquier valor, situacin que se indica con la letra X.
Tabla E8.2. Tabla de estados codificada del ejemplo 8.
Estado actual Q3(t) Q2(t) Q1(t) Q0(t) 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Prximos estados Q3(t+1) Q2(t+1) Q1(t+1) Q0(t+1) 0001 0010 0011 0100 0101 0110 0111 1000 1001 0000 XXXX XXXX XXXX XXXX XXXX XXXX
Salida actual Z3(t) Z2(t) Z1(t) Z0(t) 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 XXXX XXXX XXXX XXXX XXXX XXXX
A continuacin debemos obtener la funcin de excitacin de los biestables para que se produzcan las transiciones deseadas, (mostradas en la tabla E8.2). Utilizaremos flip-flops tipo M. Mazo, S. E. Palazuelos, L. M. Bergasa -44Sistemas Secuenciales Sncronos
JK, y denominaremos Q3, Q2, Q1, Q0 a sus salidas y J3, K3; J2, K2; J1, K1 y J0, K0 a sus entradas, respectivamente. Como en ejemplos anteriores, utilizaremos la informacin contenida en la tabla 11, en la columna referida a los biestables JK, para saber la excitacin necesaria para producir cada transicin. Con ella completaremos la tabla de excitacin de los biestables, tabla E8.3, y, a partir de ella, obtendremos las funciones de entrada de los biestables de la figura E8.2.
Tabla E8.3. Tabla de excitacin de los flip-flops del ejemplo 8.
Estado actual Q3(t) Q2(t) Q1(t) Q0(t) 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Prximos estados Q3(t+1) Q2(t+1) Q1(t+1) Q0(t+1) 0001 0010 0011 0100 0101 0110 0111 1000 1001 0000 XXXX XXXX XXXX XXXX XXXX XXXX
J3t K3t
Entradas flip-flops
J2t K2t J1t K1t J0t K0t
0X 0X 0X 0X 0X 0X 0X 1X X0 X1 XX XX XX XX XX XX
0X 0X 0X 1X X0 X0 X0 X1 0X 0X XX XX XX XX XX XX
0X 1X X0 X1 0X 1X X0 X1 0X 0X XX XX XX XX XX XX
1X X1 1X X1 1X X1 1X X1 1X X1 XX XX XX XX XX XX
-45-
J0 t = 1
K0t = 1
J1t = Q 0 t Q 3 t
K 1t = Q 0 t
J2 t = Q 0 t Q 1t
K 2 t = Q 1t Q 0 t
J3 t = Q 2 t Q 1t Q 0 t
K 3 t = Q0 t
Por ltimo, debemos calcular las funciones lgicas de las cuatro salidas, Z3, Z2, Z1 y Z0. A partir de la tabla E8.2, y utilizando mapas de Karnaugh para simplificar, se obtienen las funciones de la figura E8.3. Una vez obtenidas las funciones lgicas de las salidas del circuito y de las entradas de los biestables, podemos implementar el circuito, como se muestra en la figura 8.4, y por ltimo, aadir en las entradas asncronas las conexiones necesarias para que empiece a contar por el 0, obteniendo el circuito de la figura 8.5.
-46-
Z0 t = Q0 t
Z 1t = Q 1t
Z2t = Q2t
Z3 t = Q3 t
Figura E8.3. Mapas de Karnaugh y expresiones lgicas de las salidas del autmata.
-47-
Figura E8.5. Contador BCD del ejemplo 8, incluyendo el control de las entradas asncronas.
-48-
7. Ejercicios propuestos
1. Disese un circuito secuencial sncrono tipo Moore que proporcione a su salida un nivel alto cada vez que en su lnea de entrada se presente la secuencia 010. 2. Disese un circuito detector de paridad para caracteres binarios de 4 bits, que se reciben en serie por una lnea X0. La salida Z0 debe ponerse a 1 si en el momento de llegar el cuarto bit el nmero de 1's es par y permanecer en 0 en caso contrario. Despus del cuarto bit el sistema debe volver al estado inicial, quedando preparado para recibir el siguiente carcter. 3. Castillo encantado. Un ejemplo curioso (ASHBY, 1956 y reproducido en Fundamentos de los Ordenadores - G. Fernndez y F. Senz) es el del castillo encantado: El problema se expone en una carta dirigida a un amigo: Querido amigo: Al poco tiempo de comprar esta vieja mansin tuve la desagradable sorpresa de comprobar que est hechizada con dos sonidos de ultratumba que la hacen prcticamente inhabitable: un canto picaresco y una risa sardnica. Sin embargo, an conservo cierta esperanza, pues la experiencia me ha demostrado que su comportamiento obedece a ciertas leyes, oscuras pero infalibles, y que puede modificarse tocando el rgano y quemando incienso. En cada minuto, cada sonido est presente o ausente. Lo que cada uno de ellos har en el minuto siguiente depende de lo que pasa en el minuto actual, de la siguiente manera: El canto conservar el mismo estado (presente o ausente) salvo si durante el minuto actual no se oye la risa y toco el rgano, en cuyo caso el canto toma el estado opuesto. En cuanto a la risa, si no quemo incienso, se oir o no segn que el canto est presente o ausente (de modo que la risa imita al canto con un minuto de retardo). Ahora bien, si quemo incienso la risa har justamente lo contrario de lo que haca el canto. En el momento en que te escribo estoy oyendo a la vez la risa y el canto. Te quedara muy agradecido si me dices qu manipulaciones de rgano e incienso debo seguir para restablecer definitivamente la calma. A partir de este enunciado, obtngase el grafo del autmata de Moore correspondiente.
-49-