Sei sulla pagina 1di 12

50 Aplicación de sistemas secuenciales

5.1. Diseño 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 éstos 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étera.
Existen varios métodos para diseñar contadores que siguen secuencias arbitrarias. En esta
sección se presenta un procedimiento de diseño general para circuitos secuenciales aplicado
a contadores sı́ncronos basados en FF’s. Antes de comenzar con el diseño de contadores,
permita introducir algunos conceptos importantes.

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


Antes de proceder con una técnica de diseño especı́fico, comencemos con una definición
general de un circuito secuencial (máquina de estado). Un circuito secuencial general
está constituido por una sección lógica combinacional y una sección 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ón de memoria, como se indica.

Figura 5.1: Circuito secuencial activado por reloj general.

Adrián M. Castillo S. UACM


5.1 Diseño de sistemas digitales sı́ncronos 51

La información almacenada en la sección de memoria, ası́ como las entradas a la sec-


ción lógica combinacional (I0, I1, . . . , Im) se requiere para una operación adecuada del
circuito. En un tiempo dado, la memoria se encuentra en un estado llamado estado
presente y avanzará al estado siguiente en un pulso de reloj, determinado por las condi-
ciones en las lı́neas de excitación (Y0 , Y1 , . . . , YP ). El estado presente de la memoria se
representa por las variables de estado (Q0, Q1, . . . , Qx). Estas variables de estado, junto
con las entradas (I0, I1, . . . , Im ) determinan las salidas del sistema (O0 , O1 , . . . , Os ).

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ón
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ón de variables de estado cuyos valores


en cualquier tiempo contienen toda la información acerca del pasado necesario para
explicar el comportamiento del futuro.

Por ejemplo, en un contador binario MOD-8 ascendente, bastará conocer el valor de


las variables de salida: Q2, Q1 y Q0 (en este caso variables de estado) para determinar
cuál será el valor próximo cuando aparezca un pulso de reloj. En este caso el estado
esta determinado por [Q2, Q1, Q0 ].

3. Máquina de estado finito (Wakerly 2001)

En un circuito de lógica digital, las variables de estado son valores binarios, correspon-
dientes a ciertas señales lógicas en el circuito. Un circuito con n variables de estado
binarias tiene 2n estados posibles. Tan grande como parezca, 2n siempre será finito,
nunca infinito, de modo que los circuitos secuenciales en ocasiones se conocen como
máquinas de estado finito.

4. Diagrama de estados (Diagrama de transición de estados) (Tocci y Widmer 2003,


Wakerly 2001)

Un diagrama de estados presenta de forma gráfica 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ón. En la Figura 5.2a se muestra
el diagrama de transición de estados para el contador MOD-6 de la Figura 5.2b, donde
se muestra cómo los Flip-Flops C, B y A cambian las variables de estado a medida que

UACM Apuntes de Electrónica Digital


52 Aplicación de sistemas secuenciales

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

Figura 5.2: (a) Diagrama de transición de estados para un contador MOD-6 ası́ncrono. (b)
Esquema lógico del contador MOD-6.

Adrián M. Castillo S. UACM


5.1 Diseño de sistemas digitales sı́ncronos 53

Transición Estado PRESENTE Estado SIGUIENTE


en la salida Q(K) Q(K + 1) J K
0→0 0 0 0 X
0→1 0 1 1 X
1→0 1 0 X 1
1→1 1 1 X 0

Tabla 5.1: Tabla de excitación del Flip-Flop J-K

5. Tabla de excitación del Flip-Flop.


Una tabla de transición muestra todas las combinaciones posibles de cambio (o tran-
sición) 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ón 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ón 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ón. En las últimas dos
columnas se listan los niveles J y K que se requieren para producir cada transición.
Examinemos caso por caso:
a) TRANSICIÓN 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ón sobre cómo fun-
ciona un flip-flop J-K, esto puede suceder cuando J = K = 0 (condición sin
cambio) o J = 0 y K = 1 (condición 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ón de “no importa”.
b) TRANSICIÓN 0 → 1: El estado presente es 0 y debe cambiar a 1. Esto puede
suceder cuando J = 1 y K = 0 (condición de establecimiento o posicionamiento)
o J = K = 1 (condición de cambio de estados). De esta manera, J debe ser un 1,
pero K puede tener cualquier nivel para que ocurra esta transición.
c) TRANSICIÓN 1 → 0: El estado presente es 1 y debe cambiar a 0. Esto puede
suceder cuando J = 0 y K = 1 o J = K = 1. De esta manera, K debe ser un 1,
pero J puede estar a cualquier nivel.
d ) TRANSICIÓN 1 → 1: El estado presente es un 1 y debe permanecer en 1. Esto
puede suceder cuando J = K = 0 o J = 1 y K = 0. De esta manera, K debe ser
un 0, pero J puede estar en cualquier nivel.
El uso de esta tabla de excitación de un Flip- Flop es una parte principal del
procedimiento de diseño de un contador sı́ncrono.

UACM Apuntes de Electrónica Digital


54 Aplicación de sistemas secuenciales

Estado Presente Estado Siguiente


C B A C B A
1 0 1 0 1 1

Tabla 5.2: Caso de estudio

5.1.1. Diseño 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ón 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ño de un contador sı́ncrono se convierte en uno en el que
se diseñan los circuitos lógicos que decodifican los diversos estados del contador, con el
propósito de suministrar los niveles lógicos para cada entrada del flip-flop. Las entradas
para estos circuitos decodificadores vendrán de las salidas de uno o más 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.

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

Adrián M. Castillo S. UACM


5.1 Diseño de sistemas digitales sı́ncronos 55

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

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


Una de las formas más sencillas es describir la secuencia de conteo mediante un diagra-
ma de estado, que muestra la progresión 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.

Figura 5.4: Diagrama de transición de estados para el ejemplo de diseño de un contador


sı́ncrono.

En el caso de nuestro ejemplo, el diagrama de transición de estados aparece como se


muestra en la Figura 5.4. Los estados 000 a 100 están conectados en la secuencia espera-
da. La nueva idea empleada en este diagrama es la inclusión de los estados indeseables.
Estos deben incluirse en nuestro diseño 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ñador del circuito puede elegir que uno de estos estados indeseables pase a
cualquier estado después de la aplicación del siguiente pulso de reloj. Se elegirá que
vayan al estado 000, a partir de allı́ se generará la secuencia correcta.

UACM Apuntes de Electrónica Digital


56 Aplicación de sistemas secuenciales

EDO. PRES. EDO. SIGU.


QC QB QA Q+C Q+B Q+A
lı́nea 1 0 0 0 0 0 1
2 0 0 1 0 1 0
3 0 1 0 0 1 1
4 0 1 1 1 0 0
5 1 0 0 0 0 0
6 1 0 1 0 0 0
7 1 1 0 0 0 0
8 1 1 1 0 0 0
Tabla 5.3: Tabla de estado siguiente para el ejemplo de diseño 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ógica combinacional.

Paso 2. Se determina el número de bits necesarios para llevar a cabo el conteo.


Este paso nos determinará el número de flip-flops que se deberán utilizar. De los ejem-
plos anteriores se sabe que el número de flip-flops que se utiliza determina el número
máximo de conteo como 2n − 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á de determinar un número mı́nimo de FF’s necesarios para realizar el conteo.
Si el diagrama de estado ha sido expresado en binario, sólo basta ver la cantidad
máxima de bits del estado de mayor valor numérico (mayor cantidad de bits).

Paso 3. Se elabora una tabla de estado siguiente.


Se usa el diagrama de transición 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ón de un pulso de reloj.
Para nuestro ejemplo, la información 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. Éstos se obtienen a partir de diagrama
de transición 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.

Adrián M. Castillo S. UACM


5.1 Diseño de sistemas digitales sı́ncronos 57

EDO. PRES. EDO. SIGU.


QC QB QA Q+C Q+B Q+A JC KC JB KB JA KA
lı́nea 1 0 0 0 0 0 1 0 X 0 X 1 X
2 0 0 1 0 1 0 0 X 1 X X 1
3 0 1 0 0 1 1 0 X X 0 1 X
4 0 1 1 1 0 0 1 X X 1 X 1
5 1 0 0 0 0 0 X 1 0 X 0 X
6 1 0 1 0 0 0 X 1 0 X X 1
7 1 1 0 0 0 0 X 1 X 1 0 X
8 1 1 1 0 0 0 X 1 X 1 X 1
Tabla 5.4: Tabla de transición para el ejemplo de diseño de un contador sı́ncrono.

Paso 4. Se determina que tipo de Flip-Flop se utilizará y se elabora una tabla de


excitación.
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ón al estado SIGUIENTE.
En nuestro ejemplo de diseño se usarán 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ón 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ón J-K que se desarrolló antes.
Esto se demostrará para varios casos y usted podrá verificar el resto.
El análisis de la lı́nea 1 de la Tabla 5.4 es como sigue. El estado PRESENTE de 000
pasará al estado SIGUIENTE de 001 cuando ocurra un pulso de reloj. Para esta tran-
sición de estado, el flip-flop C pasa de 0 a 0. En la tabla de excitación J-K observamos
que JC debe estar en 0 y KC en ”X”para que ocurra esta transición. El flip-flop B
también pasa de 0 a 0 y por lo tanto JB = 0 y KB = X. El flip-flop A pasa de 0 a 1.
Asimismo, en la Tabla 5.1 se observa que para esta transición JA = 1 y KA = 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ón de estado, el flip-flop C pasa de 0 a 1, lo cuál requiere
JC = 1 y KC = X. Los flip-flops B y A pasan de 1 a 0. Para que esto ocurra en la
tabla de excitación J-K se indica que estos flip-flops requieren J = X y K = 1.
Los niveles J y K necesarios para las demás lı́neas de la Tabla 5.4 se pueden determinar
de la misma manera.

Paso 5. Se diseñan los circuitos lógicos para generar los niveles requeridos en cada
entrada del flip-flop.

UACM Apuntes de Electrónica Digital


58 Aplicación de sistemas secuenciales

En la Tabla 5.4 de excitación del circuito se listan seis entradas J , K: JC , KC KB , JA


y KA . Cada una se debe considerar como una salida de su propio circuito lógico con
entradas de los flip-flops C, B y A. Luego se debe diseñar el circuito para cada una.
El diseño para JA 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 JA para cada
caso. Esta información, tomada de la Tabla 5.4, se representa en la Figura 5.5a. En esta
tabla de verdad se muestran los niveles deseados en JA para cada estado PRESENTE.
Por supuesto, en algunos casos el valor de JA corresponde a un nivel de ”no importa”.

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

Para desarrollar el circuito lógico para JA , primero debemos determinar su expresión en


términos de QC , QB y QA , cabe mencionar que la mayorı́a de los diseños buscarán una
expresión minimizada. En este paso se puede utilizar cualquier método de reducción
que garantice una expresión lógica mı́nima. Para el ejemplo, esto último se lleva a
cabo transfiriendo la información de la tabla de verdad a un mapa de Karnaugh de
tres variables, y realizando la simplificación del mapa K como se muestra en la Figura
5.5b. Sólo hay dos unos en este mapa y se pueden agrupar para obtener el término
Q̄A Q̄C , pero si se usan las condiciones ”no importa’ en QA Q̄B Q̄C y QA QB Q̄C como
unos, podemos agrupar un cuádruplo para obtener el término más simple, Q̄C . De esta
manera, la expresión final es
JA = Q̄C

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

Adrián M. Castillo S. UACM


5.1 Diseño de sistemas digitales sı́ncronos 59

De manera similar, se obtienen las expresiones para JC , KC , JB y KB .

JC = QA QB
KC = 1
JB = QA Q̄C
KB = QA + QB

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

Figura 5.6: Mapas K para los circuitos JC , KC , JB y KB .

Paso 6. Se implementan las expresiones finales.


El paso final es habilitar la red lógica 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ógicos para cada entrada J y K se implementan a partir
de las expresiones que se obtuvieron de los mapas K. El diseño completo del conta-
dor sı́ncrono se implementa en la figura 5.7. Observe que todos los flip-flops están
sincronizados en paralelo.

UACM Apuntes de Electrónica Digital


60 Aplicación de sistemas secuenciales

Figura 5.7: Implementación final del contador sı́ncrono del ejemplo de diseño.

Adrián M. Castillo S. UACM


Bibliografı́a

Acha, S., M. Castro, J. Pérez y M. Rioseras. 2003. Electrónica Digital, Introducción a


la lógica digital: Teorı́a, Problemas y Simulación. 1a edn. México: Alfaomega RA-MA.
722p.

Floyd, T. 2004. Fundamentos de Electrónica Digital. México: Limusa. 811p.

Marcovitz, A. B. 2005. Diseño Digital. 2a edn. Mc Graw Hill.

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

Tocci, R. y N. Widmer. 2003. Sistemas Digitales. Principios y Aplicaciones. 7th edn.


México: Pearson Educación.

Wakerly, J. F. 2001. Diseño Digital: Principios y prácticas. 3a edn. México: Pearson Edu-
cación.

UACM Apuntes de Electrónica Digital

Potrebbero piacerti anche