Sie sind auf Seite 1von 12

50

Aplicaci´on de sistemas secuenciales

5.1. Dise˜no de sistemas digitales s´ıncronos

Se dispone de muchas configuraciones de contadores en forma de circuitos integrados:

as´ıncronos, s´ıncronos y combinaciones de as´ıncronos-s´ıncronos. La mayor´ıa de ´estos cuentan en una secuencia binaria en orden, aunque sus secuencias de conteo se pueden modificar un poco. Sin embargo, hay situaciones cuando se requiere un contador que siga una secuencia binaria no ordenada, por ejemplo, 000, 010, 101, 001, 111, 000, etc´etera. Existen varios m´etodos para dise˜nar contadores que siguen secuencias arbitrarias. En esta secci´on se presenta un procedimiento de dise˜no general para circuitos secuenciales aplicado a contadores s´ıncronos basados en FF’s. Antes de comenzar con el dise˜no de contadores, permita introducir algunos conceptos importantes.

1. Modelo general de un circuito secuencial (Floyd 2004)

Antes de proceder con una t´ecnica de dise˜no espec´ıfico, comencemos con una definici´on general de un circuito secuencial (m´aquina de estado). Un circuito secuencial general est´a constituido por una secci´on l´ogica combinacional y una secci´on de memoria (Flip- Flops) como se muestra en la Figura 5.1. En un circuito secuencial excitado por reloj, hay una entrada de reloj a la secci´on de memoria, como se indica.

entrada de reloj a la secci´on de memoria, como se indica. Figura 5.1: Circuito secuencial activado

Figura 5.1: Circuito secuencial activado por reloj general.

5.1 Dise˜no de sistemas digitales s´ıncronos

51

La informaci´on almacenada en la secci´on de memoria, as´ı como las entradas a la sec-

m ) se requiere para una operaci´on adecuada del

circuito. En un tiempo dado, la memoria se encuentra en un estado llamado estado

ci´on l´ogica combinacional ( I 0 , I 1 ,

,I

presente y avanzar´a al estado siguiente en un pulso de reloj, determinado por las condi-

P ). El estado presente de la memoria se

x ). Estas variables de estado, junto

con las entradas ( I 0 , I 1 ,

representa por las variables de estado (Q 0 , Q 1 ,

ciones en las l´ıneas de excitaci´on ( Y 0 , Y 1 ,

,Y

,Q

m ) determinan las salidas del sistema ( O 0 , O 1 ,

,I

,O

s ).

No todos los circuitos secuenciales tienen variables de salida y entrada como en el mod- elo general que acaba de describirse; sin embargo, todos tienen variables de excitaci´on

y variables de estado. Los contadores son un caso especial de circuitos secuenciales excitados por reloj.

2. Estado de un circuito secuencial (Wakerly 2001)

El estado de un circuito secuencial es una colecci´on de variables de estado cuyos valores en cualquier tiempo contienen toda la informaci´on acerca del pasado necesario para explicar el comportamiento del futuro.

Por ejemplo, en un contador binario MOD-8 ascendente, bastar´a conocer el valor de las variables de salida: Q 2 , Q 1 y Q 0 (en este caso variables de estado) para determinar cu´al ser´a el valor pr´oximo cuando aparezca un pulso de reloj. En este caso el estado esta determinado por [ Q 2 , Q 1 , Q 0 ].

3. M´aquina de estado finito (Wakerly 2001)

En un circuito de l´ogica digital, las variables de estado son valores binarios, correspon- dientes a ciertas se˜nales l´ogicas en el circuito. Un circuito con n variables de estado binarias tiene 2 n estados posibles. Tan grande como parezca, 2 n siempre ser´a finito, nunca infinito, de modo que los circuitos secuenciales en ocasiones se conocen como m´aquinas de estado finito.

4. Diagrama de estados (Diagrama de transici´on de estados) (Tocci y Widmer 2003, Wakerly 2001)

Un diagrama de estados presenta de forma gr´afica las transiciones de estados en un circuito secuencial. Los diagramas de estado tienen un circulo (o nodo) para cada

estado y un flecha (o arco dirigido) para cada transici´on. En la Figura 5.2a se muestra

el diagrama de transici´on de estados para el contador MOD-6 de la Figura 5.2b, donde

se muestra c´omo los Flip-Flops C, B y A cambian las variables de estado a medida que

52

Aplicaci´on de sistemas secuenciales

se aplican pulsos a la entrada CLK del Flip-Flop.

se aplican pulsos a la entrada CLK del Flip-Flop. Figura 5.2: (a) Diagrama de transici´on de

Figura 5.2: (a) Diagrama de transici´on de estados para un contador MOD-6 as´ıncrono. (b) Esquema l´ogico del contador MOD-6.

5.1 Dise˜no de sistemas digitales s´ıncronos

53

Transici´on en la salida

Estado PRESENTE Estado SIGUIENTE

Q( K )

Q( K + 1)

J

K

0

0

0

0

0X

0

1

0

1

1X

1

0

1

0

X1

1

1

1

1

X0

Tabla 5.1: Tabla de excitaci´on del Flip-Flop J-K

5. Tabla de excitaci´on del Flip-Flop.

Una tabla de transici´on muestra todas las combinaciones posibles de cambio (o tran- sici´on) entre los estados presentes [ Q( k )] y los estados siguientes [Q( k + 1)] junto con los valores de las entradas del flip-flop que deben estar presentes antes de que aparezca el pulso de reloj.

Por ejemplo, la tabla de excitaci´on de un flip-flop J-K se presenta en la Tabla 5.1. En la columna de la extrema izquierda se lista cada posible transici´on de salida del FF. En la segunda y tercera columnas se exponen el estado presente, simbolizado como Q( K ), y el siguiente estado, como Q( K + 1), para cada transici´on. En las ultimas´ dos columnas se listan los niveles J y K que se requieren para producir cada transici´on.

Examinemos caso por caso:

´

a ) TRANSICI ON 0 0: El estado presente del FF es 0 y debe permanecer as´ı cuan-

do se aplica un pulso de reloj. A partir de nuestra comprensi´on sobre c´omo fun- ciona un flip-flop J-K, esto puede suceder cuando J = K = 0 (condici´on sin cambio) o J =0y K = 1 (condici´on de borrado). De esta manera, J debe estar en 0, pero K puede tener cualquier nivel. En la tabla se indica esto con ”0”en la columna correspondiente a J y una “X”en la de K . Recuerde que “X”significa la condici´on de “no importa”.

b

TRANSICI ON 0 1: El estado presente es 0 y debe cambiar a 1. Esto puede suceder cuando J =1y K = 0 (condici´on de establecimiento o posicionamiento) o J = K = 1 (condici´on de cambio de estados). De esta manera, J debe ser un 1, pero K puede tener cualquier nivel para que ocurra esta transici´on.

´

)

´

c ) TRANSICI ON 1 0: El estado presente es 1 y debe cambiar a 0. Esto puede

suceder cuando J =0y K =1o J = K = 1. De esta manera, K debe ser un 1, pero J puede estar a cualquier nivel.

´

d ) TRANSICI ON 1 1: El estado presente es un 1 y debe permanecer en 1. Esto puede suceder cuando J = K =0o J =1y K = 0. De esta manera, K debe ser un 0, pero J puede estar en cualquier nivel. El uso de esta tabla de excitaci´on de un Flip- Flop es una parte principal del procedimiento de dise˜no de un contador s´ıncrono.

54

Aplicaci´on de sistemas secuenciales

Estado Presente CBA

Estado Siguiente CBA

101

011

Tabla 5.2: Caso de estudio

5.1.1. Dise˜no de contadores s´ıncronos

En los contadores s´ıncronos todos los flip-flops se sincronizan al mismo tiempo. Antes de cada pulso de reloj, las entradas de cada FF en el contador deben estar en el nivel adecuado para asegurar que el FF pase al estado correcto. Por ejemplo, considere la situaci´on que se muestra en la Tabla 5.2. Si el contador se implementa usando Flip-Flops J-K, cuando ocurre el siguiente pulso de reloj, las entradas J y K de los flip-flops deben estar en los niveles apropiados para que el flip-flop C cambie de 1 a 0, el flip-flop B de 0 a 1, y el flip-flop A de 1 a 1 (es decir, sin cambio).

Entonces, el proceso de dise˜no de un contador s´ıncrono se convierte en uno en el que se dise˜nan los circuitos l´ogicos que decodifican los diversos estados del contador, con el prop´osito de suministrar los niveles l´ogicos para cada entrada del flip-flop. Las entradas para estos circuitos decodificadores vendr´an de las salidas de uno o m´as de los flip-flops. Para ilustrar esto, en el caso del contador s´ıncrono de la Figura 5.3, la compuerta AND que alimenta las entradas J y K del flip-flop C decodifica los estados de los flip-flops A y B. De la misma forma, la compuerta AND que alimenta las entradas J y K del flip-flop D decodifica los estados de A, B y C.

J y K del flip-flop D decodifica los estados de A, B y C. Figura 5.3:

Figura 5.3: Contador s´ıncrono MOD-16.

5.1 Dise˜no de sistemas digitales s´ıncronos

55

Procedimiento de dise˜no

Ahora examinemos un procedimiento de dise˜no completo de un contador s´ıncrono. Aunque se llevar´a a cabo para una secuencia de conteo espec´ıfica, se pueden seguir los mismos pasos para cualquier secuencia que uno elija.

los mismos pasos para cualquier secuencia que uno elija. Paso 1 : Se especifica la secuencia

Paso 1 : Se especifica la secuencia de conteo y se traza un diagrama de estado.

Una de las formas m´as sencillas es describir la secuencia de conteo mediante un diagra- ma de estado, que muestra la progresi´on de estados por la que avanza el contador al excitarse por reloj. En ocasiones el diagrama de estado inicial se enumera en decimal.

La Figura 5.4 es un diagrama de estado para un contador con secuencia 000 001 010 011 100 000, etc. Note que esta secuencia no incluye los estados 101, 110 y 111. Nos referiremos a estos estados como estados indeseables.

Nos referiremos a estos estados como estados indeseables. Figura 5.4: Diagrama de transici´on de estados para

Figura 5.4: Diagrama de transici´on de estados para el ejemplo de dise˜no de un contador s´ıncrono.

En el caso de nuestro ejemplo, el diagrama de transici´on de estados aparece como se muestra en la Figura 5.4. Los estados 000 a 100 est´an conectados en la secuencia espera- da. La nueva idea empleada en este diagrama es la inclusi´on de los estados indeseables. Estos deben incluirse en nuestro dise˜no en caso de que el contador accidentalmente ingrese en uno de dichos estados al momento de encender el circuito, o debido al rui- do. El dise˜nador del circuito puede elegir que uno de estos estados indeseables pase a cualquier estado despu´es de la aplicaci´on del siguiente pulso de reloj. Se elegir´a que vayan al estado 000, a partir de all´ı se generar´a la secuencia correcta.

56

Aplicaci´on de sistemas secuenciales

l´ınea 1

2

3

4

5

6

7

8

EDO. PRES. EDO. SIGU. + + + Q C Q B Q A Q Q
EDO. PRES.
EDO. SIGU.
+
+
+
Q C
Q B
Q A
Q
Q
C
Q B
A
000
001
001
010
010
011
011
100
100
000
101
000
110
000
111
000

Tabla 5.3: Tabla de estado siguiente para el ejemplo de dise˜no de un contador s´ıncrono.

Nota importante: Si los estados indeseables no son restringidos a cambiar a un estado determinado, se recomienda que se les asigne un estado dentro de la secuencia que sea adyacente. Lo anterior, por lo general, reduce la l´ogica combinacional.

Paso 2 . Se determina el n´umero de bits necesarios para llevar a cabo el conteo. . Se determina el n´umero de bits necesarios para llevar a cabo el conteo.

Este paso nos determinar´a el n´umero de flip-flops que se deber´an utilizar. De los ejem- plos anteriores se sabe que el n´umero de flip-flops que se utiliza determina el n´umero m´aximo de conteo como 2 n 1, donde n representa la cantidad de flip-flops. As´ı, para el caso en el que la secuencia en el diagrama de estado haya sido expresada en decimal se deber´a de determinar un n´umero m´ınimo de FF’s necesarios para realizar el conteo.

Si el diagrama de estado ha sido expresado en binario, s´olo basta ver la cantidad m´axima de bits del estado de mayor valor num´erico (mayor cantidad de bits).

Paso 3 . Se elabora una tabla de estado siguiente. . Se elabora una tabla de estado siguiente.

Se usa el diagrama de transici´on de estados para derivar una tabla de estado sigu- iente, que enliste TODOS los estados PRESENTES junto con el estado SIGUIENTE correspondiente. El estado siguiente es al que pasa el contador a partir de su estado presente, con la aplicaci´on de un pulso de reloj.

Para nuestro ejemplo, la informaci´on se muestra en la Tabla 5.3. En la parte izquierda

de la tabla se lista cada estado posible, incluso los que no son parte de la secuencia. Nos referiremos a ellos como estados PRESENTES. En la parte derecha se lista el estado

´

SIGUIENTE para cada estado PRESENTE. Estos se obtienen a partir de diagrama de transici´on de estados de la Figura 5.4. Por ejemplo, en la l´ınea 1 se muestra que el estado PRESENTE de 000 tiene como estado SIGUIENTE 001, y en la l´ınea 5 se muestra que el estado PRESENTE de 100 tiene como estado SIGUIENTE 000. En las l´ıneas 6, 7 y 8 se muestra que todos los estados PRESENTES indeseables 101, 110 y

111 tienen el estado SIGUIENTE de 000.

5.1 Dise˜no de sistemas digitales s´ıncronos

57

l´ınea 1

2

3

4

5

6

7

8

EDO. PRES. EDO. SIGU. + + Q C Q B Q A Q Q Q
EDO. PRES.
EDO. SIGU.
+
+
Q C
Q B
Q A
Q
Q
Q B
K C
J B
K B
J A
K A
C
+ A J C
000
001
0X0X1X
001
010
0
X
1
XX1
010
011
0
XX0
1X
011
100
1
XX1X1
100
000
X1
0X0X
101
000
X
1
0
XX
1
110
000
X1X1
0X
111
000
X1X1X1

Tabla 5.4: Tabla de transici´on para el ejemplo de dise˜no de un contador s´ıncrono.

Paso 4 . Se determina que tipo de Flip-Flop se utilizar´a y se elabora una tabla de . Se determina que tipo de Flip-Flop se utilizar´a y se elabora una tabla de excitaci´on.

Por cada entrada de los FF’s se agraga una columna a la tabla de estado siguiente. Para cada estado PRESENTE se indican los niveles requeridos en cada entrada de los FF’s, con el fin de producir la transici´on al estado SIGUIENTE.

En nuestro ejemplo de dise˜no se usar´an tres flip-flops J-K [C, B y A] y cada uno tiene dos entradas. Por lo tanto, se deben agregar seis columnas, como se muestra en la Tabla 5.4. Esta tabla completa se llama tabla de excitaci´on del circuito. Las seis columnas nuevas son las entradas J y K de cada FF. Las anotaciones debajo de cada columna J y K se obtienen usando la Tabla 5.1, la tabla de excitaci´on J-K que se desarroll´o antes. Esto se demostrar´a para varios casos y usted podr´a verificar el resto.

El an´alisis de la l´ınea 1 de la Tabla 5.4 es como sigue. El estado PRESENTE de 000 pasar´a al estado SIGUIENTE de 001 cuando ocurra un pulso de reloj. Para esta tran- sici´on de estado, el flip-flop C pasa de 0 a 0. En la tabla de excitaci´on J-K observamos que J C debe estar en 0 y K C en ”X”para que ocurra esta transici´on. El flip-flop B tambi´en pasa de 0 a 0 y por lo tanto J B =0y K B = X . El flip-flop A pasa de 0 a 1. Asimismo, en la Tabla 5.1 se observa que para esta transici´on J A =1y K A = X .

En la l´ınea 4 de la Tabla 5.4 el estado PRESENTE de 011 tiene un estado SIGUIENTE de 100. Para esta transici´on de estado, el flip-flop C pasa de 0 a 1, lo cu´al requiere J C =1y K C = X . Los flip-flops B y A pasan de 1 a 0. Para que esto ocurra en la tabla de excitaci´on J-K se indica que estos flip-flops requieren J = X y K = 1.

Los niveles J y K necesarios para las dem´as l´ıneas de la Tabla 5.4 se pueden determinar de la misma manera.

Paso 5 . Se dise˜nan los circuitos l´ogicos para generar los niveles requeridos en cada entrada del . Se dise˜nan los circuitos l´ogicos para generar los niveles requeridos en cada entrada del flip-flop.

58

Aplicaci´on de sistemas secuenciales

En la Tabla 5.4 de excitaci´on del circuito se listan seis entradas J , K : J C , K C K B , J A y K A . Cada una se debe considerar como una salida de su propio circuito l´ogico con entradas de los flip-flops C, B y A. Luego se debe dise˜nar el circuito para cada una. El dise˜no para J A es el siguiente. Con el fin de llevar a cabo lo anterior necesitamos observar los estados PRESENTES de C, B y A y los niveles deseados en J A para cada caso. Esta informaci´on, tomada de la Tabla 5.4, se representa en la Figura 5.5a. En esta tabla de verdad se muestran los niveles deseados en J A para cada estado PRESENTE. Por supuesto, en algunos casos el valor de J A corresponde a un nivel de ”no importa”.

de J A corresponde a un nivel de ”no importa”. Figura 5.5: (a) Parte de la

Figura 5.5: (a) Parte de la tabla de excitaci´on del circuito donde se muestra J A para cada estado PRESENTE; (b) mapa K empleado para obtener laexpresi´on simplificada para J A .

Para desarrollar el circuito l´ogico para J A , primero debemos determinar su expresi´on en t´erminos de Q C , Q B y Q A , cabe mencionar que la mayor´ıa de los dise˜nos buscar´an una expresi´on minimizada. En este paso se puede utilizar cualquier m´etodo de reducci´on que garantice una expresi´on l´ogica m´ınima. Para el ejemplo, esto ultimo´ se lleva a cabo transfiriendo la informaci´on de la tabla de verdad a un mapa de Karnaugh de tres variables, y realizando la simplificaci´on del mapa K como se muestra en la Figura 5.5b. S´olo hay dos unos en este mapa y se pueden agrupar para obtener el t´ermino ¯

Q

Q C como

unos, podemos agrupar un cu´adruplo para obtener el t´ermino m´as simple, Q C . De esta

manera, la expresi´on final es

A

¯

Q C , pero si se usan las condiciones ”no importa’ en Q A

¯

¯

¯

Q B Q C y Q A Q B

¯

J A =

¯

Q

C

Ahora consideremos K A . Podemos seguir los mismos pasos que para J A . Sin embargo, observando las anotaciones debajo de la columna K A en la tabla de excitaci´on del circuito s´olo se muestran unos y condiciones de ”no importa”. Si cambiamos todas las condiciones de ”no importa. a unos, entonces K A siempre es un 1. De esta manera, la expresi´on final es

K A = 1

5.1 Dise˜no de sistemas digitales s´ıncronos

59

De manera similar, se obtienen las expresiones para J C , K C , J B y K B .

J C = Q A Q B

K C = 1

¯

J B = Q A Q C

K B = Q A + Q B

Los mapas K para estas expresiones se proporcionan en la Figura 5.6.

K para estas expresiones se proporcionan en la Figura 5.6. Figura 5.6: Mapas K para los

Figura 5.6: Mapas K para los circuitos J C , K C , J B y K B .

los circuitos J C , K C , J B y K B . Paso 6.

Paso 6. Se implementan las expresiones finales.

El paso final es habilitar la red l´ogica combinacional a partir de las expresiones de las entradas de los Flip-Flops y de los Flip-Flops mismos.

Para el ejemplo, los circuitos l´ogicos para cada entrada J y K se implementan a partir de las expresiones que se obtuvieron de los mapas K. El dise˜no completo del conta- dor s´ıncrono se implementa en la figura 5.7. Observe que todos los flip-flops est´an sincronizados en paralelo.

60

Aplicaci´on de sistemas secuenciales

60 Aplicaci´on de sistemas secuenciales Figura 5.7: Implementaci´on final del contador s´ıncrono del ejemplo de

Figura 5.7: Implementaci´on final del contador s´ıncrono del ejemplo de dise˜no.

Bibliograf´ıa

Acha, S. , M. Castro, J. P´erez y M. Rioseras. 2003. Electr´onica Digital, Introducci´on a la l´ogica digital: Teor´ıa, Problemas y Simulaci´on. 1 a edn. M´exico: Alfaomega RA-MA.

722p.

Floyd, T. 2004. Fundamentos de Electr´onica Digital . M´exico: Limusa. 811p.

Marcovitz, A. B. 2005. Dise˜no Digital. 2 a edn. Mc Graw Hill.

Routh, C. 1995. Fundamentals of Logic Design. 4 a edn. Mc Graw Hill.

Tocci, R. y N. Widmer . 2003. Sistemas Digitales. Principios y Aplicaciones. 7 th edn. M´exico: Pearson Educaci´on.

Wakerly, J. F. 2001. Dise˜no Digital: Principios y pr´acticas. 3 a edn. M´exico: Pearson Edu- caci´on.

UACM

Apuntes de Electr´onica Digital