maquinas secuenciales

Embed Size (px)

Citation preview

1

Captulo 11

Anlisis y Diseo de mquinas secuenciales sincrnicas11.1. AnlisisDado el esquemtico de una red secuencial sincrnica se desea obtener el diagrama de estados; y a partir de ste, inferir el funcionamiento de la mquina. Este procedimiento se suele llamar reingeniera. A continuacin se resume el funcionamiento de una mquina secuencial; en el esquemtico de la Figura 11.1, los elementos de memoria pueden ser flip-flops Ds o JKs.Reset

x(k)

P1

z(k)

P2 Q y(k)

y(k+1) Clk

Figura 11.1. Esquema de mquina secuencial. El estado actual y (k ) es sostenido en las salidas Q(k ) de los flip-flops, durante el intervalo de tiempo k. En este intervalo, se generan z (k ) e y (k 1) a partir de y (k ) y x(k ) , en la red combinacional. El prximo estado, y (k 1) , se lleva a las entradas de los flip-flops, de tal manera que en el instante (k +1) las salidas de los flip-flops, almacenaran los valores y (k 1) . Para esto es indispensable que las entradas a los flip-flops sean estables en el momento de aplicar el canto del reloj que efectuar la conmutacin, o cambio de estado, que implica pasar del intervalo k al intervalo (k+1). Para n entradas, m estados y p salidas se tienen, los vectores booleanos:Profesor Leopoldo Silva Bijit 19-01-2010

2

Sistemas Digitales

x ( x0 , x1 ,..., xn ) y ( y0 , y1 ,..., ym ) z ( z0 , z1 ,..., z p )Programas de los flip-flops. Matrices de programacin. A partir del esquemtico de la red booleana pueden escribirse las funciones de las entradas de los flip-flops en funcin de la entrada y el estado presente, se denominan programas de los flipflops, o ecuaciones de excitacin de stos. En caso de flip-flops JKs, se tienen las ecuaciones:

Ji Ki Di

f i ( y, x) gi ( y, x) f i ( y, x)

En caso de flip-flops Ds, se tienen las ecuaciones:

Las representaciones de estas ecuaciones en un mapa de Karnaugh se denominan: Matrices de Programacin.

11.2. Mtodo de anlisis tabularEl mtodo de anlisis tabular est basado en obtener la matriz de transiciones a partir de las matrices de programacin. En cada casilla, de cada una de las (m+1) matrices de programacin, mediante las tablas caractersticas, se determinan las (m+1) componentes del vector de prximo estado de cada casilla de la matriz de transicin. El siguiente esquema muestra el proceso para obtener la matriz de transiciones:

x yJ 0 0 1 1 K 0 1 0 1 y(k+1) y(k) 0 1 y(k)

x y

Ji, Ki

y(k+1)

Figura 11.2. Esquema anlisis tabular Se muestra slo la matriz de programacin del flip-flop i-simo, que se asume del tipo JK. Para cada par ( J i , Ki ) de la matriz de programacin i-sima, mediante la tabla caracterstica, se encuentra el prximo estado yi (k 1) asociado; componiendo de este modo el vector y(k+1).

Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 11. Anlisis y Diseo de mquinas secuenciales sincrnicas

3

A partir de la tabla de transiciones, resulta sencillo dibujar el diagrama de estados, y a partir de ste determinar el funcionamiento u operacin de la mquina secuencial.

11.3. Mtodo analtico.Las ecuaciones de los programas de los flip-flops, que se asumen del tipo JK:

Ji Ki

f i ( y, x) gi ( y, x)

Se reemplazan en las ecuaciones caractersticas de los (m+1) flip-flops:

yi (k 1)

J i yi ' Ki ' yi

De esta forma se eliminan las variables J i y K i , quedando las (m+1) ecuaciones:

yi (k 1)

fi ( y(k ), x(k ))

Las que representadas en un mapa de Karnaugh, forman la matriz de transiciones.

11.4. Ejemplo mtodo tabularSe tiene el siguiente esquemtico:clkC C P1 P2

x 1 reset

clk

J Q J C K QK P

S

A

BJ C K P S Q _ Q

z C

J C K P

S _ Q

Figura 11.3. Ejemplo de mquina secuencial empleando flip-flops JKProfesor Leopoldo Silva Bijit 19-01-2010

4

Sistemas Digitales

Ntese que se tiene una seal de reset comn para los tres flip-flops. Esto implica que el estado inicial ser el 000. Los cambios ocurren con el canto de subida del reloj. Se asume que la entrada x es una secuencia sincrnica con el mismo reloj (clk) del sistema. Leyendo las ecuaciones de las entradas de los flip-flops, directamente del esquemtico, se obtienen:

JA JB JC

( B ' C B ' x '); K A ( AB ' B ' C ); K B A ' x; K C B x'

B B

Para obtener la matriz de programacin del flip-flop A: Se debe establecer JA y KA para cada combinacin posible del estado presente y la entrada. Se procede en forma anloga para los flip-flops B y C. Este proceso de ilustra en la Figura 11.4, para cada uno de los flip-flops, se obtienen las siguientes matrices de programacin:x ABC 000 001 011 010 110 111 101 100 0 10 10 01 01 01 01 10 10 1 00 10 01 01 01 01 10 00 x ABC 000 001 011 010 110 111 101 100 0 00 10 01 01 01 01 10 10 1 00 10 01 01 01 01 10 10 x ABC 000 001 011 010 110 111 101 100 0 01 01 01 01 01 01 01 01 1 10 10 11 11 01 01 00 00

J , K A A

J , K B B A A

J , K C C A

Figura 11.4. Matrices de Programacin

Usando la tabla caracterstica del flip-flop JK se logra, la matriz de transiciones, de la Figura 11.5. Adems se ha empleado la ecuacin de salida: z xBC .

Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 11. Anlisis y Diseo de mquinas secuenciales sincrnicas

5

x ABC 000 001 011 010 110 111 101 100 0 100/0 110/0 000/0 000/0 000/0 000/0 110/0 110/0 1 001/0 111/0 000/1 001/0 000/0 000/1 111/0 110/0

A(k+1) B(k+1) C(k+1)/zFigura 11.5. Matriz de transiciones del Ejemplo 11.4. Para todas las ocurrencias de (J,K) igual a (1,0) en las tablas de la Figura 11.4, se coloca un 1 en la columna correspondiente de la Figura 11.5; se coloca 0 para (J, K) igual a (0,1). Para (J, K) igual a (0,0) en las tablas de la Figura 11.4, se coloca el valor actual de la variable en la columna correspondiente de la Figura 11.5. Para (J, K) igual a (1,1) en las tablas de la Figura 11.4, se coloca el valor complementado de la variable actual en la columna correspondiente de la Figura 11.5. Si colocamos la cifra decimal, equivalente del nombre binario del estado, se logra la matriz de transiciones, empleando nombres simblicos para los estados. Se obtiene la Figura 11.6, izquierda. Y de esta matriz se obtiene el diagrama de estados que se ilustra a la derecha en la Figura 11.6.

Profesor Leopoldo Silva Bijit

19-01-2010

6 3 Estado actual 0 1 3 2 6 7 5 4 x 0 4/0 6/0 0/0 0/0 0/0 0/0 6/0 6/0 1 1/0 7/0 0/1 1/0 0/0 0/1 7/0 6/0 0/0 1/1 0 0/0 4 /06 /0

Sistemas Digitales

0/0

2

1/0 1/0 1 0/0 1/0 1/1 0/0 7 0/0 51/0

Estado prximo/z

Figura 11.6. Diagrama de estados ejemplo 11.3 Se observa que los estados 2, 3 y 5 slo pueden ser estados iniciales y no participan de la naturaleza secuencial del resto. Si no se dibujan, resulta la Figura 11.7.reset 0 0/0 4 /0 6 1/0 /0 0/0 7 1 1/0 0/0 1/1

Figura 11.7. Diagrama de estados reducido. En la Figura 11.7, con estado inicial igual a cero, puede concluirse que el circuito es un reconocedor de secuencia de largo fijo igual a 3. A partir del estado inicial acepta tres valores de la entrada y luego toma una decisin. La mquina analiza grupos de 3 bits de la secuencia de entrada, y si sta es 111, genera un uno en la salida; cero en el resto de los casos.

Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 11. Anlisis y Diseo de mquinas secuenciales sincrnicas

7

11.5. Ejemplos del mtodo analtico.a) Para la Figura 11.3, se tienen las siguientes ecuaciones:

JA JB JC z

( B ' C B ' x '); K A ( AB ' B ' C ); K B A ' x; K C xBC B x'

B B

Las ecuaciones anteriores representan el esquemtico de la Figura 11.3. Para los flip-flops JK se tienen las siguientes ecuaciones caractersticas:

A(k 1) B(k 1) C (k 1)

JA A KAA JB B JC C KBB KCC

Donde se han reemplazado las salidas Q de los flip-flops, por las variables de estado: A, B y C. Eliminando las variables J y K de los tres flip-flops, reemplazndolas en las ecuaciones caractersticas, se obtienen:

A(k 1) ( B C B x) A BA B (k 1) ( AB BC ) B BB C (k 1) AxC ( B x ) CLas ecuaciones anteriores permiten obtener directamente la matriz de transicin, para esto basta representarlas en un mapa de Karnaugh: x ABC 0 1

000 001 011 010 110 111 101 100

100/0 110/0 000/0 000/0 000/0 000/0 110/0 110/0

001/0 111/0 000/1 001/0 000/0 000/1 111/0 110/0

A(k+1) B(k+1) C(k+1)/zFigura 11.8. Matriz de transiciones, empleando mtodo analtico.

Profesor Leopoldo Silva Bijit

19-01-2010

8

Sistemas Digitales

Que resulta ser igual a la obtenida antes, por el mtodo tabular. Luego se contina en forma similar al ejemplo anterior, desarrollado en 11.4. b) Analizar la mquina secuencial descrita por el diagrama de bloques, de la Figura 11.9, y las ecuaciones siguientes: z1 x z2 M.S.S. z3 clk Figura 11.9. Entradas y salidas de mquina secuencial.

J1 J2

xy2 ; xy1 ;

K1 K2

x x

z1 z2 z3

y1 y2 xy1 y2 y1 y2

Las ecuaciones del prximo estado de los flip-flops:

Y1 Y2

J1 y1 K1 y1 J 2 y2 K 2 y2

Reemplazando las ecuaciones de programacin de los flip-flops en las ecuaciones anteriores, resultan:

Y1 Y2

xy2 y1 xy1 y2

xy1 xy2

Que permite escribir la siguiente tabla de transiciones: y1 0 0 1 1 y2 0 1 1 0 x 0 1 00 01 01 10 11 00 10 00 Y1Y2

Figura 11.10. Tabla de transiciones ejemplo 11.5.b Las ecuaciones de las salidas pueden escribirse, empleando el mapa de Karnaugh, de la Figura 11.11:

Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 11. Anlisis y Diseo de mquinas secuenciales sincrnicas x y1 y2 00 01 11 10 0 1 100 100 000 000 001 001 000 010 z1 z2 z3

9

Figura 11.11. Ecuaciones de salidas. Con la asignacin de estados, de la Figura 11.12, en la que se emplea como nombre lgico el equivalente decimal del nombre fsico o binario, se obtiene el diagrama de estados que se muestra en la Figura 11.13. x Estado 0 1 0 0 1 1 1 2 3 3 0 2 2 0 Est. prximo Figura 11.12. Asignacin de estados simblicos. 0/100 0 1/001 1/010 0/001 3 2 0/000 0/000 1 1/100

1/100

x/z1z2z3

Figura 11.13. Diagrama de estados de Mealy Observando el diagrama, de la Figura 11.13, se obtienen: El estado 3 slo puede ser estado inicial. La salida z3 indica que se est en estado 3. La salida z1 indica que se est en estado 0. Si se parte del estado cero, se cuentan 3 niveles altos de la entrada, y se lo indica en salida z2 mediante un pulso. Notar que debido a que z2 depende de x, se model mediante una mquina de Mealy.

11.6. Frecuencia mxima de operacin del reloj.Para un flip-flop sincronizado por cantos de bajada:Profesor Leopoldo Silva Bijit 19-01-2010

10

Sistemas Digitales

Red Combinacional

J K

Q

tp

reloj

tf

Figura 11.14. Definicin de tiempos de propagacin. a) Se puede calcular el retardo de propagacin, a travs de los circuitos combinacionales, por la va ms larga. Es decir, por aquella va de realimentacin que produzca el mayor retardo, est va suele denominarse ruta crtica. Sea este tiempo: tp. b) Desde el canto de bajada del reloj, hasta que la salida de un flip-flop cambie de estado, se tiene el tiempo de propagacin en el flip-flop. Sea este tiempo: tf. c) Se tiene adems el tiempo de setup, tsu, que es aquel durante el cual las entradas de los flipflops no deben cambiar, antes del canto. d) El perodo del reloj puede cambiar debido a que la frecuencia puede experimentar variaciones debidas a cambios de la temperatura. Tambin la seal del reloj en diferentes puntos del circuito puede tener variaciones por el tiempo de propagacin a travs de los cables. Sea el mximo tiempo de variacin tskew. Si tenemos un reloj:

t0

t1

t

Figura 11.15. Ciclos del reloj Por las condiciones a, b, c y d, se debe cumplir: to + t1 > tf + tp+ tsu+ tskew. Sea tpmin el mnimo tiempo que tardan los cambios de las seales en atravesar la red

combinacional, y tfmin el mnimo tiempo en que cambian las salidas de los flip-flops, despus del canto; entonces debe cumplirse: tpmin + tfmin + tskew > tholdSi puede asegurarse que las entradas no cambian tsu antes del canto y thold despus del canto, el flip-flop funcionar confiablemente. Esta verificacin debe efectuarse para cada uno de los flipflops de la red booleana. Entonces el perodo mnimo del reloj, debe cumplir:

Tmn = tf + tp + tsu+ tskew.Obtenindose una frecuencia mxima:Profesor Leopoldo Silva Bijit 19-01-2010

Captulo 11. Anlisis y Diseo de mquinas secuenciales sincrnicas

11

f mx

tf

tp

1 tsu

t skew

Algunos valores tpicos, de la familia TTL: tf =20 ns ; tsu =20 ns ; tp =15 ns que dan frecuencias de operacin menores que 18 [Mhz] sin considerar tskew. Los dispositivos CPLD y FPGA tienen frecuencias de funcionamiento mucho mayores.

11.7. Sntesis o diseo de mquinas secuenciales sincrnicas, a partir del diagrama de estados.El problema que deseamos resolver es obtener las redes combinacionales que programan los flip-flops de una red secuencial, a partir del diagrama de estados, reducido y con asignacin de estados. De estas ecuaciones puede obtenerse el esquemtico, o el programa verilog para la implementacin fsica.

11.7.1. Procedimiento de sntesis tabular.A partir de la tabla de transiciones, con la ayuda de la tabla de excitaciones de los flip-flops, se obtienen las (m+1) matrices de control de los flip-flops. Y mediante stas, se determinan los programas de los flip-flops. En el esquema de la Figura 11.16, se muestra la generacin del programa del flip-flop JK i-simo solamente. Esquemticamente: Matriz de control Programas

x(k) y(k)

xy

y(k+1) Ji, Ki y(k) y(k+1) JK

Ji Ki

f i ( y, x) gi ( y, x)

Figura 11.16. Esquema general de sntesis Si se tienen (n+1) entradas y (m+1) flip-flops, los vectores booleanos de la entrada y el estado quedan representados por:Profesor Leopoldo Silva Bijit 19-01-2010

12

Sistemas Digitales

x ( x0 , x1 ,..., xn ) y ( y0 , y1 ,..., ym )

En el esquema anterior se ilustra empleando flip-flops de tipo JK, se procede en forma similar si los flip-flops son de otro tipo. Se eliminan las variables de prximo estado, obtenindose las matrices de programacin. Resumen de las tablas de excitaciones para diversos flip-flops. Q(k) Q(k+1) D J K T 0 0 0 0 0 0 1 1 1 1 1 0 0 1 1 1 1 1 0 0 S R 0 1 0 0 1 0

Figura 11.17. Tablas de excitaciones para diferentes flip-flops. Luego, en el Captulo 14, se vern los flip-flops SR, cuyas tablas se indican en las ltimas dos columnas de la Figura 11.17.

11.7.2. Procedimiento de sntesis analtico.Se escriben las ecuaciones caractersticas de los flip-flops; y se escriben las ecuaciones de prximos estados, a partir de la tabla de transiciones. Por comparacin de coeficientes se determinan las funciones Ji y Ki, si se emplean flip-flops de este tipo. Lo que se efecta es la eliminacin de las variables de prximo estado.

11.8. Ejemplos de sntesis.Ejemplo 11.8.1. Para el detector de secuencia 110 cada vez que sta se presente, se tiene: 1/0 0/0 START 0/0 reset 0/1 Figura 11.18. Detector de secuencia 110. Estado 0 Estado 1 1/0 1/0

Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 11. Anlisis y Diseo de mquinas secuenciales sincrnicas Con la siguiente asignacin de estados, se obtiene la matriz de transiciones: x 0 1 00/0 01/0 00/0 11/0 00/1 11/0 dd/d dd/d Q1+Q0+/z

13

Estado Start Estado 0 Estado 1

Q1 0 0 1

Q0 0 1 1

Q1 0 0 1 1

Q0 0 1 1 0

Figura 11.19. Asignacin de estados y matriz de transiciones. Notar la eleccin de condiciones superfluas para el estado 10, que no se emplea en el diseo. Se escogi el estado de start como el 00, para simplificar el diseo de la seal reset; en este caso basta activar la seal clear asincrnico del flip-flop que se emplee para lograr la funcin reset. La eleccin de condiciones superfluas simplifican las redes combinacionales que efectan los programas de los flip-flops. a) Procedimiento tabular empleando flip-flops Ds: Usando la tabla de transiciones de flip-flops Ds, se logra: x Q1 0 0 1 1 Q0 0 1 1 0 0 1 00 01 00 11 00 11 dd dd D1D0

Figura 11.20. Programas de flip-flops D Con programas: D1 = Q0 x D0 = x Debe notarse que cuando se emplean flip-flops D, los programas de stos pueden obtenerse directamente de la matriz de transiciones, cambiando Q1+ por D1 y Q0+ por D0. b) Mtodo analtico empleando flip-flops Ds: De la matriz de transiciones se tienen: z = Q1 x' Q0+ = x Q1+ = Q0 x De los flip-flops Ds: Q1+ = D1 Q0+ = D0Profesor Leopoldo Silva Bijit 19-01-2010

14 Comparando coeficientes se logra igual resultado que el anterior. c) Procedimiento tabular empleando flip-flops JKs:

Sistemas Digitales

Empleando flip-flops JK, de la matriz de transiciones de la Figura 11.19, se obtienen: x Q1 0 0 1 1 Q0 0 1 1 0 0 0 0 1 J1K1 0 1 0 1 Q1 0 0 1 1 Q0 0 1 1 0 0 0 1 1 J0K0 1 0 0 x 1

Figura 11.21. Programas de flip-flops JK Leyendo los mapas, considerando las condiciones superfluas, resultan: J1 = Q0 x; K1 = x'; J0 = x; K0 = x' Notar que K1 tambin se podra haber expresado, como: K1 = x' +Q0' agrupando los ceros, o bien: K1 = xQ0 agrupando los unos; sin aprovechar completamente las condiciones superfluas. d) Mtodo analtico empleando flip-flops JKs: De la matriz de transiciones de la Figura 11.19, y aplicando el teorema de expansin, para tener presente a la derecha la variable correspondiente, que figura a la izquierda de cada ecuacin, se logra: z = Q1 x' Q1+ = Q0 x = Q0xQ1' + Q0xQ1 (se expande en Q1) Q0+ = x = xQ0' + xQ0 (se expande en Q0) De los flip-flops JKs, se tienen las siguientes ecuaciones: Q1+ = J1Q1' +K1'Q1 Q0+ = J0Q0' +K0'Q0 Comparando los coeficientes, se obtienen: J1 = Q0 x ; K1 = Q0' + x'; J0 = x; K0 = x' Notar que el mtodo analtico, en este caso, agrega el trmino Q0' que resulta superfluo. Como se puede apreciar en el ejemplo anterior, el procedimiento tabular es capaz de generar expresiones ms reducidas que el procedimiento analtico. Esto se debe a que en este ltimo la reduccin se efecta empleando las ecuaciones caractersticas y no se pueden aprovechar las condiciones superfluas que aparecen en las tablas de excitaciones de los flip-flops JKs. En caso de disear empleando flip-flops JK y si la tabla de transiciones tiene condiciones superfluas, debido a estados no empleados, conviene usar el mtodo tabular.Profesor Leopoldo Silva Bijit 19-01-2010

Captulo 11. Anlisis y Diseo de mquinas secuenciales sincrnicas

15

La matriz de transiciones de la Figura 11.20, puede plantearse como una tabla de verdad, entre las entradas (estado presente y entradas) y las salidas (prximo estado y salidas), segn se muestra en la Figura 11.22. Entradas Salidas Q0 Q1 x Q1+ Q2+ 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 1 1 1 1 1 0 0 d d 1 0 1 d d 1 1 0 1 0 1 1 1 1 1

z 0 0 0 0 d d 1 0

Figura 11.22. Matriz de transiciones. e) Descripcin del diseo en Verilog. Una vez realizado el diseo, pueden describirse las redes combinacionales mediante su estructura de compuertas, empleando el comando assign; y los flip-flops con un proceso activado por los cantos del reloj. Los nombres de los procesos se definen en la Figura 11.1. // detector de secuencia 110 cada vez que sta se presente. module mealy110 (input clk, resetn, x, output z); reg Q1, Q0; wire D1, D0; // Redes combinacionales de prximo estado y de salida. Proceso P1 assign D1 = Q0&x; assign D0 = x; assign z = Q1&(~x); //salida asincrnica // Proceso registro. P2 always @(negedge resetn or posedge clk) if (resetn == 0) begin Q1=0; Q0=0; end else begin Q1