Está en la página 1de 186

Decodificadores BCD a 7 segmentos

El decodificador de BCD a siete segmentos es un circuito combinacional que permite un


cdigo BCD en sus entradas y en sus salidas activa un display de 7 segmentos para indicar
un dgito decimal.
El display de siete segmentos
El display est formado por un conjunto de 7 leds conectados en un punto comn en su
salida. Cuando la salida es comn en los nodos, el display es llamado de nodo comn y
por el contrario, s la salida es comn en los ctodos, llamamos al display de ctodo comn.
En la figura 3.1.1.,se muestran ambos tipos de dispositivos. En el display de ctodo comn,
una seal alta encender el segmento excitado por la seal. La alimentacin de cierta
combinacin de leds, dar una imagen visual de un dgito de 0 a 9.

Figura 3.3.1. Display de nodo comn y ctodo comn

Interactividad 3.3.1. Display de 7 segmentos
Decodificador de BCD a Siete Segmentos
El decodificador requiere de una entrada en cdigo decimal binario BCD y siete salidas
conectadas a cada segmento del display. La figura 3.3.2. representa en un diagrama de
bloques el decodificador de BCD a 7 segmentos con un display de ctodo comn.

Figura 3.3.2. Diagrama de bloques de un decodificador BCD a siete segmentos
Suponiendo que el visualizador es un display de ctodo comn, se obtiene una tabla cuyas
entradas en cdigo BCD corresponden a A, B, C y D y unas salidas correspondientes a los
leds que se encenderan en cada caso para indicar el dgito decimal. La tabla 3.3.1. muestra
el caso de ejemplo.
Valor decimal
Entradas Salidas
A B C D a b c d e f g
0 0 0 0 0 1 1 1 1 1 1 0
1 0 0 0 1 0 1 1 0 0 0 0
2 0 0 1 0 1 1 0 1 1 0 1
3 0 0 1 1 1 1 1 1 0 0 1
4 0 1 0 0 0 1 1 0 0 1 1
5 0 1 0 1 1 0 1 1 0 1 1
6 0 1 1 0 1 0 1 1 1 1 1
7 0 1 1 1 1 1 1 0 0 0 0
8 1 0 0 0 1 1 1 1 1 1 1
9 1 0 0 1 1 1 1 0 0 1 1
10 1 0 1 0 X X X X X X X
... .. .. .. .. X X X X X X X
15 1 1 1 1 X X X X X X X
Tabla 3.3.1. Tabla de verdad del decodificador BCD a siete segmentos.
Los valores binarios 1010 a 1111 en BCD nunca se presentan, entonces las salidas se tratan
como condiciones de no importa.
La simplificacin de la informacin contenida en la tabla 3.3.1. requiere de siete tablas de
verdad, que se pueden separar para cada segmento. Por consiguiente, un 1 en la columna
indica la activacin del segmento y varios de estos segmentos activados indican
visualmente el nmero decimal requerido.
Segn la informacin de la tabla de verdad, se puede obtener la expresin para cada
segmento en suma de productos o producto de sumas segn la cantidad de unos y ceros
presentes.
Salida a
En la columna a existen 3 ceros y 7 unos, entonces es ms fcil obtener la funcin PDS:
a = (A+B+C+D)(A+B+C+D)= A + D(B+C) + B(D+C) = A + AB + AC + AD +
BA + BC + BD + CA + CB+ C + CD + DA + DB + DC
a = A + (AB+BA)+(AC+CA)+ (AD+DA)+( BC+CB) + BD + C + (CD+DC) +
DB = A + A +AC + A+ C + BD + C + C + DB = A + A.C + C + BD + DB
a = A + C + (B D)

Figura 3.3.3. Circuito para la salida a del decodificador BCD a siete segmentos
Salida c
En la columna de la salida c se tiene un solo 0, entonces se emplea el PDS:
c = (A + B + C + D)

Figura 3.3.4. Circuito para la salida c del decodificador BCD a siete segmentos
Salida e
La columna correspondiente a esta salida tiene 4 unos y 5 ceros. Es mejor utilizar la
representacin SDP:
e = (ABCD) + (ABCD) + (ABCD) + (ABCD) ;factorizando el primer
trmino con el cuarto y el segundo con el tercero:
e = BCD + ACD = D(BC+ AC)

Figura 3.3.5. Circuito para la salida e del decodificador BCD a siete segmentos
El resto de salidas se obtiene por las mismas deducciones anteriores.



Registros de Tres Estados
El principio bsico de un registro de estados es la presencia de tres estados para la salida
del dispositivo (0, 1 y alta impedancia) segn el valor de una entrada de control
predeterminada. El dispositivo ms bsico es el registro ("buffer") de tres estados. Este
registro posee una entrada de habilitacin ("entrada lateral al registro") para determinar su
comportamiento como amplificador, inversor ordinario o dispositivo de alta impedancia. La
figura 3.4.1. muestra el smbolo lgico del registro. En los casos 1 y 3 se habilita con estado
activo alto y en los casos 2 y 4 se habilita con estado activo bajo. En estado de activacin la
salida se comporta como amplificador o inversor. Cuando la entrada de habililtacin se
niega, la salida va a un estado de alta impedancia (Z).

Figura 3.4.1. Registros de tres estados
Estos dispositivos permiten que varias fuentes puedan compartir una misma lnea de
comunicacin, siempre y cuando una sola fuente utilice la lnea a la vez. Un circuito de este
tipo se muestra en la figura 3.4.2. El circuito se configura con un decodificador para
seleccionar una de ocho lneas de salida. Por ejemplo, la seleccin 001 habilita la salida Y
1

en estado bajo, activando el registro 2 y coloca la informacin de entrada del registro en la
lnea de comunicacin.

FIgura 3.4.2. Circuito lgico para una lnea de comunicacin
Los registros de tres estados pasan ms rapidamente al estado Z. Por el contrario, el tiempo
de transicin para salir del estado Z es mucho ms demorado.El tiempo muerto en la lnea
de comunicacin debe ser lo bastante largo para tomar en cuenta las diferencias del peor
caso entre los tiempos de activacin y desactivacin de los dispositivos al igual que las
asimetras en las seales de control de los tres estados.
Codificadores
Un codificador tiene 2
n
o menos lneas de entrada y n lneas de salida. Por ejemplo, en una
de las entradas se puede ingresar un dgito decimal u octal y generarse un cdigo de salida
en BCD o binario. La funcin de los codificadores es inversa a la de los decodificadores.
Los codificadores se utilizan tambin para codificar smbolos diferentes y caracteres
alfabticos.
Codificador Binario
El codificador binario tiene 2
n
entradas y n salidas. Slo, una sola de las entradas puede
estar activada. La salida suministra el valor binario correspondiente a la entrada activada.
Este tipo de decodificador opera en forma contraria a los decodificadores de 2 a 4, 3 a 8,
estudiados antes.
Codificador de 8 a 3.
El codificador 8 a 3 tiene 8 entradas (I
0
a I
7
), una para cada uno de los ocho dgitos y 3
salidas que conforman el nmero binario equivalente (A
0
a A
2
). La figura 3.5.1. muestra en
el diagrama de bloques del decodificador.

Figura 3.5.1. Codificador de 8 a 3
La tabla de verdad se muestra en la tabla 3.5.1.
Entradas Salidas
I
0
I
1
I
2
I
3
I
4
I
5
I
6
I
7
A
2
A
1
A
0

1 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0 0 1 0
0 0 0 1 0 0 0 0 0 1 1
0 0 0 0 1 0 0 0 1 0 0
0 0 0 0 0 1 0 0 1 0 1
0 0 0 0 0 0 1 0 1 1 0
0 0 0 0 0 0 0 1 1 1 1
Tabla 3.5.1. Tabla de verdad de codificador de 8 a 3.
En la tabla de verdad, A
0
tiene un 1 lgico para la columnas de entrada con subndice
impar. La salida A
1
es 1 en la columnas I
2
, I
3
, I
6
e I
7
y la salida A
2
es 1 en la columnas I
4
, I
5
,
I
6
e I
7
. Las expresiones lgicas son las siguientes:
A
0
= I
1
+ I
3
+ I
5
+ I
7

A
1
= I
2
+ I
3
+ I
6
+ I
7

A
2
= I
4
+ I
5
+ I
6
+ I
7

Por ejemplo, s est activada la entrada 3, la salida es 011. El circuito se construye con
compuertas OR y se muestra en la figura 3.5.2.

Figura 3.5.2. Circuito lgico del decodificador 8 a 3.
Codificador sin prioridad
Los circuitos codificadores pueden ser diseados con prioridad o sin ella. En los
codificadores sin prioridad con entradas activas altas, la activacin de ms de una entrada
simultneamente con valor 1, genera un cdigo errneo en la salida, de acuerdo al nmero
de entradas excitadas con el respectivo valor. La solucin de este conveniente se logra
empleando codificadores de prioridad.
Codificador de prioridad
Los codificadores de prioridad seleccionan la entrada de mayor prioridad cuando se
presentan varias entradas activas simultneamente. En la tabla 3.5.2. se muestra la lgica de
entrada y de salida de un decodificador.
Entradas Salidas
I
0
I
1
I
2
I
3
I
4
I
5
I
6
I
7
A
2
A
1
A
0

X X X X X X X 0 0 0 0
X X X X X X 0 1 0 0 1
X X X X X 0 1 1 0 1 0
X X X X 0 1 1 1 0 1 1
X X X 0 1 1 1 1 1 0 0
X X 0 1 1 1 1 1 1 0 1
X 0 1 1 1 1 1 1 1 1 0
0 1 1 1 1 1 1 1 1 1 1
Tabla 3.5.2. Tabla de verdad del Codificador de Prioridad.
El decodificador se encuentra comercialmente tal como se encuentra dispuesto en la figura
3.5.3. La diferencia radica en unas entradas de habilitacin adicionales que activan las
entradas las salidas a unos valores predefinidos.

Figura 3.5.3. Diagrama de Bloques del codificador de Prioridad.
Codificador Decimal - BCD
El codificador decimal a BCD posee diez entradas, correspondientes cada una a un dgito
decimal y cuatro salidas en cdigo BCD (8421). El diagrama de bloques de la figura 3.5.4
muestra la disposicin de entradas y salidas del decodificador.

Figura 3.5.4. Diagrama de Bloques del codificador Decimal a BCD.
En la tabla 3.5.3. se encuentra el cdigo BCD correspondiente a cada dgito decimal.
Dgito Decimal
BCD
A
3
A
2
A
1
A
0

0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1
Tabla 3.5.3. Cdigo Decimal BCD.
El bit A
3
es el ms significativo del cdigo BCD y es 1 para los decimales 8 9. La
expresin para este bit en funcin de los dgitos decimales se escribe:
A
3
= 8+9
Por tanto las funciones siguientes corresponden a:
A
2
= 4+5+6+7
A
1
= 2+3+6+7
A
0
= 1+3+5+7+9.
Ahora configurando el anlisis en un circuito combinacional, se obtiene el siguiente
circuito sin necesidad de una entrada para el bit 0.

Figura 3.5.5. Circuito lgico del codificador BCD a Decimal
Aplicaciones
Los codificadores encuentran mayor aplicacin en los dispositivos de entrada y salida. La
seal de entrada es introducida de una forma comprensible para el usuario y la "traduccin"
la realiza el codificador a un cdigo comprensible para el equipo. En un teclado, cuando se
pulsa la tecla correspondiente a un dgito, esta entrada se codifica en cdigo BCD. La
siguiente animacin muestra la aplicacin anterior por medio de una interactividad con los
pulsadores.
Animacin Teclado

Multiplexores y Demultiplexores
Multiplexar es transmitir datos de una de n fuentes a la salida del circuito combinacional. El
demultiplexor desempea la funcin contraria.
Multiplexores (MUX)
Un multiplexor es un circuito combinacional que selecciona una de n lneas de entrada y
transmite su informacin binaria a la salida. La seleccin de la entrada es controlada por un
conjunto de lneas de seleccin. La relacin de lneas de entrada y lneas de seleccin est
dada por la expresin 2
n
, donde n corresponde al nmero de lneas de seleccin y 2
n
al
nmero de lneas de entrada.
Multiplexor de 2 entradas
El multiplexor se caracteriza por tener dos lneas de entrada, una lnea de seleccin y una
de salida. El smbolo lgico de un multiplexor de dos entradas se muestra en la
Interactividad 03.06.01.

Interactividad 03.06.01. Multiplexor de 2 entradas
En el multiplexor, las entradas son I
0
e I
1
y la seleccin viene dada por el valor de la entrada
S. El valor de la salida Y depende de los valores lgicos ingresados en los cuadros de texto
para las variables I
0
, I
1
y S. Por ejemplo, s I
0
=0, I
1
=1 y S=0, entonces Y=I
0
=0. La tabla de
verdad se muestra en la tabla 3.6.1.
S Y
0 I
0

1 I
1

Tabla 3.6.1. Tabla de verdad de un multiplexor de dos entradas
El circuito lgico se muestra en la figura 3.6.1.

Figura 3.6.1. Multiplexor 2 a 1
Multiplexor de 4 entradas
El multiplexor de 4 entradas es un multiplexor de 4 lneas a 1. La figura 3.6.2. muestra el
diagrama de bloques del multiplexor. Las entradas son I
0
, I
1
, I
2
e I
3
y la seleccin viene
dada por las entradas S
0
y S
1
. El valor de la salida Y depende de los valores lgicos
presentes en las entradas de datos y la seleccin.

Figura 3.6.2. Multiplexor 4 a 1
La tabla de verdad se muestra en la tabla 3.6.2. Por ejemplo, s I
0
=1, I
1
=1, I
2
=0, I
3
=1 y
S
1
=1, S
0
=0 entonces Y=I
2
=0.
Entrada de Seleccin de datos Entrada Seleccionada
S
1
S
0
Y
0 0 I
0

0 1 I
1

1 0 I
2

1 1 I
3

Tabla 3.6.2. Tabla de verdad de un multiplexor de cuatro entradas.
El problema consiste en definir un conjunto de expresiones para construir el circuito lgico.
La ecuacin en cada fila, se obtiene a partir del dato de entrada y la entrada de seleccin de
datos:
La salida es Y= I
0
, s S
1
=0 y S
0
=0. Entonces Y = I
0
S
1
S
0
.
La salida es Y= I
1
, s S
1
=0 y S
0
=1. Entonces Y = I
1
S
1
S
0
.
La salida es Y= I
2
, s S
1
=1 y S
0
=0. Entonces Y = I
2
S
1
S
0
.
La salida es Y= I
3
, s S
1
=1 y S
0
=1. Entonces Y = I
3
S
1
S
0
.
Sumando lgicamente las ecuaciones anteriores:
Y = I
0
S
1
S
0
+ I
1
S
1
S
0
+ I
2
S
1
S
0
+ I
3
S
1
S
0

En consecuencia, el circuito asociado se implementa en la figura 3.6.3.

Figura 3.6.3. Circuito Lgico de un multiplexor 4 a 1
Demultiplexores (Distribuidores de datos)
Un demultiplexor es un circuito combinacional que recibe informacin en una sola lnea y
la transmite a una de 2
n
lneas posibles de salida. La seleccin de una lnea de salida
especifica se controla por medio de los valores de los bits de n lneas de seleccin. La
operacin es contraria al multiplexor. La figura 3.6.4. muestra el diagrama de bloques del
demultiplexor.

Figura 3.6.4. Diagrama de Bloques del Demultiplexor.
La figura 3.6.5. muestra un demultiplexor de 1 a 4 lneas. Las lneas de seleccin de datos
activan una compuerta cada vez y los datos de la entrada pueden pasar por la compuerta
hasta la salida de datos determinada. La entrada de datos se encuentra en comn a todas las
AND.

Figura 3.6.5. Circuito Lgico de un Demultiplexor de 1 a 4 lneas.
El decodificador de la figura 3.6.6. funciona como un demultiplexor si la lnea E se toma
como lnea de entrada de datos y las lneas I
0
e I
1
como lneas de seleccin. Observe que la
variable de entrada E tiene un camino a todas las salidas, pero la informacin de entrada se
dirige solamente a una de las lneas de salida de acuerdo al valor binario de las dos lneas
de seleccin I
0
e I
1
. Por ejemplo si la seleccin de las lneas I
0
I
1
= 10 la salida Y
2
tendr el
mismo valor que la entrada E, mientras que las otras salidas se mantienen en nivel bajo.

Figura 3.6.6. Circuito Lgico de un Decodificador/Demultiplexor.
En consecuencia, como las operaciones decodificador y demultiplexor se obtienen del
mismo circuito, un decodificador con una entrada de activacin se denomina
decodificador/demultiplexor; siendo la entrada de activacin la que hace al circuito un
demultiplexor.
La tabla de verdad se muestra en la tabla 3.6.3.
E I
0
I
1
Y
0
Y
1
Y
2
Y
3

1 X X 1 1 1 1
0 0 0 0 1 1 1
0 0 1 1 0 1 1
0 1 0 1 1 0 1
0 1 1 1 1 1 0
Tabla 3.6.3. Tabla de verdad de un decodificador/demultiplexor




Generadores de Paridad
La transmisin binaria por diversos medios de comunicacin est sujeta a errores por fallas
en los sistemas digitales o la presencia de ruido elctrico. Cualquier condicin interna o
externa al sistema puede alterar el valor de los ceros a unos o viceversa. Cuando se altera
un solo bit, decimos que el bit distorsionado contiene un error individual. De la misma
forma, dos o ms bits distorsionados, involucran un error mltiple, pero estos errores tienen
menor probabilidad de ocurrencia a los errores individuales. Un cdigo que permite
detectar errores es el cdigo de paridad. El principio es aadir un bit de paridad para hacer
que el nmero total de bits (incluida la palabra) sea par o impar. Un bit de paridad par,
incluido con el mensaje (palabra), convierte el nmero total de unos en par (paridad par) y
el bit de paridad impar hace el total de unos impar (paridad impar). El generador de paridad
es un sistema combinacional que permite generar el bit de paridad de una palabra de
cdigo. La informacin se transmite y el comprobador de paridad recepciona la
informacin con el fin de validarla.
Ejemplo
Construir un generador de paridad par y el respectivo comprobador de paridad para tres bits
.
En la tabla 3.7.1. los bits de entrada A, B, C constituyen el mensaje y el bit de paridad P la
salida. En la tabla, se escoge P de tal forma que la suma todos los unos es par.
Mensaje de tres Bits Bit de paridad Par generado
A B C P
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 1
Tabla 3.7.1. Tabla de verdad de un generador de paridad.
La figura 3.7.1. muestra la funcin en un mapa de karnaugh de tres variables.

Figura 3.7.1. Mapa de Karnaugh del generador de paridad
La paridad esta directamente relacionada con la operacin OR-Exclusiva. En una expresin
OR-Exclusiva de n variables, 2
n
/2 trminos mnimos tienen un nmero par de unos. La otra
mitad tiene un nmero impar de unos. Observando el mapa se puede deducir que la mitad
de los trminos mnimos tiene un nmero par de unos. La funcin puede expresarse en
trminos de una operacin ORExclusiva con las tres variables de la siguiente forma:
P = E (m
1
, m
2
, m
4
, m
7
)
Asumiendo
P = E (m
1
, m
2
, m
4
, m
7
) = (A B) X
= (A-B + A-B) X
= (A-B + A-B)-X+ (A-B + A-B)-X
= A-B-X + A-B-X + |(A-B)-(A-B)|-X
= A-B-X + A-B-X + |(A+B)-(A+B)|-X
= A-B-X + A-B-X + (A-A+A-B+B-A+B-B)-X
= A-B-X + A-B-X+A-B-X+A-B-X
Llegamos a la igualdad,
P = E (m
1
, m
2
, m
4
, m
7
) = ABC + ABC+ ABC + ABC
Entonces,
P = A B C
El circuito realiza la funcin OR-Exclusiva de un numero n de variables, constituyendo a la
salida un uno lgico si el nmero de unos aplicados a sus entradas es impar y un cero si el
nmero es par.
El diagrama lgico del generador de paridad se muestra en la figura 3.7.2. El circuito est
conformado por dos compuertas OR - Exclusiva de dos entradas.

Figura 3.7.2.Circuito Lgico para el Generador de Paridad Par de tres bits.
El bit de paridad y el mensaje de tres bits, se transmiten a su destino donde se aplican a un
circuito de observacin de paridad. La salida C del comprobador de paridad debe ser 1 para
indicar el error de transmisin. El error se presenta cuando el nmero de unos en sus
entradas es impar. La tabla de verdad 3.7.2 muestra las entradas y las salidas del circuito.
Bits de entrada Comprobacin del Error
A B C P C
0 0 0 0 0
0 0 0 1 1
0 0 1 0 1
0 0 1 1 0
0 1 0 0 1
0 1 0 1 0
0 1 1 0 0
0 1 1 1 1
1 0 0 0 1
1 0 0 1 0
1 0 1 0 0
1 0 1 1 1
1 1 0 0 0
1 1 0 1 1
1 1 1 0 1
1 1 1 1 0
Tabla 3.7.2. Mapa de Karnaugh del comprobador de paridad.
La figura 3.7.3 muestra la funcin en un mapa de karnaugh de tres variables.

Figura 3.7.3. Mapa de Karnaugh del comprobador de paridad.
En el mapa de karnaugh se pueden observar los unos en los mintrminos que tienen un
nmero impar de unos. La funcin puede expresarse en trminos de la operacin OR-
Exclusiva. La demostracin es la siguiente:
CP = A B C D
= A B C D
= (A B) (C D)
= (AB + AB) (CD +CD)
= (AB + AB)(CD+CD) + (AB+ AB)(CD+CD)
Entonces,
CP = E (m
1
, m
2
, m
4
, m
7
, m
8
, m
11
, m
13
, m
14
).
El circuito lgico se muestra en la figura 3.7.4.

Figura 3.7.4. Circuito Lgico para el comprobador de paridad par de tres bits


Comparadores
Los circuitos comparadores son sistemas combinacionales que comparan la magnitud de
dos nmeros binarios de n bits e indican cul de ellos es mayor, menor o s existe igualdad
entre ellos. Existen varias configuraciones de circuitos de un nivel sencillo a uno ms
complejo para determinar relaciones de magnitud.
Comparador de Magnitudes de un Bit
La comparacin de dos bits se puede realizar por medio de una compuerta OR exclusiva o
una NOR exclusiva. La salida del circuito es 1 si sus dos bits de entrada son diferentes y 0 si
son iguales. La figura 3.8.1. muestra el circuito comparador de dos bits.

Figura 3.8.1. Comparador de magnitudes de un bit
Comparador de Magnitudes de Dos Bits
Los nmeros A y B de dos bits en orden significativo ascendente a descendente se ordenan
de la siguiente forma:
A = A
1
A
0

B = B
1
B
0

En un comparador de dos bits se utilizan dos compuertas OR Exclusiva. El comparador se
muestra en la figura 3.8.2. Los bits ms significativos se comparan en la compuerta 1 y los
dos menos significativos en la compuerta 2. En el caso de nmeros iguales, los bits tambin
son iguales, teniendo como salida en cada XOR el valor 0. Cada XOR se invierte y la salida
de la compuerta AND tendr un 1. En nmeros diferentes, los bits sern diferentes y la
salida de cada XOR ser 1.

Figura 3.8.2. Comparador de magnitudes de dos bits.
Comparador de magnitudes de cuatro bits
En el diagrama 3.8.3. se muestra un comparador de magnitud de cuatro bits. Las entradas
son A y B y las salidas son las tres variables binarias A>B, A=B y A<B. Escribiendo los
coeficientes de los nmeros A y B en orden significativo de ascendente a descendente:
A = A
3
A
2
A
1
A
0
= A
i+3
A
i+2
A
i+1
A
i

B = B
3
B
2
B
1
B
0
= B
i+3
B
i+2
B
i+1
B
i


Figura 3.8.3. Comparador de magnitudes de cuatro bits.
Salida A=B
Los dos nmeros son iguales si todos los nmeros del mismo peso son iguales, es decir
A
3
=B
3
, A
2
=B
2,
A
1
=B
1
y A
0
=B
0
.
La igualdad de los nmeros A
i
y B
i
se determina comparando los coeficientes segn el valor
0 1 para los dos bits. En la comparacin se emplea la variable y
i
. Esta variable binaria es
igual a 1 si los nmeros de entrada A y B son iguales, de lo contrario ser igual a 0. Por
consiguiente, la comparacin de dos bits en la posicin i de un nmero, est dada por:
y
i
(A
i
=B
i
) = A
i
B
i
+ A
i
B
i
= (A
i
B
i
)'
Por ejemplo, s A
3
= 1 y B
3
= 1; y
3
ser igual a y
3
= A
3
B
3
+ A
3
B
3
= 11 + 11 = 1 pero s
A
3
= 1 y B
3
= 0 ; y
3
= A
3
B
3
+ A
3
B
3
= 10 + 01 = 0. La comparacin se realiza para el
resto de los ceficientes A
i
y B
i
. El nmero A ser igual a B s se cumple la condicin y
i
=1
para todos los coeficientes, es decir una operacin AND:
(A=B) = y
3
y
2
y
1
y
0

La variable binaria A=B es igual a 1 solamente si todos los pares de dgitos de los nmeros
son iguales.
Salidas A>B y A<B
La comparacin en este caso se comienza desde el bit ms significativo. Los dgitos se
comparan uno a uno y si estos son iguales se prueba con el siguiente par de bits menos
significativos. La comparacin continua hasta que se encuentra un par de dgitos
desiguales. En la posicin donde se encuentre un uno en A y un 0 en B se puede afirmar que
A>B. Por el contrario, s A es igual a 0 y B igual a 1 entonces A<B. La funcin
corrresondiente a cada salida es:
(A>B) = A
3
B
3
+ y
3
A
2
B
2
+ y
3
y
2
A
1
B
1
+ y
3
y
2
y
1
A
0
B
0

(A<B) = A
3
B
3
+ y
3
A
2
B
2
+ y
3
y
2
A
1
B
1
+ y
3
y
2
y
1
A
0
B
0

Ejemplo
Comparar los nmeros binarios A = A
3
A
2
A
1
A
0
= 1001 y B = B
3
B
2
B
1
B
0
= 1011.
El valor de las variables y
i
:
y
3
(A
3
=B
3
) = (1)(1) + (0)(0) = 1 ; y
2
(A
2
=B
2
) = (0)(0) + (1)(1) = 1 ; y
1
(A
1
=B
1
) = (0)(1)
+ (1)(0) = 0 ; y
0
(A
0
=B
0
) = (1)(1) + (1)(0) = 1.
Las ecuaciones son:
(A>B) = (1)(0) + (1)(0)(1) + (1)(1)(0)(0) + (1)(1)(0)(1)(0) = 0.
(A<B) = (0)(1)+ (1)(1)(0) + (1)(1)(1)(1) + (1)(1)(0)(0)(1) = 1.
El diagrama del comparador de cuatro bits se muestra en la figura 3.8.4.

Figura 3.8.4. Comparador de magnitudes de cuatro bits


Circuitos Aritmticos
El diseo de sistemas digitales involucra el manejo de operaciones aritmticas. En esta
leccin se implementarn los circuitos de suma y resta de nmeros binarios.
Sumador Medio
El circuito combinacional que realiza la suma de dos bits se denomina sumador medio. La
figura 3.9.1 muestra el smbolo lgico de sumador medio. En el circuito las entradas son A
y B y la salida S corresponde a la suma y C
out
al acarreo de salida (Ver leccin 1.4.).

Figura 3.9.1. Smbolo lgico del sumador medio
La tabla de verdad 3.9.1. est dada por las reglas de la suma binaria.
X Y C
out
S
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0
Tabla 3.9.1. Tabla de verdad del sumador medio
La salida obtenida a partir de la tabla de verdad es:
X + Y = C
out
S
El bit de acarreo C
out
es 1, slo cuando A y B tienen el valor de 1; por tanto entre A y B se
puede establecer una operacin AND:
C
out
= AB
El bit de suma S es 1, slo si las variables A y B son distintas. El bit de acarreo es 0 a no ser
que ambas entradas sean 1. Por consiguiente, la salida S puede expresarse en trminos de la
operacin OR Exclusiva:
S = AB + AB = A B
El circuito se muestra en la figura 3.9.2.

Figura 3.9.2. Circuito Lgico del Sumador Medio.
Sumador Completo
El sumador completo acepta dos bits y un acarreo de entrada y genera una suma de salida
junto con el acarreo de salida. La tabla 3.9.2. muestra la tabla de verdad del sumador
completo. Las entradas A, B y C
in
denotan al primer sumando, el segundo sumando y el
acarreo de entrada. Las salidas S y C
out
representan a la suma y el acarreo de salida.
A B C
in
C
out
S
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1
Tabla 3.9.2. Tabla de verdad del sumador completo
La salida S en la tabla de verdad corresponde a la operacin OR- Exclusiva:
S = ABC
in
+ ABC
in
+ ABC
in
+ ABC
in

S = C
in
(AB + AB) + C
in
(AB + AB)
S = C
in
(AB + AB) + C
in
(AA + AB + AB + BB)
S = C
in
(AB + AB) + C
in
((A + B)(A + B))
S = C
in
(AB + AB) + C
in
((AB)(AB))
S = C
in
(AB + AB) + C
in
(AB + AB)
S = (A B) C
in

El mapa de karnaugh de la salida C
out
se muestra en la figura 3.9.3.

Figura 3.9.3. Mapa para la salida C
out
de un Sumador Completo.
La salida C
out
est dada por:
C
out
= AB + AC
in
+ BC
in

El circuito se muestra en la figura 3.9.4.

Figura 3.9.4. Circuito Lgico del Sumador Completo.
Restador
En la diferencia, cada bit del sustraendo se resta de su correspondiente bit del minuendo
para formar el bit de la diferencia. El prstamo ocurre cuando el bit del minuendo es menor
al bit del sustraendo, de tal forma que se presta un 1 de la siguiente posicin significativa.
La resta se implementa mediante un sumador. El mtodo consiste en llevar al minuendo a
una de las entradas y el sustraendo en complemento 2 a la otra entrada.
Restador Medio
El circuito combinacional que realiza la resta de dos bits se denomina Restador medio. El
circuito tiene dos entrada binarias y dos salidas. La figura 3.9.5 muestra el smbolo lgico
de Restador medio. En el circuito las entradas son A(minuendo) y B(sustraendo) y la salida
D corresponde a la diferencia y P al prstamo de salida.

Figura 3.9.5. Smbolo Lgico del Restador Medio.
Si A> B, existen tres posibilidades 0-0=0, 1-0=0 y 11=1. El resultado es el bit de
diferencia D. Si A<B se tiene 0-1 y es necesario prestar un 1 de la siguiente posicin
significativa de la izquierda. El prstamo agrega 2 al bit del minuendo de manera similar
cuando en el sistema decimal se agrega 10 al dgito del minuendo.
La tabla de verdad 3.9.3. est dada por las reglas de la resta binaria.
A B P D
0 0 0 0
0 1 1 1
1 0 0 1
1 1 0 0
Tabla 3.9.3. Tabla de verdad del Restador medio.
La salida D coincide con la operacin OR- Exclusiva y se puede expresar de la siguiente
forma:
D = AB + AB
La salida P est dada por la suma de productos de los trminos presentes en el rengln 2 de
la tabla de verdad:
P = AB
El circuito se muestra en la figura 3.9.6.

Figura 3.9.6. Circuito Lgico del restador medio.
Restador Completo
El Restador completo realiza la resta entre dos bits, considerando que se ha prestado un 1
de un estado menos significativo. En la tabla 3.9.4. las entradas A, B y C

denotan el
minuendo, el sustraendo y el bit prestado. Las salidas D y P representan a la diferencia y el
prstamo.
A B C P D
0 0 0 0 0
0 0 1 1 1
0 1 0 1 1
0 1 1 1 0
1 0 0 0 1
1 0 1 0 0
1 1 0 0 0
1 1 1 1 1
Tabla 3.9.4. Tabla de verdad del Restador Completo.
En las combinaciones del mapa donde C=0, se tienen las mismas condiciones para el
sumador medio. El resto de condiciones se vieron en la leccin 4 del captulo 1.
La funcin de la salida D de un restador es la misma que la salida de un sumador completo:
D = ABC + ABC + ABC + ABC = (A B) C
in

El mapa de karnaugh de la salida P se muestra en la figura 3.9.7.

Figura 3.9.7. Mapa para la salida P de un restador completo
La salida P est dada por:
P = AB + AC + BC
El circuito se muestra en la figura 3.9.8.

Figura 3.9.8. Tabla de verdad del restador completo


Sumador y Restador de Cuatro Bits
Las operaciones aritmticas se pueden implementar mediante circuitos lgicos. El nivel de
sencillez obtenido en los circuitos est dado por la tcnica de diseo utilizada. La
implementacin de una unidad aritmtica que realice las operaciones de suma y resta en un
slo circuito, es ms simple comparndola con una de dos circuitos para las mismas
funciones. En la leccin se vern los mtodos de diseo de circuitos lgicos para sumar y
restar nmeros binarios de cuatro bits.
La suma de dos nmeros binarios de cuatro bits se realiza de derecha a izquierda, teniendo
en cuenta los correspondientes posiciones significativas y el bit de arrastre (acarreo C
inx
). El
bit de arrastre generado en cada posicin se utiliza en la siguiente posicin significativa. La
figura 3.10.1. muestra la suma de dos nmeros de cuatro bits.

Figura 3.10.1. Suma binaria de cuatro bits
En un sumador completo, la suma de un par de bits genera un bit de acarreo. Un sumador
de 2 nmeros de n bits se puede implementar de la forma descrita a continuacin. Los bits
de la posicin menos significativa se suman con un acarreo inicial de 0, generando el bit de
suma y el de acarreo. El bit de acarreo generado es usado por el par de dgitos en la
siguiente posicin significativa. La suma se propaga de derecha a izquierda segn los
acarreos generados en cada sumador y los sumandos presentes. Por consiguiente, la suma
de dos 2 nmeros binarios de n bits se puede implementar mediante la utilizacin de n
sumadores completos. As, para nmeros binarios de dos bits se necesitan dos sumadores
completos; para nmeros de cuatro bits cuatro sumadores. En la figura 3.10.2. se muestra
un sumador de cuatro bits.

Figura 3.10.2. Smbolo lgico del sumador en paralelo de cuatro bits
El smbolo lgico del sumador de cuatro bits se muestra en la figura 3.10.3.

Figura 3.10.3. Circuito lgico del sumador en paralelo de cuatro bits
En el captulo 1 - leccin 4 se mostr que la resta de dos nmeros A y B se puede realizar
sumando el complemento a dos de B a A. Un sumador se puede modificar en forma de
sustractor invirtiendo cada bit del sustraendo y sumando 1 al establecer un acarreo de
entrada C
in1
.
Observese el complementador de la figura 3.10.4. Si la entrada de control es igual a S=0, la
entrada de datos I pasa sin ningn cambio a la salida. Si S=1, la entrada de datos se
complementa.

Figura 3.10.4. Diagrama de bloque de un complementador
El funcionamiento de este elemento se describe en la tabla de verdad 3.10.1.
Entradas Salida Descripcin
S I Y
0 0 0 Pasa a Y
0 1 1 Pasa a Y
1 0 1 Complemento a Y
1 1 0 Complemento a Y
Tabla 3.10.1.Tabla de verdad de un complementador
De la tabla de verdad se observa que Y = S I. La figura 3.10.5 muestra la funcin OR -
Exclusiva como complementador.

Figura 3.10.5. Funcin OR - Exclusiva como complementador
Una sola entrada de control S con n lneas de entrada de datos I
i
sirve para complementar o
no complementar la entrada, segn la operacin de resta o suma binaria. La figura 3.10.6.
ilustra un complementador de 4 bits.

Figura 3.10.6. Complementador de 4 bits
El circuito completo de un sumador/restador de 4 bits se representa en la figura 3.10.7.

Figura 3.10.7. Sumador/restador de 4 bits

Sumador en BCD
La suma en cdigo BCD utiliza las mismas reglas de la suma binaria vistas en la leccin
1.4. Si una suma de dos nmeros es menor o igual que 9, el nmero BCD resultante es
vlido. Si la suma es mayor que 9, o si se genera un acarreo el resultado no es vlido. En
este caso, se suma el nmero binario 0110 para pasar de nuevo al cdigo BCD. Si se genera
acarreo al sumar 0110, ste se suma al siguiente grupo de 4 bits. En los siguientes ejemplos
se vern los casos que se pueden presentar.
Ejemplo
Sumar los nmeros 01000101 (45)
10
y 00010010(12)
10
.
La suma de la figura 3.11.1. no genera acarreos.

Figura 3.11.1. Suma BCD sin acarreo.

Ejemplo
Sumar los nmeros 00111001(39)
10
y 01010110(56)
10
.
La suma de los cuatro bits menos significativos de la figura 3.11.2. genera acarreo.

Figura 3.11.02. Suma BCD con acarreo en el dgito BCD menos significativo
Ejemplo
Sumar los nmeros 01111001(79)
10
y 00110101(35)
10
.
La suma de dgito BCD menos significativo de la figura 3.11.3. genera acarreo, al igual que
el segundo dgito BCD.

Figura 3.11.03. Suma BCD con acarreo en dos dgitos
Un sumador BCD es un circuito que suma dos dgitos en BCD. En una suma BCD , la suma
9+9+1=19 es el valor mximo resultante, siendo el 1 en la suma el acarreo de entrada. Los
dgitos BCD con un acarreo de entrada, se agregan en un sumador binario de cuatro bits
para producir la suma binaria. Los nmeros decimales se listan en la tabla 3.11.1. C
1
es el
acarreo de la suma de los nmeros A y B de entrada (ver figura 3.11.4) y los dgitos S
1
a S
4

son el resultado de la suma binaria, donde cada dgito tiene los pesos 8, 4, 2, 1 del cdigo
BCD. Cuando la suma binaria es menor o igual a 1001, no se agrega nada a la suma.
Cuando el nmero binario es mayor que 1001 se obtiene una representacin en cdigo BCD
no vlida. La suma del nmero binario 0110 a la suma binaria convierte la representacin a
un cdigo BCD vlido. En la figura la suma del nmero 0110 se realiza por medio de un
segundo sumador inferior. Este cdigo BCD vlido se observa en la tabla 3.11.1 en la
columna de suma BCD. Las salidas S
5
a S
8
representan la suma BCD. C
2
es el acarreo de
salida de la suma BCD.
Decimal
Suma Binaria Suma BCD
C
1
S
4
S
3
S
2
S
1
C
2
S
8
S
7
S
6
S
5

0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 1 0 0 0 0 1
2 0 0 0 1 0 0 0 0 1 0
3 0 0 0 1 1 0 0 0 1 1
4 0 0 1 0 0 0 0 1 0 0
5 0 0 1 0 1 0 0 1 0 1
6 0 0 1 1 0 0 0 1 1 0
7 0 0 1 1 1 0 0 1 1 1
8 0 1 0 0 0 0 1 0 0 0
9 0 1 0 0 1 0 1 0 0 1
10 0 1 0 1 0 1 0 0 0 0
11 0 1 0 1 1 1 0 0 0 1
12 0 1 1 0 0 1 0 0 1 0
13 0 1 1 0 1 1 0 0 1 1
14 0 1 1 1 0 1 0 1 0 0
15 0 1 1 1 1 1 0 1 0 1
16 1 0 0 0 0 1 0 1 1 0
17 1 0 0 0 1 1 0 1 1 1
18 1 0 0 1 0 1 1 0 0 0
19 1 0 0 1 1 1 1 0 0 1
Tabla 03.11.01. Tabla de verdad del Sumador BCD.
El circuito necesario para detectar la condicin de acarreo o suma binaria mayor a 1001 se
obtiene de la tabla de verdad. Cuando C
1
es 1 se necesita sumar 0110 o una correcin. Lo
mismo entre las combinaciones 1010 y 1111, se tiene una correccin cuando S
2
=S
4
=1
S
3
=S
4
=1. La expresin lgica de la correccin es:
C
2
= C
1
+ S
3
S
4
+ S
4
S
2

El circuito lgico necesario para implementar el sumador BCD se muestra en la figura
3.11.4.

Figura 3.11.4. Diagrama de bloques de un sumador BCD


Unidad Aritmtica y Lgica (ALU)
Una unidad aritmtica lgica puede realizar un conjunto de operaciones aritmticas bsicas
y un conjunto de operaciones lgicas, a travs de lneas de seleccin. En ingls ALU
significa Arithmetic Logic Unit (Unidad Aritmtica Lgica). La figura 3.12.1. muestra el
diagrama de bloques de una ALU.

Figura 3.12.1. Diagrama de bloques de una ALU
Las cuatro entradas de A se combinan con las de B generando una operacin de salida de
cuatro bits en F. La entrada de seleccin de modo S
2
distingue entre las operaciones
aritmticas y lgicas. Las entradas de seleccin S
0
y S
1
determinan la operacin aritmtica o
lgica. Con las entradas S
0
y S
1
se pueden elegir cuatro operaciones aritmticas (con S
2
en
un estado) y cuatro logicas (con S
2
en otro estado). Los acarreos de entrada y salida tienen
sentido nicamente en las operaciones aritmticas. El diseo de una ALU implica el diseo
de la seccin aritmtica, la seccin lgica y la modificacin de la seccin aritmtica para
realizar las operaciones aritmticas y lgicas.
Seccin Lgica
Los datos de entrada en una operacin lgica son manipulados en forma separada y los bits
son tratados como variables binarias. En la tabla 3.12.1. se listan cuatro operaciones lgicas
OR, OR - Exclusiva, AND y NOT. En el circuito, las dos lneas de seleccin (S
1
, S
0
)
permiten seleccionar una de las compuertas de entrada, correspondientes a la funcin F
i
.
S
1
S
0
Salida Funcin F
i

0 0 F=A
i
+B
i
OR
0 1 F=A
i
B
i
XOR
1 0 F=A
i
B
i
AND
1 1 F=A'
i
NOT
Tabla 3.12.1. Tabla de Funcin Lgica.
El circuito lgico de la figura 3.12.2 es una etapa de un circuito lgico de n bits.

Figura 3.12.2. Diagrama lgico de un circuito lgico de una ALU
Seccin Aritmtica
El componente bsico de la seccin aritmtica es un sumador en paralelo (ver leccin
3.10.1). Las operaciones aritmticas configuradas en el circuito aritmtico se presentan en
la tabla 3.12.2. En una ALU, la suma aritmtica se puede implementar con un nmero
binario en A, otro nmero en la entrada B y el acarreo de entrada C
in
en un valor lgico 0.
El resto de las funciones se enuncian en la columna descripcin.
Seleccin de Funcin Salida N Funcin Descripcin
S
1
S
0
C
in
N F
0 0 0 0 A Transferir A
0 0 1 0 A+1 Incrementar A
0 1 0 B A+B Suma agregar B a A
0 1 1 B A+B+1 Suma con accarreo agregar B a A ms 1
1 0 0 B A+B Agregar el complemento de 1 de B a A
1 0 1 B A+B+1 Agregar el complemento de 2 de B a A
1 1 0 Todos unos A-1 Decrementar A
1 1 1 Todos unos A Trasferir A
Tabla 3.12.2. Tabla de la Funcin F en un Circuito Aritmtico
La implementacin de las funciones anteriores por medio de un circuito lgico sencillo se
describe a continuacin. El circuito se disea bajo el precepto de intervenir cada entrada B
i

para obtener las siguientes funciones:
S
1
S
0
N
i

0 0 0
0 1 B
i

1 0 B
i
'
1 1 1
Tabla 3.12.3. Tabla del circuito para la entrada B
i

La figura 3.12.3. muestra el circuito.

Figura 3.12.3. Circuito para la tabla 3.12.2.
Por medio de estas funciones se pueden lograr las funciones de la tabla 3.12.2 al agregar el
nmero N
i
(tabla 3.12.3) a la entrada A a travs de un sumador en paralelo para cada etapa,
teniendo en cuenta el valor de la entrada C
in
. El circuito combinacional aritmtico se
muestra en la figura 3.12.4. En la figura, la entrada A se denomina M
i
en el sumador
completo.

Figura 3.12.4. Circuito aritmtico
Diseo de una Unidad Aritmtica Lgica
En el diseo de una ALU se deben seguir los siguientes pasos:
1. Disear la seccin aritmtica independientemente de la seccin lgica.
2. Determinar las operaciones lgicas del circuito aritmtico, asumiendo que los
acarreos de salida de todas las etapas son 0.
3. Modificar el circuito aritmtico para obtener las operaciones lgica requeridas.
El diseo simple de una ALU se hace utilizando el sumador completo para generar las
operaciones lgicas de la unidad. Por lo tanto es necesario introducir una variable de
control adicional (S
2
), con el fin de seleccionar entre las operaciones lgicas y aritmticas.
En este diseo, un valor S
2
= 1 hace que el circuito efecte operaciones lgicas.
Recordando la salida de un sumador completo:
F = (A
i
B
i
) C
in

A partir de esta ecuacin, es posible obtener la funcin lgica requerida, utilizando la
debida manipulacin lgica. La funcin requerida se expone en la tabla 3.12.4.
S
2
S
1
S
0
A
i
B
i
C
in

Operacin Sumador
Completo
Funcin
requerida F
i

Manipulacin Salida
1 0 0 A
i
0 0 A
i
OR
Aplicar una funcin OR
A
i
+ B
i

A
i
+B
i

1 0 1 A
i
B
i
0 A
i
B
i
XOR Ninguna A
i
B
i

1 1 0 A
i
B
i
' 0 A
i
B
i
AND
Aplicar una funcin OR
A
i
+ B
i
'
A
i
B
i

1 1 1 A
i
1 0 A'
i
NOT Ninguna A'
i

Tabla 3.12.4. Tabla de obtencin de las funciones lgicas con un sumador completo
Partiendo de la tabla 3.12.4., las entradas M
i
, N
i
y C
ini
en un sumador completo, son
equivalentes a las siguientes expresiones:
M
i
= A
i
+ S
2
S
1
'S
0
'B
i
+ S
2
S
1
S
0
'B
i
'
N
i
= S
0
B
i
+ S
1
B
i
'
C
ini
= S
2
'C
i

La figura 3.12.5. muestra el diagrama de la unidad aritmtica lgica de dos etapas.

Figura 3.12.5. Diagrama lgico de una ALU
Las doce operaciones generadas en el ALU se resumen en la tabla 3.12.5., la funcin en
particular se selecciona a travs de S
2
, S1, S0 y Cin. Las operaciones aritmticas son las
mismas del circuito aritmtico.
Seleccin Salida F hDescripcin
hS
2
hS
1
hS
0
C
in
F
0 0 0 0 A Trasferir A
0 0 0 1 A+1 Incrementar A
0 0 1 0 A+B Suma
0 0 1 1 A+B+1 Suma con accarreo
0 1 0 0 A-B-1 Resta con prstamo
0 1 0 1 A-B Sustraccin
0 1 1 0 A-1 Decrementar A
0 1 1 1 A Transferir A
1 0 0 X A+B OR
1 0 1 X A B OR-Exclusiva
1 1 0 X A B AND
1 1 1 X A Complementar A
Tabla 3.12.5. Tabla de verdad de una ALU

Multiplicador Combinatorio
Un multiplicador combinatorio permite realizar la operacin de multiplicacin mediante
circuitos combinacionales. Como ejemplo, un circuito construido para este propsito es un
multiplicador combinacional paralelo de 4 bits, mostrado en la figura 3.13.2. Este
multiplicador estn constituido internamente por circuitos sumadores completos, que a su
vez internamente estn diseados a nivel de puertas lgicas. En el primer nivel de
compuertas de la figura se obtienen las operaciones A
0
B
0
, A
1
B
0
, A
2
B
0
y A
3
B
0
. En el segundo
nivel de compuertas, las operaciones A
0
B
1
, A
1
B
1
, A
2
B
1
y A
3
B
1
. En el tercero, las operaciones
A
0
B
2
, A
1
B
2
, A
2
B
2
y A
3
B
2
y en el cuarto A
0
B
3
, A
1
B
3
, A
2
B
3
y A
3
B
3
. Por ejemplo, A
0
B
0
es
directamente el resultado P
0
. El dgito P
3
, se obtiene de la suma de los bits de entrada a los
sumadores S3, S6, S9 y el bit A
3
B
0
. La figura 3.13.1 recuerda el proceso de multiplicacin
de dos nmeros de cuatro bits.

Figura 3.13.1. Multiplicacin de dos nmeros de cuatro bits

Figura 3.13.2. Circuito lgico del multiplicador combinatorio




Dispositivos Lgicos Programables
Una forma rpida y directa de integrar aplicaciones se logra con la lgica programable, la
cual permite independizar el proceso de fabricacin del proceso de diseo fuera de la
fbrica de semiconductores. El sistema desplaza los errores de alambrado al campo
exclusivo de la programacin. Los sistemas con estas caractersticas se pueden borrar y
reprogramar en casos de cambios o revisiones. El resultado es la reduccin del espacio
fsico de la aplicacin. El diseo est basado en bibliotecas y mecanismos especficos de
mapeado de funciones.
En el captulo se vern dispositivos como los PAL y GAL por la facilidad de manejo y
coste razonable. El lenguaje CUPL se ver por su amplia difusin y empleo en
aplicaciones.




Diseo Lgico Hoy Da
La mayor parte de los diseos de nivel de sistema incorporan diversos dispositivos, como
son las memorias RAM, ROM, controladores, procesadores, etc., que se interconectan
mediante gran cantidad de dispositivos lgicos de propsito general, frecuentemente
denominados lgica de unin ("glue logic"). En los ltimos aos, los dispositivos PLD
(Programmable Logic Device) han comenzado a reemplazar muchos de los antiguos
dispositivos de unin, SSI y MSI.
El uso de dispositivos PLD proporciona una reduccin en el nmero de circuitos
integrados. Por ejemplo, en los sistemas de memoria de las computadoras, los PLD pueden
utilizarse para decodificar direcciones de memoria y generar seales de escritura en
memoria.
En muchas aplicaciones, los PLD y, en concreto, las matrices lgicas programables (PAL,
Programmable Array Logic) y las matrices lgicas genricas (GAL, Generic Array Logic)
pueden emplearse para reemplazar dispositivos lgicos SSI y MSI, consiguiendo con ello
una reduccin de etapas y de los costos.
Por las razones anteriores el diseo lgico hoy da se realiza con PLDs. Un PLD est
formado por una matriz de puertas AND y puertas OR, que se pueden programar para
conseguir funciones lgicas especficas.
El diseo con PLDs seala las siguientes ventajas en relacin a la lgica cableada:
- Economa.
- Menos espacio en los impresos.
- Se mantiene la reserva del diseo.
- Se requiere tener menos inventarios que con circuitos estndar SSI, MSI.
- Menos alambrado.
Tipos de PLD
Los PLD se dividen en dos clases:
1. PLDs combinatorios.
Constituidos por arreglos de compuertas AND OR. El usuario define las
interconexiones y en esto consiste la programacin.
2. PLDs secuenciales.
Adems de los arreglos de compuertas, incluyen flip flops para programar
funciones secuenciales como contadores y mquinas de estado(ver captulo 8).
Estructura de los Dispositivos Lgicos Programables Bsicos
Los PLD se clasifican de acuerdo con su estructura, la cual es bsicamente la ordenacin
funcional de los elementos internos que proporciona al dispositivo sus caractersticas de
operacin especficas.
Memoria programable de slo lectura PROM (PROM, Programable Read Only Memory)
La PROM est formada por un conjunto fijo (no programable) de puertas AND conectadas
como decodificador y una matriz programable OR. La PROM se utiliza como una memoria
direccionable y no como un dispositivo lgico (Ver Fig 4.1.1.).

Figura 4.1.1. Diagrama de bloques de una PROM (Programmable Read-Only Memory).
Arreglo Lgico Programable PLA (PLA, Programmable Logic Array)
El PLA es un PLD formado por una matriz AND programable y una matriz OR
programable. La PLA ha sido desarrollada para superar algunas de las limitaciones de las
memorias PROM (Ver Fig 4.1.2.).

Figura 4.1.2. Diagrama de bloques de una PLA (Programmable Logic Array).
Los dispositivos lgicos programables como las PAL y las GAL se vern
en la siguiente leccin.
En la actualidad existen soluciones con Dispositivos Lgicos
programables complejos que combinan arquitectura superior y software
de gran alcance, ofreciendo un nivel sin precedente en la flexibilidad del
diseo.


Herramientas Computacionales Utilizadas en las Metodologias de Diseo
Descendentes (Top-Down)
En el diseo Top - Down se captura una idea en un nivel de abstraccin alto y se
implementa a partir de sta descripcin, en un proceso hacia abajo incrementando el nivel
de detalle segn lo requerido. La figura 4.3.1. muestra la forma de diseo Top- Down. En el
primer nivel de la figura se aprecia un sistema inicial dividido en mdulos, los cuales se
dividen sucesivamente hasta llegar a los componentes bsicos del circuito o elementos
primarios. Estos elementos se enmarcan en un cuadrado con la lneas ms gruesa. Los
mtodos de diseo se basan en programas computacionales conocidos como herramientas
de automatizacin del diseo electrnico (EDA Tools), las cuales sobresalen por ofrecer
una reduccin significativa en el tiempo del diseo.

Figura 4.2.1. Metodologia De Diseo Top - Down
Las herramientas siguen el diagrama de flujo de la figura 4.4.2.

Figura 4.2.2. Diagrama de Flujo con herramientas EDA
Este proceso se resume en los siguientes pasos:
1. Planteamiento de las especificaciones.
2. Entrada del diseo:En esta etapa se realiza una descripcin del
circuito, para la cual existen varias alernativas,
a. Captura Esquemtica: Dibujo del circuito mediante interfaz
grfica, puede ser un diagrama de bloques.
b. Mediante lenguajes de descripcin HDL como VHDL, Verilog,
Abel y CUPL.
c. Diagramas de transicin de estados.
d. Formas de onda Tablas de verdad.
3. Simulacin HDL (Opcional): Simula el comportamiento del circuito
que se acaba de describir antes de la sntesis.
4. Sntesis lgica: Consiste en tomar la descripcin HDL y a partir de
ella, generar y simplificar las ecuaciones lgicas correspondientes
al circuito descrito.
5. Simulacin funcional: Simula las ecuaciones lgicas, sin tener en
cuenta los retardos.
6. Implementacin del diseo: Los pasos a seguir dependen del tipo
de PLD que se est utilizando en el diseo. Trazado del mapa,
Colocacin y enrutamiento, Creacin del archivo para la
programacin del dispositivo. Revisa si el circuito se adapta al
chip; No. salidas, No. de trminos productos por salida.
7. Simulacin temporal: Despus de la implementacin ya se conoce
como queda programado el circuito y se puede realizar una
simulacin teniendo en cuenta los retardos.
8. Programacin: La implementacin genera un archivo JEDEC que
indica el estado de las conexiones. Este archivo se usa para
programar (o quemar el chip).
Ventajas del Diseo Top - Down
La metodologia de diseo descendente disminuye el tiempo de diseo. Por medio de los
programas CAD para diseo de impresos se ha logrado disminuir el tiempo a 1/10 parte de
lo que se gastaba antes, cuando esto se hacia antes manualmente. En la realizacin de las
simulaciones no es necesario slo un prototipo, ya que este generalmente funciona; antes se
deba repetir el proceso 2 o 3 veces hasta que el prototipo funcionara.
Las ltimas herramientas de diseo electrnico permiten implementar de forma automtica
la metodologa de diseo Top - Down.

Lenguajes de Descripcin de Hardware (HDL - Hardware Description Language)
Los lenguejes HDL permiten realizar el primer paso de la metodologa del diseo
descendente. Se describen en un lenguaje de alto nivel el comportamiento requerido del
circuito a disear. Esta descripcin se puede hacer mediante tablas de verdad, lista de
transiciones de estados, ecuaciones lgicas. Con base a la descripcin, el programa realiza
los siguientes pasos:
1. Sintetiza y simplifica las ecuaciones lgicas.
2. Simula las ecuaciones.
3. Sintetiza el circuito lgico.
4. Simula el circuito lgico.
5. Sintetiza el archivo para programar un PLD.
Entre otras ventajas, se pueden mencionar las siguientes:
1. EL programa HDL es el mismo as cambie la tecnologa, Ejemplo: FPGA,
transistores 2.5m ., 1.2 m .
2. Facilita la comunicacin entre los diseadores.
3. Facilita el uso de las partes de un diseo en otros (Reutilizacin).
4. Es posible verificar el funcionamiento del sistema dentro del proceso de diseo sin
necesidad de implementar el circuito.
5. Las simulaciones del diseo, antes de que este sea implementado, permiten probar
la arquitectura del sistema para tomar decisiones en cuanto a cambios en el diseo.
6. Las herramientas de sntesis tienen la capacidad de convertir una descripcin hecha
en un HDL, VHDL por ejemplo, a compuertas lgicas y adems, optimizar dicha
descripcin de acuerdo a la tecnologa utilizada.
7. Las descripciones en un HDL proporcionan documentacin de la funcionalidad de
un diseo independientemente de la tecnologa utilizada.
8. Una descripcin realizada en un HDL es ms fcil de leer y comprender que los
nestlist o circuitos esquemticos.
9. Un circuito hecho mediante una descripcin en un HDL puede ser utilizado en
cualquier tipo de dispositivo programable capaz de soportar la densidad del diseo.
Es decir, no es necesario adecuar el circuito a cada dispositivo porque las
herramientas de sntesis se encargan de ello.

Lenguajes HDL ms populares
En la actualidad existen diversas herramientas de diseo para integrar sistemas de gran
complejidad. Los lenguajes de descripcin de hardware constituyen una opcin de diseo
de soluciones de sistemas electrnicos.
ABEL
El lenguaje ABEL es el ms utilizado en los PLDs. El lenguaje ABEL facilita la
programacin de PLDs combinatorios y secuenciales. Un circuito en ABEL se puede
describir en forma de ecuacin lgicas, tabla de verdad o en transicin de estados.
El programa ABEL cumple los siguientes pasos:
1. Verifica si existen errores en la sintaxis del programa fuente.
2. Simplifica o sintetiza las ecuaciones segn sea el caso.
3. Simula las ecuaciones.
4. Puede escoger el dispositivo que mejor se adapte, o verificar si el dispositivo
especificado s se adapta a la aplicacin.
5. Genera el archivo JEDEC para la programacin del PLD.
VHDL
El VHDL es un lenguaje de descripcin y modelado diseado para descibir en forma
entendible la funcionalidad y la organizacin del hardware de los sistemas digitales y otros
componentes. VHDL maneja una sintaxis amplia y flexible. El lenguaje VHDL permite el
diseo Top -Down o en otras palabras; modelar los bloques de alto nivel, simularlos y
adecuar la funcionalidad en alto nivel antes de llegar a los niveles bajos de abstraccin en la
implementacin del diseo.
CUPL
El lenguaje CUPL se describir en la leccion 5 de este captulo.


erramientas para la Automatizacin del Diseo Electrnico (EDA Tools)
Las herramientas EDA ("Electronic Design Automation") son las herramientas de hardware
y software utilizadas en el diseo de sistemas electrnicos.
El diseo de hardware tiene un inconveniente que no existe en el desarrollo de software. El
problema es el alto costo en el ciclo de diseo, desarrollo del prototipo, pruebas y reinicio
del ciclo. La etapa de costo ms elevado es el prototipo. Por necesidad del mercado, se
impone la reduccin de costos en esta etapa, con el fin de incluir la fase de desarrollo del
prototipo al final del proceso, evitando la repeticin de varios prototipos, razn por la cual
se encarece el ciclo. La introduccin de la fase de simulacin y verificacin de circuitos
utilizando herramientas EDA, hace no necesaria la comprobacin del funcionamiento del
circuito por medio de la implementacin fsica del prototipo.
Las herramientas EDA estn presentes en todas las fases del ciclo de diseo de circuitos.
Primero en la fase de generacin del sistema que puede representarse en un diagrama
esquemtico, en bloques o de flujo.
Se encuentra tambin la fase de simulacin y comprobacin de circuitos, donde diferentes
herramientas permiten verificar el funcionamiento del sistema. Estas simulaciones pueden
ser de eventos, funcionales, digitales o elctricas, de acuerdo al nivel requerido. Despus
estn las herramientas EDA utilizadas en la sntesis y programacin de circuitos digitales en
dispositivos lgicos programables. Existen, adems, las herramientas EDA orientadas a la
fabricacin de circuitos. En el caso del diseo de hardware estas herramientas sirven para
la realizacin de PCBs ("Printed Circuit Boards" o placas de circuito impreso), o para
desarrollar circuitos integrados de aplicacin especifica como ASICs ("Aplication Specific
Integrated Circuits").
Las principales caractersticas y finalidad de algunas herramientas EDA que intervienen en
el diseo de circuitos son:
1. Lenguajes de Descripcin de Circuitos.
2. Diagramas Esquemticos.
3. Grafos y Diagramas de Flujo.
4. Simulacin de Eventos.
5. Simulacin Funcional.
6. Simulacin Digital.
7. Simulacin Elctrica.
8. Diseo de PCBs.
9. Diseo de Circuitos Integrados.
10. Diseo con Dispositivos Programables.
Para la automatizacin del diseo electrnico se utilizan herramientas EDA. Ventajas de la
metodologia de diseo que usa herramientas EDA
Entre las ventajas de la metodologia de diseo con el empleo de herramientas EDA est la
reduccin del diseo, la posibilidad de dividir un proyecto en mdulos que se desarrollan
por separado, la independencia del diseo con respecto a la tecnologa, la posibilidad de la
reutilizacin de los diseos, la optimizacin de los circuitos y las simulaciones posibles con
las herramientas.
Con la aparicin de herramientas EDA cada vez ms complejas, que integran en el mismo
marco de trabajo las herramientas de descripcin, sntesis, simulacin y realizacin;
apareci la necesidad de disponer de un mtodo de descripcin de circuitos que permitiera
el intercambio de informacin entre las diferentes herramientas que componen el ciclo de
diseo. En principio se utiliz un lenguaje de descripcin que permita, mediante sentencias
simples, describir completamente un circuito. A estos lenguajes se les llam Netlist puesto
que eran simplemente eso, un conjunto de instrucciones que indicaban las interconexiones
entre los componentes de un diseo.


Principios y Aplicaciones de los Dispositivos Lgicos Programables como las PALs y
las GALs.
Una matriz programable es una red de conductores distribuidos en filas y columnas con un
fusible en cada punto de interseccin. Las matrices pueden ser fijas o programables. Todos
los PLD estn formados por matrices programables.
Estrucutura Interna de un PLD
La estructura bsica de un PLD et formada por un arreglo de puetas AND y OR
interconectadas a travs de fusibles.
Matriz AND
La matriz AND est formada por una red de compuertas AND conectadas a travs
conductores y fusibles en cada punto de interseccin. Cada punto de interseccin entre una
fila y una columna se denomina celda. La figura 4.4.1 muestra un arreglo de compuertas no
programado.

Figura 4.4.1. Arreglo AND No Programado.
Cuando se requiere una conexin entre una fila y una columna, el fusible queda intacto y en
caso de no requerirse la conexin, el fusible se abre en el proceso de programacin. La
figura muestra 4.4.2 un arreglo AND programado.

Figura 4.4.2. Arreglo AND Programado.
Matriz OR
La matriz OR est formada por una red de compuertas OR conectadas a travs conductores
y fusibles en cada punto de interseccin. La figura 4.4.3 muestra un arreglo de compuertas
no programado.

Figura 4.4.3. Arreglo OR No Programado.
La figura muestra 4.4.4 un arreglo OR programado.

Figura 4.4.4. Arreglo OR Programado.
Los dispositivos lgicos programables que se usan ms comnmente para la
implementacin lgica son la PAL y la GAL.
Lgica de Arreglos Programables (PAL, Programmable Array Logic)
La PAL es un PLD que se ha desarrollado para superar ciertas desventajas de la PLA, tales
como los largos retardos debidos a los fusibles adicionales que resultan de la utilizacin de
dos matrices programables y la mayor complejidad del circuito. La PAL bsica est
formada por una matriz AND programable y una matriz OR fija con la lgica de salida (Ver
figura 4.4.5). Esta estructura permite implementar cualquier suma de productos lgica con
un nmero de variables definido, sabiendo que cualquier funcin lgica puede expresarse
como suma de productos. La PAL se implementa con tecnologa bipolar (TTL o ECL).

Figura 4.2.5. Diagrama de bloques de una PAL (Programmable Logic Array)
Nomenclatura de una PAL
Los lderes en fabricacin de PLDs, Texas Instruments y AMD, tienen una notacin para
identificar los dispositivos. Por ejemplo, la estructura en PLD AMD es:

Figura 4.2.6. Diagrama de bloques de una PAL (Programmable Logic Array)
Dentro de la estructura de salida se tienen las posibilidades contenidas en la tabla 4.2.1.
Cdigos Tipos de Salidas
L Combinatoria con nivel bajo activo.
H Combinatoria con nivel alto activo.
R Registro.
RA Registro asncrono.
X Registro O exclusivo.
V Vestil.
M Macroclula.
Tabla 4.2.1. Tipos de Salidas de una PAL.
PALs comerciales
En el mercado se manejan referencias como la PAL16L8, PAL20L8, PAL20V8 y PAL20X8.
Matriz Lgica Genrica (GAL, Generic Array Logic)
La GAL se forma con una matriz AND reprogramable y una matriz OR fija , con una salida
lgica programable. La figura 4.4.7. muestra el diagrama de bloques de una GAL. Esta
estructura permite implementar cualquier expresin lgica suma de productos con un
nmero de variables limitado.

Figura 4.4.7. Diagrama de Bloques de una GAL (Generic Array Logic).
Las dos principales diferencias entre los dispositivos GAL y PAL son:
a) la GAL es reprogramable y
b) la GAL tiene configuraciones de salida programables. La GAL se puede programar una y
otra vez, ya que usa tecnologa ECMOS (Electrically Erasable CMOS, CMOS borrable
elctricamente).
En la figura 4.4.8. se ilustra la estructura bsica de una GAL con dos variables de entrada y
una de salida. La matriz reprogramable es esencialmente una red de conductores ordenados
en filas y columnas, con una celda CMOS elctricamente borrable (E
2
CMOS) en cada punto
de interseccin, en lugar de un fusible como en el caso de las PAL. Estos PLDs son
borrables y reprogramables. El transistor CMOS tiene 2 compuertas, una de ellas totalmente
aislada, flotante. Para programar cada celda se aplica o no una tensin mayor a V
DD
(alta)
en la compuerta no flotante. Al aplicar esta tensin el dielctrico conduce y la compuerta
flotante se carga negativamente, dejando en operacin normal siempre abierto el transistor.

Figura 4.4.8. Estructura Bsica de una GAL (Generic Array Logic)
En la figura 4.2.9. se muestra un ejemplo de una sencilla matriz GAL programada para
obtener la suma de tres productos.

Figura 4.4.9. Programacin de una GAL (Generic Array Logic).
El borrado se puede hacer de dos formas:
- Con luz ultravioleta(UV): exponiendo el transistor de 5 a 20 minutos a luz UV, el
dielctrico conduce y permite la descarga de la compuerta flotante. Para este
borrado el chip lleva una ventana de cuarzo transparente.
- Borrado elctrico: Es el ms usado hoy en da. La capa que aisla la compuerta
flotante es ms delgada. Al aplicar una tensin alta con polaridad contraria , la
compuerta flotante se descarga porque el dielctrico conduce. Las ventajas ms
importantes de esta tcnica son una descarga rpida, no se requiere UV y no se
requiere sacar el chip de su base.
GALs comerciales
Las diversas GAL tienen el mismo tipo de matriz programable. Se diferencian en el tamao
de la matriz, en el tipo de OLMC (Las macroceldas Lgicas de Salida que contienen
circuitos lgicos programables que se pueden configurar como entrada o salida
combinacional y secuencial) y en los parmetros de funcionamiento, tales como velocidad
y disipacin de potencia.
Referencia
Nmero de
Pines
t
PD

I
CC

(mA)
Caractersticas
GAL16V8A 20
10, 15,
25
55, 115 E
2
CMOS PLD Genrica
GAL18V10 20 15, 20 115 E
2
CMOS PLD Universal
GAL22V8A 24
10, 15,
25
55, 115 E
2
CMOS PLD Genrica
GAL22RA10 24 15, 20 115 E
2
CMOS PLD Universal
GAL22V10 24
10, 15,
25
130 E
2
CMOS PLD Universal
GAL26CV12 28 15, 20 130 E
2
CMOS PLD Universal
GAL6001 24 30, 35 150 E
2
CMOS FPLA
ispGAL16Z8 24 30, 35 190
E
2
CMOS PLD Programable en
Circuito
Tabla 4.2.2. Familias GAL del fabricante Lattice


incipios y Aplicaciones de los Dispositivos Lgicos Programables
como las PALs y las GALs



Programacin en CUPL
En el medio electrnico hay diferentes herramientas de software para programar PLDs.
Todos estos tienen semejanzas compartidas y sus diferencias distintivas. Uno de los
compiladores disponibles de alto nivel de uso difundido actualmente es CUPL. En esta
leccin se pretende dar una introduccin a la programacin de PLDs utilizando este
compilador dejando por parte del estudiante la profundizacin en el tema.
CUPL es una Herramienta de programacin para PLDs y su nombre proviene de la sigla en
ingls de Compiler Universal Programmable Logic , la cual traduce Compilador Universal
para Lgica Programable. Este compilador ofrece varias caractersticas que permiten
desarrollos basados en la metodologa Top-Down y puede generar archivos de
programacin para una gran variedad de dispositivos programables.
La programacin en este Software se efecta mediante la creacin de un archivo de texto
que contiene el cdigo para la programacin del dispositivo. Este archivo tiene tres partes
bsicas: el encabezado, la declaracin de los pines de entrada y las definiciones lgicas.
Generalmente se emplea un archivo como el que se muestra en la Lista 4.5.1 para dar inicio
al diseo lgico y tener una forma estandar para trabajar en CUPL.
Name XXXXX;
Partno XXXXX;
Date
Revision
Designer
Company
Assembly
Location

/***************************************************************/

/*Entradas*/
pin 1 = ; /* */
pin 1 = ; /* */
pin 1 = ; /* */
pin 1 = ; /* */

/*Salidas*/
pin 1 = ; /* */
pin 1 = ; /* */
pin 1 = ; /* */
pin 1 = ; /* */

/*Variables Intermedias (Opcionales)*/
pin 1 = ; /* */
pin 1 = ; /* */
pin 1 = ; /* */
pin 1 = ; /* */

/***************************************************************/
/* Ecuaciones Lgicas*/
/***************************************************************/
Lista 4.5.1. Archivo de Ejemplo de Entrada en CUPL
En este archivo los comentarios los grupos de caracteres "/*" y "*/" son empleados para
incluir comentarios por parte del usuario, los cuales permiten organizar el archivo de una
forma comprensible y especificar la funcion de ciertos tipos de instrucciones.
En las siguientes secciones se indicarn algunas caractersticas a tener en cuenta para
programar un PLD en CUPL y la sintaxis que se debe emplear en el archivo fuente para
implementar un diseo.
Asignacin de Pines
La asignacin de los pines corresponde al nombramiento de los pines del dispositivo con
nombres descriptivos para las entradas y salidas. Los nombres se pueden asignar de forma
libre y corresponden a las variables que se emplean para definir las ecuaciones lgicas.
La asignacin de pines se puede hacer de forma invividual o grupal. En la tabla 4.5.1 se
indica la sintaxis que se emplea en CUPL para asignar los pines de un dispositivo
programable. Observe que cada asignacin finaliza con un punto y coma (;).
Sintaxis General Sintaxis Abreviada
Pin 1 = Nombre; Pin [2,3] = [Nombre, Nombre2];
Pin 2 = !Nombre; Pin [2,3] = ![Nombre, Nombre2];
Pin 3 = !SET; Pin [2..3] = [Q0..3];
Tabla 4.5.1. Asignacin de Terminales
El signo "!" en la asignacin de pines indica que la variable se complementa. Este signo se
emplea generalmente para declarar variables activas en bajo
Definicin de Variables Intermedias
Las variables intermedias corresponden a variables asignadas a una ecuacin lgica pero
que no representan un pin en el dispositivo. Generalmente esta variables se utilizan cuando
se requiere manejar varias varibles de entra y salidas.
El objetivo de declarar variables intermedias, consiste bsicamente en reducir el tamao de
las ecuaciones lgicas asignadas a los pines de salida y permitir organizar el archivo de
entrada de una forma comprensible. Su uso no es obligatorio en el archivo de entrada para
CUPL.
Definicin de Ecuaciones Lgicas
Las ecuaciones lgicas corresponden a las expresiones lgicas que relacionan los pines de
entrada y salida. y en el archivo fuente se ubican despus de la asigancin de pines y
variables intermedias.
Las ecuciones lgicas deben tener cierta sintaxis para que el programa interprete las
operaciones lgicas. En la tabla 4.5.2 se ralcionan los operadores lgicos con lo cuales se
contruyen las expresiones lgicas junto con la sintaxis que exige CUPL.
Operador Funcin Formato de CUPL Formato Convencional
& AND A&B A B
# OR A#B A+B
! NOT !A A'
$ XOR A$B AB
Tabla 4.5.2. Sintaxis de CUPL para operaciones lgicas
La sintaxis general de las equaciones lgicas en CUPL es la siguiente:
[!] var [.ext] = exp;
Extensiones de Variables
Las extensiones son atributos que se agregan a las variables en las ecuaciones lgicas y la
manera de emplearlas en el archivo fuentes es mediante la sintaxis: "V.E", donde V es la
variable lgica y E es la extensin.
Las extensiones para las variables son empleadas para definir funciones que dependen de la
configuracin fsica de las salidas del PLD. Generalmente el tipo de salidas que se pueden
configurar en un PLD son salidas combinacionales, secuenciales y triestado, entre otras. En
la figura 4.5.1 se muestra un diagrama ilustrativo del tipo de salidas que se pueden
configurar en CUPL segn la extensin seleccionada, y un ejemplo sobre su utilizacin.

Figura 4.5.1. Circuito Ilustrativo del tipo de salidas configurables en un PLD
(Tomado de ATMEL - WinCUPL User's Manual)
Teniendo en cuenta que las varibles lgicas pueden incluir extensiones, la sintaxis que se
debe emplear para las ecuaciones lgicas es la siguiente:
[!] var [.ext] = exp;
donde var es la variable lgica , ext es la extensin y exp es la expresin lgica.Un sencillo
ejemplo usando el software para creacin de CUPL servir para ilustrar el proceso.
En CUPL existe otro tipo de sintaxis para simplificar un poco la ecuaciones lgicas. Una de
ellas consiste en la utlizacin de los operadores de forma cosecutiva a varias variables. En
la tabla 4.5.2 se indica como se pueden representar las expresiones lgicas de forma
abreviada.
Forma Convencional Forma Abreviada
A3 & A2 & A1 & A0 [A3, A2, A1, A0]:&
B3 # B2 # B1 # B0 [B3..B0]:#
C3 $ C2 $ C1 $ C0 [C3, C2, C1, C0]:$
Tabla 4.5.3. Forma abreviada para representar expresiones lgicas con un mismo operador
Existe otro tipo de sintaxis similar a la anterior que define rangos de datos. Inicialmente se
debe definir un campo de la siguiente forma:
FIELD entrada = [A3..A0];
Luego se escribe el rango de la ecuacin de la forma:
salida = entrada:[C..F];
Esta ecuacin equivale a escribir la siguiente expresin:
salida = entrada:C # entrada:D # entrada:E # entrada:F;
Definicin de Alternativa de las Salidas
En CUPL existen otras formas alternativas de definir las salidas. Entre ellas exiten las
Tablas de Verdad, Mquinas de Estado y Estamentos Condicionales. A contnuacin de
indica la sintaxis de cada uno de estos tipo de declaracin de salidas lgicas.
Tablas de Verdad
Como su nombre lo indica este tipo de sintaxis agrupa la informacin sobre la asociacin
de entradas y salidas en forma de tabla. Para declara una tabla de verdad inicialemnte se
declarar las entradas y salidas. Despus de ello se asignan los valores uno a uno de las
entradas y salidas. En la Lista 4.5.2 se indica las sintaxis para un decodificador de
Hexadecimal a BCD.
FIELD Entrada = [Ent3..0];
FIELD Salida = [Sal3..0];
TABLE Ent => Sal {
0=> 00; 1=>01; 2=>02; 3=>03;
4=>04; 5=>05; 6=>06; 7=>07;
8=>08; 9=>09; A=>10; B=>11;
C=>12; D=>13; E=>14; F=>15;
}
Lista 4.5.2. Sintaxis en CUPL para crear Tablas de Verdad
Mquinas de Estado
Este tipo de definicin permite declarar la relacin entradas y salidas mediante la definicin
de mquinas de estado. La sintaxis empleada para este tipo de definicin se ilustra en las
lneas de cdigo de la Lista 4.5.3.
SEQUENCE lista_vars_estado {
PRESENT estado_n0
IF (condicin1)NEXT estado_n1;
IF (condicin2) NEXT estado_n2 OUT sal_n0;
DEFAULT NEXT estado_n0;
PRESENT estado_n1
NEXT estado_n2;
...
...
...
PRESENT estado_nn estamentos;
}
Lista 4.5.3. Sintaxis en CUPL para crear Mquinas de Estado
Estamentos Condicionales
Los estamentos condicionales es otro tipo de sintaxis que se puede emplear en CUPL para
definir el diseo lgico. Bsicamente est sintaxis es muy similar a la un lenguaje de
programcin de alto nivel. La sintaxis que soporta CUPL se relaciona en la lista 4.5.4.
CONDITION {
IF expr0 OUT var;
.
.
IF exprn OUT var;
DEFAULT OUT var;
}
Lista 4.5.4. Sintaxis en CUPL para crear Estamentos Condicionales
Ejemplo de Programacin en CUPL
El cdigo que se indica en la Lista 4.5.5. corresponde al texto del archivo fuente para
programar un GAL16V8, que ilustra como programa funciones lgicas bsicas en CUPL.
Name Funciones lgicas;
Partno GAL16V8;
Revision 01;
Date 03/01/03;
Designer J.Beltran;
Company Universidad Nacional;
Location X;
Assembly X;
Device G16V8;
/******************************************************/
/* Archivo Fuente de ejemplo en CUPL para implementar funciones lgicas */
/******************************************************/

/* Definicin de las entradas */
Pin 1 = a;
Pin 2 = b;
/* Definicinde las salidas */

Pin 12 = inva;
Pin 13 = invb;
Pin 14 = and;
Pin 15 = nand;
Pin 16 = or;
Pin 17 = nor;
Pin 18 = xor;
Pin 19 = xnor;
/* Definicin de Ecuaciones Lgicas*/
inva = !a; /* Inversin de las entradas a y b*/
invb = !b;
and = a & b; /* Funcin AND */
nand = !(a & b); /* Funcin NAND */
or = a # b; /* Funcin OR*/
nor = !(a # b); /* Funcin NOR */
xor = a $ b; /* Funcin XOR */
xnor = !(a $ b); /* Funcin XOR Negada*/
Lista 4.5.5. Archivo fuente de ejemplo en CUPL para implementacin de funciones lgicas
Una vez se tiene el archivo fuente de un diseo lgico, el paso a seguir es compilar el
archivo para generar el archivo de programacin JEDEC, el cual se emplea para programar
el dispositivo. Durante el procesode compilacin del archivo fuente CUPL verifica la
sintaxis del archivo e indica los posibles errores que puedan existir. Si el programa no
detecta errores se genera el archivo .JED.
CUPL entre sus funciones tiene un simulador con el cual se pueden comprobar las salidas.
Este proceso se efecta mediante la generacin de varias entradas que comprueban los
estados de las salidas para verificar las ecuaciones lgicas.
La simulacin se recomienda para verificar que el diseo es correcto y que no existe ningn
error. Despus de ello se puede proceder a programar el dispositivo y finalmente verificar
su funcionamiento.


Cerrojos y Flip-Flops
En los captulos anteriores se realiz el anlisis y sntesis de los sistemas lgicos
combinacionales, en los cuales no se tuvo en cuenta la variable tiempo. En los sistemas
secuenciales la variable tiempo juega un papel importante debido a que el estado de las
salidas depende del estado actual de las variables de sistema. Adicionalmente los sistemas
secuenciales tienen la caracterstica de almacenar o retener informacin, lo cual los
convierte en sistemas muy verstiles en electrnica digital.
En este captulo se tratarn conceptos fundamentales sobre la composicin y
funcionamiento de los dispositivos bsicos empleados en lgica secuencial y algunas
aplicaciones particulares.

Definicin de Lgica Secuencial
En la lgica secuencial a diferencia de la lgica combinatoria se hace uso de un elemento
bsico llamado flip-flop. El flip-flop es un elemento de memoria que almacena un bit de
informacin. Algunos textos usan este nombre para referirse a los cerrojos, pero en la
mayora de las publicaciones se hace la diferencia entre flip-flop y latch. Este ltimo
trmino es el que traducimos como cerrojo.
Los circuitos lgicos secuenciales se dividen bsicamente en dos grupos: Los circuitos
asincrnicos y los circuitos sincrnicos. Los primeros pueden cambiar los estados de sus
salidas como resultado del cambio de los estados de las entradas, mientras que los circuitos
sincrnicos pueden cambiar el estado de sus salidas en instantes de tiempo discretos bajo el
control de una seal de reloj. En la animacin 5.1.1. se observa la diferencia entre estos dos
tipos de sistemas secuenciales.

Animacin 5.1.1. Tipos de Circuitos Secuenciales.

Cerrojos con Compuertas
Los cerrojos son dispositivos que tienen la capacidad de almacenar un bit de informacin,
as que estos solo pueden estar en dos estados (1 o 0 lgico).
Los cerrojos son dispositivos asincrnicos, debido a que sus salidas cambian en funcin de
las entradas, de forma directamente dependiente del estado de las entradas, en un instante
de tiempo cualquiera.
Existen varios tipos de cerrojos y variaciones de estos que permiten realizar funciones
especficas, dependiendo de la aplicacin. A continuacin veremos algunos de ellos.
Cerrojo S-R (Set-Reset)
Este cerrojo se compone de dos compuertas NOR (ver figura 5.2.1). La operacin de este
circuito puede entenderse mediante el anlisis del estado de las terminales para los posibles
valores de las entradas R y S.

Figura 5.2.1. Cerrojo S-R
Generalmente este cerrojo se representa de una forma mas simplificada. (ver figura 5.2.2).

Figura 5.2.2. Forma simplificada del cerrojo S-R
Para entender el funcionamiento de este dispositivo, analizaremos los estados de las salidas
para cada uno de los casos que se puedan presentar a las entradas de este circuito (ver
figura 5.2.1):
- R=0 y S=0: Asumiendo que Q=0, la salida de la compuerta B es 1, as que la
entrada de la compuerta A es tambin 1, que a su vez obliga a que la salida de la
compuerta A sea 0, lo cual concuerda con la suposicin inicial del estado de la
salida Q. Ahora suponiendo que Q=1, la salida de la compuerta B es 0, al igual que
la entrada de la compuerta A, concluyendo que Q=1. En estas condiciones se
deduce que el estado previo de las salidas Q y Q' no se ve alterado cuando R=0 y
S=0.
- R=0 y S=1: Suponiendo que Q=0, entonces Q'=1. Las entradas a la compuerta B
son S=1 y Q=0, luego la salida de esta compuerta es Q'=0, entonces Q=1. Tenga
presente que las conexiones cruzadas garantizan que las salidas sean siempre
complementarias. Si inicialmente se asume Q=1, las entradas de la compuerta B son
ahora S=1 y Q=1, lo que implica que la salida de esta compuerta es Q'=0 o Q=1.
Si se observan los resultados del anlisis, siempre que R=0 y S=1, la salida Q=1, es
decir, que esta combinacin de seales de entrada sirve para fijar (set) la salida de la
terminal Q al nivel lgico 1.
- R=1 y S=0: supongamos nuevamente que Q=0, lo cual hace Q'=1. Entonces las
entradas de la compuerta A son R=1, Q'=1, lo que ocasiona que la salida de esta sea
Q=0. Es decir, el circuito lgico conserva la salida en Q restaurada (reset) a 0.
Si suponemos inicialmente Q=1, o Q'=0. Entonces las entradas de la compuerta A
se son R=1 y Q'=0, lo que origina que la entrada a la compuerta A sea Q=0. En este
caso, dado que la salida en la terminal Q estaba en 1 lgico, la accin de R=1 y S=0
es restaurar (reset) su valor a 0.
En resumen, podemos decir que esta combinacin de seales de entrada sirve
siempre para restaurar (reset) la salida de la terminal Q al nivel lgico de 0.
S=1 y R=1: la aplicacin del anlisis anterior muestra que en estas condiciones,
ambas compuertas intentan generar un mismo nivel lgico, lo cual hace
indeterminado el estado de las salidas (ver Leccin 3: Estado Metaestable). Lo que
hace que la salida sea indeterminada, es lo que ocurre cuando se suprimen las
entradas. Si se suprime S antes que R, el cerrojo se restaura. Si R se suprime antes
que S, el cerrojo se fija. En consecuencia, en el cerrojo S-R esta condicin de las
entradas no se permite; sin embargo, como se explicar ms adelante, algunas
modificaciones en este circuito pueden eliminar la ambigedad. El funcionamiento
descrito de este circuito puede resumirse en los estados que se indican en la tabla
5.2.1.
S
i
R
i
Q
i+1

0 0 Q
i

0 1 0
1 0 1
1 1 -
Tabla 5.2.1. Estados lgicos del Cerrojo S-R
El subndice i significa el i-simo instante en el que se alimentan las entradas S y R, donde
Q
i
indica el i-simo instante y Q
i+1
indica el siguiente estado de la salida despus de
cambiar las entradas.
En la interactividad 5.2.1 se muestra un cerrojo R-S, en el cual se pueden introducir los
valores de las entradas y verificar su funcionamiento. En las entradas se deben ingresar solo
valores lgicos.

Interactividad 5.2.1. Estados lgicos del Cerrojo S-R
Cerrojo S'- R'
Este cerrojo es otra versin del cerrojo S-R y se compone de dos compuertas NAND como
se muestra en la figura 5.2.3. Su funcionamiento es similar al cerrojo S-R, y se puede hacer
un anlisis similar al que se hizo anteriormente para llegar a los estados que se resumen en
la tabla 5.2.2. Este cerrojo tambin se conoce con el nombre de cerrojo S-R con entrada
activa en bajo.

Figura 5.2.3. Cerrojo S'-R'
Al igual que el cerrojo S-R, este tambin tiene su representacin simplificada (ver figura
5.2.4).


Figura 5.2.4. Representacin simplificada de cerrojo S'-R'
Observe el comportamiento de este cerrojo comparado con el anterior. Las salidas son
similares, pero en este la indeterminacin ocurre cuando S=0 y R=0, y no cuando S=1 y
R=1, como en el cerrojo S-R. (ver la tabla 5.2.2 y comparar con la tabla 5.2.1).
S
i
R
i
Q
i+1

0 0
-

0 1 0
1 0 1
1 1 Q
i

Tabla 5.2.2. Estados lgicos del Cerrojo S'-R'
Cerrojo S-R con habilitacin
Este tipo de cerrojo es una variacin del cerrojo S'-R', con dos compuertas NAND
adicionales a las entradas (ver figura 5.2.5), permite crear una nueva entrada, la cul acta
como habilitador (enable), para permitir que las entradas S y R, acten sobre cerrojo.

Figura 5.2.5. Cerrojo S-R con habilitacin
En la siguiente tabla se resumen los estados de las salidas de este cerrojo para las posibles
entradas.
S
i
R
i
E Q
i+1

0 0 1 Q
i

0 1 1 0
1 0 1 1
1 1 1 -
X X 0 Q
i

Tabla 5.2.3. Estados lgicos del Cerrojo S-R con habilitacin
Como se observa, el funcionamiento es similar al cerrojo S'-R', solo que en este caso se
agreg otra entrada para habilitar la operacin del circuito como cerrojo.
Circuito Integrado cerrojo S-R
El circuito integrado TTL ref. 74LS279 contiene cuatro cerrojos. En este integrado dos de
los cerrojos tienen una entrada doble para S'. Existe otro circuito integrado CMOS ref. 4043
que tiene igualmente cuatro cerrojos. La configuracin de pines de estos dos circuitos
integrados se muestra en la figura 5.2.6

Figura 5.2.6. Configuracin de pines CI-74LS279 y CI-4043
Cerrojo D con habilitacin
Este tipo de cerrojo es similar al anterior, tiene una entrada habilitadora, pero
adicionalmente tiene un inversor entre las terminales S y R, como se observa en la figura
5.2.7.

Figura 5.2.7. Cerrojo D
La entrada D va directamente a la entrada S del cerrojo y su complemento a la entrada R.
Este cerrojo recibe su nombre por la habilidad que tiene para transmitir datos a otro cerrojo,
o simplemente memorizarlos. Adems este cerrojo tiene una caracterstica particular
diferente a los anteriores, que consiste en que en nign momento de presentan estados
indeterminados a las salidas. La razn por la cual se elimina la indeterminacin es debido a
la presencia del inversor.
En la figura 5.2.8 se observa el smbolo que se utiliza para representar este cerrojo.

Figura 5.2.8. Cerrojo D
Los estados de este cerrojo se muestran en la tabla 5.2.4.
D E Q
i+1

0 0 Q
i

0 1 0
1 0 Q
i

1 1 1
Tabla 5.2.4. Estados lgicos del Cerrojo D
Circuito Integrado cerrojo D
El circuito integrado TTL ref. 74LS75 contiene cuatro cerrojos tipo D. Existe otro circuito
integrado CMOS ref. 4042 que tiene igualmente cuatro cerrojos tipo D. La configuracin
de pines de estos dos circuitos integrados se muestra en la figura 5.2.9.

Figura 5.2.9. Configuracin de pines CI-74LS75 y CI-4042


Estado Metaestable
Se define como estado metaestable aquel que ocurre cuando se presentan condiciones
invlidas en los cerrojos, por ejemplo el cerrojo S-R de la leccin anterior tiene un estado
metaestable cuando las entradas son: S=1 y R=1. En esta condicin las salidas intentan
generar un mismo estado lgico (0), lo cual constituye una indeterminacin, porque no se
cumple que Q y Q' sean estados complementarios.
Cuando se pone a 0 cualquiera de las entradas (S o R), el cerrojo vuelve a una condicin
vlida, sin embargo si las entradas se ponen a 0 de forma simultanea el cerrojo entra en un
estado indeterminado, en el cual se presentan oscilaciones a la salida. Cuando el cerrojo
entra en este estado se dice que el cerrojo se encuentra en estado metaestable. En la
interatividad 5.3.1 se indica lo que ocurre cuando se presenta esta condicin para el cerrojo
S-R. Haga click sobre el botn "simular", para ver las seales de salida del cerrojo.

Animacin 5.3.1. Estado Metaestable para el cerrojo S-R



Interruptor Sin Rebote
En los interruptores normales es imposible obtener una transicin de tensin libre de ruido
y sin variaciones, debido a las oscilaciones que se presentan al hacer contacto los
terminales del interruptor, formando de esta manera un rebote en la seal aplicada.
En este fenmeno la seal de salida del interruptor oscila varias veces antes de llegar a un
estado estable. Estas oscilaciones duran unos pocos milisegundos, sin embargo, en algunas
aplicaciones es inaceptable que se presenten estas condiciones y en especial en los circuitos
digitales. En la interactividad 5.4.1, se muestra un circuito para ver el rebote en un
interrutor, haga click sobre el interruptor y sostngalo para observar la seal de salida Vo.

Interactividad 5.4.1. Conmutacin en un interruptor comn
Para evitar las oscilaciones durante el cierre de un interruptor se puede emplear un cerrojo
S'-R' en la configuracin que se muestra en la figura 5.4.2. y analice la forma en que
funciona.

Figura 5.4.2. Conmutacin un interruptor sin rebote
Inicialmente suponga que el interruptor se encuentra en reposo en la posicin (1) lo que
implica que la terminal R del cerrojo se encuentra en 0V o 0 lgico, es decir R=0 y por lo
tanto Q=0. Cuando el interruptor se mueve a la posicin (2) la terminal R del cerrojo se
cambia a 5V o 1 lgico, luego R=1 y Q=1 despus de unos nanosegundos, los cuales
corresponden al tiempo de transicin de las compuertas del cerrojo.
Inevitablemente la conexin mecnica del interruptor en la posicin (2) oscilar, pero
cuando esto ocurre las entradas R y S del cerrojo permanecen en 1 lgico, lo cual hace que
el estado actual permanezca inalterado, es decir, en 1 lgico.
De la misma manera cuando se pasa de la posicin (2) a la (1), ocurre el rebote se sostiene
el ltimo estado, quedando en 0 lgico.
Ejercicio propuesto: Definir la configuracin del mismo eliminador de rebote utilizando un
cerrojo S-R.


lip-Flops
A diferencia de los cerrojos los flip-flops son dispositivos sincrnicos y el estado de sus
salidas es controlado en instantes de tiempo discretos por una seal de reloj. Al igual que
los cerrojos los hay de varios tipos y sus aplicaciones son diversas. Los flip-flops son
dispositivos que responden una seal de reloj durante los cambios de 1 a 0 lgico o de 0 a 1
lgico, segn el tipo de flip-flop.
Para lograr que los flip-flops respondan al cambio de la seal del reloj es necesario
implementar un circuito que detecte el flanco de subida o bajada de la sea de reloj. En la
interactividad 5.5.1 se observa uno de estos circuitos, el cul se conoce como flip-flop D
maestro/esclavo. Un flip-flop de este tipo contiene dos cerrojos, uno de ellos acta como
maestro y el otro como esclavo. Durante la transicin de la seal de reloj de 1 a 0 lgico las
entradas se emplean para determinar la salida del maestro. Cuando la seal de reloj pasa de
0 a 1 lgico el estado del maestro se trasmite al esclavo. De esta forma se garantiza que las
salidas Q y Q' del flip-flop cambien cada vez que ocurre una transicin de 0 a 1 en la seal
de reloj. Haga click sobre la entrada D del cerrojo maestro y observe como se transmite la
informacin al cerrojo esclavo y de este a la salida.

Interactividad 5.5.1. Flip-Flop maestro/esclavo
Flip-Flop S-R (Set-Reset)
Este dispositivo es similar al cerrojo S-R de la leccin anterior, la diferencia radica en la
inclusin de una seal de reloj, que acta como seal de confirmacin del paso de los datos
hacia el circuito principal, el cul se encarga de memorizar los datos. Su representacin en
los sistemas digitales es la que se muestra en la figura 5.5.2. Este tipo de flip-flop no es muy
comercial as que no se darn mas detalles sobre este dispositivo en este curso.

Figura 5.5.2. Flip-flop S-R
Flip-Flop D (Data)
El flip-flop D es muy similar al cerrojo D, y su diferencia radica en que la seal
habilitadora (enable) es reemplazada por el mecanismo del flip-flop maestro/esclavo, el
cual actualiza los datos cada vez que la seal de reloj tiene una transicin de 0 a 1 o 1 a 0
dependiendo del tipo de flip-flop. La estructura del flip-flop D y su representacin
simplificada se muestran en la figura 5.5.3.

Figura 5.5.3. Flip-flop D
La tabla 5.5.1 es la tabla de verdad de este flip-flop, la cual indica que el dado se tranfiere
cuando ocurre un pulso de reloj.
D CLK Q
i+1

0 0
1 1
Tabla 5.5.1. Estados del flip-flop D
La forma de operacin de este flip-flop es muy sencilla:
- Cuando D=0 y se presenta un cambio de 0 a 1 lgico en la entrada de reloj del flip-
flop la salida Q=0.
- Cuando D=1 y se presenta un cambio de 0 a 1 lgico en la entrada de reloj del flip-
flop la salida Q=1.
En otras palabras, el dato en D se transfiere y memoriza en Q cada vez que se presenta una
transicin de 0 a 1 lgico en la seal de reloj (CLK); esta condicin se conoce con el
nombre de transicin por flanco positivo.
La condicin complementaria a la anterior es cuando la transicin es de 1 a 0 lgico, en este
caso se dice que la transicin se da por flanco negativo.
Este flip-flop se puede utilizar para que la transicin se de por flanco negativo, simplemente
basta con poner a la entrada del reloj (CLK) un inversor como en la figura 5.5.4.

Figura 5.5.4. Flip-flop D con inversor en la entrada de reloj
Flip-Flop D Preset-Clear
Este flip-flop es similar al flip-flop D, excepto que este tiene dos entradas asincrnicas
activadas en bajo llamadas Preset y Clear. Estas entradas como su nombre lo indican sirven
respectivamante para poner en 1 y 0 la salida Q del flip-flop independientemente de la seal
de reloj. La configuracin de este flip-flop y su representacin abreviada se describen en la
figura 5.5.5.

Figura 5.5.5. Flip-flop D Preset-Clear
La gran parte de los Circuitos Integrados que contienen flip-flops vienen con entradas
asncrnicas de inicializacin y borrado (Preset y Clear), comunmente representados con
las abreviaturas PRE y CLR.
Flip-Flop J-K
Este flip-flop es una versin modificada del flip-flop D, y su aplicacin es muy difundida en
el Anlisis y Diseo de Circuitos Secuenciales. El funcionamiento de este dispositivo es
similar al flip-flop S-R, excepto que en este no se presentan indeterminaciones cuando sus
dos entradas se encuentran en 1 lgico, si no que el flip-flop entra en un modo de
funcionamiento llamado modo complemento, en el cual, la salida Q cambia a su estado
complementario despus de cada pulso de reloj. La configuracin de este flip-flop y su
representacin abreviada se muestran en la figura 5.5.6. y en la tabla 5.5.2 se indican los
estados de entrada y salida de este flip-flop.

Figura 5.5.6. Representacin del flip-flop J-K
Note que las entradas J y K controlan el estado de este flip-flop de la misma manera que en
el flip-flop D. Cuando las entradas son J=1 y K=1 no generan un estado indeterminado a la
salida, sino que hace que la salida del flip-flop cambie a su estado complementario.
J K CLK Q
i+1

0 0 Q
i

1 0 1
0 1 0
1 1 Q
i
'
Tabla 5.5.2. Estados del flip-flop J-K
Flip-Flop T (Toggle)
Este flip-flop recibe su nombre por la funcin que realiza (Toggle) cambiando el estado de
la salida por su complemento. Es una modificacin del flip-flop J-K limitndolo a cumplir
exclusivamente esta funcin, la cual se logra uniendo las terminales J y K como se muestra
en la figura 5.5.7.

Figura 5.5.7. Flip-flop T
La tabla de verdad de este flip-flop se limita a las lneas 1 y 4 del flip-flop J-K.
T CLK Q
i+1

0 Q
i

1 Q
i
'
Tabla 5.5.3. Estados del flip-flop T


lip-Flops Construidos con Compuertas de Transmisin e Inversores
En la leccin anterior se estudi la composicin interna de los flip-flops, en donde se
observ que las compuertas lgicas son la base para la construccin de estos dispositivos,
sin embargo, es posible construir los flip-flops de otra manera, mediante el uso de
compuertas de transmisin e inversores, de los cuales se dar una introduccin sobre su
funcionamiento.
Los cerrojos y flip-flops generalmente se contruyen empleando dos tipos de tecnologa:
- Tecnologa TTL: Logica de Transistor a Transistor. Esta tecnologa, hace usos de
resistencias, diodos y transistores bipolares para obtener funciones lgicas estndar.
- Tecnologa CMOS: Logica MOS Complementaria. Esta tecnologa, hace uso
bsicamente de transistores de efecto de campo NMOS Y PMOS.
Cuando se habla de compuertas de transmisin e inversores generalmente se trata de
circuitos construidos con tecnologa CMOS, sin embargo, en otras tecnologas hay
disponibles dispositivos que realizan la misma funcin. En esta leccin se har referencia a
los conceptos segun tecnologa CMOS.
Inicialmente se ver que son las compuertas de transmisin e inversores y al final de la
leccin se indicaran dos modelos de flip-flops que se pueden construir con estos dos
componentes.
Inversores
Existen diversas formas de construir un inversor, ya sea con transistores bipolares, o con
trnasistores de tecnologa MOS. Dentro de esta ltima tecnologa encontramos los
inversores NMOS y PMOS.
I nversor NMOS
En la figura 5.6.4 se observa una forma de implementar este dispositivo mediante el uso de
un transistor NMOS

Figura 5.6.4. Inversores NMOS
Cuando la tensin de la compuerta (V
ENT
) esta en alto (1 lgico) el transistor entra en
conduccin, haciendo que el transistor se ponga en baja impedancia dando como resultado
que la salida (V
SAL
) se establesca en bajo (0 lgico).
En los integrados generalmente la resistencia es reemplazada por un transistor. La razn por
la cual se reemplaza se debe bsicamente a que la resistencia ocupa mas espaci dentro del
encapsulado que un transistor, por la cual se prefiere emplear unicamente trasistores para
construir los inversores. En la figura 5.6.4 se indica la configuracin del inversor
empleando dos transistores MOS de canal N.
I nversor CMOS
Este tipo de inversor construido con lgica Complementaria MOS. tiene una ventaja con
relacin al anterior, y se debe a que no consume corriente en ninguno de sus dos estados
(alto o bajo). En la figura 5.6.5 se muestra la configuracin del inversor CMOS.

Figura 5.6.5. Inversor CMOS
Como es de observar los trasistores operan de forma complementaria. Cuando la tensin de
entrada se encuentra en alto (1 lgico), el transistor NMOS entra en estado de conduccin y
el transistor PMOS entra en corte, haciendo que la salida quede en bajo (0 lgico). La
situacin inversa ocurre cuando la tensin de entrada se encuentra en bajo.
Compuertas de Transmisin
La compuerta de transmisin es un dispositivo empleado como interruptor. Generalmente
se emplean transistores para cumplir la funcin de interrupcin y existen compuertas en
tecnologa NMOS, PMOS y CMOS. En la figura 5.6.6 se muestra la configuracin interna
de una cumpuesta CMOS. de Para mas detalles sobre el funcionamiento de este
funcionamiento refierase a la Leccin: Compuerta de Transmisin CMOS del Capitulo 9.

Figura 5.6.6. Compuertas de transmisin CMOS
Flip-Flops
Existen varias formas de disear y construir flip-flops segn lo visto en las lecciones
anteriores en los dispositivos vistos en las secciones anteriores. Entre ellas los flip-flop
pueden construirse con compuertas lgicas, mediante la utilizacin de los cerrojos maestro
y esclavo vistos en la Leccin: Flip-flops de este captulo, sin embargo, es posible construir
flips-flops usando compuertas de transmisin e inversores, que funcionan de forma similar
controlando y almacenando datos. En la figura 5.6.7 se ilustra el circuito de un flip-flop D
maestro/esclavo construido con compuertas de transmisin e inversores CMOS. Por
comodidad las compuertas de transmisin CMOS se muestran en su representacin
abreviada.

Figura 5.6.7. Flip-flop D construido con compuertas de transmisin e inversores.
En la figura 5.6.8 se ilustra otra configuracin para este flip-flop que fsicamente en el chip
ocupa menos espacio pero que maneja tiempos de propagacin mas prolongados dentro del
circuito.

Figura 5.6.8. Flip-flop D con inversores CMOS
Los flip-flops construidos de esta forma tienen algunas ventajas con respecto a aquellos
contruidos con compuertas lgicas, entre las que se pueden mencionar las siguientes:
- El tamao de los circuitos de los flip-flops construidos con compuertas de
transmisin e inversores es mas reducido.
- La velocidad de propagacin de los datos es menor.
- Permiten integrar mas dispositivos en un mismo circuito integrado.
- Disipan menos potencia durante su operacin.
- El costo de diseo y construccin es menor.
Se plantea como ejercicio para esta leccin hacer un anlisis sobre el funcionamiento de
estos flip-flops y comprobar como se transmite la informacin desde D hasta Q.


Contadores y Registros
En este capitulo se ver como pueden emplearse los flip-flops y las compuertas lgicas para
obtener distintos circuitos secuenciales, como contadores y registros. Adems se
presentarn aplicaciones prcticas para ilustrar la forma en que estos circuitos lgicos
secuenciales pueden ser utilizados en los sistemas digitales.
Los contadores digitales son elementos importantes de muchos sistemas digitales. Adems
de efectuar la funcin obvia de contar, tienen la capacidad de integrarse en equipos para la
medicin digital de cantidades como tiempo, velocidad, frecuencia y distancia, entre otras.
Los contadores encuentran tambin usos muy difundidos en la instrumentacin digital.
Los registros son dispositivos que almacenan temporalmente un conjunto de datos en forma
de palabras binarias. Por lo general tienen tamaos de 8, 16, o 32 bits, y se encuentran
conformados por un conjunto de flip-flops, en los cuales se almacena la informacin. Estos
dispositivos son empleados en los computadores para almacenar temporalmente datos, con
los cuales se realizan operaciones binarias.



Contadores de Propagacin
Los contadores digitales o binarios en esencia son un grupo de flip-flops dispuestos de tal
manera que sus salidas proporcionan una secuencia determinada como respuesta a los
acontecimientos que ocurren a la entrada del reloj. Estos acontecimientos pueden ser por lo
general pulsos de reloj (sincrnicos) o acontecimientos aleatorios (asincrnicos)
alimentados como entradas por la terminal de reloj de los flip-flops. Los contadores de
propagacin se basan en este ltimo principio para generar secuencias binarias que cambian
como respuesta a eventos.
Para conformar un contador de n bits solo basta tener n flip-flops, uno para cada bit de
informacin. A continuacin se dar una descripcin sobre la estructura y funcionamiento
de los contadores de propagacin mas comunes en lgica secuencial.
Contador de propagacin ascendente
El flip-flop T (ver Captulo 5: Cerrojos y flip-flops), tiene especial aplicacin en los
contadores, debido a la habilidad que tienen para cambiar a su estado complementario,
despus de un evento de reloj.
La configuracin del circuito de la Animacin 6.1.1 corresponde a un contador ascendente
de 4 bits disparado por flanco negativo. Note que todas las entradas del los flip-flops T
estn en 1, con lo cual el estado de los flip-flops se complementa despus de cada cambio
de 1 a 0 lgico a la entrada de reloj de cada uno de ellos. La Tabla 6.1.1 muestra los estados
de salida de este circuito.

Animacin 6.1.1. Contador de propagacin ascendente
Nmero de pulsos Q
3
Q
2
Q
1
Q
0

0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
... ... ... ... ...
15 1 1 1 1
16 0 0 0 0
17 0 0 0 1
... ... ... ... ...
Tabla 6.1.1. Estados contador ascendente
Observe la forma en que opera este circuito. Los pulsos de reloj se aplican nicamente al
flip-flop A, as que la salida de este flip-flop se complementar cada vez que haya una
transicin negativa en la entrada de reloj.
La salida del flip-flop A se aplica directamente a la entrada de reloj del flip-flop B, de tal
forma que la salida de este flip-flop se complementa cada vez que su entrada de reloj pasa
de 1 a 0 lgico. De forma similar se comportan los flip-flops C y D cambiando su estado
cada vez que reciben una transicin negativa en sus respectivas entradas de reloj.
Las salidas de los flip-flops D,C,B y A representan un numero binario de 4 bits, siendo D el
bit mas significativo y A el menos significativo.
Este contador cuenta en forma ascendente desde 0000 hasta 1111, es decir que tiene 16
estados diferentes (2
4
=16). En electrnica digital, existe una notacin que define el nmero
de estados de un contador, designada por la sigla MOD mas el el numero de estados, por
esta razn se dice que es un contador MOD16. Este tipo de contadores actuan como
divisores de frecuencia. Si se hace un anlisis sobre la frecuencia de las seales de salida de
los flip-flops se puede observar que la seal Q
3
tiene una frecuencia dada por la siguiente
expresin:

donde f
CLK
corresponde a la frecuencia de la seal del reloj. De igual forma las frecuencias
de las salidas de los dems flip-flops estaran dadas por las siguientes expresiones:

Se plantea como ejercicio dibujar la seal de reloj y las seales de salida de los flip-flops
para confirmar estos resultados.
Este contador se puede modificar para que opere a cualquier nmero MOD entre 1 y 16. De
forma general un contador de n bits se puede modificar para cualquier nmero MOD2
n
, y
para lograrlo es necesario utilizar la entrada asincrnica de borrado CLR de los flip-flops,
como veremos a continuacin.
Contadores con nmeros MOD < 2
n

Los contadores bsicos pueden ser modificados para producir nmeros MOD < 2
n
,
permitiendo que el contador omita estados que normalmente hacen parte de la secuencia de
conteo. La forma mas usual para lograr esto se puede ver en la Figura 6.1.2, la cual
corresponde a un contador de 4 bits MOD10. Este contador es conocido tambin como
contador decadal.

Figura 6.1.2. Contador decadal (MOD10)
Asumiendo que la compuerta NAND no estuviera presente, el contador sera MOD16, sin
embargo la presencia de esta compuerta altera el funcionamiento normal cuando las salidas
Q
3
y Q
1
que van a la compuerta son 1. Esta condicin ocurrir cuando el contador pase del
estado 1001 (9) al 1010 (10), haciendo que las entradas asncronas CLR de los flip-flops
sean 0 y por tanto el contador pase al estado 0000. En la Tabla 6.1.2, se resumen los estados
de este contador. En el momento que el contador llega al estado 1001 y ocurre una nueva
transicin en la entrada de reloj (CLK), se presenta el estado 1010 (10) de forma temporal,
y su duracin depende del tiempo de propagacin de la compuerta NAND. En la Figura
6.1.3 se observa el estado temporal entre los estados 1001 y 0000.
Nmero de pulsos Q3 Q2 Q1 Q0
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
... ... ... ... ...
9 1 0 0 1
10 0 0 0 0
11 0 0 0 1
... ... ... ... ...
Tabla 6.1.2. Estados del contador decadal

Figura 6.1.3. Estados de transicin del contador de propagacin MOD10
Contador de propagacin descendente
Los contadores descendentes cuentan en forma inversa, por ejemplo de 1111 hasta 0000.
En la Figura 6.1.4 se observa un contador descendente de 4 bits. Note que este contador es
similar al ascendente excepto que las salidas ahora son su complemento.

Figura 6.1.4. Contador descendente
En la tabla 6.1.3 se muestran los estados de las salidas de los flip-flops, donde se observa
que despus de cada pulso se decrementa la secuencia binaria representada por las salidas
Q
3
a Q
0.

Nmero de pulsos Q3 Q2 Q1 Q0
0 1 1 1 1
1 1 1 1 0
2 1 1 0 1
... ... ... ... ...
15 0 0 0 0
16 1 1 1 1
17 1 1 1 0
... ... ... ... ...
Tabla 6.1.3. Estados del contador descendente
Ejercicio: Dibujar dos contadores binarios de 4 bits (ascendente y descendente) utilizando
flip-flops T que respondan al flanco negativo del la seal del reloj.


Contadores Sincrnicos
El inconveniente que se presenta con los contadores de propagacin de la leccin anterior,
consiste bsicamente en que no todos los flip-flops cambian simultaneamente con la seal
del reloj. Los contadores asincrnicos deben esperar que la seal se propage desde el
primer flip-flop que representa el bit menos significativo hasta el flip-flop del bit mas
significativo.
En los contadores sincrnicos a diferencia de los contadores de propagacin o asncronicos,
la seal de reloj se aplica simultneamente a todos los flip-flops. Estos contadores por lo
general tienen mas circuitera que los contadores de propagacin y estn conformados por
flip-flops J-K. Para entender el funcionamiento de este tipo de contadores es necesario
observar con atencin la secuencia para determinar los componentes que se deben agregar
(generalmente flip-flops y compuertas).
Analicemos el funcionamiento del contador de 3 bits que se muestra en la figura 6.2.1, y
cuyos estados se resumen en la tabla 6.2.1. Asumamos que inicialmente el contador se
encuentra en el estado 000. Note que el estado de la salida Q
0
debe cambiar despus de
cada transicin positiva del reloj (CLK), as que el flip-flop F0 debe tener sus entradas J y K
en 1 lgico para que cumpla esta funcin, tal como se muestra en la figura 6.2.1.

Figura 6.2.1. Contador ascendente sincrnico de 3 bits
Nmero de pulsos Q
2
Q
1
Q
0

0 0 0 0
1 0 0 1
2 0 1 0
3 0 1 1
4 1 0 0
5 1 0 1
6 1 1 0
7 1 1 1
8 0 0 0
Tabla 6.2.1. Estados del contador sincrnico ascendente de 3 bits
Ahora note que la salida Q
1
cambia a su estado complementario cada vez que Q
0
=1 (ver
tabla 6.2.1), as que las entradas J y K del flip-flop F1 deben estar contadas a la salida Q
0
.
De esta forma cada vez que Q0=1 y ocurra una transicin positiva del reloj el flip-flop
cambiara de estado tal como se observa en la secuencia.
Finalmente nos resta analizar el estado de la salida Q
2
, para lo cual se debe obsevar
nuevamente la tabla 6.2.1. Note que Q
2
cambia a su estado complementario cada vez que
Q
1
y Q
0
son 1, as que la forma de implementarlo en el contador es conectado Q
1
y Q
0
como
entradas a una compuerta AND y cuya salida debe ir a las entradas J y K del flip-flop F2.
Obseve que este flip-flop queda en estado complemento (toggle), cada vez que se presente
esta condicin y ocurra una transicin positiva en el reloj (CLK).
En la Animacin 6.2.2 se ilustra el funcionamiento de un contador de 4 bits ascendente
sincronico, el opera de forma similar la contador de tres bits. observe como los flip-flop
cambian de estado cada vez que sus entradas J y K son 1 y ocurre una transicin positiva en
la seal de reloj.

Animacin 6.2.2. Contador ascendente sincrnico de 4 bits
Nmero de pulsos Q3 Q2 Q1 Q0
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
... ... ... ... ...
15 1 1 1 1
16 0 0 0 0
Tabla 6.2.2. Estados del contador sincrnico ascendente
Se puede hacer un anlisis similar al anterior para entender el funcionamiento de este
contador, sin embargo, observe que la secuencia de 3 bits es parte de la secuencia para 4
bits, as que solo basta agregar un flip-flop JK y una compuerta AND que ponga el flip-flop
F3 en modo complemento cada vez que Q
2
, Q
1
y Q
0
son 1, para lograr que el contador
genere finalmente la secuencia de la tabla 6.2.2.
Al igual que el contador de propagacin de la leccin anterior, el contador sincrnico se
puede modificar para cambiar su nmero MOD, mediante el uso de compuertas NAND y las
entradas asincrnicas CLR de los flip-flops. En la Figura 6.2.3 se observa como se puede
convertir este contador MOD16 a MOD10, agregando simplemente una compuerta NAND
de dos entradas.

Figura 6.2.3. Componente adicional para convertir un contador MOD16 a MOD10



Ejemplos de Contadores en Circuito Integrado
En el comercio existen varios contadores en circuito integrado que aparte de realizar la
funcin de generar secuencias binarias, tiene otras funciones adicionales que generalmente
tienen que ver con la configuracin y modo de funcionamiento. Entre las funciones que se
pueden encontrar en estos cirsuitos integrados se encuentran opciones de seleccin de
secuencia ascendente o descendente, borrado as como inicializacin entre otras.
A continuacin se presenta una lista de algunos contadores en circuito integrado de uso
difundido en Electrnica Digital, con una descripcin detallada de sus pines.
Nombre Imagen Terminales Descripcin
Contador
Binario
Decadal
Up/Down

PE
(Preset Enable): Esta entrada se
utiliza para cargar los datos Pi en las
salidas Qi
P0...P3
(Presets): Entradas de fijacin. Se
utilizan en forma conjunta con PE
Q0...Q3 (Quits): Salidas binarias
C.I'
(Carry In). Entrada para detener la
secuencia. En 0 Cuenta, en 1 se
detiene
C.O'
(Carry Out). Salida para indicar
rebasamiento. 0 sin acarreo, 1 con
acarreo
B/D
(Bin/Dec): Seleccin del tipo de
funcionamiento. 1 Binario, 0 decadal
U/D
(Up/Down): Entrada de seleccin de
secuencia. 1 Ascendente, 0
descendente
Vdd, Gnd Alimentacin
Contador
Binario (14
bits)

Q1 ... Q13 (Quits): Salidas Binarias
RES (Reset): Entrada de Borrado
INP
(Input): Entrada Asincrnica para
incremento del contador
Vdd, Gnd Alimentacin
Contador
Binario (12
bits)

Q0 ... Q11 (Quits): Salidas binarias
CLK (Clock): Entrada de reloj
RES (Reset): Entrada de Borrado
Vdd, Gnd (Voltaje, Ground): Alimentacin
Contador
Decadal (4
bits)

CLR'
(Clear): Entrada de borrado, en cero
inicializa todas las salidas a cero
CLK (Clock): Entrada de Reloj
A, B, C, D Entradas de Datos Paralelo
ENP, ENT Entradas de Sostenimiento
LD'
(Load'): Entrada de habilitacin de
carga de datos. Se usa de forma
conjunta con las entradas A, B, C, D
QA, QB,
QC, QD
(Quits): Salidas
RCO
Salida de Rebasamiento. Cuando el
contador llega al ltimo dgito se
genera un acarreo (1)
Contador
Binario (4
bits)

CLR'
(Clear): Entrada de borrado, en cero
inicializa todas las salidas a cero
CLK (Clock): Entrada de Reloj
A, B, C, D Entradas de Datos Paralelo
ENP, ENT Entradas de Sostenimiento
LD'
(load): Entrada de habilitacin de
carga de datos. Se usa de forma
conjunta con las entradas A, B, C, D
QA, QB, (Quits): Salidas
QC, QD
RCO
Salida de Rebasamiento. Cuando el
contador llega al ltimo dgito se
genera un acarreo (1)
Contador
Decadal
Up/Down (4
bits)

D0, D1, D2,
D3
Entradas Paralelo
CTEN'
(Count Enable'): Entrada de
habilitacin para el contador
D/U'
(Down/Up'): entrada de seleccin de
la secuencia, ascendente o
descendente
Q0, Q1, Q2,
Q3
(Quits): salidas binarias
LD'
(load): entrada de carga de los datos
presentes en D0...D3
M/m
(Max/\): salida de sealizacin de
rebasamiento del contador. En 1
indica que hay carry al rebasar el
nmero 1001 en modo ascendente o
cuando alcanza el 0000 en modo
descendente.
RCO
Salida de propagacin para conexin
en cascada con otros contadores
CLK (Clock): entrada de reloj
VDD, GND Alimentacin
Tabla 6.3.1. Contadores en Circuito Integrado
Se plantea como ejercicio, adquirir algunos de estos circuitos integrados comerciales. y
verificar su funcionamiento.

Circuitos Integrados para Relojes
Como hemos notado en los dos captulos anteriores los flip-flops, los contadores y los
registros necesitan recibir una seal de reloj para poder cumplir su funcin en los circuitos
secuenciales. Los circuitos mas conocidos para desempear la funcin de reloj son los
llamados osciladores o generadores de pulso.
Los osciladores son circuitos que cambian el estado de sus salidas permanentemente entre
dos estados lgicos (1 lgico y 0 lgico). Por esta razn estos circuitos son tiles para
generar seales de reloj para los Circuitos Secuenciales Sincrnicos.
Existen varios osciladores que se pueden construir para generar seales de reloj, mediante
el uso resistencias, condensadores, inversores y compuertas. En la Figura 6.6.1 se observan
algunas configuraciones que se pueden implementar haciendo uso de estos elementos. El
esquema de la figura 6.1.1 (a), es un circuito generador de pulsos sin rebote y opera de
forma manual. En la posicin (1) la salida ser 0 lgico y cuando el interruptor se ubica en
la posicin (2) la salida es 1 lgico.
En las figuras (b) y (c) se muestran dos circuitos generadores de pulso que se pueden
implementar usando inversores y compuertas. La frecuencia de oscilacin ed setoas
circuitos depende bsicamente de los valores de la resistencia y el condensador.
Para este tipo de circuitos se recomienda el uso de circuitos CMOS de la serie B, ya que
estos tienen tiempos de conmutacin menores.

Figura 6.6.1. Circuitos generadores de clock
A continuacin se estudiaran dos tipos de osciladores cuyo uso es muy difundido en
Electrnica Digital. Se mencionaran los aspectos bsicos sobre su montaje sin tratar de
explicar su funcionamiento, dejando como ejercici para el estudiante analizar su
operacin.
Oscilador con Disparador de Schmitt
En la Figura 6.6.2 se observa la configuracin de este oscilador. La salida V
o
es una onda
aproximadamente cuadrada y su forma depende de los valores de R y C. En la Tabla 6.1.1
se observa la relacin entre los valores de R y C con la frecuencia para tres tipos de
integrados con inversores tipo Schmitt, junto con los rangos de valores que debe tener R
para que el circuito oscile.

Figura 6.6.2. Oscilador con disparador de Schmitt
Integrado Frecuencia Valor de R
7414 0.8/RC R s 500O
74LS14 0.8/RC R s 2O
74HC14 1.2/RC R s 10MO
Tabla 6.6.1. Frecuencia de oscilacin segn R y C
Multivibrador astable con CI-555
El CI-555 es un dispositivo de tecnologa TTL que funciona de varios modos. En la Figura
6.6.3 observamos la manera de conectar los componentes al Circuito Integrado de forma
que opere como un Multivibrador Astable. La frecuencia de oscilacin de la seal de salida
depende de los valores de las resistencias R
A
, R
B
y C.

Figura 6.6.3. Multivibrador astable con CI -555
La seal de salida de este circuito es una onda cuadrada de las caractersticas que se indican
en la Figura 6.6.4, donde los tiempos t
1
y t
2
estn dados por las siguientes expresiones:


Figura 6.6.4. Seal de salida del CI-555
El periodo y al frecuencia de esta senal estan dados por:

Para que el circuito oscile es necesario que se se cumplan ciertos rangos para los valores de
las resistencias y el condensador, los cuales se relacionan a continuacin.




Anlisis y Diseo de Circuitos Secuenciales
El Anlisis y Diseo de Circuitos Secuenciales se encuentra estrechamente relacionado con
el control secuencial, denominado tambin control lgico o control binario. En los sistemas
de control secuencial las entradas y las salidas son de tipo binario y determinan una serie de
pasos para la operacin de un proceso.
Las entradas por lo general son: pulsadores, interruptores, microinterruptores, fines de
carrera o detectores de proximidad. Las salidas pueden ser: Vlvulas solenoides, cilindros
neumticos, contactores para arranque y parada de motores, pilotos de sealizacin,
alarmas, etc.
Cuando el sistema de control secuencial es pequeo se realiza con circuitos digitales
combinatorios y secuenciales. Cuando es grande se realiza con PLCs (Controladores
Lgicos Programables), microcomputadores, microprocesadores especiales para control
secuencial y por software en PC.
En este capitulo se mostraran las metodologas bsicas para el Diseo de Circuitos
Secuenciales y su aplicabilidad en dispositivos secuenciales para funciones especficas.


Teora de Mquinas de Estado (FSM)
La teora de mquinas de estado es el nombre con el que se conocen los mtodos de
Anlisis y Diseo de Circuitos Secuenciales Sincrnicos. Esta leccin constituye una
introduccin al tema del captulo, donde se definir lo que son las mquinas de estado y los
conceptos bsicos para entender la metodologa de Anlisis y Diseo de Circuitos
Secuenciales.
Las mquinas de estado son circuitos secuenciales que se encuentran constituidos por una
etapa combinacional y una etapa de memoria, relacionadas de tal forma que conforman un
sistema secuencial para algn propsito especial. Los registros y contadores con entradas
asincrnicas son ejemplos de este tipo de sistemas secuenciales.
Mquinas de Estado de Mealy y Moore
Los circuitos secuenciales se clasifican dentro de una categora conocida como mquinas de
estado, de la cual se distinguen comnmente dos tipos:
- Mquina de Mealy: En esta mquina de estados las salidas se encuentran
determinadas por el estado interno del sistema y por las entradas no sincronizadas
con el circuito. El diagrama de bloques representativo de esta mquina se muestra
en la figura 7.1.1. donde se observa que las salidas del sistema son tanto sincrnicas
como asincrnicas.

Figura 7.1.1. Maquina de estados de Mealy
- Mquina de Moore: Las salidas solo dependen del estado interno y de cualquier
entrada sincronizada con el circuito, como se observa en la figura 7.1.2. donde las
salidas del sistema son unicamente sincrnicas. Un ejemplo de este tipo de
mquinas de estado son los contadores (ver captulo 6).

Figura 7.1.2. Maquina de estados de Moore
Los circuitos secuenciales se caracterizan por tener una etapa combinacional y otra de
memoria conformada por flip-flops. En la figura 7.1.3. se puede observar un ejemplo
particular de este tipo de circuitos, el cual corresponde a una Maquina de estado de Mealy.
Observe que hay salidas que dependen de la etapa de memoria y hay una salida que
depende directamente de la etapa combinatoria.

Figura 7.1.3. Circuito Secuencial de ejemplo
Con base en el circuito de la figura 7.1.3. se dar una descripcin de las herramientas
bsicas que son empleadas para el Anlisis y Diseo de Circuitos Secuenciales. Entre estas
herramientas se encuentran las ecuaciones lgicas, las los diagramas de estado, las tablas de
estado, las tablas de transicin y los mapas de Karnaugh.
Ecuaciones Lgicas
Las ecuaciones lgicas son funciones que definen la relacin existente entre los estados de
entrada y los estados de salida del sistema. Para determinar las ecuaciones lgicas de la
mquina de estados de la figura 7.3.1. inicialmente se deben identificar los estados
siguientes. Estos estados corresponden a aquellos que ocurren despus de una transicin en
la seal de reloj de los flip-flops. Recuerde que para los flip-flops tipo D el estado siguiente
(Q
i+1)
es igual al estado de la entrada D. Teniendo en cuenta lo anterior las ecuaciones
lgicas para los flip-flops A y B del circuito de la figura 7.1.3 seran las siguientes:
A = D
A
= AX + BX
B = D
B
= AX
La salida Y esta dada por:
Y = (A + B)X
Observando esta ltima ecuacin se concluye que la salida (Y) es funcin del estado
presente del sistema (A y B) y de la entrada asincrnica (X).
Las ecuaciones lgicas en los circuitos secuenciales tienen una estructura formada por dos
clases de estados:
- Los estados siguientes, los cuales se agrupan al lado izquierdo de la expresin y
representan las variables dependientes del sistema. El estado de estas variables
cambia en el momento que ocurra un transicin en la seal de reloj.
- Los estados actuales y entradas del sistema. Agrupados al lado derecho de la
exprexin, constituyen las variables inpendientes, las cuales pueden o no cambiar en
sincrona con el sistema.
Cuando las ecuaciones de estado contienen varios trminos, se pueden simplificar
empleando metodologas de reduccin de trminos como Algebra de Boole, Mapas de
Karnaugh, o mediante el Algoritmo de Quine-McCluskey , las cuales fueron presentadas en
el Capitulo 2.
Tablas de Estado
Una tabla de estado es un listado que contiene la secuencia de los estados de entradas,
estados internos y salidas del sistema, considerando todas las posibles combinaciones de
estados actuales y entradas. Las tablas de estado por lo general se divididen en tres partes:
estados actuales, estados siguientes y salidas, tal como se muestra en la tabla 7.1.1.
Estados actuales Entrada Estados siguientes Salida
A B X A B Y
0 0 0 0 0 0
0 0 1 0 1 0
0 1 0 0 0 0
0 1 1 1 1 1
1 0 0 0 0 0
1 0 1 1 0 1
1 1 0 0 0 0
1 1 1 1 0 1
Tabla 7.1.1. Tabla de estado (circuito Figura 7.1.3)
La tabla de estado para un circuito secuencial con m flip-flops y n entradas tiene 2
m+n
filas.
El estado siguiente tiene m columnas, y el nmero de columnas depende del nmero de
salidas.
Existe una forma mas conveniente de organizar la informacin en la tabla de estado, la cual
se muestra en la Tabla 7.1.2, donde los estados se agrupan de tal modo que la tabla se
puede traducir a un diagrama de estados. Al igual que la tabla anterior esta tiene tres
secciones: estados actuales, estado siguientes y salidas, sin embargo los estados se agrupan
dependiendo del valor de las entradas. La seccin de estados actuales agrupa los estados
que ocurren antes de una transicin en la seal de reloj, la seccin de estados siguientes
lista aquellos que ocurren despus de la transicin del reloj y la seccin de salidas rene los
estados que se dan en el mismo instante de los estados actuales.
Estado Actual
Estado Siguiente Salida
X=0 X=1 X=0 X=1
AB AB AB Y Y
00 00 01 0 0
01 00 11 1 0
10 00 10 1 0
11 00 10 1 0
Tabla 7.1.2. Tabla de estado (forma simplificada)
Haciendo un anlisis de la operacin del circuito de la figura 7.1.3. se puede observar lo
siguiente: Cuando la variable X=0 los estados actuales A y B cambian a 0 despus de la
transicin de reloj , y cuando X=1, los estados de las salidas se comportan tal como se
resume en la tabla 7.1.2. Se plantea como ejercicio verificar la informacin de la tabla.
Diagramas de Estado
Un diagrama de estados es una representacin grfica que indica la secuencia de los estados
que se presentan en un circuito secuencial, teniendo en cuenta las entradas y salidas. El
diagrama se forma con crculos y lneas. Los circulos representan los estados del circuito
secuencial y cada uno de ellos contiene un nmero que identifica su estado. Las lneas
indican las transiciones entre estados y se marcan con dos nmeros separados por un (/),
estos dos nmeros corresponden a la entrada y salida presentes antes de la transicin. A
manera de ejemplo observe la lnea que une los estados 00 y 01 en el diagrama de estado de
la figura 7.1.4. Esta lnea marcada como 1/0 indica que el circuito secuencial se encuentra
en el estado 00 mientras la entrada X=0 y la salida Y=0, y que despus de que ocurra una
transicin en la seal de reloj el estado cambia a 01.

Figura 7.1.4. Diagrama de estados correspondiente a la Tabla 7.1.2
Las lneas que salen y regresan al mismo crculo indican que no hay cambio en el estado,
cuando se presentan la entrada y salida indicados.
Tablas de Transicin de flip-flops
Las tablas de transicin se usan en conjunto con las de estado y representan la tabla de
verdad de los flip-flops con los cuales se desea implementar el circuito secuencial. La tabla
contiene los estados actuales y siguientes segn el estado de las entradas de los flip-flops.
La tabla 7.1.3 corresponde a la tabla de transicin del flip-flop JK.
Transiciones de Salida Entradas al flip-flop
Q
i
Q
i+1
J K
0 0 0 X
0 1 1 X
1 0 X 1
1 1 X 0
Tabla 7.1.3. Tabla de transicin del flip-flop JK
En la tabla, Q
i
corresponde al estado actual y Q
i+1
al estado siguiente, J y K son las entradas
de los flip-flops. La informacin sombreada en la tabla se interpreta de la siguiente forma:
cuando el estado presente de la salida Q=0 y las entradas J=1 y K=X (X indica una
condicin de no importa, 1 o 0), despus de un pulso de reloj en el flip-flop la salida cambia
al estado siguiente Q=1.
Mapas de Karnaugh
Generalmente la tablas de estado y de transicin de los flip-flops se fusionan en una sola
para agrupar la informacin de tal forma que permitan construir los Mapas de Karnaugh
para simplificar las funciones lgicas. La tabla 7.1.4 corresponde a una tabla de estado de
un contador de tres bits con flip-flops JK. Observe que esta tabla incluye las entradas J y K
para cada una de la transiciones (estado actual a estado siguiente). Las regiones sombreadas
en la tabla indican que el estado Q
i
cambia estando presentes las entradas J
i
y K
i

correspondientes despus de una transicin del reloj.
Estado Actual Estado Siguiente Entradas de los flip-flop
Q2 Q1 Q0 Q2 Q1 Q0 J2 K2 J1 K1 J0 K0
0 0 0 0 0 1 0 X 0 X 1 X
0 0 1 0 1 0 0 X 1 X X 1
0 1 0 0 1 1 0 X X 0 1 X
0 1 1 1 0 0 1 X X 1 X 1
1 0 0 1 0 1 X 0 0 X 1 X
1 0 1 1 1 0 X 0 1 X X 1
1 1 0 1 1 1 X 0 X 0 1 X
1 1 1 0 0 0 X 1 X 1 X 1
Tabla 7.1.4. Tabla de estado y transicin de un contador de 3 bits
Los Mapas de Karnaugh se emplean para definir la lgica de las entradas de los flip-flops y
se debe hacer uno para cada una de las entradas. La figura 7.1.5 corresponde al Mapa de
karnaugh de la entrada J
1
. de la tabla de estado 7.1.4.

Figura 7.1.5. Mapa de Karnaugh para el estado J
1

Observe que cada celda en el mapa representa uno de los estados actuales de la secuencia
en la tabla de estado. Una vez asignados todos los estados posibles a cada celda en el Mapa
de Karnaugh se procede a simplicar y deducir las exprexiones lgicas. En la figura 7.1.5 se
observa que la expresin correspondiente a la entrada J
1
es:
J
1
= Q
0

Esta expresin indica que en el circuito lgico la salida Q
0
debe ir conectada a la entrada J
1
.
En la siguiente leccin se explicara de una forma detallada el procedimiento para el Diseno
de Circuitos Secuenciales.


Anlisis y Diseo de Circuitos Secuenciales Sincrnicos
La gran mayora de los circuitos digitales contienen flip-flops y compuertas para realizar
funciones especficas. El diseo de estos circuitos inicia a partir de las especificaciones y
finaliza con las funciones lgicas, de las cuales se obtiene el circuito lgico.
Inicialmente se debe crear una tabla de estado o representacin equivalente, para identificar
la secuencia de estados que deseada. Luego de seleccionar el nmero y tipo de flip-flops
con los cuales se desea hacer el diseo, se deduce la lgica combinatoria necesaria para
generar la secuencia de estados.
Los circuitos secuenciales se pueden analizar y disear siguiendo un procedimiento
claramente definido que consiste en los siguientes pasos:
1. Asignacin de estados
2. Construccin del diagrama de transicin
3. Elaboracin de la tabla de estados
4. Obtencin de ecuaciones o funciones lgicas
5. Realizacin de circuitos lgicos
Para explicar este mtodo se desarrollar un ejemplo aplicado a un diseo particular.
Ejemplo
Disear el circuito secuencial del proceso que se cumple de acuerdo al diagrama de estados
de la figura 7.2.1.
Paso 1. Asignacin de estados
Este proceso tiene cuatro estados, una entrada y no tiene salidas (se pueden considerar
como salidas las de los flip-flops). Para representar los cuatro estados se usarn dos flip-
flops identificados como A y B de tipo JK. y la entrada ser identificada como X.

Figura 7.2.1. Diagrama de estados
Paso 2. Contruccin del diagrama del transicin o de estado
La figura 7.2.1 corresponde al diagrama de transicin. Analizando este diagrama se observa
que el estado 10 se mantiene mientras X=0 y en el momento que X=1 pasa al estado 11,
despus al estado 00 y finalmente al estado 01, hasta el momento que nuevamente X=0,
volviendo de esta forma al estado AB=10. Adicionalmente observe que los estados 00 10 y
11, se mantienen cuando X=0 y el estado 01 se mantiene cuando X=1.
Paso 3. Elaboracin de la tabla de estados
A partir del diagrama de estados y de la tabla de transcin del flip-flop JK se puede contruir
la tabla de estados (ver tabla 7.2.1).
Entrada Estado Actual Estado Siguiente Excitaciones
X A B A B J
A
K
A
J
B
K
B

0 0 0 0 0 0 X 0 X
1 0 0 0 1 0 X 1 X
0 0 1 1 0 1 X X 1
1 0 1 0 1 0 X X 0
0 1 0 1 0 X 0 0 X
1 1 0 1 1 X 0 1 X
0 1 1 1 1 X 0 X 0
1 1 1 0 0 X 1 X 1
Tabla 7.2.1. Tabla de estado
Para la simplificacin de los circuitos combinatorios es conveniente que se presenten
condiciones de"no importa", ya que estas permiten simplicar las funciones lgicas y por
tanto el tamao del circuito lgico.
Paso 4. Obtencin de ecuaciones o funciones lgicas.
En este paso se obtienen las funciones lgicas para las entradas de los flip-flops (J
A
, K
A
, J
B

y K
B
) y el objetivo es deducir la lgica combinatoria de estado siguiente, mediante el uso de
Mapas de Karnaugh. A continuacin en la figura 7.2.2. se muestran los Mapas de
Karnaugh y las funciones lgicas correspondientes.

Figura 7.2.2. Mapas de Karnaugh para las entradas J
A
, J
B
, K
A
y K
B

Paso 5. Realizacin de circuitos lgicos
Este es el ultimo paso del diseo, y consiste en implementar la lgica combinacional a
partir de las ecuaciones lgicas obtenidas en el paso anterior para las entradas J y K de los
flip-flops. Las conexiones correspondientes, se efectan mediante el uso de compuertas e
inversores y en la figura 7.2.3. se muestra el diseo final del circuito lgico.

Figura 7.2.3. Circuito Lgico del Diseo
Diseo de Circuitos Secuenciales con flip-flops D
El diseo del circuito de la figura 7.2.3 se hizo con flip-flops JK. En esta seccin veremos
como se realiza el diseo de circuitos secuenciales mediante el uso de flip-flops tipo D.
A diferencia de las entradas de los flip-flops JK, las entradas en los flip-flops D
corresponden exactamente a los estados siguientes. Por esta razn en la tabla de estado no
se requiere una columna independiente para las excitaciones. En el siguiente ejemplo se
ver como realizar el diseo de circuitos secuenciales con flip-flops D.
Ejemplo
Realizar el diseo del circuito lgico correspondiente a la tabla de estado 7.2.2. Observe
que esta tabla es la misma del ejemplo anterior, pero adicionamente se agreg una salida
(Y).
Entrada Estado actual Estado siguiente Salida
X A B A(D
A
) B(D
B
) Y
0 0 0 0 0 0
1 0 0 0 1 1
0 0 1 1 0 0
1 0 1 0 1 0
0 1 0 1 0 0
1 1 0 1 1 1
0 1 1 1 1 0
1 1 1 0 0 0
Tabla 7.2.2. Tabla de estado
Paso 1. Asignacin de estados
Este proceso al igual que el ejemplo anterior tiene cuatro estados de dos bits (AB), una
entrada (X) y una salida (Y). Para representar los cuatro estados se usarn dos flip-flops D
identificados como A y B.
Paso 2. Construccin del diagrama del transicin o de estado
El diagrama de transicin es el mismo del ejemplo anterior, excepto que ahora se tiene en
cuenta la salida (Y). En la figura 7.2.4 se observa el diagrama de estado.

Figura 7.2.4. Diagrama de estados - Ejemplo 2
Paso 3. Elaboracin de la tabla de estado.
Para este ejemplo inicialmente se di la tabla de estados, la cual se observa en la tabla
7.2.2.
Paso 4. Obtencin de ecuaciones o funciones lgicas.
En este paso se deben obtener las funciones lgicas para las entradas de los flip-flops (DA,
DB) y la salida (Y). En la figura 7.2.5 se muestran los Mapas de Karnaugh y las funciones
lgicas correspondientes.

Figura 7.2.5. Mapas de Karnaugh para las entradas D
A
, D
B
, y Y
Paso 5. Realizacin de circuitos lgicos
Con las ecuaciones lgicas obtenidas en el paso anterior se puede implementar el circuito
lgico. Las conexiones correspondientes, se efectan mediante el uso de compuertas e
inversores y en la figura 7.2.6 se muestra el diseo del circuito.

Figura 7.2.6. Circuito Lgico
Estados no usados
Durante el diseo de los circuitos secuenciales para simplificar las representaciones lgicas,
es conveniente emplear los estados no usados como condiciones que no importa. Estos
estados se identifican con una (X) en los Mapas de Karnaugh.
Para ilustrar como emplear estos estados, observe la tabla 7.2.3. Teniendo en cuenta todas
las posibles combinaciones de las variables A, B, C y X, Note que en esta tabla hay seis
estados que no estn presentes (0000, 0001, 1100, 1101, 1110 y 1111) . Las seis filas de la
tabla correspondientes a estos estados se identifican como estados X (1 o 0) o condiciones
de "No importa"
Estado actual Entrada Estado siguiente Excitaciones Salida
A B C X A B C JA KA JB KB JC KC Y
0 0 1 0 0 0 1 0 X 0 X X 0 0
0 0 1 1 0 1 0 0 X 1 X X 1 0
0 1 0 0 0 1 1 0 X X 0 1 X 0
0 1 0 1 1 0 0 1 X X 1 0 X 0
0 1 1 0 0 0 1 0 X X 1 X 0 0
0 1 1 1 1 0 0 1 X X 1 X 1 0
1 0 0 0 1 0 1 X 0 0 X 1 X 0
1 0 0 1 1 0 0 X 0 0 X 0 X 1
1 0 1 0 0 0 1 X 1 0 X X 0 0
1 0 1 1 1 0 0 X 0 0 X X 1 1
, al momento de elaborar los Mapas de Karnaugh.
Tabla 7.2.3. Tabla de estado - Condiciones de "no importa"
Los mapas de karnaugh correspondientes a las entradas de cada flip-flop (J
A
, K
A
, J
B,
K
B,
J
C
y
K
C
) y la salida (Y), se muestran en la figura 7.2.7. Observe que en cada mapa los estados
resaltados en rojo corresponden a los estados no usados, los cuales se han incluido como
condiciones "no importa" para simplificar la mayor cantidad de variables en las
expresiones.

Figura 7.2.7. Mapas de Karnaugh para las entradas a los flip-flops
Como conclusin sobre esta seccin, podemos decir que es recomendable incluir los
estados no usados en el diseo de los circuitos secuenciales. Esto implica una reduccin en
las expresiones lgicas y por consiguiente en el tamao del circuito, que en otros trminos
representar obviamente un menor tiempo de desarrollo y costo de implementacin.
Se plantea como ejercicio hacer el diagrama lgico correspondiente a las ecuaciones
halladas a partir de los mapas de Karnaugh de la figura 7.2.7 y hacer el diseo del circuito
secuencial sin tener en cuenta los estados no usados para comparar los dos casos y notar las
diferencias.
Para mas informacin sobre simplificacin de funciones lgicas ver la Leccin 4. Mapas de
Karnaugh.


Anlisis de Circuitos Secuenciales Asincrnicos
El anlisis de Circuitos Asincronicos es similar al analisis de los circuitos sincrnicos, sin
embargo estos circuitos requieren un tratamiento particular, debido a que no existen pulsos
de reloj, como referencia de tiempo para controlar los cambios de estado.
En los Circuitos Cecuenciales Asincrnicos las variables de entrada actuan directamente
sobre el sistema, es decir que un cambio en tales variables produce un cambio sobre el
estado interno. Los Circuitos Secuenciales Asincrnicos se clasifican dependiendo del tipo
de entradas o del cambio en el tiempo de las estas, en dos grupos: los Circuitos
Asincrnicos en Modo Fundamental y los Circuitos Asincrnicos en Modo Pulso.
Circuitos Asincronicos Activados por Nivel (Modo Fundamental)
Los circuitos asincrnicos operando de esta forma fueron los primeros que se
implementaron en los inicios del anlisis de los sistemas secuenciales en Electrnica Digital
y se encuentran constituidos por un sistema combinacional, donde algunas de sus salidas se
unen a las entradas formando lazos de realimentacin. En la figura 7.3.1 se observa un
diagrama de bloques descriptivo de este tipo de sistemas secuenciales.

Figura 7.3.1. Diagrama de bloques de un Circuito Asincrnico Activado por Nivel
Veamos la descripcin y caractersticas de este esquema.
- La variable t representa el tiempo de retardo mnimo para que ocurra una transicin
y corresponde al retardo que ocurre cuando una seal viaja a travs de una o ms
compuertas del circuito secuencial.
- En este tipo de sistemas secuenciales no se permiten cambios en forma simultnea
en las variables de entrada, debido a la posible ocurrencia de estados
indeterminados en las salidas.
- Se pueden presentar estados estables e inestables. Los estables son aquellos en los
que el valor de estado presente es igual al estado siguiente, y los inestables son
aquellos en los que el valor del estado presente es diferente al estado siguiente.
- Las variables en minscula (y
n
) corresponden a las variables secundarias en el
instante t (Y
t
), y las variables en mayscula corresponden a las variables secundarias
en el instante t+1 (Y
t+1
).
Para observar los fenmenos que pueden ocurrir en este tipo de sistemas, a continuacin se
describe un procedimiento para analizar los estados lgicos, el cual se desarrolla en los
siguientes pasos:
1. Hallar las ecuaciones lgicas para las variables de excitacin y salida del circuito.
2. Elaborar los mapas de Karnaugh para los estados de las variables de excitacin y
salida a partir de las ecuaciones halladas. Los mapas de Karnaugh contienen los
estados secundarios versus los estados de salida.
3. Localizar e identificar todos los estados estables e inestables en el mapa de
Karnaugh de las variables de excitacin. Los estados estables ocurren cuando yt =
Yt, y los estados inestables cuando yt= Yt.
4. Asignar un nombre (pueder ser un caracter) a cada fila de la tabla.
5. Elaborar una tabla de flujo, reemplazando cada estado estable de excitacin con el
mismo nombre que tiene asignado el estado secundario, as como el de los estados
inestables. Para analizar la tabla de flujo, debern considerarse movimientos
horizontales, cuando ocurran cambios en las entrada, y movimientos verticales
cuando se dn transiciones de estados inestables a estados estables, sin cambio en
las entradas.
Para ilustrar el proceso de anlisis se desarrollar un ejemplo basado en el circuito de la
figura 7.3.2.

Figura 7.3.2. Circuito Secuencial Asincrnico de ejemplo
Este circuito tiene dos variables de entrada (x
1
, x
2
), una variable de estado interno o
secundaria (y) y una variable de salida o exitacin (Y=z).
- Obtencin de las ecuaciones lgicas del circuito. Segn la lgica del circuito se
deducen las siguientes expresiones para los estados de excitacin y salida.
Comparando este circuito con el de la figura 7.3.1, se observa que la variable de
excitacin corresponde a la variable de salida, por esta razn las expresiones son las
mismas.
Y = x1x2' + x2y
z = x1x2' + x2y
- Elaboracin de Mapas de Karnaugh para las variables de excitacin y salida.
Partiendo de las expresiones lgicas anteriores y teniendo encuenta todas las
posibles combinaciones de las variables x1, x2 y y se puede llegar al mapa de
Karnaugh de la figura 7.3.3, el cual es el mismo para Y como para z.

Figura 7.3.3. Mapa de Karnaugh para estados de excitacin y salida
Esta tabla indica los cambios en el estado de la varible Y despus de un cambio en las
entradas x1 y x2. A manera de ejemplo, observe el estado sombreado (1) en la figura 7.3.3,
el cual indica que el estado actual Y=0 cambia a Y=1 cuando las entradas son x1=x2=1.
- Localizacin de estados estables e inestables. De la figura 7.3.3 se pueden deducir
las estados estables e inestables, basta observar si los estados actuales cambian al
alterar las entradas. Teniendo en cuenta lo anterior se puede concluir que los estados
inestables son aquellos que estan sombreados y los dems son estables, debido a
que no hay cambios en el estado siguiente.
- Asignacin de nombres a cada fila de la tabla de excitacin. Las filas de la tabla
sen identificadas como a y b para identicar los estados 0 y 1 de la variable Y.
- Tabla de flujo o transicin de estados lgicos. Teniendo en cuenta que los estados
de las entradas no deben tener cambios simultaneamente, en la figura 7.3.4 se
muestra la tabla de flujo, donde se observa la transicin de estados a y b segn el
estado de las entradas.

Figura 7.3.4. Flujo de estados
Circuitos Asincronicos Activados por Pulso (Modo Pulso)
Los circuitos asincrnicos operando de este modo son similares a aquellos que operan en
modo fundamental, excepto que las seales de entrada corresponden a pulsos que se ocuren
de forma asncrnica. en la figura 7.3.5 se observa un diagrama de bloques ilustrativo sobre
este tipo de sistemas.

Figura 7.3.5. Circuito Asincrnico Activado por Pulsos
Un circuito secuencial activado por pulsos, se caracteriza por cumplir las siguientes
condiciones:
- Como mnimo, una de las entradas debe ser un pulso.
- Los cambios en los estados internos ocurren nicamente por la presencia de un
pulso en las terminales de entrada.
- Cada estado de entrada, desencadena nicamente un cambio en el estado interno del
circuito.
- No se permiten dos o ms pulsos en forma simultnea en las seales de entrada. En
caso de incumplirse esta condicin la nica forma de analizar el circuito es con un
diagrama de tiempos.
- Existen dos tipos de circuitos en esta modalidad de funcionamiento: La mquina de
estados de Mealy y Moore (Ver Leccin 1. Teora de mquinas de estado (FSM))
Para entender el funcionamiento de este tipo de circuitos, se desarrollar un ejemplo con
base en el circuito de la figura 7.3.6.

Figura 7.3.6. Circuito Asincrnico de Ejemplo
Para comenzar el anlisis considere que los pulsos de entrada ocurren en la secuencia que
se observa en la figura 7.3.7. Note que los estados de las entradas son complementarios y
las transiciones ocurren en instantes de tiempo diferentes, lo cual es una caracterstica
particular de las entradas de estos sistemas secuenciales.

Figura 7.3.7. Secuencia de pulsos para x
1
y x
2

Para analizar el estado de las variables del circuito se deben deducir las expresiones lgicas
para S, R y z. De la figura 7.3.6, se tiene:
S = x
1
y'
R = x
2
y
z = x
1
y
A partir de las expresiones lgicas se puede construir el diagrama de tiempos para las
variables del circuito. En la figura 7.3.8 se observan las transiciones de los estados
correspondientes a la secuencia de las seales de entrada.

Figura 7.3.8. Diagrama de tiempo del circuito de la figura 7.3.6
La figura 7.3.9 muestra los estados siguientes y los estados de salida de la forma "estado
siguiente/estado salida" (y/z).

Figura 7.3.9. Estados de Excitacin y Salida
En la tabla no se tuvo en cuenta la columna correspondiente a la entrada x
1
x
2
=11, debido a
que los circuitos secuenciales asincrnicos no admiten entradas activas de forma
simultanea. Esta tabla de estados se puede simplificar aun mas debido a que el estado 00 no
implica ningn cambio en los estados del circuito, as que la columna correspondiente se
puede suprimir, sin alterar el anlisis. Teniendo presente esta condicin, la figura 7.3.9 se
reduce a la figura 7.3.10. Observe que los estados de las entradas son complementarios, lo
cual es caracterstico de una seal pulsada.

Figura 7.3.10. Estados de Excitacin y Salida


Ejemplos de Control Secuencial
Los sistemas combinacionales y secuenciales tienen gran variedad de aplicaciones en la
vida real. En la mayora de sistemas digitales encontrados en la prctica se incluyen
elementos que memorizan la informacin, por lo cual se requieren de circuitos
secuenciales.
El objetivo de esta leccin consiste en dar aplicabilidad a la teora vista en este captulo,
mediante dos ejemplos sencillos, con los cuales se harn uso de las herramientas de anlisis
y diseo de circuitos secuenciales: la implementacin de un semforo y un control de un
motor de pasos.
Implementacin de un Semforo
Construir el circuito lgico para un semforo que responda a la siguiente secuencia: Verde,
Amarillo, Rojo y Rojo/Amarillo.
El semforo tiene cuatro estados, los cuales se pueden representar con 2 flip-flops, sin
embargo para asignar el tiempo de duracin de cada estado se emplearan 3 flip-flops, de los
cuales se pueden obtener 8 estados, cuyos tiempos se pueden distribuir de la siguiente
forma:
- Verde (3 ciclos)
- Amarillo (1 ciclo)
- Rojo (3 ciclos)
- Rojo-Amarillo (1 ciclo)
Donde cada ciclo representa una transicin en la seal de reloj. Observe que la duracin de
la secuencia de los cuatro estados es de 8 ciclos.
El primer paso para realizar el diseo consiste en asignar los estados lgicos, como se
puede notar en la tabla 7.4.1. Esta asignacin de estados se puede hacer de forma libre y no
necesariamente debe corresponder a una secuencia binaria, sin embargo, en este caso por
comodidad sean establecido de esta forma para implementar el circuito con base en un
contador sincrnico de tres bits.
Color
Salidas de los flip-flops Salidas al Semforo
Q
2
Q
1
Q
0
V A R
Verde>
0 0 0 1 0 0
0 0 1 1 0 0
0 1 0 1 0 0
Amarillo 0 1 1 0 1 0
Rojo
1 0 0 0 0 1
1 0 1 0 0 1
1 1 0 0 0 1
Rojo-Amarillo 1 1 1 0 1 1
Tabla 7.4.1. Asignacin de estados
En la figura 7.4.1 se observa un contador sincrnico de tres bits construido con flip-flops
JK, a partir del cual se realizar el diseo. El objetivo de hacer uso del contador es emplear
sus salidas (Q
2
, Q
1
y Q
0
) para generar los estados de las variables V, A y R (Verde, Amarillo
y Rojo) del semforo.

Figura 7.4.1. Contador de tres bits
El siguiente paso consiste en deducir la logica combinacional adicional para generar los
estados de las variables V, A y R. Para ello se deben construir los mapas de Karnaugh y
obtener las ecuaciones lgicas. En la figura 7.4.2 se muestran los mapas con las ecuaciones
resultantes para cada variable.

Figura 7.4.2. Mapas de Karnaugh
Con las expresiones obtenidas solo resta agregar la lgica al contador de la figura 7.4.1. El
diseo del final del circuito de muestra en la animacin 7.4.1.

Animacin 7.4.1. Circuito Lgico
Motor paso a paso operando en forma unipolar
Un motor de pasos es un tipo especial de motor diseado para rotar un determinado ngulo
como respuesta a una seal en su circuito de control. Estos motores se utilizan en varios
sistemas de control de posicin debido a la presicin que manejan.
Este tipo de motor puede tener una o dos bobinas por fase. Los que tienen una bobina por
fase se conocen como motores de tres hilos y los que tienen dos bobinas por fase se
conocen como motores de devanado partido. Para este ejemplo se emplear un motor de
fase partida, como el que se indica en la figura 7.4.3. Observe la foma en que debe ser
conectado para hacer el control.

Figura 7.4.3. Motor de pasos de devanado partido
En este ejemplo se har el diseo del circuito de control para manejar cuatro pasos, los
cuales corresponden a la posicin de los interruptores se indican en la tabla 7.4.2.
Numero de paso Estado de los interruptores
S
1
S
2
S
3
S
4

1 ON OFF OFF ON
2 ON OFF ON OFF
3 OFF ON ON OFF
4 OFF ON OFF ON
Tabla 7.4.2. Secuencia de estados de los interruptores (4 pasos)
Los interruptores se pueden controlar de dos formas, ya sea con tiristores (SCR's) o
mediante el uso de relevos. En la figura 7.4.4 se observan las dos opciones para manejar los
interruptores.

Figura 7.4.4. Interruptor por relevo y de estado solido
Observando la tabla 7.4.2, se puede notar que los estados de los interruptores S1 y S2, son
complementarios, al igual que los interruptores S3 y S4, lo cual simplifica el diseo del
circuito.
El primer paso para realizar el diseo de la unidad de control, consiste en asignar los
estados lgicos y seleccionar el tipo de flip-flop con el cual se implementar el circuito
lgico. En la tabla 7.4.3 se relacionan los estados lgicos de las salidas y los estados de las
entradas j y k de los flip-flops. Note que las variables S
2
y S
4
no se tuvieron en cuenta,
debido a que sus estados son el complemento de S
1
y S
3
respectivamante.
Estado Actual Entrada Estado Siguiente Estadas de los flip-flops
S1 S3 D S1 S3 J1 K1 J3 K3
1 0 0 0 0 X 1 0 X
1 1 0 1 0 X 0 X 1
0 1 0 1 1 1 X X 0
0 0 0 0 1 0 X 1 X
1 0 1 1 1 X 0 1 X
1 1 1 0 1 X 1 X 0
0 1 1 0 0 0 X X 1
0 0 1 1 0 1 X 0 X
Tabla 7.4.3. Tabla de estado
El siguiente paso consiste en construir los mapas de Karnaugh para los estados de los flip-
flops (J
1
, K
1
, J
3
, K3). Tales estados se indican en los mapas de Karnaugh mostrados en las
figura 7.4.5 con las ecuaciones lgicas correspondientes.

Figura 7.4.5. Mapas de Karnaugh
El ltimo paso del diseo consiste en construir el circuito lgico a partir de las ecuaciones
lgicas obtenidas, el cual se muestra en la figura 7.4.6.

Figura 7.4.6. Diseo final del circuito lgico
Observe que los estados S2 y S4 no se tuvieron en cuenta en el diseo debido a que los flip-
flops por defecto entregan en sus salidas una variable y su complemento.


PLD's Secuenciales
En la mayora de las aplicaciones en electrnica digital se requiere del almacenamiento de
informacin de forma temporal para efectuar operaciones lgicas. Debido a que los flip-
flops tienen esta caracterstica, la gran parte de los PLDs existentes en el mercado tienen
incorporados estos dispositivos en su estructura interna.
Estos dispositivos lgicos se conocen como PLDs de registro y son empleados para
construir mquinas de estado de propsito especial, adems de la ventaja que ofrecen para
reducir el tamao de los circuitos. Se puede agregar que los PLDs facilitan el ruteado de las
placas de circuito impreso debido a la libertad de asignacin que proporcionan, y adems
permiten realizar modificaciones posteriores del diseo.
Los PLDs secuenciales se componen de un arreglo programable de compuertas AND
seguido de un arreglo fijo de compuertas OR, dispuestos de la misma manera que en los
PLDs combinatorios. Su diferencia con los PLDs combinatorios se debe a que el estado de
las salidas se almacena en flip-flops cuando se presenta un flanco activo en la seal de reloj
del PLD.
En este capitulo veremos la arquitectura de algunos PLDs de uso general y ejemplos de
programacin para aplicaciones particulares mediante el Programa ABEL.



Arquitectura de Diversos PLD's Secuenciales
En el captulo 4 vimos la descripcin y arquitectura de los PLD's combinatorios, en el cual
se dieron los detalles sobre su estructura y funcionamiento. En esta leccin veremos la
descripcin de algunos PLDs secuenciales de uso comercial. Los PLDs secuenciales se
encuentran clasificados en dos tipos: "no reprogramables" y "reprogramables". A
continuacin veremos estas dos categoras de PLDs y sus diferencias.
PLDs no reprogramables
En este tipo de PLD's es posible programar el arreglo de compuertas slo una vez, de tal
manera que no es posible hacer modificaciones posteriores al estado de los fusibles,
quedando nicamente operando con la lgica definida por las conexiones internas
programadas. Estos dispositivos son conocidos por la sigla PAL (Programmable Array
Logic).
En la figura 8.1.1 se muestra un PLD secuencial PAL16R6. Este dispositivo tiene 20 pines,
los cuales se distribuyen de la siguiente forma:
- 8 entradas principales (pines 2 a 9).
- 8 salidas (pines 12 a 19).
- 1 entrada de reloj (pin 1).
- 1 entrada de habilitacin (pin 11).
- 2 entradas de alimentacin (pines 10 y 20).
Este PLD tiene la posibilidad de obtener 10 entradas como mximo y 6 salidas de registro
con flip-flop tipo D. En la Figura 8.1.1. se observa la estructura interna de este PLD, donde
se puede notar lo siguiente:
- Todos los flip-flops se encuentran conectados a una seal comn de reloj, como en
los circuitos secuenciales sincrnicos.
- Cada una de las salidas de los flip-flops pasa por un buffer triestado cuya seal de
habilitacin es comn para los dems buffers de las salidas.
- Existen dos pines especiales IO1 e IO8, los cuales son bidireccionales y se pueden
configurar como entrada o como salida.
- Las salidas de los flip-flops retornar hacia el arreglo de compuertas, lo cual permite
crear lazos de realimentacin, lo cual permite implementar contadores y registros.
En la tabla 8.1.1 se observa una lista de algunos PLDs secuenciales de uso general. Los
PLDs PAL16XX indicados en la tabla tiene el mismo arreglo de compuertas de 16 variables.
Los PLDs de la familia PAL20XX tienen un arreglo de compuertas similar con 20 variables.
En la figura 8.1.2 se observan los esquemas lgicos de los PLDs relacionados en la tabla
8.1.1.
PLD
N de
pines
Entradas
por
compuerta
AND
Entradas
principales
Salidas
combinacionales
bidireccionales
Salidas
tipo
registro
Salidas
combinacionales
PAL16R4 20 16 8 4 4 0
PAL16R6 20 16 8 2 6 0
PAL16R8 20 16 8 0 8 0
PAL20R4 24 20 12 4 4 0
PAL20R6 24 20 12 2 6 0
PAL20R8 24 20 12 0 8 0
Tabla 8.1.1. Descripcin de PLDs secuenciales no reprogramables de uso general

Figura 8.1.2. Diagramas lgicos de PLDs secuenciales no reprogramables (Copyright
1999 by John F. Wakerly)
PLDs reprogramables
Estos PLDs utilizan tecnologa EEPROM (Electrical Erasable Programmable ROM) y se
conocen con el nombre de GALs (Generic Array Logic). Estos dispositivos a diferencia de
los anteriores permiten modificar la disposicin interna de las conexiones de las compuertas
despus de haber sido programados. En la Figura 8.1.3 se observa la arquitectura de una
GAL16V8.
Este dispositivo tiene 20 pines distribuidos de la siguiente forma:
- 8 entradas dedicadas (pines 2 a 9).
- 8 salidas de registro programables (pines 12 a 19).
- 1 entrada de reloj (pin 1).
- 1 entrada de habilitacin (pin 11).
- 2 entradas de alimentacin (pines 10 y 20).
Las salidas se pueden programar como salida secuencial o como salida combinacional
dependiendo del estado de los fusibles de seleccin ubicados en la macrocelda lgica de
cada salida. La macrocelda corresponde al conjunto de elementos agrupados en cada salida,
incluyendo la compuerta OR).

Figura 8.1.4. Macroceldas lgicas para el PLD GAL16V8. (Copyright 1999 by John F.
Wakerly).
Estas celdas son conocidas como OLMCs de la sigla en ingls Output Logic MacroCell y
en la figura 8.1.4 se observa la estructura interna de una de estas celdas en sus dos
configuraciones disponibles (salida secuencial y salida combinacional).

Arquitectura de Diversos PLD's Secuenciales

Figura 8.1.1. PLD secuencial PAL16R6. (Copyright 1999 by John F. Wakerly)



Arquitectura de Diversos PLD's Secuenciales



Captulo 8: PLD's Secuenciales

Ejemplos de Programacin de PLDs Secuenciales
En el capitulo 4 se vieron las bases sobre la programacin de PLD's con CUPL. En esta
leccin se indicarn algunos ejemplos para aplicaciones particulares desarrolladas en
CUPL. Recordando lo visto en el captulo 4, en este lenguaje el cdigo fuente se dividide
en tres partes: Encabezado, asignacin de pines de entrada y salida y ecuaciones lgicas.
Los ejemplos ilustrados en esta leccin fueron tomados de algunos fabricantes que han
desarrollado estos cdigos para aplicaciones particulares en sus dispositivos. Se plantea al
estudiante analizar el cdigo de estos ejemplos para comprender la forma en que se pueden
programar en CUPL.
Ejemplo 8.2.1 - Uso de los flip-flop D en un PLD
Name Flops;
Partno CA0002;
Revision 03;
Date 9/12/95;
Designer G. Woolhiser;
Company Assisted Technology, Inc.;
Location None;
Assembly None;
Device P16R8;
/****************************************************************/
/* */
/* This example demonstrates the use of D-type flip-flops, */
/* and flexibilty of expression with CUPL. The following */
/* are four implementations of a two bit counter. */
/* */
/****************************************************************/
/* Target Devices: PAL16R8, PAL16RP8, EP300 */
/****************************************************************/
Pin 1 = clock;
Pin 2 = reset;
Pin 11 = !enable;
/*
* Outputs: define outputs and output active levels
*/
Pin 19 = qa0; Pin 18 = qa1;
Pin 17 = qb0; Pin 16 = qb1;
Pin 15 = qc0; Pin 14 = qc1;
Pin 13 = qd0; Pin 12 = qd1;
/*
* Logic: examples of two-bit counters using d-type flip-flops
*/
/* two-bit counter example no. 1 */
/* using software emulated exclusive or's */
qa0.d = !reset & !qa0;
qa1.d = !reset & (qa1 $ qa0);
/* two-bit counter example no. 2 */
/* using expanded exclusive or's */
qb0.d = !reset & (!qb0 & !qb1 # !qb0 & qb1);
qb1.d = !reset & (!qb0 & qb1 # qb0 & !qb1);
/* two-bit counter example no. 3 */
/* using bit fields on the right hand side of the equals sign */
field state = [qc1,qc0];
qc0.d = !reset & (state:0 # state:2);
qc1.d = !reset & (state:1 # state:2);
/* two-bit counter example no. 4 */
/* using bit fields on the left hand side of the equals sign */
field q = [qd0,qd1];
q.d = !reset & ([!qd0,qd1] & [!qd1,!qd0] # [!qd0,!qd1] & [qd1,qd0]);
Ejemplo 8.2.2 - Contador Sincrnico de 8 bits con Cargue en Paralelo
Name Count8;
Partno CA0008;
Date 7/19/95;
Revision 01;
Designer Kahl;
Company Assisted Technology;
Assembly None;
Location None;
Device P20X8;
/****************************************************************/
/* */
/* Octal Counter (74LS461) */
/* */
/* 8-bit synchronous counter with parallel load, clear, and */
/* hold capability. The LOAD operation loads the inputs */
/* (D7-D0) into the output register (Q7-Q0). The CLEAR */
/* operation resets the output register to all LOWs. The HOLD */
/* operation holds the previous value regardless of clock */
/* transitions. The increment function adds one to the output */
/* register when the CARRY-IN is true (!ci=LO), otherwise the */
/* operation is a hold. The CARRY-OUT is true (!co=LO) when */
/* the output register (Q7-Q0) is all HIGHs, otherwise false */
/* (!co=HI). */
/****************************************************************/
/** Allowable Target Device Types : PAL20X8 */
/****************************************************************/
/** Inputs **/
PIN 1 = clock ; /* Register Clock */
PIN [2,11] = [instr0..1] ; /* Instruction Type Inputs */
PIN [3..10] = [D0..7] ; /* Data Inputs */
PIN 13 = !out_enable ; /* Register Output Enable */
PIN 23 = !carry_in ; /* Carry-In Input */
/** Outputs **/
PIN 14 = !carry_out ; /* Carry-Out Output */
PIN [15..22] = [Q7..0] ; /* Register Outputs */
/** Declarations and Intermediate Variable Definitions **/
field instruction = [instr1..0]; /* Instruction Field */
clear = instruction:0 ; /* Operation Types */
hold = instruction:1 ;
load = instruction:2 ;
count = instruction:3 ;
/** Logic Equations **/
carry_out = carry_in & [Q0..7]:& ;
!Q0.d = clear # (count # hold) & !Q0 $ load & !D0 # count & carry_in ;
!Q1.d = clear # (count # hold) & !Q1 $ load & !D1 # count & carry_in & Q0 ;
!Q2.d = clear # (count # hold) & !Q2 $ load & !D2 # count & carry_in & [Q0..1]:& ;
!Q3.d = clear # (count # hold) & !Q3 $ load & !D3 # count & carry_in & [Q0..2]:& ;
!Q4.d = clear # (count # hold) & !Q4 $ load & !D4 # count & carry_in & [Q0..3]:& ;
!Q5.d = clear # (count # hold) & !Q5 $ load & !D5 # count & carry_in & [Q0..4]:& ;
!Q6.d = clear # (count # hold) & !Q6 $ load & !D6 # count & carry_in & [Q0..5]:& ;
!Q7.d = clear # (count # hold) & !Q7 $ load & !D7 # count & carry_in & [Q0..6]:& ;
Ejemplo 8.2.3 - Contador Up/Down con Lmites
Name CYP_CNT;
Partno CY7C330;
Revision 01;
Date 02-25-95;
Designer Joe Designer;
Company Cypress Semiconductor;
Location U1;
Assembly COUNTER;
Device P7C330;
/*
This design is an up/down counter with preloadable limits. The Lower limits
are loaded into the dedicated input registers on the rising edge of LLC and
the upper limits are loaded into the input registers found in the I/O
macrocells on the rising edge of ULC. The counter begins counting upwards,
when preloading is done, until the upper limit is reached, and then, begins
counting downward. This design, because the equations are already
minimized and in sum of products form, should only be compiled with the
default minimization (-M1 flag).
*/
PIN 1 = CLK; /* Clock used for counting */
PIN 2 = LLC; /* Clock for preloading lower limit */
PIN 3 = ULC; /* Clock for preloading upper limit */
PIN [4..7] = [LL0..3]; /* Lower limit hold registers */
PIN [9..12] = [LL4..7];
PIN 13 = LPL; /* Lower limit preload indications */
/*
Counter output registers. Pin assignments are based on the number of
product terms are available on that pin.
*/
PIN 28 = CNT0; /* Also used for Upper limit loading */
PIN 15 = CNT1; /* Also used for Upper limit loading */
PIN 26 = CNT2; /* Also used for Upper limit loading */
PIN 17 = CNT3; /* Also used for Upper limit loading */
PIN 19 = CNT4; /* Also used for Upper limit loading */
PIN 24 = CNT5; /* Also used for Upper limit loading */
PIN 20 = CNT6;
PIN 23 = CNT7;
PIN 18 = UL6; /* Used for Upper limit loading */
PIN 25 = UL7; /* Used for Upper limit loading */
PIN 27 = UPL;
PINNODE 29 = UEQUAL; /* Upper limit has been reached */
PINNODE 30 = PLDONE; /* Preloading has finished */
PINNODE 31 = LEQUAL; /* Lower limit has been reached */
PINNODE 32 = UP; /* Count direction */
PIN 16 = !RESET; /* Reset signal clears all registers */
PIN 14 = !CNTOE; /* I/O pin OE used for loading upper limit */
PINNODE 45 = UL0; /* Shared input MUX definition */
PINNODE 46 = UL2; /* Shared input MUX definition */
PINNODE 47 = UL5; /* Shared input MUX definition */
PINNODE 48 = UL4; /* Shared input MUX definition */
PINNODE 49 = UL3; /* Shared input MUX definition */
PINNODE 50 = UL1; /* Shared input MUX definition */
UL0.IMUX = CNT0.IOD; /* These definitions are used to */
UL2.IMUX = CNT2.IOD; /* indicate which pin will be fed */
UL5.IMUX = CNT5.IOD; /* through the share feedback MUX.*/
UL4.IMUX = CNT4.IOD;
UL3.IMUX = CNT3.IOD;
UL1.IMUX = CNT1.IOD;
UL0 = CNT0.IOD;
UL2 = CNT2.IOD;
UL5 = CNT5.IOD;
UL4 = CNT4.IOD;
UL3 = CNT3.IOD;
UL1 = CNT1.IOD;
UPL.CKMUX = ULC;
LPL.CKMUX = LLC;
RESET.CKMUX = LLC;
[CNT0..5].CKMUX = ULC; /* Pin 3 will be used for upper preload */
[UL6..7].CKMUX = ULC; /* Pin 3 will be used for upper preload */
[LL0..7].CKMUX = LLC; /* Pin 2 will be used for lower preload */
[CNT0..7].SR = RESET.DQ; /* Count register will be reset with pin 16 */
[CNT0..7].OEMUX = CNTOE; /* Output enable will be controlled by pin 14 */
/*
Count equations. Note how the use of the XOR terms significantly reduces the
number of product terms that are needed. This allows this complex design to
fit into the device.
*/
!CNT0.D = !CNT0
$ PLDONE
# !LL0.DQ & LPL.DQ & CNT0
# !CNT0 & UL0 & UPL.DQ
# LL0.DQ & LPL.DQ & !CNT0
# CNT0 & !UL0 & UPL.DQ ;
!CNT1.D = !CNT1
$ !LL1.DQ & LPL.DQ & !PLDONE & CNT1
# LL1.DQ & LPL.DQ & !PLDONE & !CNT1
# UPL.DQ & !PLDONE & !UL1 & CNT1
# UPL.DQ & !PLDONE & UL1 & !CNT1
# CNT0 & PLDONE & !UP
# !CNT0 & PLDONE & UP ;
!CNT2.D = !CNT2
$ !LL2.DQ & LPL.DQ & CNT2 & !PLDONE
# LL2.DQ & LPL.DQ & !CNT2 & !PLDONE
# UPL.DQ & CNT2 & !UL2 & !PLDONE
# UPL.DQ & !CNT2 & UL2 & !PLDONE
# CNT0 & PLDONE & !UP & CNT1
# !CNT0 & PLDONE & UP & !CNT1;
!CNT3.D = !CNT3
$ !LL3.DQ & LPL.DQ & !PLDONE & CNT3
# LL3.DQ & LPL.DQ & !PLDONE & !CNT3
# UPL.DQ & !PLDONE & !UL3 & CNT3
# UPL.DQ & !PLDONE & UL3 & !CNT3
# CNT0 & CNT2 & PLDONE & !UP & CNT1
# !CNT0 & !CNT2 & PLDONE & UP & !CNT1;
!CNT4.D = !CNT4
$ !LL4.DQ & LPL.DQ & !PLDONE & CNT4
# LL4.DQ & LPL.DQ & !PLDONE & !CNT4
# UPL.DQ & !PLDONE & !UL4 & CNT4
# UPL.DQ & !PLDONE & UL4 & !CNT4
# CNT0 & CNT2 & PLDONE & !UP & CNT3 & CNT1
# !CNT0 & !CNT2 & PLDONE & UP & !CNT3 & !CNT1;
!CNT5.D = !CNT5
$ !LL5.DQ & LPL.DQ & CNT5 & !PLDONE
# LL5.DQ & LPL.DQ & !CNT5 & !PLDONE
# UPL.DQ & CNT5 & !UL5 & !PLDONE
# UPL.DQ & !CNT5 & UL5 & !PLDONE
# CNT0 & CNT2 & PLDONE & CNT4 & !UP & CNT3 & CNT1
# !CNT0 & !CNT2 & PLDONE & !CNT4 & UP & !CNT3 & !CNT1;
!CNT6.D = !CNT6
$ !LL6.DQ & LPL.DQ & !PLDONE & CNT6
# LL6.DQ & LPL.DQ & !PLDONE & !CNT6
# UPL.DQ & !PLDONE & CNT6 & !UL6.DQ
# UPL.DQ & !PLDONE & !CNT6 & UL6.DQ
# CNT0 & CNT2 & CNT5 & PLDONE & CNT4 & !UP & CNT3 & CNT1
# !CNT0 & !CNT2 & !CNT5 & PLDONE & !CNT4 & UP & !CNT3 & !CNT1;
!CNT7.D = !CNT7
$ !LL7.DQ & LPL.DQ & CNT7 & !PLDONE
# LL7.DQ & LPL.DQ & !CNT7 & !PLDONE
# UPL.DQ & !UL7.DQ & CNT7 & !PLDONE
# UPL.DQ & UL7.DQ & !CNT7 & !PLDONE
# CNT0 & CNT2 & CNT5 & PLDONE & CNT6 & CNT4 & !UP & CNT3 & CNT1
# !CNT0 & !CNT2 & !CNT5 & PLDONE & !CNT6 & !CNT4 & UP & !CNT3 & !CNT1;
/* Direction of count */
UP.D = UP
$ !UEQUAL & !UP & PLDONE
# !LEQUAL & UP & PLDONE
# UPL.DQ & !PLDONE & !UP
# LPL.DQ & !PLDONE & UP;
/* Has the lower limit been reached */
LEQUAL.D = LL6.DQ & !CNT6
# !LL7.DQ & CNT7
# LL7.DQ & !CNT7
# LL3.DQ & !CNT3
# !LL5.DQ & CNT5
# LL5.DQ & !CNT5
# !LL1.DQ & CNT1
# LL0.DQ & !CNT0
# !LL2.DQ & CNT2
# !LL4.DQ & CNT4
# LL4.DQ & !CNT4
# !LL0.DQ & CNT0
# LL1.DQ & !CNT1
# !LL6.DQ & CNT6
# !LL3.DQ & CNT3
# LL2.DQ & !CNT2;
/* Has preloading finished */
PLDONE.D = !LPL.DQ & !UPL.DQ ;
/* Has the upper limit been reached */
UEQUAL.D = !CNT6 & UL6.DQ
# !UL7.DQ & CNT7
# UL7.DQ & !CNT7
# UL3 & !CNT3
# CNT5 & !UL5
# !CNT5 & UL5
# !UL1 & CNT1
# !CNT0 & UL0
# CNT2 & !UL2
# !UL4 & CNT4
# UL4 & !CNT4
# CNT0 & !UL0
# UL1 & !CNT1
# CNT6 & !UL6.DQ
# !UL3 & CNT3
# !CNT2 & UL2;
Ejemplo 8.2.4 - Contador Up/Down de 16 bits
Name Tcounter;
Partno CA0020;
Date 6/9/95;
Revision 01;
Designer Kahl;
Company Personal CAD Systems, Inc.;
Assembly None;
Location None;
Device ep600;
/****************************************************************/
/* */
/* 16 Bit Synchronous Up/Down Counter */
/* */
/* This is a 16-bit up/down counter with built-in shift */
/* register using toggle flip-flops. The various modes are */
/* controlled by the signals CNTUP (1 = count up) */
/* SHIFT (1 = shift) */
/* SHLFT (1 = shift left) */
/****************************************************************/
/* Allowable Target Device Types : EP600 */
/****************************************************************/
/** Inputs **/
Pin 1 = clock1; /* Counter Clock 1 */
Pin 13 = clock2; /* Counter Clock 2 */
Pin 2 = data_in; /* Serial Shift Data Input */
Pin 11 = cntup; /* Count Up/Down Mode Control */
Pin 14 = shift; /* Shift/Count Mode Control */
Pin 23 = shlft; /* Shift Left Mode Control */
/** Outputs **/
Pin [3..10,15..22] = [q0..15]; /* Counter/Shifter Outputs */
/** Declarations and Intermediate Variable Definitions **/
count_up = !shift & cntup & !shlft;
count_down = !shift & !cntup & !shlft;
shift_left = shift & !cntup & shlft;
shift_right = shift & !cntup & !shlft;
reset_count = shift & cntup & shlft; /* Counter Reset Command */
Field counter = [q15..0]; /* Declared Counter Field */
/** Logic Equations **/
counter.t = 'h'0001 & (count_up & 'b'1 /* BIT 0 (LSB) */
# count_down & 'b'1
# shift_left & (data_in $ q0)
# shift_right & (q0 $ q1))
# 'h'0002 & (count_up & q0 /* BIT 1 */
# count_down & !q0
# shift_left & (q0 $ q1)
# shift_right & (q1 $ q2))
# 'h'0004 & (count_up & [q0..1]:& /* BIT 2 */
# count_down & ![q0..1]:&
# shift_left & (q1 $ q2)
# shift_right & (q2 $ q3))
# 'h'0008 & (count_up & [q0..2]:& /* BIT 3 */
# count_down & ![q0..2]:&
# shift_left & (q2 $ q3)
# shift_right & (q3 $ q4))
# 'h'0010 & (count_up & [q0..3]:& /* BIT 4 */
# count_down & ![q0..3]:&
# shift_left & (q3 $ q4)
# shift_right & (q4 $ q5))
# 'h'0020 & (count_up & [q0..4]:& /* BIT 5 */
# count_down & ![q0..4]:&
# shift_left & (q4 $ q5)
# shift_right & (q5 $ q6))
# 'h'0040 & (count_up & [q0..5]:& /* BIT 6 */
# count_down & ![q0..5]:&
# shift_left & (q5 $ q6)
# shift_right & (q6 $ q7))
# 'h'0080 & (count_up & [q0..6]:& /* BIT 7 */
# count_down & ![q0..6]:&
# shift_left & (q6 $ q7)
# shift_right & (q7 $ q8))
# 'h'0100 & (count_up & [q0..7]:& /* BIT 8 */
# count_down & ![q0..7]:&
# shift_left & (q7 $ q8)
# shift_right & (q8 $ q9))
# 'h'0200 & (count_up & [q0..8]:& /* BIT 9 */
# count_down & ![q0..8]:&
# shift_left & (q8 $ q9)
# shift_right & (q9 $ q10))
# 'h'0400 & (count_up & [q0..9]:& /* BIT 10 */
# count_down & ![q0..9]:&
# shift_left & (q9 $ q10)
# shift_right & (q10 $ q11))
# 'h'0800 & (count_up & [q0..10]:& /* BIT 11 */
# count_down & ![q0..10]:&
# shift_left & (q10 $ q11)
# shift_right & (q11 $ q12))
# 'h'1000 & (count_up & [q0..11]:& /* BIT 12 */
# count_down & ![q0..11]:&
# shift_left & (q11 $ q12)
# shift_right & (q12 $ q13))
# 'h'2000 & (count_up & [q0..12]:& /* BIT 13 */
# count_down & ![q0..12]:&
# shift_left & (q12 $ q13)
# shift_right & (q13 $ q14))
# 'h'4000 & (count_up & [q0..13]:& /* BIT 14 */
# count_down & ![q0..13]:&
# shift_left & (q13 $ q14)
# shift_right & (q14 $ q15))
# 'h'8000 & (count_up & [q0..14]:& /* BIT 15 (MSB) */
# count_down & ![q0..14]:&
# shift_left & (q14 $ q15)
# shift_right & (q15 $ data_in)) ;
counter.ar = reset_count; /* Resets the Counter */


Familias Lgicas

Las tecnologas de fabricacin de los circuitos integrados digitales determinan diferentes
propiedades de operacin como niveles de tensin, margenes de ruido, potencia disipada,
cargabilidad de entrada y salida, etc. Las familias lgicas son conjuntos de compuertas
basadas en una tecnologa de transistores determinada.
Las distintas compuertas lgicas exhiben diferentes comportamientos elctricos ante los
valores de entrada, condiciones ambientales existentes, y condiciones de salida. La
fabricacin de circuitos digitales est dirigida a disminuir el espacio de los circuitos, la
velocidad de respuesta, envejecimiento de los componentes, tolerancias y la disminucin de
potencia consumida entre otros.

Familias TTL y CMOS
La compuerta TTL fue una mejora introducida a la compuerta DTL. Los parmetros ms
importantes de las compuertas TTL son el retardo de propagacin (ns), la disipacin de
potencia (mW), y el producto velocidad -potencia (pJ). El producto velocidad-potencia
indica un retardo en la propagacin con una disipacin de potencia determinada.
Caractersticas Generales de los Circuitos Digitales
Las caractersticas de un circuito digital se usan con el fin de comparar las compuertas de
las distintas familias lgicas. Estas se listan a continuacin:
- Fan Out (Cargabilidad de salida): Es el mximo nmero de cargas que pueden ser
gobernadas en la salida de la compuerta sin alterar su operacin normal.
- Fan In (Cargabilidad de entrada): Es el mximo nmero de entradas que puede
tener una compuerta.
- Tensin de Umbral: Una curva de transferencia de una puerta lgica inversora se
muestra en la figura 9.1.1. En la figura se distinguen dos tensiones de umbral; la
primera para el estado lgico cero (V
u, 0
) y la segunda para el estado lgico uno (V
u,
1
). Los puntos de pendiente -1 representan estas tensiones de umbral
.
Por lo tanto, la
tensin de umbral es la tensin en la que la compuerta comienza a cambiar de
estado lgico.
- Margen de ruido: Es el lmite de tensin de ruido admisible a la entrada del
elemento lgico, sin registrar cambios en el estado de la salida. Existen dos
mrgenes de un ruido, uno para el estado lgico uno y otro para el estado lgico
cero.

Figura 9.1.1. Curva de transferencia de un circuito lgico inversor
V
sal, 0 mx
= Mxima tensin en la salida de una compuerta cuando su estado lgico es cero y
con cargabilidad de salida mxima.
V
sal, 1 mn
= Mnima tensin a la salida de una compuerta cuando su estado lgico es uno y
con cargabilidad mxima posible.
V
u, 0
= Tensin de umbral del estado lgico de entrada cero.
V
u, 1
= Tensin de umbral del estado lgico de entrada uno.
En circuitos digitales es comn conectar dos puertas de las mismas caractersticas, una
enseguida de otra, tal como indica la figura 9.1.2. Por consiguiente, la tensin mxima de
entrada en estado cero V
E,0 mx
, es equivalente a la mxima tensin de salida en estado cero
V
s,0 mx
. De igual forma, la tensin mnima de entrada en estado uno V
E,1 mn
es igual a la
tensin mnima de salida en estado uno V
s,1 mn
.

Figura 9.1.2. Compuertas Lgicas Interconectadas.
Los margenes de ruido se definen de la forma siguiente:
Margen de ruido en estado cero a la entrada: Es la diferencia entre V
u, 0
y V
E,0 mx.

M
0
= V
u, 0
- V
E,0 mx
= V
u, 0
- V
s,0 mx

Margen de ruido en estado uno a la entrada: Es la diferencia entre V
E,1 mn y Vu, 1.

M
1
= V
E,1 mn
- V
u, 1
= V
s,1 mn
- V
u, 1

- Tiempo de programacin medio (tpd): Es el tiempo de retardo promedio en la
transicin de una seal de la entrada a la salida en los casos que esta pasa del estado
1 a 0 y viceversa.
- Potencia disipada: Es la potencia consumida por la compuerta. La disipacin de
potencia en funcin de la frecuencia de una compuerta TTL es constante dentro del
rango de operacin. En cambio, la compuerta CMOS depende de al frecuencia (ver
figura 9.1.3).

Figura 9.1.3. Curva de potencia en funcin de la frecuencia
- Producto potencia dispada-tiempo de propagacin: Es el producto de los dos tipos
de caractersticas mencionadas.
La velocidad de la compuerta es inversamente proporcional al retardo de propagacin.
Familia TTL (Lgica de Transistor - Transistor)
Esta fue la primera familia de xito comercial, se utiliz entre 1965 y 1985. Los circuitos
TTL utilizan transistores bipolares y algunas resistencias de polarizacin. La tensin
nominal de alimentacin de los circuitos TTL son 5 V DC.
Niveles Lgicos TTL
En el estudio de los circuitos lgicos, existen cuatro especificaciones lgicos diferentes:
V
IL
, V
IH
, V
OL
y V
OH.

En los circuitos TTL, V
IL
es la tensin de entrada vlida para el rango 0 a 0.8 V que
representa un nivel lgico 0 (BAJO). El rango de tensin V
IH
representa la tensiones vlidas
de un 1 lgico entre 2 y 5 V. El rango de valores 0.8 a 2 V determinan un funcionamiento
no predecible, por la tanto estos valores no son permitidos. El rango de tensiones de salida
V
OL
, V
OH
se muestra en la figura 9.1.4.

Figura 9.1.4. Nivel lgico de entrada de un circuito TTL
Circuitos Lgicos CMOS (Metal xido Semiconductor
Complementario)
La tecnologa CMOS es la ms utilizada actualmente para la construccin de circuitos
integrados digitales, como las compuertas, hasta los circuitos como las memorias y los
microprocesadores. La tensin nominal de alimentacin de los circuitos CMOS son +5 V
y +3,3 V.
Niveles Lgicos CMOS
En la figura 9.1.5. se muestran las tensiones V
IL
, V
IH
, V
OL
, V
OH
vlidas para los dispositivos
CMOS de nivel +5 VDC.

Figura 9.1.5. Nivel Lgico de Entrada de un circuito CMOS +5 V

Configuracin de Salidas en las Familias TTL y CMOS
El funcionamiento interno de estos dispositivos se rige por dos estados bien diferenciados a
los cuales se les asigna los valores lgicos uno o cero. La convencin es asignar el valor
lgico uno al interruptor y el valor lgico cero al interruptor abierto. En lugar de
interruptores se usan transistores bipolares o unipolares.
Configuraciones de Salida en las Compuertas TTL
Las compuertas TTL tienes tres tipos de configuraciones de salida:
1. Salida de Colector Abierto.
2. Salida de Poste Totmico.
3. Salida de Tres Estados.
Compuerta con Salida de Colector Abierto
La compuerta bsica TTL fue una modificacin DTL. La figura de la compuerta citada se
muestra en la figura 9.2.1.

Figura 9.2.1. Compuerta NAND TTL de colector abierto
La resistencia externa R
L
debe conectarse para que la salida hale hacia el nivel alto, cuando
el transistor Q
3
est en corte.
Si cualquiera de los niveles lgicos de entrada es cero, la juntura base-emisor en Q
1
se
polariza directamente. Por consiguiente, la tensin en la base Q
1
es igual a:
0.2 V(Tensin de entrada) + 0.7(Vbe
Q1
) = Vb
Q1
= 0.9 V
El transistor Q
3
comienza a conducir cuando la suma de las cadas de tensin de Vbc
Q1
,
Vbe
Q2
y Vbe
Q3
sean superiores a 1.8 V. Como la tensin en Vb
Q1
es 0.9.V, el transistor Q
3

queda en estado de corte. Por lo tanto, s se conecta una resistencia al colector, la tensin de
salida ser un 1 lgico.
Si todos los niveles lgicos de entrada son 1, los transistores Q
2
y Q
3
se saturan debido a
que la tensin en la base de Q
1
es superior a la suma de las cadas de tensin Vbc
Q1
, Vbe
Q2
y
Vbe
Q3
. Entonces el estado de salida es igual a cero lgico (0).
Compuerta con Salida de Tipo Totmico (Totem Pole)
Las compuertas se caracterizan por tener una impedancia de salida determinada. Esta
impedancia se compone de una resistencia ms una capacitancia. La capacitancia se carga
exponencialmente de bajo a alto segn la constante de tiempo RC, cuando el transistor de
salida pasa de bajo a alto. La diferencia entre una compuerta de colector abierto y una de
tipo totmico radica en el transistor Q
4
y el diodo D
1.


Figura 9.2.2. Compuerta TTL de salida tipo totmico
La salida es baja cuando Q
2
y Q
3
se encuentran en saturacin como en la compuerta de
colector abierto. La ecuacin siguiente expresa el valor de la tensin en el colector de Q
2
:
0.7(Vbe
Q3
) + 0.2 V(Vce
Q2
) = Vc
Q2
= 0.9 V
Como F = Vce
Q3
= 0.2 V, el transistor Q
4
est en corte por:
0.6 V(Vbe
Q4
) + 0.6 V(V
D1
) < 0.11 V(Vc
Q2
Vb
Q4
)
ya que Vc
Q2
= Vb
Q4
. Por lo tanto Q
4
est en corte. El diodo se coloca para provocar una
cada en el lazo y asegurar el corte de Q
4
con Q
3
saturado.
En una transicin de estado lgico 1 en la salida por causa de cambio en la entrada a 0, los
transistores Q
2
y Q
3
se cortan. En este caso, la salida se mantiene un instante de tiempo baja
debido a que el voltaje en el condensador no puede cambiar instantneamente. En el
momento que Q
2
entra en corte, Q
4
conduce por el voltaje conectado a su base a travs de la
resistencia de 1.6 KW. El transistor Q
4
se satura momentneamente por la corriente exigida
por el condensador, incrementndose el voltaje de acuerdo a una constante de tiempo RC.
El proceso anterior es rpido por la baja resistencia equivalente entre 130 KW, la resistencia
de saturacin del transistor y la resistencia del diodo. Por consiguiente, la transicin de un
valor lgico bajo a uno alto es ms rpida. En la medida de acumulacin de carga a la
salida, el voltaje de salida la corriente por el transistor Q
4
disminuye, por lo que ste pasa a
la regin activa. Entonces, el voltaje de salida es:
F = 5 - 0.6 V(Vbe
Q4) -
0.6 V(V
D1
) = 3.6 V
Compuerta con Salida de Tres Estados (Triestado)
Las compuertas de tres estados por su construccin se clasifican en TTL y CMOS.
La compuerta de tres estados se presenta en las compuertas de tipo totmico que permiten
la conexin alambrada de las salidas para formar un bus comn.
Las compuertas de tres estados tienen los siguientes estados de salida:
1. Un estado de bajo nivel (0).
2. Un estado de alto nivel (1).
3. un estado de alta impedancia o estado flotante (Z).
En la figura 9.2.3. se muestran los smbolos de las compuertas.

Figura 9.2.3. Compuertas de tres estados
La compuerta de tres estados funciona normalmente con la entrada B
1
en alto. La
compuerta inversora de tres estados se activa en su funcionamiento con la entrada B
2
en
bajo. Cuando la entrada C es baja, la salida es un circuito abierto con con una impedancia
alta, independiente del valor lgico en la entrada A
1
(Ver figura Figura 9.2.3.a). En el estado
Z no existe posibilidad de circulacin de corriente en ningn sentido. En la tabla 9.2.1. se
indican los valores de salida para estas dos compuertas.
A
1
B
1
C
1
A
2
B
2
C
2

0 0 Z 0 0 0
1 0 Z 1 0 1
0 1 0 0 1 Z
1 1 1 1 1 Z
Tabla 9.2.1. Compuertas TTL de tres estados
Compuerta de Tres Estados TTL
El circuito en estado Z se basa en bloquear los dos transistores de la salida Totem- Pole a la
vez cuando se active la entrada de control. La figura 9.2.4. muestra el inversor TTL 3-State.
La entrada B
2
en alto, hace que el transistor T
5
se corte; por lo tanto la corriente base
colector de T
5
satura los transistores T
6
y T
7
. El diodo D
6
conduce y esto produce que los
transistores de salida del circuito se corten, debido al potencial bajo en el emisor de T
1
y el
colector de T
2
. La conduccin de T
1
, bloquea a T
2
y T
4
no recibe corriente en la base, por lo
que entra a estado de corte. De otro lado, el colector del transistor T
2
queda a un potencial
muy prximo a masa, llevando a T
3
a corte.

Figura 9.2.4. Circuito Inversor de tres estados TTL
Compuerta de Tres Estados CMOS
En el circuito CMOS de la figura 9.2.5., el estado de la salida es igual a la entrada slo si la
entrada B
1
est en nivel alto (1). Cuando la entrada B
1
est en nivel bajo (0), la salida se
encuentra en nivel de impedancia alta (Z) y es independiente del nivel de entrada A
1.
En el
funcionamiento del circuito interno de la figura 9.2.5., en el estado de entrada B
1
=0
conduce el transistor Q
P1
(canal P) y la activacin de este elemento hace conducir a Q
N3

(canal N); por lo tanto el drenador Q
N3
queda a un potencial de 0 V y esto sita al transistor
Q
N5
en estado de corte. El potencial de 0 V en la puerta del transistor Q
P3
hace conducir a
ste, colocando al transistor Q
P5 en estado de corte.
En este estado de la entrada de control, los
transistores de salida Q
P5
y Q
N5
estn en corte y el terminal de salida queda en estado de
alta impedancia o tercer estado.
Cuando la entrada B
1
est en nivel bajo (1), el estado de salida es igual de la entrada, tal
como se deduce del funcionamiento del circuito. Si la compuerta tiene estado de entrada
A
1
=1, conduce el transistor Q
P5
y Q
N5
entra en corte, lo cual hace la salida C
1
igual a 1.
Cuando A
1
=0, conduce el transistor Q
N5
y Q
P5
entra en corte, lo cual hace la salida C
1
igual
a 0.

Figura 9.2.5. Circuito de tres estados CMOS


Compuertas Bsicas
Las compuertas bsicas se estudiaron en la leccin 1 del captulo 2. Las compuertas se
encuentran disponibles segn la tecnologa de fabricacin.
Familia CMOS
I nversor
Un dispositivo CMOS consiste en distintos dispositivos MOS interconectados para formar
funciones lgicas. Los circuitos CMOS combinan transistores PMOS y NMOS. El
conocimiento sobre el funcionamiento de los transistores MOS es importante para la
comprensin de la leccin. La convencin de los transistores MOS de canal p y canal n es la
siguiente:

Figura 9.3.1. Smbolos para transistores MOS
La operacin del transistor MOS se basa en los siguientes preceptos bsicos:
1. El transistor MOS de canal p conduce cuando el voltaje de puerta a fuente es
negativo.
2. El transistor MOS de canal n conduce cuando el voltaje de puerta a fuente es
positivo.
3. Cualquiera de los dos dispositivos entra a corte cuando el voltaje de puerta a fuente
es cero.
El circuito mostrado en la figura 9.3.2. representa un inversor CMOS y est formado por un
transistor de canal tipo P(Q
P1
) y otro de canal tipo N(Q
N1
). Cuando la entrada A
1
est en
nivel bajo (0), Q
P1
y Q
N1
estn a potencial cero. La entrada est a 0 V con respecto a la
fuente de Q
N1
y a -V
SS
con respecto a la fuente de Q
P1
. Como resultado el transistor Q
P1
se
activa y el transistor Q
N1
se pone en estado de corte. El resultado es un camino de baja
impedancia de V
SS
a la salida F y uno de alta impedancia de tierra a la salida.
Cuando la entrada A
1
est en nivel alto (1), Q
P1
y Q
N1
estn a potencial V
SS
. Como resultado
el transistor Q
P1
se pone en estado de corte y el transistor Q
N1
se activa. El resultado es un
camino de baja impedancia de tierra a la salida y uno de alta impedancia de V
SS
a la salida
F. La tabla 9.3.1. ilustra los estados en el circuito lgico.
A
1
Q
1
Q2 F
0 ON OFF 1
1 OFF ON 0
Tabla 9.3.1. Tabla de Estados del Inversor CMOS

Figura 9.3.2. Circuito lgico de un inversor CMOS
Compuerta NAND
En una compuerta NAND CMOS, las entradas en nivel alto, hacen que los transistores Q
P1
y
Q
P2
entren en corte y ambos transistores Q
N1
y Q
N2
en conduccin (Ver Tabla 9.3.2). La
salida pasa a bajo (0) a travs de Q
N1
y Q
N2
.
Cuando ambas entradas estn en bajo, Q
P1
y Q
P2
entran a conduccin y Q
N1
y Q
N2
entran a
corte. La salida pasa a alto a travs de Q
P1
y Q
P2.

En las parejas de transistores ya sean de canal n de canal p, si cualquier entrada es baja,
uno de los transistores entra a corte y otro a conduccin. La salida pasa a alto (1)
acoplandose a travs del transistor en conduccin a V
SS
. El circuito mostrado en la figura
9.3.3. representa una compuerta NAND CMOS.
A
1
B
1
Q
P1
Q
P2
Q
N1
Q
N2
F
0 0 ON ON OFF OFF 1
0 1 ON OFF OFF ON 1
1 0 OFF ON ON OFF 1
1 1 OFF OFF ON ON 0








Figura 9.3.3. Circuito lgico de la compuerta NAND CMOS
Las entradas no usadas de una compuerta CMOS no se pueden dejar abiertas, porque la
salida resulta ambigua. Cuando sobra alguna entrada de una compuerta CMOS se debe
conectar a otra entrada o a uno de los dos terminales de alimentacin. Esto tambin es
vlido para circuitos secuenciales y dems circuitos CMOS. Ejemplo: Contadores, Flip-
Flops, etc.
Compuerta NOR
En una compuerta NOR CMOS, las entradas en nivel alto, hacen que los transistores Q
P1
y
Q
P2
entren en corte y ambos transistores Q
N1
y Q
N2
en conduccin (Ver Tabla 9.3.3). La
salida pasa a bajo (0) a travs de Q
N1
y Q
N2
.
Cuando ambas entradas estn en bajo, Q
P1
y Q
P2
entran a conduccin y Q
N1
y Q
N2
entran a
corte. La salida pasa a alto (1)a travs de Q
P1
y Q
P2.

En las parejas de transistores ya sean de canal n de canal p, si cualquier entrada es baja,
uno de los transistores entra a corte y otro a conduccin. La salida pasa a bajo (0)
acoplandose a travs del transistor en conduccin a tierra. El circuito mostrado en la figura
9.3.4. representa una compuerta NOR CMOS.
A
1
B
1
Q
P1
Q
P2
Q
N1
Q
N2
F
0 0 ON ON OFF OFF 1
0 1 ON OFF OFF ON 0
1 0 OFF ON ON OFF 0
1 1 OFF OFF< ON ON< 0
Tabla 9.3.3. Tabla de estados de la compuerta NOR CMOS

Figura 9.3.4. Circuito lgico de la compuerta NOR CMOS
Familia TTL
I NVERSOR
La descripcin de los elementos del inversor lgico de la figura 9.3.5. se muestra en la tabla
9.3.4. Cuando la entrada E es alta (1), la unin base-emisor de Q
1
se polariza inversamente
y la unin base colector se polariza directamente. La circulacin de corriente por esta
juntura provoca la saturacin del transistor Q
2
. El transistor Q
2
excita a Q
3
, acercndose el
potencial de colector de ste a tierra. La tensin de colector de Q
3
, bloquea el transistor Q
4
.
Cuando la entrada est en nivel bajo (0), la unin base-emisor de Q
1
se polariza
directamente y la unin base colector se polariza inversamente. La circulacin de corriente
por esta juntura tiene el sentido hacia tierra. Q
2
entra en estado de corte por la ausencia de
circulacin de corriente en su base. Por lo tanto, el colector del transistor Q
2
est en nivel
alto y hace entrar en conduccin a Q
4
. La saturacin de Q
4
permite un nivel lgico 1 en la
salida. El potencial de tierra en el emisor de Q
2
impide la conduccin de Q
3
.
Dispositivo Descripcin
Q
1
< Transistor de acoplamiento
D
1
Diodo de fijacin de nivel de entrada
Q
2
Transistor divisor de fase
Q
3
y Q
4
Transistores Totem Pole
Tabla 9.3.4. Tabla descriptiva de los elementos del inversor

Figura 9.3.5. Circuito lgico de un inversor lgico TTL
NAND
La compuertas NAND se detall en la leccin de configuraciones de salida TTL.


Comparacin entre las Distintas Familias Lgicas
Las caractersticas vistas en la leccin 1 se utilizan usualmente para comparar las distintas
familas lgicas. Las caractersticas estticas y las dinmicas sirven de buen comparacin
entre las familias lgicas. La compuerta NAND sirve de comparacin entre cada familia.
Caractersticas Estticas
Entre las caractersticas estticas escogidas se encuentran:
- Funcin de transferencia.
- Caractersticas de entrada.
- Caractersticas de salida.
- Cargabilidad de salida (Fan-Out).
- Disipacin de potencia.
Funcin de Transferencia
La funcin de transferencia de tecnologa CMOS se aproxima ms a la ideal en
comparacin con la tecnologia TTL. Entre las razones ms importantes se encuentran los
estados bajo (0) y alto (1) sin carga, el umbral de conmutacin y el margen de transicin
nulo.
Caractersticas de Entrada
Los estados en los niveles de tensin de entrada y salida se explicaron en la leccin 1. En la
familia TTL los niveles lgicos bajos son ms importantes que los niveles altos. De las
grficos 9.1.4. y 9.1.5. se puede concluir la preferencia de un valor V
ILmx
lo ms elevado
posible y un valor V
IHmn
lo ms reducido posible.
Caractersticas de Salida
Las entradas de las compuertas CMOS nunca deben dejarse flotantes. La estructura de
entrada de un elemento TTL contiene una resistencia que proporciona un camino a V
ss
. La
estructura de los dispositivos CMOS no contiene la resistencia y tiene una impedancia de
entrada extremadamente alta. Por la anterior, un ruido pequeo hace que la entrada sea baja
alta. En el caso de un ruido entre el nivel lgico 0 y 1, los dos transistores de entrada
pueden estar en conduccin y puede circular una corriente excesiva. En ocasiones la
corriente afecta la fuente de tensin y crea una oscilacin de alta frecuencia en la salida del
dispositivo. Segn especificacin del fabricante es necesario conectar la entrada de estos
dispositivos a V
ss
, tierra u otra fuente. Las figuras 9.1.4. y 9.1.5. establecen la diferencia de
salida entre las familias TTL y CMOS.
Cargabilidad de Salida (Fan-Out)
La cargabilidad se puede establecer de acuerdo a nmero mximo de cargas que se pueden
conectar a la salida de una compuerta, para una tensin de salida a nivel bajo de 0.3 V
(V
OL
= 0.3 V). La referencia 4000B tiene un fan - out menor en comparacin a la familia
TTL estndar.
Disipacin de Potencia
Por razones econmicas predominan los dispositivos de baja disipacin de potencia. La
diferencia de potencia CMOS es un milln de veces menor a la familia TTL.
Caractersticas Dinmicas
La caracterstica dinmica de una familia lgica es el comportamiento del dispositivo ante
la conmutacin. Las caractersticas dinmicas ms importantes son:
- Retardo de propagacin y frecuencia mxima de funcionamiento.
- Disipacin de potencia en conmutacin. (familia CMOS).
Retardo de propagacin y frecuencia mxima de funcionamiento
El diseo de un sistema digital de un regimen de trabajo a alta velocidad debe incluir un
tiempo de retardo de propagacin de compuertas bajo. Lgicamente, un menor retardo de
propagacin se traduce en una mayor frecuencia mxima de funcionamiento. El tiempo de
propagacin medio (t
PD
) se mide en nS y la mxima de frecuencia de funcionamiento en
MHz. En la tabla 9.4.1. se muestran los tiempos de la familias lgicas TTL y CMOS.
Disipacin de Potencia en Conmutacin
En la familia CMOS, la disipacin de potencia se da prcticamente en rgimen de
conmutacin. La mayor disipacin de potencia en regimen esttico ocurre en la familia
TTL.
La tabla 9.4.1. muestra algunas caractersticas de las compuertas TTL y CMOS.
Caractersticas TTL

CMOS 3,3 V CMOS 5 V
F LS ALS LV LVC ALVC HC AC AHC
Retardo de Propagacin de puerta, tp (ns) 3,3 10 7 9 4,3 3 7 5 3,7
Frecuencia mxima de reloj (MHz) 145 33 45 90 100 150 50 160 170
Excitacin de salida IOL(mA) 20 8 8 12 24 24 4 24 8
Tabla 9.4.1. Caractersticas de Compuertas TTL y CMOS


Compuerta de Transmisin CMOS
La compuerta de transmisin es un dispositivo utilizado como interruptor controlado por
tensin. Generalmente se emplean transistores para cumplir la funcin de interrupcin y
existen compuertas en tecnologa NMOS, PMOS y CMOS.
Compuerta de transmisin NMOS
La compuerta NMOS corresponde a un transistor MOS de canal N conectado en la
configuracin que se muestra en la figura 9.5.1. En la figura se observa que la fuente se
encuentra conectada a tierra. Este transistor puede conducir corriente en cualquiera de sus
dos direcciones (Vsal/Vent o viceversa) cuando la tensin en la compuerta (V
G
) supere la
tensin de umbral para encenderlo, es decir, aplicando un 1 lgico.

Figura 9.5.1. Compuerta de Transmisin NMOS
Compuerta de transmisin PMOS
El transistor MOS de canal P conectado en la configuracin de la figura 9.5.2 funciona
como compuerta de transmisin. Su funcionamiento es similar a la compuerta de
transmisin NMOS, excepto que la lgica que maneja para entrar en conduccin es inversa,
es decir que la tensin en la compuerta (V
G
) debe ser negativa para encender el transistor,
en este caso la seal aplicada corresponde a un 0 lgico.

Figura 9.5.2. Compuerta de Transmisin PMOS
Compuerta de transmisin CMOS
Esta compuerta agrupa algunas caractersticas de las compuertas de transmisin NMOS y
PMOS. En la figura 9.5.3 (a) se ilustra el circuito de esta compuerta, observe que esta
compuerta contiene un transistor NMOS, un PMOS y un Inversor.

Figura 9.5.3. Compuerta de transmisin CMOS
El inversor es empleado para tener una sola seal de control para encender o apagar los
transistores. Cuando V
C
se encuentra en bajo (0 lgico) el transistor NMOS se apaga al
igual que el transistor PMOS, anlogamente, si la tensin V
C
cambia alto (1 lgico), los
transistores se encenderan. Existe otra representacin de esta compuerta de transmisin, la
cual se ilustra en la figura 9.5.3 (b). Note que la compuerta no tiene incluido el inversor y
que las seales de control son C y C'. Otra opcin de representacin se muestra en la figura
9.5.3 (c).


Circuitos de Arseniuro de Galio
Los circuitos integrados digitales utilizan habitualmente silicio, sin
embargo un semiconductor se puede producir mediante una mezcla de
elementos del grupo tres (III) y cuatro (IV)de la tabla peridica. H.
Welker descubri en los aos cincuenta, que el enlace qumico de estos
compuestos permita una gran movilidad de electrones. El silicio a pesar
de permitir el desarrollo del transistor bipolar y el transistor de efecto de
campo, no es un semiconductor universal que d respuesta a todos los
inconvenientes que se presentan al tratar de realizar dispositivos en
diferentes aplicaciones prcticas. Por lo tanto se ha generado el inters
por desarrollar dispositivos con semiconductores III- IV y puntualmente,
con arseniuro de galio (GaAs), complementarios en la fabricacin de
circuitos integrados de gran velocidad.
Los transistores MOSFET han sido ampliamente utilizados en tecnologas
de silicio debido a las caractersticas estables del xido de silicio que
permiten su utilizacin como aislante entre la puerta y el sustrato. Por el
contrario, los xidos de arsenuro de galio presentan grandes
dispersiones en sus caractersticas que no permiten tensiones de umbral
constantes.

Figura 9.6.1. Canal N de transistores MOS
Por ello se han realizado grandes esfuerzos, con resultados positivos,
para realizar en tecnologas GaAs transistores de efecto de campo de
semiconductor y metal (Metal-semiconductor fireld effect transistor
(MESFET)) una de cuyas estructuras bsicas se representa en la figura
9.6.1.
Este transistor se diferencia del MOS al emplear un sustrato
semiaislante formado por una zona de alta resistividad que hace posible
que la tensin aplicada entre l y la puerta controle por efecto de campo
la anchura del canal entre el drenador y la fuente o surtidor.
Los transistores MESFET pueden ser, al igual que los CMOS,
empobrecidos (depletion) D-MESFET y enriquecidos (enhancement) E-
MESFET. Los D-MESFET conducen con tensin de puerta nula y los E-
MESFET necesitan ser polarizados adecuadamente (positivamente la
puerta con respecto al sustrato en transistores en transistores de canal
N).
Lgica de Diodo Schottky Fet
La familia lgica de diodo Schottky Fet o SDFL (Schottky Diode FET Logic) incluye un
inversor. La figura 9.6.2. muestra un inversor bsico. El dispositivo del lado derecho
mantiene conduciendo los diodos conduciendo. Los dispositivos del lado derecho
funcionan como un inversor NMOS con carga activa de deplexin.
En estado lgico uno de salida, el transistor 5 est cortado y 4 est en estado ohmico pero
entrega corriente cero.

Figura 9.6.2. Inversor SDFL
En estado lgico cero de salida, el transistor 5 conduce y 4 est activo.


Memorias
La mayora de los procesos lgicos en electrnica digital se encuentran constituidos por
sistemas que manipulan la informacin binaria para dar como resultado una o varias
salidas.
En el proceso de manipular la informacin, los sistemas requieren del almacenamiento
temporal o permanente de los estados lgicos. Un ejemplo de este tipo de sistemas son los
microcomputadores, los cuales necesitan del almacenamiento tanto de datos como de los
programas que manipulan la informacin.
En este capitulo veremos los tipos de memorias que existen, sus aplicaciones y algunos
ejemplos de memorias de uso general disponibles en el mercado.


Aspectos Generales sobre Memorias
Las unidades de memoria son mdulos conformados por un conjunto de cerrojos o
condensadores agrupados de tal forma que almacenan varias palabras binarias de n bits.
Cada una de ellas tienen la capacidad de almacenar un bit de informacin (1 o 0), y se
conocen con el nombre de celdas de memoria. Las celdas o bits de memoria se ubican
mediante la fila y la columna en la que se encuentra. En la figura 10.1.1 se observa como
ubicar un bit y una palabra dentro de una memoria.

Figura 10.1.1. Ubicacin de la informacin en una memoria
Las palabras binarias se identifican con una direccin la cual define la ubicacin dentro del
arreglo y generalmente se designa con un nmero binario, octal o hexadecimal. En la
mayora de las aplicaciones se asocian en grupos de ocho unidades para formar bytes y el
tamao de las palabras en las memorias actuales est entre 4 y 64 bits.
El parmetro bsico de una memoria es su capacidad, la cual corresponde al total de
unidades que puede almacenar. Como ejemplo, la memoria de la figura 10.1.1 tiene una
capacidad de 8n bits, que en otras palabras representa n bytes. Regularmente estas
memorias en la actualidad se consiguen en tamaos del orden megabytes.
El tiempo de acceso es otro parmetro importante en las memorias. Este corresponde al
tiempo que tarda la memoria en acceder a la informacin almacenada en una direccin.
Generalmente este tiempo se designan como t
acc
en las fichas tcnicas de estos dispositivos.
En tabla 10.1.1 se indican los tiempos de acceso de las memorias en Circuito Integrado
comparados con los tiempos de otros tipos de memoria.
Memoria Tiempo de Acceso
Ncleo de Ferrita 0.3 - 1.0 us
Cinta Magntica 5 ms - 1s
Disco Magntico 10ms - 50 ms
CD ROM 200 ms 400 ms
Memorias Integradas MOS 2ns 300 ns
Memorias Integradas
Bipolares
0.5ns 30 ns
Tabla 10.1.1. Comparacin de tiempos de acceso de diversos tipos de memorias
Operaciones bsicas de una Memoria
La funcin bsica de las memorias es almacenar informacin. Sin embargo las memorias
tienen la funcin especifica de escribir y leer los datos en su interior. En la figura 10.1.2 se
observa la estructura bsica de una memoria de 1K de 4 bits, en la cual se indican sus partes
bsicas.

Figura 10.1.2. Esquema descriptivo de una Memoria
En la figura 10.1.2 la entrada de direcciones (A
0
a A
9
), como su nombre lo indica, define la
posicin a escribir o leer dentro de la memoria, las entradas y salidas de datos definen los
datos a escribir y leer respectivamente, la entrada WE controla el tipo de operacin que la
memoria debe hacer y la entrada OE corresponde a la seal de habilitacin de la memoria,
la cual habilita o deshabilita la memoria para responder a las dems entradas.
En los computadores modernos las memorias actan directamente con la CPU a travs de
canales de comunicacin llamados buses. En la figura 10.1.3 se observa un esquema
general, el cul muestra cmo interacta la CPU de un microcomputador con las memorias
a travs de estos canales.

Figura 10.1.3. Esquema Simplificado de un Microcomputador.
Las operaciones bsicas de una memoria consisten en leer y almacenar informacin
mediante el uso del bus de datos y direcciones. Estas operaciones ocurren en un orden
lgico, el cual se indica a continuacin:
- Apuntar a la direccin de memoria que se desea leer o escribir mediante el uso del
bus de direcciones
- Seleccin del tipo de operacin: Lectura o escritura.
- Cargar los datos a almacenar (en el caso de una operacin de escritura)
- Retener los datos de la memoria (en el caso de una operacin de lectura)
- Habilitar o deshabilitar la memoria para una nueva operacin.



Memorias de Acceso Aleatorio
Las memorias de Acceso Aleatorio son conocidas como memorias RAM de la sigla en
ingls Random Access Memory. Se caracterizan por ser memorias de lectura/escritura y
contienen un conjunto de variables de direccin que permiten seleccionar cualquier
direccin de memoria de forma directa e independiente de la posicin en la que se
encuentre.
Estas memorias son voltiles, es decir, que se pierde la informacin cuando no hay energa
y se clasifican en dos categoras bsicas: la RAM esttica y la RAM dinmica, las cuales se
describen en las siguientes dos secciones.
Memoria RAM esttica
Este tipo de memoria conocida como SRAM (Static Random Access Memory) se compone
de celdas conformadas por flip-flops construidos generalmente con transistores MOSFET,
aunque tambin existen algunas memorias pequeas construidas con transistores bipolares.
En la figura 10.2.1 se observa la estructura tpica de una celda de memoria de una SRAM.

Figura 10.2.1. Estructura de una celda de memoria SRAM
Como se observa en la figura la celda se activa mediante un nivel activo a la entrada
superior y los datos se cargan o se leen a travs de las lneas laterales.
Las celdas de memoria se agrupan en filas y columnas para conformar el arreglo bsico de
la memoria. En la figura 10.2.2 se muestra la disposicin de las celdas de memoria en una
SRAM, donde se observa que cada una de las filas se habilita de forma simultnea para
recibir o cargar los datos del bus de entrada/salida.

Figura 10.2.2. Arreglo bsico de una SRAM
Existen otras modalidades de funcionamiento de las memorias estticas, entre ellas se
pueden nombrar las siguientes:
SRAM Sincrnica
Al igual que en los sistemas sincrnicos, este tipo de memoria tiene una entrada de reloj, la
cual le permite operar en sincrona con otros dispositivos. Esta caracterstica no aporta
mejores beneficios, sin embargo simplifica enormemente el diseo de sistemas de alta
prestaciones, ya que una nica seal controla todos los dispositivos involucrados. La
ventaja de estas memorias viene proporcionada por lo que se podra llamar su
funcionamiento automtico, guiado por la seal de reloj, por lo que no es necesario
ocuparse de generar las seales de control.
SRAM de Rfaga
Las memorias de rfagas (burst) son sincrnicas y se caracterizan por incluir un contador
que permite que la memoria genere internamente la direccin a la que debe acceder,
consiguiendo de esta forma accesos hasta cuatro posiciones de memoria con una sola
direccin de referencia. Esto permite acceder de forma mas rpida a la informacin en
memoria.
Vemos como funciona este tipo de memoria. La CPU genera una direccin de memoria, la
cual se propaga a travs del bus de direcciones hasta la memoria, decodificndose y
accediendo a la posicin correspondiente. Si se ha configurado la memoria en modo rfaga,
una vez obtenido el primer dato, incrementa la direccin y vuelve a acceder. De esta forma
se evita el tiempo de propagacin de las seales por el bus y el tiempo de decodificacin de
la direccin. El numero de palabras ledas o escritas en una rfaga, viene limitado por el
tamao del contador interno de la memoria.
SRAM Pipeline
Con los dos tipos de memorias anteriores se consigue el acceso a posiciones consecutivas
de forma rpida. Para mantener esta velocidad cuando se cambia de secuencia, las
memorias pipeline incluyen un buffer para almacenar la direccin y los datos actuales
proporcionados por la memoria. De esta forma, se puede enviar la nueva direccin antes de
terminar la lectura, consiguiendo as que la CPU no espere la finalizacin del acceso a una
posicin de memoria para generar la nueva direccin.
Memoria RAM dinmica
Este tipo de memoria conocida como DRAM (Dinamic Random Access Memory), a
diferencia de la memoria esttica se compone de celdas de memoria construidas con
condensadores. Las celdas de memoria son de fabricacin ms sencillas en comparacin a
las celdas a base de transistores, lo cual permite construir memorias de gran capacidad. La
figura 10.2.3 se observa la composicin interna de una de estas celdas.

Figura 10.2.3. Celda de memoria de una DRAM
La operacin de la celda es similar a la de un interruptor, cuando el estado en la fila se
encuentra en alto, el transistor entra en saturacin y el dato presente en el bus interno de la
memoria (columna) se almacena en el condensador, durante una operacin de escritura y se
extrae en una operacin de lectura. El inconveniente que tiene este tipo de memorias
consiste en que hay que recargar la informacin almacenada en las celdas, por lo cual estas
celdas requieren de circuitera adicional para cumplir esta funcin. En la figura 10.2.4 se
observa la celda completa con sus aditamentos donde se puede identificar la forma en que
se desarrollan las operaciones de escritura, lectura y recarga.

Figura 10.2.4. Sistema lectura, escritura y recarga de una celda DRAM
Como se ha notado, existen diferencias entre la memoria Esttica y Dinmica. En La tabla
10.2.1 se indican las ventajas y desventajas de los dos sistemas de memoria, lo cual permite
seleccionar el tipo de memoria dependiendo de la aplicacin.
Memoria Ventajas Desventajas
SRAM
- La velocidad de acceso
es alta.
- Para retener los datos
solo necesita estar
energizada.
- Son mas fciles de
disear.
- Menor capacidad, debido
a que cada celda de
almacenamiento requiere
mas transistores.
- Mayor costo por bit.
- Mayor consumo de
Potencia.
DRAM
- Mayor densidad y
capacidad.
- Menor costo por bit.
- Menor consumo de
potencia.
- La velocidad de acceso
es bajar.
- Necesita recargar de la
informacin. almacenada
para retenerla.
- Diseo complejo.

Memorias de Solo Lectura
Las memorias de solo lectura son conocidas como memorias ROM de la sigla en ingls
Read Only Memory. Se caracterizan por ser memorias de lectura y contienen celdas de
memoria no voltiles, es decir que la informacin almacenada se conserva sin necesidad de
energa. Este tipo de memoria se emplea para almacenar informacin de forma permanente
o informacin que no cambie con mucha frecuencia.
Actualmente se dispone de varios tipos de memorias ROM, a continuacin se explicar
cada una de ellas con sus caractersticas bsicas.
Memoria ROM de Mscara
Esta memoria se conoce simplemente como ROM y se caracteriza porque la informacin
contenida en su interior se almacena durante su construccin y no se puede alterar. Son
memorias ideales para almacenar microprogramas, sistemas operativos, tablas de
conversin y caracteres.
Generalmente estas memorias utilizan transistores MOS para representar los dos estados
lgicos (1 0). La programacin se desarrolla mediante el diseo de un negativo
fotogrfico llamado mscara donde se especifican las conexiones internas de la memoria.
En la figura 10.3.1 se muestra la celda de memoria de una ROM de este tipo, en tecnologas
TTL y MOS.

Figura 10.3.1. Celdas de memoria para una ROM
Las celdas de memoria se organizan en grupos para formar registros del mismo tamao y
estos se ubican fsicamente formando un arreglo, como el indicado en la figura 10.3.2.

Figura 10.3.2. Organizacin interna de una Memoria ROM
Memoria PROM
Esta memoria es conocida como ROM programable de la sigla en ingls Programmable
Read Only Memory. Este tipo de memoria a diferencia de la ROM no se programa durante
el proceso de fabricacin, en vez de ello la programacin la efecta el usuario y se puede
realizar una sola vez, despus de la cual no se puede borrar o volver a almacenar otra
informacin.
El proceso de programacin es destructivo, es decir, que una vez grabada, es como si fuese
una ROM normal. Para almacenar la informacin se emplean dos tcnicas: por destruccin
de fusible o por destruccin de unin. Comnmente la informacin se programa o quema
en las diferentes celdas de memoria aplicando la direccin en el bus de direcciones, los
datos en los buffers de entrada de datos y un pulso de 10 a 30V, en una terminal dedicada
para fundir los fusibles correspondientes. Cuando se aplica este pulso a un fusible de la
celda, se almacena un 0 lgico, de lo contrario se almacena un 1 lgico (estado por
defecto), quedando de esta forma la informacin almacenada de forma permanente. En la
figura 10.3.3 se observa la disposicin interna de una celda de memoria y los fusibles
correspondientes.

Figura 10.3.3. Celda de Memoria de una PROM
El proceso de programacin de una PROM generalmente se realiza con un equipo especial
llamado quemador. Este equipo emplea un mecanismo de interruptores electrnicos
controlados por software que permiten cargar las direcciones, los datos y genera los pulsos
para fundir los fusibles del arreglo interno de la memoria. En la figura 10.3.4 se indica de
forma esquemtica la funcin del programador.

Figura 10.3.4. Programacin de un PROM
Memoria EPROM
Este tipo de memoria es similar a la PROM con la diferencia que la informacin se puede
borrar y volver a grabar varias veces. Su nombre proviene de la sigla en ingls Erasable
Read Only Memory.
La programacin se efecta aplicando en un pin especial de la memoria una tensin entre
10 y 25 Voltios durante aproximadamente 50 ms, segn el dispositivo, al mismo tiempo se
direcciona la posicin de memoria y se pone la informacin a las entradas de datos. Este
proceso puede tardar varios minutos dependiendo de la capacidad de memoria.
La memoria EPROM, tal como las memorias vistas anteriormente se compone de un
arreglo de transistores MOSFET de Canal N de compuerta aislada. En la figura 10.3.5 se
observa el transistor funcionando como celda de memoria en una EPROM.

Figura 10.3.5. Celda de memoria de una EPROM
Cada transistor tiene una compuerta flotante de SiO
2
(sin conexin elctrica) que en estado
normal se encuentra apagado y almacena un 1 lgico. Durante la programacin, al aplicar
una tensin (10 a 25V) la regin de la compuerta queda cargada elctricamente, haciendo
que el transistor se encienda, almacenando de esta forma un 0 lgico. Este dato queda
almacenado de forma permanente, sin necesidad de mantener la tensin en la compuerta ya
que la carga elctrica en la compuerta puede permanecer por un perodo aproximado de 10
aos.
Por otra parte el borrado de la memoria se realiza mediante la exposicin del dispositivo a
rayos ultravioleta durante un tiempo aproximado de 10 a 30 minutos. Este tiempo depende
del tipo de fabricante y para realizar el borrado, el circuito integrado dispone de una
ventana de cuarzo transparente, la cual permite a los rayos ultravioleta llegar hasta el
material fotoconductivo presente en las compuertas aisladas y de esta forma lograr que la
carga se disipe a travs de este material apagando el transistor, en cuyo caso todas las
celdas de memoria quedan en 1 lgico. Generalmente esta ventana de cuarzo se ubica sobre
la superficie del encapsulado y se cubre con un adhesivo para evitar la entrada de luz
ambiente que pueda borrar la informacin, debido a su componente UV. En la figura 10.3.6
se observa la fotografa de una memoria de este tipo.

Figura 10.3.6. Apariencia Fisica de una EPROM
Memoria EEPROM
La memoria EEPROM es programable y borrable elctricamente y su nombre proviene de
la sigla en ingls Electrical Erasable Programmable Read Only Memory. Actualmente
estas memorias se construyen con transistores de tecnologa MOS (Metal Oxide Silice) y
MNOS (Metal Nitride-Oxide Silicon).
Las celdas de memoria en las EEPROM son similares a las celdas EPROM y la diferencia
bsica se encuentra en la capa aislante alrededor de cada compuesta flotante, la cual es ms
delgada y no es fotosensible.
La programacin de estas memorias es similar a la programacin de la EPROM, la cual se
realiza por aplicacin de una tensin de 21 Voltios a la compuerta aislada MOSFET de cada
transistor, dejando de esta forma una carga elctrica, que es suficiente para encender los
transistores y almacenar la informacin. Por otro lado, el borrado de la memoria se efecta
aplicando tensiones negativas sobre las compuertas para liberar la carga elctrica
almacenada en ellas.
Esta memoria tiene algunas ventajas con respecto a la Memoria EPROM, de las cuales se
pueden enumerar las siguientes:
- Las palabras almacenadas en memoria se pueden borrar de forma individual.
- Para borra la informacin no se requiere luz ultravioleta.
- Las memorias EEPROM no requieren programador.
- Para reescribir no se necesita se necesita hacer un borrado previo.
- Se pueden reescribir aproximadamente unas 1000 veces sin que se observen
problemas para almacenar la informacin.
El tiempo de almacenamiento de la informacin es similar al de las EPROM, es decir
aproximadamente 10 aos.
Memoria FLASH
La memoria FLASH es similar a la EEPROM, es decir que se puede programar y borrar
elctricamente. Sin embargo esta rene algunas de las propiedades de las memorias
anteriormente vistas, y se caracteriza por tener alta capacidad para almacenar informacin y
es de fabricacin sencilla, lo que permite fabricar modelos de capacidad equivalente a las
EPROM a menor costo que las EEPROM.
Las celdas de memoria se encuentran constituidas por un transistor MOS de puerta apilada,
el cual se forma con una puerta de control y una puerta aislada, tal como se indica en la
figura 10.3.7. La compuerta aislada almacena carga elctrica cuando se aplica una tensin
lo suficientemente alta en la puerta de control. De la misma manera que la memoria
EPROM, cuando hay carga elctrica en la compuerta aislada, se almacena un 0, de lo
contrario se almacena un 1.

Figura 10.3.7 Celda de memoria de una FLASH
Las operaciones bsicas de una memoria Flash son la programacin, la lectura y borrado.
Como ya se mencion, la programacin se efecta con la aplicacin de una tensin
(generalmente de 12V o 12.75 V) a cada una de las compuertas de control, correspondiente
a las celdas en las que se desean almacenar 0s. Para almacenar 1s no es necesario aplicar
tensin a las compuertas debido a que el estado por defecto de las celdas de memoria es 1.
La lectura se efecta aplicando una tensin positiva a la compuerta de control de la celda de
memoria, en cuyo caso el estado lgico almacenado se deduce con base en el cambio de
estado del transistor:
- Si hay un 1 almacenado, la tensin aplicada ser lo suficiente para encender el
transistor y hacer circular corriente del drenador hacia la fuente.
- Si hay un 0 almacenado, la tensin aplicada no encender el transistor debido a que
la carga elctrica almacenada en la compuerta aislada.
Para determinar si el dato almacenado en la celda es un 1 un 0, se detecta la corriente
circulando por el transistor en el momento que se aplica la tensin en la compuerta de
control.
El borrado consiste en la liberacin de las cargas elctricas almacenadas en las compuertas
aisladas de los transistores. Este proceso consiste en la aplicacin de una tensin lo
suficientemente negativa que desplaza las cargas como se indica en la figura 10.3.8.

Figura 10.3.8. Proceso de descarga de una celda de memoria FLASH


Aplicaciones de las Memorias
En la actualidad muchos de los sistemas electrnicos necesitan dispositivos para almacenar
y/o leer informacin. Como ejemplo de este tipo de sistemas podemos mencionar los
telfonos electrnicos, televisores, equipos de sonido y los computadores entre otros.
Esta leccin se centrar en mencionar algunas aplicaciones particulares de las memorias
que pueden ser de inters para desarrollar proyectos.
Memoria RAM
La memoria RAM es uno de los componentes ms importantes en un computador. Cuando
se requiere emplear un archivo de datos o programa, los datos o instrucciones son ledos
desde el disco duro o disquete y colocados en una memoria RAM, para que sean ledos por
el microprocesador, permitindole manipularlos, ingresar nuevos datos, modificar los
existentes, hacer clculos, bsquedas, resmenes, etc.
El uso ms difundido de estos dispositivos indiscutiblemente se encuentra en los
computadores:
- Se utilizan en sistemas microprocesados, y en los microcontroladores, en sistemas
pequeos es de lectura/escritura.
- En los computadores se utiliza como memoria de Cache y memoria de vdeo.
Las memorias para computadores generalmente no se consiguen en chips, sino en mdulos
de memoria empaquetados en dos formatos bsicos: SIMM y DIMM que contienen 8, 16,
32, 64 o 128 MB cada uno. Estos mdulos se introducen en ranuras o slots en la tarjeta
madre de los computadores y en la figura 10.4.1 se muestra su presentacin de 32 y 72
pines.

Figura 10.4.1. Mdulos de Memoria RAM
Memoria ROM
Programas y Datos
La aplicacin ms difundida en este tipo de memoria ha sido el almacenamiento de cdigos
de programas para el momento del arranque de dispositivos que utilizan microprocesadores,
como es el caso de los computadores.
Los Computadores vienen con una memoria ROM, donde se encuentran alojados los
programas del BIOS (Basic Input Output System), el cual contiene las instrucciones y datos
necesarios para activar y hacer funcionar el computador y sus perifricos. Debido a que en
esta memoria la informacin est disponible en cualquier momento, los programas en una
ROM son a menudo los cimientos sobre los que se construye el resto de los programas
(incluyendo el DOS).
La ventaja de tener los programas fundamentales del computador almacenados en una
ROM, es que estn all disponibles y no hay necesidad de cargarlos en la memoria desde el
disco de la misma forma que se carga el DOS. Comnmente estos programas son llamados
Firmware, lo que indica que se encuentran firmemente almacenados en el Hardware y que
no cambian.
Funciones matemticas y Generadores de Seales
Otra aplicacin de estas memorias consiste en el almacenamiento de tablas de datos que
permiten generar funciones matemticas. Por ejemplo existen memorias que almacenan
funciones trigonomtricas y hallan el resultado con base en el valor binario introducido en
el bus de direcciones. En la figura 10.4.1, se observa como se puede implementar un
generador de una seal seno, a partir de la informacin almacenada en una memoria ROM.

Figura 10.4.2. Generador de seales con una memoria ROM


Ejemplos de Memorias Comerciales
Las memorias son circuitos integrados cuyos pines se hayan en ambos lados de la cpsula,
formando dos lneas o hileras de pines (DIP) y generalmente se fabrican con capacidades
de orden de Kilobytes o Megabytes mltiplos de 8, por ejemplo 8k, 16k, 32k, 64k, 128k, o
8M, 16M, 32M, etc.

Figura 10.5.1. Distribucin de pines de un chip de memoria
En la figura 10.5.1 se observa un esquema descriptivo de los pines que generalmente se
encuentran en una memoria. A continuacin se da una explicacin de cada uno de estos
pines:
- A
0
...A
n
(Bus de direcciones): Estos pines son las entradas para seleccionar la
posicin de memoria a escribir o leer y su cantidad define la capacidad de palabras
que puede almacenar, dada por la expresin 2
n
, donde n es el nmero de pines.
- D
0
...D
i
(Bus de Datos): Corresponde a los pines de entrada y salida de datos. En el
mercado se consiguen generalmente buses de 1, 4, 8 y 16 bits y lo ms usual es
encontrar chips tengan 8 entradas de datos.
- CS (Chip Select): Este pin se utiliza para seleccionar el chip de memoria que se
desea acceder. Esto en el caso del usar dos o ms memorias similares.
- OE (Output Enable): Utilizado para habilitar la salida de datos. Cuando se
encuentra en estado activo las salidas tiene alta impedancia o actan como entradas.
- R/W (Read/Write): Entrada utilizada en las memorias RAM para seleccionar la
operacin de lectura o escritura
- V
CC
y GND (Alimentacin): Corresponden a los pines de alimentacin del circuito
integrado. Algunas tienen disponible tres pines para este propsito, pero por lo
general son dos y el valor de la tensin de alimentacin depende de la tecnologa de
fabricacin del circuito.
En las siguientes secciones se indicaran algunos ejemplos de circuitos integrados de uso
general disponibles en el mercado, dando un ejemplo de cada uno de los tipos de memorias
vistas.
MEMORIA SRAM - MCM6264C
Esta memoria fabricada por Motorola y desarrollada con tecnologa CMOS tiene una
capacidad de 8K x 8. Los tiempos de lectura y escritura del integrado son de
aproximadamente 12 ns y tiene un consumo de potencia aproximado de 100 mW. En la
Figura 10.5.2 se observa la disposicin de los pines del circuito integrado de esta memoria
y sus las caractersticas tcnicas bsicas.

Caractersticas Tcnicas
Referencia
MCM6264C
Tipo
SRAM
Capacidad (bits)
8192 X 8
Tipo de salida
5V
Tiempos de Acceso
12/15/20/25/35 ns
Encapsulado
DIL-28
Figura 10.5.2 SRAM MCM6264C
MEMORIA DRAM 4116
El CI 4116 es una memoria DRAM de 16K x 1. La estructura interna de este integrado se
encuentra constituida por un arreglo de 128 filas y 128 columnas donde cada uno de los bits
se ubican con una direccin de 14 bits. En la figura 10.5.3 se muestra la disposicin de los
pines del circuito integrado. Observe que la entrada de direcciones es de 7 bits (A0...A6). La
razn de poseer 7 pines y no 14, se debe a que estos tienen funcin doble, por ejemplo la
entrada A0 se utiliza para establecer los valores de los bits A0/A7 de la direccin de
memoria que se quiere acceder.

Caractersticas
Tcnicas
Referencia
4116
Tipo
DRAM
Capacidad (bits)
16384 X 1
Tipo de salida
TRI-STATE
Tiempos de Acceso
100/120/150/200 ns
Encapsulado
DIL-16
Figura 10.5.3. DRAM 4116
Para ingresar una direccin de memoria en este integrado se utilizan las seales de entrada
RAS y CAS, las cuales deben estar inicialmente en "1" para recibir los 7 bits menos
significativos de la direccin (A6...A0). Despus de ello la entrada RAS debe cambiar a "0"
con lo cual los 7 bits se cargan en el registro de direcciones de memoria y el dispositivo
queda disponible para recibir los 7 bits mas significativos (A7...A14) de la direccin. Una
vez se aplican estos bits, la entrada CAS debe cambiar a "0", cargndolos de esta forma en
el registro de direcciones en su respectiva posicin y permitiendo finalmente acceder a la
posicin de memoria para efectuar la operacin de lectura o escritura.
MEMORIAS PROM - 74S473
Esta memoria tiene una capacidad de 512 palabras de 8 bits y la descripcin de sus pines se
muestra en la figura 10.5.4

Caractersticas
Tcnicas
Referencia
74S473
Tipo
PROM
Capacidad (bits)
512 X 8
Tipo de salida
OPEN COLECTOR
Tiempos de Acceso
60 ns
Encapsulado
DIL-20
Figura 10.5.4. PROM 74S473
MEMORIA EPROM - 27C16B
Esta memoria de 24 pines tiene una capacidad de 2048 palabras de 8 bits, es decir 2KB. Las
salidas de esta memoria son triestado, lo que permite escribir o leer los datos con el mismo
bus de datos.

Caractersticas Tcnicas
Referencia
27C16B
Tipo
EPROM CMOS
Capacidad (bits)
2048 X 8
Tipo de salida
(5V) (Vp=12.75V)
Tiempos de Acceso
150/250 ns
Encapsulado
DIL-24
Figura 10.5.5. EPROM 27C16B
Esta memoria tiene dos pines no indicados inicialmente:
- VPP: Es utilizado durante la programacin.
- CE/P (Chip Enable/Program): Utilizado para seleccionar el chip (en caso de
emplearse en forma conjunta con otros) y para programar la posicin de memoria
seleccionada en el bus de direcciones.
Durante la programacin de la memoria, la entrada OE se debe encontrar en 1. En la
entrada debe estar presente una tensin de 5V, as como en los datos y la direccin de
memoria. Despus de ello, se aplica pulso de tensin durante 30 ms aproximadamente, para
almacenar los datos.
Como se vi anteriormente, el borrado de este tipo de memoria se efecta mediante la
exposicin del integrado a luz ultravioleta. Una lmpara UV de 12mW, puede ser utilizada
para efectuar este proceso, el cual tarda entre 20 y 25 minutos.
MEMORIA EEPROM - 28C64A
Esta memoria tiene una capacidad de 8K X 8 y tiene caractersticas diferentes a las dems.
La informacin almacenada puede perdurar aproximadamente 100 aos y puede soportar
hasta 100.000 ciclos de grabado y borrado.

Caractersticas Tcnicas
Referencia
28C64A
Tipo
EEPROM CMOS
Capacidad (bits)
8192 X 8
Tipo de salida
5V
Tiempos de Acceso
120/150/200 ns
Encapsulado
DIL-28 y PLCC-32
Figura 10.5.6. EEPROM 28C64A
En la figura 10.5.6 se indica la disposicin de los pines de esta memoria la cual se
encuentra disponible en dos tipos de encapsulados (DIL y PLCC).
MEMORIA FLASH - 27F256
La capacidad de esta memoria es de 32K X 8 y como memoria Flash tiene la caracterstica
particular de ser borrada en un tiempo muy corto (1 seg.). El tiempo de programacin por
byte es de 100 ms y el tiempo de retencin de la informacin es de aproximadamente 10
aos.

Caractersticas
Tcnicas
Referencia
28F256
Tipo
FLASH EEPROM
Capacidad (bits)
32768 X 8
Tipo de salida
(5V) (Vp=12.5V)
Tiempos de Acceso
90/100/120/150 ns
Encapsulado
DIL-28
Figura 10.5.7. Memoria Flash 27F256
En la figura 10.5.7 se indica la disposicin de los pines de esta memoria con sus
caractersticas tcnicas bsicas.


Procesadores Digitales

Gran parte de los temas tratados en los captulos precedentes tienen aplicacin en los
sistemas digitales actuales, en especial en los computadores, aunque tambin se emplean en
otros equipos de uso cotidiano como: impresoras, equipos de sonido y televisores, entre
otros.
El microprocesador o llamado actualmente Procesador Digital se considera uno de los
dispositivos ms importantes en los computadores, debido a la capacidad que tiene de
manejar gran variedad de tareas y rutinas. Este dispositivo y en general la
microcomputadora ser el tema a estudiar a lo largo del capitulo.
Este capitulo pretende mostrar los aspectos bsicos sobre los Procesadores Digitales y su
funcionamiento en forma conjunta con otros dispositivos como memorias y puertos. La
profundizacin y/o ampliaciones sobre este capitulo se dejan al estudiante debido a que el
tema podra tomar varios captulos o inclusive un curso completo.


Configuracin
El procesador digital o microprocesador es el dispositivo que contiene las funciones de la
Unidad Central de Proceso (CPU) en un computador. Este dispositivo se encarga de
cumplir las funciones bsicas del computador y puede ser incorporado en otros sistemas
digitales que realizan funciones especiales.
El Procesador en trminos generales es el cerebro de un computador, cuyas partes bsicas
son: el contador de programa, el decodificador de instrucciones, los registros y la unidad
aritmtica y lgica. En la figura 11.1.1 se indica la disposicin de tales partes.

Figura 11.1.1. Componentes de un procesador
Todos los datos (las instrucciones y los datos) son ledos por la CPU a travs de los
registros. Las instrucciones (el cdigo del programa) son ledas en un registro llamado
"Instruction Register" y luego son decodificadas mediante un decodificador, que interpreta
el tipo de instruccin. Dependiendo de la instruccin, se leen a continuacin los datos a
procesar, los cuales se almacenan en un registro llamado "Acumulador" o "Registro de
Trabajo" que se encuentra directamente relacionado con la Unidad Aritmtica y Lgica
(ALU). La ALU es un modulo del procesador donde se realizan todos los procesos lgicos y
aritmticos con los datos. Los resultados de la ALU son almacenados nuevamente en el
Acumulador, donde pueden ser enviados a una posicin de memoria o a un dispositivo de
E/S.
Las seales mas importantes que maneja el procesador corresponden a las del bus del
sistema. Este bus cumple un papel importante en el funcionamiento del microcomputador y
sern estudiados en la siguiente leccin.


Arquitectura de un Microcomputador
Un microcomputador es un sistema digital que contiene por lo menos tres componentes
esenciales: un procesador (CPU), una Memoria y los Puertos Entrada/Salida. En la figura
11.2.1 se muestra un diagrama de bloques de estos componentes y su conexin a travs de
los buses de direcciones, datos y control, los cuales sern explicados mas adelante en esta
leccin.

Figura 11.2.1. Componentes de un microcomputador
Un microcomputador en pocas palabras puede es una computadora de propsito general,
como un PC en miniatura, o un sistema diseado para cumplir una tarea especial, como es
el caso de los microcontroladores. En la figura 11.2.2 se muestra la apariencia interna de un
microcomputador. Las lneas delgadas que van del centro hacia afuera son los alambres que
conectan los bloques internos del microcomputador con los pines de la cpsula.

Figura 11.2.2. Apariencia fsica del interior de un microcomputador
El microcomputador para interactuar con los dems dispositivos como las memorias,
puertos y otros utiliza el bus del sistema. A continuacin de dar una explicacin sobre la
composicin de este bus y su funcionamiento.
Bus del Sistema
Los buses de direcciones, datos y control mostrados inicialmente en la figura 11.2.1 son el
"bus del sistema". Este bus se encuentra separado en tres canales que manejan
respectivamente direcciones, datos y seales de control, los cuales permiten el procesador
comunicarse con los dems dispositivos del microcomputador, tales como las memorias y
los dispositivos de E/S.
Bus de Datos
Este bus es bidireccional y es el canal por el cual se conducen los datos entre la CPU y los
dems dispositivos (memorias, puertos y otros).
Bus de Direcciones
El bus de direcciones es un canal unidireccional por el cual la CPU enva las direcciones de
memoria para ubicar informacin en los dispositivos de memoria, puertos u otros
dispositivos del microcomputador.
Bus de Control
El bus de control, al igual que el bus de direcciones es unidireccional y se utiliza para
efectuar la lectura y escritura en las memorias y puertos de E/S. Este bus en general lo
emplea la CPU para controlar el flujo de los datos y las direcciones de forma organizada.
Funcionamiento del Bus del Sistema
El bus de datos depende del tamao de los datos que maneja el procesador, este puede tener
8, 16 o 32 bits y el bus de direcciones generalmente tiene como mnimo 16 bits. El bus del
sistema se utiliza para transferir informacin entre la CPU y la memoria o para extraer
instrucciones almacenadas en memoria y datos presentes en los puertos de E/S.
El intercambio de informacin por el bus del sistema se realiza con dos tipos de
operaciones:
- Ciclo de Lectura: Cuando los datos en Memoria o puertos de E/S se transfieren a la
CPU.
- Ciclo de Escritura: Cuando los datos de la CPU se transfieren a la Memoria o a los
puertos de E/S.
Las lneas de control son aquellas con las que se controla el flujo de la informacin por los
buses, y las ms importantes son:
- CHIPSELECT (CS)
- LECTURA (RD)
- ESCRITURA (WR)
Cada transferencia empieza con la carga de una direccin en el bus de direcciones. Las
lneas correspondientes a la los bits menos significativos de la direccin se encuentran
conectados directamente a las memorias. Las lneas de direccin de los bits ms
significativos se utilizan para seleccionar el dispositivo del cual se desea extraer la
informacin, ya sea una EPROM, RAM o un Puerto de E/S. Entonces, el decodificador de
direcciones se encarga de seleccionar el dispositivo que se debe activar segn la direccin
presente en el bus. Para ello, cada dispositivo en el microcomputador debe tener una nica
direccin que lo identifique. En la figura 11.2.3 se muestra un diagrama de los tiempos de
las seales presentes durante el flujo de los datos y direcciones en el bus del sistema.

Figura 11.2.3. Diagrama de tiempos de las seales del bus del sistema.
La seal CS selecciona el dispositivo que debe transmitir los datos por el bus de datos.
Luego una de las seales RD o WR se activa desde la CPU, con lo cual se ordena al
dispositivo seleccionado enviar los datos a la CPU (ciclo de lectura) o recibirlos de la CPU
(ciclo de escritura).
Todos los ciclos de lectura y escritura comienzan con una direccin vlida de la CPU.
Luego el decodificador de direcciones genera una seal CS para seleccionar uno de los
dispositivos. Entonces la CPU enva una seal RD o WR para efectuar la lectura o escritura
de los datos.
Para una operacin de lectura el dispositivo debe conducir a travs del bus de datos, lo cual
toma un tiempo corto (el tiempo de acceso de los datos), y los datos deben estar disponibles
en el bus durante el flanco de subida de la seal RD. Durante este flanco de subida la CPU
toma los datos y los almacena internamente en sus registros.
Durante un ciclo de escritura la CPU por si misma maneja de los datos. En este caso, al
igual que en el ciclo de lectura los datos deben estar disponibles en el bus antes de que
ocurra el flanco de subida de la seal WR, para que el dispositivo seleccionado pueda
recibir los datos correctamente.
Arquitecturas de Microcomputadores
Actualmente se conocen dos tipos de arquitecturas en los microcomputadores, conocidas
como Von-Newman y Harvard.
Arquitectura Von-Neuman
Los microcomputadores basados en esta arquitectura se caracterizan por tener un solo bus
para direcciones y datos, es decir, que el mismo bus se emplea para enviar y recibir
instrucciones y datos. Ademas de ello, las instrucciones y los datos son almacenados en una
memoria principal. Cuando la CPU se dirige a la memoria principal, extrae la instruccin y
despus los datos con los que se efecta la instruccin.
Arquitectura de Harvard
Esta arquitectura se caracteriza por tener por separado el bus de datos y el bus de
direcciones. Esto significa que las instrucciones y los datos son almacenados en memorias
diferentes que son accedidas de forma separada por la CPU.



Decodificadores
En los microcomputadores, la comunicacin entre la CPU y otros dispositivos como
memorias y puertos se efecta a travs del bus del sistema. El bus de direcciones de un
microcomputador se encuentra estrechamente relacionado con los decodificadores, ya que
gracias a ellos es posible seleccionar los dispositivos internos del microcomputador y las
posiciones de memoria para efectuar operaciones de lectura y escritura. En la figura 11.3.1
se indica como se los decodificadores se emplean dentro de un microcomputadro para
seleccionar los dispositivos internos.

Figura 11.3.1 Empleo de los decodificadores en el microcomputador
Esta no es la nica aplicacin de los decodificadores en los microcomputadores.
Internamante dentro del a CPU tambin existe un decodificador, llamado el Instruction
Decoder (Decodificador de Instrucciones) el cual funciona de forma conjunta con el
Instruction Register (Registro de Instrucciones) de la CPU.
Segn lo visto en la Leccin 1: Configuracin, sobre la configuracin interna del
Procesador Digital (CPU), el registro de instrucciones es el lugar donde se almacena
temporalmente la instruccin que la CPU debe ejecutar. Una vez la instruccin se carga en
este registro se pasa la informacin al decodificador de instrucciones, el cual se encarga de
descifrar la instruccin y sus operandos; despus de ello el decodificador genera las seales
correspondientes a los circuitos lgicos dentro de la CPU que se encargan a su vez de
generar las seales de control requeridas para que se ejecute finalmente la instruccin.


Puertos
Los puertos en un microcomputador corresponden a las interfaces de entrada y salida entre
el microcomputador y el mundo exterior. Existen puertos de entrada, salida y
bidireccionales (Entrada y Salida).
Una de las funciones bsicas del microcomputador es comunicarse con los dispositivos
exteriores, es decir, el microcomputador debe ser capaz de enviar y recibir datos desde
estos dispositivos. Sin esta funcin, el ordenador no sera operativo porque sus clculos no
seran visibles desde el exterior.
El funcionamiento de los puertos es similar al de una posicin de memoria. Al igual que los
registros de una memoria, los puertos son identificados por la CPU con una direccin en la
cual se pueden leer y/o escribir datos. Para trabajar con ellos solo es necesario apuntar a la
direccin de memoria que tienen asignada, y el tratamiento es el mismo que el de una
posicin de memoria.
Los puertos y dispositivos de E/S, en general son todas las interfaces de entrada y salida de
datos en un microcomputador. Los dispositivos de E/S ms comunes en aplicaciones son:
Teclados, Displays, E/S paralelo, E/S seriales y E/S anlogas.
Teclado
Este es uno de los perifricos mas importantes en un microcomputador, debido a que
gracias a ste, es posible ingresar informacin para procesar por la CPU. Un teclado tpico
en las aplicaciones con microcomputadores es el teclado matricial 4X4, como el que se
muestra en la figura 11.4.1.

Figura 11.4.1. Teclado Matricial de 4 X 4
La forma como detecta la pulsacin de una tecla, consiste en enviar una seal
constantemente a cada una de las filas a travs de las salidas de un puerto del
microcomputador y verificar cual de las columnas se activa a travs de un puerto de
entrada. Este es el mtodo que generalmente se utiliza para detectar una tecla, y se pude
implementar con una rutina de cdigo que funcione de forma cclica.
Displays
Los displays son perifricos muy importantes y su funcin es mostrar informacin
proveniente de los puertos de salida,. Los Displays hacen las veces de monitor en el caso de
los computadores de escritorio.
Generalmente se emplean display de 7 segmento, aunque hoy en da se ha venido
incrementando el uso de Display de Cristal Lquido (LCD), el cual tiene menos consumo de
energa que el de 7 segmentos y adems permite mostrar una gran variedad de caracteres.
E/S Paralelo
El puerto paralelo es el tipo de puerto comnmente empleado en las aplicaciones del
microcomputador, generalmente se utiliza para sealizar manejar teclados y habilitar otros
dispositivos.
E/S Seriales
Este puerto se emplea para establecer comunicacin con otros dispositivos. Algunos
microcomputadores y microcontroladores tienen incluido uno de estos puertos en su
arquitectura con el cual se puede establecer comunicacin en tres hilos (Trasmisin,
Recepcin y Referencia).
E/S Anlogas
Muchas aplicaciones necesitan de una entrada anloga para medir magnitudes fsicas como
temperatura o presin. Algunos microcomputadores tiene conversores A/D que permiten
medir estas magnitudes y procesar la informacin en forma digital. Actualmente se
consiguen en el mercado microcontroladores con resoluciones entre 8 y 22 bits.


Memorias
En las lecciones precedentes del captulo, se mencion sobre la necesidad de por lo menos
una memoria para el funcionamiento de los microcomputadores. Esta memoria puede ser
interna o externa, ya sea con chips adicionales o internamente dentro del chip del
microcomputador.
Generalmente se habla de dos tipos de memoria dentro de un microcomputador:
- La memoria de Programa.
- La memoria de Datos.
La memoria de programa se utiliza para almacenar las instrucciones de los programas que
ejecuta el microcomputador. Generalmente el tipo de memoria que se emplea para
almacenar el programa es una memoria ROM, para que la informacin no se pierda cuando
se desenergiza el microcomputador. Esta memoria puede ser una EPROM o una EEPROM,
aunque hay microcomputadores que almacenan las instrucciones en memorias RAM, pero
su uso no es muy difundido.
La memoria de datos se emplea para el almacenamiento y lectura de datos que se generan y
cambian constantemente durante la ejecucin del programa y la pila. La pila es una porcin
de memoria dnde la CPU almacena sus propios datos de uso interno para la ejecucin de
subrutinas. Por sus caractersticas, la memoria de datos se encuentra constituida
comnmente por una RAM.
La cantidad de memoria de programa y datos en un en un microcomputador depende en
gran parte de la de la aplicacin. Hay aplicaciones pequeas qu requieren solo 512 Bytes
en ROM y 128 Bytes en RAM, as como aplicaciones de mayores prestaciones que requieren
hasta de 1 Megabyte de EPROM y RAM.
Generalmente el bus de direcciones de los microcomputadores se limita para direccionar 64
Kbytes de memoria, por lo tanto es comn encontrar varios de estos dispositivos con
capacidades de 32 Kbytes en ROM y 32 Kbytes en RAM.

Figura 11.5.1. Disposicin interna de las partes de una memoria
Recordando lo visto en capitulo anterior, en la figura 11.5.1 se indica la disposicin interna
de una memoria, donde se observan las entradas de datos, direcciones y control que se
conectan a la CPU.


Instrucciones en Lenguaje Ensamblador
Los microcomputadores tienen un lenguaje nico que es capaz de reconocer y ejecutar las
instrucciones. Este lenguaje es llamado "Lenguaje de Mquina" y pertenece al procesador
del microcomputador. El lenguaje de mquina est compuesto por una serie de
instrucciones, las cuales son reconocidas y ejecutadas nicamente por el procesador. Este
lenguaje es un conjunto de nmeros que representan las operaciones realizadas por los
componentes internos del procesador. Estas instrucciones se encuentran directamente
ligadas a la estructura fsica del procesador y no pueden ser modificadas o cambiadas.
El lenguaje Ensamblador
Es necesario comprender la arquitectura interna del procesador as como sus instrucciones
para programar un procesador. Cada procesador tiene un conjunto de registros internos que
puede emplearse de maneras distintas para manipular nmeros binario. Las instrucciones
ejecutadas por el procesador generalmente manipulan los datos almacenados en la memoria
y los registros de trabajo.
Las instrucciones de programa de un procesador se guardan como nmeros binarios en la
memoria y se conocen como cdigos de operacin (op). Los cdigos de operacin son
ledos por la CPU y decodificados para determinar cul es la instruccin que debe
ejecutarse. Cada cdigo de operacin se aplica o afecta a otro nmero, tal como el que est
guardado en el "registro de trabajo" o "Acumulador". El nmero binario al que se aplica la
instruccin se conoce como operando. El operando puede ser otro registro o un nmero
binario almacenado en la memoria.
Para facilitar la escritura de programas, cada uno de los tipos principales de instrucciones
tiene asociado un cdigo alfanumrico corto que ayuda al programador a recordarlos, y
estos cdigos alfanumricos se conocen como mnemnicos. Este lenguaje es llamado
lenguaje ensamblador y su uso es muy frecuente debido a la facilidad para recordar las
instrucciones. A manera de ejemplo en la tabla 11.6.1 se muestra una instruccin en
lenguaje ensamblador, la cual efecta una la trasferencia de datos entre dos registros del
procesador:
hMnemnicoh Operando Comentario
MOV A, B
Carga el registro A con los datos del registro
B
Tabla 11.6.1. Instruccin en Lenguaje Ensamblador
La palabra "MOV" es una abreviatura que significa "mover" y corresponde a la instruccin
que se da al procesador, el operando "A, B" agrupa los argumentos de la instruccin y en
este caso corresponde a dos registros del procesador. Como regla general en el lenguaje
ensamblador de varios procesadores, cuando un operando tiene esta sintaxis, indica que el
registro a la derecha de la coma es la fuente y el registro a la izquierda es el destino.
Existe una correspondencia uno a uno entre las instrucciones en lenguaje de mquina y
lenguaje ensamblador y cada uno de los valores numricos del lenguaje de mquina tiene
una representacin simblica de 3 a 5 caracteres como instruccin en lenguaje
ensamblador, como es el caso de la instruccin de ejemplo anterior.
De esta forma los programas pueden ser escritos utilizando nicamente los mnemnicos de
las instrucciones y ser procesados posteriormente con un programa denominado
ensamblador, el cual genera los cdigos de operacin. Esta es una manera mucho prctica
de generar un programa en vez de consultar los cdigos de operacin y cargarlos en
memoria manualmente.
Tipos de Instrucciones
Las instrucciones de un procesador se pueden agrupar en tres tipos: Instrucciones de
Transferencia, Instrucciones de Operacin e Instrucciones de Control. A continuacin se
describirn las caractersticas bsicas de cada uno de estos grupos:
Instrucciones de Transferencia
Como su nombre lo indica, este grupo de instrucciones se utiliza para efectuar transferencia
de datos entre los registros de la CPU, la memoria y los puertos de E/S. En la tabla 11.6.2
se indica un ejemplo este tipo de instrucciones.
Mnemnico Operando Comentario
LDA M
Carga el registro A con los datos del registro en
la posicin de memoria M.
Tabla 11.6.2. Instruccin de Transferencia en Lenguaje Ensamblador
Instrucciones de Operacin
Estas instrucciones se emplean para realizar operaciones aritmticas y lgicas entre los
registros del procesador y la memoria. Estas operaciones incluyen suma, resta, incremento
decremento, complemento, comparacin y corrimiento. En la tabla 11.6.3 se muestra un
ejemplo de una instruccin de operacin.
Mnemnico Operando Comentario
ADD B
Suma el registro B con el registro A y el
resultado se almacena en el registro A.
Tabla 11.6.3. Instruccin de Operacin en Lenguaje Ensamblador
Instrucciones de Control
En el lenguaje Ensamblador y en general en cualquier lenguaje de programacin las
instrucciones de control juegan un papel muy importante en el flujo de un programa. Su
funcin consiste en alterar el flujo normal del programa, segn el estado de ciertos registros
del sistema que indican alguna condicin despus de ejecutar una instruccin. Con este tipo
de instrucciones es posible tomar el control del flujo del programa. En la tabla 11.6.4 se
indica un ejemplo de una instruccin de control.
Mnemnico Operando Comentario
JZ No existe
Pasa por alto la siguiente instruccin en el
cdigo del programa si el bit del sistema
Z=1.
Tabla 11.6.4. Instruccin de Control en Lenguaje Ensamblador
La abreviatura JZ corresponde a la frase en ingls Jump If Zero (Saltar si Cero) y la funcin
es evaluar el bit del sistema Z del registro de estado. En caso de estar en 0 se ejecuta
normalmente la siguiente instruccin, y en caso de estar en 1 se salta la siguiente
instruccin. Este bit del sistema se pone en 1 si una operacin anterior di como resultado
0.
Hay mucho ms que decir sobre la programacin de un procesador que lo mencionado en
esta leccin; sin embargo, si el estudiante desea comprender ms a fondo la forma en que
funciona el microcomputador y c mo se programa, es conveniente estudiar un poco sobre
diagramas de flujo y programacin.


Microcontroladores
Qu es un Microcontrolador
Muchos de los sistemas digitales pueden disearse empleando procesadores o
microcontroladores, la seleccin del dispositivo depende del tipo de aplicacin y la
diferencia bsica que existe entre estos dos dispositivos se explica a continuacin:
- Los procesadores son empleados para procesar informacin. A manera de ejemplo,
con un procesador se podra hallar todas las personas en Bogot entre edades de 15
y 30 aos, de sexo femenino, y ordenados por el Apellido. Los procesadores usan
un conjunto de instrucciones tiles para procesar datos, lo cual los hace muy
verstiles para manejar informacin.
- Los microcontroladores son utilizados como su nombre lo indica para controlar.
Son muy utilizados para implementar controles automticos. Como ejemplo, un
microcontrolador puede sensar la temperatura de un proceso, compararla con un
valor almacenado en memoria y tomar la decisin de encender un equipo de
calefaccin si la temperatura baja de cierto valor, y adems de ello mostrar el valor
en un display.
Los microcontroladores generalmente tienen instrucciones especiales que permiten
controlar procesos como el indicado anteriormente y otros ms complejos; todo depende de
la habilidad del programador para generar el cdigo para manejar el proceso. Un
microcontrolador es simplemente un procesador con memoria ROM y RAM, puertos de E/S
y otros dispositivos de propsito especial como conversores A/D, contadores,
temporizadores y puertos de comunicacin, o en otras palabras es un microcomputador con
funciones especiales. En la figura 11.7.1 se indica la estructura interna tpica de un
microcontrolador.

Figura 11.7.1. Estructura tpica de un microcontrolador
Estos dispositivos generalmente incluyen variedad de funciones especiales que se pueden
utilizar gracias a los dispositivos internos incluidos dentro de ellos. Entre las caractersticas
mas relevantes de un microcontrolador, se pueden enunciar las siguientes:
- La memoria de programa generalmente es una Flash EEPROM.
- Tiene puertos de Entrada y Salida (Configurables por software).
- Poseen contadores de propsito especial.
- Tiene incluido un reloj del sistema que permite contabilizar tiempo.
- Algunos modelos incluyen conversores A/D.
- Tiene Memoria EEPROM para almacenar datos.
- Tiene puerto de comunicaciones.
- Manejan velocidades de operacin hasta 20 MHz.
- Algunos de estos dispositivos tienen puerto de comunicaciones serial.
- Tienen entradas para interrupcin.
- La programacin es rpida.
- Las herramientas de desarrollo son econmicas y se encuentran disponibles en a
red, las cuales incluyen el ensamblador y simulador.
Los microcontroladores se pueden encontrar en varias aplicaciones que se relacionen con
medida, almacenamiento, control, clculo entre otras. Tambin se pueden encontrar dentro
de los teclados, mdems, impresoras y otros perifricos. Como se puede notar los
microcontroladores son dispositivos muy verstiles que pueden ser utilizados en muchas
aplicaciones, donde todo el potencial se encuentra en la programacin.
Como seleccionar un microcontrolador
Dentro de cada familia de dispositivos, usted encontrar normalmente una seleccin de
varios microcontroladores dependiendo de los dispositivos internos que tenga disponibles,
y la capacidad de memoria de programa y datos.
Los microcontroladores tambin se especifican por la cantidad de bits que pueden procesar
por unidad de tiempo. Un nmero alto de bits indica que se trata de un dispositivo rpido y
de altas prestaciones. Los microcontroladores de 8 bits son muy populares y se emplean en
proyectos simples, sin embargo se encuentran arquitecturas que manejan hasta 32 bits, para
aplicaciones ms complejas.
El consumo de potencia es otra especificacin que se debe tener en cuenta, sobre todo para
sistemas alimentados por bateras. Los Chips normalmente son fabricados con tecnologa
CMOS debido al consumo bajo que ofrece. Algunos de estos dispositivos CMOS tienen
disponible un estado de espera o modo "sleep", como el de los compuatdores cuando se
suspenden, el cual limita el consumo de corriente en unos cuantos microamperios cuando
los circuitos se encuentran inactivos. Usando este modo de funcionamiento, el consumo de
potencia puede ser reducido cuando se da espera a la entrada de datos durante la ejecucin
de un programa.
Microcontroladores disponibles en el mercado
En esta seccin se describen algunos microcontroladores populares que pueden ser
empleados para infinidad de aplicaciones. Lo ms recomendable en la seleccin de un
microcontrolador es tener disponible un buen juego de herramientas de desarrollo y que su
costo no sea tan elevado, adems de ello tambin es importante tener acceso a la
documentacin del dispositivo para conocer su arquitectura y funciones. Para iniciarse en la
programacin de estos dispositivos generalmente son recomendables los
microcontroladores de INTEL, MOTOROLA y MICROCHIP entre otros, de los cuales se
consiguen con facilidad sus herramientas de desarrollo y documentacin. A continuacin de
dar una breve descripcin de los dispositivos de cada una de estas Marcas.
FAMILIA 805X, 80186 - INTEL
Los microcontroladores de la serie 8051, son la segunda generacin despus del 8048. Este
dispositivo es muy poderoso y fcil para programar. Tiene arquitectura Harvard, es decir,
que los la memoria de datos y programa se encuentran por separado en su estructura. La
memoria del programa es de 64K y la memoria de datos es de 128 bytes y 256 bytes para
los 8052. Hay disponible gran cantidad de software de desarrollo para los
microcontroladores de esta familia que puede ser encontrado en Internet.
La tercera generacin de estos microcontroladores son los de la familia 80C196, los cuales
manejan palabras de 16 bits. Entre las principales caractersticas de estos dispositivos se
pueden enumerar las siguientes: efectan operaciones de multiplicacin y divisin el
hardware multiplica y divide, 6 modos de direccionamiento, Sistema de E/S de alta
velocidad, Conversor A/D, mdulo de comunicacin serial, 8 fuentes de interrupcin,
generador de PWM, Watchdog Timer.
Existe tambin el microcontrolador 80386 EX, el cual tiene toda la potencialidad de un
procesador 80386 pero con dispositivos adicionales que lo convierten en un
microcontrolador muy potente y verstil. Este dispositivo tiene puerto serial, modos de
ahorro de energa, contadores y temporizadores, memoria DRAM y fuentes de interrupcin.
FAMILIA 68HC11 - MOTOROLA
El 68HC11 es un microcontrolador de 8 bits. Este microcontrolador tiene bus de
direcciones interno de 16 bits con un juego de instrucciones similar al de sus predecesores
de las familias 6801, 6805 y 6809. La arquitectura de estos microcontroladores es Von-
Newman, es decir, que las direcciones y los datos comparten el mismo espacio en memoria.
Dependiendo de la variedad, los 68HC11 tienen EEPROM incorporada, RAM, entradas y
salidas digitales, temporizadores, conversor A/D, generador de PWM, contadores de
pulsos, puerto de comunicaciones seriales sincrnicas y asincrnicas, entre otras funciones.
PIC16C - MICROCHIP
Los microcontroladores de Microchip fueron los primeros dispositivos RISC. RISC
significa que el dispositivo tiene un nmero reducido de instrucciones, lo cual implica
simplicidad en su arquitectura y bajo costo. Aunque estos microcontroladores tienen pocas
instrucciones (33 para el PIC16CXX) en la actualidad son muy utilizados por su facilidad
de programacin y costo reducido.
Estos dispositivos son de arquitectura Harvard, por lo cual teien buses de datos y
direcciones separados. Los beneficios que tiene este dispositivo frente a los dems es su
sencillez, lo cual permite fabricarlo en chips muy pequeos, con la ventaja adicional de
consumir muy poca energa.
Estos dispositivos son muy populares y generalmente se encuentran en aplicaciones en
revistas de electrnica e Internet. Actualmente existen varias familias de este
microcontrolador entre las cuales se pueden destacar la PIC16C5X, PIC16CXX, y la
PIC17CXX, que tambin se pueden conseguir con memoria Flash en las familias
PIC16FXXX

También podría gustarte