Electronica Digital CSM
Electronica Digital CSM
Electronica Digital CSM
=
Y, del mismo modo la operacin "y-inclusiva" (igualdad) puede construirse con
solamente cuatro puertas "o-negada" mediante la transformacin:
[ ] [ ] b) (a b b) (a a = b)] (a + [b . b)] (a + [a =
= ) b . a + ).(b b . a + (a = ) b + ).(b a + ).(a b + b).(a + a ( = ) b + b).(a + a ( = b a
=
Veamos un par de ejemplos de transformacin de expresiones booleanas con
operaciones bsicas a expresiones con puertas "y-negada":
b) c ( a = .b) c ( . a = .b c + a = .b c + a = dgitos" 3 de primo nmero ser " = y
1
a
c
b
a
c
b
y y
=
Por ltimo, sea la siguiente funcin y2:
a) (b b)] (d a) [(c = a) (b ] b) . (d a) . (c [ =
= a) (b ] ) b + d ( ) a + c ( [ = a) (b )] b + d ( ) a + c [( =
= (b.a) . )] b + d ).( a + c [( = b.a + ) b + d ).( a + c ( = b.a + ) b + d ).( a + c ( =
= b.a + ) a + c .( b + ) a + c .( d = a . b + b.a + b . c + a . d + c . d = y
2
a
d
c
b
a
d
c
b
y y
=
1. l gebras de Bool e 41
1. 5 Las operaciones booleanas en l enguaj e de descri pci n ci rcui t al : VHDL
Actualmente el diseo de circuitos digitales no se expresa en forma grfica sino en
forma de texto, a travs de lenguajes de descripcin circuital; el ms utilizado de tales
lenguajes es el VHDL.
A fin de desarrollar una aproximacin gradual al diseo con lenguajes de
descripcin circuital, se incluye aqu la forma de describir las operaciones lgicas en
VHDL; asimismo, al final del captulo 4 se incluye la descripcin de bloques
combinacionales en VHDL.
a y
a
b
y
b
a
y
b
a
y
b
a
y
b
a
y
y
c
b
a
a) y <= not a;
b) y <= '1' when a = '0' else '0';
a) y <= a or b;
b) y <= a when b = '0' else '1';
a) y <= a and b;
b) y <= a when b = '1' else '0';
a) y <= a xor b;
b) y <= not a when b = '1' else a;
c) y <= '0' when a = b else '1';
a) y <= a nand b;
b) y <= '0' when (a = '1') and (b = '1') else '1';
a) y <= a nor b;
b) y <= '1' when (a = '0') and (b = '0') else '0';
a) y <= not (a and b and c);
y <= '0' when (a = '1') and (b = '1') and (c = '1') else '1';
42 El ect rni ca Di gi t al
a
c
b
y
a
d
c
b
y
y <= a or (b and not c);
y <= ((not d or not b) and (not c or not
a))
or (b and a);
y <= not ((d and b) or (c and a))
or (b and a);
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
2 FUNCIONES BOOLEANAS Y SU SIMPLIFICACION
2.1. Funciones Lgicas
2.2. Simplificacin de funciones booleanas: mapas de Karnaugh
2.3. Ejercicios de sntesis y simplificacin de funciones booleanas
2.4. Decodificadores y multiplexores; otras formas de configurar funciones
El lgebra de Boole permite expresar, en forma de funciones matemticas, tanto la
realizacin de clculos en el sistema binario como la adopcin de decisiones a travs de la
combinacin de proposiciones.
Cantidades y cualidades pueden ser representadas por conjuntos de ceros y unos,
es decir, mediante palabras binarias cuyos dgitos pueden adoptar solamente los valores 0
y 1; cada dgito o bit corresponde a una variable.
Una funcin booleana establece una dependencia entre una variable de salida "y" y
un conjunto de variables de entrada "a b c": una correspondencia entre el conjunto de
valores de las variables de entrada y el valor de la variable de salida.
Las funciones booleanas son multiformes, es decir, pueden representarse de muy
diversas formas: desde el mero enunciado textual que expresa las especificaciones o
requisitos que definen la funcin, hasta su forma algebraica como operaciones entre
variables, pasando por su tabla funcional (o tabla de verdad) que detalla, en forma de
listado, el valor de la funcin para cada conjunto de valores de las entradas.
Precisamente el diseo del circuito digital correspondiente a una funcin booleana
consiste en el cambio de forma de la misma, a partir de su enunciado, construyendo su
tabla funcional y extrayendo de ella la forma algebraica de la funcin; dicha expresin
algebraica puede ser trasladada directamente a un esquema de puertas lgicas que
conforma el circuito digital de dicha funcin.
En este proceso resulta de mucha importancia la simplificacin de la expresin
algebraica de la funcin, de forma que contenga el menor nmero de trminos y el menor
nmero de variables posible. Al reducir la expresin algebraica disminuye el tamao, la
complejidad y el coste (y, en muchos casos, aumenta la velocidad) del circuito digital que
permite obtener tal funcin. Con esta finalidad, los mapas de Karnaugh constituyen
una eficaz herramienta grfica de simplificacin a mano, mientras que el mtodo de
Quine-McCluskey proporciona las bases algortmicas para programar la simplificacin
sobre un computador.
Tambin es posible configurar el circuito digital de una funcin booleana sin llegar a
su expresin algebraica, directamente desde su tabla funcional. Para ello pueden utilizarse
dos bloques digitales de tipo selector: el decodificador y el multiplexor; ambos incluyen
todas las posibilidades de valores de sus variables de entrada y permiten activar cada una
de dichas posibilidades.
44 El ect rni ca Di gi t al
2. 1. Funci ones Lgi cas
Dentro del lgebra de Boole de 2 elementos, una funcin booleana o funcin lgica
es una expresin de operaciones booleanas enlazando variables que solamente pueden
adquirir los valores 0 y 1. Una funcin booleana es una aplicacin que a cada conjunto de
valores booleanos de sus variables le asigna un y slo un valor booleano.
La primera de las dos definiciones anteriores es de tipo descriptivo: describe la
forma algebraica de una funcin booleana; mientras que la segunda es de tipo
conceptual: identifica la funcin como correspondencia entre el conjunto de valores de
las variables y el valor booleano de la variable dependiente.
En una funcin f designaremos con el nombre de variables de entrada xi al conjunto
de sus variables propias y denominaremos variable de salida y a la variable dependiente o
resultado de la propia funcin y = f(xi).
De acuerdo con las definiciones anteriores, las funciones lgicas pueden
representarse en dos formas diferentes:
- por su expresin algebraica o frmula booleana, como expresin de las
operaciones que ligan a sus variables;
- por su tabla operativa o tabla de verdad, expresando en forma de tabla la
correspondencia entre la variable de salida y cada combinacin posible de valores
de sus variables de entrada.
Tambin puede expresarse una funcin en forma de enunciado o texto que manifiesta
las especificaciones o requisitos que dan lugar a dicha funcin y en forma grfica como
circuito digital o esquema de puertas lgicas que produce los valores de salida de la
funcin al recibir los correspondientes valores en sus entradas.
El proceso de sntesis o construccin digital de una funcin parte del enunciado o
especificaciones de la misma, para configurar la tabla de verdad de la funcin y
obtener, a travs de ella, su expresin algebraica; una vez simplificada, dicha expresin
puede ser directamente trasladada a un esquema de puertas como representacin grfica
del circuito digital que hace efectiva dicha funcin.
enunciado tabla funcional expresin algebraica esquema de puertas
Dada una funcin de m variables, cada una de las posibles combinaciones de valores
de dichas m variables recibe el nombre de vector de entrada; el nmero total de vectores
de entrada ser 2
m
y tal ser el nmero de filas que ha de tener la tabla funcional
completa.
Para cada vector de entrada podemos construir un trmino mnimo, formado por el
producto booleano (operacin "y") de las m variables de entrada, estando cada una de
ellas afirmada si su valor en el vector de entrada es 1 y negada cuando vale 0.
2. Funci ones bool eanas 45
Un trmino mnimo da resultado 1 al asignar a sus variables los valores del vector de
entrada que le corresponde y, en cambio, para cualquier otro vector de entrada da
resultado 0.
As pues, tal como estn construidos, los trminos mnimos poseen la propiedad de
seleccionar o filtrar a su propio vector de entrada: a cada vector de entrada le
corresponde un trmino mnimo y cada termino mnimo es un discriminador o selector
del vector de entrada al que corresponde.
Ejemplos para 4 variables ( a, b, c, d):
vector de entrada 1001 trmino mnimo a. b.c.d 1.0.0.1 = 1
vector de entrada 1100 trmino mnimo a. b.c.d 1.1.0.0 = 1
vector de entrada 0010 trmino mnimo a. b.c.d 0.0.1.0 = 1
vector de entrada 0000 trmino mnimo a. b.c.d 0.0.0.0 = 1
vector de entrada 1111 trmino mnimo a. b.c.d 1.1.1.1 = 1
nmero de vectores de entrada y de trminos mnimos posibles: 2
4
= 16
Dualmente se construye el trmino mximo correspondiente a un vector de entrada
mediante la suma booleana (operacin "o") de sus variables, afirmadas cuando su valor es
0 y negadas cuando valen 1. Un trmino mximo da resultado 0 al asignar a sus variables
los valores del vector de entrada que le corresponde y adopta el valor 1 para cualquier otro
vector.
A cada vector de entrada le corresponden un trmino mximo y cada trmino
mximo es, asimismo, un selector o discriminador del vector al que corresponde.
Ejemplos para 4 variables ( a, b, c, d) :
vector de entrada 1001 trmino mximo 0 = 1 0 0 1 d c b a + + + + + +
vector de entrada 1100 trmino mximo 0 = 0 0 1 1 d c b a + + + + + +
vector de entrada 0010 trmino mximo 0 = 0 1 0 0 d c b a + + + + + +
vector de entrada 0000 trmino mximo 0 = 0 0 0 0 d c b a + + + + + +
vector de entrada 1111 trmino mximo 0 = 1 1 1 1 d c b a + + + + + +
nmero de vectores de entrada y de trminos mximos posibles: 2
4
= 16
Se denomina forma cannica de una funcin booleana a su expresin como suma
(operacin "o") de trminos mnimos de sus variables; para construirla a partir de su tabla
funcional bastar tomar todos aquellos trminos mnimos que corresponden a vectores de
entrada que hacen la funcin igual a 1 y sumarlos.
Habida cuenta de la propiedad de filtrado o seleccin que tienen los trminos
mnimos, dicha suma de trminos mnimos asigna resultado 1 para aquellos vectores de
entrada cuyo trmino mnimo se encuentra presente en la misma y resultado 0 para todos
los dems vectores de entrada.
46 El ect rni ca Di gi t al
Ejemplo: funcin "ser nmero primo" para nmeros de 3 dgitos.
c b a ser n primo
0 0 0 0 c + b + a
0 0 1 1 c.b.a
0 1 0 1 c.b.a
0 1 1 1 c.b.a
1 0 0 0 c + b + a
1 0 1 1 c.b.a
1 1 0 0 c + b + a
1 1 1 1 c.b.a
Para obtener la forma cannica de esta funcin hemos de tomar los trminos
mnimos de los vectores de entrada que dan resultado 1.
y = c.b.a + c.b.a + c.b.a + c.b.a + c.b.a forma cannica
simplificando
= c.a + c.b + c.a = a + c.b
La forma cannica dual de una funcin booleana corresponde a su expresin como
producto (operacin "y") de trminos mximos; para construirla se toman todos aquellos
trminos mximos que corresponden a vectores de entrada que hacen la funcin igual a 0
y se realiza el producto de ellos.
La propiedad de filtrado o seleccin que tienen los trminos mximos asegura que su
producto asigna resultado 0 para aquellos vectores de entrada cuyo trmino mximo est
presente y resultado 1 para todos los dems vectores de entrada.
En el ejemplo anterior (funcin "ser nmero primo" para nmeros de 3 dgitos),
para obtener la forma cannica dual tomamos los trminos mximos de los vectores de
entrada que dan resultado 0.
y = (c + b + a) . (c. + b + a) . (c + b +a) forma cannica dual
simplificando
= (b + a) . (c + a)
La forma cannica de una funcin es nica, salvo en lo que se refiere al orden de los
trminos y al de las variables en los mismos; igualmente es nica la forma cannica dual.
En cambio, una misma funcin puede tener expresiones simplificadas muy diversas.
2. Funci ones bool eanas 47
Dos funciones de m variables diferirn en los trminos mnimos que contenga su
forma cannica; el nmero de funciones diferentes de m variables coincide con el de
combinaciones posibles de sus 2
m
trminos mnimos: 2
k
siendo k = 2
m
.
El nmero de vectores de entrada, y consiguientemente el de funciones posibles,
crece fuertemente al hacerlo el nmero de variables de la funcin. Hay 16 funciones de 2
variables, las funciones de 4 variables tendrn 16 vectores de entrada, siendo posibles 2
16
= 65.536 funciones y para 6 variables existen 64 vectores de entrada con un nmero de
funciones posibles 2
64
superior a 10
18
(trillones de ellas).
2. 2. Si mpl i fi caci n de funci ones bool eanas: mapas de Karnaugh
La aplicacin de los teoremas del lgebra permite simplificar las funciones,
reduciendo el nmero de puertas necesarias para su configuracin; en concreto, los
teoremas ms tiles para la simplificacin son los de idempotencia y absorcin:
a + a = a a + a = 1 a + a.b = a a + a.b = a + b
a . a = a a . a = 0 a.(a + b) = a a.(a + b) = a.b
y, en ocasiones, el teorema de consenso: a.b + a.c + b.c = a.b + a.c
Ejemplo: Y = d.c.b.a + d.c.b.a + d.c.b.a + d.c.b.a + d.c.b.a + d.c.b.a + d.c.b.a
( x + x = 1 aplicado a las siguientes parejas de trminos: 1 y 2 x=a; 3 y 4 x=b;
5 y 6 x=a ; 7 y 4 x=c , utilizando, en este ltimo caso, tambin, x=x+x)
Y = d.c.b + d.c.a + d.c.b + d.b.a
(d + d = 1 aplicado a los trminos 1 y 3 y sacando factor comn en los otros dos)
Y = c.b + d.a.(c + b)
( aplicando el teorema de Morgan al parntesis del segundo trmino )
Y = c.b + d.a.(c.b)
(y, finalmente, el teorema de absorcin x + x.z = x + z aplicado a ambos trminos)
Y = c.b + d.a .
La aplicacin directa de teoremas booleanos para simplificar las funciones requiere
una cierta habilidad, cuyos resultados dependen de la complejidad de la funcin y de la
experiencia e intuicin de quien la realiza.
Existen mtodos de simplificacin que aportan una formulacin sistemtica del
proceso y que aseguran la mxima simplificacin; los ms utilizados de ellos son el
mtodo grfico de los mapas de Karnaugh, que se describe a continuacin, y el mtodo
algortmico de Quine-McCluskey (cuya descripcin se encuentra en el apndice A1).
48 El ect rni ca Di gi t al
Los mapas de Karnaugh son el mtodo habitual de simplificacin cuando se hace a
mano y el nmero de variables de la funcin es pequeo (no superior a 6). Para mayor
nmero de variables se recurre a la ayuda del computador, con programas de
simplificacin automtica que suelen estar basados en el algoritmo de Quine-
MacCluskey.
La simplificacin de una funcin por medio de los mapas de Karnaugh se realiza
dibujando su tabla de operacin en un diagrama bidimensional segn la estructura
siguiente:
B A B A
C 0 0 0 1 1 1 1 0 D C 0 0 0 1 1 1 1 0
0 0 0
1 0 1
1 1
Mapa de Karnaugh para 3 variables
10
Mapa de Karnaugh para 4 variables
C B A
E D 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 0 0
0 0
0 1
1 1
1 0
Mapa de Karnaugh para 5 variables
2. Funci ones bool eanas 49
C B A
F E D 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 0 0
0 0 0
0 0 1
0 1 1
0 1 0
1 1 0
1 1 1
1 0 1
1 0 0
Mapa de Karnaugh para 6 variables
La estructura de los mapas de Karnaugh aprovecha las propiedades del cdigo Gray,
en el que dos nmeros o vectores sucesivos difieren nicamente en el valor de una
variable.
Binario Gray
0 0 0
1 1 1
2 10 11
3 11 10
4 100 110
5 101 111
6 110 101
7 111 100
8 1000 1100
9 1001 1101
15 1111 1000
50 El ect rni ca Di gi t al
Una forma sencilla de generar el cdigo Gray para nmeros sucesivos a partir del 0
es la representada en el siguiente esquema:
0 1 11 10 110 111 101 100 1100 1101
Las lneas verticales sealan la necesidad de aadir un nuevo dgito y actan a
manera de espejo, de forma que tras cada lnea vertical los nmeros empiezan por un
primer dgito adicional 1 y el resto de sus dgitos son iguales a los del nmero que se
encuentra en posicin simtrica respecto a dicha lnea vertical, simetra especular,
aadiendo, en su caso, los ceros que fueran necesarios.
El cdigo Gray aparece con frecuencia en los sistemas digitales por sus prestaciones
en relacin con la simplificacin y con la seguridad funcional, derivadas ambas de la
propiedad de que dos nmeros sucesivos solamente difieren en el valor de un dgito (son
iguales salvo en un bit).
Los trminos mnimos correspondientes a dos vectores sucesivos, segn el cdigo
Gray, son simplificables entre s pues difieren solamente en el valor de una de sus
variables. Por ello, los mapas de Karnaugh tienen la propiedad de que dos cuadros
adyacentes se pueden simplificar entre s.
El proceso de simplificacin en un mapa de 4 variables consiste en agrupar los
cuadros para formar rectngulos que contengan un nmero de cuadros potencia de 2: 1, 2,
4, 8; los cuadros contenidos en cada uno de dichos rectngulos son simplificables entre s
y conducen a un solo trmino:
B A B A
DC 0 0 0 1 1 1 1 0 D C 0 0 0 1 1 1 1 0
0 0 0 0 1
0 1 1 1 0 1 1
1 1 1 1 1 1 1
1 0 1 0 1
y = C.A y = B.A
B A B A
DC 0 0 0 1 1 1 1 0 D C 0 0 0 1 1 1 1 0
0 0 1 1 0 0 1 1
0 1 0 1
1 1 1 1
1 0 1 1 1 0 1 1
y = C.B y = C.A
(tngase en cuenta que el diagrama conecta consigo mismo por sus bordes vertical y horizontal)
2. Funci ones bool eanas 51
B A B A
DC 0 0 0 1 1 1 1 0 D C 0 0 0 1 1 1 1 0
0 0 0 0 1
0 1 0 1 1
1 1 1 1 1 1
1 0 1 0
y = D.C.B y = D.B.A
En el caso de 5 variables, el mapa de Karnaugh est conformado por dos hojas de
dimensin 4 x 4 y son simplificables entre s aquellos rectngulos que se encuentran en
posicin simtrica respecto a la separacin de las dos hojas:
C B A
E D 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 0 0
0 0
0 1 1 1 1 1
1 1 1 1 1 1
1 0
y = D.B
Para 6 variables, el mapa de Karnaugh consta de 4 hojas de dimensin 4 x 4 e
igualmente la simplificacin entre hojas acta por simetra especular:
C B A
F E D 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 0 0
0 0 0
0 0 1 1 1
0 1 1 1 1
0 1 0
1 1 0
1 1 1 1 1
1 0 1 1 1
1 0 0
y = D.B.A
52 El ect rni ca Di gi t al
Si bien en todos los casos anteriores se ha aplicado la simplificacin a cuadros con
valor 1, lo cual conduce a trminos en forma de productos, trminos producto, por
dualidad el mismo procedimiento de simplificacin puede aplicarse en forma anloga a
cuadros con valor 0, dando lugar a trminos suma.
Dada una funcin y representada su tabla de verdad en forma de mapa de Karnaugh
la expresin ms simple de dicha funcin como suma de trminos producto se obtiene
agrupando todos los cuadros de valor 1 en el menor nmero de rectngulos simplificables
y expresando la suma de los trminos que corresponden a dichos rectngulos.
Dualmente, la forma ms simple de tal funcin como producto de trminos suma se
obtiene agrupando los cuadros con valor 0 en el menor nmero de rectngulos y
expresando el producto de los trminos duales que les corresponden.
Ejemplo:
Sea la funcin "ser nmero primo" en el caso de nmeros binarios de 5 dgitos
edcba.
c b a
e d 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 0 0
0 0 0 1 1 1 0 1 1 0
0 1 0 0 1 0 0 0 1 0
1 1 0 0 0 0 0 1 1 0
1 0 0 1 1 0 0 1 0 0
Recorriendo los cuadros con valor 1 para formar rectngulos simplificables desde la
izquierda hacia la derecha y de arriba hacia abajo :
y = e.d.a + e.d.c.b + e.c.b.a + d.c.a + d.c.b.a + e.c.b.a
Simplificando en forma de producto de sumas, para lo cual han de recorrerse los
cuadros con valor 0 formando rectngulos simplificables:
y = (b + a).(d + c + b).(d + a).(e + d + c).(e + a).(c + a).(e + d + c + b).(e + d + c + b)
Aunque esta segunda (producto de sumas) parece ms extensa que la anterior (suma
de productos), ambas contienen el mismo nmero de variables (22 variables).
En aquellos casos en que algn vector de entrada no puede presentarse nunca o bien
cuando no importa (da igual) el valor que adquiera la funcin booleana para algn vector
de entrada, se anota con X el valor que corresponde a tales vectores de entrada. El
smbolo X (dont care) expresa que es indiferente el valor que la funcin pueda tener y,
posteriormente, se utiliza en lugar de X el valor 0 o el valor 1 segn interese en el proceso
de simplificacin.
2. Funci ones bool eanas 53
Consideremos las nueve cifras decimales codificadas en binario (cdigo BCD) y la
misma funcin booleana "ser nmero primo" aplicada a ellas.
El nmero binario para representar las cifras decimales, 0 - 9, ha de disponer de 4
dgitos dcba; son nmeros primos las siguientes cifras: 1, 2, 3, 5 y 7. El mapa de
Karnaugh correspondiente a la funcin que determina si una cifra decimal BCD es
nmero primo o no ser el siguiente:
B A
D C 0 0 0 1 1 1 1 0
0 0 0 1 1 1
0 1 0 1 1 0
1 1 X X X X
1 0 0 0 X X
El smbolo X en un cuadro indica que resulta indiferente el valor booleano que
adopte la funcin para el correspondiente vector de entrada; en este caso ello es debido a
que no van a presentarse entradas con valor decimal superior a 9.
Los cuadros con valor X son tomados como 1 o como 0 segn interese a efectos
simplificativos. De esta forma podemos agrupar los cuadros con valor 1 en dos
cuadrados (asignando valor 1 a los dos cuadros con valor X de la ltima fila), cuyos
trminos producto son, respectivamente:
b) c ( a) d ( = .b) c ( . .a) d ( = .b c + .a d = .b c + .a d = y
2. 3. Ej erci ci os de s nt esi s y si mpl i fi caci n de funci ones bool eanas
2.3.1. Expresar en forma de funciones booleanas la suma aritmtica de dos nmeros
binarios de varios dgitos
La suma aritmtica de dos bits requiere dos funciones booleanas, una para expresar el
dgito resultante y la otra para el posible dgito de acarreo o arrastre (carry):
1+1 = 10 ; resultado 0 y me llevo 1.
Para configurar un sumador de nmeros de varios dgitos, podemos proceder
modularmente, empleando una celda para cada dgito: dicha celda ha de tener, adems de
las entradas correspondientes a los dos dgitos de ambos nmeros, una entrada adicional
de acarreo que reciba el arrastre (me llevo) resultante de la suma de los dgitos anteriores.
a
b
c-
c+
s
C.S.
Clula Sumadora
54 El ect rni ca Di gi t al
Se indica con la notacin c+ el acarreo resultante de la suma y con c- el acarreo
anterior, que participa como sumando; la tabla funcional ser la siguiente:
c- b a suma: s acarreo: c+
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
suma:
s = c
-
.(b.a + b.a) + c
-
.(b.a + b.a) = c
-
.(b a) + c
-
.(b a) =
= c
-
.(b a) + c
-
.(b a) = c
-
(b a)
arrastre:
c
+
= c
-
.b.a + c
-
.(b.a + b.a + b.a) = b.a + c
-
.(b.a + b.a) =
= b.a + c
-
.(b a) = (b a) c
-
(b a) [ ]
Para configurar estas funciones se requieren 3 puertas "y-negada" y 2 puertas
"o-exclusiva" conectadas segn la figura siguiente:
a
b
c-
s
c+
Si se desea utilizar nicamente puertas "y-negada" sern necesarias 11 puertas (ya
que una puerta "o-exclusiva" puede configurarse con 4 puertas "y-negada").
Conectando n de estas clulas sumadoras en cadena (salida c+ unida a entrada c-
de la celda siguiente) se obtendr un sumador de dos nmeros de n dgitos.
C.S. C.S. C.S. C.S.
A3 B3 A2 B2 A1 B1 A0 B0 0
S4 S3 S2 S1 S0
2. Funci ones bool eanas 55
2.3.2. Sean dos nmeros binarios de dos dgitos; deducir las tres funciones que realizan
la comparacin entre ambos nmeros (mayor, menor e igual), expresndolas
mediante operaciones "y-negada" (Nand) e inversores
Sean los dos nmeros: a1a0 y b1b0; la forma sistemtica de sintetizar las funciones
de comparacin entre ellos requiere escribir la tabla de verdad de las tres funciones, pero
resulta ms sencillo acudir a un razonamiento directo:
- para comparar dos nmeros hay que comenzar por la cifra ms significativa y, en
el caso de que ambos dgitos sean iguales, irse desplazando hacia la derecha
efectuando la comparacin cifra a cifra
- dos dgitos son iguales cuando ambos valen 0 o ambos valen 1: a. b + a.b.
Los dos nmeros propuestos sern iguales cuando tengan iguales su primer y su
segundo dgito:
y
1
= (a
1
.b
1
+ a
1
.b
1
).(a
0
.b
0
+ a
0
.b
0
) = (a
1
b
1
) (a
1
b
1
) [ ] (a
0
b
0
) (a
0
b
0
) [ ]
funcin que requiere 7 puertas "y-negada" y 5 inversores.
El nmero A ser mayor que el B en caso de que el dgito a1 sea 1 y el b1 sea 0, o
tambin en caso de que, siendo ambos dgitos iguales, a0 tenga valor 1 y b0 sea 0:
y
2
= a
1
.b
1
+ (a
1
.b
1
+ a
1
.b
1
).(a
0
.b
0
) = (a
1
b
1
) a
1
b
1
( ) a
1
b
1
( ) ( )(a
0
b
0
)
[ ]
funcin que necesita otras 7 puertas "y-negada" y otros 5 inversores, pero 3 de las puertas
y 4 inversores coinciden con puertas utilizadas en la funcin anterior.
B1
A1
B0
A0
A = B
A > B
A < B
La funcin A < B ha sido construida a partir de las dos anteriores (A=B y A>B):
dicha funcin debe adoptar el valor 1 cuando las otras dos valgan 0 (es decir cuando no
sea ni A=B ni A>B): y
3
= y
1
.y
2
= y
1
+ y
2
= y
1
y
2
= y
1
y
2
Se necesitan en total 12 puertas "y-negada" (Nand) y 8 inversores.
56 El ect rni ca Di gi t al
2.3.3. Sean dos nmeros binarios de tres dgitos; expresar la funcin booleana que
corresponde a A B y generalizarla para nmeros de 5 dgitos
Sean los dos nmeros: a2a1a0 y b2b1b0; A ser menor o igual que B
- si el dgito ms significativo de A a2 es 0 y el de B b2 es 1
- o tambin, si dichos dgitos son iguales y el siguiente dgito de A a1 es 0
y el de B b1 es 1
- o tambin, si son iguales a2 y b2 y, tambin, a1 y b1 y, adems, el dgito
de las unidades de A a0 es 0 y el de B b0 es 1 o bien son iguales a0 y b0.
[ ]
[ ] ) b a ).( b . a b . a ( + b . a ). b . a b . a ( + b . a =
= ) b . a b . a b . a ).( b . a b . a ( + b . a ). b . a b . a ( + b . a = y
0 0 1 1 1 1 1 1 2 2 2 2 2 2
0 0 0 0 0 0 1 1 1 1 1 1 2 2 2 2 2 2
+ + +
+ + + +
La expresin anterior se puede simplificar, aplicando el teorema de absorcin:
[ ] ) b a ).( b a ( + b . a ). b a ( + b . a = y
0 0 1 1 1 1 2 2 2 2
+ + +
Y su generalizacin para nmeros de cinco dgitos, a4a3a2a1a0 y b4b3b2b1b0, es
directa:
[ ] { } { } ) b a ).( b a ( + b . a ). b a ( + b . a ). b a ( + b . a ). b a ( + b . a
0 0 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4
+ + + + +
De la misma forma esta funcin puede generalizarse para nmeros de ms dgitos.
2.3.4. El Concejo Municipal de una localidad pequea est formado por un alcalde con
dos votos, un secretario con otros dos votos y tres delegados de barrio con un voto
cada uno. Los acuerdos se toman por mayora simple, pero el voto en contra
simultneo de los tres delegados supone un veto al acuerdo. Sintetizar y simplificar
la funcin booleana que expresa el resultado de las votaciones
Dada la complejidad de la funcin (32 vectores de entrada) y para obtener su
expresin simplificada, se expresa la tabla de verdad directamente en forma de mapa de
Karnaugh:
d1 d2 d3
a s 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 0 0
0 0 0 0 0 0 0 0 0 0
0 1 0 0 1 0 1 1 1 0
1 1 0 1 1 1 1 1 1 1
1 0 0 0 1 0 1 1 1 0
2. Funci ones bool eanas 57
En el anterior mapa de Karnaugh todos los cuadrados con valor 1 pueden agruparse
de 4 en 4 y as resultan los siguientes trminos producto, comenzando de arriba hacia
abajo y de izquierda a derecha:
y = s.d
2
.d
3
+ a.s.d
1
+ a.s.d
2
+ a.d
2
.d
3
+ s.d
1
.d
2
+ a.d
1
.d
2
+ s.d
1
.d
3
+ a.d
1
.d
3
+ a.s.d
3
y agrupando trminos anlogos:
y = s.(d
2
.d
3
+ d
1
.d
2
+ d
1
.d
3
) + a.s.(d
1
+ d
2
+ d
3
) + a.(d
2
.d
3
+ d
1
.d
2
+ d
1
.d
3
) =
= a.s.(d
1
+ d
2
+ d
3
) + (s + a).(d
2
.d
3
+ d
1
.d
2
+ d
1
.d
3
)
Solucin a la que podra haberse llegado por simple razonamiento directo:
Se aprobar un acuerdo cuando voten a favor el alcalde y el secretario y uno cualquiera
de los delegados, o tambin cuando lo hagan el alcalde o el secretario y dos delegados.
Esta frase constituye la lectura en lgica proposicional de la funcin anterior.
2.3.5. En una instalacin se controla la presin, la temperatura y la intensidad elctrica
consumida, de forma que debe activarse una alarma cuando alguno de estos
parmetros sobrepase un valor lmite detectado por un transductor con salida
digital ("1" por encima de dicho valor y "0" por debajo). Se controla tambin la
tensin que alimenta la instalacin, de forma que la alarma tambin se active
cuando sta sea inferior a un valor mnimo. Construir la funcin booleana que
debe accionar la alarma
T P
V I 0 0 0 1 1 1 1 0
0 0 1 1 1 1
0 1 1 1 1 1
1 1 1 1 1 1
1 0 0 1 1 1
El mapa de Karnaugh de esta funcin est completamente cubierto por el valor 1
salvo en una posicin; por ello, resulta ms apropiada la sntesis de la funcin por
trminos mximos, pues solamente es preciso recoger uno de ellos.
"alarma" = V+ I + T + P
es decir, la alarma suena cuando la tensin est por debajo del valor umbral o cuando la
intensidad, la temperatura o la presin estn por encima del valor lmite.
58 El ect rni ca Di gi t al
2.3.6. Sea la funcin booleana siguiente, expresada en forma de suma de productos;
obtener la expresin algebraica de dicha funcin en forma de producto de sumas
a d.b. .b c d. a . b . d b . c . d y + + + =
Se trata, en primer lugar, de obtener el mapa de Karnaugh de dicha funcin; para ello
tomamos cada trmino producto, identificamos las casillas que le corresponden y
anotamos en ellas el valor 1:
- al trmino b . c . d le corresponden las dos casillas en que d = 0, c = 0 y b = 0,
es decir, las dos primeras casillas horizontales del mapa;
- al trmino a . b . d le corresponden las dos casillas en que d =0, b = 0 y a = 0,
es decir, las dos primeras casillas verticales;
- al trmino .b c d. le corresponden las dos casillas en que d = 1, c = 0 y b = 1,
es decir, las dos ltimas casillas horizontales del mapa;
- al trmino a d.b. le corresponden las dos casillas en que d = 1, b = 1 y a = 0,
es decir, las dos ltimas casillas verticales del mapa.
Se completa el mapa de Karnaugh con ceros en las casillas vacas, resultando el de
la figura siguiente:
b a
d c 0 0 0 1 1 1 1 0
0 0 1 1 0 0
0 1 1 0 0 0
1 1 0 0 0 1
1 0 0 0 1 1
Los ceros pueden ser agrupados en 3 cuadrados, que dan lugar a una expresin
algebraica en forma de producto de sumas ms reducida que la expresin inicial en suma
de productos:
) a c ( b). d ).( b (d y + + + =
2. Funci ones bool eanas 59
2.3.7. La combinacin ganadora de la primitiva del jueves da 23 de enero de 2003
puede expresarse mediante la funcin booleana siguiente; cules son los nmeros
que forman dicha combinacin ganadora escritos en base 10 (decimal)?
) a b ).( a d ).( b e ).( d e .(
). a b c .( ) c d f b).( d f c).( d (f y
+ + + +
+ + + + + + + + =
Recurdese que la lotera primitiva utiliza los nmeros del 1 al 49 y deben
seleccionarse 6 de dichos nmeros para formar una combinacin; a estos efectos, el
nmero 0 y los nmeros superiores a 49 no interesan (valor X).
Se trata de obtener la tabla de dicha funcin para seleccionar sobre ella los vectores
de entrada que hacen la funcin igual a 1; la forma ms rpida de obtener dicha tabla
funcional consiste en rellenar el correspondiente mapa de Karnaugh, a partir de los
trminos suma de la funcin (las casillas que corresponden a estos vectores suma deben
tener valor 0, la casilla 0 y las superiores a 49 deben tener valor X y el resto valor 1).
C B A
F E D 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 0 0
0 0 0 X 0 0 0 0 0 0 0
0 0 1 0 0 0 0 1 0 1 0
0 1 1 0 0 0 0 1 0 0 0
0 1 0 0 0 1 0 0 0 0 0
1 1 0 0 0 X X X X X X
1 1 1 X X X X X X X X
1 0 1 0 0 1 1 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0
Los vectores de entrada correspondientes a casillas con valor 1 son los siguientes:
001101 001110 010011 011110 101010 101011
nmeros binarios que, expresados en base 10, corresponden a los siguientes nmeros
decimales:
13 14 19 30 42 43
60 El ect rni ca Di gi t al
2.3.8. Se desea controlar una lmpara mediante tres interruptores conmutados, de forma
que actuando sobre cualquiera de ellos se pueda cambiar el estado de la lmpara.
Determinar la funcin booleana necesaria
Suponemos que con todos los interruptores en la posicin 0 la lmpara est apagada, si
pasa uno cualquiera de ellos a la posicin 1 la lmpara se enciende, si son dos los que
pasan a posicin 1 la lmpara se apaga y, finalmente, con los tres interruptores en
posicin 1 la lmpara se encontrar encendida.
C B A luz
0 0 0 0
0 0 1 1 y = c.b.a + c.b.a + c.b.a + c.b.a
0 1 0 1
1 0 0 1
0 1 1 0 = c.(b.a + b.a) + c.(b.a + b.a)
1 0 1 0
1 1 0 0
1 1 1 1 = c ( b a )
La funcin anterior puede realizarse con interruptores mecnicos en la forma que se
indica en la siguiente figura:
C
A B
A
A
B
B
en la que el conmutador C se encuentra en su posicin afirmada y negarlo significa
efectuar un giro de 90 sobre su centro. Obsrvese que los interruptores de los extremos A
y B son del tipo de interruptores conmutados considerados en el tema anterior (I.3.3
lgebra de Conmutadores), mientras que el interruptor intermedio C realiza una
conmutacin del tipo conexin paralela - conexin cruzada:
- conecta A- B y A- B en una posicin y A- B y A- Ben la otra.
Este esquema de interruptores conmutados es ampliable a n interruptores, siendo los
de los extremos de tipo simple A, B y los n-2 intermedios del tipo complejo C.
2. Funci ones bool eanas 61
2.4. Decodificadores y multiplexores; otras formas de configurar funciones
Sean tres variables de entrada; podemos construir todos sus trminos mnimos:
bastarn para ello 8 puertas "y" de 3 entradas y 3 inversores.
C B A
000
001
010
011
100
101
110
111
Este bloque digital, cuyas salidas corresponden a los diversos trminos mnimos
de sus entradas, recibe el nombre de decodificador; tal denominacin se debe a que
decodifica un nmero binario de m dgitos sobre 2
m
lneas, de forma que para cada
nmero o vector de entrada activa una salida diferente.
Un decodificador es un bloque digital con m lneas de entrada y 2
m
lneas de salida
que corresponden a los 2
m
posibles vectores de entrada (nmeros binarios de m bits): la
lnea de salida correspondiente al nmero binario establecido en las entradas se encontrar
a 1 y el resto de lneas de salida estar a 0.
000
001
010
011
100
101
110
111
C
B
A
La figura anterior representa un decodificador de 3 lneas de entrada: en cada
momento el nmero binario presente en ellas determina cul de las 8 lneas de salida se
encuentra activada (valor booleano 1).
62 El ect rni ca Di gi t al
En un decodificador estn presentes todos los trminos mnimos de sus entradas; para
construir una funcin booleana de tales entradas, segn su forma cannica, bastar reunir
sobre una puerta "o" los trminos mnimos que corresponden a valor 1 en la tabla de la
funcin, es decir, llevar a una puerta "o" las salidas del decodificador que corresponden a
vectores de entrada que activan la funcin (dan resultado 1).
Por ejemplo, para construir de esta forma la funcin "ser nmero primo" de 4
dgitos utilizaremos un decodificador de 4 lneas de control seguido de una puerta "o"
que recibe aquellas salidas con valor 1 en la tabla de verdad de la funcin: las
correspondientes a los nmeros primos 1, 2, 3, 5, 7, 11 y 13.
Tabla funcional
d c b a y
0 0 0 0 0
0 0 0 1 1 <-
0 0 1 0 1 <-
0 0 1 1 1 <-
0 1 0 0 0
0 1 0 1 1 <-
0 1 1 0 0
0 1 1 1 1 <-
1 0 0 0 0
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 0
1 1 1 1 0
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
d c b a
y
D
E
C
O
D
I
F
I
C
A
D
O
R
As como el decodificador selecciona una de entre sus 2
m
lneas de salida, un
multiplexor es un bloque digital que selecciona una de entre 2
m
lneas de entrada; para
ello dispone de m lneas de control y en cada momento el nmero binario establecido en
ellas determina la lnea de entrada que queda conectada a la salida.
Para seleccionar cada lnea de entrada por su nmero binario bastar realizar la
operacin "y" entre la lnea de entrada y el trmino mnimo que corresponde a dicho
nmero binario; una posterior operacin "o" en la salida recoger el resultado de dicha
seleccin (recibir las salidas de las citadas puertas "y").
2. Funci ones bool eanas 63
La figura siguiente representa un multiplexor de 4 lneas de entrada y 2 de control; en
cada momento el nmero binario presente en las entradas de control determina cul de las
4 lneas de entrada se encuentra conectada con la salida.
0
1
2
3
B A
salida
Mux.
La funcin booleana que corresponde a este multiplexor es la siguiente:
.B.A L + A .B. L + .A B . L + A . B . L = y
3 2 1 0
que puede construirse con puertas "y-negada" (Nand) en la siguiente forma:
( ) ( ) ( ) ( ) [ ] A B, , L Nand , A B, , L Nand , A , B , L Nand , A , B , L Nand Nand = y
3 2 1 0
.
B A
lnea 0
lnea 1
lnea 2
lnea 3
salida
Para construir una funcin booleana utilizando un multiplexor bastar con fijar en sus
lneas de entrada los valores de la tabla de verdad de la misma; de esta forma, las
variables de control seleccionan sobre la propia tabla de la funcin el valor booleano que
le corresponde al vector de entrada.
Esta forma de configurar funciones booleanas mediante multiplexores, cuyas lneas
de entrada reciben los valores de la tabla de verdad de la funcin, se denomina
look-up-table (LUT): construccin tabular (mirar sobre su tabla).
64 El ect rni ca Di gi t al
En el ejemplo de la funcin "ser nmero primo" de 4 dgitos, para construirla con
un multiplexor de 4 lneas de control, conectaremos a 1 las lneas de entrada del
multiplexor que presentan tal valor en la tabla de verdad de la funcin (las
correspondientes a los nmeros primos 1, 2, 3, 5, 7, 11 y 13); el resto de las lneas de
entrada se conectarn a 0.
d c b a
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
y
mux
Tabla funcional
d c b a y
0 0 0 0 0
0 0 0 1 1 <-
0 0 1 0 1 <-
0 0 1 1 1 <-
0 1 0 0 0
0 1 0 1 1 <-
0 1 1 0 0
0 1 1 1 1 <-
1 0 0 0 0
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 0
1 1 1 1 0
Decodificadores y multiplexores son selectores de lnea:
- un decodificador activa una de entre n lneas de salida
- y un multiplexor selecciona una de entre n lneas de entrada y la pone en
comunicacin con su lnea de salida.
Cada uno de ellos proporciona una forma de configurar una funcin de sus variables
de control:
- la forma cannica a partir de un decodificador (suma de trminos mnimos m)
- la forma tabular sobre un multiplexor (look-up-table LUT).
Ambas formas de construir una funcin booleana no precisan de la expresin
algebraica de la misma; se obtienen directamente de su tabla funcional.
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
3 BLOQUES ARITMTICOS Y CODIFICACIN NUMRICA
3.1. Operaciones aritmticas: suma, resta, comparacin y producto
3.2. Unidad lgica y aritmtica: ALU
3.3. Codificacin de nmeros en binario
3.4. Codificacin de nmeros en BCD
Las operaciones aritmticas con nmeros binarios pueden ser expresadas en forma de
funciones booleanas. El resultado de la suma de dos nmeros de n dgitos puede llegar a
tener n+1 dgitos, de forma que el correspondiente sumador incluir n+1 funciones
booleanas; lo mismo suceder con la resta, a cuyo resultado (de n bits) habr que aadir
un bit suplementario (n+1) para informar si la resta es viable o si el sustraendo es mayor
que el minuendo. En cambio, la comparacin de nmeros de n bits requiere solamente tres
funciones booleanas: igual, mayor, menor.
Suma, resta y comparacin pueden ser construidas modularmente, mediante celdas
bsicas que realicen la operacin para un solo dgito. Las celdas bsicas de la suma y la
resta presentarn dos salidas relativas al resultado y al posible acarreo (me llevo) y
dispondrn de las dos entradas correspondientes a los operandos y una entrada adicional
para el bit de acarreo o arrastre, la cual permite la conexin de celdas en cadena para
formar bloques de mayor nmero de bits.
Asimismo, las entradas de arrastre permiten conectar sucesivos bloques sumadores,
restadores o comparadores para operar con mayor nmero de dgitos. En el caso de los
comparadores son necesarias dos entradas de arrastre (igual, mayor) para recibir la
informacin de la celda o del bloque anterior.
La multiplicacin, al no ser operacin lineal, no puede construirse mediante celdas
bsicas en cadena; pero puede configurarse mediante una combinacin matricial de
operaciones y (producto) y celdas sumadoras.
Tambin podemos considerar como bloques operacionales los conjuntos de puertas
lgicas que realizan la correspondiente operacin booleana entre dos palabras, bit a bit.
Las siglas ALU (unidad lgica y aritmtica) designan a un bloque multioperacin,
capaz de realizar diferentes operaciones aritmticas y lgicas sobre dos nmeros de n
dgitos; unas entradas de seleccin determinan la operacin a realizar en cada momento.
A la par de las propias operaciones aritmticas, resulta oportuno considerar cmo
pueden representarse en palabras binarias los nmeros negativos o los que tienen parte
decimal (nmeros no enteros), de forma que puedan efectuar sus operaciones con los
mismos bloques aritmticos. Adems de la forma binaria directa, correspondiente a la
numeracin en base 2, en muchas ocasiones resulta conveniente conservar la estructura
decimal habitual (base 10); para ello, en lugar de convertir a base 2 el nmero completo,
se traslada a binario cada una de sus cifras individuales: esta forma de representar los
nmeros en palabras binarias recibe el nombre de BCD (decimal codificado en binario).
66 El ect rni ca Di gi t al
3. 1. Operaciones aritmticas: suma, resta, comparacin y producto
A partir de la celda sumadora bsica de dos dgitos a y b ms un tercero de acarreo
(me llevo: carry) c, puede configurarse un sumador de dos nmeros binarios de n dgitos
mediante la conexin en cadena de n celdas. [El diseo de una celda sumadora se
encuentra detallado en el captulo anterior (epgrafe II.3.1) como ejercicio de sntesis de
funciones booleanas.]
a
b
c
c
s
C.S.
-
a) (b c = b.a) + a . b .( c + ) a b. + .a b .( c = s
- - -
[ ] a) (b c a) b ( = a) .(b c + b.a = c
- -
a
b
c
-
s
c
C.S. C.S. C.S. C.S.
B3 A3 B2 A2 B1 A1 B0 A0
C anterior
C S3 S2 S1 S0
Sumador de dos nmeros de 4 dgitos.
A su vez, estos bloques sumadores de n cifras pueden conectarse en cadena, con la
salida C de cada uno de ellos unida a la entrada C- del siguiente ms significativo, para
formar sumadores de mayor nmero de cifras binarias.
En la celda sumadora, la funcin arrastre C obtenida mediante un mapa de Karnaugh
queda un poco ms simplificada que la anterior:
a) .(b c + b.a = c
-
+
esta expresin simplificada nos interesa para compararla con la que resulta en el caso de
una celda restadora.
En los sumadores de muchos bits, los tiempos de propagacin de las celdas
sucesivas se suman y resulta un tiempo de propagacin global alto, lo cual puede limitar
mucho la velocidad de estos sumadores. El apndice A2 muestra otra forma de diseo de
sumadores aprovechando la recursividad en el clculo del arrastre: arrastre anticipado
(look ahead carry) en lugar del arrastre propagado celda a celda (ripple carry).
3. Bl oques ari t mt i cos 67
Los restadores se configuran con la misma tcnica modular: a partir de la tabla
funcional correspondiente , se obtienen las funciones booleanas que configuran la clula
bsica restadora (para A-B); las variables de entrada de la tabla funcional son a minuendo,
b sustraendo y c- arrastre y para la obtencin de la misma ha de tenerse en cuenta que el
arrastre de la resta se suma al sustraendo:
a b c- suma: s acarreo: c+
0 0 0 0 0
0 0 1 1 1
0 1 0 1 1
0 1 1 0 1
1 0 0 1 0
1 0 1 0 0
1 1 0 0 0
1 1 1 1 1
a) (b c = b.a) + a . b .( c + ) a b. + .a b .( c = r
- - -
) a + .(b c + a b. = c
-
La primera funcin coincide con la que calcula el resultado de la suma s y la segunda
difiere del arrastre de la suma solamente en la negacin de la variable b.
Para restar dos nmeros positivos A-B es preciso que A B; en otro caso, el
arrastre ms significativo valdr 1, indicando que B es mayor que A y, por tanto, el
resultado no corresponde a un nmero positivo. [En el apartado 4 de este mismo captulo
se estudiar la representacin y forma de operar con nmeros negativos.]
Comparando las funciones bsicas de sumadores y restadores se observa que difieren
solamente en las relativas al arrastre y, en stas, solamente en la negacin de una variable:
arrastre de la suma c = b.a + c
-
.(b + a)
arrastre de la resta ) a + .(b c + a b. = c
-
Resulta sencillo construir bloques sumadores/restadores, capaces de efectuar las dos
operaciones, con una entrada de seleccin d que diferencie entre ambas; bastar aadir
una operacin "o-exclusiva" d a , para determinar cundo la variable a debe actuar
afirmada (d = 0: suma) o negada (d = 1: resta) en las funciones que calculan los arrastres:
resultado a) (b c = r
-
arrastre ) a' + .(b c + b.a' = c
-
siendo d a = a'
68 El ect rni ca Di gi t al
Un comparador entre dos nmeros binarios de n dgitos puede construirse
conectando en cadena n celdas: la celda bsica comparadora tiene como entradas, adems
de los dgitos correspondientes de los nmeros a comparar ai bi, las que le informan sobre
si los conjuntos de dgitos anteriores (de menor valor significativo) son iguales ( i- ) y
sobre si es mayor el que corresponde al nmero A ( m- ), y tiene dos salidas que indican
igualdad i y "A mayor que B" m, respectivamente. La tercera funcin de comparacin
"A menor que B" resulta redundante con las otras dos: m . i = m i = B que menor A + .
Las funciones booleanas de la clula comparadora responden al siguiente
razonamiento [vase el ejemplo de comparacin de nmeros de dos cifras detallado en
II.3.2]:
- para comparar dos nmeros hay que comenzar por la cifra ms significativa y, caso de
que ambos dgitos sean iguales, irse desplazando hacia la derecha efectuando la
comparacin cifra a cifra;
- la funcin igualdad de una celda comparadora se activar cuando sus dos dgitos a b
son iguales (es decir, cuando ambos valen 0 o ambos valen 1: a. b + a.b) y, adems, la
informacin que reciba por su entrada i- respecto a los siguientes dgitos sea de que
son iguales (i- = 1);
- la funcin "A mayor que B" se activar cuando a = 1 y b = 0 o cuando ambos dgitos
son iguales (a. b + a.b) y la informacin que reciba por su entrada m- respecto a los
siguientes dgitos sea de que "A mayor que B" (m- = 1).
a
b
m-
i
m
C.C.
i-
i = (b.a + b.a) . i
-
= (b a ) . i
-
[ ]
-
-
m a) (b ) a b ( =
m . b.a) + a . b ( + .a b = m
b
a
i -
m-
i
m
Agrupando n clulas comparadoras en cadena (las salidas i m unidas a las entradas
i- m- de la celda siguiente) se obtendr un comparador de dos nmeros de n dgitos
[vase figura en la pgina siguiente].
3. Bl oques ari t mt i cos 69
i m A0 B0
c.c.
A1 B1
c.c.
A2 B2
c.c.
A3 B3
c.c.
A=B A>B A<B
- -
Comparador de dos nmeros de 4 dgitos.
[La salida global A<B se activa cuando las otras dos A=B y A>B se encuentran a 0.]
Asimismo, los bloques comparadores de nmeros de n cifras pueden conectarse en
cascada para configurar comparadores de mayor nmero de cifras binarias: las salidas i
(=) y m (>)
de cada uno de ellos unidas a las correspondientes entradas i- y m-
del
siguiente bloque ms significativo; las entradas i- y m- del primero de los bloques (el
menos significativo) debern ir conectadas a 1 y 0, respectivamente (situacin inicial: ser
iguales).
Un bloque aritmtico de mayor complejidad es el multiplicador que realiza el
producto de dos nmeros binarios de n dgitos: ni su diseo ni su utilizacin son
modulares (por clulas en cadena) sino que es preciso configurar el desarrollo completo
de las correspondientes funciones booleanas.
Un bloque multiplicador de 2 nmeros de n dgitos dispondr de 2n entradas (n para
cada nmero) y 2n salidas, pues tal puede ser el nmero de dgitos del resultado; el
producto de dos nmeros binarios puede organizarse como suma de productos de sus
dgitos en la misma forma que el producto decimal:
bn-1
an-2
b4
b3
b2
b1
b0
x
an-1
an-2
a4
a3
a2
a1
a0
_____________________________________________________________________________________________
bn-1.a0
bn-2.a0
b4.a0
b3.a0
b2.a0
b1.a0
b0.a0
bn-1.a1
bn-2.a1 bn-3.a1
b3.a1
b2.a1
b1.a1
b0.a1
bn-1.a2
bn-2.a2
bn-3.a2
bn-4.a2
b2.a2
b1.a2
b0.a2
bn-1.a3 bn-2.a3
bn-3.a3 bn-4.a3
bn-5.a3
b1.a3
b0.a3
......
......
......
70 El ect rni ca Di gi t al
Cada una de las columnas contribuye a configurar el correspondiente dgito como
suma de productos de los dgitos de los factores:
ai.b0 + ai-1.b1 + ai-2.b2 + ... + a2.bi-2 + a1.bi-1 + a0.bi ;
pero, adems, es preciso tener en cuenta los arrastres (me llevo) procedentes de las sumas
que configuran los dgitos anteriores.
En conjunto, para multiplicar nmeros de 4 dgitos resulta el esquema de la figura
siguiente.
B0 B1 B2 B3
0
0
a b c' a b c' a b c' a b c'
c s c s c s c s
0
a b c' a b c' a b c' a b c'
c s c s c s c s
0
a b c' a b c' a b c' a b c'
c s c s c s c s
P7 P6 P5 P4 P 3 P2 P1 P0
A3
A2
A1
A0
Multiplicador de dos nmeros de 4 dgitos.
3. Bl oques ari t mt i cos 71
La configuracin anterior, con una disposicin de tipo matricial de puertas "y" y
celdas sumadoras, puede ampliarse directamente a mayor nmero de dgitos ya que su
estructura bsica es repetitiva: basta seguir aadiendo filas y columnas de puertas "y" y
celdas sumadoras, siguiendo la misma configuracin matricial.
Pero no puede separarse en mdulos iguales interconectables, de forma que el
multiplicador para nmeros de 2n dgitos no puede realizarse mediante la simple conexin
de varios multiplicadores de n dgitos. [Un multiplicador de nmeros de 8 bits requiere 4
multiplicadores de 4 bits ms 5 sumadores de nmeros de 4 bits.]
3. 2. Uni dad l gi ca y ari t mt i ca ALU
Tambin podemos considerar como bloques operacionales a los que realizan
operaciones booleanas, constituidos por conjuntos de n puertas iguales de dos entradas
que efectan la operacin lgica correspondiente (sea esta operacin "o", "y",
"o-exclusiva", "y-negada", "o-negada",...) sobre dos palabras de n dgitos o bits,
operacin lgica que se realiza individualmente, bit a bit.
En la siguiente figura, se representa uno de estos bloques, configurado por un
conjunto de 4 puertas que realizan la operacin "y" entre dos palabras de 4 bits.
B3 A3
B2 A2
B1 A1
B0 A0
R3
R2
R1 R0
Bloque operacional lgico ("y") para palabras de 4 bits
Disponemos, pues, de bloques con capacidad de efectuar las operaciones bsicas de
clculo binario (suma, resta, comparacin,...) y de otros capaces de hacer operaciones
booleanas ("+", ".", "", "
*
", "",...) sobre dos nmeros o palabras binarias de n dgitos o
bits.
La longitud de palabra de los bloques operacionales integrados n suele ser de 4, 8 o
16 bits; pero este nmero no es limitativo en modo alguno pues, salvo el caso particular
de producto, la longitud de los operandos se puede ampliar indefinidamente sin ms que
conectar en cadena bloques iguales:
en el caso de suma o resta, la interconexin entre ellos se refiere al bit de acarreo
en la comparacin, cada bloque ha de comunicar al siguiente sus salidas ("=" y ">")
en las operaciones lgicas, no es precisa interconexin alguna (son bit a bit).
72 El ect rni ca Di gi t al
Un paso ms en la complejidad y posibilidades funcionales de los bloques
operacionales es la configuracin de un operador genrico, capaz de realizar no una
sino toda una amplia serie de operaciones aritmticas y lgicas sobre dos palabras de n
bits: un bloque multifuncin diseado para efectuar k operaciones distintas, de forma que
en cada momento se selecciona la operacin que interesa mediante unas entradas de
control.
Un bloque digital de este tipo recibe el nombre genrico de unidad aritmtica y
lgica ALU. Recibir como entradas dos operandos de n dgitos y los terminales de salida
de las diversas operaciones sern nicos, apareciendo sobre ellos el resultado de la
operacin seleccionada.
La siguiente figura representa una ALU de tipo sencillo que opera sobre palabras de
8 bits y tiene capacidad para 16 operaciones (4 entradas de control).
operando A
operando B
c-
acarreo
seleccin de
operacin
resultado
acarreo
A L U
Pequea unidad aritmtica y lgica
S3 S2 S1 S0
resultado
nulo
resultado
nulo
n-
Unidad lgica y aritmtica ALU para palabras de 8 bits
Dos salidas adicionales y sus correspondientes entradas permiten la ampliacin de la
ALU para palabras de ms de 8 dgitos: la entrada y salida de acarreo c para la suma y la
resta y la entrada y salida de resultado nulo n, que se activa cuando todos los dgitos del
resultado son 0.
La operacin de comparacin (entre ambos nmeros A y B) se realiza mediante una
operacin de resta A-B, quedando el resultado reflejado sobre las salidas n (resultado
nulo) y c (acarreo), en la forma siguiente:
- n = 1 A = B
- c = 1 A < B
- n = 0 y c = 0 A > B
3. Bl oques ari t mt i cos 73
La siguiente tabla detalla posibles operaciones a realizar por una ALU: la entrada de
seleccin S3
distingue entre operaciones aritmticas S3 = 0 y operaciones lgicas S3
= 1,
mientras que los ocho valores posibles de las otras tres entradas de control S2 S1 S0
permiten seleccionar ocho operaciones de cada uno de ambos tipos:
S
2
S
1
S
0
S
3
= 0
Operaciones Aritmticas
S
3
= 1
Operaciones Lgicas
0 0 0 Sumar A y B ( B + A ) Invertir A (A)
0 0 1 Incrementar A ( A + 1 ) Invertir B (B)
0 1 0 Incrementar B ( B + 1 ) "o" ( B A+ )
0 1 1 Restar A y B ( A - B ) "y" (
B . A
)
1 0 0 Decrementar A ( A - 1 ) "o-negada" ( B A )
1 0 1 Decrementar B ( B - 1 ) "y-negada" ( B A )
1 1 0 Negativo de A ( 0 - A ) "o-exclusiva" (
B A
)
1 1 1 Negativo de B ( 0 - B ) "y-inclusiva" (
B A
)
3. 3. Codi fi caci n de nmeros en bi nari o
El sistema binario de numeracin, con base 2, constituye la forma natural de
codificar nmeros en palabras binarias, aptas para ser procesadas por los sistemas
digitales; dicho sistema de numeracin constituye la base de la aritmtica digital.
Este apartado se dedica a la representacin de nmeros negativos y de nmeros con
parte decimal en forma de palabras binarias (siendo el 0 y el 1 los nicos smbolos
permitidos). Se trata de utilizar un convenio de representacin que sea compatible con las
operaciones de suma y resta de los nmeros enteros, de forma que puedan utilizarse los
bloques operacionales tal como han sido construidos en este captulo.
3.3.1. Codificacin binaria de nmeros negativos
Es posible distinguir los nmeros positivos y negativos mediante un bit inicial de
signo: 0 para los nmeros positivos y 1 para los negativos. Una primera forma de
codificar los nmeros enteros consistir en aadir un 0 delante del nmero binario que
expresa el valor absoluto para indicar nmero positivo y aadir un 1 delante del mismo
valor absoluto para representarlo en negativo.
74 El ect rni ca Di gi t al
Esta codificacin no es compatible con las operaciones de suma y resta tal como han
sido construidas para los nmeros naturales. Consideremos nmeros binarios inferiores al
nmero decimal 100, cuyo valor absoluto se expresa en 7 bits y utilicemos un octavo bit
inicial para el signo:
+22 0 0 0 1 0 1 1 0
-22 1 0 0 1 0 1 1 0
----------------------------------
suma 1 0 1 0 1 1 0 0 = -44 errneo
Si representamos en una lista los diversos nmeros enteros de 8 bits resultantes de
esta codificacin (signo - valor absoluto), ordenados segn su valor numrico:
0 1 1 1 1 1 1 1 +127
0 1 1 1 1 1 1 0 +126
---------------
0 0 0 0 0 0 1 0 +2
0 0 0 0 0 0 0 1 +1
0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 1 -1
1 0 0 0 0 0 1 0 -2
---------------
1 1 1 1 1 1 1 0 -127
1 1 1 1 1 1 1 1 -128
podemos comprobar que en los nmeros negativos no se conserva el contaje binario (a,
a+1): el -1 no es el siguiente binario del -2 (10000010 + 1 1000001); al no conservarse
el contaje, tampoco se conservan las operaciones suma y resta, en su forma normal (pues
suma y resta no son sino el resultado de contajes/descontajes sucesivos). De hecho los
nmeros negativos resultan ordenados en sentido inverso, respecto al contaje.
Interesa una codificacin que resulte compatible con el contaje y, por ello, con las
operaciones aritmticas de suma y resta tal como son realizadas por los bloques
operacionales. Para ello, representemos la lista de los nmeros enteros de 8 bits,
construyendo los negativos mediante la operacin de restar 1 al anterior (descontaje):
0 1 1 1 1 1 1 1 +127
0 1 1 1 1 1 1 0 +126
---------------
0 0 0 0 0 0 1 0 +2
0 0 0 0 0 0 0 1 +1
0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 -1
1 1 1 1 1 1 1 0 -2
---------------
1 0 0 0 0 0 0 1 -127
1 0 0 0 0 0 0 0 -128
3. Bl oques ari t mt i cos 75
Esta representacin equivale a obtener el negativo de un nmero mediante la
operacin y = 0 x (olvidando el arrastre que se produce en el bit ms significativo):
0 0 0 0 0 0 0 0 0
+22 0 0 0 1 0 1 1 0
--------------------------------------
resta 1 1 1 0 1 0 1 0
-22 = 1 1 1 0 1 0 1 0
Comprobemos que esta codificacin es compatible con las operaciones de suma y
resta:
+22 0 0 0 1 0 1 1 0 +22 0 0 0 1 0 1 1 0
-22 1 1 1 0 1 0 1 0 -22 1 1 1 0 1 0 1 0
---------------------------------- ----------------------------------
suma 0 0 0 0 0 0 0 0 = 0 resta 0 0 1 0 1 1 0 0 = +44 correcto
(en ambos casos se ha ignorado el arrastre que se produce en el bit ms significativo, es
decir, los dgitos que van ms all del bit de signo).
Esta codificacin se denomina en complemento a 2
n
, o ms abreviadamente,
complemento a 2; en ella el 0 equivale a 2
n
, siendo n el nmero de bits de la palabra, y los
nmeros se cambian de signo restndolos de 2
n
:
-A = 2
n
- (A) = 100000...(n ceros) (A)
La anterior sustraccin puede ser realizada con mayor facilidad en dos pasos, en la
forma que sigue:
2
n
- (A) = 11111...(n unos) + 1 - (A) = A' + 1
donde A' = 11111... (n unos) - (A) es precisamente el nmero que resulta de invertir
cada uno de los bits de A: A' = A.
Ejemplo de complemento a 2:
83 = 0 1 0 1 0 0 1 1 se invierten los bits
83' = 1 0 1 0 1 1 0 0 +1
- 83 = 1 0 1 0 1 1 0 1
2
8
- 83 = 100000000 - 01010011 = 10101101.
La conversin inversa, de negativo a positivo, se realiza mediante el mismo proceso:
- 83 = 1 0 1 0 1 1 0 1 se invierten los bits
- 83' = 0 1 0 1 0 0 1 0 +1
+ 83 = 0 1 0 1 0 0 1 1
2
8
- (-83) = 100000000 - 10101101 = 01010011.
Habida cuenta de que la codificacin en complemento a 2 conserva el contaje
binario, tambin resulta compatible con las operaciones de suma y resta aritmticas
definidas para los nmeros naturales.
76 El ect rni ca Di gi t al
Un nmero de n dgitos complemento a 2 estar comprendido entre 1000... = 2
n-1
(el menor nmero negativo de n bits) y 0111... = + 2
n-1
- 1
(el mayor nmero de n bits).
Existen casos en que el valor absoluto del resultado no cabe en los n-1 bits
disponibles para ello: se produce entonces un desbordamiento (over-flow) y el resultado
no es correcto ya que requiere mayor nmero de dgitos. En estos casos el valor numrico
interfiere con el bit de signo y genera un resultado errneo.
Por ejemplo, 100
(10
+ 100
(10
= 01100100
+ 01100100
= 11001000
= -56
(10
resultado obviamente errneo.
El desbordamiento (over-flow) se produce:
a) cuando se suman dos nmeros positivos y aparece un resultado negativo (lo cual
es debido a que el resultado es mayor que 2
n-1
-1 y, al no caber en los n-1 bits del campo
numrico, interfiere con el bit de signo y lo modifica errneamente)
b) cuando se suman dos nmeros negativos y se genera un nmero positivo (debido a
que el resultado es menor que -2
n-1
, que no cabe en el campo numrico)
c) cuando se restan dos nmeros de distinto signo y en tal resta se produce una de las
dos situaciones anteriores a) o b).
En cambio, no puede producirse desbordamiento en caso de sumar nmeros de
distinto signo o de restar nmeros del mismo signo, ya que en ambas situaciones el
resultado es inferior al mayor de los operandos y tiene perfecta cabida en el campo
numrico sin interferir con el signo.
Situaciones de desbordamiento:
0--------- + 0--------- = 1---------
1--------- + 1--------- = 0---------
0--------- - 1--------- = 1---------
1--------- - 0--------- = 0---------
As, pues, las operaciones de suma y resta de nmeros enteros en complemento a 2
pueden realizarse con los bloques sumadores y restadores descritos en el primer apartado
de este captulo (ya que dichas operaciones son el resultado de contajes/descontajes
sucesivos y esta codificacin conserva el contaje binario); en todo caso habr que
comprobar que no se produce desbordamiento (over-flow).
La comparacin entre nmeros en complemento a 2 no presenta dificultades cuando
ambos nmeros son del mismo signo; tanto los positivos como los negativos se
encuentran en orden correcto conforme a la comparacin aritmtica que efectan los
bloques comparadores.
Pero la comparacin directa entre nmeros de diferente signo llevara a declarar el
nmero negativo como mayor (pues comienza por 1 y, en cambio, el positivo lo hace por
0); este error puede evitarse invirtiendo el bit de signo, es decir, aadiendo al comparador
sendos inversores previos que acten sobre el bit ms significativo de cada nmero.
3. Bl oques ari t mt i cos 77
3.3.2 Codificacin binaria de nmeros racionales
Los nmeros racionales presentan una parte entera seguida de una parte decimal;
dado que la denominacin parte decimal da lugar a un doble sentido segn que el
trmino decimal se refiera a dicha parte o al sistema de numeracin decimal, se
utilizar en lo sucesivo la denominacin parte no entera.
La forma ms directa de codificar los nmeros racionales consiste en reservar un
determinado nmero de dgitos para la parte no entera: se desprecian aquellas cifras
decimales que sobrepasen (inferiores en valor relativo) los dgitos disponibles y, en
cambio, se completan con ceros cuando el nmero de cifras de la parte no entera sea
menor que el de dgitos fijados.
Esta forma de representar nmeros con parte no entera se denomina codificacin en
coma fija: el nmero de bits reservados para la parte no entera del nmero es fijo, de
forma que la longitud de la parte no entera ha de ajustarse a dicho nmero (despreciando
cifras decimales de menor valor significativo o aadiendo ceros, segn proceda).
Supongamos una codificacin en coma fija de 6 bits: se prescindir de los dgitos de
la parte no entera que ocupan lugares posteriores al sexto y se complementar con ceros
caso de que el nmero de dgitos decimales sea inferior a 6.
Ejemplos: 0,1 = 0,100000 0,101 = 0,101000
0,01011001 = 0,010110 0,00000001 = 0,000000
10 = 10,000000 101,011 = 101,011000
Las operaciones de suma y resta construidas para los nmeros naturales pueden
aplicarse directamente a los nmeros racionales en coma fija y el resultado ser un
nmero racional expresado en coma fija con el mismo nmero de dgitos. El
establecimiento de una longitud fija para la parte no entera permite tratar a estos nmeros
como enteros: al interpretar el resultado se aadir la coma en la posicin que corresponde
al nmero de bits de la parte no entera.
La conversin de la parte no entera de un nmero desde el sistema decimal al binario
se realiza multiplicando sucesivamente por 2 dicha parte no entera:
719
1 438
0 876 0,719 = 0,101110
1 752
1 504
1 008
0 016
... ...
78 El ect rni ca Di gi t al
La conversin recproca del sistema binario al decimal se realiza multiplicando cada
bit por su valor significativo 2
-i
= 1/2
i
, siendo i el nmero de orden que ocupa en la parte
no entera:
0,101110... = 1 x 0,5 + 0 x 0,25 + 1 x 0,125 + 1 x 0,0625 + 1 x 0,03125 + ...
= 0,5 + 0,125 + 0,0625 + 0,03125 = 0,71875 0,719
La codificacin en complemento a 2 es vlida para manejar los nmeros negativos en
coma fija: en este caso, el cambio de signo de un nmero se realiza invirtiendo todos sus
bits y sumando un bit 1 al nmero resultante; dicha suma ha de efectuarse sobre el bit
menos significativo de la coma fija.
Ejemplo: 2,719 = 00000010,101110 invertir los bits
2,719' = 11111101,010001 +0,000001
- 2,719 = 11111101,010010
Con palabras binarias de 32 bits, reservando 16 para la parte entera (de ellas, un bit
para el signo) y otras 16 para la parte no entera, pueden representarse nmeros con valor
absoluto de hasta 2
15
= 32.768 y con una precisin de 2
-16
= 0,000015.
Con 64 bits, 40 para la parte entera y 24 para la no entera, se alcanzan nmeros cuya
magnitud llega a 2
39
= 2
9
. 2
30
500 . 10
9
(ya que 2
10
10
3
), medio billn, y cuya
precisin decimal sea de 2
-24
= 2
-4
. 2
-20
0,0625 . 10
-6
, una diez millonsima.
3.3.3. Codificacin en coma flotante
La forma exponencial permite codificar los nmeros racionales, ampliando el rango o
la precisin de los mismos.
Todo nmero a puede expresarse mediante su cifra ms significativa como parte
entera, seguida del resto del nmero como parte no entera a', multiplicado por la base del
sistema de numeracin elevada al correspondiente exponente e.
En sistema binario a = 1,a' . 2
e
(mejor, 1,a' . 10
e
, ya que 2 = 10
(2
) donde a' es el
resultado de prescindir en a del bit ms significativo (y de la coma de separacin decimal)
y 2
e
es el valor numrico relativo de dicho bit.
a' recibe el nombre de mantisa, e es el exponente y la codificacin en coma flotante
se configura reservando un bit para el signo, un nmero fijo de bits para el exponente y
otro nmero, fijo tambin, de bits para la mantisa:
el nmero de bits del exponente determina la magnitud (tanto en grande como en
pequeo) de los nmeros que pueden representarse;
el nmero de bits de la mantisa obliga a ajustarla a dicho tamao, despreciando, en
su caso, los dgitos menos significativos, o aadiendo, si es preciso, ceros para completar
el nmero establecido de bits; ello equivale a fijar el nmero de cifras significativas que
se utilizan.
3. Bl oques ari t mt i cos 79
a) Coma flotante de simple precisin
La codificacin binaria en coma flotante de simple precisin utiliza 32 bits, de los
cuales el ms significativo expresa el signo del nmero, los 8 siguientes contienen el
exponente y los 23 restantes estn reservados para la mantisa.
En principio, el exponente se expresa en cdigo exceso 128, de forma que el
exponente 10000000 corresponde al 0 y exponentes que comienzan por 0 son negativos:
00000000 = -128; 01111111 = -1; 10000000 = 0; 11111111 = +127
el rango de los nmeros ir de 2
127
~ 10
38
, sixtillones, en cuanto a nmeros grandes, hasta
2
-128
~ 10
-38
, una sixtillonsima, para nmeros pequeos. Los 23 bits de la mantisa
equivalen a 7 cifras decimales significativas (2
23
~ 10
7
).
Ahora bien, esta codificacin no permite representar el valor 0 (el ms cercano
posible ser el 1,0 . 2
-128
); para incluir el 0 (y para mejorar la precisin de los nmeros de
valor absoluto muy pequeo) la forma de codificar en coma flotante de simple precisin
se ha establecido segn las siguientes normas (estndar IEEE 754):
-
El primer bit indica el signo (0 = +; 1 = ), los 8 bits siguientes expresan el exponente
y los 23 bits restantes contienen la mantisa, normalizada en la forma 1,mantisa:
(-1)
signo
. 1,mantisa . 2
exponente-127
- El exponente se codifica en 8 bits en exceso 127, desde 00000001 = -126 hasta
11111110 = +127, pasando por 01111110 = -1; 01111111 = 0; 10000000 = +1;
10000001 = +2 ;
- Cuando el exponente es 00000000 se utiliza la normalizacin 0.mantisa; si la mantisa
es nula representa el cero y si no es nula, representa el nmero: 0,mantisa . 2
-126
- El exponente 11111111 se reserva para valores infinitos o indeterminados:
- cuando la mantisa es nula: infinito, + o segn el signo (primer bit)
- si la mantisa no es nula: NaN no es un nmero (por ejemplo: 0/0, etc.;...).
b) Coma flotante de doble precisin
La codificacin en coma flotante de doble precisin utiliza 64 bits, el ms
significativo para el signo, 11 bits para el exponente y los ltimos 52 bits expresan la
mantisa; las normas de codificacin son las siguientes (estndar IEEE 754):
-
La mantisa normalizada en la forma 1.mantisa: (-1)
signo
. 1,mantisa . 2
exponente-1023
- El exponente se codifica en 11 bits en exceso 1023, desde 00000000001 = -1022 hasta
11111111110 = +1023
- Para exponente 00000000000 se utiliza la normalizacin 0.mantisa: mantisa nula para
el cero y si no lo es representa el nmero: 0,mantisa . 2
-1022
.
- El exponente 11111111111 se reserva para valores infinitos o indeterminados: para
mantisa nula y NaN cuando la mantisa es distinta de 0.
Los 52 bits de la mantisa equivalen a 15 cifras decimales significativas (2
52
~ 10
15
),
mientras que el exponente cubre un rango numrico de 10
300
.
80 El ect rni ca Di gi t al
3. 4. Codi fi caci n de nmeros en BCD
En general, los humanos estamos acostumbrados al sistema de numeracin decimal
(debido al hecho de que disponemos de 10 dedos) y nos resulta ms cmodo utilizar los
datos numricos en base 10. Para ello, la entrada de datos en los sistemas digitales
requiere la correspondiente conversin decimal binario, mientras que la salida de
resultados requiere la conversin inversa binario decimal. Tales conversiones no son
sencillas y no pueden realizarse modularmente a trozos sino que es preciso operar sobre
el nmero completo a convertir.
Por ello, en muchos sistemas digitales, no se codifican los nmeros en binario sino
que se respeta su representacin en sistema decimal y se codifica por separado cada una
de sus cifras: codificacin BCD (decimal codificado en binario). De esta forma, el
nmero contina siendo decimal (base 10), con sus cifras codificadas en binario.
Cada cifra decimal necesita 4 bits (habida cuenta de que 9 = 1001) y se representan
siempre los cuatro bits, incluidos los ceros no significativos:
0 0000 1 0001 2 0010 3 0011 4 0100
5 0101 6 0110 7 0111 8 1000 9 1001
Las palabras binarias 1010, 1011, 1100, 1101, 1110, 1111 no tienen significado en
codificacin BCD.
Ejemplos de codificacin binaria y BCD:
173 = 10101101
(2
= 0001 0111 0011
BCD
592 = 1001010000
(2
= 0101 1001 0010
BCD
846 = 1101001110
(2
= 1000 0100 0110
BCD
La codificacin BCD permite introducir directamente los nmeros en un sistema
digital a travs de 10 teclas, una para cada cifra decimal, y representar directamente los
resultados sobre visualizadores de 7 segmentos, a travs del correspondiente conversor
BCD 7 segmentos. En ambos casos no es preciso efectuar cambios de cdigo que
afecten al nmero global; ser preciso que cada tecla genere el cdigo BCD de su cifra y
que cada cifra del resultado sea convertida a 7 segmentos para activar el visualizador.
Las operaciones de suma y resta en BCD se efectan de igual forma que en binario,
cifra a cifra, aadiendo las siguientes correcciones:
en el caso de que el resultado R de la suma parcial en una cifra sea superior a 9, es
necesario sumar 6 unidades adicionales sobre la misma
en el caso de que la cifra del minuendo sea inferior a la del sustraendo, se restan 6
unidades.
Esta correccin de 6 unidades se debe al hecho de que en BCD se pasa directamente
del 9 al 0 (y me llevo 1), mientras que en binario hay 6 unidades intermedias entre el 1001
y el 0000 siguiente: las palabras de 4 bits que corresponden a los nmeros del 10 al 15
(1010, 1011, 1100, 1101, 1110, 1111).
3. Bl oques ari t mt i cos 81
Tales correcciones pueden realizarse directamente mediante un conversor como el de
la figura (c = arrastre, R = cifra resultante):
R'3 R'2 R'1 R'0 arrastre C'
Restaurador de BCD
cifra del n B
en BCD
cifra del n A
en BCD
C- arrastre
de la cifra anterior
cifra resultante en BCD
Sumador o restador binario
R3 R2 R1 R0 C
cuya configuracin booleana corresponde a las siguientes funciones:
SUMA c R c' R' RESTA c R c' R'
0 0000 0 0000 0 0000 0 0000
0 0001 0 0001 0 0001 0 0001
0 0010 0 0010 0 0010 0 0010
0 0 0 0
0 1001 0 1001 0 1001 0 1001
0 1010 1 0000 1 1111 1 1001
0 1011 1 0001 1 1110 1 1000
0 1100 1 0010 1 1101 1 0111
0 1101 1 0011 1 1100 1 0110
0 1110 1 0100 1 1011 1 0101
0 1111 1 0101 1 1010 1 0100
1 0000 1 0110 1 1001 1 0011
1 0001 1 0111 1 1000 1 0010
1 0010 1 1000 1 0111 1 0001
1 0011 1 1001 1 0110 1 0000
- En la tabla de la suma el diez 1010 binario equivale al 1 0000 BCD,
el once 1011 al 1 0001 BCD, el doce 1100 al 1 0010 BCD, etc.;...
y el mayor resultado ser el que se obtiene al sumar 9 + 9 + arrastre 1 = 19:
10011 binario que equivale a 1 1001 BCD.
- Al restar 0 1 0000 - 0001 se obtiene 1111 y debera obtenerse 9 1001,
si se resta 0 2 0000 - 0010 se obtiene 1110 y debera obtenerse 8 1000, etc.;
y el resultado extremo se obtiene al restar 0 9 arrastre 1 = 0 10
que da 0110 y debera ser 0000.
- Los vectores de entrada no incluidos en estas tablas no se presentan nunca
y pueden ser asignados con valor X a efectos de simplificar las funciones.
Las unidades aritmticas y lgicas ALU incorporan esta conversin en muchos
casos, en particular en los microprocesadores de 8 bits, de forma que admiten la doble
posibilidad de suma y resta en binario y en BCD.
82 El ect rni ca Di gi t al
Para representar los nmeros negativos en sistema de numeracin binario se utiliza el
complemento a 2
n
(identificando el 0 con 2
n
, siendo n el nmero de dgitos empleados).
De la misma forma, en el sistema decimal los nmeros negativos pueden codificarse en
complemento a 10
n
(complemento a 10), identificando el 0 con 10
n
(para n = nmero de
dgitos empleados).
Por ejemplo, para nmeros de valor absoluto inferior a 100.000, aadiendo la cifra de
signo en la primera posicin resulta un nmero global de 6 cifras:
+1027 = 001027 - 8395 = 10
6
- 8395 = 1000000 - 8395 = 99605
La cifra inicial 0 es propia de los nmeros positivos, mientras que un 9 inicial indica
que el nmero es negativo.
El cambio de signo puede realizarse sin efectuar la sustraccin 10
n
-A; basta calcular
el complemento a 9 de cada cifra y sumar al nmero resultante una unidad:
de positivo a negativo +1027 = 001027 se complementa a 9 cada cifra
1027' = 998972 +1
-1027 = 998973
de negativo a positivo -1027 = 98973 se complementa a 9 cada cifra
-1027' = 01026 +1
+1027 = 01027
Esta codificacin es compatible con la suma y la resta aritmtica de nmeros
naturales en BCD y el desbordamiento (over-flow) se produce cuando:
suma 0--------- + 0--------- = 1---------
9--------- + 9--------- = 8---------
resta 0--------- - 9--------- = 1---------
9--------- - 0--------- = 8---------
es decir, cuando el bit de signo deja de ser 0 9.
Para operar en BCD con nmeros racionales (con parte no entera) se utiliza la
representacin en coma fija, reservando un nmero fijo de dgitos BCD para la parte no
entera (en forma anloga a la indicada anteriormente para los nmeros racionales en base
2). En BCD no se utiliza la representacin en coma flotante, ya que, cuando tal
codificacin resulta necesaria, por razones de precisin, de rango numrico o de velocidad
de clculo, por las mismas razones resulta tambin conveniente expresar los nmeros y
operar con ellos directamente en sistema binario.
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
4 BLOQUES COMBINACIONALES
CONFIGURACIONES RETICULARES
4.1. Decodificadores, multiplexores y demultiplexores
4.2. Multiplexado mediante puertas de transmisin: tri-estado
4.3. Codificadores: conversores de cdigo
4.4. Configuracin ROM
4.5. Sistemas combinacionales; diseo modular
4.6. Los bloques combinacionales en VHDL
Un sistema combinacional es aquel cuyas salidas pueden obtenerse por combinacin
booleana de sus entradas, es decir, a travs de un conjunto de operaciones lgicas sobre
sus variables de entrada; lo cual sucede siempre que a cada vector de entrada le
corresponde un solo vector de salida.
En el diseo de sistemas digitales resulta til aplicar una estrategia de divisin
modular: cuando un sistema resulta complejo es conveniente descomponerlo en subsistemas
y realizar su sntesis por separado. Existe una serie de subsistemas conceptuales que
aparecen con mucha frecuencia y conviene identificarlos como mdulos tpicos. Entre ellos
ya hemos visto en el captulo anterior los bloques aritmticos y lgicos (y en el captulo
segundo los decodificadores y multiplexores, a los que volveremos en el presente tema).
Multiplexores y demultiplexores son bloques dedicados a organizar y seleccionar las
lneas de transmisin de la informacin digital, mientras que los decodificadores
seleccionan directamente una de entre n posibilidades. Todos ellos aprovechan la propiedad
de seleccin o filtrado que poseen los trminos mnimos en relacin con su nmero binario o
vector de entrada.
Los codificadores sirven para cambiar el cdigo en que se expresa la informacin. Una
misma informacin puede representarse en palabras binarias de muy diferentes formas
segn el cdigo que se utilice; la conversin entre cdigos, aunque no modifique la
informacin, es una labor necesaria y til (por ejemplo, la conversin de una cifra BCD al
cdigo de 7 segmentos permite representarla grficamente en su forma habitual).
Cualquier conjunto de n funciones de m variables puede considerarse como un conversor de
un cdigo de m bits a otro de n bits (si bien puede suceder que a diferentes vectores de
entrada corresponda un mismo vector de salida, lo cual supone prdida de informacin).
Todos estos bloques (los considerados en este captulo y en el anterior) constituyen los
mdulos habituales de diseo de un sistema combinacional; sin perjuicio de la necesidad de
puertas individuales o conjuntos de funciones booleanas particulares (codificadores
especficos). El primer paso en un diseo ser efectuar la divisin del sistema en bloques, es
decir, detallar una arquitectura propia en forma de diagrama de bloques.
Decodificadores, multiplexores, demultiplexores y codificadores son bloques que suelen
presentar un gran nmero de conexiones internas; la configuracin reticular de las mismas
simplifica mucho su descripcin grfica.
2 El ect rni ca Di gi t al
4. 1. Decodi fi cadores, mul t i pl exores y demul t i pl exores
Una palabra de n bits contiene 2
n
posibilidades (numeradas de 0 a 2
n
-1), de forma
que n entradas permiten seleccionar una de entre 2
n
lneas, asignando a cada una de ellas
un nmero de n dgitos. Esta funcin de seleccin puede configurarse a travs de los
trminos mnimos de las entradas: un trmino mnimo adopta valor 1 para su
correspondiente vector de entrada y con cualquier otro vector da valor 0.
4.1.1. Decodificadores
Un decodificador es un selector de lnea con m entradas y 2
m
lneas de salida
(numeradas con m dgitos binarios); en cada momento el nmero binario que recibe como
vector de entrada determina que la correspondiente lnea de salida se encuentre activa
(valor 1) y el resto de ellas a 0. Este bloque digital se denomina decodificador porque
decodifica las 2
m
posibilidades de un nmero binario de m dgitos sobre 2
m
lneas.
lnea 0
lnea 1
lnea 2
lnea 3
lnea n-2
lnea n-1
' ' '
C B A
entradas de seleccin
'
'
lnea 4
La numeracin de las lneas de salida comienza por la lnea 0, pues el primer vector
de entrada sobre las lneas de seleccin ser el 0...00, hasta llegar a la lnea 2
m
-1,
correspondiente al ltimo vector de seleccin, 1...11.
El decodificador es un bloque digital de particular importancia:
- es un selector de lnea, que discrimina las lneas de salida segn su nmero binario en
las entradas;
- corresponde al conjunto de todos los trminos mnimos de sus entradas;
- contiene todas las opciones posibles de sus vectores de entrada y hace corresponder a
cada una de ellas con una de las lneas de salida;
- su vector de salida corresponde a un cdigo de un solo uno (una sola lnea activada,
la que corresponde al vector presente en sus entradas).
Asimismo, la disponibilidad de todos los trminos mnimos permite utilizar al
decodificador para construir funciones booleanas de sus entradas, en su forma cannica;
para ello bastar aadir una puerta "o" para cada funcin [precisamente, los
decodificadores fueron introducidos con tal finalidad en 2.4.].
IV. Bl oques codi f i cadores y di st ri bui dores 3
Un decodificador estar configurado por los trminos mnimos de sus entradas, cada
uno de los cuales dar lugar a una lnea de salida: cada salida puede construirse con una
simple puerta "y" de m entradas, formando el trmino mnimo que corresponde a su
numeracin.
Consideremos un decodificador de 4 variables de entrada: sus 16 lneas de salida
correspondern a los 16 trminos mnimos de 4 variables y sern las salidas de otras
tantas puertas "y" de 4 entradas que podemos dibujar en la forma siguiente:
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
d d c c b b a a
Decodificador de 4 variables (16 trminos mnimos)
La figura anterior presenta una estructura reticular, gracias a que la representacin
habitual de puertas con varias entradas ha sido sustituida por una sola lnea de entrada
sobre la cual se conectan las diversas entradas:
equivale a
A B C D A B C D
4 El ect rni ca Di gi t al
El dibujo de varias entradas conectadas sobre una lnea de entrada nica no
significa que tales entradas se interconecten formando un nudo comn (pues ello dara
lugar a un grave conflicto entre sus valores booleanos cuando fueran diferentes) sino que
pretende representar, en forma simplificada, las diversas entradas de la puerta lgica (cada
una de las cuales acta por separado).
Esta forma reticular de dibujar bloques de muchas salidas (o, tambin, de muchas
entradas) es sumamente til porque facilita la lectura y la comprensin del circuito
(evitando el entrecruzamiento de un gran nmero de lneas) y permite apreciar la
distribucin de las variables respecto a las diversas puertas lgicas y las regularidades o
simetras existentes en tal distribucin.
Adems, esta forma de representar las conexiones sobre las puertas lgicas permite
trasladar el conjunto de conexiones (o el equivalente conjunto de entradas) sobre una
matriz de ceros y unos, en la cual el 1 representa una conexin y el 0 indica la
ausencia de ella. Al decodificador de la figura le corresponder la siguiente matriz de
conexiones:
Matriz de conexiones D D C C B B A A
del decodificador 0 1 0 1 0 1 0 1
de 4 variables 0 1 0 1 0 1 1 0
(16 lneas de salida) 0 1 0 1 1 0 0 1
0 1 0 1 1 0 1 0
0 1 1 0 0 1 0 1
0 1 1 0 0 1 1 0
0 1 1 0 1 0 0 1
0 1 1 0 1 0 1 0
1 0 0 1 0 1 0 1
1 0 0 1 0 1 1 0
1 0 0 1 1 0 0 1
1 0 0 1 1 0 1 0
1 0 1 0 0 1 0 1
1 0 1 0 0 1 1 0
1 0 1 0 1 0 0 1
1 0 1 0 1 0 1 0
IV. Bl oques codi f i cadores y di st ri bui dores 5
4.1.2. Multiplexores
La funcin multiplexado consiste en seleccionar una de entre varias fuentes de datos
para enviarlos por una misma lnea; un multiplexor realiza el multiplexado de n lneas de
entrada a una sola lnea de salida.
Un multiplexor es un subsistema digital que selecciona una de entre n fuentes de
datos, comunicndola con la lnea de salida del mismo; dispone de n lneas de entrada, 1
lnea de salida y un conjunto de m lneas de control o seleccin, tal que n = 2
m
(o bien, 2
m
n). En cada momento el vector de entrada en las lneas de seleccin
determina (por su nmero) la lnea de entrada que queda conectada a la salida.
Este tipo de actuacin se denomina tambin muestreo, pues selecciona de entre
diversas lneas de entrada la que interesa en cada caso: el multiplexor muestrea la lnea
cuyo nmero binario es establecido sobre las entradas de control del mismo.
Las siguientes figuras representan, respectivamente, un multiplexor genrico de n
lneas y un multiplexor de 4 lneas:
'
'
lnea 0
lnea 1
lnea 2
lnea 3
lnea 4
lnea n-2
lnea n-1
salida
' ' '
C B A
entradas de seleccin
B A
0
1
2
3
salida Mux.
Los trminos mnimos (por su funcin selectiva respecto a su propio vector de
entrada) sirven para filtrar la lnea de entrada que corresponde al vector presente en las
lneas de seleccin; para ello basta realizar la operacin "y" entre cada lnea de entrada y
el trmino mnimo que corresponde a su nmero en binario.
Por ejemplo, para la lnea 10
(10
= 1010
(2
:
lnea 10 selector de la lnea 10
d
c
b
a
Slo cuando las variables dcba alcanzan el valor 1010(2
= 10(10 dicha puerta
presenta en su salida el valor booleano existente en la lnea 10; en cualquier otro caso, su
salida es 0.
6 El ect rni ca Di gi t al
De esta forma, un multiplexor estar formado por 2
m
puertas "y" de m+1 entradas
confluyendo sobre una puerta "o" de salida (que dar paso a la nica lnea seleccionada en
cada momento):
... ... + a . b ...c. . L + .b.a c ... . L + a .b. c ... . L + .a b . c ... . L + a . b . c ... . L =
mnimo trmino . L = Y
4 3 2 1 0
i i
Por ejemplo, para 8 lneas de entrada (3 lneas de control) el multiplexor resultante,
representado en configuracin reticular, es el de la figura siguiente:
c c b b a a
lnea 0
lnea 1
lnea 2
lnea 3
lnea 4
lnea 5
lnea 6
lnea 7
salida
Multiplexor de 8 lneas (3 entradas de control)
Habida cuenta de que a. b + c.d = (a b) (c d) [suma de productos = Nand de
Nands] las puertas de la figura anterior pueden ser sustituidas, todas ellas a la vez, por
puertas "y-negada" (Nand).
Si asignamos valores booleanos a las lneas de entrada (las conectamos a 0 o a 1), el
multiplexor selecciona uno de dichos valores. De esta forma, podemos construir cualquier
funcin de sus entradas de control, fijando en las lneas de entrada los valores de la tabla
de verdad de la misma: las variables de control seleccionan sobre la propia tabla de la
funcin el valor booleano que debe adoptar (look-up-table) [tambin los multiplexores
fueron introducidos con tal finalidad en II.4]
Cuando los datos a multiplexar constan de varios bits y stos son enviados en
paralelo, en lugar de una nica lnea se tiene un bus o conjunto de lneas que comunican
una palabra binaria y la funcin multiplexado consiste igualmente en seleccionar uno de
entre varios buses de entrada para comunicarlo con el bus de salida; para un bus de
longitud p, es decir compuesto por p lneas, se necesitarn p multiplexores en paralelo.
IV. Bl oques codi f i cadores y di st ri bui dores 7
C
salida
Mux.
A
B
C
salida Mux.
A
B
4
4
4
para C = 0, salida = A
para C = 1, salida = B
Multiplexor de dos buses de 4 lneas (1 entrada de seleccin)
4.1.3. Demultiplexores
Los demultiplexores realizan una funcin contraria a la del multiplexor: reciben los
datos por una sola entrada y los dirigen a una de entre n lneas de salida, seleccionables
numricamente por m lneas de control; en cada momento el dato presente en su entrada
aparece en la salida cuyo nmero binario coincide con el establecido en las entradas de
control y el resto de lneas de salida permanecen a 0.
lnea 0
lnea 1
lnea 2
lnea 3
lnea 4
lnea n-2
lnea n-1
' ' '
C B A
entradas de seleccin
B A
0
1
2
3
'
'
entrada entrada
Internamente un demultiplexor est constituido por n puertas "y" a todas las cuales
accede la lnea de entrada junto con el trmino mnimo correspondiente de las entradas de
control; dicho trmino mnimo realiza la seleccin permitiendo la actuacin de una sola
de las n puertas "y": salida
i
= entrada . trmino mnimo
i
.
Por ejemplo, para la lnea de salida nmero 10
(10
= 1010
(2
:
entrada
al demultiplexor
d
c
b
a
lnea 10
8 El ect rni ca Di gi t al
La figura siguiente representa el esquema de puertas lgicas que configuran un
demultiplexor de 8 lneas:
c c b b a a
lnea 0
lnea 1
lnea 2
lnea 3
lnea 4
lnea 5
lnea 6
lnea 7
entrada
Demultiplexor de 8 lneas (3 entradas de seleccin)
Anulando la lnea de entrada del demultiplexor, es decir, conectndola a 1, se obtiene
directamente un decodificador: la lnea de salida seleccionada por el nmero binario
establecido en las entradas se encontrar a 1 y el resto de lneas de salida estarn a 0.
Tanto los multiplexores como los demultiplexores son modularmente ampliables:
- un multiplexor de n lneas a cuyas entradas se conectan n multiplexores de k lneas,
conectndose a su vez las entradas de control de stos en paralelo, se convierte en un
multiplexor de n.k lneas;
- un demultiplexor de n lneas cuyas salidas se conectan a n demultiplexores de k lneas,
conectndose tambin las entradas de control de stos en paralelo, se convierte en un
demultiplexor de n.k lneas;
- en el caso de los decodificadores, su ampliacin se realiza conectando sus n salidas a
otros tantos demultiplexores de k lneas, con lo que se obtiene un decodificador de n.k
lneas.
Por ejemplo, cuatro multiplexores de 4 lneas conectadas sus salidas a las entradas de
otro anlogo (de 4 lneas) configuran un multiplexor de 16 lneas; el mismo multiplexor
de 16 lneas puede configurarse con dos multiplexores de 8 lneas conectados a uno de
slo 2 lneas.
Lo mismo sucede con cuatro demultiplexores de 4 lneas cuyas entradas se conectan
a las salidas de otro demultiplexor de 4 lneas o tambin con dos demultiplexores de 8
lneas conectados a las salidas de uno de 2 lneas.
IV. Bl oques codi f i cadores y di st ri bui dores 9
Mux.
Mux.
Mux.
B A
Mux.
D C
Mux.
C B A
Mux.
D
Mux.
Mux.
Multiplexor de 16 lneas resultante de la conexin de multiplexores ms pequeos
[La figura correspondiente a la conexin de demultiplexores sera la misma, con el
flujo de datos de derecha a izquierda: entradas por la derecha, salidas hacia la izquierda.]
4. 2. Mul t i pl exado medi ant e puert as de t ransmi si n: t ri -est ado
Un interruptor (con una entrada de control) constituye una puerta muy simple:
cuando conduce deja pasar a su salida el valor booleano presente en su entrada y en
corte no permite el paso a su travs. Ahora bien, desde el punto de vista de la salida, hay
tres situaciones posibles: las dos que corresponden a los valores booleanos 0/1 y una
tercera de desconexin cuando el interruptor se encuentra en corte.
entrada salida
control
a
c
y
puerta de transmisin
La operacin que realiza un interruptor no coincide con las operaciones booleanas
bsicas (ni con sus derivadas) sino que da lugar a un nuevo tipo de puerta, a la que
denominaremos puerta de transmisin, cuya actuacin consiste en permitir/inhibir el
paso entre la entrada y la salida.
10 El ect rni ca Di gi t al
La salida de una puerta de transmisin presenta tres estados posibles: 0, 1 y
desconexin; este tercer estado no corresponde a un valor booleano concreto, sino a una
nueva situacin fsica, en la cual la puerta de transmisin no determina (no influye sobre)
el valor de la salida.
Se emplea la denominacin tri-estado para aludir esta triple posibilidad que ofrecen
las puertas de transmisin; el estado de desconexin recibe el nombre de alta
impedancia (pues tal es la situacin fsica a la que corresponde) y se representa en forma
abreviada con el smbolo Z (o bien, z en forma ms explcita). Los tres valores del tri-
estado son 0, 1 y Z.
Las puertas de transmisin (o adaptadores tri-estado) no son tiles para configurar
funciones lgicas, pero s para multiplexar seales (para construir multiplexores):
podemos conectar las salidas de varias puertas de transmisin y seleccionar una de las
seales que reciben, haciendo que la correspondiente puerta est activada y todas las
dems en corte.
Decodificador
B A
y
lnea 0
lnea 1
lnea 2
lnea 3
Multiplexor de 4 lneas, construido con 4 puertas de transmisin y un decodificador
Las puertas lgicas no permiten la conexin de varias salidas, unidas en un mismo
nudo, porque dara lugar a posibles conflictos entre los dos valores booleanos 0/1; en
cambio, las puertas de transmisin pueden agrupar sus salidas, con tal de que en cada
momento conduzca una sola de ellas y las dems se encuentren en corte.
IV. Bl oques codi f i cadores y di st ri bui dores 11
Dos puertas de transmisin con un inversor entre sus entradas de control dan lugar a
un pequeo multiplexor de 2 lneas; la conexin de tales multiplexores en cascada
permite construir multiplexores de mayor nmero de lneas.
y
lnea 1
lnea 0
A
A A B C
Multiplexor de 2 lneas Multiplexor de 8 lneas
De igual forma la utilizacin de varias puertas de transmisin en paralelo, con la
entrada de control comn, permite el multiplexado de buses; la siguiente figura presenta
un multiplexor de dos buses de 4 lneas (cuando Selector = 0, pasa el bus A a la salida;
con Selector = 1, pasa el B).
A
S
a
l
i
d
a
Selector
B
4
4
4
Selector
Multiplexor de 2 buses de 4 lneas
Los conjuntos de puertas de transmisin en paralelo reciben tambin el nombre de
adaptadores tri-estado (buffer tri-state) y pueden ser, asimismo, de tipo inversor (puertas
de transmisin con un inversor previo delante de cada una de ellas).
12 El ect rni ca Di gi t al
4. 3. Codi fi cadores: conversores de cdi go
En los sistemas digitales toda la informacin se maneja codificada en palabras
binarias. Pero existen mltiples maneras de codificar una misma informacin; por
ejemplo, el valor numrico 94 puede ser representado, entre otros, en los siguientes
cdigos:
- Binario normal (base 2) 1011110
- Gray 1110001
- BCD (decimal codificado en binario) 1001 0100
- ASCII (representacin de texto) 0111001 0110100
- Un solo uno (con 10 niveles) 1000000000 0000010000
- Barras (de 9 niveles) 111111111 000001111
- Siete segmentos (para visualizadores) 1111011 0110011
-
El cdigo binario es la representacin normal de nmeros, utilizando el sistema de
numeracin base 2, mientras que BCD respeta la estructura decimal del nmero (base 10).
El cdigo ASCII se emplea para la representacin de caracteres en el tratamiento de
textos y es el adecuado para enviar tal informacin a una impresora.
Los tres cdigos siguientes pueden utilizarse para la representacin visual de las
cifras decimales. El cdigo de un solo uno utiliza palabras binarias que contienen
solamente un uno y corresponde al vector de salida de un teclado decimal (asimismo,
era el utilizado por los tubos Nixie de 10 filamentos, uno con la forma de cada cifra).
El cdigo de barras representa las cifras decimales mediante barras luminosas (de nueve
niveles sucesivos) y el cdigo de siete segmentos las representa en su forma habitual (a
travs de 7 segmentos, con la forma de un 8).
Muchas veces interesa pasar de una codificacin a otra; por ejemplo, la entrada de
un teclado de 10 pulsadores independientes servir para introducir cifras decimales en
cdigo de un solo uno pero, para operar con dichas cifras, generalmente interesar
transformarlas a BCD y, una vez obtenidos los resultados, ser preciso convertir sus cifras
a 7 segmentos para representarlas en un visualizador.
Para efectuar un cambio de cdigo, basta ejecutar la tabla booleana que relaciona
ambas codificaciones: si se trata de pasar de una codificacin en palabras de m dgitos a
otra que utiliza n bits, dicha tabla representa n funciones booleanas (n columnas) de m
variables de entrada (2
m
filas):
X
m1
X
m-2
... X
2
X
1
X
0
Y
n-1
Y
n-2
... Y
2
Y
1
Y
0
Y
j
= f
j
X
i
( ) n funciones de m variables
IV. Bl oques codi f i cadores y di st ri bui dores 13
Un codificador o conversor de cdigo es un bloque digital con m entradas y n
salidas, configurado internamente por n funciones booleanas de m variables.
X2
Xm-1
Xm-2
X1
X0
Y0
Y1
Yn-1
'
'
'
'
'
'
codificador
Cada codificador es un bloque especfico, cuyas n funciones corresponden a la
conversin de cdigo que efecta.
Recprocamente, cualquier conjunto de n funciones de m variables puede ser
considerado como un conversor de un cdigo de m bits a otro de n bits; ahora bien, en el
caso de que un mismo vector de salida se repita para dos vectores de entrada diferentes,
existir prdida de informacin.
Consideremos a continuacin, a modo de ejemplos, tres codificadores o conversores
de cdigo tpicos: un conversor BCD a 7 segmentos, un encodificador de 9 lneas a BCD
y un codificador de prioridad de 9 lneas de entrada.
4.3.1. Codificador BCD a 7 segmentos
Las cifras decimales (del 0 al 9) se expresan en BCD con cuatro dgitos binarios (del
0000 al 1001); pero tambin dichas cifras se pueden representar mediante un visualizador
de 7 segmentos para lo cual hay que codificarlas en 7 bits, cada uno de los cuales controla
(enciende) uno de los segmentos:
a
b
c
d
e
f
g
El conversor entre el cdigo BCD y el de 7 segmentos ha de tener 4 entradas y 7
salidas; la tabla de conversin representar las 7 funciones booleanas de 4 entradas que
realizan dicho cambio de cdigo; a partir de ella, pueden obtenerse directamente las
expresiones algebraicas de dichas funciones que servirn para controlar cada uno de los 7
segmentos.
14 El ect rni ca Di gi t al
La tabla correspondiente al paso de BCD a 7 segmentos es la siguiente:
n decimal binario
7 segmentos
D
C
B
A
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 1 0 1 1
A partir de ella, utilizando para simplificar los correspondientes diagramas de
Karnaugh y expresando las funciones resultantes en trminos de puertas "y-negada", se
obtienen las siguientes expresiones:
a
OO O1 11 1O
OO 1 0 1 1 Por trminos suma:
O1 0 1 1 1
a = (D+ C + B+ A) . (D+ C+ B+ A) =
11 X X X X
= D+ B+ C.A + C.A =
1O 1 1 X X
= Nand(D, B, C A,C A)
b
OO O1 11 1O
OO 1 1 1 1 Por trminos suma:
O1 1 0 1 0
b = (C+ B+ A) . (C + B+ A) =
11 X X X X
= C+ B.A+ B.A =
1O 1 1 X X
= Nand(C, B A, B A)
IV. Bl oques codi f i cadores y di st ri bui dores 15
c
OO O1 11 1O
OO 1 1 1 0 Por trminos suma:
O1 1 1 1 1
c = (C+ B+ A) =
11 X X X X
= C+ B+ A =
1O 1 1 X X
= Nand(C, B, A )
d
OO O1 11 1O
OO 1 0 1 1 Por trminos producto:
O1 0 1 0 1
d = C.A+ C.B+ C.B.A + B.A+ D =
11 X X X X
= D+ C.B.A+ C.B+ C.A+ B.A =
1O 1 1 X X
= Nand(D, Nand(C, B, A), C B, C A, B A)
e
OO O1 11 1O
OO 1 0 0 1 Por trminos producto:
O1 0 0 0 1
e = C.A+ B.A =
11 X X X X
= C.A+ B.A =
1O 1 0 X X
= (C A) (B A )
f
OO O1 11 1O
OO 1 0 0 0 Por trminos producto:
O1 1 1 0 1
f = B.A+ C.B+ C.A+ D =
11 X X X X
= D+ C.B+ C.A+ B.A =
1O 1 1 X X
= Nand(D, C B, C A, B A)
g
OO O1 11 1O
OO 0 0 1 1 Por trminos producto:
O1 1 1 0 1
g = C.B+ C.B+ C.A+ D =
11 X X X X
= D+ C.B+ C.B+ C.A =
1O 1 1 X X
= Nand(D, C B, C B, C A)
16 El ect rni ca Di gi t al
B*A
B*A
"b"
"d"
"e"
C*(B*A)
C*(B*A)
B*A
C
C
A
D
D
D
C
C
B
B
A
A
B*A
C*(B*A)
"f"
B
B
"a"
B*A
C*A C*A
"g"
C*B
C*A
"c"
D
D
D
Conversor BCD 7 segmentos (con puertas Nand)
La configuracin de la figura utiliza:
- 2 puertas "y-negada" de 4 entradas
- 4 puertas "y-negada" de 3 entradas
- 11 puertas "y-negada" de 2 entradas
- y 5 inversores; en total: 22 puertas booleanas.
IV. Bl oques codi f i cadores y di st ri bui dores 17
4.3.2. Codificador de 9 lneas a BCD (encodificador)
Sean nueve lneas numeradas del 1 al 9, de forma que nunca se activan dos de ellas a
la vez (cdigo de un solo uno), para convertir dichas 9 entradas en su cdigo BCD
correspondiente basta utilizar una puerta "o" para cada salida:
9
8
7
6
5
4
3
2
1
D
C
B
A
Siempre que el cdigo de entrada es de un solo uno el conversor se construye
mediante puertas "o" (una para cada salida): cada lnea de entrada coincide con uno de los
cdigos de entrada y debe conectar con aquellas puertas "o" que deben adoptar valor 1 en
el correspondiente cdigo de salida. Por ejemplo, el cdigo de la lnea 9 es 1001 y, por
tanto, debe incidir en las dos puertas "o" de los extremos.
Este tipo de codificador (cdigo de entrada de un solo uno - puertas "o" de salida)
recibe el nombre de encodificador (porque llevan las entradas directamente a las puertas
de salida).
La tabla funcional de este encodificador es la siguiente:
l9 l8 l7 l6 l5 l4 l3 l2 l1 D C B A
0 0 0 0 0 0 0 0 1 0 0 0 1
0 0 0 0 0 0 0 1 0 0 0 1 0
0 0 0 0 0 0 1 0 0 0 0 1 1
0 0 0 0 0 1 0 0 0 0 1 0 0
0 0 0 0 1 0 0 0 0 0 1 0 1
0 0 0 1 0 0 0 0 0 0 1 1 0
0 0 1 0 0 0 0 0 0 0 1 1 1
0 1 0 0 0 0 0 0 0 1 0 0 0
1 0 0 0 0 0 0 0 0 1 0 0 1
18 El ect rni ca Di gi t al
La representacin reticular resulta tambin muy apropiada para los encodificadores:
L
N
E
A
S
D
E
E
N
T
R
A
D
A
1
2
3
4
5
6
7
8
9
D C B A
La matriz de conexiones de un encodificador, en estructura reticular, se
corresponde directamente con la tabla funcional del encodificador (con la parte derecha de
dicha tabla):
Matriz de conexiones D C B A
del encodificador 0 0 0 1 lnea 1
de 9 lneas 0 0 1 0 lnea 2
(4 salidas) 0 0 1 1 lnea 3
0 1 0 0 lnea 4
0 1 0 1 lnea 5
0 1 1 0 lnea 6
0 1 1 1 lnea 7
1 0 0 0 lnea 8
1 0 0 1 lnea 9
De forma que, para dibujar un codificador en configuracin reticular, basta establecer
la correspondiente retcula lneas de entrada puertas "o" de salida y sobre la misma
reflejar la tabla funcional, insertando una conexin cuando el valor de dicha tabla es 1 y
dejando sin conexin aquellos cruces que corresponden a valor 0.
IV. Bl oques codi f i cadores y di st ri bui dores 19
4.3.3. Codificador de prioridad de 9 lneas
Sean nueve lneas numeradas del 1 al 9 como en el caso anterior, pero admitiendo la
posibilidad de que se activen varias a la vez: el cdigo de salida ser el ms alto de los
nmeros binarios que corresponden a las lneas que se encuentran activadas. La tabla de
conversin simplificada es la siguiente:
l9 l8 l7 l6 l5 l4 l3 l2 l1 D C B A
0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 1
0 0 0 0 0 0 0 1 X 0 0 1 0
0 0 0 0 0 0 1 X X 0 0 1 1
0 0 0 0 0 1 X X X 0 1 0 0
0 0 0 0 1 X X X X 0 1 0 1
0 0 0 1 X X X X X 0 1 1 0
0 0 1 X X X X X X 0 1 1 1
0 1 X X X X X X X 1 0 0 0
1 X X X X X X X X 1 0 0 1
de la cual resultan las siguientes funciones booleanas (simplificadas por absorcin) :
D = l
9
+ l
8
C = l
9
.l
8
.(l
7
+ l
6
+ l
5
+ l
4
)
B = l
9
.l
8
.(l
7
+ l
6
) + l
9
.l
8
.l
5
.l
4
.(l
3
+ l
2
)
A = l
9
+ l
8
.l
7
+ l
8
.l
6
.l
5
+ l
8
.l
6
.l
4
.l
3
+ l
8
.l
6
.l
4
.l
2
.l
1
4. 4. Confi guraci n ROM
En general, la tabla funcional correspondiente a un cambio de codificacin puede ser
muy amplia y la sntesis de las funciones booleanas que corresponden a dicha tabla puede
ser sumamente compleja. Sin embargo, la conversin de un cdigo a otro puede
resolverse de una manera conceptualmente ms sencilla, sin necesidad de construir dichas
funciones booleanas, dividindolo en dos partes: decodificacin y encodificacin.
'
'
'
'
X2
Xm-1
Xm-2
X1
X0
Y0
Y1
Yn-1
'
'
'
X2
Xm-1
Xm-2
X1
X0
Y0
Y1
Yn-1
'
'
'
2
de
co
di
fi
ca
dor
en
co
di
fi
ca
dor
m
codificador
ROM
'
'
'
'
'
'
El primer bloque realiza una decodificacin completa de los vectores de entrada
sobre 2
m
lneas intermedias, que adoptarn el cdigo de un solo uno, propio de las
salidas de un decodificador; dichas 2
m
lneas intermedias se encodifican sobre las n lneas
de salida.
20 El ect rni ca Di gi t al
De hecho, la figura anterior equivale a configurar las n funciones booleanas de las
salidas en su forma cannica: suma de trminos mnimos. Primero, se construyen todos
los trminos mnimos de las entradas y, luego, cada salida recoge en una puerta "o"
(suma) los que corresponden a su funcin, es decir, aquellos cuya columna en la tabla
funcional presenta valor 1.
Los codificadores configurados segn este esquema reciben el nombre genrico de
ROM (read only memory, memorias de slo lectura), nombre confuso que procede de la
utilizacin de estos bloques en los computadores y microprocesadores; sin embargo, estos
bloques son claramente combinacionales y no tienen, en absoluto, capacidad de memoria,
la cual es propia de los sistemas secuenciales. [Por ello, desde el punto de vista de que
son bloques combinacionales y a tenor de su estructura funcional, propongo interpretar
las siglas ROM como Row Ordered Minterms: filas de trminos mnimos.]
La configuracin ROM contiene dos partes diferenciadas:
- un decodificador, cuya realizacin solamente depende del nmero m de entradas,
pero es independiente del codificador concreto de que se trate
- y un encodificador, constituido por n puertas "o", cada una de las cuales recibe parte
de las lneas de salida del decodificador.
Los subconjuntos de lneas de salida del decodificador conectadas a cada una de las
puertas "o" del encodificador personalizan el codificador, es decir, son lo nico que vara
entre dos codificadores diferentes de igual nmero de entradas y salidas.
En trminos de puertas booleanas tal estructura presenta gran simplicidad y
regularidad; est constituida modularmente por dos conjuntos de puertas:
- el primero de puertas "y" (2
m
puertas "y" de m entradas que forman el decodif.)
- seguido de un conjunto de puertas "o" (n puertas "o" que forman el encodif.).
Para ambos bloques, la configuracin reticular resulta muy apropiada; la matriz de
conexiones del encodificador coincide con la tabla funcional (con la parte de la derecha,
de asignacin de valores a las salidas) de la conversin entre los dos cdigos.
Por ejemplo, en el caso del conversor de BCD a 7 segmentos, su configuracin
ROM (en forma reticular) es la representada en la figura de la pgina siguiente.
[Comprubese en ella que la matriz de conexiones del encodificador es idntica a la tabla
funcional, pgina 96.]
IV. Bl oques codi f i cadores y di st ri bui dores 21
a b c e d f g
A B C D
D C B A
D D C C B B A A
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
E N T R A D A S [BCD]
S A L I D A S [7 seg.]
Codificador ROM BCD 7 segmentos
22 El ect rni ca Di gi t al
Ahora bien, cuando el nmero de entradas del codificador es pequeo (como sucede
en el caso anterior) la configuracin ROM de un codificador no supone una ventaja
apreciable respecto a la obtencin de sus funciones booleanas simplificadas.
La estructura ROM es realmente apropiada cuando el nmero de entradas es alto
(por encima de las 6 entradas); en tal caso, la configuracin ROM puede ser construida
directamente desde la tabla funcional o tabla de conversin, evitando la necesidad de
extraer de ella y de simplificar las funciones booleanas. Dicha construccin consiste en:
- configurar un decodificador genrico de m entradas, o sea, construir
reticularmente los 2
m
trminos mnimos,
- seguido de un encodificador, cuya matriz de conexiones ha de ser la propia tabla
de conversin.
Dos ejemplos concretos de cambios de cdigo con un nmero amplio de entradas los
constituyen las tablas funcionales y los generadores de caracteres.
Podemos considerar un codificador ROM como una tabla de valores que para cada
valor numrico de entrada nos proporciona el resultado de una determinada funcin
aplicada a dicho nmero; de esta forma los codificadores ROM permiten configurar
tablas reducidas de funciones, tablas funcionales, como, por ejemplo, tablas
trigonomtricas (senos, cosenos, tangentes,...), tablas de logaritmos, etc.
Los generadores de caracteres son codificadores que convierten los caracteres
alfanumricos codificados en binario (por ejemplo, en cdigo ASCII de 7 bits) en
matrices rectangulares de puntos que representan visualmente dichos caracteres. La
visualizacin final puede realizarse bien mediante diodos luminiscentes LED o lmparas,
bien en monitores o pantallas de rayos catdicos CRT, bien sobre papel mediante
impresoras de puntos, etc. Los puntos de una matriz n x m se activarn (iluminacin o
impresin) cuando se encuentren con valor 1 y no lo harn si es 0.
Las pequeas mini-impresoras por puntos suelen imprimir en columnas de 7 puntos,
utilizando 5 columnas para cada letra o nmero y 2 de separacin. El codificador ROM
para la correspondiente generacin de caracteres ha de tener como entradas los 7 dgitos
del carcter ASCII ms 3 dgitos para indicar el nmero de columna a imprimir y
presentar como salidas los 7 bits que van a controlar los solenoides que activan los
bastones de impresin.
En cambio, en el barrido de la pantalla de un monitor (CRT) las letras y nmeros se
dibujan por filas, de forma que el generador de caracteres ha de tener como entradas los 7
dgitos de cada carcter ms 3 4 dgitos para indicar el nmero de la fila y las salidas
son los 5 7 bits correspondientes a los puntos que conforman una fila del carcter, caso
de representarlos en matrices de 7 x 5 puntos o de 9 x 7 puntos, respectivamente.
IV. Bl oques codi f i cadores y di st ri bui dores 23
4. 5. Si st emas combi naci onal es; di seo modul ar
Entendemos por sistema lgico o sistema booleano aquel que puede describirse en
trminos del lgebra de Boole de 2 elementos. En principio, dicho sistema tendr m
variables o entradas, cuyos valores booleanos configuran un vector de entrada de
dimensin m, y n resultados o salidas, cuyos valores booleanos configuran un vector de
salida de dimensin n.
X0
X1
X2
X3
X4
X5
X6
Xm-2
Xm-1
Y0
Y1
Y2
Y3
Yn-2
Yn-1
'
'
'
'
'
'
'
'
'
'
Un sistema lgico es combinacional si a cada vector de entrada le corresponde un
solo vector de salida, es decir, si la salida es nica (aplicacin unvoca del conjunto de
vectores de entrada en el conjunto de vectores de salida): para un vector de entrada dado
no existe ms de un vector de salida.
La correspondencia unvoca, es decir, el que a un vector de entrada dado le
corresponda un solo vector de salida puede parecer obvia y, sin embargo, no lo es:
en el captulo 11, al introducir los sistemas secuenciales (sistemas digitales que poseen
memoria), se apreciar que para ellos la aplicacin vectores de entrada vectores de
salida no es unvoca.
Cada variable de salida y es una funcin booleana de las m variables de entrada xi;
tal funcin puede expresarse mediante su tabla funcional o tabla de verdad, haciendo
explcito el valor booleano que adopta la variable de salida para cada uno de los 2
m
vectores de entrada. En tal sentido, el nombre de combinacional proviene de que las
salidas o respuestas del sistema son funcin booleana de sus entradas, es decir, son
combinacin mediante operaciones booleanas de las variables de entrada.
Es posible que el vector de salida correspondiente a uno de entrada sea
indeterminado o indiferente (no importa cual sea). Esto sucede, por ejemplo, en muchos
diseos reales cuando un determinado vector de entrada no se presenta nunca en la
prctica o cuando no importa qu respuesta produzca el sistema para un determinado
vector de entrada (porque no hay exigencias respecto a tal respuesta y resulte indiferente
que sea una u otra). La indeterminacin puede referirse a todas las variables de salida o
solamente a algunas de ellas: indeterminacin parcial.
24 El ect rni ca Di gi t al
En los casos de indeterminacin se asigna inicialmente a las correspondientes
variables de salida el valor X, que puede ser 1 0 segn interese; esta doble posibilidad se
utiliza para simplificar las funciones booleanas resultantes.
As pues, en un sistema lgico combinacional a un vector de entrada le corresponde
uno y slo un vector de salida; o bien no le corresponde inicialmente ninguno (la salida
es indeterminada) y en el proceso de sntesis se le asigna un vector de salida cuyas
componentes se eligen segn interese.
El anlisis de un sistema combinacional pasa por obtener su tabla de operacin o
conjunto de tablas de verdad, expresando para cada vector de entrada el vector de salida
que le corresponde.
La sntesis de sistemas combinacionales consiste en construir, a partir de las
especificaciones o requisitos que se persiguen, la tabla funcional que relaciona los 2
m
vectores de entrada posibles con los vectores de salida que deben producir; a partir de
dicha tabla se obtienen las correspondientes funciones booleanas que permiten construir el
sistema por combinacin adecuada de puertas lgicas.
En general, en todo proceso de sntesis resulta sumamente til la aplicacin de
estrategias de divisin modular: cuando un sistema combinacional es de una cierta
complejidad es necesario descomponerlo en subsistemas y realizar su sntesis por
separado. En tal sentido, existe una serie de subsistemas conceptuales que aparecen con
mucha frecuencia y es sumamente til conocerlos; adems, la alta densidad de integracin
que ofrecen los circuitos integrados ha permitido que dichos subsistemas se encuentren
disponibles como circuitos integrados.
Tales subsistemas reciben el nombre de Bloques Combinacionales; en los dos
ltimos captulos hemos estudiado diversos bloques de utilidad general, que pueden
clasificarse en tres grupos:
Bloques operacionales aritmticos y lgicos, capaces de efectuar una operacin
aritmtica entre dos nmeros binarios de m dgitos o de efectuar una operacin lgica (bit
a bit) entre dos palabras binarias de longitud m.
Bloques distribuidores: multiplexores, demultiplexores y decodificadores,
dedicados a organizar y seleccionar las lneas de transmisin de la informacin.
Bloques codificadores o conversores de cdigo, que realizan la conversin entre
cdigos, o sea, entre palabras binarias que expresan la misma informacin.
El inters de los bloques combinacionales no se limita a su disponibilidad en forma
de circuitos integrados; incluso la utilizacin de tales circuitos integrados estndar es,
cada vez, menos habitual pues interesa configurar todo el diseo digital en un solo
integrado, bien sea ste programable o construido a medida (ASIC).
Los bloques combinacionales interesan por s mismos, como mdulos conceptuales o
piezas de diseo que facilitan estrategias de divisin en partes (diagramas de bloques);
tal particin es imprescindible para abordar el diseo de sistemas complejos.
IV. Bl oques codi f i cadores y di st ri bui dores 25
El tiempo de propagacin en los circuitos combinacionales
"El tiempo es un compaero inevitable" en el funcionamiento de los circuitos
digitales, al igual que en cualquier otro sistema fsico real. "Nada es instantneo" en la
respuesta de los sistemas fsicos en relacin con su excitacin, con las entradas que, al
incidir sobre el sistema, causan la respuesta del mismo: la relacin causa - efecto requiere
un cierto tiempo de ejecucin: estmulo t respuesta.
En un circuito combinacional se produce un tiempo de retardo entre el vector de
entrada y el correspondiente vector de salida, intervalo temporal al que denominamos
tiempo de propagacin tp. En la prctica el tiempo de propagacin ser diferente para
cada una de las salidas del circuito combinacional; habida cuenta de que resulta necesario
esperar a la ms lenta de ellas para obtener la respuesta global, el tiempo de propagacin
del circuito ser el mayor de los tiempos de retraso de sus salidas.
Los tiempos de propagacin dependen linealmente del fan-out que soportan las
puertas, es decir, de la carga capacitiva conectada a su salida; adems, aumentan
fuertemente con la temperatura. Un circuito electrnico se calienta por la disipacin de la
energa que consume en su propio funcionamiento que se elimina en forma de calor, con
la consiguiente elevacin de la temperatura del circuito y disminucin de la velocidad de
trabajo del mismo; en muchos casos ser necesario incluir una refrigeracin adecuada
para garantizar la frecuencia de trabajo del circuito.
La conexin sucesiva de puertas booleanas implica la correspondiente adicin de
sus tiempos de propagacin: el tiempo de retardo del conjunto ser del orden de la suma
de los tiempos individuales tp. Si bien dicha suma expresa solamente una cota superior
del tiempo de propagacin global, ya que los tiempos de propagacin de las sucesivas
puertas se solapan parcialmente: una puerta no espera para iniciar su conmutacin a que la
anterior haya completado la suya.
Para valorar, en una primera aproximacin, el tiempo de propagacin de un bloque
combinacional, denominaremos ndice de propagacin ip al nmero de puertas sucesivas
que se presentan entre una salida y una entrada, o bien, al mayor de los nmeros de
puertas sucesivas que contiene un circuito combinacional. El ndice de propagacin
proporciona una referencia, al menos cualitativa, del tiempo de propagacin global.
Las salidas de un bloque combinacional corresponden a funciones booleanas de las
entradas del mismo y, en principio, cualquier funcin booleana puede expresarse como
suma de productos; tales sumas de productos se construyen en la prctica mediante dos
niveles de puertas "y-negada", Nand (Nand de Nands), junto con un tercer nivel de
inversores para las variables de entrada negadas, de forma que el ndice de propagacin de
una funcin booleana construida como suma de productos es ip = 3.
26 El ect rni ca Di gi t al
Como veremos en el prximo captulo (cap. V), cualquier conjunto de funciones
booleanas, en particular cuando el nmero de sus entradas es relativamente alto, puede
construirse mediante un esquema: [matriz Y de entradas] [matriz O de salidas]; en la
prctica (precisamente para admitir mltiples entradas), este esquema se construye con
puertas "o-negada", Nor seudoNMOS, y requiere cuatro niveles de puertas:
[inversores de las entradas] [matriz NOR de entradas]
[matriz NOR de salidas] [inversores de las salidas]
lo cual supone un ndice de propagacin ip = 4.
As pues, el ndice de propagacin necesario para construir cualquier sistema
combinacional es 4: segn este esquema booleano ningn sistema combinacional requiere
un ndice superior a 4 y, siempre que ello sea necesario por razones de velocidad,
cualquier sistema combinacional puede construirse con los 4 niveles antes detallados.
Ahora bien, hay casos de bloques combinacionales en que la construccin directa
de cada una de sus salidas presenta alta complejidad y considerable rea de integracin,
porque tales circuitos se adaptan mejor a un esquema recursivo de celdas en cascada;
sistemas combinacionales que, en lugar de ajustarse fcilmente a una configuracin en
paralelo de sus salidas, se acomodan conceptualmente a un clculo sucesivo (en serie) de
las mismas. Por ejemplo, los sumadores y restadores de n bits, cuya construccin es muy
simple a partir de celdas de 1 bit, conectadas en cascada.
En estos casos de diseo celular recursivo (conexin de pequeos mdulos en
serie), el ndice de propagacin puede hacerse relativamente alto y, consiguientemente, el
tiempo de propagacin global del circuito.
El caso ms tpico y habitual lo constituyen los sumadores de n bits, conformados
por n celdas sumadoras de 1 bit; en ellos el arrastre (carry) ha de propagarse
sucesivamente a travs de las n celdas: propagacin por onda (ripple carry):
C
i+1
= a
i
.b
i
+ (a
i
+ b
i
).C
i
= (a
i
b
i
) . (a
i
b
i
) + C
i
[ ]
El ndice de propagacin del arrastre en una celda bsica de 1 bit es ip = 2; un
sumador de 64 bits presentar un ndice de propagacin muy alto ip = 128.
Los esquemas celulares en cascada presentan altos ndices de propagacin y, por
ello, introducen limitaciones fuertes respecto a la frecuencia de trabajo. Cuando interesan
velocidades mayores, la forma de conseguirlo se basa en disminuir el nmero de mdulos
en cascada, aumentando la granularidad de cada mdulo; es decir, en lugar de utilizar
celdas bsicas de 1 bit (granularidad = 1), emplear mdulos de p bits (granularidad = p),
construyendo directamente (en paralelo) las funciones booleanas de los mismos.
Por ejemplo, en el caso de sumadores, si en lugar de celdas bsicas de 1 bit se
utilizan mdulos sumadores de 4 bits el ndice de propagacin se reduce en un factor 4.
Ms an, el apndice A2 (referido a la "Propagacin rpida de acarreo en los sumadores")
muestra cmo la recursividad puede ser aprovechada para conseguir reducciones del
ndice de propagacin an mayores.
IV. Bl oques codi f i cadores y di st ri bui dores 27
4. 5. Los bl oques combi naci onal es en VHDL
Al igual que en el captulo 1, se incluye aqu la descripcin de algunos bloques
combinacionales en VHDL a fin de desarrollar una aproximacin gradual al diseo con
lenguajes de descripcin circuital.
Multiplexor de 8 lneas
L0
y
control
L1
L2
L3
L4
L5
L6
L7
control : INTEGER range 0 to 7
versin 1 versin 2
y <= L0 when control = 0 else with control select
L1 when control = 1 else y <= L0 when 0,
L2 when control = 2 else L1 when 1,
L3 when control = 3 else L2 when 2,
L4 when control = 4 else L3 when 3,
L5 when control = 5 else L4 when 4,
L6 when control = 6 else L7; L5 when 5,
L6 when 6,
L7 when others;
descripcin utilizando proceso
process (control,L7,L6,L5,L4,L3,L2,L1,L0)
begin
versin 1 versin 2
if control = 0 then y <= L0; end if; case control is
if control = 1 then y <= L1; end if; when 0 => y <= L0;
if control = 2 then y <= L2; end if; when 1 => y <= L1;
if control = 3 then y <= L3; end if; when 2 => y <= L2;
if control = 4 then y <= L4; end if; when 3 => y <= L3;
if control = 5 then y <= L5; end if; when 4 => y <= L5;
if control = 6 then y <= L6; end if; when 5 => y <= L5;
if control = 7 then y <= L7; end if; when 6 => y <= L6;
end process; when 7 => y <= L7;
end case;
end process;
28 El ect rni ca Di gi t al
Demultiplexor de 8 lneas
control : INTEGER range 0 to 7
L0 <= entrada when control = 0 else '0';
L1<= entrada when control = 1 else '0';
L2 <= entrada when control = 2 else '0';
L3 <= entrada when control = 3 else '0';
L4 <= entrada when control = 4 else '0';
L5 <= entrada when control = 5 else '0';
L6 <= entrada when control = 6 else '0';
L7 <= entrada when control = 7 else '0';
L0
entrada
control
L1
L2
L3
L4
L5
L6
L7
utilizando proceso
process (control,entrada)
begin
L0 <= '0'; L1 <= '0'; L2 <= '0'; L3 <= '0';
L4 <= '0'; L5 <= '0'; L6 <= '0'; L7 <= '0';
case control is
when 0 => L0 <= entrada;
when 1 => L1 <= entrada;
when 2 => L2 <= entrada;
when 3 => L3 <= entrada;
when 4 => L4 <= entrada;
when 5 => L5 <= entrada;
when 6 => L6 <= entrada;
when 7 => L7 <= entrada;
end case;
end process;
Decodificador de 8 lneas
with entrada select
salida <= "10000000" when "000",
"01000000" when "001",
"00100000" when "010",
"00010000" when "011",
"00001000" when "100",
"00000100" when "101",
"00000010" when "110",
"00000001" when "111";
e
n
t
r
a
d
a
s
a
l
i
d
a
L0
L1
L2
L3
L4
L5
L6
L7
c
b
a
IV. Bl oques codi f i cadores y di st ri bui dores 29
Encodificador de 10 lneas
entrada <= L9 & L8 & L7 & L6 & L5 & L4 & L3 & L2 & L1 & L0;
with entrada select
salida <= "1001" when "1000000000",
"1000" when "0100000000",
"0111" when "0010000000",
"0110" when "0001000000",
"0101" when "0000100000",
"0100" when "0000010000",
"0011" when "0000001000",
"0010" when "0000000100",
"0001" when "0000000010",
"0000" when "0000000001",
"1111" when others;
s
a
l
i
d
a
L9
L8
L7
L6
L5
L4
L3
L2
L1
L0
Codificador de prioridad de 9 lneas.
salida <= "1001" when L9 = '1' else
"1000" when L8 = '1' else
"0111" when L7 = '1' else
"0110" when L6 = '1' else
"0101" when L5 = '1' else
"0100" when L4 = '1' else
"0011" when L3 = '1' else
"0010" when L2 = '1' else
"0001" when L1 = '1' else
"0000";
s
a
l
i
d
a
L9
L8
L7
L6
L5
L4
L3
L2
L1
utilizando proceso
process (L9,L8,L7,L6,L5,L4,L3,L2,L1)
begin
if L9 = '1' then salida <= "1001";
elsif L8 = '1' then salida <= "1000"
elsif L7 = '1' then salida <= "0111";
elsif L6 = '1' then salida <= "0110";
elsif L5 = '1' then salida <= "0101";
elsif L4 = '1' then salida <= "0100";
elsif L3 = '1' then salida <= "0011";
elsif L2 = '1' then salida <= "0010";
elsif L1 = '1' then salida <= "0001";
else salida <= "0000";
end if; end process;
30 El ect rni ca Di gi t al
Conversor BCD a 7 segmentos, nodo comn.
[En un visualizador de nodo comn se encienden aquellos segmentos que reciben 0,
ya que la lnea de alimentacin comn a todos ellos corresponde a la tensin positiva Vcc
es decir, al 1 booleano.]
SALIDA : Out BIT_VECTOR(1 to 7);
ENTRADA : In INTEGER range 0 to 15;
E N T R A D A
S A L I D A
with entrada select
SALIDA <= "0000001" when 0,
"1001111" when 1,
"0010010" when 2,
"0000110" when 3,
"1001100" when 4,
"0100100" when 5,
"0100000" when 6,
"0001111" when 7,
"0000000" when 8,
"0000100" when 9,
"1111111" when others;
descripcin utilizando proceso
process (ENTRADA)
begin
case ENTRADA is
when 0 => SALIDA <="0000001";
when 1 => SALIDA <="1001111";
when 2 => SALIDA <="0010010";
when 3 => SALIDA <="0000110";
when 4 => SALIDA <="1001100";
when 5 => SALIDA <="0100100";
when 6 => SALIDA <="0100000";
when 7 => SALIDA <="0001111";
when 8 => SALIDA <="0000000";
when 9 => SALIDA <="0000100";
when others => SALIDA <="1111111";
end case; end process;
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
5 CONJUNTOS DE FUNCIONES BOOLEANAS
ESTRUCTURAS MATRICIALES Y BLOQUES PROGRAMABLES
5.1. Formas diversas de construir una funcin booleana
5.2. Conjuntos de funciones booleanas: estructuras PAL y ROM
5.3. Simplificacin multifuncin: estructura PLA
5.4. Bloques integrados programables
El presente tema trata de dar respuesta a la pregunta: Cmo construir n funciones
booleanas de m variables cuando tal nmero de variables de entrada es un poco alto?
O lo que es lo mismo: Cmo manejar conjuntos de varias funciones de muchas variables?
En tales casos, el alto nmero de entradas supone una dificultad importante a la hora de
obtener las expresiones algebraicas de las funciones y, tambin, a la hora de transformar
dichas expresiones en circuitos con puertas lgicas.
Lo grande, lo complejo requiere, para ser manejable, de un plus de organizacin, de
una estructura que oriente y facilite su manejo. Estructura = distribucin, orden y
enlace de las partes para formar el todo. A lo largo de este tema se muestra cmo la
estructura matricial (que se representa mediante una configuracin reticular) permite
abordar con relativa facilidad conjuntos de funciones de muchas variables.
Adems, tal tipo de organizacin ha permitido construir bloques integrados
programables, en cuyo interior es posible configurar las funciones booleanas por medio
de la eliminacin de conexiones (fusibles). De manera que disponemos de circuitos
integrados programables que constituyen, actualmente, la forma eficaz y habitual de
construir los prototipos de sistemas digitales o de fabricar series de pocas unidades.
Se utilizan tres tipos de estructura matricial (ROM, PAL y PLA) que son tiles en
cuanto a modelos o esquemas conceptuales para la realizacin de conjuntos de funciones
booleanas y, tambin, como configuraciones fsicas concretas de los circuitos integrados
programables.
Los codificadores ROM (ya estudiados en el captulo anterior) expresan las
funciones booleanas en su forma cannica, como suma de trminos mnimos, diferenciando
el decodificador (los trminos mnimos, comunes a las diversas funciones) del
encodificador (la suma de los mismos, que identifica a cada una de ellas).
La estructura PAL se corresponde con la forma habitual de expresar las funciones
booleanas como suma de productos, una vez simplificada su expresin algebraica; cada
funcin se construye por separado, con sus propios trminos producto.
Por ltimo, la configuracin PLA es tambin del tipo suma de productos, pero los
trminos producto son compartidos por las diversas funciones, lo cual permite minimizar el
nmero de trminos producto necesarios (a travs de una simplificacin multifuncin).
114 El ect rni ca Di gi t al
5. 1. Formas di versas de const rui r una funci n bool eana
Las funciones booleanas son multiformes; pueden representarse y expresarse en
formas diversas:
enunciado tabla funcional forma cannica expresin algebraica simplificada
De igual manera, una funcin booleana puede construirse en formas diversas:
- con un multiplexor cuyas entradas reciben los valores de la tabla funcional:
estructura LUT
- con un decodificador, recogiendo sobre una puerta "o" los trminos mnimos que
corresponden a vectores de entrada que dan valor 1 en la tabla funcional:
forma cannica (m)
- con puertas bsicas, una vez simplificada la expresin algebraica de la funcin: suma
de productos (p)
- con puertas unitarias (en concreto, con puertas Nand o con puertas Nor), utilizando
un solo tipo de puertas
-
Veamos estas cuatro formas diferentes de construir una funcin booleana,
aplicndolas a una funcin concreta de 4 variables:
Enunciado: De entre los nmeros binarios de 4 dgitos dcba (del 0 al 15 decimales)
se excluyen los nmeros 3, 5, 10, 11, 12 y 14, y con el resto se forma el subconjunto R; la
funcin "y" indicar la pertenencia (y = 1) de un nmero binario de 4 dgitos al
subconjunto R.
A continuacin, se representa esta funcin en las cuatro configuraciones citadas:
a) Un multiplexor de 4 lneas de control cuyas entradas reciben los valores booleanos de
la tabla de verdad (o tabla funcional) de la funcin.
Esta manera de configurar funciones booleanas, con multiplexores que muestrean
la tabla de la funcin, se denomina look-up-table (LUT): construccin tabular (mirar
sobre su tabla). [Ver figura en la pgina siguiente.]
Si bien esta forma de construir funciones no corresponde a las estructuras matriciales
consideradas en el presente tema, es utilizada en algunos tipos de circuitos integrados
programables (FPGAs), ya que permite la programacin de funciones booleanas sin ms
que almacenar en un registro su tabla funcional.
5. Est ruct uras mat ri ci al es y programabl es 115
Tabla funcional
d c b a y
0 0 0 0 1
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 1
0 1 1 1 1
1 0 0 0 1
1 0 0 1 1
1 0 1 0 0
1 0 1 1 0
1 1 0 0 0
1 1 0 1 1
1 1 1 0 0
1 1 1 1 1
d c b a
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
y
mux
Funcin y : configuracin LUT
b) Un decodificador de 4 lneas de control seguido de una puerta "o" que recibe aquellas
salidas que corresponden a valor 1 en la tabla de verdad de la funcin; no es sino la
construccin directa de la forma cannica de la funcin y equivale a la configuracin
ROM introducida en el captulo anterior.
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
d c b a
y
Funcin y : forma cannica
D
E
C
O
D
I
F
I
C
A
D
O
R
116 El ect rni ca Di gi t al
La siguiente figura muestra la representacin reticular de esta configuracin: un
decodificador genrico de 4 variables, ms una puerta "o" que recoge los trminos
mnimos con valor 1 en la tabla funcional. De forma que la lnea de conexiones de dicha
puerta "o" coincide con la columna de valores de salida de la tabla funcional (entendiendo
el valor 1 como conexin y el 0 como ausencia de ella).
d d c c b b a a
y
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
y
Las dos formas anteriores de construir la funcin (LUT y forma cannica) no
precisan de la expresin algebraica de la funcin booleana y menos an de su
simplificacin; se obtienen directamente de su tabla funcional.
5. Est ruct uras mat ri ci al es y programabl es 117
En cambio, las siguientes formas de construir la funcin "y" corresponden a
expresiones algebraicas de la misma; pasemos a obtenerlas, en forma simplificada,
empleando su mapa de Karnaugh.
B A
D C 0 0 0 1 1 1 1 0
0 0 1 1 0 1
0 1 1 0 1 1
y = d.a + c.b + d.c.a + c.b.a p
1 1 0 1 1 0
= d.a + c.b + c.a.(d + b)
1 0 1 1 0 0
= Nand[d a, b c, Nand(c, a, d b)] Nand
c) La conexin de puertas bsicas (inversores, puertas "o" y puertas "y") que corresponde
a la expresin algebraica de la funcin como suma de productos, una vez simplificada
( p ). Es la forma habitual de expresar una funcin y dar lugar a la estructura
matricial que denominaremos PAL.
d c b a
y
Funcin y: suma de productos
Podemos representar la misma expresin algebraica en configuracin reticular en la
forma siguiente:
d c b a
y
d c b a
118 El ect rni ca Di gi t al
d) La expresin de la funcin trasladada a puertas "y-negada" (Nand) para utilizar un
solo tipo de puertas. Es la forma tpica de construir una funcin con circuitos
integrados estndar: el uso de un solo tipo de puertas para minimizar el nmero de
circuitos integrados necesarios.
d c b a
y
Funcin y : puertas Nand
La utilizacin de circuitos integrados estndar, aun cuando puede resultar til en
laboratorio (sobre todo para funciones no muy complejas) est siendo sustituida en la
prctica por el empleo de circuitos integrados programables, los cuales permiten insertar
en el interior de un solo circuito el conjunto completo de funciones booleanas necesarias,
evitando el cableado entre las diversas puertas lgicas.
Respecto al presente tema nos interesan, en particular, las formas b) y c) de construir
una funcin, es decir su forma cannica a partir de un decodificador (suma de trminos
mnimos m) y su forma algebraica como suma de productos p, que dan lugar,
respectivamente, a las configuraciones ROM y PAL. Consideraremos tambin un tercer
tipo de configuracin, PLA (suma de productos compartidos) que solamente tiene sentido
cuando tratamos con conjuntos de funciones y no para funciones individuales.
Las siglas utilizadas para estas configuraciones proceden de denominaciones que
aportan poco (e incluso son confusas) en relacin con la estructura a la que dan nombre:
ROM (read only memory memorias de slo lectura), PAL (programmable and logic
lgica de puertas "y" programables) y PLA (programmable logic array matriz lgica
programable).
Por ello, a fin de hacer una referencia ms directa a la propia estructura de los
bloques, propongo una lectura diferente de dichas siglas: ROM (row ordered minterms
filas de trminos mnimos), PAL (product adding layers estratos o mdulos sumadores
de productos) y PLA (product linking adders sumadores que enlazan o comparten
productos).
5. Est ruct uras mat ri ci al es y programabl es 119
5. 2. Conj unt os de funci ones bool eanas: est ruct uras PAL y ROM
Una advertencia previa: para facilitar la comprensin de los conceptos y, tambin,
por razones obvias de facilidad de realizacin y de comprensin de los dibujos, en el
desarrollo de este captulo se utilizan como ejemplos funciones de reducido nmero de
variables; ahora bien, debe tenerse en cuenta que las estructuras que estamos estudiando
son realmente interesantes y tiles para funciones de amplio nmero de entradas.
La expresin algebraica ms habitual de una funcin booleana, una vez simplificada,
es la forma de suma de trminos producto p. El circuito correspondiente a tal expresin
es un mdulo conformado por una puerta "o", que proporciona la salida de la funcin,
conectada a varias puertas "y", que realizan los diversos trminos producto. Las
conexiones de las entradas (y de sus negadas) sobre las puertas "y" pueden ser
representadas grficamente en forma reticular o matricial.
Vemoslo con el siguiente ejemplo referido a un conjunto de cuatro funciones de
cuatro entradas:
Tabla funcional
d c b a Y1 Y2 Y3 Y4
0 0 0 0 0 0 1 0
0 0 0 1 1 1 1 1
0 0 1 0 0 0 0 0
0 0 1 1 1 1 0 1
0 1 0 0 1 0 1 1
0 1 0 1 1 0 1 1
0 1 1 0 1 1 0 0
0 1 1 1 1 1 0 0
1 0 0 0 0 1 1 1
1 0 0 1 0 1 1 1
1 0 1 0 0 0 0 0
1 0 1 1 1 0 1 1
1 1 0 0 1 0 0 1
1 1 0 1 1 0 0 1
1 1 1 0 1 1 0 0
1 1 1 1 1 1 1 1
1 1 0 0
1 1 0 0
0 0 1 0
1 1 1 0
00 01 11 10
ba
dc
00
01
11
10
0 1 1 0
1 1 0 0
1 1 1 0
1 1 1 0
00 01 11 10
ba
dc
00
01
11
10
Y3 Y4
0 1 1 0
1 1 1 1
1 1 1 1
0 0 1 0
00 01 11 10
ba
dc
00
01
11
10
0 1 1 0
0 0 1 1
0 0 1 1
1 1 0 0
00 01 11 10
ba
dc
00
01
11
10
Y1 Y2
Mapas de Karnaugh
Y1 = c + d.a + b.a Y2 = d.c.b + d.c.a + c.b
Y3 = d.b.a + d.b + c.b Y4 = d.b + d.a + c.b + c.a
120 El ect rni ca Di gi t al
La siguiente figura representa, en forma reticular, las cuatro funciones booleanas en
configuracin suma de productos p: cada funcin ocupa un mdulo separado,
constituido por una puerta "o" que recibe las salidas de varias puertas "y"; las conexiones
de las variables se ajustan a la retcula formada por las entradas y sus negadas y las
lneas de entrada de las puertas "y".
d c b a
Y4
Y3
Y2
Y1
d c b a
Esta forma reticular de dibujar la configuracin p de un conjunto de funciones
recibe el nombre de estructura PAL (product adding layers: estratos o mdulos
sumadores de productos); en ella, cada funcin dispone de sus propios trminos producto
y las diversas funciones no comparten ninguna puerta booleana, salvo los inversores de
las variables de entrada.
Es claro que la configuracin PAL no es sino una forma de organizar el dibujo de las
funciones y no aade nada a su expresin en suma de productos. Pero, si las funciones
booleanas son complejas, esta forma facilita el dibujo y la comprensin del mismo;
adems, esta estructura da lugar a un tipo de bloques integrados programables que
permiten construir directamente las funciones booleanas en su interior, mediante la
programacin de sus conexiones.
5. Est ruct uras mat ri ci al es y programabl es 121
La retcula de conexiones sobre las puertas "y" permite describir tales conexiones en
forma de matriz de ceros y unos; es decir, la configuracin reticular equivale a una
descripcin matricial de las funciones, a la cual podemos denominar Matriz Y de trminos
producto:
Matriz de conexiones: d d c c b b a a
- funcin Y1: 0 0 1 0 0 0 0 0
0 1 0 0 0 0 1 0
0 0 0 0 1 0 1 0
- funcin Y2: 1 0 0 1 0 1 0 0
0 1 0 1 0 0 1 0
0 0 1 0 1 0 0 0
- funcin Y3: 1 0 0 0 1 0 1 0
0 1 0 0 0 1 0 0
0 0 0 1 0 1 0 0
- funcin Y4: 1 0 0 0 0 1 0 0
1 0 0 0 0 0 1 0
0 0 1 0 0 1 0 0
0 0 0 1 0 0 1 0
La configuracin ROM (row ordered minterms: filas de trminos mnimos)
constituye otra forma de construir funciones, utilizando un decodificador seguido del
encodificador que corresponde a la tabla de las funciones:
- las m entradas del decodificador actan como variables de entrada para todas las
funciones,
- las 2
m
lneas intermedias corresponden a los trminos mnimos de las variables de
entrada,
- y cada salida realizar una de las funciones booleanas, mediante una puerta "o",
haciendo confluir sobre ella los trminos mnimos que intervienen en dicha funcin
(forma cannica de la misma).
La figura de la pgina siguiente representa la configuracin ROM de las cuatro
funciones booleanas que estamos considerando como ejemplo: el decodificador construye
fsicamente los 16 trminos mnimos de las 4 variables de entrada y el encodificador
efecta, para cada una de las funciones, la suma de los trminos mnimos que la activan
(que producen valor 1 para dicha funcin).
122 El ect rni ca Di gi t al
D C B A
Y1 Y2 Y3 Y4
A B C D
10
11
12
13
14
15
E N T R A D A S
D D C C B B A A
0
1
2
3
4
5
6
7
8
9
FUNCIONES
5. Est ruct uras mat ri ci al es y programabl es 123
En trminos de puertas booleanas la estructura ROM presenta gran simplicidad y
regularidad; est constituida modularmente por dos conjuntos de puertas, cuyas
conexiones adoptan una configuracin reticular, que puede describirse mediante matrices
de ceros y unos.
Matriz del decodificador: Matriz del encodificador:
Matriz Y completa Matriz O funcional
d d c c b b a a Y1 Y2 Y3 Y4
0 1 0 1 0 1 0 1 0 0 1 0
0 1 0 1 0 1 1 0 1 1 1 1
0 1 0 1 1 0 0 1 0 0 0 0
0 1 0 1 1 0 1 0 1 1 0 1
0 1 1 0 0 1 0 1 1 0 1 1
0 1 1 0 0 1 1 0 1 0 1 1
0 1 1 0 1 0 0 1 1 1 0 0
0 1 1 0 1 0 1 0 1 1 0 0
1 0 0 1 0 1 0 1 0 1 1 1
1 0 0 1 0 1 1 0 0 1 1 1
1 0 0 1 1 0 0 1 0 0 0 0
1 0 0 1 1 0 1 0 1 0 1 1
1 0 1 0 0 1 0 1 1 0 0 1
1 0 1 0 0 1 1 0 1 0 0 1
1 0 1 0 1 0 0 1 1 1 0 0
1 0 1 0 1 0 1 0 1 1 1 1
La denominacin Y/O de las matrices alude al tipo de puertas que las conforman. La
primera matriz es de dimensin 2
m
x 2m y la segunda es de 2
m
x n, siendo m el nmero
de entradas y n el nmero de salidas o funciones (2
m
es el nmero de trminos mnimos o
lneas intermedias).
El decodificador, formado por puertas "y" contiene todas las posibilidades de sus
variables de entrada, cada una de las cuales corresponde a un trmino mnimo; por ello la
configuracin reticular de sus conexiones recibe el nombre de Matriz Y completa.
El encodificador corresponde directamente a la tabla de verdad de las funciones ya
que sus puertas "o" han de recibir las conexiones de aquellos trminos mnimos cuyo
valor en dicha tabla es 1: Matriz O funcional.
124 El ect rni ca Di gi t al
Este procedimiento de configurar funciones booleanas (formando todos los trminos
mnimos de sus entradas y construyendo a partir de ellos la forma cannica de la funcin)
es sumamente til cuando el nmero de entradas es grande (m > 6) y cuando son varias
las funciones a construir. La estructura ROM facilita en gran manera la sntesis de las
funciones, evitando la necesidad de obtener sus expresiones algebraicas y de simplificar
dichas expresiones.
5. 3. Si mpl i fi caci n mul t i funci n: est ruct ura PLA
La configuracin ROM consta de dos matrices de conexiones (Matriz Y completa -
Matriz O funcional); el circuito resultante es amplio por cuanto que contiene todos los
trminos mnimos de las entradas y tantas conexiones en la Matriz O como unos hay en
la tabla funcional. Las funciones comparten los trminos mnimos proporcionados por el
decodificador inicial, pero su nmero es grande: 2
m
siendo m el nmero de entradas.
La configuracin PAL representa a las funciones una vez simplificadas, pero trata a
las funciones individualmente: cada mdulo PAL es independiente de los dems; no
aprovecha la posibilidad de compartir trminos producto entre dos o ms funciones.
Una tercera posibilidad consiste en utilizar trminos productos simplificados, pero no
de cada funcin individual, sino en compartir los trminos resultantes de simplificar las n
funciones conjuntamente: es lo que se conoce como simplificacin multifuncin.
De esta forma se aprovecha cada trmino producto para varias funciones a la vez y el
nmero de trminos producto (y por tanto el circuito a construir) ser menor. Ahora bien,
para ello es necesario utilizar un proceso de simplificacin multifuncin que es
complicado: en general es muy laborioso (e, incluso, imposible) de realizar a mano, pero
se dispone de aplicaciones informticas para ejecutarlo en computador.
En el caso del conjunto de cuatro funciones de cuatro entradas consideradas en el
apartado anterior, la simplificacin multifuncin permite reducir los 13 trminos producto
que intervienen en sus expresiones algebraicas simplificadas individuales a solamente 6
trminos producto compartidos.
00 01 11 10
ba
dc
00
01
11
10
0 1 1 0
0 0 1 1
0 0 1 1
1 1 0 0
00 01 11 10
ba
dc
00
01
11
10
1 1 0 0
1 1 0 0
0 0 1 0
1 1 1 0
00 01 11 10
ba
dc
00
01
11
10
00 01 11 10
ba
dc
00
01
11
10
0 1 1 0
1 1 0 0
1 1 1 0
1 1 1 0
0 1 1 0
1 1 1 1
1 1 1 1
0 0 1 0
b . c d. d.b.a b c. .a c . d = Y4
b . d b . c . d d.b.a = Y3
b . c d. c.b .a c . d = Y2
d.b.a b c. b c. .a c . d = Y1
+ + +
+ + +
+ +
+ + +
5. Est ruct uras mat ri ci al es y programabl es 125
La representacin grfica de estas expresiones da lugar a la siguiente configuracin
reticular:
d c b a d c b a
Y1 Y2 Y3 Y4
La figura anterior representa a las cuatro funciones booleanas compartiendo
trminos producto como resultado de una simplificacin multifuncin pc (suma de
productos compartidos); tal simplificacin permite reducir en gran medida el nmero de
trminos producto necesarios para el conjunto de funciones, aunque la expresin
resultante para cada funcin no es la ms simplificada posible.
Esta forma de construir un conjunto de funciones recibe el nombre de estructura
PLA (product linking adders: sumadores que enlazan o comparten productos); las
conexiones conforman dos matrices: la Matriz Y de trminos producto compartidos y la
Matriz O de salidas. [Una vez ms conviene hacer notar que estos tipos de organizacin
reticular o matricial son particularmente tiles para funciones de un amplio nmero de
entradas.]
La configuracin PLA supone un claro ahorro circuital por cuanto que minimiza el
conjunto de trminos producto necesarios, pero, en cambio, requiere un complejo proceso
previo de simplificacin multifuncin.
5. 4. Bl oques i nt egrados programabl es
Consideremos un bloque ROM de m entradas y n salidas que, por tanto, contiene n
funciones booleanas de m entradas; particularizar dicho bloque a n funciones booleanas
dadas consiste en determinar en cules de los puntos de la Matriz O funcional debe haber
conexin y en cules no.
Supongamos que todos los puntos de la Matriz O de conexiones sobre las puertas "o"
de salida se encuentren conectados (por ejemplo, mediante fusibles) y que el usuario
pueda eliminar aquellas conexiones que no interesen (fundiendo los fusibles); de esta
forma dispondremos de un bloque ROM programable por el usuario: PROM [vase la
figura de la pgina siguiente].
126 El ect rni ca Di gi t al
La siguiente figura representa un bloque PROM de 4 entradas y 8 salidas, apto para
la programacin de 8 funciones de 4 variables.
A B C D
D C B A
D D C C B B A A
0
1
2
3
5
6
7
8
9
10
11
12
13
14
15
E N T R A D A S
S A L I D A S
conexin programable
4
Codificador PROM de 4 lneas de entrada y 8 lneas de salida
5. Est ruct uras mat ri ci al es y programabl es 127
La tecnologa electrnica de integracin de circuitos ha permitido construir este tipo
de bloques PROM, programables elctricamente mediante procesos anlogos a la ruptura
de fusibles. Su programacin consiste en eliminar aquellas conexiones de la Matriz O que
no deben estar presentes conforme a la tabla funcional del conjunto de funciones
booleanas deseado, es decir, eliminar (fundir los fusibles de) aquellas conexiones que
corresponden a valor 0 en la tabla funcional.
La programacin de un bloque PROM, a partir de la tabla de las n funciones
booleanas equivale a reflejar sobre la Matriz O la tabla de dichas funciones:
- Cada una de las lneas intermedias del bloque PROM (salidas del decodificador que
conforman las filas de la Matriz O) se corresponde con un trmino mnimo, al igual
que cada fila de la tabla funcional, y cada una de las columnas de la Matriz O se
corresponde con una de las funciones, igual que cada columna de dicha tabla.
- Existe una correspondencia directa entre la matriz de valores 0 y 1 que configura la
parte de la derecha de la tabla funcional (vectores de salida) y la matriz de conexiones
sobre las puertas "o" de salida, Matriz O, asociando el valor 0 a la eliminacin o
ausencia de conexin y el valor 1 a la conservacin o presencia de la misma.
- Para cada columna de la Matriz O los valores 1 presentes en la correspondiente
columna de la tabla funcional determinan los trminos mnimos que deben estar
presentes en la funcin booleana que tal columna configura y, por tanto, las
conexiones que deben incidir sobre la puerta "o" que realiza dicha funcin.
La figura de la pgina siguiente corresponde a la programacin de las 7 funciones de
un conversor BCD 7 segmentos [coincide con la figura de la pgina 103 del tema
anterior, apartado 4.4.]. La tabla de dichas funciones es la siguiente:
D C B A a b c d e f g
0 0 0 0
1 1 1 1 1 1 0
0 0 0 1
0 1 1 0 0 0 0
0 0 1 0
1 1 0 1 1 0 1
0 0 1 1
1 1 1 1 0 0 1
0 1 0 0
0 1 1 0 0 1 1
0 1 0 1
1 0 1 1 0 1 1
0 1 1 0
1 0 1 1 1 1 1
0 1 1 1
1 1 1 0 0 0 0
1 0 0 0
1 1 1 1 1 1 1
1 0 0 1
1 1 1 1 0 1 1
128 El ect rni ca Di gi t al
A B C D
D C B A
D D C C B B A A
0
1
2
3
5
6
7
8
9
10
11
12
13
14
15
4
a b c d e f g
Programacin del conversor BCD 7 segmentos en la PROM anterior
En los bloques programables tipo PAL (vase la figura de la pgina siguiente) cada
puerta "o" de salida est conectada a un subconjunto independiente de puertas "y", siendo
programables las conexiones de las entradas sobre dichas puertas "y"; de forma que cada
funcin de salida posee su propia puerta "o" y su propio subconjunto de puertas "y" que
inciden sobre ella.
5. Est ruct uras mat ri ci al es y programabl es 129
La siguiente figura representa un bloque PAL de 4 entradas y 8 salidas, con 6
trminos producto en cada mdulo.
D
D C B A
D D C C B B A A
A
E N T R A D A S
S
A
L
I
D
A
S
C
B
PAL programable de 4 lneas de entrada y 8 de salida con 6 trminos producto
130 El ect rni ca Di gi t al
De forma que un bloque PAL es un conjunto de n mdulos independientes, cada
uno de los cuales est constituido por la suma de q trminos producto de las m variables
de entrada: cada una de las n funciones se programa con independencia de las dems,
pues no poseen trminos producto compartidos.
La estructura de los bloques PAL coincide con las funciones expresadas como suma
de trminos producto p, sin necesidad de preocuparse por las coincidencias de trminos
entre las diversas funciones. Por ello su programacin es muy sencilla y se deduce
directamente de la expresin algebraica simplificada de cada una de las funciones a
programar.
Ahora bien, un bloque programable PAL se encuentra limitado por el nmero de
trminos producto disponibles en cada mdulo. No es posible programar cualquier
funcin booleana de m variables: no podrn programarse aquellas funciones cuya
expresin algebraica, una vez simplificada al mximo, incluya un nmero de trminos
producto mayor.
La programacin del conversor BCD 7 segmentos sobre un bloque PAL consiste
en configurar directamente cada una de sus siete funciones, una vez simplificadas:
a = D + B + C.A + C.A
b = C + B.A + B.A
c = C + B + A
d = D + C.B.A + C.B + C.A + B.A
e = C.A + B.A
f = D + C.B + C.A + B.A
g = D + C.B + C.B + C.A
Las funciones a, f y g requieren 4 trminos producto, la b y la c 3 trminos, mientras que
la funcin d requiere 5 trminos y la funcin e solamente 2 trminos producto.
5. Est ruct uras mat ri ci al es y programabl es 131
D
D C B A
D D C C B B A A
A
C
B
a
b
c
d
e
f
g
Conversor BCD 7 segmentos programado en la PAL anterior
Obsrvese que en esta figura no se han programado (no se han eliminado las
conexiones de) aquellos trminos producto que no han sido necesarios; un trmino
producto sin programar se anula por s mismo, ya que contiene el producto de variables
por sus negadas (a . a = 0 ).
132 El ect rni ca Di gi t al
La configuracin PLA requiere que ambas matrices sean programables, tanto la
Matriz Y de entradas como la Matriz O de salidas: sobre la Matriz Y se programarn los
trminos producto que son necesarios para realizar las n funciones y sobre la Matriz O se
programar la inclusin o no de cada trmino producto en cada funcin.
La siguiente figura presenta una PLA de 4 entradas, 8 salidas y 12 trminos
producto.
A B C D
D C B A
D D C C B B A A
S A L I D A S
E N T R A D A S
PLA de 4 lneas de entrada, 4 lneas de salida y 12 trminos producto.
5. Est ruct uras mat ri ci al es y programabl es 133
La programacin de un bloque PLA resulta relativamente compleja por cuanto que
es preciso simplificar conjuntamente las n funciones a programar, a fin de minimizar el
nmero de trminos producto necesarios.
No basta la simplificacin individual de las n funciones; al contrario, la
minimizacin de cada una de ellas por separado impedir, en la mayora de los casos,
encontrar trminos producto coincidentes en varias que permitan minimizar el conjunto:
el objetivo no es buscar el menor nmero de trminos producto para cada una de las
funciones, sino para el conjunto global de ellas.
La programacin del conversor BCD 7 segmentos corresponde a las siete
funciones siguientes, obtenidas mediante simplificacin multifuncin:
a = D + C.A + A . C + B.A + A B.
b = .A C + A . C + B.A + A . B
c = C.A + A C. + .A C + A . B
d = D + A . B C. + .B C + A . C + A B.
e = A . C + A B.
f = D + A . B C. + A C. + A . B
g = D + A . B C. + .B C + A C.
134 El ect rni ca Di gi t al
A B C D
D C B A
D D C C B B A A
a b c d e f g
D
C.B.A
C.B
C.A
C.A
C.A
C.A
B.A
B.A
B.A
Conversor BCD 7 segmentos programado en la PLA anterior
Al igual que en el caso de la PAL, no se han programado (no se han eliminado las
conexiones de) aquellos trminos producto que no han sido necesarios, ya que se anulan
por s mismos (producto de variables por sus negadas, a . a = 0 ).
5. Est ruct uras mat ri ci al es y programabl es 135
En resumen, se dispone de tres bloques de lgica programable que permiten realizar
n funciones de m entradas, expresadas stas como suma de trminos producto (en el caso
del bloque PROM como suma de trminos mnimos). Los bloques PROM son
programables en cuanto a su Matriz O de salidas, los bloques PAL lo son en cuanto a su
Matriz Y de entradas y los bloques PLA son programables respecto a sus dos matrices Y,
O.
Los tres bloques se encuentran configurados por una Matriz Y de conexiones de las
entradas y de sus negadas sobre puertas "y" y una Matriz O de conexiones de las salidas
de las puertas "y" sobre las puertas "o" que conforman las salidas del bloque; difieren en
cuanto a la capacidad de programacin de dichas matrices, conforme a la siguiente tabla:
Matriz Y Matriz O N de trminos producto
PROM fija programable 2
m
= n trminos mnimos
PLA programable programable p << 2
m
PAL programable fija n x q (q < p )
Un bloque PROM admite la programacin de n funciones cualesquiera de m
entradas; los bloques PLA se encuentran limitados por el nmero total de trminos
producto ( p << 2
m
) disponibles en la Matriz Y, mientras que los bloques PAL estn
limitados en el nmero de trminos producto ( q < p ) de cada mdulo.
La programacin PROM consiste en reflejar sobre la Matriz O la tabla de las
funciones (de forma que se eliminen aquellas conexiones que corresponden a valor 0 en
dicha tabla). La programacin de cada mdulo PAL corresponde a la expresin algebraica
simplificada de la funcin en forma de suma de trminos producto (con tal de que el
nmero de trminos sea igual o inferior a los disponibles en el mdulo PAL). La
programacin PLA supone configurar en su Matriz Y los trminos producto resultantes
de la simplificacin multifuncin de las funciones a programar y, posteriormente,
configurar sobre la Matriz O las sumas de aquellos trminos que dan lugar a cada una de
las funciones.
Tanto en el caso PAL como PLA no es necesario programar (eliminar) los trminos
producto no utilizados ya que se anulan ellos solos, por contener productos de una
variable por su negada (a . a = 0 )
El nmero de conexiones de las matrices puede servir para comparar las tres
estructuras PROM, PLA, PAL, en cuanto a sus dimensiones fsicas (en su realizacin
electrnica el nmero de conexiones equivale aproximadamente al nmero de transistores,
ya que cada conexin se realiza a travs de un transistor):
Matriz Y Matriz O
PROM m x 2
m
n x 2
m
programables
PLA 2m x p
programables n x p
programables p << 2
m
PAL 2m x q x n
programables n x q q < p
136 El ect rni ca Di gi t al
Por ejemplo, comparando una PROM de 12 entradas y 8 salidas, una PLA del
mismo nmero de entradas y salidas con 28 trminos producto y una PAL anloga con 6
trminos para cada salida:
Matriz Y Matriz O
PROM 12 x 4.096 8 x 4.096
programables
PLA 24 x 28
programables 8 x 28
programables
PAL 24 x 6 x 8
programables 8 x 6
resulta que la configuracin PROM requiere 81.920 conexiones, de las cuales 32.768 son
programables, mientras que la PLA necesita 896 conexiones (la centsima parte de las
que precisa la PROM), todas ellas programables, y la PAL utiliza 1.200 conexiones, de
las cuales 1.152 son programables.
En la anterior PROM pueden programarse cualquier conjunto de 8 funciones de 12
entradas, mientras que en la PAL no caben funciones cuya expresin algebraica contenga
ms de 6 trminos producto y la PLA puede admitir hasta 8 funciones de 12 entradas con
tal de que su simplificacin multifuncin permita reducir el nmero total de trminos
producto necesarios a 28 o menos.
Forma de efectuar la programacin
La programacin de los circuitos integrados programables se realiza habitualmente
mediante un programador conectado a un computador; se requieren dos aplicaciones
informticas: un compilador que traduce la descripcin del diseo al mapa de fusibles
del circuito integrado y un programa de control del programador que ejecuta el mapa
de fusibles sobre el propio circuito integrado.
Se parte de la descripcin del diseo especfico a programar; tal descripcin puede
hacerse en forma grfica (esquemtico de puertas lgicas o de bloques), pero lo habitual
es hacerla en forma de texto utilizando un lenguaje de descripcin circuital (VHDL,
Verilog, ABEL, ..., siendo el VHDL el ms empleado).
Un compilador apropiado traslada la descripcin a funciones booleanas y las
encaja sobre la configuracin del dispositivo programable, obteniendo el mapa de
fusibles que indica cuales de las conexiones programables se han de eliminar y cuales
deben permanecer.
El programador ejecuta el mapa de fusibles sobre el circuito integrado programables,
actuando una a una sobre las conexiones que deben eliminarse y verificando,
posteriormente, que tales conexiones han quedado suprimidas y el resto de ellas
mantienen su unin elctrica.
5. Est ruct uras mat ri ci al es y programabl es 137
Ejemplo: conversor BCD 7 segmentos, de ctodo comn
a) descripcin VHDL del circuito
entity CONVERSOR is
port( SALIDA : Out BIT_VECTOR(1 to 7);
D,C,B,A : In BIT);
end CONVERSOR;
architecture CATODOCOMUN of CONVERSOR is
begin
with D & C & B & A select
SALIDA <= "1111110" when "0000",
"0110000" when "0001",
"1101101" when "0010",
"1111001" when "0011",
"0110011" when "0100",
"1011011" when "0101",
"1011111" when "0110",
"1110000" when "0111",
"1111111" when "1000",
"1111011" when "1001",
"0000000" when others;
end CATODOCOMUN;
b) funciones booleanas y mapa de fusibles resultantes de la compilacin
A continuacin se adjuntan las funciones relativas a las 7 salidas del conversor
obtenidas por el compilador WARP sobre la descripcin VHDL anterior; inmediatamente
debajo de cada una de las funciones se expresa el mapa de fusibles correspondiente para
un mdulo PAL de 10 entradas y 6 trminos producto.
Comentario: las funciones que siguen son diferentes de las indicadas para el mismo
conversor en el captulo anterior (apartado 4.3.1.) y reproducidas en este captulo en la
pgina 132; ello es debido a que en este ejemplo se asigna vector de salida 0000000
para nmeros de entrada superiores a 9, mientras que en el captulo 4 se les asignaba
vector de salida XXXXXXX para simplificar en lo posible las funciones resultantes.
salida_1 = /c * /b * /a + /d * c * a + d * /c * /b + /d * b
00010101000000000000
01100010000000000000
10010100000000000000
01001000000000000000
11111111111111111111
11111111111111111111
138 El ect rni ca Di gi t al
salida_2 = d * b * a + /d * /b * /a + /c * /b + /d * /c
10001010000000000000
01000101000000000000
00010100000000000000
01010000000000000000
11111111111111111111
11111111111111111111
salida_3 = /c * /b + /d * a + /d * c
00010100000000000000
01000010000000000000
01100000000000000000
11111111111111111111
11111111111111111111
11111111111111111111
salida_4 = /d * c * /b * a + /c * /b * /a + /d * b * /a + d * /c * /b + /d * /c * b
01100110000000000000
00010101000000000000
01001001000000000000
10010100000000000000
01011000000000000000
11111111111111111111
salida_5 = /c * /b * /a + /d * b * /a
00010101000000000000
01001001000000000000
11111111111111111111
11111111111111111111
11111111111111111111
11111111111111111111
salida_6 = /c * /b * /a + d * /c * /b + /d * c * /a + /d * c * /b
00010101000000000000
10010100000000000000
01100001000000000000
01100100000000000000
11111111111111111111
11111111111111111111
salida_7 = /d * b * /a + d * /c * /b + /d * /c * b + /d * c * /b
01001001000000000000
10010100000000000000
01011000000000000000
01100100000000000000
11111111111111111111
11111111111111111111
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
6 CODIFICACION EN PALABRAS BINARIAS
DETECCIN DE ERROR
6.1. La informacin codificada en palabras binarias
6.2. La paridad para detectar error
6.3. Cdigos detectores y correctores de error
Los sistemas digitales procesan la informacin codificada en palabras binarias,
constituidas por conjuntos ordenados de ceros y unos. Esta informacin puede ser
cuantitativa (es decir, una cantidad expresada por un nmero) o cualitativa (referida a la
distincin entre diversas posibilidades o cualidades).
La longitud de palabra determina su capacidad para representar informaciones
diferentes: una palabra de p dgitos es capaz de expresar 2
p
posibilidades, las cuales
estarn numeradas desde la 00000 hasta la 11111.
Ahora bien, el manejo de palabras binarias largas presenta una cierta complejidad (su
lectura y escritura es dificultosa); tal complejidad puede reducirse compactando los
dgitos de 4 en 4: sistema hexadecimal (base 16 = 2
4
).
La forma ms inmediata de codificar la informacin en binario consiste en numerar en
base 2 (cdigo binario directo), pero existen otras posibilidades de inters. Una de ellas
respeta la numeracin decimal (base 10), que es la habitual para el hombre, y traslada a
binario cada una de las cifras por separado: cdigo BCD. Tambin es til el cdigo Gray,
en el cual dos palabras consecutivas difieren en un solo dgito; en ello se basa la
simplificacin mediante mapas de Karnaugh y la alta seguridad funcional que la
codificacin Gray aporta en las transiciones entre estados o en las secuencias de vectores.
Una cuestin importante respecto a la transferencia de informacin es la fiabilidad o
ausencia de error en la misma. En la transmisin o almacenamiento de la informacin
pueden producirse errores que afecten a uno o varios bits de algunas palabras binarias;
interesa disponer de mecanismos que faciliten la deteccin de la existencia de errores y, si
fuera posible, permitan corregirlos: tales mecanismos se basan en aadir dgitos
adicionales (redundancia) para efectuar comprobaciones sobre la informacin recibida.
La paridad es el ms sencillo de los detectores de error, basado en indicar si el nmero
de unos de cada palabra es par o impar. La paridad es un cdigo de distancia 2: la
distancia (nmero de dgitos diferentes) entre dos palabras de este cdigo es siempre par y,
por ello, detecta errores en nmero impar.
El concepto de distancia mnima (nmero de bits en que difieren dos palabras de un
cdigo) es bsico en el desarrollo de cdigos detectores de error. Hamming introdujo un
mtodo simple para construir cdigos de distancia mnima 4 (basados en la utilizacin de
paridades parciales) que permiten detectar hasta tres errores y efectuar correccin cuando
hay uno solo de ellos.
140 El ect rni ca Di gi t al
6. 1. La i nformaci n codi fi cada en pal abras bi nari as
Cada dgito de una palabra binaria recibe el nombre de bit (bit = binary digit) y
puede tener dos valores: 0 y 1. El nmero de dgitos o bits que forman una palabra binaria
determina su longitud p.
La informacin contenida en una palabra digital puede ser de tipo cuantitativo
(numrico) o de tipo cualitativo (distincin entre varias situaciones, posibilidades o
cualidades). Por ejemplo, el resultado de la medida de una magnitud fsica con valor 185
conducir a la palabra binaria 10111001, mientras que el estado civil de una persona
puede ser codificado con palabras de 2 bits (00 soltera, 01 casada, 10 divorciada, 11
viuda) y los siete colores del arco iris necesitan para su codificacin palabras binarias de 3
dgitos.
Los vectores de entrada y de salida de un sistema digital son palabras binarias que
expresan, respectivamente, a travs de la correspondiente codificacin, la informacin que
recibe el sistema y la informacin resultante del procesado que el sistema efecta sobre
ella. Muchas veces tales vectores se subdividen en varias palabras digitales con
significado propio cada una de ellas.
Internamente los sistemas digitales generan condiciones o informaciones intermedias
expresadas tambin en palabras binarias de uno o varios bits. En particular, los sistemas
secuenciales incorporan memoria de su evolucin anterior en forma de estado del
sistema, expresado en palabras binarias cuyos n bits corresponden a las variables de
estado.
A la hora de codificar diversas informaciones, la posibilidad ms inmediata consiste
en numerarlas en sistema binario: codificacin binaria directa. Pero tambin existen otras
posibilidades de inters, como pueden ser los cdigos BCD y Gray.
La codificacin BCD tiene sentido, principalmente, para representar nmeros
(informacin cuantitativa) y con tal finalidad su explicacin se encuentra detallada en el
captulo 3 (apartado 3.4.). El cdigo Gray (que ya ha sido utilizado en la numeracin de
los mapas de Karnaugh, apartado 2.2.) ser considerado, con mayor detalle, un poco ms
adelante en este mismo apartado.
6.1.1. Longitud de palabra y capacidad de informacin
En principio, las palabras digitales son de longitud variable segn la informacin que
vayan a representar. Una palabra binaria de longitud p est formada por p dgitos
bp-1 bp-2 bp-3 ... b3 b2 b1 b0 y es capaz de representar o expresar 2
p
posibilidades.
Al representar los dgitos de una palabra con subndices bi, se comienza numerando
el dgito menos significativo con 0 ya que dicho dgito (caso de que la palabra sea un
nmero binario) corresponde a las unidades y su valor relativo es 2
0
= 1; de esta forma el
valor relativo del dgito i-simo bi es 2
i
.
6. Codi f i caci n bi nari a 141
Muchos bloques y sistemas digitales adoptan una longitud fija para las palabras que
procesan; en tal caso, si la palabra que se desea procesar es de menor nmero de bits se
aade el correspondiente nmero de ceros para completar su longitud, mientras que
cuando el nmero o informacin a procesar desborda la longitud de palabra fijada se
utilizan varias palabras sucesivas.
Las longitudes de palabra ms comunes son las siguientes:
4 bits: 16 posibilidades
1 byte = 8 bits: 256 posibilidades
16 bits: 65.536 posibilidades (64K)
32 bits: 4.294.967.296 posibilidades (aprox. 4.300 millones)
64 bits: aprox. 16 x 10
18
posibilidades (diecisis trillones)
destacando entre ellas la longitud de 8 bits, que se conoce con el nombre de byte y es
utilizada como longitud de referencia cuando no se indica otra cosa.
As, por ejemplo, la capacidad global de una memoria suele expresarse en nmero de
registros de 8 bits (en bytes, aun en los casos en que el procesador del sistema utiliza
palabras de 16 o de 32 bits): al indicar una memoria de 1 Mega nos referimos a una
capacidad de almacenamiento de 2
20
10
6
bytes.
2
20
bytes = 1.048.576 bytes = 1.048.576 x 8 bits = 8.388.608 bits 8 x 10
6
bits.
6.1.2. Compactacin hexadecimal
El manejo de palabras binarias por parte del hombre, es decir, su lectura o escritura
presenta cierta complejidad, habida cuenta del amplio nmero de dgitos que las palabras
binarias tienen por lo general y de la dificultad que supone citar o visualizar sin errores el
correspondiente nmero de ceros y unos. Por ejemplo, al referirnos a una cantidad no muy
grande como puede ser la de 234 unidades tenemos que indicar 11101010 (uno, uno, uno,
cero, uno, cero, uno, cero; o bien, si leemos este nmero binario como si fuera decimal,
once millones ciento un mil diez).
El sistema de numeracin hexadecimal, cuya base 16 es la cuarta potencia de 2,
permite reducir en gran medida dicha complejidad al compactar de 4 en 4 los dgitos de
las palabras binarias. El sistema hexadecimal utiliza 16 signos, del 0 al F (15), cuya
equivalencia binaria y decimal es la siguiente:
0 0000 0 4 0100 4 8 1000 8 C 1100 12
1 0001 1 5 0101 5 9 1001 9 D 1101 13
2 0010 2 6 0110 6 A 1010 10 E 1110 14
3 0011 3 7 0111 7 B 1011 11 F 1111 15
Ejemplos de palabras en binario y en hexadecimal:
10010101 = 95 10001100 = 8C 11110000 = F0 101011 = 2B
72 = 1110010 D1 = 11010001 AB = 10101011 8E = 10001110
142 El ect rni ca Di gi t al
Una memoria de 16 lneas de direccionamiento tiene una capacidad de 64K registros
(65.536) y utilizar para numerarlos los cdigos hexadecimales que van del 0000 al
FFFF:
- el registro 2A3B ser el que hace el nmero de orden decimal 10.811
(comenzando por el nmero 0) y se seleccionar con los valores binarios
0010101000111011 en el bus de direcciones;
- el registro que hace el nmero 50.000 de ellos tendr por referencia hexadecimal
C350 y se seleccionar con los valores 1100001101010000 en el bus de
direcciones;
- al activar dicho bus con los valores 0100111110011100 el registro seleccionado
ser el 4F9C, que hace el nmero 20.380 de ellos.
Un bus de direcciones de 24 lneas permite manejar 2
24
= 16.777.216
16 x 10
6
registros (16 Megas), cuya numeracin requiere 6 dgitos hexadecimales.
Una palabra de 1 byte da lugar a 2 dgitos hexadecimales, si es de 16 bits se expresa
en 4 dgitos hexadecimales y si es de 32 bits necesita 8 dgitos hexadecimales.
Existen otras formas de compactar las palabras binarias, por ejemplo el sistema de
numeracin octal, con base 8, que permite agrupar los bits de 3 en 3, pero son mucho
menos utilizadas que el sistema hexadecimal.
6.1.3. Codificacin Gray
El cdigo Gray se caracteriza por la propiedad de que dos palabras consecutivas del
mismo difieren en un solo bit.
Esta propiedad implica que los trminos mnimos de vectores de entrada sucesivos
son simplificables entre s (ya que difieren en una sola variable); por ello, la numeracin
Gray es la base de la simplificacin por mapas de Karnaugh. [Con tal finalidad el cdigo
Gray fue presentado al tratar dichos mapas en 2.2.]
Pero, adems, la codificacin Gray proporciona alta seguridad funcional en las
transiciones entre palabras binarias: al diferenciarse en un solo bit, el paso de una palabra
a la siguiente no puede producir errores o espurios debidos a las diferencias de tiempo en
la transicin o propagacin de cada bit. En tal sentido, el cdigo Gray resulta muy til en
la codificacin de estados (es ideal para los grafos de estado), o en la codificacin de
condiciones o vectores cuando stos evolucionan siguiendo una secuencia fija.
6. Codi f i caci n bi nari a 143
Por ejemplo, en un mando rotativo con 8 posiciones o niveles el cdigo Gray evita
los errores que pueden producirse en las fronteras entre dos posiciones:
- si la codificacin es binaria directa, al pasar del nivel 3 011 al nivel 4 100 podra
suceder que en la frontera entre ambos apareciese el nivel 0 000, por anularse los dos
bits menos significativos antes de activarse el otro bit, o bien que se formase el nivel
7 111 si dicho bit se activa antes que se anulen los dos primeros;
- en cdigo Gray el paso del nivel 3 010 al nivel 4 110 no puede producir ningn otro
nivel, distinto de ambos, ya que nicamente se modifica el bit ms significativo.
Mando rotativo
cdigo binario
cdigo Gray
La formacin sucesiva de las palabras del cdigo Gray, por el mtodo especular, ha
sido descrita en el captulo 2 (apartado 2.2.).
El cambio de cdigo de binario normal a cdigo Gray viene dado por una simple
operacin "o-exclusiva" (sea bi la cifra i-sima en cdigo binario y gi la cifra
i-sima en cdigo Gray) : (binario) b b = (gray) g
i 1 + i i
; es decir, basta hacer la
operacin "o-exclusiva" entre el bit correspondiente ( i ) del cdigo binario y el anterior
( i+1 ) del mismo cdigo.
El cambio de cdigo inverso, de cdigo Gray a binario, es anlogo:
b
i
(binario) = b
i+1
g
i
; pero en este caso, es preciso hacer la operacin
"o-exclusiva" entre el bit anterior ( i+1 ) del mismo cdigo binario y el bit
correspondiente ( i ) del cdigo Gray.
binario
gray
1 1 0 1 0 0
1 0 1 1 1 0
gray
binario
1 0 1 1 1 0
1 1 0 1 0 0
binario
gray
1 1 0 1 0 0
1 0 1 1 1 0
gray
binario
1 0 1 1 1 0
1 1 0 1 0 0
Ejemplos: 10101101
(2
= 11111011
Gray
11100100
(2
= 10010110
Gray
10011011
Gray
= 11101101
(2
11101011
Gray
= 10110010
(2
144 El ect rni ca Di gi t al
6.1.4. Codificacin de texto
El texto que configura un libro, folleto, carta, documento o cualquier otro tipo de
escrito est compuesto por una sucesin ordenada de caracteres alfabticos y numricos
(alfanumricos), junto con algunos signos de puntuacin, espacios en blanco, separacin
entre prrafos, tabulaciones, etc.
Nuestro alfabeto utiliza 26 caracteres alfabticos (25 letras simples ms la w) en dos
formas, maysculas y minsculas, a los cuales hay que aadir 10 cifras decimales, varios
signos de puntuacin, algunos signos matemticos (+, -, =, >, < , ...) y otros caracteres
especiales. Un teclado mecanogrfico de tipo normal presenta cerca de medio centenar de
teclas, con dos posibilidades cada una; en total, unos 100 caracteres. Para su codificacin
bastarn palabras de 7 bits y sobrar una veintena larga de palabras que se utilizarn para
caracteres de control (fin de prrafo, fin de pgina, salto de lnea, tabulaciones, ...).
El cdigo ms utilizado para la codificacin de textos es el ASCII (American
Standard Code for Information Interchange) que utiliza palabras de 7 bits conforme a la
tabla siguiente (existe, tambin, un cdigo ASCII ampliado que utiliza palabras de 8 bits):
Hexadecimal b
6
b
5
b
4
b
3
b
2
b
1
b
0
0 1 2 3 4 5 6 7
0 NUL DLE SP 0 @ P ` p
1 SOH DC1 ! 1 A Q a q
2 STX DC2 " 2 B R b r
3 ETX DC3 # 3 C S c s
4 EOT DC4 $ 4 D T d t
5 ENQ NAK % 5 E U e u
6 ACK SYN & 6 F V f v
7 BEL ETB 7 G W g w
8 BS CAN ( 8 H X h x
9 HT EM ) 9 I Y i y
A LF SUB * : J Z j z
B VT ESC + ; K [ k {
C FF FS ' < L \ l |
D CR GS - = M ] m }
E SO RS . > N ^ n ~
F SI US / ? O _ o DEL
Las 10 cifras decimales ocupan los cdigos del 30 al 39 mientras que las letras van
del 41 (A) al 5A (Z), las maysculas, y del 61 (a) al 7A (z), las minsculas. El resto de los
cdigos se refiere a signos de puntuacin y otros caracteres diversos.
6. Codi f i caci n bi nari a 145
Los 32 cdigos iniciales, del 00 al 1F, se destinan a caracteres de control:
00 NUL Nulo 10 DLE Anulacin de lo transmitido
01 SOH Inicio de encabezamiento 11 DC1 Control dispositivo 1
02 STX Inicio de texto 12 DC2 Control dispositivo 2
03 ETX Final de texto 13 DC3 Control dispositivo 3
04 EOT Final de transmisin 14 DC4 Control dispositivo 4
05 ENQ Pregunta 15 NAK Acuse de recibo negativo
06 ACK Acuse de recibo 16 SYN Sincronizador
07 BEL Aviso acstico 17 ETB Final del bloque transmitido
08 BS Retroceder un espacio 18 CAN Anulacin
09 HT Tabulador horizontal 19 EM Fin del medio o soporte
0A LF Nueva lnea 1A SUB Substituir
0B VT Tabulador vertical 1B ESC Escape (anulacin de orden)
0C FF Nueva pgina 1C FS Separador de archivos
0D CR Retorno del carro 1D GS Separador de grupo
0E SO Fuera de cdigo 1E RS Separador de registros
0F SI Retorno al cdigo 1F US Separador de unidad
10 SP Espacio (cdigo 10) 7F DEL Borrado (cdigo 7F)
Dado que el cdigo ASCII es de 7 bits y, en cambio, suelen utilizarse palabras
normalizadas a 8 bits (1 byte), el octavo dgito se aprovecha para la deteccin de errores
como bit de paridad (vase el apartado siguiente).
El cdigo ASCII con paridad utiliza palabras binarias de 8 dgitos, de los cuales el
ms significativo (el que inicia la palabra) es el bit de paridad; la paridad de la palabra
completa es siempre 0. Este cdigo goza de amplia aceptacin siendo el utilizado
habitualmente en el procesado de textos, en la transmisin de la informacin, en la
comunicacin con perifricos (impresoras, monitores,...), etc.
6. 2. La pari dad para det ect ar error
La paridad constituye una forma muy simple de detectar errores basada en
contabilizar el nmero de unos que cada palabra binaria contiene; se dice que una
palabra es par (paridad = 0) cuando el nmero de unos que contiene es par y ser impar
(paridad = 1) cuando lo sea el nmero de unos.
Al aadir a una palabra binaria su paridad se forma una palabra ampliada que es
siempre par: si la palabra era impar, al aadirle un 1 resulta par; si era par, se le aade un
0 y su paridad no cambia. Caso de recibir una palabra ampliada que sea impar, ello
supone que, al menos, uno de los dgitos de dicha palabra es errneo
De esta manera, la paridad detecta error en una palabra binaria cuando el nmero de
bits errneos de la misma es impar; en cambio, si en una palabra se modifican (se
invierten) un nmero par de bits la paridad de la palabra no se altera y el error no ser
detectado.
146 El ect rni ca Di gi t al
La paridad de una palabra se calcula circuitalmente mediante puertas
"o-exclusiva" en estructura arborescente:
b6
b5
b4
b3
b2
b1
b0
b7: paridad
palabra ASCII
Cada puerta "o-exclusiva" calcula la paridad de sus dos entradas, es decir, genera un
1 al recibir un nmero impar de unos en las mismas. De esta forma, las primeras
puertas calculan la paridad de un par de dgitos de la palabra y las puertas siguientes van
agrupando las paridades de dos en dos, hasta completar el clculo de la paridad de la
palabra completa.
La paridad es un cdigo de distancia mnima 2: al ampliar las palabras binarias
aadiendo a las mismas su paridad, las palabras del cdigo resultante son todas ellas de
paridad par y se diferencian, al menos, en 2 bits, pues la modificacin de un solo bit
produce una palabra impar que no pertenece a dicho cdigo.
Un cdigo de distancia mnima 2 permite detectar la modificacin o error de un
dgito: al invertirse un bit la palabra resultante tiene una distancia 1 respecto a la palabra
correcta y no pertenecer al cdigo (ser una palabra errnea), lo cual indica la existencia
de error.
En el caso de la paridad, la distancia entre cualesquiera dos palabras ampliadas
(con su bit de paridad) es siempre mltiplo de 2, pues la paridad de una palabra
ampliada es siempre par; lo cual permite detectar la existencia de error cuando afecta a
un nmero impar de bits (1, 3, 5, ..) pero, en cambio, la paridad no detecta error cuando el
nmero de bits errneos es par (2, 4, ).
Otra forma de aplicar la paridad a conjuntos de n palabras binarias consiste en aadir
una palabra ms, cuyos dgitos correspondan a la paridad global de los bits que ocupan la
misma posicin en las n palabras anteriores; es decir, el bit i-simo de la nueva palabra es
la paridad de los n bits i-simos de las palabras anteriores.
Esta forma de deteccin de errores es complementaria de la paridad de las palabras
individuales, ya que realiza una deteccin en vertical sobre las columnas de bits
(supuestas las n palabras colocadas en columna, una debajo de otra), mientras que la
paridad de cada palabra realiza una deteccin en horizontal sobre la fila de bits que
forma la palabra.
6. Codi f i caci n bi nari a 147
En relacin con estos dos tipos de paridad (vertical y horizontal) las n palabras de
longitud p se organizan matricialmente, formando una matriz de dimensin n x p, y se
calculan las paridades de las filas (paridad horizontal) y de las columnas (paridad
vertical) de la matriz.
Las dos palabras resultantes (vertical y horizontal) tienen idntica paridad, ya que
corresponde a la paridad global de las n palabras en bloque; si al conjunto de las n
palabras se aaden las citadas paridades (la horizontal como columna y la vertical como
fila) y se agrega dicho bit de paridad global, se configura una nueva matriz ampliada de
dimensiones n+1 x p+1, cuyas paridades en ambos sentidos (horizontal y vertical) son
todas nulas (matriz de paridad 0).
Ejemplo: Conjunto de 12 palabras, con su paridad vertical y horizontal.
paridad horizontal Presencia de un error nico:
1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 0
1 0 0 0 1 0 1 1 0 1 0 0 0 1 0 1 1 0 0
0 1 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 1 0
1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 1 1 0 1
1 0 1 1 0 1 0 1 1 1 0 1 1 0 1 0 1 1 0
1 0 0 0 0 1 0 1 1 1 0 0 0 0 1 0 1 1 0
0 0 1 1 0 1 1 0 0 0 0 1 1 0 1 1 0 0 0
0 1 1 1 1 0 1 0 1 0 1 1 1 1 0 1 0 1 0
1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 0
0 1 0 0 0 1 0 1 1 0 1 0 0 0 1 0 1 1 0
1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 0
paridad 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0
vertical 1 1 0 0 0 0 1 0 1 1 1 0 0 0 0 1 0 1 0
nuevas paridades del conjunto ampliado: 0 0 0 0 1 0 0 0 0
Esta combinacin de paridades presenta una probabilidad muy alta de detectar la
existencia de error, pues solamente falla en los casos en que la situacin de todos los bits
errneos corresponda a filas y a columnas que contengan ambas un nmero par de errores.
Adems, en caso de que se detecte error en una sola fila y una sola columna, dicho
bit puede corregirse (bajo el supuesto, muy razonable, de que no existen en la misma fila
y columna otros errores que, a su vez, estn compensados en el resto de filas y
columnas). [Vase en el ejemplo anterior la presencia de un error y cmo queda indicado
al calcular las nuevas paridades vertical y horizontal del conjunto.] Tambin pueden
corregirse varios errores en caso de que todos ellos se encuentren en la misma fila o en la
misma columna y que el nmero de errores sea impar.
148 El ect rni ca Di gi t al
La verificacin de suma (checksum) es un tipo de deteccin anlogo a la paridad
vertical: utiliza como palabra adicional el resultado de la suma de las n palabras anteriores
ejecutada sobre p bits (sin tener en cuenta los arrastres superiores), siendo p la longitud de
palabra de todas ellas; es decir, la suma de las n palabras en mdulo 2
p
(lo cual asegura
que la longitud de palabra del resultado es tambin p). De esta forma se detecta la
presencia de errores siempre que no se encuentren compensados en la misma columna,
en el sentido de que el nmero de bits que han cambiado de 0 a 1 es el mismo que los
bits que han efectuado el cambio opuesto de 1 a 0.
6. 3. Cdi gos det ect ores y correct ores de error
En la transmisin y en el almacenamiento (conservacin en memoria, sea sta de tipo
RAM o sea en disco, cinta o cualquier otro soporte fsico de la misma) de las palabras
binarias pueden producirse errores que modifiquen el valor booleano de uno o de varios
bits. La palabra o palabras correspondientes expresarn una informacin errnea.
Un cdigo es capaz de detectar errores, es decir, de discriminar palabras con
informacin errnea, cuando la modificacin de uno o varios bits de una palabra del
cdigo da lugar a una palabra binaria que no pertenece al mismo. El concepto de distancia
permite analizar y generalizar la forma de operar de los cdigos detectores de error.
La distancia de Hamming entre dos palabras binarias de la misma longitud es el
nmero de dgitos en que dichas palabras se diferencian. Se dice que un cdigo es de
distinta mnima D cuando dos palabras del mismo difieren, al menos, en el valor de D de
sus bits. Tal cdigo es capaz de detectar cualquier error que afecte a D-1 dgitos o menos,
ya que la modificacin en una palabra del cdigo de un nmero de bits inferior a D da
lugar a una palabra que no pertenece al cdigo. Para detectar la modificacin o error que
afecte a n bits se requiere un cdigo cuya distancia mnima sea n+1 o superior.
La paridad es un cdigo de distancia par (mltiplo de 2): las palabras permisibles
distan entre s un nmero par de dgitos. Cualquier modificacin que afecte a un nmero
impar de bits da lugar a una palabra no permitida y, por tanto, reconocida como errnea;
en cambio, la paridad no permite detectar error cuando el nmero de bits afectados es par.
Hamming desarroll mtodos sistemticos, basados en la misma idea que la paridad,
para construir cdigos de distancia mnima 3 y 4, con la particularidad de que dichos
cdigos permiten corregir el error cuando ste afecta a un solo bit.
El cdigo Hamming de distancia mnima 3 utiliza paridades parciales referidas a
subconjuntos de dgitos de la palabra inicial. El cdigo Hamming de distancia mnima 4
es anlogo, aadiendo simplemente un bit de paridad global; ese bit suplementario aporta
mayor fiabilidad respecto a la correccin de error.
6. Codi f i caci n bi nari a 149
El cdigo Hamming de distancia mnima 3 permite detectar y corregir errores
relativos a un solo bit, pero no es capaz de diferenciar los que afectan a un bit de los que
afectan a un nmero par de ellos; de manera que, en el caso de que exista error en dos bits
y se efecte la correccin como si fuese en uno solo de ellos, la palabra corregida tiene
ms errores que la original.
El cdigo Hamming de distancia mnima 4 (que supone simplemente aadir un bit de
paridad global al de distancia mnima 3) informa si el error es en nmero par o impar de
bits, evitando correcciones errneas; es cierto que no permite diferenciar si el error afecta
a 1 o a 3 (o ms) bits, pero la probabilidad de que afecte a 1 2 dgitos es muy superior a
la de tener 3, 5, 7, errores.
El mtodo Hamming para formar un cdigo de distancia mnima 4 se describe en las
dos pginas siguientes: en la pgina de la izquierda (pg. 150) se explica la manera de
actuar y en la de la derecha (pg. 151) se detalla su aplicacin a un caso concreto: una
palabra inicial de 12 dgitos.
De igual manera en las siguientes dos pginas se describe la forma de detectar y
corregir errores en cdigo Hamming de distancia mnima 4: a la izquierda (pg. 152) se
explica la manera de proceder y a la derecha (pg. 153) se aplica al caso de un bit errneo
en la palabra obtenida anteriormente (en las pginas 150 y 151).
La generalizacin de este mtodo para aplicarlo a palabras de diferente longitud es
directa.
150 El ect rni ca Di gi t al
6.3.1. Construccin del cdigo Hamming
El procedimiento de construccin del cdigo se explica en relacin con las sucesivas
columnas de la tabla representada en la pgina siguiente.
Sea una palabra inicial de 12 bits: b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0.
Se trata de construir una palabra ampliada por un conjunto de paridades parciales,
que se entremezclan con los bits de la palabra inicial; para ello, es necesario numerar en
binario los bits de la palabra ampliada [columna (1)]. Para facilitar la descripcin se
utiliza la denominacin |nmero| para indicar el que numera los bits de la palabra
ampliada.
Habida cuenta de que las paridades parciales se refieren a las posiciones de los
unos en el |nmero| de cada bit, en la columna (2) se han sustituido los ceros por
y los unos por smbolos diversos segn su posicin ( @ , * , , # , & ) a los que
denominaremos grafismos. [Esta representacin grfica es absolutamente superflua
una vez comprendido el mtodo.]
El primer bit de la palabra ampliada (numerado con 00) se reserva para la paridad
global y es el ltimo que se calcula. Los bits de la palabra ampliada que solamente tienen
un uno en su |nmero| (es decir, los que tienen un solo grafismo) se reservan para
las paridades parciales [columna (3)].
En el resto de los bits se colocan ordenadamente los dgitos de la palabra inicial (de
menor a mayor valor significativo, tal como estn ordenados sus |nmeros|) [columnas
(4) y (5)]. Si es preciso se contina la numeracin de bits, hasta que quepan todos los de la
palabra inicial, reservando siempre los bits cuyo |nmero| contiene un solo uno para
paridades parciales.
Cada paridad parcial corresponde a un |nmero| con un solo uno y se calcula
sobre los bits cuyo |nmero| contiene un uno en la misma posicin; es decir, estarn
reservados para paridad parcial los bits con un solo grafismo y para calcular una de
ellas tomaremos los bits sealados con el mismo grafismo y hallaremos la paridad del
conjunto de ellos.
La paridad parcial P1 es la de los bits cuyo |nmero| acaba por uno, es decir,
aquellos cuyo grafismo es &: b11 b10 b8 b6 b4 b3 b1 b0. La paridad parcial P2 es la de
los bits cuyo |nmero| tiene un uno en penltima posicin, o sea cuyo grafismo es
#: b10 b9 b6 b5 b3 b2 b0. La paridad P3 corresponde a un uno en antepenltima posicin
y su grafismo es : b10 b9 b8 b7 b3 b2 b1; P4 se refiere al grafismo *:
b10 b9 b8 b7 b6 b5 b4 y P5 a @: b11.
Una vez calculadas y puestas en su lugar las paridades parciales, se calcula la
paridad global de la palabra y se coloca en el bit menos significativo (|nmero| = 0). De
esta forma, se tiene la palabra ampliada completa en cdigo Hamming de distancia
mnima 4; bien entendido que, conforme a la numeracin de los bits, las columnas estn
ordenadas del bit menos significativo (el primero de arriba) al ms significativo (el ltimo
de abajo).
6. Codi f i caci n bi nari a 151
Sea la palabra inicial 1 0 0 1 0 1 1 1 0 1 0 0 que deseamos pasar a cdigo Hamming
de distancia 4:
(1) (2) (3) (4) (5) (6) (7)
nmero paridades Posiciones palabra clculo de paridad
de orden grafismo parciales de los bits inicial paridades global
00000 P0 P0
0
00001 & P1 [&] P1 [&]
0
0
00010 # P2 [#] P2 [#]
1
1
00011 # & bit 0 0
0 0
00100 P3 [] P3 []
0
0
00101 & bit 1 0
0 0
00110 # bit 2 1
1 1
00111 # & bit 3 0
0 0
01000 * P4 [*] P4 [*]
0
0
01001 * & bit 4 1
1 1
01010 * # bit 5 1
1 1
01011 * # & bit 6 1
1 1
01100 * bit 7 0
0 0
01101 * & bit 8 1
1 1
01110 * # bit 9 0
0 0
01111 * # & bit 10 0
0 0
10000 @ P5 [@] P3 [@]
1
1
10001 @ & bit 11 1
1 1
Palabra inicial: 1 0 0 1 0 1 1 1 0 1 0 0
Cdigo Hamming: 1 1 0 0 1 0 1 1 1 0 0 1 0 0 0 1 0 0
(Se han destacado y subrayado los bits que corresponden a las paridades).
Es fcil comprobar la distancia mnima entre dos palabras de este cdigo;
consideremos dos palabras iniciales diferentes (cuya distancia sea menor de 3):
- si se diferencian en un solo bit, diferirn tambin en, al menos, dos bits de paridad
parcial (ya que el nmero de orden del bit modificado tendr, por lo menos, dos unos),
- si tienen dos bits diferentes, lo ser tambin, al menos, uno de los bits de paridad (ya
que los nmeros de orden de los bits modificados diferirn, cuando menos, en un uno),
o sea que la distancia entre dos palabras ampliadas no puede ser inferior a 3; adems,
como el cdigo incluye la paridad global, su distancia ser siempre mltiplo de 2, es
decir, entre dos palabras ampliadas habr una distancia mnima de 4.
152 El ect rni ca Di gi t al
6.3.2. Deteccin y correccin de errores
La verificacin respecto a si una palabra ampliada pertenece o no al cdigo se realiza
comprobando las paridades parciales y la paridad global de la palabra completa; si la
palabra es correcta (si no hay errores detectables), las nuevas paridades deben ser, todas
ellas, nulas pues corresponden a conjuntos de bits ampliados con su propia paridad.
La comprobacin de la paridad global se calcula sobre todos los bits de la palabra
ampliada y su resultado puede ser:
- comprobacin de la paridad global = 0 y, en tal caso, o no existe error, o ste afecta a un
nmero par de dgitos y no se puede hacer correccin de error sobre la palabra recibida
- comprobacin de la paridad global = 1 y, en tal caso, existe error y, adems, afecta a un
nmero impar de dgitos; en principio, puede suponerse que afecta a un solo bit (pues,
salvo sistemas de transmisin o almacenamiento muy defectuosos, es mucho ms
probable que haya error en un bit que en tres o ms de ellos) y, consiguientemente, es
viable realizar la correccin de dicho error.
Cada comprobacin de paridad parcial se calcula sobre los bits cuyo |nmero|
contiene un uno en la misma posicin; es decir, se toman todos los bits sealados con el
mismo grafismo y se halla la paridad del conjunto de ellos.
La nueva paridad parcial CP1 es la de todos los bits cuyo |nmero| acaba por
uno, es decir, aquellos cuyo grafismo es &: b11 b10 b8 b6 b4 b3 b1 b0 P1. La
comprobacin de paridad parcial CP2 es la de los bits cuyo |nmero| tiene un uno en
penltima posicin, es decir su grafismo es #: b10 b9 b6 b5 b3 b2 b0P2. La comprobacin
CP3 corresponde a un uno en antepenltima posicin, o sea al grafismo :
b10 b9 b8 b7 b3 b2 b1 P3; CP4 se refiere al grafismo *: b10 b9 b8 b7 b6 b5 b4 P4 y
CP5 a @: b11 P5.
En caso de que la palabra pertenezca al cdigo Hamming todas las comprobaciones
de paridad darn resultado 0, tanto las parciales como la global. Tal cosa suceder cuando
no haya habido error en la transferencia de la palabra; nunca podremos estar
absolutamente seguros de la ausencia de error, pero si todas las comprobaciones de
paridad son nulas, sabemos que, de haber error hay cuatro o ms errores (y siempre en
nmero par), lo cual es altamente improbable.
La comprobacin de paridades parciales da lugar a un nmero binario
CP5 CP4 CP3 CP2 CP1, con las siguientes posibilidades:
- si dicho nmero es nulo y la paridad global tambin lo es, estamos en el caso anterior
y, en principio, aceptaremos (con muy alta probabilidad) la ausencia de error;
- si este nmero no es nulo y la paridad global es 0, hay error y afecta a un nmero par
de dgitos, por lo cual no podemos corregirlo;
- si tal nmero no es nulo y la paridad global es 1, es razonable suponer que el error
afecta a un solo bit y es posible corregirlo: el nmero CP5 CP4 CP3 CP2 CP1
seala al dgito errneo (ver la justificacin en la pgina 154).
6. Codi f i caci n bi nari a 153
En la palabra ampliada 1 1 0 0 1 0 1 1 1 0 0 1 0 0 0 1 0 0, obtenida en el subapartado
anterior (6.3.1.) que corresponde a la inicial 1 0 0 1 0 1 1 1 0 1 0 0, introducimos un error
(invertimos el bit n 9) 1 1 0 0 1 0 1 1 0 0 0 1 0 0 0 1 0 0. La manera de aplicar el
procedimiento de deteccin de error es la siguiente:
(1) (2) (3) (4) (5) (6) (7)
nmero Posiciones comprobacin palabra clculo de error
de orden grafismo de los bits de paridades ampliada
CP
00000 P0 CP0 0
1
Si
00001 & P1 CP1 [&] 0
1
posicin
00010 # P2 CP2 [#] 1
0
del bit
00011 # & bit 0 0
errneo:
00100 P3 [] CP3 [] 0
0
01001
00101 & bit 1 0
00110 # bit 2 1
00111 # & bit 3 0
01000 * P4 CP4 [*] 0
1
01001 * & bit 4
0
01010 * # bit 5 1
01011 * # & bit 6 1
01100 * bit 7 0
01101 * & bit 8 1
01110 * # bit 9 0
01111 * # & bit 10 0
10000 @ P3 CP5 [@] 1
0
10001 @ & bit 11 1
Se debe corregir el bit cuyo |nmero| es 0 1 0 0 1, segn indica el nmero que
forman las paridades parciales.
Cdigo Hamming correcto: 1 1 0 0 1 0 1 1 1 0 0 1 0 0 0 1 0 0
Palabra inicial: 1 0 0 1 0 1 1 1 0 1 0 0
La palabra inicial se obtiene a partir de la palabra ampliada, eliminando en ella las
paridades, tanto las parciales como la global. [Comprubese que es correcta, es decir, que
coincide con la palabra inicial del apartado 6.3.1.]
154 El ect rni ca Di gi t al
Cuando el nmero CP5 CP4 CP3 CP2 CP1 no es nulo y la paridad global es 1,
sabemos que hay error y que afecta a un nmero impar de dgitos; podemos suponer que
el error afecta a un solo bit y, en tal caso, el nmero CP5 CP4 CP3 CP2 CP1 seala al
dgito errneo:
- CP1 = 1 significa que el error se encuentra entre los bits que corresponden a la paridad
P1 (es decir, entre aquellos cuyo |nmero| acaba por uno, grafismo &),
- CP2 = 1 significa que el error se encuentra entre los bits que corresponden a la paridad
P2 (es decir, su |nmero| tiene un uno en penltima posicin, grafismo #)
- y as sucesivamente ;
de manera que el nmero binario que forman CP5 CP4 CP3 CP2 CP1 corresponde
precisamente al |nmero| del bit errneo.
La siguiente tabla indica el nmero de bits de paridad necesarios en el cdigo de
Hamming de distancia mnima 4 segn el nmero de bits de la palabra inicial:
nmero de bits
nmero de bits n total de bits nmero mximo de bits n mximo de bits
de paridad parcial de paridad de la palabra ampliada de la palabra inicial
3 3 + 1 = 4 2
3
= 8 8 4 = 4
4 4 + 1 = 5 2
4
= 16 16 5 = 11
5 5 + 1 = 6 2
5
= 32 32 6 = 26
6 6 + 1 = 7 2
6
= 64 64 7 = 57
7 7 + 1 = 8 2
7
= 128 128 8 = 120
8 8 + 1 = 9 2
8
= 256 256 9 = 247
Una palabra inicial de 4 dgitos duplica su longitud al pasar a cdigo Hamming de
distancia mnima 4, si es de 1 byte requiere 5 dgitos adicionales de paridad (pasa a 13
bits, un aumento del 65 %) y para palabras de 16 bits es preciso aadir otros 6 (40%). En
cambio, una palabra inicial de 32 bits aumenta solamente en 7 ms (22%) y una de 120
bits se ampla a 128 (un 7%).
Con este mismo tipo de idea conceptual (la de introducir adecuadamente paridades
parciales) pueden construirse cdigos ms complejos de distancia mnima superior. La
deteccin y correccin de errores, es decir, la fiabilidad de la informacin es un tema de
inters cada vez mayor y constituye una rama especializada dentro del amplio campo de
la codificacin de la informacin.
6. Codi f i caci n bi nari a 155
Consideremos otro ejemplo, relativo a una palabra inicial de 10 dgitos:
Sea una palabra binaria inicial de 10 bits: 1 1 0 0 1 1 1 0 0 0
que en cdigo de Hamming de distancia mnima 4 ser: 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0
(los dgitos subrayados corresponden a los bits de paridad).
a) si en la palabra inicial se modifica el bit b5: 1 1 0 0 0 1 1 0 0 0
su correspondiente palabra codificada ser: 1 1 0 0 0 1 1 1 0 0 1 0 0 1 1
que dista 4 bits de la anterior.
b) si en la palabra inicial se modifican los bits b5
y b6: 1 1 0 1 0 1 1 0 0 0
su correspondiente ser: 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1
que dista 4 bits de la primera y otros 4 bits de la anterior.
c) si en la palabra inicial se modifican los bits b5 , b6 y b7: 1 1 1 1 0 1 1 0 0 0
su correspondiente palabra codificada ser: 1 1 1 1 0 1 1 1 0 0 0 0 1 0 0
que dista 4 bits de la palabras anterior y 6 bits de las dos primeras.
d) si en la transmisin de la primera palabra ampliada se invierte un solo bit, el que hace el
nmero de orden sexto: 1 1 0 0 0 1 1 1 1 0 1 0 0 1 1
la palabra recibida corresponde a una palabra errnea, es decir, que no coincide con la primera
palabra inicial: 1 1 0 0 0 1 1 1 0 0
pero la comprobacin de la paridad global da 1 (error en nmero impar de bits) y el nmero
correspondiente a las comprobaciones de paridades parciales valdr 0110, lo cual indica error en
el bit cuyo nmero de orden es 6.
e) invirtiendo dicho bit 6 se recupera la palabra correcta: 1 1 0 0 0 1 1 1 0 0 1 0 0 1 1
y su correspondiente palabra inicial: 1 1 0 0 0 1 1 0 0 0
f) si en la transmisin de la primera palabra se invierten los bits que hacen los nmeros de orden
sexto y sptimo: 1 1 0 0 0 1 1 0 1 0 1 0 0 1 1
el nmero correspondiente a las comprobaciones de paridades parciales valdr 0001, lo cual
indica error en el bit cuyo nmero de orden es 1
corrigindolo se generara la palabra: 1 1 0 0 0 1 1 0 1 0 1 0 0 0 1
que es errnea pues corresponde a la palabra inicial: 1 1 0 0 0 1 0 1 0 0
distinta de la primera. Ello es debido a que el error afectaba a dos bits: la comprobacin de la
paridad global da 0 (error en nmero par de bits).
156 El ect rni ca Di gi t al
Conviene tener presente la relacin entre la deteccin y correccin de errores y la
redundancia en la representacin de la informacin. Como hemos visto en este apartado y
en el anterior (6.2. y 6.3.) la deteccin y correccin de errores se basa en utilizar formas
de expresar la informacin (cdigos) que no sean mnimas, sino formas expandidas con
suficiente redundancia.
De hecho en el lenguaje hablado continuamente reajustamos la informacin gracias a
la redundancia: palabras que se pronuncian o se escuchan a medias, slabas trastocadas o
suprimidas, discordancias gramaticales, pequeas faltas de coherencia, etc., no
suponen ningn problema porque el receptor las completa o corrige en relacin con el
contexto, gracias a que existe redundancia. Sin ella, cualquier conversacin sera muy
dificultosa y cualquier lectura precisara de una atencin agotadora.
En muchas ocasiones, la pregunta: puedes explicarme eso ms despacio?, no es sino
una solicitud de mayor redundancia.
De igual forma, los cdigos binarios pueden detectar errores cuando no son mnimos,
cuando se amplan con bits aadidos que permiten efectuar comprobaciones y reajustes;
en definitiva, cdigos con redundancia.
Al incorporar bits adicionales, existirn palabras que pertenecen al cdigo y otras que
no pertenecen al mismo, de forma que, si al producirse error la palabra resultante no
pertenece al cdigo, ello nos permite detectar la existencia de error. La adecuada
combinacin de los bits aadidos permite tambin la reparacin de la palabra errnea
cuando el nmero de errores es limitado.
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
7 PUERTAS LGICAS CON DIODOS E INTERRUPTORES
7.1. Tensiones booleanas
7.2. Puertas lgicas con diodos
7.3. El problema del acoplo en tensin
7.4. El interruptor como inversor; puertas inversoras
7.5. Caractersticas ideales en una puerta lgica
7.6. El transistor MOS como interruptor
El lgebra de conmutadores constituye una materializacin del lgebra
booleana binaria, una forma de construirla fsicamente mediante la conexin de
interruptores con dos estados: paso y corte.
Hay muchos dispositivos fsicos, no necesariamente elctricos, que pueden
utilizarse como interruptores (por ejemplo, neumticos, con aire a presin o con fluidos).
Pero entre los diversos tipos de interruptores predominan los componentes electrnicos y,
ms en concreto, los transistores por su altsima velocidad de conmutacin entre los dos
estados y por su reducido tamao (que se traduce en alta densidad de integracin, bajo
consumo, reducido coste, ).
Los diodos, como simples discriminadores de polaridad, pueden actuar a
manera de interruptores de paso (sin entrada de control) y configurar puertas booleanas
no inversoras, "o" e "y"; pero tales puertas slo pueden utilizarse individualmente, debido
a que presentan problemas de acoplo entre ellas.
Para la conexin sucesiva de puertas lgicas resulta indispensable asegurar que
su tensin de salida no se modifica (es decir, no se produce una cada de tensin
apreciable) al conectar sobre ella la entrada o entradas de otras puertas; esto es lo que se
entiende por buen acoplo en tensin: conservacin de la misma tensin en la salida antes y
despus de la conexin.
Las puertas lgicas habituales se construyen con transistores y son de tipo
inversor, "y-negada", "o-negada", El estudio de puertas inversoras con interruptores
ideales facilita la comprensin de su configuracin y funcionamiento y permite considerar
las caractersticas ideales para ellas.
Precisamente el transistor MOS es un interruptor cuasi-ideal con el que puede
construirse una amplsima diversidad de puertas inversoras de muy buenas caractersticas.
Acoplo en tensin, inmunidad frente a las perturbaciones (frente al ruido
electromagntico), velocidad de trabajo (o, lo que es lo mismo, tiempo de respuesta) y
consumo son aspectos a tener en cuenta en el funcionamiento de las puertas lgicas. Tales
cuestiones estn relacionadas con las resistencias de entrada y de salida y con la
capacidad de entrada de las puertas.
158 El ect rni ca Di gi t al
7. 1. Tensi ones bool eanas
Los estados elctricos representativos de los valores booleanos estarn definidos en
trminos de tensin o de intensidad; generalmente se expresan en forma de tensin ya que
resulta ms sencillo razonar con tensiones que con intensidades. [A fin de cuentas, la
tensin es una diferencia de potencial presente entre dos puntos, mientras que la
intensidad es una corriente que fluye, que pasa.]
A cada estado o valor booleano le corresponder un intervalo de tensin determinado
y entre ambos intervalos, correspondientes al 0 y al 1, existir una zona de separacin.
En general al 0 booleano se le asocia un intervalo de tensin a partir de 0 voltios y al
1 se le asigna un intervalo de tensin hasta +V voltios, siendo V la tensin de
alimentacin.
intervalo de separacin
" 0 "
" 1 "
0 V
+ V
V(1) = +V voltios
V(0) = 0 voltios
Vmn(1)
Vmx(0)
V < Vmx(0)
a = 1 V > Vmn(1)
a = 0
Este tipo de asignacin en la que V(1) > V(0) se denomina lgica positiva, para
distinguirla de los casos en que V(1) < V(0) que corresponden a lgica negativa.
7. 2. Puert as l gi cas con di odos
Nota: para quienes no hayan estudiado anteriormente el comportamiento de los
diodos, el captulo T1 describe la forma de actuar de los diodos y presenta un modelo
operativo del funcionamiento de los diodos semiconductores; ver T1.2. Unin PN (y, en
su caso, ver tambin T1.1. Semiconductores).
Entendemos por puertas booleanas o puertas lgicas las realizaciones concretas de
las operaciones booleanas mediante dispositivos fsicos.
Las puertas lgicas con diodos tendrn una estructura del tipo siguiente:
a
b
Vr
y
diodo
diodo
7. Puert as l gi cas con i nt errupt ores 159
Los diodos actan dejando pasar la tensin de sus entradas cuando sta corresponde a
uno de los dos valores lgicos y no dejndola pasar para el otro valor; la tensin de
referencia Vr debe ser la correspondiente al valor que no pasa.
La puerta "o" debe dejar pasar los unos, de forma que siempre que haya un 1 a la
entrada el resultado sea 1 y la puerta "y" debe dejar pasar los ceros, ya que siempre que
una entrada sea 0, el resultado debe ser 0 tambin.
+V
a
b
a
b a + b a . b
R R
Puerta "o"" Puerta "y"
Estas puertas son directamente ampliables a tres o ms entradas, sin ms que aadir
un diodo por cada nueva entrada.
Desde el punto de vista analgico la puerta "o" constituye un selector de tensin
mxima (selecciona la mayor de sus tensiones de entrada, supuesto que dicha tensin sea
mayor que 0 V) y la puerta "y" es un selector de tensin mnima (selecciona la menor
de sus tensiones de entrada, supuesto que sea menor que +V).
Ambas puertas son simples y econmicas, apropiadas para su utilizacin como
puertas individuales, pero no para formar series de puertas lgicas, conectadas entre s.
Consideremos un ejemplo de los errores que pueden derivarse de la conexin sucesiva de
puertas con diodos:
+V
R
R
0
0
+V
Puerta "o" Puerta "y"
V = +V/2 V(0)?, V(1)?
Debera ser 0 V = V(0)
0
0
0
1
160 El ect rni ca Di gi t al
El problema reside en que la impedancia de entrada de la segunda puerta es igual a la
de salida de la primera de ellas R; con ello los efectos de carga de una puerta sobre otra
pueden producir errores por desplazamiento de la tensin de salida, como en el caso
anterior. No existe un buen acoplo en tensin.
Adems, dado que el funcionamiento especfico de los diodos consiste en dejar pasar
o no una tensin a su travs, sin generar nuevos valores de tensin, no es posible realizar
con ellos la operacin booleana de complementacin o negacin: no hay inversores con
slo diodos.
Por todo ello, las puertas "o" e "y" con diodos son apropiadas por su sencillez para
ser utilizadas individualmente, pero no para conjuntos de puertas lgicas; son tiles para
incluir en un diseo operaciones "o" e "y" aisladas (en particular para utilizar dichas
puertas en circuitos analgicos o en etapas de potencia), pero no para construir funciones
booleanas, que requieren varias puertas conectadas entre s y, adems, necesitan
inversores.
7. 3. El probl ema del acopl o en t ensi n
Un circuito digital estar formado por la conexin de mltiples puertas lgicas para
configurar funciones booleanas; cada puerta presenta en su salida la tensin
correspondiente a uno de los dos valores booleanos (0/1) y debe comunicar dicha tensin
a la siguiente puerta o a varias puertas lgicas conectadas a dicha salida. Se requiere,
pues, un buen acoplo en tensin, es decir, el valor de tensin de salida de una puerta no
debe deteriorarse (no debe sufrir modificaciones importantes) por el hecho de conectarle
una o varias entradas de otras puertas booleanas.
La condicin de buen acoplo en tensin de un circuito con otro reside en que la
resistencia de entrada del segundo circuito sea de valor muy superior a la resistencia de
salida del primer circuito:
Ri (segundo circuito) >> Ro (primer circuito).
En tal caso, la conexin de ambos circuitos no modifica apreciablemente la tensin
que presenta el primero de ellos con su salida sin conectar (al aire).
Visto desde su salida un circuito presenta un equivalente thevenin consistente en un
generador de tensin y una resistencia (o, en el caso ms general, una impedancia) de
salida. La entrada del segundo circuito puede reducirse, en situacin estacionaria, a una
resistencia de carga: resistencia de entrada. La conexin entre los dos circuitos viene
representada por la siguiente figura.
Ro
Ri Vo
+
Io
V'
7. Puert as l gi cas con i nt errupt ores 161
La tensin de salida del primer circuito V' coincide con la tensin de su generador
thevenin Vo cuando no existe ninguna conexin sobre dicha salida; al conectar el segundo
circuito, la tensin de salida V' se desplaza un valor Vo:
Vo = Io.Ro = Vo.Ro / (Ro + Ri)
que ser despreciable frente a Vo cuando Ri >> Ro (o lo que es lo mismo, cuando la
intensidad Io que requiere el segundo circuito sea relativamente pequea):
V' = Vo . Ri / ( Ri + Ro ); si Ri >> Ro, resulta Ri + Ro Ri y, por tanto, V' Vo.
En tal caso se dice que existe buen acoplo en tensin, es decir, el primer circuito
comunica al segundo la tensin presente en su salida sin que dicha tensin se modifique
apreciablemente al conectar el segundo circuito sobre el primero.
Cunto debe ser mayor Ri respecto a Ro? Sea Ri = k.Ro, V' = Vo . k / (k+1),
Vo = Vi / (k+1). Para k = 10 (Ri
diez veces Ro), la tensin de salida disminuye en un
9 % por el hecho de la conexin; si k = 20, la disminucin es slo de un 5 %.
Algunos ejemplos pueden servir para aclarar el concepto de acoplo en tensin:
- Divisor de tensin
+12 V
5K
7K
7 V
3K
7 V
R
L
1
m
A
Podemos obtener una referencia de tensin de 7 V a partir de una tensin de
alimentacin de 12 V con un divisor de tensin formado por dos resistencias de 5K y 7K (
5 + 7 = 12).
El equivalente thevenin del divisor de tensin contiene una tensin de 7 V en serie
con una resistencia de salida de 5K//7K 3K; para que la referencia de 7 V no se
modifique apreciablemente la resistencia de carga debe ser mucho mayor de 3K o, lo que
es lo mismo, la intensidad que requiere la carga debe ser muy inferior a la que circula por
el propio divisor de tensin (12 V / (5K + 7K) = 1 mA).
Si no se cumple esta condicin (RL >> 3K) la tensin de salida del divisor de tensin
disminuir en forma apreciable al conectar la carga; con una resistencia de carga de 100K,
la tensin de salida ser de 6,8 V, pero si la resistencia de carga es de 1K la salida ser de
1,7 V (la cuarta parte de la que corresponde al divisor de tensin aislado).
162 El ect rni ca Di gi t al
b) Oscilador en onda cuadrada (1 Hz)
5 / 0 V
50
200
R
C
LED
El circuito de la figura anterior es un oscilador en onda cuadrada (que ser de baja
frecuencia si R y C son de valores altos), con niveles de tensin de salida de 0 y 5 V y
una resistencia de salida del orden de 50 .
Supuesta una frecuencia de oscilacin de 1 Hz, si conectamos a la salida del
oscilador un diodo luminiscente (con una resistencia limitadora de intensidad), el LED se
encender y apagar una vez cada segundo; en cambio, si conectamos una pequea
bombillita de linterna (4,5 V, 200 mA: resistencia 22 ) el oscilador no ser capaz de
encenderla: el nivel de tensin de 5 V se reducir fuertemente.
Lo mismo sucede al utilizar como instrumentos de laboratorio generadores de seal
cuya resistencia de salida no sea muy baja.
Antiguamente se utilizaban sencillos receptores de radio galenas consistentes en
un simple diodo (para demodular la seal de radiofrecuencia) y un auricular de alta
impedancia; actualmente es difcil encontrar tales auriculares, ya que los habituales son de
baja impedancia y con ellos no es posible recibir una seal audible [al usar como carga
una resistencia demasiado pequea se reduce fuertemente la seal].
Las puertas lgicas son utilizadas para construir funciones booleanas, mediante la
conexin sucesiva de varias puertas: para tener un buen acoplo en tensin interesa que
presenten muy alta resistencia de entrada y muy baja de salida.
Ello no ocurre en las puertas con diodos, en las que la resistencia de entrada, cuando
el diodo conduce, es la resistencia de polarizacin R y la resistencia de salida, cuando los
diodos no conducen, es la misma resistencia R.
7. 4. El i nt errupt or como i nversor; puert as i nversoras
Un interruptor o conmutador elctrico es un dispositivo con dos estados: en uno de
ellos permite el paso de corriente elctrica a su travs, presentando una resistencia
prcticamente nula, y en el otro se comporta como un circuito abierto, ofreciendo una
resistencia infinita al paso de corriente.
La entrada controla el estado del interruptor, de forma que cuando la tensin de
entrada corresponde al 0 no conduce y cuando es 1 deja pasar libremente la corriente
elctrica; la resistencia de entrada de un interruptor ideal es infinita, es decir, la intensidad
que requiere la entrada para mantener el estado es despreciable.
7. Puert as l gi cas con i nt errupt ores 163
Para a = "0" R =
Para a = "1" R = 0
a
El circuito de la figura siguiente representa un inversor booleano, ya que para
Vi = 0 el interruptor no conduce y la tensin de alimentacin VCC es transmitida a la
salida a travs de la resistencia de polarizacin RP, mientras que para Vi = 1 el interruptor
conduce y lleva la salida a 0 V.
Rp
V
i
Vcc
Para Vi = 0 V = "0" Vo = Vcc = "1"
Para Vi = Vcc = "1" Vo = 0 V = "0"
V
o
El carcter inversor de este circuito se debe a que el interruptor cuando conduce no
transmite un 1 sino un 0; la resistencia RP transmite por defecto (cuando el interruptor no
conduce) la tensin correspondiente al 1.
La resistencia de entrada de este inversor es la propia del interruptor, sumamente
alta, mientras que la resistencia de salida es nula para salida 0 y RP para salida 1; en
ambos casos, al conectar varios inversores seguidos se cumple la condicin de buen
acoplo en tensin Ri >> Ro.
La conexin de interruptores en serie da lugar, de acuerdo con el lgebra de
conmutadores, a una operacin "y", a la que sigue una inversin (debida a que el valor
booleano transmitido por ellos es el 0); as se obtiene una puerta "y-negada" (Nand). De
igual forma su conexin en paralelo configura una puerta "o", seguida de una inversin:
puerta "o-negada" (Nor).
Y2 = a + b Y1 = a . b
a
Rp Rp
b
a
b
Vcc Vcc
Puede comprobarse directamente la operacin que realiza cada una de estas puertas
construyendo su correspondiente tabla de verdad.
164 El ect rni ca Di gi t al
Pero tambin pueden obtenerse puertas inversoras ms complejas, aprovechando
operaciones "y", conformadas por interruptores en serie y operaciones "o", con
interruptores en paralelo.
Vcc Vcc
R
p
Rp
a
b
c
d
e
f
a
b
c
d
e
f
Y1 = (a.b + c.d + e) . f
Y1
(a+c).(b+d).f + e
Y2
Y2 =
Las puertas resultantes son siempre inversoras: producen una inversin global sobre
el conjunto de operaciones "y" y operaciones "o" configuradas por la forma de conexin
de los interruptores; proceden de la estructura de un inversor y conservan tal carcter.
Es posible obtener una puerta "o-exclusiva" en la forma siguiente:
b . a + a.b = b) + a ( . ) b + (a = b a. + .b a = b a. + .b a = b a = y
para cuya configuracin necesitamos 6 interruptores (4 para la puerta general y dos para
los inversores previos de a y de b):
Vcc
b
a
Rp Rp Rp
y
b a
b
a
La siguiente transformacin permite construir dicha operacin con solamente 5
interruptores: y = a b = a.b + a. b = a.b+ (a + b) .
Vcc
Rp Rp
y
b a
a+b
7. Puert as l gi cas con i nt errupt ores 165
En resumen, una puerta inversora est conformada por un plano de interruptores,
conectados en paralelo o en serie para configurar operaciones "o" y operaciones "y",
respectivamente, y por una resistencia de polarizacin RP:
cuando el plano de interruptores conduce transmite el valor 0:
por ello, la puerta es inversora;
por defecto, RP transmite el valor 1, cuando los interruptores no conducen.
Rp
Ro ( " 1 ") = Rp
Ro ( " 0 ") = 0
Ri =
plano
de
interrupt.
y
Vcc
El buen acoplo en tensin queda garantizado por ser Ri ; el consumo para salida
1 es nulo y para salida 0 es ICC = VCC / RP.
7. 5. Caract er st i cas i deal es en una puert a l gi ca
Una puerta lgica ideal, para ofrecer un excelente acoplo en tensin, debe presentar
una resistencia de entrada muy alta y una resistencia de salida baja.
INTERESA Ri ~ , Ro ~ 0.
Adems, valores bajos de la resistencia de salida favorecen en gran medida la
inmunidad frente al ruido, es decir, evitan que perturbaciones electromagnticas de
cualquier tipo afecten a la tensin de salida. El equivalente thevenin presenta la
resistencia de salida en serie con la tensin de salida:
Ro
Vo
+
V
O
'
cuanto ms pequea es Ro menor ser el efecto de las perturbaciones que acten sobre el
nudo de salida (se requiere mayor intensidad para producir una modificacin de la tensin
de este nudo). [Supongamos una perturbacin con una potencia P, la variacin de la
tensin que producir ser Ro . P Vo = , tanto menor cuanto menor sea Ro.]
166 El ect rni ca Di gi t al
Tambin interesa que el tiempo de propagacin de la seal, o sea, el retraso fsico
que se da entre la entrada y la salida sea lo ms pequeo posible. Obviamente el cambio
de valor en la seal de entrada y el correspondiente cambio en la salida no son
simultneos sino que existe siempre un pequeo intervalo de tiempo entre ambas seales:
este retraso recibe el nombre de tiempo de propagacin tp; cuanto menor sea este tiempo
de respuesta, mayor puede ser la velocidad de trabajo de la puerta lgica, mayor ser el
nmero de bits que puede procesar en un segundo.
INTERESA tp ~ 0.
Los tiempos de propagacin son debidos, fundamentalmente, a efectos capacitivos en
la conmutacin de los interruptores y, en particular, a la capacidad equivalente que
presentan las entradas de los mismos y que es preciso cargar o descargar al modificar su
valor booleano. Una resistencia de salida baja colabora en la obtencin de reducidos
tiempos de propagacin, ya que permite intensidades altas para efectuar la carga o
descarga de la capacidad de entrada de la puerta siguiente.
Por otra parte, interesa que el consumo de las puertas sea lo menor posible y, si ello
fuera factible, consumo nulo. El consumo se refleja en la magnitud de la fuente de
alimentacin que ha de proporcionar la tensin VCC y en el gasto energtico que produce
el circuito; pero, tambin, en la disipacin de calor en el propio circuito y, en su caso, en
la necesidad de incluir sistemas que favorezcan tal disipacin.
INTERESA ICC ~ 0.
En las puertas con interruptores la resistencia de entrada es prcticamente infinita y
la de salida es nula cuando conducen los interruptores y RP cuando no conducen:
Ri ; Ro(0) 0 ; R0(1) = RP .
Ya de entrada existe buen acoplo en tensin y, adems, en relacin con la inmunidad
frente al ruido y con la velocidad de trabajo (con los tiempos de propagacin) interesa que
la resistencia RP sea de valores bajos. Pero el consumo cuando el plano de interruptores
conduce (salida 0) es VCC / RP y, a tal efecto, interesan valores altos de la resistencia RP.
Por ello, la resistencia de polarizacin RP ha de elegirse en un compromiso entre
velocidad (+ inmunidad al ruido) y consumo. En la prctica, valores aceptables suelen
estar entre los 500 y los 50 K, optando por valores bajos (~500 ) cuando predomina
el inters por la velocidad o por la inmunidad frente a perturbaciones y valores altos
(~50 K) cuando interesa sobre todo reducir el consumo.
7. Puert as l gi cas con i nt errupt ores 167
7. 6. El t ransi st or MOS como i nt errupt or
Nota: el captulo T1 dedicado a Semiconductores, unin PN y transistores MOS
puede resultar til para quienes no hayan estudiado anteriormente la forma de actuar de
tales transistores, as como para repasar el comportamiento razonado de semicon-
ductores, diodos y transistores; el apartado T1.3. presenta en detalle un modelo operativo
de los transistores MOS.
Un transistor NMOS est formado sobre un substrato P por sendas difusiones N
(Fuente S y Drenaje D) que actan como contactos y por un condensador intermedio
conformado por el substrato, xido de silicio aislante y un plano conductor que acta
como entrada de control (Puerta G).
N N
Metal
xido
Semiconductor
Substrato P
SiO aislante
2
G
Puerta
Un transistor MOS constituye un excelente interruptor electrnico: cuando la tensin
de entrada Vi = VG es suficientemente positiva la puerta atrae a los electrones libres en el
substrato (procedentes de los pares electrn-hueco propios del propio silicio como
semiconductor) y forma un canal conductor entre fuente y drenaje:
VG
> VTO se forma canal => el transistor conduce.
G
N N
Substrato P
canal
V
D
V
S
fuente
drenaje
zona
de vaciamiento
longitud del transistor: L anchura: W
Si la tensin de puerta es claramente inferior al valor de la tensin umbral VTO el
canal no se forma y no hay paso de corriente entre las zonas de difusin (fuente y
drenaje):
VG
< VTO no existe canal => el transistor no conduce.
La resistencia del canal puede hacerse adecuadamente baja (~ 10 ) aumentando la
anchura del transistor y la resistencia de entrada es muy alta (prcticamente infinita), con
lo cual queda asegurado un buen acoplo en tensin. Ahora bien, la puerta G del transistor
es de tipo capacitivo: presenta una capacidad de entrada que habr que cargar o descargar
en las conmutaciones, lo cual limita su velocidad de trabajo (Ci = CG ~ 10 pF).
168 El ect rni ca Di gi t al
El proceso tecnolgico de fabricacin MOS es conceptualmente muy simple y consta
de un nmero reducido de etapas bsicas (ver captulo T2):
N N
Substrato P
SiO
2
Difusin N
Polisilicio
1. Substrato de silicio cristalino tipo P
2. Capa de xido fino aislante SiO2
3. Polisilicio N
++
formando la puerta
Aunque la denominacin MOS procede de la configuracin en la zona de puerta
metal-xido-semiconductor, actualmente el plano de puerta no se construye
con metal sino con polisilicio, silicio policristalino fuertemente dopado cuya
conductividad es prxima a la del metal.
4. Difusin N
++
(fuente y drenaje)
5. Contactos metlicos
De esta forma, la puerta y las dos zonas de difusin N quedan autoalineadas: la
difusin se realiza sobre todo el transistor pero no penetra debajo del polisilicio.
El substrato P debe conectarse a la tensin ms negativa del circuito (a 0 V), de
forma que las uniones NP de las difusiones (y del canal) con el substrato queden
polarizadas en inverso, dando lugar a una capa vaca (sin portadores de carga) que asla
al conjunto del transistor respecto al substrato. De esta forma los transistores MOS
quedan autoaislados (separados del substrato por una capa de vaciamiento).
El tamao del transistor MOS puede ser micromtrico (dimensiones del orden de una
micra) y la integracin de mltiples transistores en un circuito viene facilitada por las
caractersticas de autoalineado y autoaislado propias del transistor MOS (ver T2.1).
Nota: el apartado T1.3. explica la formacin de la capa de vaciamiento que asla a
los transistores MOS y, al final del apartado T2.1., se vuelve a insistir en dicho
aislamiento y se explica el autoalineamiento que se produce entre polisilicio y difusiones
del transistor MOS; por otra parte, el captulo T2 describe en detalle los procesos de
fabricacin de los circuitos integrados con transistores MOS.
7. Puert as l gi cas con i nt errupt ores 169
El esquema bsico transistor NMOS - resistencia de polarizacin (del drenaje) RD
conforma un inversor booleano:
Vo
Vi
TO
TO
R
D
V
DD
Par a Vi < V = " 0" Vo = V = " 1'
Par a Vi > V = " 1" Vo = 0 V = " 0"
DD
Utilizando los transistores NMOS como interruptores pueden construirse los diversos
tipos de puertas inversoras; cada puerta estar conformada por tantos transistores NMOS
como entradas tenga, ms una resistencia de polarizacin RD:
b a
b
a
c
Y1
Y1 = a . b . c Y2 = a + b + c
Y2
R
V
D
c
DD
V
DD
R
D
V
a b
a + b
y
Funci n o- ex cl usi v a
D
DD
R R
D
Las puertas NMOS ofrecen un buen acoplo en tensin, ya que la resistencia de
entrada de estos transistores es prcticamente infinita. Las principales diferencias que
presenta el transistor MOS respecto de un interruptor ideal son comentadas en la pgina
siguiente.
170 El ect rni ca Di gi t al
a) La resistencia de paso de un transistor MOS, cuando conduce, es relativamente baja
RMOS~10, pero no nula.
Por ello, cuando el plano de transistores conduce (salida 0), la tensin de salida no es
exactamente 0 V sino que se forma un divisor de tensin entre la resistencia de
polarizacin RD y la propia resistencia de los transistores en conduccin RMOS.
V
CC
R
D
R
MOS
V = V o CC
R
R + R
D
MOS
MOS
Si RD >> RMOS la tensin de salida del divisor de tensin ser Vo << VCC, es decir,
Vo 0 V; para asegurar una tensin de salida Vo(0) prxima a 0 V es preciso que
RD >> RMOS (o sea, RD >> 10 ).
b) La capacidad de entrada de los transistores MOS Ci = CG ~ 10pF limita su velocidad
de trabajo.
En un nudo booleano, es decir, en la conexin de la salida de una puerta a la
entrada de otra (o de otras puertas) la capacidad de entrada de esta segunda se carga (en el
paso de 0 a 1) a travs de RD y se descarga (en la conmutacin de 1 a 0) a travs de los
transistores MOS RMOS; dado que RD >> RMOS, el tiempo de carga es muy superior al de
descarga y es el que limita la velocidad de trabajo.
V
CC
RD
A A
Ci
El tiempo de propagacin de la primera puerta, tiempo de paso de 0 a 1 en el nudo A,
corresponder al tiempo de carga del condensador Ci y ser del orden de dos veces la
constante de tiempo tp 2. = 2.RD.Ci (en 2 se efecta el 86% del proceso de carga).
En consecuencia, los valores que puede adoptar la resistencia de polarizacin RD se
encuentran acotados en la forma siguiente:
- de un lado, para asegurar la salida 0, RD >> RMOS ~10;
adems, el consumo en tal situacin VCC/RD aconseja emplear valores altos de RD;
- en cambio, tanto el acoplo en tensin, como la inmunidad frente al ruido
y la velocidad de trabajo precisan de valores bajos de RD.
Como se indicaba anteriormente, valores de la resistencia de polarizacin RD entre
0,5 K y 50 K suelen ser aceptables, optando por valores muy altos cuando lo
prioritario es el consumo y tomando valores ms bajos en el resto de los casos.
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
8 PUERTAS CON INTERRUPTORES COMPLEMENTARIOS
LGICA CMOS
8.1. Puertas con interruptores inversos
8.2. El transistor PMOS
8.3. El inversor con transistores complementarios
8.4. Puertas lgicas CMOS
8.5. Familia HCMOS: caractersticas segn catlogo
Los interruptores inversos se activan con valor booleano 0, de forma que conducen si su
entrada es 0 y no lo hacen cuando reciben un 1. Con ellos es posible construir puertas
inversoras (al igual que con los interruptores directos), pero, en este caso, el plano de
interruptores se sita arriba para transmitir el valor 1.
Como las entradas se encuentran invertidas, la conexin de interruptores en serie da
lugar a operaciones "o" y su conexin en paralelo produce operaciones "y", seguidas
siempre de una inversin global. De esta forma los interruptores inversos conforman planos
duales respecto a los interruptores directos, para el mismo tipo de puerta lgica.
El inters de los interruptores inversos reside en combinarlos con los directos para
formar puertas con dos planos de interruptores (sin resistencia de polarizacin), cuyo
consumo esttico es nulo, ya que, en cada momento, solamente conduce uno de los planos.
Tales puertas reciben el nombre de lgica complementaria y pueden construirse con
transistores PMOS (para los interruptores inversos) y NMOS, dando lugar a la familia
lgica CMOS (lgica de transistores MOS complementarios).
Las puertas CMOS estn conformadas por un plano PMOS que transmite el valor 1
y otro NMOS que transmite el 0; cada entrada tiene un transistor en cada uno de los
planos y las conexiones en ellos son duales (serie en un plano paralelo en el otro).
Estas puertas son de tipo inversor y la combinacin de conexiones serie-paralelo permite
una gran diversidad de puertas.
Actualmente se utiliza la serie HCMOS (CMOS de alta velocidad); sta presenta
excelentes caractersticas en cuanto a resistencias de entrada y de salida (y, por tanto, en
cuanto a acoplo en tensin e inmunidad frente al ruido), consumo esttico nulo y tiempos
de propagacin del orden de los 10 nanosegundos.
En este captulo se consideran en detalle tales caractersticas, as como el consumo
dinmico propio de la conmutacin de las puertas. Para ello es necesario habituarse a la
forma en que los fabricantes especifican las caractersticas en sus catlogos; stos
contienen la informacin concreta (con datos numricos medidos) sobre el comportamiento
real de los diversos circuitos digitales.
172 El ect rni ca Di gi t al
8. 1. Puert as con i nt errupt ores i nversos
Un interruptor inverso permite el paso de corriente elctrica a su travs cuando la
tensin de la entrada de control corresponde al 0 y, en cambio, no conduce cuando dicha
entrada recibe un 1. Como en el caso del interruptor directo, su resistencia de entrada es
infinita, es decir, la intensidad que requiere la entrada para controlar el estado del
interruptor es despreciable.
Para Vi = "0" Ro = 0
Para Vi = "1" Ro =
El circuito de la figura siguiente representa un inversor booleano configurado con un
interruptor inverso: para Vi = 0 el interruptor conduce y transmite a la salida la tensin de
alimentacin VCC, mientras que para Vi = 1 el interruptor no conduce y la resistencia de
polarizacin RP lleva la salida a 0.
Vo
Vi
Vcc
R
P
Para Vi = 0 V = "0" Vo = Vcc = "1"
Para Vi = Vcc = "1" Vo = 0 V = "0"
El montaje anterior es inversor ya que el interruptor conduce cuando recibe un 0 y,
entonces, lleva la salida a 1; la resistencia RP transmite por defecto (cuando el interruptor
no conduce) la tensin correspondiente a 0.
La resistencia de entrada de este inversor es la propia del interruptor, sumamente
alta, mientras que la resistencia de salida es nula para salida 1 y RP para salida 0. En
ambos casos, al conectar varios inversores seguidos se cumple la condicin de buen
acoplo en tensin Ri >> Ro.
8. Puert as CMOS 173
Habida cuenta de que sus entradas se encuentran invertidas (es decir, son activas con
valor 0) la conexin de interruptores inversos en serie da lugar a una operacin "o-
negada" (Nor): una operacin "y" cuyas entradas estn negadas:
y = a . b = a + b
De igual forma, su conexin en paralelo configura una puerta "y-negada" (Nand):
y = a + b = a.b
Rp
a
y = a + b
b
Vcc
Rp
b
a
y = a . b
Vcc
Puede comprobarse directamente la operacin que realiza cada una de estas puertas
construyendo su correspondiente tabla de verdad.
Los interruptores inversos se comportan como duales respecto a los interruptores
directos. Pueden obtenerse puertas inversoras complejas, aprovechando operaciones "y",
conformadas por interruptores en paralelo, y operaciones "o", con interruptores en serie.
Vcc
Rp
Y2
Y2 = ( a+c) .( b+d) .f + e
a b
d c
e
Vcc
Rp
Y1
Y1 = ( a.b + c.d + e) . f
a b
c d
e
f
f
Las puertas resultantes son siempre inversoras: producen una inversin global sobre
el conjunto de operaciones "y" (paralelo) y operaciones "o" (serie) configuradas por la
forma de conexin de los interruptores; todas ellas proceden de la estructura de un
inversor y conservan tal carcter.
174 El ect rni ca Di gi t al
La operacin o-exclusiva: y = a b = a.b+ a.b = a.b+ (a + b) requiere 5
interruptores:
Vcc
a + b
y
Puerta o-exclusiva
a a
b
b
Rp
Rp
En resumen, una puerta con interruptores inversos estar conformada por un plano
de interruptores, conectados en serie o en paralelo para configurar operaciones "o" y
operaciones "y", respectivamente, y por una resistencia de polarizacin RP:
cada interruptor conduce cuando su entrada recibe un 0 (por ello, la puerta es
inversora)
cuando el plano de interruptores conduce transmite el valor 1
por defecto RP transmite el valor 0 (cuando el plano de interruptores no conduce).
plano
de
interrupt.
y
R
P
Ro ( " 1" ) = 0
Ro ( " 0" ) = R
Ri =
Vcc
El buen acoplo en tensin queda garantizado por ser Ri .
El consumo para salida 0 es nulo y para salida 1 es ICC = VCC / RP.
8. Puert as CMOS 175
8. 2. El t ransi st or PMOS
Nota: recurdese que el captulo T1 puede resultar til para repasar el
comportamiento razonado de semiconductores, diodos y transistores MOS.
As como el transistor NMOS es un buen interruptor directo, el transistor PMOS lo
es como interruptor inverso. Un transistor PMOS est formado sobre un substrato N por
sendas difusiones P (Fuente S y Drenaje D) que actan como contactos y por un
condensador intermedio conformado por el substrato, xido de silicio aislante y un
plano conductor que acta como entrada de control (Puerta G).
P
Metal
xido
Semiconductor
Substrato N
SiO aislante
2
G
Puerta
P
Cuando la tensin de entrada Vi es suficientemente negativa, la puerta atrae a los
huecos libres en el substrato (procedentes de los pares electrn-hueco propios del silicio
como semiconductor) y forma un canal conductor entre fuente y drenaje; cuando la
tensin de puerta es claramente inferior a la tensin umbral, no existe canal y el transistor
no conduce.
De esta forma, una tensin negativa suficientemente alta sobre el terminal de puerta
da lugar, por atraccin sobre los portadores minoritarios del substrato, a un canal continuo
entre las dos zonas de difusin P que permite el flujo de corriente entre ellas.
La resistencia del canal se hace convenientemente baja (~ 10 ) aumentando la
anchura del transistor; la resistencia de entrada es prcticamente infinita, con lo cual
queda asegurado un buen acoplo en tensin.
El esquema transistor PMOS - resistencia de polarizacin RD
conforma un inversor
booleano; en este caso el transistor PMOS se encuentra arriba, conectado a la tensin
de polarizacin VDD:
Para Vi = 0 V = " 0" Vo = V = " 1'
Para Vi = = " 1" Vo = 0 V = " 0"
DD
Vo
V
i
V
R
DD
D
DD
V
176 El ect rni ca Di gi t al
Utilizando los transistores PMOS como interruptores inversos pueden construirse los
diversos tipos de puertas inversoras; tales puertas estarn formadas por tantos transistores
PMOS como entradas tenga la puerta, ms una resistencia de polarizacin RD:
b
a b
a
R
D
R
D
b
c
y = a + b + c
y = a . b . c
V
DD DD
V
V
D
D
R
R
b
b
a a
Funci n o- ex cl usi v a
y
a + b
DD
El tamao de un transistor PMOS es anlogo al del NMOS (dimensiones del orden
de la micra) y asimismo conserva las caractersticas de autoalineado y autoaislado propias
del transistor MOS, que facilitan la alta densidad de integracin de mltiples transistores.
El transistor PMOS presenta tiempos de respuesta del orden del nanosegundo, una
velocidad similar pero apreciablemente inferior a la del NMOS, ya que la movilidad de
los huecos es netamente inferior a la de los electrones: el movimiento de un hueco
requiere que un electrn ligado se desplace y lo ocupe, dejando un nuevo hueco en su
enlace; obviamente, los electrones ligados presentan menor movilidad que los electrones
libres.
8. Puert as CMOS 177
8. 3. El i nversor con t ransi st ores compl ement ari os
Las puertas con transistores MOS de un solo tipo, puertas NMOS o puertas PMOS,
presentan caractersticas anlogas:
- Su tamao es muy reducido, gracias a las dimensiones micromtricas de los
transistores y a su autoalineamiento y autoaislamiento: permiten muy alta densidad
de integracin.
- Son puertas inversoras: las NMOS porque los transistores transmiten el 0 y las
PMOS porque las entradas actan en forma negada.
- Ofrecen buen acoplo en tensin; su resistencia de entrada es elevada Ri
~
.
- La resistencia de salida Ro es muy baja cuando el plano de transistores conduce
(RMOS) y tiene el valor de la resistencia de polarizacin RD
cuando no lo hace.
- Cuando el plano de transistores conduce se forma un divisor de tensin entre su
resistencia RMOS y la de polarizacin RD, siendo necesario que RD >> RMOS para
que el valor de tensin de salida sea correcto.
- Valores bajos de la resistencia de salida (RMOS, RD) favorecen en gran medida la
inmunidad frente al ruido: evitan que cualquier perturbacin electromagntica
afecte a la tensin de salida.
- Las entradas son de tipo capacitivo Ci = CG, lo cual repercute en el tiempo de
propagacin de cada puerta ya que ha de cargar o descargar (a travs de su
resistencia de salida) la capacidad de entrada de la siguiente puerta (o puertas)
conectada a ella.
- El consumo ICC es nulo cuando el plano de transistores no conduce y VDD / RD
en el
otro caso. Por ello el consumo promedio es VDD / 2.RD, no nulo.
De forma que, en relacin con la inmunidad frente al ruido y a la velocidad de
trabajo, interesan valores muy bajos de RD, pero en cuanto al consumo (y en relacin con
el divisor de tensin RD / RMOS), interesan valores altos de dicha resistencia.
Ahora bien, podemos resolver esta contradiccin y mejorar grandemente las puertas
en aquellas caractersticas que dependen de RD utilizando conjuntamente los dos planos
de interruptores: el plano de transistores NMOS para transmitir el 0 y el plano de
transistores inversos PMOS para transmitir el 1.
Ambos planos P y N no conducirn nunca a la vez y, consiguientemente, el consumo
de estas puertas ser nulo. Adems, la resistencia de salida ser muy baja para ambos
valores booleanos, lo cual repercutir muy favorablemente en la inmunidad frente al ruido
y en la velocidad de trabajo de las puertas.
Tales puertas con transistores MOS de ambos tipos reciben el nombre de puertas
CMOS (puertas de transistores MOS Complementarios).
178 El ect rni ca Di gi t al
El inversor CMOS estar configurado por un transistor de canal N y de otro de canal
P; la unin de estos dos transistores complementarios confiere al inversor una gran
simetra estructural y reduce su consumo esttico a valores nulos.
V
CC
Vi Vo
Vi = 0 PMOS conduce, NMOS en corte Vo = Vcc
Vi = Vcc PMOS en corte, NMOS conduce Vo = 0
en ambos casos un transistor se encuentra en corte Icc = 0
El consumo esttico del inversor CMOS es nulo para los dos valores booleanos, pues
en ambos casos uno de los transistores se encuentra en corte; la intensidad en las entradas
es tambin nula, lo cual supone un excelente acoplo en tensin.
Diseando los transistores PMOS de forma que presenten la misma resistencia
efectiva que los NMOS, la simetra propia del circuito hace que la funcin de
transferencia sea aproximadamente simtrica, con la conmutacin entre estados situada
aproximadamente en la mitad de la tensin de la alimentacin (VCC/2), obtenindose
mrgenes de ruido cercanos al 50 % de dicha tensin.
Vo
Vi
V
Salida Entrada
V
0 V
V
V
V /2
I = 0
I = 0
CC
CC
CC
i
i
La resistencia de salida para el valor 1 es la que presenta el transistor PMOS y para el
0 la correspondiente al transistor NMOS, ambas muy bajas (~ 10 ) por el propio diseo
de los transistores, adecuadamente anchos.
8. Puert as CMOS 179
En la conmutacin de un valor booleano al otro, una puerta deber cargar o descargar
las capacidades de entrada (condensadores puerta-canal) de las puertas conectadas a ella;
ello incide en el tiempo de respuesta de la puerta que ser del orden de la constante de
tiempo asociada, es decir, del producto de la resistencia de salida de la puerta por la
capacidad de carga sobre ella: tp ~ 2 = 2 . Ro . CL.
Asimismo, durante la conmutacin de una puerta su intensidad de entrada no es nula
sino que corresponde a la carga o descarga de las dos capacidades puerta-canal que
conforman cada entrada; adems, los transistores MOS presentan otros efectos capacitivos
que se suman a la capacidad de puerta. Por ello, si bien el consumo esttico (cuando la
salida presenta uno de los dos valores booleanos 0/1) es nulo, cuando la puerta conmuta
de un valor al otro se produce un consumo no despreciable ya que han de cargarse o
descargarse las diversas capacidades de sus transistores: consumo dinmico.
La evaluacin del consumo dinmico de una puerta se realiza a travs de su
capacidad equivalente a efectos de disipacin de potencia Cpd: P = Cpd . VCC
2
. f
(expresin que corresponde a la energa consumida por un condensador en un proceso
continuado de carga-descarga con una frecuencia f).
8. 4. Puert as l gi cas CMOS
A partir de la configuracin del inversor CMOS, pueden construirse puertas lgicas
"y-negada" (Nand) y "o-negada" (Nor), incluyendo un par de transistores
complementarios (NMOS y PMOS) para cada entrada:
a
a
b
b
ab a
*
b
V
CC
V
CC
Estas puertas inversoras, conformadas con transistores MOS complementarios dan
lugar a la familia lgica CMOS, con un plano PMOS superior y otro plano NMOS
inferior, ambos con el mismo nmero de transistores y en conexin dual en un plano
respecto al otro: si dos transistores de un plano se encuentran en serie, los
correspondientes complementarios en el otro plano se encontrarn en paralelo.
180 El ect rni ca Di gi t al
Mediante tal conexin de transistores en serie y en paralelo pueden configurarse
puertas complejas:
y 2 y 1
f
d
e
b
a
Vcc
f
e
d
b
Vcc
a c c
Y1 = (a.b + c.d + e) . f (a+c).(b+d).e + f Y2 =
Las puertas lgicas CMOS se construyen mediante dos planos duales de
transistores: plano N y plano P; a cada una de las entradas le corresponden sendos
transistores, uno en cada plano, conectados de acuerdo con la dualidad serie-paralelo.
Plano
P
Plano
N
...
a
b
c
m
...
a
b
c
m
V
CC
y
8. Puert as CMOS 181
Todo transistor de canal N debe estar acompaado por un complementario de canal
P: las combinaciones de los PMOS han de ser duales (paralelo serie) respecto a las que
forman sus correspondientes NMOS, a fin de que la salida se encuentre siempre
conectada a 0 o a VCC a travs de transistores activos.
Al conectar una entrada a un valor booleano 0/1, uno de sus transistores se
encontrar en corte y el otro conducir; de esta forma todo camino de conduccin entre
los dos terminales de alimentacin incluye siempre un transistor en corte, por lo cual el
consumo en reposo es nulo.
La combinacin en serie de transistores en el plano N corresponde a una operacin
"y" (conforme al lgebra de conmutadores), mientras que la conexin en paralelo da lugar
a una operacin "o"; ahora bien, como el plano N transmite ceros (est conectado a
tensin 0 V), aade una inversin global en la salida.
Los transistores del plano P transmiten unos (estn conectados a tensin VCC) pero
conducen con entrada 0, es decir, sus entradas actan en forma negada; por ello, la
conexin en serie corresponde a una operacin "y" de variables negadas o, lo que es lo
mismo, a una operacin "o-negada" (segn el teorema de Morgan), mientras que la
combinacin en paralelo da lugar a una operacin "o" entre variables negadas, que pasa a
ser una operacin "y-negada". De manera que, en el plano P, la conexin en serie
corresponde a una operacin "o" y en paralelo a una operacin "y" ms una negacin
global, en ambos casos.
De esta forma puede configurarse cualquier funcin booleana que corresponda a una
combinacin de sumas y productos con una inversin (negacin) global (que afecta al
conjunto); en una misma puerta no pueden existir otras inversiones dentro de la expresin
algebraica: cada una de ellas dar lugar una nueva puerta.
Ejemplo:
) a) b.(c (d . c.a) d ( a) .b.(c d ) a c d.( .b.a d .c.b d a d. c d. = Y + + + = + + + = + + +
funcin que requiere 3 puertas: d = y1 , a) b.(c = y2 + , ) 2 y (d . c.a) (y1 Y + + =
d d
b.(c+a)
c a
d
d
a
c
d d
Vcc
Y
c
c a
b
a
b
182 El ect rni ca Di gi t al
8. 5Fami l i a HCMOS: caract er st i cas segn cat l ogo
Se incluyen a continuacin los datos del catlogo de Texas Instruments para el
circuito integrado 74HC00 que contiene 4 puertas Nand y es el primero de la familia HC
(CMOS de alta velocidad).
8. Puert as CMOS 183
184 El ect rni ca Di gi t al
Las tablas anteriores incluyen los datos de la serie 74HC y, tambin, los de la serie
54HC; la primera de ellas es la serie normal, que se utiliza habitualmente.
La serie 54 est preparada para un intervalo de temperaturas de funcionamiento ms
amplio (de -55 a 125C, frente al intervalo de -40 a 85C de la serie normal) y, para ello,
su encapsulado es cermico (en lugar de plstico); suele nombrarse con el calificativo de
militar y, obviamente, su coste es superior al de la serie normal.
Conforme a estos datos, la serie 74HC CMOS de alta velocidad presenta las
siguientes caractersticas funcionales:
Temperat uras
La temperatura de funcionamiento abarca el intervalo entre -40C y 85C.
La temperatura de almacenamiento va de -65 a 150C.
Tensi n de al i ment aci n
Pueden utilizarse tensiones de alimentacin entre 2 y 6 voltios.
Tensi ones e i nt ensi dades: V
o
-V
i
, I
o
, I
i
.
Para referirlos a la tensin de alimentacin tpica de 5 V se han tomado los datos de
tensiones de catlogo para 4,5 V (a 25C) aumentados en un 10%:
V
oL
= 0 V I
oL
= 20 A V
iLmax
= 1,5 V
I
i
< 0,1 A
V
oH
= 5 V I
oH
= -20 A V
iHmin
= 3,5 V
V
V
V
V
Salida Entrada
5 V
0 V
I < 0,1 A
I < 0,1 A
3,5 V
1,5 V
I = -20 A
I = 20 A
(1) = 1,5 V
(0) = 1,5 V
I o / I i > 200
8. Puert as CMOS 185
Inmuni dad f rent e al rui do
El ruido es una perturbacin que acta sobre los nudos booleanos pudiendo modificar
su valor 1/0: los valores booleanos estn presentes en la salida de cada puerta y sobre
dicha salida se encuentra conectada la entrada o entradas de las puertas siguientes.
En la figura anterior (diagrama salida entrada), se aprecia el margen que hay
respecto al ruido (indicado como V): si la salida de 5 V (1 booleano) es afectada por un
ruido que causa una variacin de tensin inferior a 1,5 V, la entrada siguiente recibir una
tensin superior a 3,5 V y seguir entendindose como valor 1; de igual forma si la salida
de 0 V (0 booleano) soporta un ruido menor que 1,5 V, la entrada siguiente recibir una
tensin inferior a 1,5 V y seguir entendindose como valor 0.
El margen de inmunidad frente al ruido en tensin es de 1,5 V para cada uno de los
valores booleanos:
V(0) = 1,5 - 0 = 1,5 V V(1) = 5 3,5 = 1,5 V.
Ahora bien, el ruido es una potencia parsita (energa actuante por unidad de tiempo)
que perturba el sistema electrnico: el margen de ruido en potencia resulta mucho ms
representativo de la inmunidad frente al ruido que el margen en tensin. Para calcularlo es
preciso conocer el valor de la resistencia de salida, ya que el efecto del ruido depende de
la resistencia sobre la que acta: la resistencia presente en un nudo booleano corresponde
al paralelo de la resistencia Ro de salida de la primera puerta con las de entrada Ri de las
siguientes y, en dicho paralelo, predomina la resistencia de salida Ro por ser de valor
mucho menor que las de entrada.
P = V . I = V . V/R = V
2
/R P = (V)
2
/ R
o
.
El valor de la resistencia de salida puede deducirse de las variaciones que se
producen en la tensin de salida cuando se requiere intensidad de ella: para alimentacin
de 4,5 V e intensidad de salida de 4 mA, las tensiones de salida son VoL = 0,17 V y
VoH = 4,3 V, lo cual supone una cada de tensin en la salida de aproximadamente 0,2 V
en ambos casos.
R
o
0,2 V / 4 mA ~ 50
El margen de ruido en potencia (P = (V)
2
/ R
o
) es anlogo para ambos valores
booleanos:
P 1,5
2
/ 50 50 mW.
Como valores de referencia, un margen de 20 mW resulta suficiente en ambiente
normal (viviendas o lugares pblicos) mientras que en un ambiente industrial (en
donde motores, mquinas y el propio suministro de energa elctrica generan mayor ruido
ambiental) se precisan mrgenes superiores a 100 mW para circuitos digitales sin
apantallamiento.
186 El ect rni ca Di gi t al
Vel oci dad de t rabaj o
Los tiempos de propagacin tpicos son de 9 ns (VCC = 4,5 V) para una carga
capacitiva de 50 pF a 25C de temperatura. Ello requiere un intervalo para cada bit de, al
menos, 18 ns (para permitir tiempo suficiente para la formacin del bit y una mnima
permanencia estable posterior); en circuitos con reloj, su perodo mnimo (2 bits: un 1
seguido de un 0) deber ser de 36 ns, lo cual permite una frecuencia mxima de reloj de
27 MHz.
Consumo
El consumo esttico es despreciable: inferior a 2 A (a 25C).
El consumo dinmico depende de la tensin de alimentacin y de la frecuencia de
conmutacin; se evala a travs de la capacidad equivalente a efectos de disipacin de
potencia: Cpd ~ 20 pF a 25C.
P = Cpd . VCC
2
. f = 0,5 mW/MHz para VCC = 5 V I = 0,1 mA/MHz
de forma que, para una alimentacin de 5 voltios y una onda cuadrada de 10 MHz, el
consumo es de 5 mW, que corresponde a una intensidad de 1 mA.
Conect i vi dad
La capacidad de carga, es decir, el nmero de entradas que puede soportar una salida
(fan-out) de una puerta CMOS no puede deducirse del cociente entre intensidades de
salida y entrada (dicho cociente presenta valores muy altos), ya que al conectar varias
puertas a la salida de otra el problema no es de intensidad sino de velocidad: es preciso
cargar y descargar las capacidades presentes en dichas entradas y ello limita la velocidad.
Por ello, el fan-out debe referirse a la limitacin en cuanto a capacidad mxima de
carga admisible para una determinada velocidad de conmutacin; es decir, la capacidad de
carga para la cual han sido medidos los tiempos de propagacin (habitualmente una
capacidad de 50 pF).
El valor de la capacidad en una entrada Ci es de unos 3 pF; el nmero mximo de
puertas que podrn conectarse a la salida de otra (para preservar su velocidad de trabajo)
ser de 50 pF / 3 pF 16.
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
9 TECNOLOGA CMOS. DIVERSIDAD DE CONFIGURACIONES
9.1. Puertas complementarias
9.2. Tipos de salidas y de entradas
9.3. Puertas de transmisin
9.4. Realizacin CMOS de las estructuras matriciales
9.5. Dispositivos programables
La tecnologa CMOS, introducida en el captulo anterior, ha permitido la construccin
de puertas booleanas con caractersticas cuasi-ideales, pues su resistencia de entrada es
prcticamente infinita, la de salida muy baja y el consumo esttico es nulo. Adems, el
juego de conexiones serie-paralelo permite una gran diversidad de puertas, combinando
operaciones suma y producto, pero siempre de tipo inversor (con una inversin global sobre
el conjunto de operaciones).
Las salidas de estas puertas pueden ser modificadas para incorporar un estado de
desconexin (alta impedancia) o para manejar una tensin o una intensidad de salida
relativamente altas (drenaje comn); por su parte, las entradas pueden ser dotadas de
histresis (dos tensiones de conmutacin) para evitar rebotes.
Pero, adems de las puertas complementarias, la tecnologa CMOS ofrece otros tipos
de puertas que resultan muy tiles para algunas aplicaciones especficas:
Puertas de transmisin que actan como simples interruptores (permitiendo o
interrumpiendo el paso del valor booleano presente en su entrada); con ellas pueden
construirse multiplexores y biestables, de dimensiones y tiempos de propagacin ms
reducidos que los conformados con puertas inversoras;
Puertas Nor con un solo plano de transistores, el NMOS (junto con un transistor
PMOS nico, como resistencia de polarizacin), que pueden tener muchas entradas y, por
ello, son adecuadas para construir estructuras matriciales (decodificadores, multiplexores,
ROM, PAL, PLA, ).
Las estructuras matriciales se transforman en programables cuando la conexin de
los transistores del plano N se hace a travs de fusibles. La introduccin de transistores
de doble puerta, la interior de ellas aislada, es otra forma (menos destructiva) de
anular su conexin; la acumulacin de carga elctrica negativa en la puerta aislada eleva
su tensin umbral e impide que el transistor pueda conducir (es como si no estuviera
presente), con la ventaja de que esta programacin puede ser borrada, descargando
dicha puerta aislada. Las denominaciones EPROM, EEPROM y FLASH corresponden
a tres etapas sucesivas en el desarrollo de este tipo de transistores de doble puerta, con tres
tipos diferentes de borrado.
En suma, la aportacin de la tecnologa CMOS a los circuitos digitales no se limita a
su propio tipo de puertas inversoras sino que ofrece una amplia gama de opciones con
diferentes prestaciones y campos de aplicacin.
188 El ect rni ca Di gi t al
9. 1. Puertas compl ementari as
Las puertas lgicas CMOS se construyen mediante dos planos duales de
transistores: plano N y plano P; a cada una de las entradas le corresponden sendos
transistores, uno en el plano N y otro en el plano P, conectados de acuerdo con la dualidad
serie-paralelo.
Plano
P
Plano
N
...
a
b
c
m
...
a
b
c
m
V
CC
y
las entradas se activan con valor 0:
paralelo operacin "y"
serie operacin "o"
+ una inversin global
serie operacin "y"
paralelo operacin "o"
+ una inversin global
: porque transmiten el valor "0"
Consideremos la puerta representada en la siguiente figura:
a
a
Vc c
b
c
d e
c d
b e
y = (a+b) .c + d.e
- en su plano N, la configuracin de transistores corresponde (de acuerdo con el lgebra
de conmutadores) a la funcin (a + b).c + d.e , a la cual debe aadirse una negacin
global ya que dicho plano N transmite el valor 0; de forma que la funcin conformada
por dicho plano es: y = (a + b).c + d.e
- en cuanto al plano P, transmite el valor 1 pero sus transistores conducen cuando su
entrada es 0, es decir, corresponden a variables negadas (a, b, c, d, e ) y su
configuracin (de acuerdo con el lgebra de conmutadores) produce la funcin
(a . b + c) . (d + e); de manera que la funcin conformada por dicho plano es la
misma que la del plano N: y = (a . b + c) . (d + e) = (a + b).c + d.e
9. Di versi dad de conf i guraci ones CMOS 189
La combinacin serie-paralelo de transistores permite una amplia diversidad de
puertas: puede configurarse cualquier funcin booleana que corresponda a una serie de
sumas y productos con una inversin global; si dentro de la expresin algebraica aparecen
otras inversiones, cada una de ellas da lugar una puerta adicional.
Consideremos la funcin del apartado 5.1., en el que se estudi su construccin de
cuatro formas conceptualmente diferentes; la configuracin de esta funcin con puertas
inversoras CMOS, utilizando el menor nmero de transistores posible, conduce a la
siguiente expresin:
y = d.a + c.b + c.a.(d + b) = d.a + c.b + c.a.(d + b)
= (d + a).(c + b).(c.a.(d + b)
a
a
a
a
b d
d
b
c
c
c.a.( d + b)
Vcc
y
d c
b
d
c b
Esta forma de construccin CMOS es la que se utiliza al disear un circuito
integrado de aplicacin especfica (ASIC); la eleccin de las puertas inversoras ms
apropiadas para cada funcin concreta permite minimizar el rea de integracin de las
mismas y disminuir sus tiempos de propagacin.
9.1.1. Caractersticas de las puertas complementarias
Puert as compuest as por sl o t ransi st ores MOS
El reducido tamao de los transistores MOS, su autoaislamiento (que facilita su
integracin contigua) y la ausencia de resistencias u otros componentes hacen que las
puertas CMOS necesiten una rea de integracin muy reducida.
Conf ormadas por dos pl anos de t ransi st ores
Cada entrada aporta dos transistores (un PMOS y un NMOS) y las conexiones en
cada plano son duales (serie paralelo) respecto al otro, lo cual supone una cierta
complejidad en las lneas de conexin y una ocupacin de rea que (siendo de por s muy
reducida) es mayor que la necesaria en las tecnologas que utilizan un solo transistor por
entrada (NMOS).
Pero con ello se consigue que en cada situacin booleana conduzca solamente uno de
los dos planos, lo cual supone un consumo esttico nulo.
190 El ect rni ca Di gi t al
Permi t en una ampl i a di versi dad de puert as
El juego de conexiones serie-paralelo permite configurar funciones complejas y
muy diversas en una misma puerta, con la limitacin de que la expresin de la funcin
tenga una negacin global sobre el conjunto de operaciones booleanas (puerta inversora) y
de que tal negacin sea la nica que aparezca: cada negacin da lugar a una puerta
adicional.
Las ent radas son de t i po capaci t i vo
La resistencia de entrada es muy alta (> 10 M), lo cual asegura un buen acoplo en
tensin. Adems, los transistores MOS presentan una capacidad de puerta que es preciso
cargar o descargar en la conmutacin cuando cambia el valor booleano presente en la
correspondiente entrada; tal transitorio de carga o descarga:
- da lugar a tiempos de conmutacin que limitan la velocidad de trabajo de la puerta
- limita, asimismo, el fan-out de la puerta anterior, es decir, el nmero de entradas de
otras puertas que pueden conectarse sobre una salida (pues tal nmero condiciona la
velocidad de trabajo)
- requiere un aporte puntual de intensidad durante la conmutacin, que da lugar a un
consumo dinmico proporcional a la frecuencia de las conmutaciones
- genera ruido sobre las lneas de alimentacin como consecuencia del pulso de
intensidad necesario para la conmutacin.
El hecho de que la entrada sea capacitiva (un diminuto condensador) y que el valor
de dicha capacidad sea muy reducido hace que una mnima aportacin de carga elctrica
sobre el terminal de puerta genere altas tensiones (V = Q/C), con el riesgo de
perforacin del dielctrico (de la delgadsima capa de xido de silicio que forma la
puerta). Lo cual constituye un problema de tipo prctico, relativo a la manipulacin de los
circuitos integrados MOS: la perforacin puede producirse por la propia carga esttica
acumulada en el cuerpo de quien los utiliza.
Por ello, es necesario adoptar una serie de precauciones en el manejo y
almacenamiento de los circuitos integrados MOS, evitando en lo posible el roce con los
terminales del integrado; los circuitos deben conservarse en las habituales tiras de
plstico o en almohadillas antiestticas; los puestos de trabajo dedicados al montaje de
placas con circuitos integrados MOS deben tener un diseo apropiado para eliminar
(mediante adecuadas tomas de tierra) toda posible carga en los instrumentos y en las
personas.
La sal i da de cada puert a es resi st i va
Cada plano de transistores, cuando conduce, presenta una resistencia que
corresponde a la zona lineal u hmica de sus transistores; tal resistencia depende de las
dimensiones de los transistores (disminuyendo en proporcin inversa al aumento de su
anchura).
9. Di versi dad de conf i guraci ones CMOS 191
La resistencia de salida de una puerta afecta a:
- la intensidad suministrable por la puerta
- los procesos de conmutacin (carga y descarga de las capacidades de entrada de las
puertas siguientes) y, en consecuencia, a los tiempos de propagacin y a la velocidad
de trabajo de la puerta
- la inmunidad frente al ruido en trminos de potencia.
Se present an vari os t ransi st ores en seri e
La presencia de transistores en serie supone el correspondiente aumento de la
resistencia de salida de la puerta, lo cual repercute, de acuerdo con el apartado anterior, en
la intensidad suministrable por la puerta, en los tiempos de propagacin y la velocidad de
trabajo y en la inmunidad frente al ruido en trminos de potencia.
Al aumentar el nmero de transistores en serie las caractersticas de una puerta
CMOS empeoran en gran medida: disminuye la intensidad disponible en la salida y el
margen de ruido en potencia y aumentan los tiempos de propagacin. Adems, este efecto
no es meramente lineal sino que se ve incrementado por el desplazamiento de la tensin
de fuente (en el caso de transistores NMOS el segundo de la serie no tiene su terminal de
fuente a 0 V sino conectado al drenaje del primero de ellos, de manera que VGS < VG y
as sucesivamente,).
Por ello, conviene limitar el nmero de entradas de las puertas CMOS de forma que
el nmero de transistores conectados en serie no sea superior a 5 o 6 en ninguno de los
dos planos (el efecto es an peor en el plano P que en el N).
9. 2. Ti pos de sal i das y de ent radas
En el apartado 4.2. se introdujo la situacin de desconexin como un tercer estado de
las salidas de las puertas booleanas que permite conectar mltiples salidas en paralelo, con
tal de que, en cada momento, acte una de ellas y las dems se encuentren en alta
impedancia: el resultado es el multiplexado de las salidas y la seleccin de una de ellas.
Este tipo de salidas se denomina tri-estado y puede conseguirse mediante
adaptadores como el representado en la siguiente figura:
E: habilitacin
D: dato
E
control del triestado
V
CC
Cuando la entrada de habilitacin E tiene valor nulo, los dos transistores de salida se
encuentran en corte, mientras que para E = 1 la salida adopta el mismo valor booleano
que la entrada D.
192 El ect rni ca Di gi t al
Este tipo de adaptador tri-estado puede ser incorporado en la salida de una puerta
booleana o en las salidas de un bloque digital para incluir la opcin de salida en alta
impedancia (desconexin); asimismo, un conjunto de n adaptadores con una habilitacin
comn configuran un bloque digital tpico: el adaptador para n lneas o adaptador tri-
estado de bus (buffer tri-estate).
E
Adaptadores tri-estado para un bus de 8 lneas
Otro tipo particular de salida elimina el plano P y deja la puerta incompleta,
solamente con el plano NMOS: tales salidas se denominan de drenaje abierto (aunque es
ms frecuente el uso del trmino colector abierto que procede del mismo tipo de salidas
en la familia TTL). Estas puertas deben completarse exteriormente mediante una
resistencia de polarizacin RC conectada a la alimentacin VCC.
Ahora bien, la resistencia de polarizacin RC puede conectarse a una tensin
diferente de la de alimentacin del circuito integrado, modificndose as el valor de
tensin correspondiente al 1 booleano, lo cual es til para efectuar el acoplo con otras
familias lgicas o con otros componentes que empleen niveles de tensin diferentes.
Adems, en los inversores de drenaje abierto, la existencia de un nico transistor
permite fabricarlos con mayor capacidad en tensin y en intensidad, configurando
adaptadores que permiten conectar directamente el inversor a dispositivos que requieren
mayores valores de tensin o intensidad, por ejemplo, visualizadores, pequeos rels, etc.
Tales adaptadores suelen admitir hasta 15 30 V de tensin sobre el transistor de salida
(cuando se encuentra en corte) e intensidades del orden de 50 mA (cuando conduce).
Las salidas de varias puertas de drenaje abierto pueden unirse sobre la misma
resistencia de polarizacin RC configurando una operacin "y" entre las mismas (siempre
que una de las salidas se encuentra a 0, su transistor conduce y la salida global es 0):
operacin "y" cableada.
Las entradas de los circuitos integrados CMOS estn protegidas frente a
sobretensiones mediante dos diodos en polarizacin inversa que se aaden en el
proceso de fabricacin; stos recortan las tensiones negativas (por debajo de -0,6 V) y
aquellas tensiones positivas que superan (en ms de 0,6 V) la de alimentacin (los datos
catlogo incluyen la intensidad mxima que soportan estos diodos con la notacin Iclamp):
a la pareja de transistores
PMOS y NMOS
V
i
Vcc
Las salidas de las puertas CMOS presentan un efecto anlogo de limitacin de
tensin, debido a que el drenaje de un transistor MOS forma siempre una unin PN con el
substrato del mismo.
9. Di versi dad de conf i guraci ones CMOS 193
En principio, las entradas presentan una tensin de conmutacin por debajo de la
cual la entrada es entendida como 0 y por encima como 1. A veces, resulta til disponer
de entradas con histresis, que tengan dos tensiones de conmutacin: cuando la entrada se
encuentra a 0 y se aumenta paulatinamente su tensin, la salida conmuta al alcanzarse el
valor Vb; pero, en cambio, cuando la entrada se encuentra a 1 y se disminuye
gradualmente su tensin, la salida conmuta para un valor Va distinto, siendo Va < Vb (en
la serie HCMOS, alimentada a 5 V, las tensiones de conmutacin suelen ser 2 y 3 V).
Vo
Vi
V
CC
Vo
Vi
V
CC
tensin de conmutacin 2 tensiones de conmutacin
Histresis
V
C
V
a
V
b
Este tipo de entradas con histresis recibe el nombre de entradas Schmitt; su
comportamiento asimtrico respecto a las variaciones de la tensin de entrada sirve para
evitar los rebotes que se producen cuando dicha variacin es lenta y la tensin de entrada
permanece un cierto tiempo en el entorno de la tensin de conmutacin.
La figura siguiente representa el circuito correspondiente a un inversor con entrada
Schmitt; los transistores horizontales, conectados a la tensin de salida, introducen una
realimentacin que da lugar a la histresis: con salida 1 los dos NMOS inferiores forman
un divisor de tensin cuyo efecto es desplazar hacia arriba la tensin de conmutacin,
mientras que para salida 0 el divisor de tensin de los dos PMOS superiores desplaza
hacia abajo la otra tensin de conmutacin.
Vcc
Vcc
Vin Vout
194 El ect rni ca Di gi t al
9. 3. Puert as de t ransmi si n
Los transistores MOS pueden ser utilizados como conmutadores para dejar pasar o
impedir el paso de una tensin. La existencia o no de canal entre fuente y drenaje
determina que la resistencia de paso sea reducida (inferior a 100 ) o muy alta (superior a
los 10 M). Esta actuacin del transistor MOS como transistor de paso o conmutador
aade a la diversidad de puertas inversoras una nueva puerta no inversora: la puerta de
transmisin.
Un transistor NMOS acta en la forma siguiente, siendo VTO la tensin umbral:
Vi Vo
Vc
Vc = " 0"
Vc = " 1"
- para VC = 0 < VTO el transistor se encuentra en corte, presenta una resistencia de
paso superior a 10 M y no comunica a la salida la tensin de su entrada
- cuando VC = 1 >> VTO el transistor conduce, su resistencia es inferior a 100 y
transmite hacia la salida la tensin presente en su entrada (los transistores MOS son
simtricos, de modo que cada uno de sus terminales extremos actuar como fuente o
como drenaje, segn convenga al sentido de las intensidades):
+ si V
i
= 0 = 0 V, la tensin en la salida ser tambin nula, V
o
= 0 V
+ si V
i
= 1 = VCC, la tensin en la salida ser Vo = VCC - VTO, pues se requiere
una tensin VTO entre fuente y puerta para permitir la formacin del canal (en
este caso, la fuente corresponde al terminal de salida Vo).
Es decir, al transmitir un 1 la puerta de transmisin produce un desplazamiento de
tensin igual a su tensin umbral (para Vi = VC = 5 V y VTO = 1,5 V, la tensin
transmitida por la puerta ser slo de unos 3,5 voltios).
De esta forma, un transistor NMOS corresponde a un circuito abierto cuando su
terminal de control se encuentra a 0 y, en cambio, a 1 permite el paso a su travs del valor
booleano presente a su entrada; si el valor a transmitir es 1 se produce un desplazamiento
en tensin (V -VTO).
Este desplazamiento (del valor booleano 1 al atravesar un transistor NMOS) se ve
aumentado por un efecto de segundo orden (denominado efecto substrato); de forma que
la tensin de salida V
o
(1) < V
CC
- V
TO
no es suficiente para asegurar la situacin de
consumo nulo en las puertas booleanas siguientes.
V' < V(1) - V
TO
V(1)
V(1)
en el inversor
conducen, a la vez, los dos transistores
9. Di versi dad de conf i guraci ones CMOS 195
Es posible evitar esta disminucin de la tensin del 1 booleano, construyendo las
puertas de transmisin con dos transistores complementarios en paralelo; sto obliga,
adems, a aadir un inversor entre la tensin de puerta del transistor NMOS y la puerta
del PMOS (ya que el transistor PMOS conduce con VE = 0).
Vcc
V
i
V
o
E
E
V
o
V
i
para VE = 0 ambos transistores se encuentran en corte y la puerta de transmisin no
conduce;
cuando VE = VCC (en el terminal de puerta del transistor PMOS habr 0 V) los dos
transistores conducen, transmitiendo a la salida el valor de tensin presente en su entrada,
sin producir ningn desplazamiento de nivel: el transistor NMOS conduce siempre que Vo
< VCC - VTO y el transistor PMOS lo hace siempre que Vo > VTO, de forma que entre los
dos cubren el intervalo [0 - VCC].
Para representar las puertas de transmisin puede utilizarse el siguiente smbolo:
V
C
V = 0
C
V = 1
C
La puerta de transmisin tiene el inconveniente de que la variable de control ha de
actuar a travs de sus dos transistores en forma invertida (con un inversor intermedio), de
manera que a los dos transistores que configuran la puerta han de agregarse otros dos
transistores para el correspondiente inversor.
Pero este inconveniente no es tal en aquellas estructuras que siempre utilizan las
entradas en forma afirmada y negada (y, por tanto, requieren ya de por s el invertir la
seal de control), como, por ejemplo, los multiplexores:
A
A
y
lnea 0
l nea 1
Multiplexor
de 2 lneas.
196 El ect rni ca Di gi t al
Un multiplexor de 2 entradas es directamente ampliable conectando mdulos iguales
en cascada (para n lneas sern necesarios n-1 mdulos conectados en cascada):
l
0
l
1
l
4
l
5
l
2
l
3
l
6
l
7
c b
Y
a
El esquema anterior contiene 14 puertas de transmisin; conformadas por 2
transistores cada una, y 3 inversores para las 3 entradas (el inversor de cada columna de
multiplexores es comn a todos ellos); en total 34 transistores, mientras que un
multiplexor anlogo realizado con puertas "y-negada" (Nand) necesita 8 puertas de
4 entradas, una de 8 y 3 inversores, es decir, 86 transistores.
De esta forma, la conexin en cascada de puertas de transmisin proporciona una
configuracin muy simple y modular para los multiplexores y el nmero de transistores
necesarios es claramente inferior a los que se requieren con puertas inversoras; por la
misma razn el tiempo de propagacin es tambin inferior.
Habida cuenta de que las puertas de transmisin son simtricas, un multiplexor
construido con ellos tambin lo es y puede ser utilizado como demultiplexor; en tal caso
se presenta el problema de que las lneas de salida no seleccionadas quedan en alta
impedancia (no en salida 0, como correspondera a un demultiplexor digital), lo cual
puede solventarse aadiendo resistencias que referencien a 0 V dichas lneas.
Incluso, en muchas ocasiones, es til el estado de alta impedancia de las salidas del
demultiplexor pues permite conservar sobre cada lnea el ltimo de los valores
transmitidos a la misma (para lo cual ser necesario que exista una capacidad adecuada
conectada en cada lnea de salida).
9. Di versi dad de conf i guraci ones CMOS 197
Las puertas de transmisin son, tambin, buenos interruptores analgicos (analog
switches) que controlan el paso de seales en el intervalo [0,VCC] establecido por las
tensiones de control (de puerta) de sus transistores; caso de que la seal de control utilice
como niveles -V1 y +V2, la puerta de transmisin admitir seales analgicas entre tales
valores [-V1,+V2].
De esta forma, las puertas de transmisin sirven para muestrear seales analgicas y
para realizar su multiplexado o demultiplexado:
- un multiplexor construido con puertas de transmisin puede transmitir cualquier
tensin dentro de los lmites fijados por sus tensiones de control [-V1,+V2]:
constituye un multiplexor analgico que permite seleccionar por su nmero una de
entre n tensiones (por ejemplo, para medir diversas tensiones con un mismo
conversor analgico-digital);
- el mismo multiplexor, utilizado en sentido inverso (una entrada, n salidas) es un
demultiplexor analgico, cuyas lneas de salida adoptan el estado de alta impedancia
cuando no son seleccionadas y pueden conservar, sobre capacidades, el ltimo valor
de tensin transmitido a cada lnea (puede servir, por ejemplo, para comunicar varias
referencias de tensin).
Asimismo (como se ver en los captulos 11 y 13), las puertas de transmisin
resultan tiles para la construccin de biestables.
9. 4. Real i zaci n CMOS de l as est ruct uras mat ri ci al es
Las puertas CMOS complementarias son inversoras de forma que no pueden
construirse directamente las puertas "y" y las puertas "o" propias de las Matrices que
conforman las configuraciones reticulares; ello no supone ningn inconveniente por
cuanto que toda suma de productos puede ser sustituida por puertas "y-negada":
p = Nand ( Nands ).
Ahora bien, a la hora de construir funciones booleanas de muchas entradas resulta
que las puertas CMOS necesarias para ello presentarn (en uno de sus dos planos P o N)
un alto nmero de transistores MOS en serie; cuando conducen, dichos transistores suman
sus resistencias de paso y la resistencia de salida resultante ser relativamente alta,
empeorndose mucho las caractersticas de intensidad de salida disponible, velocidad de
trabajo e inmunidad frente al ruido de la puerta lgica.
Precisamente las estructuras matriciales son tiles cuando se trata de configurar
funciones de un alto nmero de entradas; en ellas se presentar este problema propio de
las puertas de muchas entradas.
La conexin en serie de un nmero alto de transistores MOS se evita utilizando
puertas "o-negada" (Nor), cuyo plano N presenta todos sus transistores NMOS en
paralelo, y reduciendo el plano P de las mismas a un solo transistor PMOS como
resistencia de polarizacin (con su entrada conectada directamente a 0 V).
198 El ect rni ca Di gi t al
Tales puertas se denominan seudoNMOS, pues su configuracin es anloga a la de
las puertas propias de las tecnologas NMOS (solo que, en ese caso, el transistor que hace
de resistencia de polarizacin es de tipo NMOS con un canal implantado NMOS de
empobrecimiento):
Vcc
Las puertas "o-negada" (Nor) seudoNMOS presentan dos ventajas que las hacen
muy apropiadas para estructuras matriciales y programables:
- permiten un alto nmero de entradas, pues los correspondientes transistores se
conectarn en paralelo;
- presentan un solo plano activo de forma que, en cuanto a dispositivos programables
solamente ser necesario programar sobre el plano NMOS y tal programacin
consistir en desconectar transistores que se encuentran en paralelo.
Por contra, estas puertas tienen el inconveniente de que su consumo esttico no es nulo.
El transistor PMOS acta como resistencia de polarizacin y conduce siempre;
cuando la salida es 0, tambin conduce el plano NMOS, originando un consumo esttico
a travs de la malla de salida. Este consumo puede reducirse conectando la entrada del
transistor PMOS a un terminal de habilitacin, que permita limitar la actividad de estas
puertas al intervalo de tiempo en que interese su actuacin, mantenindolas inactivas y
con consumo nulo en el resto:
- para E = 1 el transistor PMOS no conducir y la puerta estar deshabilitada
- para E = 0 la puerta se encontrar en normal funcionamiento como puerta Nor.
Es fcil construir puertas "y" y puertas "o" a partir de las puertas "o-negada":
b a = b + a = b . a = b . a ; b a = b + a = b + a
equivale a
equivale a
La figura de la pgina siguiente representa un decodificador de 4 variables con
puertas "o-negada" seudoNMOS; obsrvese en ella que (a fin de configurar la operacin
"y") las puertas Nor estn conectadas a las variables negadas cuando su valor en el vector
de entrada es 1 y a las variables afirmadas cuando es 0.
9. Di versi dad de conf i guraci ones CMOS 199
1111
0000
0001
0010
0011
0100
Vcc
Vcc
Vcc
Vcc
Vcc
Vcc
Vcc
Vcc
Vcc
Vcc
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
Vcc
Vcc
Vcc
Vcc
Vcc
Vcc
D D C C B B A A
200 El ect rni ca Di gi t al
Un segundo ejemplo: la configuracin de un multiplexor de 4 lneas de entrada ser
semejante a la del correspondiente decodificador, aadiendo una entrada a cada una de las
puertas y recogiendo las salidas de ellas sobre una puerta Nor con una inversin posterior.
A B
A B
lnea 0
lnea 1
lnea 2
lnea 3
y
B
A
Vcc
y
Vcc
lnea 0
A
B
lnea 1
lnea 3
lnea 2
Multiplexor de 4 lneas de entrada (2 variables de control)
Conviene insistir en que, por razones obvias de facilidad de realizacin y de
comprensin de los dibujos, las figuras se refieren a bloques con un reducido nmero de
variables y, sin embargo, estas estructuras son realmente interesantes y tiles cuando se
trata de un amplio nmero de entradas.
9. Di versi dad de conf i guraci ones CMOS 201
El conjunto Matriz Y - Matriz O propio de las estructuras ROM, PLA y PAL puede
ser sustituido por dos matrices Nor, la primera de ellas con una inversin previa de sus
entradas y la segunda con una inversin posterior de sus salidas:
equivale a
Plano Nor Plano Nor
En
tra
das
Sa
li
das
Tngase en cuenta que no es preciso aadir los inversores de las entradas puesto que
stas ya disponen de ellos en la retcula de conexiones de la Matriz Y: bastar tomar las
variables adecuadamente negadas (cuando su valor en el vector de entrada sea 1) o
afirmadas (cuando sea 0).
La figura de la pgina siguiente representa un sencillo codificador que realiza el
cambio de cdigo binario a cdigo Gray para nmeros de 3 dgitos, conforme a la
siguiente tabla de conversin:
C B A c b a
0 0 0 0 0 0
0 0 1 0 0 1
0 1 0 0 1 1
0 1 1 0 1 0
1 0 0 1 1 0
1 0 1 1 1 1
1 1 0 1 0 1
1 1 1 1 0 0
En esta figura pueden apreciarse las dos matrices que forman la configuracin ROM:
la Matriz Y de entradas (matriz completa que construye todos los trminos mnimos) y la
Matriz O de salidas (matriz funcional que coincide con la tabla de las funciones).
Obsrvese que las puertas Nor de la Matriz Y se encuentran dibujadas en horizontal (en
cuanto a sus transistores NMOS) mientras que las puertas Nor de la Matriz O estn
dibujadas en vertical.
202 El ect rni ca Di gi t al
Vcc
Vcc
Vcc
Vcc
Vcc
Vcc
Vcc
Vcc
C C B B A A
Vcc Vcc Vcc
a b c
Codificador binario Gray para nmeros de 3 dgitos, en configuracin ROM
Tanto las estructuras matriciales como las puertas seudoNMOS (Nor con un solo
transistor PMOS) solamente tienen sentido para muchas entradas. En esa perspectiva, la
siguiente pgina presenta dos ejemplos de bloques de 9 entradas en configuracin PLA:
- Un codificador de prioridad de 9 lneas, cuya salida es el nmero binario que
corresponde a la lnea activa de mayor nmero.
- Un conversor de cdigo de barra de 10 niveles a cdigo BCD, cuyos vectores de
entrada corresponden a los 10 niveles, de 0 a 9 (000000000, 000000001,
000000011, 000000111, 000001111, 000011111, 000111111, 001111111,
011111111 y 111111111) y su salida es el nmero BCD correspondiente al mismo
nivel (0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000 y 1001).
9. Di versi dad de conf i guraci ones CMOS 203
D A B C
i h g f e d c b a
Vcc
Codificador de prioridad de 9 lneas, en configuracin PLA
D A B C
i h g f e d c b a
Vcc
Conversor de cdigo de barra a cdigo BCD, en configuracin PLA
204 El ect rni ca Di gi t al
9. 5. Di sposi t i vos programabl es
La forma de construir circuitos integrados programables consiste en insertar un
transistor en cada uno de los nudos de la retcula de aquella matriz (o matrices, en el caso
PLA) que deba ser programable y aadir a cada uno de estos transistores un dispositivo o
componente que permita eliminar su presencia.
La configuracin seudoNMOS hace que solamente sea necesario programar el plano
N, pues el plano P es fijo, constituido por un transistor PMOS nico que acta como
resistencia de polarizacin: para las entradas booleanas se utilizan solamente transistores
de tipo NMOS, todos ellos en paralelo (puerta Nor) y su programacin consiste en
eliminar (desconectar) los correspondientes transistores.
Vcc
Ciertamente, en el caso de puertas CMOS con los dos planos complementarios, la
programacin de ambos planos sera sumamente compleja, pues en uno de ellos los
transistores se encontraran en serie y su programacin consistira en puentearlos (lo
cual es mucho ms difcil que desconectarlos).
Fusibles
Un fusible en serie con cada transistor NMOS (en la matriz programable) permite
desconectar dicho transistor.
Los fusibles se configuran mediante un estrechamiento en un conductor de un
material apropiado, de forma que pueda fundirse por efecto trmico mediante el paso de
una intensidad relativamente elevada; para ello se utilizan aleaciones de platino-silicio,
titanio-tungsteno o nquel-cromo (nicrom, que es quizs la aleacin ms utilizada por ser
la menos costosa).
Los fusibles se programan mediante fusin trmica utilizando pulsos de intensidad
relativamente alta, con fuerte pendiente dI/dt para generar tensiones puntuales apreciables
(por efecto inductivo); de esta forma el efecto en potencia V.I de los pulsos de intensidad
es considerable. Se emplean tensiones tpicas de 10,5 V, aplicadas en pulsos repetitivos de
anchura entre 10 y 50 s, dando lugar a intensidades de 0,1 - 0,5 A con tiempos de subida
del orden de 100 ns.
Los fusibles se utilizan principalmente en tecnologas bipolares, en dispositivos
matriciales (PAL, PLA, PROM) de alta velocidad.
9. Di versi dad de conf i guraci ones CMOS 205
Transistores MOS de doble puerta
Los transistores de doble puerta son de tipo NMOS, con una puerta interior flotante,
aislada elctricamente y una segunda puerta, por encima de la anterior, que acta como
entrada. La puerta interior es capaz de almacenar carga elctrica y mantenerla
indefinidamente; si la carga de dicha puerta es negativa (electrones), aumenta la tensin
umbral del transistor hasta llegar a situarse por encima de la tensin de alimentacin: la
tensin umbral VTO pasa del intervalo 12 V a ser superior a 8 V, por lo que el transistor
nunca llega a conducir.
sustrato P
difusin
puerta aislada
puerta
fuente puerta drenaje
xido de silicio
Transistor NMOS
de doble puerta
La programacin se produce por inyeccin de carga sobre la puerta aislada:
- la puerta interior queda cargada negativamente y se opone al efecto que la tensin de
entrada en la otra puerta tiene para la creacin del canal, lo cual se traduce en una
fuerte elevacin de la tensin umbral
- el transistor en esta situacin no conduce nunca ya que su tensin umbral ha pasado a
ser superior a la tensin de alimentacin y por tanto al valor de tensin que recibe en
su entrada exterior para el valor booleano 1
- el resultado prctico es la desconexin efectiva del transistor
- el buen aislamiento que realiza el xido de silicio permite mantener durante centenares
de aos la carga electrosttica de la puerta interior.
Ahora bien, existen mtodos para eliminar la carga almacenada en la puerta aislada
y, de ese modo, borrar la programacin, es decir, volver a conectar el transistor. Por
eso, los transistores MOS de doble puerta son reprogramables: su programacin puede ser
anulada (borrada) y, luego, pueden volverse a programar.
EPROM: borrado por l uz ul t ravi ol et a
Este primer tipo de transistores MOS de doble puerta se programa a partir de una
fuerte corriente de canal y de una tensin relativamente alta en la puerta externa; algunos
de los electrones que circulan por el canal, acelerados, son capaces de saltar a la puerta
aislada, a travs de la fina capa de xido que la separa.
La programacin (la acumulacin de carga en la puerta aislada) requiere tensiones
relativamente altas (~12 V) en drenaje (para provocar una corriente alta a travs del canal)
y en puerta (para atraer a los electrones).
206 El ect rni ca Di gi t al
El borrado se efecta mediante la exposicin a luz ultravioleta; sta proporciona a
los electrones atrapados en la puerta aislada energa suficiente para volver al substrato; se
utilizan lmparas de luz ultravioleta de longitudes de onda del orden de 2.537 durante
unos 15 20 minutos.
Este tipo de transistores es designado con las siglas EPROM (erasable programable
ROM: ROM programable y borrable) debido a que su primera utilizacin fue en los
bloques de tipo ROM programables; quizs una denominacin ms adecuada sera la de
UVMOS (transistores MOS borrables por luz ultravioleta).
EEPROM: borrado por t ensi n el ct ri ca
La reduccin del espesor del xido de silicio que separa la puerta interior del
substrato junto con un pequeo solapamiento de las dos puertas con el drenaje ha
permitido hacer reversible el proceso de almacenamiento de carga: la puerta aislada se
carga y se descarga desde el drenaje por atraccin (tensin de puerta positiva) o repulsin
de electrones (tensin negativa).
fuente drenaje
puerta aislada
fuente drenaje
puerta
EPROM
E PROM
2
solapamiento
puertas - drenaje
puerta
Un pulso de tensin positiva (relativamente alta) entre la puerta exterior y el drenaje
produce almacenamiento de carga (atrae electrones del drenaje a la puerta aislada) y un
pulso anlogo pero negativo elimina la carga almacenada (repele los electrones y los
devuelve al drenaje).
Este segundo tipo de transistores MOS de doble puerta da lugar a dispositivos
programables y borrables elctricamente; en ambos casos, el tiempo necesario es del
orden de varios milisegundos y se requieren adecuadas tensiones positiva y negativa,
generalmente 12 V.
El borrado es individual (se efecta sobre un solo transistor), pero presenta un
problema de sobreborrado: cuando la tensin de la puerta exterior es negativa, adems
de eliminar los electrones de la puerta aislada, dicha puerta suele cargarse positivamente y
dicha carga genera un canal permanente que pone en conduccin al transistor. Por ello, es
necesario utilizar dos transistores en serie: el de doble puerta que sirve para conectar y
desconectar al segundo que es un transistor NMOS normal.
Celda E PROM
2
programacin
transistor
operativo
9. Di versi dad de conf i guraci ones CMOS 207
Este tipo de celda con dos transistores es nombrado con las siglas EEPROM o
E
2
PROM (electrical erasable programmable ROM: ROM programable y borrable
elctricamente) y su programacin (en ambos sentidos: desconexin o conexin del
transistor) puede realizarse en el propio sistema digital.
FLASH: borrado gl obal
Un tercer tipo de transistores MOS de doble puerta proviene de agrupar los dos
transistores de la celda E
2
PROM en uno solo: las dos puertas se solapan con la fuente y
la puerta aislada slo ocupa la mitad de la longitud del canal. De esta forma es como si
hubiera dos semitransistores unidos: un transistor de doble puerta, que puede cargarse y
descargarse desde la fuente, seguido de un transistor normal de puerta nica (conectada
con la puerta exterior del anterior).
fuente drenaje
puerta
FLASH
solapamiento
puertas - fuente
circuito equivalente
El proceso de carga de la puerta aislada es del tipo 1 EPROM, con una intensidad
alta de canal que deriva electrones hacia dicha puerta (tensiones de puerta exterior y de
drenaje relativamente altas, ~12 V). La descarga (el borrado) se produce segn el tipo 2
EEPROM, por pulsos de tensin positiva sobre la fuente, la cual atrae a los electrones de
la puerta aislada. En este caso no hay riesgo de sobreborrado; aunque la puerta aislada
se cargue positivamente, no puede poner en conduccin al transistor, ya que slo afecta a
la mitad del mismo (queda en todo caso otra mitad de transistor, cuyo canal solamente
puede ser creado por la tensin sobre la puerta exterior).
Habida cuenta de que la fuente es un nudo comn a todos los transistores NMOS
(terminal de tierra de las puertas Nor), el borrado no puede realizarse individualmente
(como en el caso EEPROM) sino que afecta a todos los transistores del bloque. Este tipo
de borrado global y relativamente rpido en comparacin con el borrado por luz
ultravioleta ha motivado la utilizacin del calificativo FLASH para designar este tercer
tipo de transistores MOS de doble puerta.
En buena medida, la tecnologa FLASH incorpora las ventajas de las dos anteriores:
requiere un solo transistor (y no dos como la EEPROM) y el borrado es por tensin
elctrica. Adems, por ser una tecnologa muy reciente, sus transistores son de
dimensiones muy reducidas (sto permite una densidad de integracin muy alta), sus
tiempos de programacin son bajos (~10 s) y el borrado es muy sencillo (un simple
pulso positivo sobre el terminal de fuente, comn a los transistores NMOS) y completo
(se borra todo el bloque a la vez); el tiempo necesario para el borrado es del orden de 1
segundo.
208 El ect rni ca Di gi t al
Una puerta "o-negada" (Nor) seudoNMOS con transistores de doble puerta presenta
la siguiente configuracin:
Vcc
Al programar uno de dichos transistores, por acumulacin de carga negativa en su
puerta interior, dicho transistor pasa a tener una tensin umbral muy alta que equivale a
eliminarlo (desconectarlo) de la puerta.
La figura siguiente representa un mdulo PAL de 6 entradas y 8 trminos producto:
Vcc
Vcc
Vcc
Vcc
Vcc
Vcc
Vcc
Vcc
Vcc
Y
A F E D C B
En esta figura, las puertas Nor de los 8 trminos producto estn representadas en
horizontal y contienen 12 transistores EPROM (correspondientes a las 6 entradas y sus
negadas), mientras que la puerta Nor de salida est representada en vertical con 8
transistores NMOS (correspondientes a la suma de los 8 trminos producto).
Un bloque PAL que contenga 10 de estos mdulos de 6 entradas con 8 trminos
producto por mdulo tendr el siguiente nmero de transistores:
- cada mdulo: 8 x 6 x 2 = 96 transistores EPROM + 8 NMOS + 9 PMOS
- los inversores de las entradas: 6 transistores NMOS + 6 PMOS
- los inversores de las salidas: 10 transistores NMOS + 10 PMOS
en total: 960 transistores programables + 96 NMOS + 106 PMOS.
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
10 FAMILIAS LGICAS INTEGRADAS
10.1. Panorama general de las familias lgicas integradas
10.2. Caractersticas a tener en cuenta en una familia lgica
10.3. El ruido en los sistemas digitales
El proceso de miniaturizacin de la electrnica, iniciado en la dcada de los 50 con la
utilizacin del transistor, continu con un segundo salto cualitativo en la dcada siguiente
(aos 60) mediante la integracin de subcircuitos completos en un mismo substrato de
silicio (chip): subcircuitos correspondientes a mdulos digitales tales como puertas
booleanas, biestables o bloques combinacionales o secuenciales.
Los circuitos digitales son sumamente apropiados para su insercin en circuitos
integrados: de un lado, la ausencia de autoinducciones y el poder prescindir, asimismo, de
condensadores reduce los elementos a integrar a transistores y resistencias y a las
conexiones de estos entre s; de otro, la propia modularidad de los sistemas digitales
precisa de un nmero reducido de tipos de puertas lgicas, e incluso, basta con un solo tipo
de ellas (puertas Nand o Nor).
Por ello, los circuitos integrados invadieron muy pronto el campo digital; en unos pocos
aos result anacrnico y antieconmico construir las puertas booleanas con componentes
discretos, una vez que se dispona de una gran variedad de puertas lgicas y de una
amplia serie de funciones de gran complejidad construidas dentro de un circuito integrado.
El presente captulo repasa la evolucin de las diversas familias lgicas integradas. En
primer lugar, las puertas bipolares que condujeron a la gran familia TTL (cuya amplia
difusin consolid la lgica integrada); luego las tecnologas MOS, hasta llegar a la
predominante HCMOS; la mezcla BiCMOS (bipolar-CMOS) que resulta muy
apropiada para circuitos interbs (en medio de los buses); y la derivacin actual hacia
series de bajo voltaje (pasando de la alimentacin habitual de 5 V a slo 3 V).
En todo caso, para elegir y utilizar correcta y eficazmente una familia lgica (y,
dentro de ella, una serie especfica) es preciso tener en cuenta sus caractersticas
funcionales. An ms, es requisito previo para ello comprender el significado conceptual y
las implicaciones prcticas de tales caractersticas y ser capaz de localizar y hacer una
lectura efectiva de las mismas en los catlogos que suministran los fabricantes de
circuitos integrados.
Entre las diversas cuestiones a las que prestar atencin aparece el ruido
electromagntico como un compaero no deseado que puede perturbar el correcto
funcionamiento de un circuito digital y que requiere una actitud vigilante y un importante
esfuerzo de autoproteccin en el proceso de diseo y puesta a punto del circuito. Pero, a
la vez, la produccin de ruido electromagntico por el propio circuito obliga a un
esfuerzo complementario de reduccin de la emisin de perturbaciones para cumplir con las
normativas de compatibilidad electromagntica.
210 El ect rni ca Di gi t al
10. 1. Panorama general de l as fami l i as l gi cas i nt egradas
10.1.1. Primeras familias lgicas: C. I. con transistores bipolares
Las primeras puertas lgicas integradas eran mera copia directa de las puertas
"o-negada" (Nor) con componentes discretos, mediante la conexin en paralelo de varios
transistores bipolares NPN en emisor comn; tales puertas dieron lugar a la primera
familia lgica: RTL (lgica de transistores y resistencias).
+3v.
a
b
a b
450 450
640
Puerta Nor RTL
Pronto se mejoraron las caractersticas de estas puertas integradas, en cuanto a
velocidad y a consumo, combinando una puerta "y" de diodos con un transistor inversor
en emisor comn; as se configur la puerta "y-negada" (Nand) base de la familia DTL
(lgica de transistores y diodos) que fue la primera que lleg a alcanzar una difusin
apreciable.
a
b
a
b
1K6
2K2
2K
5K
Puerta Nand DTL
+5V
a b
*
a b
*
A partir de este esquema (puerta "y" + inversor), aprovechando en mayor
profundidad las posibilidades que ofrece la integracin sobre un substrato nico, se
plante una segunda mejora en velocidad y en consumo, aadiendo una etapa de salida
amplificadora de intensidad (dos transistores en push-pull) y substituyendo los diodos por
un transistor multiemisor.
10. Fami l i as l gi cas i nt egradas 211
El resultado fue la gran familia lgica TTL (lgica de transistores con transistores).
Vcc
+ 5V
T2
T1
T
1K
130
1K6 4K
Puerta Nand TTL
b
a
b
a
a b
*
a b
*
La etapa de salida de dos transistores NPN (totem pole: palo de ttem) aumenta la
intensidad suministrable y disminuye la resistencia de salida; el transistor multiemisor
mejora considerablemente la conmutacin de la puerta (en una primera aproximacin, su
comportamiento puede ser analizado en trminos de diodos:
).
La clave del funcionamiento de la puerta TTL es el sentido en que circula la
intensidad que la base del transistor multiemisor recibe desde la resistencia de 4K:
- si dicha corriente va hacia fuera, es decir, si alguna de las entradas est conectada a
0, el transistor T se encontrar en corte y el transistor T1, en colector comn, transmite
un 1 a la salida;
- cuando todas las entradas se encuentran a 1 dicha intensidad circula hacia dentro,
hacia la base del transistor T, que se satura y lleva tambin a saturacin al transistor
T2, que pone la salida a 0. [Un 0 en una entrada supone una intensidad hacia fuera,
de forma que una entrada TTL al aire equivale a un 1, salvo efectos de ruido.]
La puertas TTL se alimentan a 5 V; su tensin de conmutacin se sita en el entorno
de 1,2 V, de manera que un 0 en la entrada ha de ser menor de 1 V
(ViLmx = 1 V) y, en cambio, una tensin superior a 1,5 V es entendida como un 1
(ViHmn = 1,5 V); la tensin de salida para el 0 es 0 V, pero la correspondiente al 1 es de
solamente 4 V. Los tiempos de propagacin de la serie TTL estndar son del orden de
10 ns y el consumo promedio es de unos 2 mA (10 mW).
La familia TTL proporcion la base del gran desarrollo que tuvieron los sistemas
digitales durante la dcada de los 70; su amplia difusin y utilizacin favoreci la
aparicin de diversas series derivadas de la mejora de caractersticas concretas, una de las
cuales, la serie LS ha sustituido por completo a la serie estndar inicial y es la que se ha
seguido utilizando a lo largo de la dcada de los 80.
212 El ect rni ca Di gi t al
La serie 74LS (low power Schottky) mejora en gran medida a la serie estndar en
cuanto a consumo (0,4 mA), manteniendo la velocidad de trabajo en valores anlogos e
incluso, algo superiores. La disminucin del consumo se deriva del empleo de resistencias
de mayor valor, lo cual acarrea un aumento de las constantes de tiempo asociadas; este
efecto queda compensado por la inclusin de un diodo Schottky entre base y colector de
los transistores que impide su saturacin (desva la corriente de base hacia el colector
antes de entrar en una saturacin profunda) y, con ello, aumenta su velocidad de
conmutacin.
a b
*
Transistor Schottky
===>
110
5V
24K
7K6
5K
2K8
3K5
Serie LS - TTL
a
b
Posteriores series avanzadas con el mismo esquema circuital han aprovechado la
reduccin de dimensiones de los transistores y la correspondiente disminucin de sus
capacidades parsitas para conseguir tiempos de propagacin inferiores: la serie
74ALS (advanced LS) presenta tiempos por debajo de 4 ns, mientras que las series
74F (fast-TTL) y 74AS (advanced Schottky) ofrecen tiempos de propagacin del orden de
2,5 ns y 1,5 ns, respectivamente, a costa de un mayor consumo (por utilizar resistencias de
menor valor).
RTL DTL TTL LS-TTL ALS-TTL AS-TTL
Protohistoria
74 74LS 74ALS 74AS, 74F
supervivientes interbs alta velocidad
Esta lnea de evolucin de las puertas con transistores bipolares constituye la edad
antigua de los circuitos integrados digitales; actualmente, apenas se utilizan las familias
bipolares, salvo en determinadas aplicaciones especficas, en particular, para sistemas de
muy alta velocidad.
10. Fami l i as l gi cas i nt egradas 213
La serie 74LS sigue siendo til para recambio y mantenimiento de los numerosos
sistemas digitales que han sido construidos con ella (o con la serie estndar 74), la serie
74ALS se emplea en circuitos interbs (aplicacin que consideraremos un poco ms
adelante) y la serie 74F resulta adecuada para diseos de muy alta velocidad de trabajo
(frecuencias superiores a los 100 MHz).
[El apndice A3 describe las puertas con transistores bipolares y el funcionamiento
en detalle de la puerta bsica TTL.]
10.1.2. Desarrollo de las tecnologas MOS: familia CMOS
La integracin de transistores MOS present inicialmente grandes dificultades,
derivadas de ser un efecto superficial que es afectado por cualquier impureza o
dislocacin en la superficie del cristal de silicio; fue preciso desarrollar tcnicas de muy
alta limpieza ambiental que no estuvieron disponibles hasta mediados de los aos 70. Sin
embargo, una vez que se dispuso de tales tcnicas, las extraordinarias ventajas de los
transistores MOS (referidas a autoaislamiento, autoalineamiento, tamao y consumo)
determinaron un rpido desarrollo y difusin de los circuitos integrados digitales MOS.
En una primera fase result ms sencillo integrar transistores MOS de canal P, pero
pronto fueron desplazados por los transistores NMOS cuya velocidad de conmutacin es
apreciablemente mayor (debido a la mayor movilidad de los electrones respecto de los
huecos).
La utilizacin de transistores MOS como resistencias de polarizacin permite
configurar puertas lgicas utilizando nicamente transistores y reduce considerablemente
el rea de integracin, al prescindir de resistencias integradas de valores relativamente
altos. De esta forma, las puertas MOS suponen un nuevo avance cualitativo en la
miniaturizacin de la electrnica digital, reduccin que afecta no solamente al tamao y a
la densidad de integracin, sino tambin, y en forma an ms significativa, al consumo.
La figura siguiente muestra la evolucin de las puertas NMOS en relacin con el
transistor que acta como resistencia de polarizacin:
V>Vcc
Vcc Vcc Vcc
Vi
Vo
Vi
Vo
Vi
Vo
En los tres inversores de la figura el transistor superior se encuentra siempre en
conduccin y equivale a una resistencia de polarizacin.
214 El ect rni ca Di gi t al
Para que dicho transistor superior conduzca se requiere una tensin entre puerta y
fuente igual o superior a su tensin umbral: por ello, inicialmente (primer inversor) fueron
necesarias dos tensiones de alimentacin (V' > VCC + VTO); luego (segundo inversor) se
utiliz una sola tensin de alimentacin pero la tensin de salida para el 1 quedaba
reducida a VCC - VTO.
Actualmente las tecnologas NMOS emplean como polarizacin un transistor MOS
de empobrecimiento, en cuyo proceso de integracin se crea un canal mediante
implantacin inica, de forma que conduce incluso en ausencia de tensin entre puerta y
fuente; su tensin umbral es negativa VTO < 0, de modo que para cortar la conduccin se
requiere una tensin de puerta an ms negativa que destruya el canal.
El anlisis circuital de los tres inversores es anlogo:
- para V
i
< VTO el transistor inferior se encuentra en corte y el superior comunica a la
salida la tensin VCC: Vo = VCC = 1 (si bien en el segundo caso se produce un
desplazamiento de dicha tensin: Vo = VCC - VTO );
- para Vi >> VTO el transistor inferior conduce, pero tambin lo hace el transistor
superior: es preciso establecer una relacin geomtrica entre ambos para que el
transistor inferior presente una resistencia mucho menor que el superior y la tensin
de salida sea muy pequea: Vo << 1 V (con lo cual Vo 0).
Habida cuenta de que la intensidad que conduce un transistor MOS es directamente
proporcional a su anchura W e inversamente proporcional a su longitud L, para asegurar
que, cuando conducen ambos transistores, el inferior presente una resistencia mucho
menor que la del transistor superior se requiere que:
[W/L]inferior >> [W/L]superior.
Esta desigualdad expresa una relacin entre las geometras de los dos transistores que ha
de mantenerse en el diseo y posterior integracin de este tipo de puertas NMOS.
La tecnologa NMOS actual utiliza puertas formadas por un plano de transistores
activos NMOS y un transistor MOS de empobrecimiento como resistencia de
polarizacin; aprovecha plenamente la tensin de alimentacin, pues VoH = V
CC
y
VoL 0 V, y su consumo es muy reducido, ya que Ri ~ y la resistencia del transistor
de polarizacin se hace adecuadamente alta. Esta tecnologa resulta muy apropiada para la
integracin de muy alta densidad (VLSI) y sigue utilizndose en grandes bloques digitales
(microprocesadores, memorias, etc.) y en los circuitos integrados programables de tipo
matricial (PROM, PAL, PLA, PLS).
Ahora bien (como ya hemos visto en el captulo 8, dedicado a puertas CMOS), la
utilizacin conjunta de transistores de canal N y de canal P (NMOS y PMOS) permite que
el consumo esttico de las puertas sea nulo; ello dio lugar a la lgica CMOS (lgica con
transistores MOS complementarios).
10. Fami l i as l gi cas i nt egradas 215
La primera serie CMOS adopt el indicativo 40 y presentaba fuertes limitaciones en
cuanto a velocidad e inmunidad frente al ruido. Esta serie admite un amplio intervalo de
tensiones, desde 3 a 18 voltios, y rizados del 10 % (debido a su reducido consumo), lo
cual elimina la necesidad de un buen filtrado y estabilidad en la fuente de alimentacin; su
velocidad depende fuertemente de la tensin de alimentacin, con tiempos de propagacin
de 200 ns para VCC = 3 V que pasan a ser de 100 ns para VCC = 5 V y se reducen a 20 ns
cuando VCC = 15 V.
La gran difusin que haba tenido la familia TTL, con anterioridad a la
disponibilidad de integrados CMOS, haba habituado a quienes trabajaban en el mbito de
la electrnica digital a la utilizacin de los circuitos integrados de dicha familia y a
conocer los nmeros y los terminales de tales circuitos; por ello, atendiendo a la demanda
de los usuarios, se desarroll la serie 74C, compatible en cuanto a funciones y terminales
de los circuitos integrados del mismo nmero con la familia TTL (por ello adopta el
mismo indicativo numrico 74).
Las caractersticas de la primera serie 74C son algo mejores que las de la serie inicial
40; pero, muy pronto, el desarrollo continuado de las tecnologas de integracin MOS
hizo posible la utilizacin de transistores de dimensiones cada vez ms pequeas y,
consiguientemente, ms rpidos.
La serie 74HC de alta velocidad ofrece la misma velocidad de trabajo que la serie
LS-TTL (tiempos de propagacin inferiores a 10 ns) y anloga inmunidad frente al ruido,
con un consumo esttico nulo; por ello, ha desplazado por completo a la familia TTL y es
actualmente la ms utilizada.
Para facilitar la utilizacin conjunta de circuitos integrados TTL y CMOS se
introdujo la serie 74HCT, compatible con los niveles de tensin y de intensidad de la
familia TTL, que permite la conexin directa entre ambas familias.
Recientemente, se ha presentado una serie avanzada 74AHC, con tiempos de
propagacin inferiores a 5 ns y una significativa reduccin del ruido que las puertas
producen en su conmutacin. Existe tambin una serie de alta velocidad 74AC, con
tiempos de propagacin del orden de 3 ns, pero con problemas de ruido en la
conmutacin debido a la gran verticalidad de sus flancos.
pMOS evolucin
nMOS
NMOS CMOS HCMOS
Tecnologas MOS
I / I
I / I
o
o
i
i
10. Fami l i as l gi cas i nt egradas 221
El anterior diagrama salida/entrada expresa, en forma conjunta y resumida, toda la
informacin de inters sobre las tensiones e intensidades de los dos valores booleanos:
- tensin de salida correspondiente para una determinada intensidad de salida
- intervalo de tensin que la entrada acepta como tal valor booleano
- intensidad que requiere la entrada.
En dicho diagrama queda reflejado, asimismo, el margen de tensin para cada uno de
los valores booleanos: V(0) = ViLmx
- VoL
y V(1) = VoH - ViHmn y la relacin
entre las intensidades de salida y de entrada Io / Ii en cada uno de ellos.
El margen de tensin constituye un intervalo de seguridad, de forma que
modificaciones de la tensin de entrada que se mantengan dentro del mismo no afectan a
la tensin de salida, o sea, al valor booleano que proporciona la puerta. El cociente entre
intensidades representa el nmero de entradas que una salida puede soportar en situacin
esttica (en trminos de intensidad suministrable a las mismas).
Velocidad de trabajo
Es obvio que la velocidad es un dato fundamental en sistemas que han de realizar
miles de operaciones en tiempos mnimos; la velocidad de trabajo determina la capacidad
operativa del sistema. Ms an, habida cuenta de que las operaciones digitales son en gran
medida repetitivas, en muchas ocasiones resultan preferibles arquitecturas con unos pocos
mdulos que realizan grandes series de operaciones sucesivas, en lugar de utilizar un
mayor nmero de mdulos en paralelo. De esta forma, si la velocidad de trabajo lo
permite, cabe reducir el circuito operativo al mnimo, con la consiguiente reduccin de
tamao y de coste econmico.
Al llegar una seal a la entrada de una puerta lgica, la respuesta a dicha seal no
aparece instantneamente en la salida, sino que existe un cierto tiempo de retardo; este
tiempo es diferente segn la transicin de estado de la puerta sea de 0 a 1 o de 1 a 0:
- tPLH o tP(1): tiempo de propagacin del 1, retardo de la salida respecto de la
entrada cuando la salida cambia de 0 a 1;
- tPHL o tP(0): tiempo de propagacin del 0, retardo de la salida respecto de la
entrada cuando la salida cambia de 1 a 0.
Ambos tiempos de propagacin suelen tener valores prximos entre s, lo cual
permite utilizar su promedio como tiempo de propagacin genrico:
tP = (tPLH + tPHL) / 2.
Los tiempos de propagacin, es decir, los retrasos de la salida respecto a las
variaciones de las entradas dependen de la impedancia de carga conectada sobre la salida,
es decir, de la capacidad equivalente que presenta el conjunto de entradas conectadas a
ella.
222 El ect rni ca Di gi t al
Por ello, los tiempos de propagacin se miden en condiciones similares al
funcionamiento normal de la puerta, supuesto un nmero mximo razonable de entradas
conectadas a su salida; en el caso CMOS, sus entradas son de tipo capacitivo, del orden de
unos pocos picofaradios, de forma que los tiempos de propagacin CMOS suelen medirse
y expresarse en relacin a una carga de 50 pF.
Los valores tpicos de los tiempos de propagacin se expresan para 25C, ya que
tales tiempos dependen de la temperatura, aumentando con ella; esta dependencia se debe
a que las resistencias de paso de los transistores MOS aumentan con la temperatura, por
disminuir con ella la movilidad de sus portadores. Interesa, por ello, evitar el
funcionamiento de los circuitos digitales a temperaturas altas y, si es necesario, se les dota
de adecuados mecanismos de refrigeracin.
Al conectar dos puertas, una a la salida de la otra, el tiempo de propagacin del
conjunto es mayor que los tiempos individuales pero es inferior a la suma de ambos. Es
decir, los tiempos de propagacin no son linealmente acumulativos ya que la segunda
puerta inicia su conmutacin antes de que la primera complete la suya.
Para facilitar la suma de tiempos en puertas sucesivas, cada tiempo de propagacin
suele medirse por el retraso entre el punto medio de conmutacin (tensin Vcc/2) de la
onda de entrada y el punto medio de la conmutacin de la seal de salida.
t
pHL
t
pLH
V
i
V
o
Una estimacin aproximada de la velocidad de trabajo de un circuito digital puede
hacerse en la forma siguiente:
-
parece razonable que en una secuencia de operaciones de una puerta lgica o, lo que
es lo mismo, en una secuencia de bits, el tiempo dedicado a cada uno de ellos ha de
ser mayor que el tiempo de propagacin de la puerta;
-
si denotamos con tBIT el
tiempo mnimo para la propagacin y formacin estable de
un bit, ha de asegurarse que, al menos, tBIT > 2 tP
para permitir que cada bit se
estabilice antes de pasar al siguiente ;
-
de manera que f < 1/2 tP es una estimacin adecuada de la velocidad de trabajo en
trminos de bits por segundo.
Otra medida de la velocidad de trabajo de una familia lgica la constituye la mxima
frecuencia de reloj que admiten sus biestables sncronos fCK, que determina la mxima
velocidad de trabajo de los sistemas secuenciales y, en particular, de los contadores y de
los registros.
10. Fami l i as l gi cas i nt egradas 223
Cada una de las semiondas del reloj corresponde a la actuacin de uno de los dos
biestables bsicos que configuran un biestable sncrono (estructura master/slave), de
forma que cada semionda debe abarcar un intervalo de, al menos, 2 tBIT; el periodo del
reloj debe ser mayor que 4 tP y su frecuencia mxima ser: fCKmx
~ 1/(4 tP).
De todas formas, el problema de la velocidad mxima de un circuito digital ser
considerado con mayor detalle en el captulo 15 al estudiar el anlisis de tiempos en los
sistemas sncronos.
Consumo
En general, un sistema digital est constituido por un gran nmero de puertas
booleanas, de forma que el consumo energtico, en trminos de intensidad o de potencia,
de una puerta individual queda multiplicado por un nmero relativamente alto. Ello tiene
importancia desde dos puntos de vista, consumo de energa (y consiguiente alimentacin
del sistema) y disipacin de calor (y mecanismos para facilitarla):
- la fuente de alimentacin (que proporciona la tensin de alimentacin VCC) ha de
suministrar suficiente intensidad, de acuerdo con el consumo global del sistema
digital;
- la energa consumida por el sistema se disipa en el mismo en forma de calor que ha de
ser desalojado para evitar un aumento excesivo de la temperatura, lo cual requiere, en
ocasiones, el correspondiente sistema de refrigeracin.
Intensidad de alimentacin y disipacin de calor constituyen dos aspectos a tener en
cuenta en el diseo de sistemas digitales; la complejidad, tamao y coste de la fuente de
alimentacin y del mecanismo de refrigeracin dependen fuertemente del consumo,
aumentando drsticamente con l.
Conviene tener en cuenta que el calentamiento de un circuito digital, por efecto de la
disipacin de potencia en el mismo, puede llevar a su destruccin pero, mucho antes que
eso, afecta a los tiempos de propagacin de sus puertas lgicas que aumentan con la
temperatura. En muchas ocasiones se precisa de un adecuado sistema de refrigeracin
simplemente para asegurar la velocidad de trabajo del circuito. Por ejemplo, los
procesadores Pentium de los PCs, para alcanzar las altas velocidades de tabajo que
consiguen (varios GHz), requieren un fuerte disipador con un ventilador situados
directamente sobre el propio circuito integrado,
En cada uno de los dos estados booleanos tendremos un consumo esttico:
ICCL
= intensidad consumida cuando la salida es 0
ICCH
= intensidad consumida cuando la salida es 1
Los datos de consumo esttico que figuran en los catlogos vienen expresados en
trminos de intensidad global consumida por el circuito integrado; es decir, en el caso de
puertas lgicas el consumo no se expresa en trminos de intensidad por puerta (ya que no
puede medirse el consumo individual de una de ellas), siendo necesario dividir el dato de
catlogo por el nmero de puertas que configuran el integrado.
224 El ect rni ca Di gi t al
El consumo esttico no incluye el debido a las transiciones entre los dos estados
booleanos. Por ello, adems del consumo esttico, ha de tenerse en cuenta el consumo
dinmico, es decir, el que se produce durante las transiciones. En la familia TTL
prevalece el consumo esttico, siendo el dinmico despreciable respecto al esttico; en
cambio, en la familia CMOS el consumo esttico es nulo mientras que el dinmico es
apreciable para frecuencias por encima del MHz.
El consumo dinmico depende de la frecuencia de conmutacin de las puertas
booleanas: en cada transicin se gasta una cantidad determinada de energa utilizada en
la carga y descarga de las capacidades presentes en el circuito (la energa que se disipa al
cargar o al descargar un condensador C a una tensin V es C.V
2
/2). Para efectuar el
clculo del consumo dinmico se utiliza la capacidad equivalente de la puerta a efectos de
disipacin de potencia Cpd
(power dissipation capacitance)
P = Cpd
. (VCC)
2
. f
siendo VCC la tensin de alimentacin y f la frecuencia de conmutacin (considerada en
forma de onda cuadrada: paso de 0 a 1 y posterior paso de 1 a 0).
Por otra parte, en la evaluacin global del consumo dinmico de un sistema digital ha
de tenerse en cuenta que no todas sus puertas o biestables conmutan a la vez; aun ms, en
determinados subsistemas lo hace solamente un pequeo nmero de ellas. Por ejemplo, en
una memoria RAM, al leer o escribir sobre ella solamente se activa uno de los mltiples
registros que la forman (obviamente, tambin conmutan el decodificador que selecciona
los registros y el circuito de control de entradas/salidas).
Intervalo de temperaturas
Existe un intervalo de temperaturas para el que est garantizado el funcionamiento de
los circuitos integrados digitales: el intervalo normal de funcionamiento va de -40C a
85C para CMOS y de 0C a 70C en TTL (en ambos casos con indicativo 74).
Existen, adems, series denominadas militares para aplicaciones que requieren
mayor rango de temperaturas, de -55C a 125C; se distinguen porque su numeracin
empieza por 54 y su encapsulado es cermico.
Ha de tenerse en cuenta que las caractersticas de una puerta lgica varan
fuertemente con la temperatura; en general empeoran al aumentar la temperatura, lo cual
se refleja en reduccin de los mrgenes de ruido y de la velocidad de trabajo. El mismo
circuito desprende calor, como consecuencia de la disipacin de la energa que utiliza en
su funcionamiento, y causa una elevacin de su propia temperatura que, en ocasiones,
puede ser importante. Por ello, el diseo de un sistema digital ha de tener en cuenta el
rango de temperaturas en el que va a trabajar y, si es preciso, debe incluir un mecanismo
de refrigeracin adecuado.
Otra indicacin de temperatura que proporcionan los catlogos es el rango que
soportan los circuitos integrados para su almacenamiento, que suele ser de -65C a 150C.
10. Fami l i as l gi cas i nt egradas 225
Conectividad.
Se emplea un parmetro denominado fan-out (abanico de salida) o capacidad de
carga para expresar el nmero de entradas que pueden conectarse sobre la salida de una
puerta lgica. Este parmetro viene determinado por dos factores:
- el cociente entre las intensidades de salida y de entrada Io/Ii para cada valor booleano,
que representa el nmero mximo de entradas a las que la salida es capaz de
suministrar adecuada intensidad sin deteriorar el valor booleano que les transmite;
- el cociente entre la capacidad de carga que la salida puede soportar (con referencia a
unos tiempos de propagacin determinados) y la capacidad equivalente de las
entradas (de las puertas a conectar) CL/Ci, ya que una capacidad de carga mayor se
traducir en una disminucin de la velocidad de trabajo de la puerta (un aumento de
sus tiempos de propagacin).
En la familia TTL la limitacin relativa al fan-out viene dada por el cociente entre
intensidades Io/Ii, pero no as en las series CMOS cuya intensidad de entrada es nula y lo
que limita es la carga capacitiva que pueden soportar CL/Ci.
CL no es un parmetro caracterstico del propio circuito digital, sino la capacidad de
carga con la que ha sido medido el tiempo de propagacin; es decir, para asegurar dicho
tiempo de propagacin es preciso que la capacidad que se conecta a la salida sea menor
que CL.
A efectos del fan-out o capacidad de carga de una puerta debe tenerse en cuenta que
en el caso de bloques combinacionales, biestables, registros, etc., cada uno de los
terminales de entrada se encuentra conectado a las entradas de varias puertas lgicas, de
forma que su conexin sobre la salida de otra puerta o bloque supone una carga
equivalente a varias entradas; es decir, cada una de las entradas de un bloque digital ha de
contabilizarse en trminos de su carga equivalente o sea del nmero de entradas
individuales o bsicas a las que se encuentra conectada.
Asimismo se utiliza el trmino fan-in (abanico de entrada) o disponibilidad de
entradas para indicar el nmero de entradas que posee una puerta lgica. La limitacin en
cuanto al nmero mximo de entradas con que puede construirse una puerta depende de la
estructura electrnica de la misma: en el caso CMOS el nmero de entradas no debe ser
superior a 6 u 8 debido al hecho de que la conexin de mltiples transistores MOS en
serie empeora en gran medida las caractersticas de velocidad e inmunidad frente al ruido
de las puertas.
Conviene recordar, en relacin con las entradas de los circuitos integrados MOS, que
requieren una manipulacin cuidadosa, debido a la posibilidad de perforacin de la
delgadsima capa de xido que conforma la puerta de los transistores MOS; tal
perforacin puede producirse por la propia carga esttica acumulada en el cuerpo de quien
los maneja. En los catlogos, los fabricantes indican una serie de normas para una
manipulacin que evite las cargas estticas (tanto el personal como los soportes e
instrumentos deben estar adecuadamente conectados a tierra); asimismo, los circuitos
integrados MOS deben conservarse en fundas antiestticas y en ningn caso deben
agarrarse por los terminales metlicos (pines) sino por la carcasa de plstico.
226 El ect rni ca Di gi t al
Interesa conocer la disponibilidad de diversas opciones de entradas y de salidas:
- Entradas con histresis (entradas tipo Schmitt), que presentan dos tensiones de
conmutacin o comparacin Va y Vb y son tiles para evitar rebotes (y para la
construccin de osciladores astables). En la familia CMOS (alimentada a 5 V) las
tensiones Va y Vb de las entradas de tipo Schmitt suelen ser simtricas, 2 y 3 V
aproximadamente, mientras que en la familia TTL suelen ser mas bajas, 0,8 y 1,6 V.
- Salidas con posibilidad de desconexin (salidas triestado) que permiten conectar
mltiples salidas en paralelo, actuando en cada momento una de ellas y
mantenindose en alta impedancia las dems.
- En ocasiones, se incluye en la salida una resistencia de valor alto conectada a 0 V
(resistencia de pulldown) o a VCC (pullup), para asegurar que en la inicializacin o en
estado de alta impedancia la salida adopte valor 0 o valor 1, respectivamente.
- Salidas de colector o drenador abierto que prescinden de los transistores superiores
(los que transmiten el 1). Son puertas incompletas que requieren una resistencia de
polarizacin RP conectada a la alimentacin VCC y precisamente por eso resultan
tiles para efectuar acoplos con otras familias lgicas o con otros componentes
electrnicos que empleen niveles de tensin diferentes y para la conexin de varias
salidas (operacin "y" cableada). Existen adaptadores de este tipo (buffer) que
admiten tensiones o intensidades relativamente altas (hasta 15 30 V de tensin y
unos 50 mA de intensidad).
Coste
El coste es un parmetro esencial en cualquier diseo de ingeniera y suele entrar en
competencia con otras especificaciones del mismo, como pueden ser la velocidad de
trabajo, el conjunto de prestaciones, etc.,... En productos de consumo, de fabricacin en
serie, el coste suele ser uno de los parmetros ms importantes del diseo; en cambio, en
la realizacin de equipos de produccin o de prototipos o pequeas series especializadas
el coste suele quedar en un segundo orden de exigencias, precedido por las prestaciones
que se requieren.
10. Fami l i as l gi cas i nt egradas 227
Comentario en relacin con la forma actual de construir los sistemas digitales
Desde los aos 70 las diversas familias lgicas integradas han permitido la
disponibilidad de amplios catlogos de circuitos integrados, relativos a puertas lgicas,
biestables, bloques combinacionales y bloques secuenciales. Con estos elementos
constructivos (con estas piezas o ladrillos digitales) el diseo de un sistema digital
consiste en la adecuada seleccin y conexin de circuitos integrados estndar; el resultado
es una tarjeta formada por un conjunto de circuitos integrados sobre una placa de
circuito impreso, cuyas pistas efectan las conexiones entre ellos.
Los circuitos integrados estndar siguen siendo tiles para probar pequeos diseos,
para simular el comportamiento de subcircuitos reducidos o, tambin, para prcticas de
laboratorio en el proceso de aprendizaje (para entrar en contacto con las puertas y los
bloques digitales y con las caractersticas de la tecnologa).
Pero la forma de proceder basada en seleccionar y conectar circuitos integrados
estndar ha pasado a la historia. Hoy da, cualquier diseo digital se construye dentro
de un nico circuito integrado:
- para la realizacin de prototipos o de pequeas series se dispone de circuitos
integrados programables para encajar sobre ellos, por programacin, el diseo
especfico que interesa (la variedad de los dispositivos programables, en cuanto a
tamao y capacidad de acoger diseos complejos, es enorme);
- cuando el nmero de ejemplares a utilizar es alto, es preferible fabricar el propio
diseo, dando lugar a un ASIC (circuito integrado para una aplicacin especfica).
Por ello, cada vez se utilizan menos los circuitos integrados estndar y, con ello, se
desdibuja la idea de Familia lgica integrada; lo que importa, en cuanto al diseo y al
producto final, es:
- elegir un circuito integrado programable con capacidad y velocidad suficientes para
nuestro diseo y conocer en profundidad las caractersticas de tal circuito integrado;
- o bien, seleccionar un fabricante y, dentro de su oferta, un tipo de ASIC adecuado
para nuestro diseo y conocer, igualmente, las caractersticas de tales ASICs.
En todo caso, los aspectos funcionales a tener en cuenta son los descritos en este
apartado y, por lo general, tanto los dispositivos programables como los ASICs
pertenecen a la gran familia lgica CMOS, cuyas caractersticas hemos analizado en
detalle en los tres ltimos captulos.
La tecnologa CMOS, con sus diversas variantes y continuas mejoras (en especial,
en lo que se refiere a tamao de los transistores y, con ello, a la densidad de integracin y
a la velocidad de trabajo) ha sido durante la ltima dcada, y lo seguir siendo en la
presente y en la prxima, la ms adecuada para la integracin de circuitos digitales
(incluyendo los programables).
228 El ect rni ca Di gi t al
10. 3. El rui do en l os si st emas di gi t al es
En el entorno fsico de los sistemas digitales se encuentran siempre presentes seales
de tipo electromagntico que inciden sobre ellos, bien procedentes del medio ambiental en
el que se encuentran (motores, rels, transformadores, radiofrecuencias, emisiones de los
cables, perturbaciones de la red, etc.,), bien producidas por los propios sistemas
digitales (variaciones de consumo que generan parsitos sobre la alimentacin,
oscilaciones propias de los circuitos, acoplo entre seales, radiacin de las pistas y cables
de interconexin, etc.,).
Todas estas seales reciben el nombre de ruido y son siempre indeseables para un
sistema electrnico por cuanto pueden afectar a su correcto funcionamiento; en el caso de
un sistema digital pueden modificar puntualmente los valores booleanos presentes en el
mismo por desplazamiento de las tensiones en los nudos del circuito.
El problema del ruido electromagntico es mayor en las plantas industriales, en las
que existe un gran nmero de mquinas, motores y sistemas elctricos de tipo diverso,
cuyo funcionamiento genera ondas electromagnticas en una amplia gama de frecuencias
que se transmiten, no solamente por el aire, sino tambin por todo tipo de cables o
conductores y, en particular, a travs de la red de tensin elctrica. Asimismo, la propia
red puede encontrarse distorsionada por las fuertes variaciones de consumo que suelen
producirse, principalmente, por la conmutacin sobre ella de elementos de potencia.
En un circuito electrnico las seales parsitas debidas al ruido se hacen presentes en
trminos de tensin transmitida a travs de las interconexiones del sistema; pero, tambin,
en trminos de potencia que incide como onda electromagntica desde el exterior. En
general, el ruido que genera el propio sistema digital se transmite por el mismo en forma
de seal de tensin, principalmente por las lneas de alimentacin
(VCC y 0), y el ruido electromagntico ambiental se recibe como seal de potencia
radioelctrica, captada por las diversas lneas, componentes y bucles del sistema que
actan como pequeas antenas receptoras, en particular las lneas de interconexin,
incluidas las de alimentacin.
[Como complemento a este apartado, el captulo T3 trata con mayor detalle el
problema del ruido en los sistemas electrnicos.]
10.3.1. Mecanismos fsicos de generacin y captacin de ruido
Las leyes fsicas ignoran las fronteras conceptuales que el diseador impone a su
circuito y parte de la energa del mismo puede alcanzar a otros circuitos de su entorno y a
otras partes del propio circuito; adems, por causa de esas mismas leyes fsicas, los
componentes circuitales no se comportan de forma ideal (no se limitan a ser los elementos
de circuito en los que el diseador piensa) sino que presentan multitud de efectos
parsitos.
Por otra parte, los circuitos electrnicos, como circuitos elctricos que son, sern
afectados por los campos elctricos, magnticos y electromagnticos que llegan a ellos,
procedentes de otros equipos o fenmenos de naturaleza elctrica.
10. Fami l i as l gi cas i nt egradas 229
Los principales mecanismos fsicos de generacin o captacin de ruido
electromagntico son los siguientes:
- tensiones producidas por variaciones de intensidad sobre elementos autoinductivos
- actuacin de los bucles de intensidad (espiras) como receptores y como emisores
- oscilaciones debidas a la presencia de autoinducciones y capacidades parsitas
- acoplo capacitivo entre conductores prximos
- impedancia comn en las lneas de retorno de varias seales.
A continuacin, analizaremos con un poco de detalle estos fenmenos.
a) Todo conductor presenta una cierta componente inductiva y responde a las
variaciones de la intensidad que conduce con un transitorio de tensin:
V = L.dI/dt.
De esta forma las variaciones de intensidad sobres las lneas de alimentacin
producen perturbaciones que afectan a la tensin que transmiten. Lo mismo sucede con
las variaciones de consumo sobre la red de tensin elctrica, que provocan perturbaciones
que son propagadas a travs de la red.
Tambin en las lneas de seal se produce este efecto autoinductivo, pero tiene poca
importancia, debido a que, por lo general, tales lneas son muy cortas; una excepcin a
tener en cuenta puede ser la lnea que transmiten el reloj en los sistemas sncronos.
Los picos (glitches) de tensin originados dependen de la amplitud de la variacin de
intensidad y, tambin, de la velocidad de dicha variacin, de la pendiente dI/dt, de forma
que I reducidas pero muy rpidas pueden producir V apreciables; una lnea conductora
de 10 cm, cuya autoinduccin ser cercana a 0,1 H, responde a un aumento de intensidad
de 10 mA en 1 ns con una variacin de tensin de 1 V.
En la conmutacin de una puerta booleana se producen importantes dI/dt, debidas a
la carga y descarga de sus capacidades parsitas y de las capacidades de entrada de las
puertas conectadas a su salida.
Asimismo, en la conmutacin suele presentarse un fuerte pico de intensidad, debido a
que durante un muy pequeo intervalo de tiempo pueden conducir a la vez los dos
transistores de la etapa de salida de la puerta: los dos planos P y N en el caso CMOS o los
dos transistores de la configuracin totem pole en TTL. Este pico de intensidad a travs de
la malla de salida es debido a que antes de pasar a corte los transistores inferiores
comienzan a conducir los superiores o viceversa; no tiene importancia respecto al
consumo, ya que su duracin es mnima, pero s respecto a la generacin de ruido porque
su amplitud es apreciable y su pendiente muy alta.
230 El ect rni ca Di gi t al
De esta forma, la conmutacin de las puertas booleanas genera perturbaciones sobre
la tensin de alimentacin que afectan al conjunto del circuito digital. Este ruido,
producido sobre las lneas de alimentacin por las variaciones de intensidad en las
conmutaciones de las puertas, puede reducirse en gran medida utilizando condensadores
de desacoplo: pequeos condensadores de unos 10 nF conectados a los terminales de
alimentacin y situados justo al lado de cada circuito integrado.
La misin de los condensadores de desacoplo es filtrar las altas frecuencias,
suministrando directamente las variaciones bruscas de intensidad. No deben ser
condensadores electrolticos, ya que stos presentan a altas frecuencias una componente
inductiva en serie no despreciable por lo que no resultan efectivos para el filtrado de
variaciones muy rpidas.
b) En los circuitos electrnicos una seal elctrica es transmitida de un punto a otro del
circuito mediante una intensidad que, luego, requiere una lnea de retorno; es decir,
toda seal elctrica, incluida la propia tensin de alimentacin, forma un bucle de
intensidad (circula a travs de una espira cerrada).
Todo bucle o espira es un receptor de campos magnticos y electromagnticos y la
efectividad de tal recepcin es tanto mayor cuanto lo es el rea del bucle. De forma, que
los cables y pistas de conduccin de un circuito actan como antenas y como espiras
receptoras de interferencias: recogen el efecto de los campos magnticos y de las ondas
electromagnticas que llegan hasta ellos.
De ah la conveniencia de minimizar la longitud de las conexiones y el rea de los
bucles: debe prestarse gran atencin al diseo del circuito impreso, tanto en la colocacin
de los componentes como en las pistas de conexin. Los circuitos impresos no son un
mero soporte mecnico y un simple conexionado elctrico, sino que determinan la
topologa del circuito y, con ella, los acoplamientos de las perturbaciones: un buen diseo
geomtrico es fundamental para prevenirlas.
Pero, adems, en sentido inverso, cuando la intensidad es variable, los bucles generan
campos magnticos y ondas electromagnticas, es decir, cada bucle de intensidad puede
producir interferencias, que causarn perturbaciones sobre el propio circuito y sobre otros
circuitos. Tambin en lo que se refiere a la emisin de interferencias interesa en gran
medida minimizar la longitud de las lneas de conexin y el rea de los bucles.
c) Cables o pistas largas presentan una autoinduccin parsita apreciable que puede
combinarse con las capacidades parsitas del circuito y producir oscilaciones.
Normalmente, este tipo de oscilaciones se evita con condensadores de desacoplo que
filtren las alimentaciones, lo ms cerca posible de las etapas funcionales.
10. Fami l i as l gi cas i nt egradas 231
d) Dos conductores prximos (por ejemplo, dos conductores de un mismo cable plano o
dos pistas que circulan paralelas por una placa) presentan un efecto capacitivo entre
ellos, de forma que una variacin de tensin en uno de ellos es transmitida
parcialmente como transitorio al otro conductor.
sta es otra razn para reducir la longitud de las pistas o cables de conexin y
procurar que no circulen paralelas entre s; cuando lo anterior no es posible (buses o
cables planos) puede reducirse mucho el acoplo capacitivo intercalando una pista
intermedia conectada a tensin 0 (masa).
e) Toda lnea conductora presenta una impedancia (R, L) y, cuando por dicha lnea
viajan dos seales, tal impedancia es compartida por ambas (impedancia comn) y
las variaciones de tensin producidas por una de ellas afectan tambin a la otra.
La lnea de retorno suele ser utilizada, a la vez, por varias alimentaciones y/o seales,
lo cual supone la existencia de una impedancia comn, de modo que las cadas o
variaciones de tensin generadas sobre dicha impedancia afectan a las diversas etapas
conectadas a la lnea de retorno.
10.3.2. Medida de la inmunidad frente al ruido
Interesa conocer el margen disponible frente al ruido, es decir, el intervalo dentro del
cual el ruido no produce errores sobre los valores booleanos, porque los desplazamientos
de tensin que provoca quedan dentro de los intervalos asignados a tales valores.
La inmunidad frente al ruido debe considerarse tanto en trminos de tensin, como
en trminos de potencia y, especialmente, en estos ltimos: el ruido es una potencia
parsita (energa actuante por unidad de tiempo) que perturba el sistema electrnico. El
efecto de tal perturbacin depende de la resistencia sobre la que acta; sobre resistencias
bajas generar dbiles desplazamientos de tensin, mientras que sobre altas impedancias
dar lugar a fuertes modificaciones de tensin.
Se considera el efecto del ruido sobre los nudos booleanos: los valores booleanos
estn presentes en la salida de cada puerta lgica y sobre dicha salida se encuentra
conectada la entrada o las entradas de las puertas siguientes. Para cada uno de los valores
booleanos la diferencia entre la tensin de salida que corresponde a dicho valor y la
tensin lmite que la posterior entrada admite para ese mismo valor booleano expresa el
margen de tensin, V(0) y V(1):
V(1) = VoH ViHmn V(0) = ViLmx VoL.
Siempre que el efecto del ruido en tensin sea inferior a dicho margen la segunda
puerta lgica actuar correctamente pues el desplazamiento en tensin permanece dentro
del intervalo correspondiente al valor booleano.
El margen de tensin no es completamente representativo de la inmunidad frente al
ruido; interesa conocer tambin el margen de potencia (es decir, en trminos de energa
por unidad de tiempo): P = V
2
/R P = (V)
2
/R
232 El ect rni ca Di gi t al
Para calcular el margen de ruido en potencia es preciso conocer la resistencia
equivalente presente en el nudo booleano:
Ro
Vo
R
L
salida de
una puerta
entrada(s) de
la siguiente
En la conexin de una salida a una o varias entradas, la resistencia equivalente
corresponde al paralelo de la resistencia Ro de salida de la primera puerta con las de
entrada Ri de las siguientes y, en dicho paralelo, predomina la resistencia de salida Ro por
ser de valor mucho menor que las de entrada (lo cual viene exigido para que exista un
buen acoplo en tensin).
La resistencia de salida puede medirse (o calcularse a partir de los datos de catlogo)
considerando el desplazamiento en tensin que se produce en la salida cuando se fuerza
un consumo de intensidad a travs de ella: Ro = |Vo - V'o| / I, siendo Vo la tensin de
salida sin consumo de intensidad y V'o la tensin que corresponde a una intensidad I en la
salida.
Conocida la resistencia de salida de la puerta, el margen de ruido en potencia ser:
P(0) = (V(0))
2
/Ro(0) P(1) = (V(1))
2
/Ro(1).
10.3.3. Diseo para evitar la produccin y la recepcin de ruido
En el diseo de un sistema digital es importante reducir al mnimo tanto la
generacin de ruido por parte del propio sistema como la incidencia del ruido
electromagntico presente en su entorno. [Los elementos antirruido y las
consideraciones que siguen sern tratados con mayor detalle en el captulo T3 .]
Condensadores de desacoplo
La generacin de ruido por parte de los circuitos integrados digitales puede deberse,
como hemos visto, a dos factores principales: variaciones de consumo u oscilaciones.
Las variaciones de consumo, particularmente en la conmutacin de las puertas,
causan pequeas oscilaciones amortiguadas sobre las lneas de alimentacin (que
necesariamente son largas para alcanzar a todo el circuito); conviene reducir tales
oscilaciones mediante condensadores de desacoplo conectados sobre la alimentacin: un
condensador de unos 10 nF (no electroltico) al lado de cada circuito integrado.
El condensador de desacoplo de la alimentacin proporciona los picos de variacin
rpida de intensidad que se producen en las conmutaciones, evitando que tales dI/dt
acten sobre las autoinducciones parsitas de las pistas de alimentacin; adems, divide
en dos partes el bucle de alimentacin, reduciendo su rea efectiva.
10. Fami l i as l gi cas i nt egradas 233
Estos mismos condensadores sobre la alimentacin eliminan las oscilaciones de alta
frecuencia que aparecen en los circuitos electrnicos por acoplo entre capacidades y
autoinducciones parsitas (asimismo, conviene utilizar pistas de conexin cortas).
Los condensadores de desacoplo configuran un filtro LC pasa-bajo hacia el circuito
integrado que reduce las perturbaciones transmitidas a travs de las lneas de
alimentacin; el filtrado se produce en ambas direcciones, tambin respecto a las
perturbaciones del circuito integrado hacia las lneas de alimentacin.
Conviene asimismo filtrar la alimentacin en la entrada de la misma a cada placa
circuital, mediante un par de condensadores de unos 100 F y 100 nF, respectivamente (el
segundo de ellos, no electroltico); este filtrado pasa-baja acta; tambin; en ambas
direcciones: impide el paso de las perturbaciones que llegan por las lneas de alimentacin
y evita que las producidas en la placa se transmitan al resto del sistema.
Apantallamiento y separacin galvnica
Las interferencias exteriores llegan a un circuito electrnico mediante ondas
electromagnticas o a travs de lneas de entrada o salida; se trata de poner pantallas
frente a la propagacin de tales perturbaciones.
Cuando un sistema digital va a trabajar en situacin de alto ruido electromagntico
ambiental (plantas industriales con mquinas y motores potentes, etc), es preciso
apantallarlo mediante una carcasa de tipo ferromagntico que constituya una buena jaula
de Faraday y aislar galvnicamente, si es posible, sus entradas y salidas, por ejemplo
mediante acopladores optoelectrnicos.
La mejor efectividad de las carcasas se consigue mediante la utilizacin de dos
materiales: el exterior conductor (cobre) que refleja los campos electromagnticos y el
interior de tipo ferromagntico que atena fuertemente las ondas que lo atraviesan. Es
preciso, adems, minimizar las dimensiones lineales de las aberturas de la carcasa,
asegurar la continuidad elctrica de la tapa de la misma y apantallar adecuadamente los
cables de conexin que salen de la carcasa (cables coaxiales, trenzados,...).
Es importante conectar la carcasa a la masa (tensin 0 V) del circuito que contiene
para evitar acoplos capacitivos dobles entre conductores del circuito y la carcasa, que
pueden causar peligrosas realimentaciones positivas; esta conexin debe hacerse en un
solo punto, a travs de un condensador.
Los acopladores optoelectrnicos integrados estn constituidos por un diodo emisor
de radiacin y un transistor fotodetector; de esta forma separan fsicamente su entrada de
su salida y transmiten el correspondiente valor booleano a travs de una radiacin ptica.
Los optoacopladores permiten establecer una separacin galvnica en las entradas y
salidas que conectan el circuito con el exterior; esta separacin interrumpe la continuidad
elctrica y, con ella, la comunicacin de ruido a travs de ella, filtra fuertemente el ruido
(ya que el escaln energtico para atravesar un optoacoplador es alto), divide los bucles
en dos partes (reduciendo su rea efectiva) y rompe los posibles bucles que se forman al
conectar la masa de las lneas largas de entrada o salida a tierra en sus dos extremos.
234 El ect rni ca Di gi t al
Filtro de red
En relacin con la conexin a la red de tensin elctrica de los circuitos alimentados
desde ella, es necesario filtrar las perturbaciones de alta frecuencia que se transmiten a
travs de la red y, a la vez, impedir que el circuito transmita interferencias hacia la red.
Ambos propsitos se consiguen mediante un filtro de red adecuado; suelen ser filtros
de tipo LC en configuracin que realizan el filtrado de las seales de alta frecuencia en
ambos sentidos: un par de condensadores conectados a tierra a ambos lados de una
bobina, duplicando dicho filtro para cada una de las dos lneas de entrada de la red y con
ambas bobinas enrolladas sobre un toroide de ferrita de forma que los campos magnticos
debidos al consumo de intensidad se compensen y no se sature la ferrita.
Plano de masa
Una ltima consideracin, que resulta ser de suma importancia, se refiere a disponer
de una buena distribucin de la masa (nudo de tensin de referencia, 0 V); se trata de
los caminos de retorno (tanto para la alimentacin como para las seales), con el objetivo
de reducir en lo posible la longitud de las lneas de retorno, el rea de los bucles que
conforman y la impedancia compartida que presentan.
Lo ideal, a ser posible, es configurar un plano de masa, dedicando a ella toda una
capa de circuito impreso multicapa. Sobre un plano de masa los caminos de retorno de la
alimentacin y de las seales se ajustan a la condicin de recorrido mnimo en el caso de
seales de baja frecuencia o de rea mnima de bucle para seales de alta frecuencia;
ambas situaciones son las ms favorables desde el punto de vista de captacin o
generacin de ruido.
Adems, este tipo de caminos reduce tambin al mnimo la impedancia comn
compartida por varias seales: en el caso de bajas frecuencias prevalece el efecto resistivo
de tal impedancia, mientras que para frecuencias altas importa ms el aspecto inductivo.
Cuando no es posible disponer de un plano de masa, conviene distribuir dicha tensin
0V en la forma que ms se aproxime al mismo: aprovechar toda la superficie libre del
circuito impreso para generar reas de masa; utilizar pistas directas, cortas y gruesas;
conectar, en la medida de lo posible, las diversas pistas de masa en retcula;...
Cuando coexistan en una misma placa circuital partes digitales, analgicas y/o de
potencia conviene trazar por separado las lneas de masa de las mismas, de forma que los
retornos de intensidad de la parte digital no se vean afectados por los analgicos o de
potencia y viceversa.
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
A1 Apndi ce al cap t ul o 2
Si mpl i fi caci n de funci ones por el mt odo de Qui ne-McCl uskey
Sin duda, los mapas de Karnaugh constituyen un mtodo sencillo y eficaz para la
simplificacin a mano de funciones de pocas variables; es un mtodo grfico que
facilita la bsqueda visual de trminos simplificables entre s. Pero su aplicacin a
funciones de ms de 6 variables resulta muy laboriosa y desborda la capacidad de
agrupacin visual de trminos de un operador humano. En tales casos resulta
conveniente disponer de mtodos de simplificacin automtica con ayuda de computador.
Ahora bien, los mtodos grficos presentan una cierta complejidad a la hora de
traducirlos en algoritmos para ser ejecutados en computador y dicha dificultad aumenta
fuertemente con el nmero de dimensiones a tener en cuenta. En el caso de los mapas
de Karnaugh la hoja bsica de 4 variables es bidimensional y es necesario aadir una
dimensin ms (una nueva hoja del mapa) por cada nueva variable: para n variables, el
nmero de dimensiones efectivas del mapa de Karnaugh ser de n-2.
En cambio, existen algoritmos de simplificacin de actuacin lineal (comparacin
sucesiva de vectores de entrada) cuya programacin sobre computador es directa. Casi
todos ellos se basan en el mtodo de simplificacin desarrollado por W. V. Quine en
1955 y ampliado posteriormente por E. J. McCluskey.
Esquemticamente este mtodo consiste en agrupar los vectores de entrada que
activan la funcin (dan resultado 1 para ella) en clases diferenciadas por el nmero de
variables cuyo valor sea 1 y calcular todas las posibilidades de simplificacin entre
vectores de dos clases sucesivas, eligiendo aquellas que son ms eficientes.
Quizs la manera ms sencilla de comprender este mtodo de simplificacin sea su
aplicacin a un caso concreto:
Sea la funcin "ser nmero primo" para nmeros binarios de 5 dgitos edcba. Los
vectores de entrada que la activan son los siguientes:
1 = 00001 2 = 00010 3 = 00011 5 = 00101 7 = 00111
11 = 01011 13 = 01101 17 = 10001 19 = 10011
23 = 10111 29 = 11101
31 = 11111
306 El ect rni ca Di gi t al
Separados dichos vectores de entrada en clases segn el nmero de unos que
contienen y numerados sucesivamente resulta:
1 0 0 0 0 1
2 0 0 0 1 0
--------------------
3 0 0 0 1 1
4 0 0 1 0 1
5 1 0 0 0 1
--------------------
6 0 0 1 1 1
7 0 1 0 1 1
8 0 1 1 0 1
9 1 0 0 1 1
--------------------
10 1 0 1 1 1
11 1 1 1 0 1
--------------------
12 1 1 1 1 1
Primera simplificacin: cada vector se compara con todos los de la clase siguiente,
seleccionando aquellos que tienen valores 1 en la misma posicin que dicho vector y por
tanto se diferencian en una sola variable; esta variable es eliminable (a + a = 1) y se
indica con "" su ausencia en el trmino resultante:
1;3 0 0 0
1
1;4 0 0 0 1
1;5 0 0 0 1
2;3 0 0 0 1
-------------------------
3;6 0 0 1 1
3;7 0 0 1 1
3;9 0 0 1 1
4;6 0 0 1 1
4;8 0 1 0 1
5;9 1 0 0 1
-------------------------
6;10 0 1 1 1
7; ------------- (1) este trmino no es simplificable con la clase siguiente,
8;11 1 1 0 1 pero no es preciso mantenerlo
9;10 1 0 1 1 ya que ha sido recogido al simplificar la clase anterior.
-------------------------
10;12 1 1 1 1
11;12 1 1 1 1
A1. Mt odo de Qui ne-McCl uskey 307
Segunda simplificacin: se produce en forma anloga a la primera pero solamente
son simplificables aquellos vectores cuyos valores "" coinciden, difiriendo en una de las
restantes variables.
1,3; 4,6 0 0 1
1,3; 5,9 0 0 1
1,4; 3,6 0 0 1
1,5; 3,9 0 0 1
2,3; 0 0 0 1 (2) trmino no simplificable con la clase siguiente;
------------------------------- es preciso mantenerlo, ya que no ha sido
3,6; 9,10 0 1 1 recogido en los trminos anteriores.
3,7; 0 0 1 1 (2)
3,9; 6,10 0 1 1
4,6; ------------- (1) trmino simplificado con la clase anterior
4,8; 0 1 0 1 (2)
5,9; ------------- (1)
-------------------------------
6,10; ---------- (1)
8,11; 1 1 0 1 (2)
9,10; ---------- (1)
-------------------------------
10,12; 1 1 1 1 (2)
11,12; 1 1 1 1 (2)
Agrupando trminos iguales en cada una de las clases:
1,3,4,6 0 0 1 A
1,3,5,9 0 0 1 B
2,3 0 0 0 1 C
--------------------------------
3,6,9,10 0 1 1 D
3,7 0 0 1 1 E
4,8 0 1 0 1 F
--------------------------------
8,11; 1 1 0 1 G
--------------------------------
10,12; 1 1 1 1 H
11,12; 1 1 1 1 I
No es posible una nueva simplificacin de estos trminos, pues en ningn caso
coinciden las "" de vectores de dos clases sucesivas.
308 El ect rni ca Di gi t al
Tabla de cobertura: finalizado el proceso de simplificacin se construye la tabla de
cobertura de los vectores iniciales por los trminos resultantes de la simplificacin.
Trminos
vectores iniciales A B C D E F G H I
1 x x
2 x
3 x x x x x
4 x x
5 x
6 x x
7 x
8 x x
9 x x
10 x x
11 x x
12 x x
Se trata de elegir en la tabla de cobertura los trminos de forma que con el mnimo
nmero de ellos se cubran todos los vectores iniciales; para hacer esta seleccin se
comienza por los casos en que el vector inicial solamente es cubierto por uno de los
trminos resultantes y, por tanto, dicho trmino ha de ser necesariamente recogido
(como por ejemplo, para los vectores 2, 5 y 7, que requieren los trminos C, B y E,
respectivamente).
En la tabla anterior el subconjunto: A, B, C, E, G y H cubre todos los vectores
iniciales: y = A + B + C + E + G + H
y = e.d.a + d.c.a + e.d.c.b + e.c.b.a + d.c.b.a + e.c.b.a
La aplicacin del mtodo de Quine-McCluskey, hecha a mano, resulta bastante
pesada y la seleccin de trminos en el mapa de cobertura puede ser compleja, pero, en
cambio, este mtodo resulta muy apropiado para su programacin en computador; dicha
programacin viene facilitada por el hecho de que la diferencia aritmtica de los valores
decimales correspondientes a dos vectores simplificables es una potencia entera de 2.
A1. Mt odo de Qui ne-McCl uskey 309
En el caso de funciones con vectores de entrada para los que no importa
(dont care) el valor booleano de salida que se les asigne, dichos vectores son tomados
tambin inicialmente, pero se prescinde de ellos en la tabla de cobertura.
Por ejemplo, en el caso de aplicar la funcin "ser nmero primo" a las cifras
decimales, el proceso de simplificacin sera el siguiente:
cifras que son nmeros primos:
1 = 0001 2 = 0010 3 = 0011 5 = 0101 7 = 0111
vectores de entrada que no se van a presentar (pues no corresponden a cifras
decimales):
10 = 1010 11 = 1011 12 = 1100 13 = 1101 14 = 1110 15 = 1111
Estableciendo las clases segn el nmero de unos que tales vectores contienen y
numerados sucesivamente resulta:
1 0 0 0 1
2 0 0 1 0
--------------------
3 0 0 1 1
4 0 1 0 1
(5) 1 0 1 0
(6) 1 1 0 0
--------------------
7 0 1 1 1
(8) 1 0 1 1
(9) 1 1 0 1
(10) 1 1 1 0
--------------------
(11) 1 1 1 1
Se han indicado entre parntesis aquellos vectores de entrada para los cuales es
indiferente (no importa) la salida que se asigne; dichos vectores se toman slo a efectos
de simplificacin.
Primera simplificacin:
1;3 0 0 - 1 3;7 0 - 1 1 7;(11) - 1 1 1
1;4 0 0 1 3;(8) - 0 1 1 (8);(11) 1 - 1 1
2;3 0 0 1 4;7 0 1 - 1 (9);(11) 1 1 - 1
2;(5) 0 1 0 4;(9) - 1 0 1 (10);(11) 1 1 1 -
------------------------ (5);(8) 1 0 1 -
(5);(10) 1 - 1 0
(6);(9) 1 1 0 -
(6);(10) 1 1 - 0
------------------------
310 El ect rni ca Di gi t al
Segunda simplificacin:
1,3; 4,7 0
1 3,7; (8),(11) 1 1
1,4; 3,7 0 1 3,(8); 7,(11) 1 1
2,3; (5),(8) 0 1 4,7 ;(9),(11) 1 1
2,(5); 3,(8) 0 1 4,(9); 7,(11) 1 1
--------------------------------- (5),(8); (10),(11) 1 1
(5),(10); (8),(11) 1 1
(6),(9); (10),(11) 1 1
(6),(10); (9),(11) 1 1
Agrupando trminos iguales en cada una de las clases:
1,3,4,7 0
1 A
2,3,(5),(8) 0 1 B
-------------------------------------
3,7,(8),(11) 1 1 C
4,7,(9),(11) 1 1 D
(5),(8),(10),(11) 1 1
(6),(10),(9),(11) 1 1
No es posible una nueva simplificacin de estos trminos, pues en ningn caso
coinciden las "" de vectores de dos clases sucesivas. Tampoco es necesario recoger los
ltimos dos trminos porque solamente cubren a vectores de entrada para los que es
indiferente la salida que se produzca.
La tabla de cobertura para los vectores que interesan (1, 2, 3, 4, 7) es la siguiente:
Trminos
Vectores iniciales A B C D
1 x
2 x
3 x x x
4 x x
7 x x x
Necesariamente ha de tomarse el trmino B para cubrir el vector 2 y junto con el
trmino A cubren todos los vectores: y = d.a + c.b
A1. Mt odo de Qui ne-McCl uskey 311
El mtodo de Quine-McCluskey ha sido extendido de forma que no sea necesario
conocer los trminos mnimos o vectores de entrada que activan la funcin, sino que
pueda aplicarse a partir de cualquier expresin de la funcin como suma de trminos
producto, es decir, a partir de los subconjuntos de valores de las entradas que hacen la
funcin 1.
Denominemos subvector de entrada a cualquier subconjunto de valores de las
entradas que no incluya a todas ellas (por ejemplo, para 4 variables dcba: 00-1,
-101, 1-0-, -1-1, -0--,). A cada subvector de entrada le corresponde un trmino
producto, que, obviamente, no contiene todas las variables de entrada (en el ejemplo
anterior: d.c.a , c.b.a , d.b , c.a , c ,).
En general, en funciones cuyo nmero de variables no sea pequeo resulta mucho
ms sencillo conocer y anotar un conjunto completo de los subvectores de entrada que la
activan que detallar todos los vectores de entrada que dan resultado 1, ya que el nmero
de los segundos puede ser muy superior al de los primeros.
Por ejemplo, un codificador de prioridad de 7 lneas de entrada (numeradas de 1 a
7), tal que en su salida seale el nmero de la lnea superior que se encuentre activada,
estar configurado por 3 funciones C B A de 7 variables g f e d c b a, con 128 trminos
mnimos posibles. Pero los nicos subvectores de entrada que interesan son los siguientes
(se expresa al lado de cada uno el vector de salida que debe producir):
C B A
1 - - - - - - 1 1 1
0 1 - - - - - 1 1 0
0 0 1 - - - - 1 0 1
0 0 0 1 - - - 1 0 0
0 0 0 0 1 - - 0 1 1
0 0 0 0 0 1 - 0 1 0
0 0 0 0 0 0 1 0 0 1
0 0 0 0 0 0 0 0 0 0
El procedimiento de aplicacin del mtodo de Quine-McCluskey a partir de un
conjunto completo de subvectores de entrada que activan la funcin es diferente del
indicado anteriormente. En este caso es preciso comparar cada subvector con todos los
dems, para detectar aquellos casos en que un subvector es simplificable con otro o est
contenido en l (resulta cubierto por el otro subvector); adems, es preciso aplicar un
teorema de consenso entre los subvectores, cuando ello sea posible, para generar nuevos
subvectores que tambin activan la funcin y que pudieran facilitar la simplificacin.
El teorema de consenso entre subvectores puede ser enunciado en la siguiente forma:
si a. y . a son trminos producto que corresponden a subvectores de entrada que
activan la funcin y, tambin activa dicha funcin el subvector correspondiente al trmino
. (si lo hubiere, pues . puede ser nulo como resultado de incluir una variable y su
negada).
312 El ect rni ca Di gi t al
En el caso del codificador de prioridad de 7 lneas de entrada la primera de sus tres
funciones booleanas C da valor 1 para los cuatro primeros subvectores, que son los
nicos que activan dicha funcin:
1 - - - - - - 0 1 - - - - - 0 0 1 - - - - 0 0 0 1 - - -
Por simplificaciones sucesivas se obtienen los siguientes subvectores que cubren a
los anteriores:
1 - - - - - - - 1 - - - - - - - 1 - - - - - - - 1 - - -
C = g + f + d + c
La segunda de las funciones B da valor 1 para el siguiente conjunto de subvectores,
el cual resulta completo, es decir, cubre todas las posibilidades de activar dicha funcin:
1 - - - - - - 0 1 - - - - - 0 0 0 0 1 - - 0 0 0 0 0 1 -
Por simplificaciones sucesivas se llega a los siguientes subvectores:
1 - - - - - - - 1 - - - - - - - 0 0 1 - - - - 0 0 - 1 -
B = g + f + e.d.c + e.d.b = g + f + e.d.(c + b)
La tercera funcin A da valor 1 para el siguiente conjunto de subvectores:
1 - - - - - - 0 0 1 - - - - 0 0 0 0 1 - - 0 0 0 0 0 0 1
Simplificando se obtienen los siguientes subvectores:
1 - - - - - - - 0 1 - - - - - 0 - 0 1 - - - 0 - 0 - 0 1
A = g + f.e + f.d.c + f.d.b.a = g + f . [e + d . (c + b.a)]
Una excelente presentacin del mtodo de Quine-McCluskey generalizado, de su
formulacin algortmica y de su programacin informtica se encuentra en el libro de J.F.
Wakerley, Digital Design. Principles and Practices (Prentice-Hall International Editions.
2000. 3 edicin. Pginas 236 - 243).
Por otra parte, el mtodo de Quine-McCluskey tambin permite abordar la
simplificacin conjunta de mltiples funciones de las mismas variables, de forma que se
minimice el nmero total de trminos producto necesarios (y no el nmero de trminos
producto para cada una de ellas): simplificacin multifuncin.
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
A2 Apndi ce a l os cap t ul os 3 y 4
Propagaci n rpi da de acarreo en l os sumadores
El sumador es un bloque muy comn en los sistemas digitales; adems, una forma
simplificada del sumador, el incrementador (A + 1), se utiliza para construir contadores
de gran tamao.
Un sumador se configura en forma modular mediante celdas sumadoras:
C_ a b
S C
S = (a b) C_
C = a . b + (a + b) . C_
Al conectar en cascada estas celdas los retrasos con los que se calculan los
sucesivos acarreos son acumulativos; este tipo de propagacin del arrastre recibe el
nombre de acarreo sucesivo: ripple carry (acarreo propagado por onda).
En el captulo 2 se introdujo un indicador, el ndice de propagacin ip, referido al
nmero de puertas sucesivas que afectan a una funcin: el ndice de propagacin de la
funcin Ci = ai.bi + (ai+bi).Ci-1
(construido con puertas inversoras) es 2; un sumador de
64 bits tendr un ndice de propagacin 128, referido al bit ms significativo S65 = C64.
Los tiempos de propagacin asociados a un ndice tan elevado limitan mucho la
velocidad de trabajo de los sumadores.
Una forma de disminuir los tiempos de propagacin de un sumador grande consiste
en utilizar celdas sumadoras ms amplias (de granularidad ms gruesa), por ejemplo,
celdas sumadoras de 4 dgitos.
a
4
Sumador de 4 bits
a
3
a
2
a
1
b
4
b
3
b
2
b
1
C
o
S
4
S
3
S
2
S
1
C
4
Las funciones booleanas que conforman este sumador de 4 bits son las siguientes:
1 - i i i i
C ) b (a = S para i = 1 .. 4
0 1 1 1 1 1
).C b (a .b a = C + +
) ).C b (a .b ).(a b (a .b a = C
0 1 1 1 1 2 2 2 2 2
+ + + +
)) ).C b (a .b ).(a b (a .b a ).( b (a .b a = C
0 1 1 1 1 2 2 2 2 3 3 3 3 3
+ + + + + +
= C = S
4 5
))) ).C b (a .b ).(a b (a .b a ).( b (a .b ).(a b (a .b a =
0 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4
+ + + + + + + +
314 El ect rni ca Di gi t al
En las funciones anteriores (celda sumadora de 4 dgitos) se ha aplicado la
recursividad del acarreo para calcular los sucesivos arrastres directamente, a partir de las
entradas de la celda; todos los arrastres (construidos con puertas inversoras) presentan
ndice de propagacin 2, incluyendo el arrastre global de la celda C4, que ir conectado a
la celda siguiente para construir sumadores ms grandes.
Para un sumador de 64 dgitos se necesitan 16 celdas sucesivas de 4 bits, de forma
que el dgito ms significativo S65 tendr un ndice de propagacin 32 (4 veces menor
que en el sumador de celdas de 1 bit).
An es posible conseguir una propagacin ms rpida del arrastre (lookahead
carry: acarreo anticipado), aprovechando intensivamente la recursividad de la funcin
booleana C
i
en la forma que sigue.
Podemos expresar el arrastre C
i
en trminos de generacin y propagacin del mismo
C
i
= a
i
.b
i
+ (a
i
+b
i
).C
i-1
= g
i
+ p
i
. C
i-1
siendo g
i
= a
i
. b
i
generacin de acarreo
p
i
= a
i
+ b
i
propagacin de acarreo
y aplicando la recursividad propia de esta frmula (Ci Ci-1)
C
i
= g
i
+ p
i
. g
i-1
+ p
i
. p
i-1
. g
i-2
+ ... + p
i
. p
i-1
. p
i-2
. ... . p
m+1
. C
m
se obtiene una funcin que permite calcular, en un solo paso, un acarreo avanzado
(el i-simo) a partir de otro inferior (el m-simo).
Dado que las puertas lgicas a utilizar son inversoras, conviene efectuar las
siguientes transformaciones para configurar la funcin anterior con puertas inversoras:
g'
i
= g
i
= a
i
.b
i
= a
i
b
i
p'
i
= p
i
= a
i
+ b
i
= a
i
b
i
;
en la expresin de C
i
se puede sustituir gi = pi
. gi, ya que siempre que gi = 1, pi
= 1
C
i
= g
i
+ p
i
. C
i-1
= g
i
. p
i
+ p
i
. C
i-1
= p
i
.(g
i
+ C
i-1
) = C . g + p =
1 - i i i
1 - i i i
C . g' p' = +
y aprovechando la recursividad
C
i
= p'
i
+ g'
i
.p'
i-1
+ g'
i
.g'
i-1
.p'
i -2
+ ... + g'
i
.g'
i-1
.g'
i-2
. ... .g'
m+1
.C
m
.
Las operaciones iniciales p'i , g'i y
m
C tienen ndice de propagacin 1 (una sola
puerta lgica) y, tambin, Ci requiere una sola puerta a partir de ellas; de forma que el
clculo de Ci supone el paso a travs de dos series de puertas booleanas sucesivas: ndice
de propagacin ip = 2.
A2. Propagaci n rpi da de acarreo 315
Conforme a lo anterior y como ejemplo demostrativo de la propagacin rpida de
acarreo (lookahead carry), se desarrolla el diseo de un sumador de 64 dgitos:
Primer paso: configuracin de un mdulo de 4 bits
G P
a
4
Sumador de 4 bits
a
3
a
2
a
1
b
4
b
3
b
2
b
1
C
o
S
4
S
3
S
2
S
1
Las funciones booleanas que conforman este sumador de 4 bits son las siguientes:
S
1
= (a
1
b
1
) C
0
S
2
= (a
2
b
2
) C
1
; C
1
= p'
1
+ g'
1
.C
0
S
3
= (a
3
b
3
) C
2
; C
2
= p'
2
+ g'
2
.p'
1
+ g'
2
.g'
1
.C
0
S
4
= (a
4
b
4
) C
3
; C
3
= p'
3
+ g'
3
.p'
2
+ g'
3
.g'
2
.p'
1
+ g'
3
.g'
2
.g'
1
.C
0
El mdulo debe contener, adems, dos funciones globales de generacin y
propagacin del acarreo
) g' + p' + p' + (p' . ) g' + p' + (p' . ) g' + (p' . g' =
.g .p .p p + .g .p p + .g p + g =
1 2 3 4 2 3 4 3 4 4
1 2 3 4 2 3 4 3 4 4
G
P = p
4
.p
3
.p
2
.p
1
= p'
4
+ p'
3
+ p'
2
+ p'
1
)
p'i , g'i y
m
C tienen ndice de propagacin 1 y, con ello, las funciones que calculan
los arrastres Ci y, tambin, las funciones G y P tienen ndice de propagacin 2.
Segundo paso: agrupacin de 4 mdulos para construir un bloque de 16 bits
Adems de los cuatro sumadores de 4 bits, se requiere un nuevo mdulo que
permita calcular los acarreos de entrada a los tres mdulos superiores C4, C8 y C12, as
como las funciones G P de generacin y de propagacin globales del sumador de 16 bits:
C
8
C
4
C
12
calculador de acarreos
G P
4 4
G P
3 3
G P
2 2
C
0
G P
G P
1 1
salidas G y P de generacin y propagacin global
de los 4 bloques sumadores de 4 bits
316 El ect rni ca Di gi t al
sumador de 4 bits
C
0
P
1
G
1
sumador de 4 bits
C
4
P
2
G
2
sumador de 4 bits
C
8
P
3
G
3
sumador de 4 bits
C
12
P
4
G
4
calculador de acarreos
P
1
G
1
P
2
G
2
P
3
G
3
P
4
G
5
C
0
C
4
C
8
C
12
P G
C4 = G1 + P1.C0
G = G4 + P4.G3
+ P4.P3.G2 + P4.P3.P2.G1
C8 = G2 + P2.G1
+ P2.P1.C0
P = P4 . P3 . P2 . P1
C12 = G3 + P3.G2
+ P3.P2.G1 + P3.P2.P1.C0
El ndice de propagacin de estas funciones es, asimismo, 2 (al aplicar una doble
negacin para formar puertas inversoras, resultan dos puertas sucesivas).
Tercer paso: agrupacin de 4 bloques de 16 bits para configurar el sumador de 64 bits
De nuevo se requiere un calculador de acarreos idntico al del apartado anterior
para calcular los arrastres de entrada correspondientes a los tres bloques de 16 bits
superiores: C16, C32 , C48.
Y, a partir de las salidas G P globales de este calculador de acarreos, se calcula el
dgito ms significativo de la suma: S65 = C64 = G + P.C0
El ndice de propagacin para dicho dgito S
65
ser:
celdas de 4 bits 2
+ calculador de acarreos del bloque de 16 bits 2
+ calculador de acarreos del sumador de 64 bits 2
+ clculo de S65, a partir de este ltimo 2
En conjunto, el ndice de propagacin global del dgito ms significativo del
sumador rpido (lookahead carry) de 64 bits es 8, muy inferior al correspondiente a una
propagacin sucesiva de acarreo (ripple carry ) que es 128.
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
A3 Apndi ce al cap t ul o 10
Puert as l gi cas con t ransi st ores bi pol ares
El t ransi st or bi pol ar como i nversor
El circuito bsico de un transistor en emisor comn, segn el esquema de la figura,
realiza la operacin booleana de negacin o complementacin: inversor.
Inversor:
Vi = 0 = "0" corte Vo = Vcc = "1"
Vi = Vcc = "1" Vo = 0 = "0" saturacin
base
V
i
V
R
C
R
B
V
o
colector
emisor
CC
Se utilizan los dos estados extremos de este circuito:
- estado de corte: Vi = 0 Ic = 0 Vo = VCC
- estado de saturacin: Vi = VCC Vo = 0.
La situacin de corte queda asegurada siempre que Vi < V (tensin umbral del
diodo base-emisor, para el silicio 0,6 V), en cuyo caso IB = IC = 0 y la tensin de salida es
igual a la de alimentacin del circuito (no hay cada de tensin sobre RC), Vo = VCC.
La situacin de saturacin supone que VCE = 0 y, por tanto, IC = VCC/RC; para
mantener tal intensidad de colector se necesita una intensidad de base suficiente:
IB > IC / = VCC / ( . RC), siendo la ganancia en corriente del transistor;
como la tensin de entrada en este caso ser Vi = V(1) = VCC
IB = (VCC - VBE) / RB VCC / RB ha de ser mayor que VCC / ( . RC):
VCC / RB > VCC / ( . RC) o sea, RB < . RC
condicin de saturacin para una tensin de entrada igual a la tensin de alimentacin.
Por otra parte, la intensidad de base del transistor no debe superar un valor lmite
IBmx propio del transistor, lo que impone una segunda condicin: VCC / RB < IBmx,
o sea, RB > VCC / IBmx.
VCC / IBmx < RB < . RC
Dentro de estos dos lmites puede elegirse la resistencia RB en una amplia gama de
valores; cuanto menor sea RB ms profunda ser la situacin de saturacin cuando sta se
alcance, mientras que valores altos de RB favorecen el estado de corte, siendo
precisamente la transicin de saturacin a corte la que presenta mayores retardos.
La resistencia de colector RC ha de ser elegida dentro de un compromiso entre
velocidad y consumo; cuanto menor es RC menores son tambin las constantes de tiempo
asociadas al transistor y ste conmuta ms rpidamente, pero consume ms.
318 El ect rni ca Di gi t al
La conmutacin de este circuito inversor requiere fuertes variaciones de la
concentracin de portadores minoritarios en la regin de base, habida cuenta de que dicha
concentracin es muy diferente en corte (prcticamente nula) y en saturacin; tales
variaciones de carga en la base del transistor necesitan los correspondientes tiempos para
la acumulacin o eliminacin de carga, que se manifiestan como tiempos de retraso.
La siguiente figura representa la respuesta de un inversor frente a una onda cuadrada
en su entrada:
Vi
Vo
0 V 0 V
0 V
Vcc
Vcc Vcc
tiempo
de bajada tiempo
de almacenamiento
tiempo de subida
La transicin a corte es ms lenta que la de saturacin, es decir, es ms costoso (en
variacin de carga en base y, por tanto, en tiempo) el paso de saturacin a corte que el
recproco de corte a saturacin. En tal sentido, no interesa forzar mucho la saturacin, o
sea, la desigualdad RB < . RC.
El orden de magnitud de los tiempos de retraso en la conmutacin expresados en la
figura anterior depende del tiempo medio de recombinacin de portadores minoritarios en
la base: B es un parmetro caracterstico del transistor, cuyo orden de magnitud suele
encontrarse entre 0,1 y 1 s para transistores normales de silicio; cuanto menor sea dicho
valor, ms rpida ser la conmutacin del transistor.
Es posible mejorar ambas transiciones mediante la inclusin de un condensador CB
en paralelo con la resistencia de base:
C
B
V
i
V
R
C
R
B
V
o
CC
A3. Puert as con t ransi st ores bi pol ares 319
El condensador CB comunica a la base un impulso de carga en cada transicin, que
se traduce en una rpida variacin de la concentracin de portadores minoritarios:
para CB .RB =
B
de sus transistores, cuyo valor se sita en el orden de 10 ns; del mismo orden de magnitud
son los tiempos de propagacin tpicos: tPHL y tPLH.
Por otra parte, es preciso tener en cuenta que en el momento de la conmutacin se
produce un ligero pico de consumo debido a que, durante un instante, se superpone la
conduccin de los dos transistores de la etapa de salida T1 y T2; este sobreconsumo
dinmico es, en promedio, despreciable pero genera perturbaciones sobre la lnea de
alimentacin que pueden afectar a los valores lgicos.
A3. Puert as con t ransi st ores bi pol ares 323
Di versi dad de seri es TTL
Dentro de la familia TTL se han desarrollado diversas series con prestaciones
especficas. Las caractersticas numricas (valores de las resistencias, velocidad,
consumo, etc.) detalladas anteriormente corresponden a la primera serie 74, que se conoce
como serie normal o estndar (si bien se encuentra hoy en da en desuso).
Las principales mejoras respecto a la serie 74 inicial se deben a tres tipos de
modificaciones:
- Aumentando el valor de las resistencias se consigue reducir el consumo (pero, a la
vez, aumentan los tiempos de conmutacin y disminuye la velocidad de trabajo): serie
de bajo consumo 74L, cuyo consumo promedio se sita en el orden de 0,2 mA y sus
tiempos de propagacin en unos 40 ns.
- La utilizacin de transistores Schottky (bipolares en cuya unin base-colector, en
paralelo con la misma, se aade un diodo Schottky que impide al transistor entrar en
saturacin profunda) permite una conmutacin mucho ms rpida: serie TTL
Schottky 74S con tiempos de conmutacin de 3 ns y un consumo promedio de 4 mA.
- Combinando ambas modificaciones se consigue una serie de consumo reducido y
velocidad de conmutacin anloga a la serie estndar: serie TTL Schottky de bajo
consumo 74LS, con tiempos inferiores a los 10 ns y consumo promedio de 0,5 mA.
- La reduccin de tamao de los transistores integrados y la correspondiente reduccin
de sus efectos capacitivos ha dado lugar a series avanzadas con menores tiempos de
conmutacin: 74ALS y 74AS (tiempos del orden de 2 ns y 1 ns, respectivamente).
Suma de product os: puert a and-or-i
Las entradas de la puerta bsica "y-negada" (Nand) de la familia TTL pueden ser
ampliadas, en la forma representada en la figura siguiente, configurando una puerta con
las operaciones "y" "o" "negacin": puerta "y-o-negada" (AND-OR-I); esta puerta es
sumamente til, ya que realiza directamente la suma de productos que corresponde a la
forma cannica de una funcin (tomando, para ello, la suma de productos de la funcin
negada, ya que existe una inversin en la salida de esta puerta).
Puerta AND-OR-I
Vcc
c
d
a
b y = a.b + c.d
324 El ect rni ca Di gi t al
Caract er st i cas de l a seri e LS segn cat l ogo
Los datos utilizados en este apartado corresponden al circuito integrado 74LS00 en el
catlogo de Texas Instruments.
Temperat uras
La temperatura de funcionamiento de la serie LS-TTL abarca el intervalo entre 0C y
70C y puede almacenarse a temperaturas entre -65C y 150C.
Tensi n de al i ment aci n
La tensin de alimentacin es la habitual de 5 voltios; el intervalo de tensiones
admitido va de 4.75 a 5.25 voltios, lo cual requiere un buen filtrado y posterior
estabilizacin en la fuente de alimentacin.
Tensi ones e i nt ensi dades: V
o
-V
i
, I
o
, I
i
VoL = 0,35 V para IoL = 8 mA ViLmx
= 0,8 V IiL < - 0,4 mA
VoH = 3,4 V para IoH = - 0,4 mA ViHmn = 2 V IiH < 20 A
Salida Entrada
5 V
0V
I < 20 A
I < 0,4 mA
3.4 V
0,8 V
I = -0,4 mA
I = 8 mA
V(1) = 1,4 V
V(0) = 0,45 V
2 V
0,35 V
I / I = 20
i
iL
iH
oL
oH
o
V
V
Es importante tener en cuenta que el valor 0 en una entrada requiere un intensidad
hacia fuera del orden de 0,2 mA.
Inmuni dad f rent e al rui do
Los mrgenes de ruido en tensin, calculados en la grfica anterior, son:
V(0) = 0,45 V V(1) = 1,4 V
A3. Puert as con t ransi st ores bi pol ares 325
Para calcular los mrgenes de ruido en potencia es necesario deducir las resistencias
de salida en el propio esquema circuital de la puerta LS-TTL:
Ro(0) = resistencia del transistor inferior en saturacin 10 ;
Ro(1) resistencia en serie con el transistor superior = 110 .
Con tales valores los mrgenes de ruido en potencia son de:
P(0) = 0.45
2
/ 10 = 20 mW P(1) = 1.4
2
/ 110 = 18 mW
El margen de ruido en potencia es de unos 20 mW. Cabe observar que, aunque el
margen en tensin es mucho menor para el 0 que para el 1, en potencia ambos mrgenes
son parecidos, e incluso es peor para el 1, ya que su resistencia de salida es mucho mayor.
Vel oci dad de t rabaj o
Los tiempos de propagacin (tPLH y tPHL) son del orden de 10 ns; por tanto, se
requieren tiempos de bit superiores a 20 ns, lo que permite una frecuencia mxima de
reloj de 25 MHz.
Consumo
ICCL ~ 0.2 mA ICCH ~ 0.6 mA
en promedio: ICC ~ 0.4 mA P ~ 0.4 x 5 = 2 mW
Conect i vi dad
La capacidad de carga fan-out viene dada por el cociente entre intensidades de salida
y de entrada, ya que al conectar varias puertas a la salida de otra se requiere que sta
suministre intensidad suficiente para asegurar el valor booleano de entrada en las
siguientes (en particular, para asegurar el 0).
fan-out = Io / Ii = 20.
En cuanto al fan-in existen puertas integradas de hasta 8 entradas.
Se dispone de inversores con entradas con histresis, tipo Schmitt, cuyas tensiones de
disparo son, aproximadamente, 0,8 y 1,6 V, y de puertas con salidas en colector abierto;
asimismo, existe una amplia disponibilidad de puertas y bloques con salidas triestado.
326 El ect rni ca Di gi t al
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
T1 SEMICONDUCTORES, UNIN PN Y TRANSISTORES MOS
T1.1. Semiconductores
T1.2. Unin PN
T1.3. Transistor MOS
La electrnica se dedica a manejar informacin y para ello utiliza dispositivos que
aprovechan las propiedades de los electrones. Los primeros dispositivos electrnicos fueron
las vlvulas, derivadas del triodo de Lee de Forest; pero la electrnica actual no es una
electrnica de vlvulas sino una electrnica de transistores.
El transistor es el punto de partida y, a la vez, el impulsor de un continuado proceso de
miniaturizacin de la electrnica que, a travs de los circuitos integrados y de su
complejidad cada vez mayor, llega hasta nuestros das.
Los transistores provienen de la utilizacin eficiente de los semiconductores y, en
particular, de estructuras conformadas por zonas semiconductoras de distinto signo: P y N.
Este captulo presenta en forma conceptual y muy simplificada los fundamentos del
comportamiento de los semiconductores, sus dos tipos P y N y la unin entre ambos, hasta
llegar a los transistores MOS como interruptores digitales.
Un semiconductor conduce (ms bien poco) gracias a los pares electrn-hueco que se
forman cuando, por efecto de la temperatura, un electrn deja libre un enlace de valencia
(hueco); pero el nmero de pares electrn-hueco a temperatura ambiente es insignificante
y la resistencia de un semiconductor puro es muy alta.
Ahora bien, la adicin de impurezas formadas por tomos de fsforo (con electrones de
ms, tipo N) o de boro (deficitario de electrones y, por ello, generador de huecos, tipo P)
permite aumentar drsticamente la disponibilidad de portadores y lleva al semiconductor a
conducir en forma intermedia (semi-conduce).
Por su parte, la unin de un semiconductor P y de otro N presenta propiedades no
lineales, configurando un discriminador de polaridad: si le llega una seal con parte
positiva y parte negativa deja pasar solamente una de las polaridades, segn el sentido
en que se encuentre conectada. Adems, la unin PN en polaridad inversa constituye un
excelente aislante (para separar zonas de difusin del substrato que las contiene).
El transistor NMOS aprovecha el efecto capacitivo de una placa (Puerta) para
generar un canal conductor entre dos zonas de difusin de tipo N (Fuente y Drenaje, que
ofician simplemente como contactos). De esta forma configura un interruptor que conduce
cuando la tensin de puerta es positiva y no lo hace si dicha tensin es nula; las
caractersticas de este interruptor (cuasi-ideal) lo hacen un magnfico candidato para el
lgebra de conmutadores que da origen a la electrnica digital.
236 El ect rni ca Di gi t al
T. 1. Semi conduct ores
Los metales son materiales conductores de la electricidad debido a que en su
estructura cristalina disponen de electrones libres que se mueven por efecto del campo
elctrico cuando se aplica una diferencia de potencial (una tensin elctrica). La
diferencia de potencial elctrico acelera a los electrones en la direccin del campo
elctrico (aunque en sentido contrario al mismo, ya que su carga elctrica es negativa);
pero en este movimiento de avance los electrones chocan con los tomos de la red
cristalina que conforma el metal y la prdida de energa en tales choques determina un
movimiento no acelerado con una velocidad promedio proporcional a la intensidad del
campo.
Como materiales conductores que son, la resistencia elctrica de los metales es muy
baja; un hilo de cobre de 1 metro de longitud y 1 mm
2
de seccin, a temperatura
ambiente, presenta una resistencia de unos 20 m.
Al aumentar la temperatura, aumenta tambin el movimiento desordenado de los
electrones debido a su agitacin trmica y, con ello, aumentan los choques con los
ncleos de la red cristalina y la mayor prdida de energa determina una disminucin de
la velocidad promedio. Por ello, la resistencia de los metales aumenta al aumentar la
temperatura; lo cual puede comprobarse fcilmente midiendo directamente con el
polmetro la resistencia de una lmpara apagada y comparndola con el valor que se
obtiene por aplicacin de la ley de Ohm cuando la lmpara se encuentra encendida.
Existen en la naturaleza unos materiales cuya conductividad es intermedia entre la
de los conductores metlicos y la de los aislantes y, adems, su resistencia no aumenta
con la temperatura sino que disminuye. Su comportamiento no puede ser explicado con el
modelo de electrones libres con el que se describe el comportamiento de los conductores,
sino que es necesario acudir a los principios cunticos que rigen la configuracin interna
de los tomos.
Veamos algunas ideas elementales de la mecnica cuntica, es decir, de la
organizacin de los electrones en los tomos:
Bohr postul que los electrones de un tomo no pueden situarse en cualquier rbita,
o sea, no pueden encontrarse en cualquier nivel energtico respecto al ncleo, sino que
existe un conjunto discreto de niveles permitidos. Pauli aadi que en un mismo nivel
energtico no puede haber ms que un electrn.
A 0 de temperatura absoluta los electrones se sitan en los niveles energticos ms
bajos, pero a temperaturas superiores, T > 0 K, la energa trmica correspondiente a la
propia temperatura les permite ocupar niveles superiores: niveles excitados.
T1. Semi conduct ores, uni n PN y t ransi st or MOS 237
NCLEO
ATMICO
NIVELES EXCITADOS
NIVELES INFERIORES (ocupados a 0 Kelvin)
Niveles energticos permitidos en un tomo
= n = nmero de electrones del tomo
La probabilidad de que un electrn adquiera una energa de excitacin E
i
viene dada
por p(Ei) = . e
-Ei/KT
, donde K es la constante de Boltzmann y T la temperatura
absoluta: para T = 0 K p(Ei) = 0 ; para T > 0 K p(Ei) > 0.
La probabilidad de ocupar un nivel excitado aumenta con la temperatura y es tanto
mayor cuanto menor es la energa de excitacin Ei.
El principio de exclusin de Pauli es vlido tambin para un sistema molecular y
para un sistema cristalino: al unirse dos tomos idnticos, desplazan sus niveles
energticos permitidos para que no coincidan dos electrones con la misma energa; este
desplazamiento es, claro est, muy pequeo.
En un cristal de un elemento se encuentran multitud de tomos idnticos ligados por
la red cristalina, los cuales dan lugar a un conjunto de bandas energticas formadas por
los niveles energticos de los mltiples tomos; tales niveles eran coincidentes en los
tomos aislados pero, al unirse, se han desplazado mnimamente y dan lugar a una banda
de energa. Cada banda contiene multitud de niveles energticos muy prximos, cada uno
de los cuales puede ser ocupado slo por un electrn.
BANDAS DE EXCITACIN
BANDA DE VALENCIA
BANDAS INFERIORES
NCLEOS
Ocupadas a 0 K
Bandas energticas permitidas en un cristal
En un sistema cristalino existen bandas energticas permitidas que pueden ser
ocupadas por un nmero discreto de electrones y que se encuentran separadas por
intervalos de energa prohibidos.
238 El ect rni ca Di gi t al
A 0 Kelvin se completan las bandas de energa inferior. La ltima banda energtica
que resulta ocupada se denomina banda de valencia; los electrones de esta banda,
electrones de valencia, son los que pasarn a niveles excitados ya que los tienen ms
prximos que el resto de los electrones.
Para contribuir a la conduccin elctrica los electrones han de pasar a niveles
excitados, pues han de adquirir la energa cintica correspondiente a su movimiento; de
modo que, al aplicar un campo elctrico, solamente contribuirn a la conduccin aquellos
electrones que puedan dar el salto a niveles energticos excitados.
Aquellos materiales que tienen la banda de valencia incompleta, o sea no toda ella
ocupada por electrones, son conductores; presentan niveles energticos excitados lo
suficientemente prximos, dentro de la misma banda de valencia, para que la energa
correspondiente al campo elctrico haga pasar electrones a ellos, incluso a temperatura de
0 Kelvin: en los conductores la banda de valencia coincide con la de conduccin.
Los materiales cuya banda de valencia est completa no pueden conducir a 0 K,
pues los campos elctricos normales no son capaces de comunicar la energa necesaria
para que los electrones de valencia salten a la banda superior, que ser en este caso la
banda de conduccin. Dentro de estos materiales existe una diferencia importante:
aquellos en los que el intervalo energtico entre las bandas de valencia y de
conduccin es grande y que, por tanto, a temperatura ambiente apenas tendrn electrones
en la banda de conduccin y, en consecuencia, no conducirn
y aquellos otros en que este intervalo es pequeo, de forma que a temperatura
ambiente tienen un nmero apreciable de electrones excitados en la banda de conduccin
y, por tanto, conducen: stos son los semiconductores.
no ocupada
(niveles excitados)
Banda
de
Valencia
CONDUCTORES
Banda de
conduccin
E grande
Banda de
Valencia
Banda de
conduccin
E pequea
Banda de
Valencia
SEMICONDUCTORES AISLANTES
sta es la diferencia entre conductores, aislantes y semiconductores. Los
conductores tienen niveles excitados libres en la propia banda de valencia y los
electrones pueden pasar a ellos por accin de un campo elctrico, incluso a 0
absolutos; los semiconductores tienen dichos niveles de excitacin en otra banda que
se encuentra energticamente prxima y pueden ocuparlos cuando la temperatura es
mayor de 0 K; mientras que los aislantes tienen la banda de niveles excitados muy
distante, de forma que el nmero de electrones que pasan a ella es despreciable.
T1. Semi conduct ores, uni n PN y t ransi st or MOS 239
En los semiconductores, al aumentar la temperatura, aumenta el nmero de
electrones que pasan de la banda de valencia a la de conduccin y contribuyen a la
corriente elctrica; por ello, su resistencia disminuye al aumentar la temperatura.
En el contexto del modelo cuntico de los semiconductores resulta que al pasar un
electrn a la banda de conduccin deja un hueco en la de valencia, es decir, un nivel
energtico que puede ser ocupado por otro electrn inferior, adquiriendo una energa de
excitacin. Este segundo electrn tambin puede contribuir a la conduccin; de forma
que contribuyen a la conduccin tanto los electrones que han pasado a la banda de
conduccin como los niveles energticos huecos que han quedado libres en la banda de
valencia.
Los pares electrn-hueco se forman por efecto de la energa trmica: a temperatura
superior a 0K un electrn adquiere energa suficiente para pasar a un nivel excitado de la
banda de conduccin y deja un hueco en la banda de valencia. Un hueco contribuye a
la corriente elctrica al ser ocupados por un electrn de un nivel energtico inferior y,
como el hueco supone ausencia de electrn, acta como si fuera una carga positiva.
A la vez sucede que, en ocasiones, un hueco es cancelado por un electrn libre que
pasa a formar parte del enlace vaco propio del hueco, cediendo la correspondiente
energa; este fenmeno se denomina recombinacin y supone prdida de portadores.
El nmero de portadores elctricos disponibles se debe al balance entre la formacin
de pares electrn-hueco y la recombinacin de los mismos; es, pues, una situacin de
equilibrio dinmico.
Consideremos una imagen ms grfica de los semiconductores: por razones
tecnolgicas, principalmente por razones de consistencia mecnica y de disponibilidad
de ellos, los semiconductores utilizados son cristales constituidos por tomos de valencia
4, cuatro electrones en la ltima capa, principalmente el germano y el silicio.
+ 4
+4
+4 +4 +4
+4 +4
+4 +4
Representacin esqemtica
de un tomo de valencia 4
Representacin esqemtica y plana
de un cristal de dichos tomos de valencia 4
La carga positiva indicada dentro del ncleo atmico (+4) queda compensada por
los 4 electrones de valencia representados por las lneas perifricas; de forma que,
como es obvio, el tomo con sus 4 electrones de valencia es elctricamente neutro.
240 El ect rni ca Di gi t al
Cuando por efecto trmico, a T > 0 K, un electrn adquiere energa suficiente
para saltar de su enlace queda libre, es decir, pasa a la banda de conduccin,
pero, asimismo, al ausentarse del enlace correspondiente deja un hueco (que
representa una carga positiva).
+4
+4 +4 +4
+4 +4
+4 +4
electrn hueco
Como resultado del paso de un electrn
de la banda de valencia a la de conduccin
queda un hueco, un enlace vacante por ausencia
de electrn, en dicha banda de valencia
Otro electrn de un enlace prximo puede ocupar este hueco, dejando otro en su
enlace anterior, y as sucesivamente, de forma que un hueco se mueve en sentido
contrario a los electrones que pasan a ocuparlo.
Si este movimiento es debido a un campo elctrico, el hueco se mueve como si
tuviera carga positiva y el semiconductor contribuye a la conduccin con dos tipos de
portadores: los electrones en la banda de conduccin que se mueven en sentido opuesto al
del campo (cargas negativas) y los huecos en la banda de valencia que se mueven en el
mismo sentido del campo (cargas positivas). Est claro que los huecos no tienen
existencia propia, pero constituyen un modelo vlido y simple para representar el
movimiento de los electrones de valencia que pasan a ocuparlos.
En el caso del semiconductor ms utilizado, el silicio, la concentracin de tomos en
la red cristalina es del orden de 10
22
tomos/cm
3
y, a temperatura ambiente (25 C), se
produce una generacin de pares electrn-hueco del orden de 10
10
pares/cm
3
, es decir,
solamente 1 tomo de cada billn (10
12
) de tomos de silicio suelta un electrn y se
queda con un hueco. Esta baja disponibilidad de portadores elctricos hace que la
conductividad de los semiconductores a temperatura ambiente sea muy baja; la
resistencia de una lnea de silicio de 1 metro de longitud y 1 mm
2
de seccin, a
temperatura ambiente, es del orden de 1000 M.
Pero la conductividad de los semiconductores puede ser considerablemente mayor si
se aumenta la concentracin de portadores elctricos, aadiendo dentro de la red
cristalina pequesimas cantidades de ciertas impurezas. La existencia de dos tipos de
portadores (electrones y huecos) da lugar a dos tipos de semiconductores enriquecidos o
dopados: semiconductores N, con predominio de electrones, y semiconductores P, con
predominio de huecos; segn que la impureza tengan exceso (fsforo) o defecto (boro) de
electrones de valencia resulta un semiconductor tipo N o tipo P.
T1. Semi conduct ores, uni n PN y t ransi st or MOS 241
Si en una red de tomos de valencia 4 se incluyen, en forma muy diseminada,
tomos de valencia 5, un electrn de cada uno de estos tomos quedar sin formar parte
de los enlaces, por lo cual tendr mucha mayor facilidad para saltar a la banda de
conduccin. Estos electrones no dejan huecos en la banda de valencia (no dejan enlaces
libres), de forma que predominarn los electrones en la banda de conduccin y stos
sern los portadores de corriente mayoritarios: semiconductor tipo N.
+5
Banda de conduccin
Niveles de los electrones no enlazados
Banda de valencia
debidos a las impurezas
Si, por el contrario, los tomos de las impurezas son de valencia 3, quedar un
hueco en los enlaces de cada tomo de impureza; estos huecos sern ocupados por
electrones de la banda de valencia, dejando los correspondientes huecos en sta pero
sin generar electrones libres en la banda de conduccin.
En este caso predominan los huecos como portadores de corriente: semiconductor
tipo P.
Banda de conduccin
Niveles vacos
correspondientes a los huecos
dejados por las impurezas en los enlaces +3
Banda de valencia
Un dopado normal suele ser del orden de 10
20
tomos/cm
2
, o sea, 1 tomo de
impureza (fsforo o boro) por cada 100 tomos de silicio; ello supone una disponibilidad
de portadores elctricos de 10
20
/cm
2
pues todos los tomos de impureza contribuyen con
su portador (electrn / hueco) dado que el salto energtico para ello es pequeo.
Esta concentracin de portadores resulta ser 10.000 millones de veces superior a los
portadores disponibles en el silicio puro (10
10
) y la conductividad del silicio P o N resulta
100 millones de veces mayor que la del silicio sin impurezas. Tngase en cuenta que la
conductividad no depende solamente de la concentracin de portadores disponibles sino
tambin de la movilidad de tales portadores, que es ms baja en los semiconductores
fuertemente dopados porque inserta un amplio numero de ncleos con carga en la red
cristalina; stos atraen a los portadores mayoritarios y los frenan y, adems, el nmero de
choques contra la red cristalina aumenta con el dopado.
La resistencia de una lnea de silicio dopado de 1 metro de longitud y 1 mm
2
de
seccin, a temperatura ambiente, es del orden de 10 (slo unas 500 veces superior a la
del cobre).
242 El ect rni ca Di gi t al
T. 2. Uni n PN
Un diodo est constituido por una unin P-N, es decir, por la unin de dos
semiconductores, uno de tipo P y otro de tipo N, con una superficie comn.
P N
P N
representacin del diodo
como componente electrnico
P N
+
+
+
+
+
+
-
-
-
-
-
-
potencial de barrera
capa vaca
Del lado P del diodo predomina la concentracin de huecos y, en cambio, en el lado
N predomina la concentracin de electrones. La diferencia de concentracin de
portadores entre ambos lados origina sendas corrientes de difusin, de huecos hacia el
lado N y de electrones hacia el lado P, que tienden a homogeneizar la concentracin de
portadores en todo el material.
Los electrones del lado N cercanos a la unin pasan al lado P, lo cual da origen a
una carga elctrica positiva en la zona N prxima a la unin (carga positiva que se
produce por la prdida de electrones, ms el aporte de huecos desde P). Asimismo, la
zona P prxima a la unin se carga en negativo (por la prdida de huecos enviados a la
otra zona, ms el aporte de electrones que le llegan desde N).
Entre ambos lados de la unin se crea una especie de condensador cargado y,
consecuentemente, un campo elctrico que va de N a P y se opone a la difusin de los
portadores. Enseguida se llega a un equilibrio en el que la tensin en la unin, asociada al
campo elctrico producido y denominada potencial de barrera (), adquiere un cierto
valor que anula la corriente de difusin.
El potencial de barrera es negativo en el lado P y positivo en el N; de forma que si se
conecta una tensin exterior con el terminal negativo hacia P y el positivo hacia N,
polarizacin inversa, dicha tensin se suma al potencial de barrera y ambas juntas
impiden la conduccin a travs del diodo.
En cambio, si la tensin es positiva hacia P y negativa hacia N, polarizacin directa,
dicha tensin exterior se opone al potencial de barrera, disminuyndolo; en este caso,
existirn portadores (huecos del lado P y electrones del lado N) capaces de saltar
energticamente la barrera y contribuir a la conduccin en el sentido del campo exterior
aplicado, de P a N.
T1. Semi conduct ores, uni n PN y t ransi st or MOS 243
En consecuencia, un diodo slo puede conducir en el sentido de P a N, que es en el
indicado por la flecha en su representacin esquemtica, y no puede conducir en sentido
contrario.
+ - + -
I I
La intensidad que atraviesa el diodo ser tanto mayor cuanto menor sea la barrera de
potencial que se opone a ella en la unin, es decir, cuanto mayor sea la tensin aplicada
al diodo. Esta tensin exterior ha de ser siempre inferior al valor del potencial de barrera
propio del diodo, pues de otro modo la barrera se anulara totalmente, la intensidad
aumentara indefinidamente y producira la destruccin de la unin.
La probabilidad de que un electrn tenga energa suficiente para atravesar la barrera
viene dada por:
p = e
-E/KT
, siendo E la energa de la barrera de potencial.
En una unin PN aislada dicha energa es E = e . , (e = carga del electrn) y la
probabilidad de atravesar la barrera resulta despreciable, no existiendo corriente a travs
del diodo. Menos an si aplicamos una polarizacin inversa, E = e . ( + V), en cuyo
caso la probabilidad es an menor, pues la energa de la barrera de potencial es mayor.
En cambio, en polarizacin directa la energa de la barrera es disminuida por la
tensin exterior aplicada, E = e . ( - V), de forma que la probabilidad de atravesarla
aumenta exponencialmente con dicha tensin V:
p = e
-e . ( - V)/KT
= e
-e/KT
. e
+eV/KT
= ' e
+eV/KT
ste ser el tipo de dependencia de la corriente que atraviesa la unin PN con la
tensin aplicada
I
= '' e
+eV/KT
= I
s
. e
+eV/KT
cuya representacin da lugar a las grficas de la figura siguiente, que coinciden con las
medidas experimentales para diodos de germanio y de silicio.
I
V
I I
V V
V 0,2 0,6
Ge
Si
244 El ect rni ca Di gi t al
Estas grficas se pueden linealizar con gran aproximacin mediante dos rectas, una
horizontal hasta V y la otra prcticamente vertical.
I
V
V
V = 0,2 para el germanio
V = 0,6 para el silicio
Es decir, un diodo no conduce mientras la tensin aplicada entre sus extremos sea
inferior a V y a partir de esta tensin conduce como si fuera prcticamente un
cortocircuito; en realidad presenta una pequea resistencia, una ligera inclinacin de
la recta, del orden de 10 para el germanio y de 2 para el silicio (dicha resistencia
resulta francamente despreciable en la mayora de los casos).
Configurando un circuito con un diodo de sicilio y una resistencia de carga y
aplicando a su entrada una seal con ambas polaridades, positiva y negativa:
Vi
t
Vi Vo
Vo
t
pasa a la carga la parte de la onda que se encuentra por encima de los 0,6 voltios
necesarios para la conduccin del diodo.
Supongamos el diodo al revs y una onda senoidal en la entrada:
t
Vo
t
Vi Vo
Vi
Por encontrarse el diodo al revs pasa a la carga la parte negativa de la onda, que es
la que polariza al diodo en positivo; en concreto, el diodo deja pasar la parte de onda que
se encuentra por debajo de -0,6 voltios.
T1. Semi conduct ores, uni n PN y t ransi st or MOS 245
Tal es la aplicacin de los diodos en los circuitos electrnicos: dejar pasar las
tensiones de una polaridad (bien positiva, bien negativa, segn el sentido del diodo) y no
las de la polaridad opuesta. Esta funcin se denomina rectificar una seal elctrica; el
diodo es un componente rectificador.
Realmente la operacin de rectificar aparece cuando el diodo va seguido de un
condensador que filtra la seal de salida y proporciona la envolvente de la onda, dando
lugar a una recta (tensin continua) con un pequeo rizado; por ello, un nombre ms
apropiado para el diodo es el de discriminador de polaridad.
Los diodos se fabrican difundiendo consecutivamente sobre un semiconductor
impurezas tipo P por un extremo e impurezas tipo N por el opuesto; as se forman las dos
zonas P y N sobre el mismo sustrato semiconductor. Segn la intensidad mxima de
corriente que vayan a conducir, se fabrican diodos de 0,1 A, 0,5 A, 2 A, 10 A, etc.
Una unin PN en polarizacin inversa (incluyendo el caso de VD = 0) presenta una
zona vaca de portadores, justo a ambos lados de la unin (en la propia barrera de
potencial que la unin PN genera): capa de vaciamiento o capa vaca. La ausencia de
portadores se debe a la difusin de los portadores propios hacia el otro lado de la unin y
a la recombinacin de los portadores que le llegan desde dicho otro lado (que se
encuentran con una concentracin amplia de portadores de signo opuesto que propicia la
cancelacin electrn-hueco).
La capa vaca de la unin constituye un excelente aislante que separa elctricamente
la zona semiconductora P de la zona semiconductora N. Este aislamiento propio de la
unin PN es aprovechado en la configuracin de circuitos integrados para aislar las
regiones N que se fabrican dentro de un substrato P y, viceversa, las regiones P
fabricadas sobre un substrato N.
Ahora bien, cuando la tensin aplicada en polarizacin inversa aumenta, llega un
momento en que el potencial creado en la unin, + V, origina un campo elctrico lo
suficientemente fuerte como para romper enlaces atmicos, dejando libres huecos y
electrones que contribuyen a la conduccin y que no han de atravesar la barrera de
potencial pues se generan en la propia barrera; este fenmeno se denomina efecto zener y
los portadores as generados contribuyen a la conduccin de forma que a dicha tensin,
tensin zener, el diodo conduce en polarizacin inversa.
V
Vzener
I
V
Diodo zener
+V
R
5mA
V
o
= V
z
246 El ect rni ca Di gi t al
La tensin zener, en los diodos normales, es de varias decenas o de varios cientos de
voltios y es otra caracterstica a tener en cuenta junto con la intensidad mxima: la
tensin zener de un diodo rectificador ha de ser superior al valor de la mxima tensin
inversa que vaya a soportar, a fin de que no conduzca en polarizacin inversa. En tal
sentido, un diodo rectificador viene caracterizado por dos parmetros: la intensidad
mxima a conducir y la tensin mxima inversa a soportar (y as, hablaremos de un diodo
de 1 A y 300 V y de otro de 10 A y 100 V, etc.)
Pero el efecto zener tambin es aprovechado en forma contraria en diodos que
precisamente se polarizan en zona zener para utilizar dicha tensin como referencia (ver
en la figura anterior el circuito de la derecha). Para ello se fabrican diodos con tensin
zener de unos pocos voltios, denominados diodos zener: existe toda una gama de zener
con valores de tensin que van desde los 2,7 V a los 24 V, muy tiles para configurar
tensiones fijas de referencia, para lo cual han de polarizarse inversamente de manera que
los atraviese una intensidad inversa (contraria a la flecha del diodo) entre 5 y 20 mA.
Un circuito resistencia-zener, tal como el representado en la figura siguiente, limita
la tensin que recibe al intervalo [-0,6 V ; Vz] ya que recorta las tensiones superiores a su
tensin zener Vz (para tensin de entrada positiva el diodo se encuentra en polarizacin
inversa) y tambin recorta las tensiones negativas superiores a su tensin umbral como
diodo 0,6 V (para tensin de entrada negativa conduce como diodo a partir de 0,6 V).
t
Vo
t
Vi
R
Un circuito limitador anlogo puede configurarse con dos diodos en polarizacin
inversa segn la figura siguiente; en este caso los diodos recortarn las tensiones
positivas superiores a Vcc+0,6 y las negativas inferiores a 0,6 V, manteniendo la tensin
dentro del intervalo [-0,6 V ; Vcc+0,6]. Ambos circuitos son tiles para reducir al rango
de tensiones digitales [0 ; Vcc] pulsos de amplitud superior al mismo.
t
Vo
t
Vi
R
Vcc
T1. Semi conduct ores, uni n PN y t ransi st or MOS 247
T. 3. Transi st or MOS
Un transistor NMOS es un interruptor controlado por un terminal de puerta G: la
conduccin se establece sobre un substrato P entre dos difusiones N (fuente S y drenaje
D) que actan como contactos y la puerta configura un condensador intermedio cuya
carga permite la conduccin.
N N
Metal
Semiconductor
Substrato P
SiO aislante
2
G
Puerta
xido
Si la tensin de entrada Vi = VG es suficientemente positiva, la puerta atrae a los
electrones libres en el substrato y forma un canal conductor entre fuente y drenaje: el
transistor conduce. Esto sucede cuando la tensin VG > VTO, la tensin de puerta mayor
que la tensin umbral de conduccin.
Si la tensin de puerta es claramente inferior al valor de la tensin umbral VTO el
canal no se forma y no hay paso de corriente entre las zonas de difusin (fuente y
drenaje): el transistor no conduce.
En la zona de puerta (zona activa) la estructura que conforma el transistor est
formada por tres capas: conductor xido substrato; en un principio tales capas fueron
Metal xido Semiconductor (dando nombre al dispositivo: M - O - S), pero muy
pronto el metal fue substituido por silicio policristalino fuertemente dopado: polisilicio
xido semiconductor. Se utiliza polisilicio en lugar de metal para reducir el potencial
electroqumico que se genera en la interfase metalxido de silicio y que afecta
fuertemente a la tensin umbral.
Analicemos en detalle la formacin del canal y puesta en conduccin de un transistor
NMOS:
a) El substrato de los transistores NMOS es de tipo P, dopado con tomos de Boro con
slo 3 electrones de valencia, los cuales al formar parte de la estructura cristalina del
silicio presentan un hueco (un enlace no cubierto por electrn).
Cuando se aplica una tensin positiva a la puerta VG
> 0 respecto al substrato
(conectado a tensin de referencia 0 V) se forma una capa de vaciamiento, desprovista de
portadores, debida a la repulsin electrosttica que la tensin de puerta (+) ejerce sobre
los huecos del substrato. Al emigrar los huecos ms all de la capa de vaciamiento, los
tomos de boro quedan cargados negativamente, pues la ausencia de hueco se debe a que
un electrn lo ha cancelado (ha cubierto el enlace que se encontraba libre).
248 El ect rni ca Di gi t al
V
G
+ + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
Substrato P
En la figura anterior, los crculos negativos representan a los tomos de impureza P
(boro); todos ellos han perdido el hueco resultante de su dficit de electrones (han captado
un electrn). En cambio, los signos + representan a los huecos: en la capa de vaciamiento
no hay huecos porque han sido expulsados por repulsin electrosttica provocada por la
tensin positiva de la puerta; los tomos de boro inferiores, situados fuera de la capa
vaca, mantienen su hueco y por ello su carga elctrica es nula.
La densidad superficial de carga, es decir, carga por unidad de superficie Q ser:
QV = q . NA . eV q = carga del electrn,
NA = dopado del substrato = n de huecos por cm
3
,
eV = profundidad de la capa de vaciamiento.
b) Cuando la tensin de puerta es suficientemente positiva (tensin umbral del transistor)
se forma una capa superficial de electrones libres, arrastrados por el gradiente de tensin
existente en la capa de vaciamiento; sta es la capa de inversin: el semiconductor P
cambia de signo por acumulacin de electrones que dan lugar a una zona de tipo N.
Dichos electrones libres proceden de los pares electrn hueco del propio silicio
semiconductor: son, pues, portadores intrnsecos y su nmero es reducido.
V
G
Substrato P
- - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
INVERSIN
VACIAMIENTO
- - - - - - - - -
- - - - - - - - -
Para formar una capa de inversin o canal conductor se necesita una tensin en la
superficie del semiconductor B capaz de mantener una concentracin de electrones en la
banda de conduccin equivalente al dopado del substrato, es decir, el substrato P se
vuelve N en la zona superficial.
T1. Semi conduct ores, uni n PN y t ransi st or MOS 249
La carga total almacenada en el condensador puerta-substrato tiene dos
componentes: carga correspondiente a la capa de vaciamiento + carga debida al canal o
capa de inversin: Q = QV + QI, siendo Q carga por unidad de superficie. Por otra parte,
dicha carga ser proporcional a la diferencia de potencial existente entre puerta y
substrato con un factor de proporcionalidad que expresa la capacidad de dicho
condensador cox.
( ) superficie de unidad por capacidad c
superficie de unidad por carga Q
V c Q
Q Q Q
ox B G ox
V I
=
=
)
`
=
+ =
( ) ( ) | |
ox V B G ox V B G ox V I
c / Q V c Q V c Q Q Q + = = =
QI = Cox (VG - VTO)
donde
ox V B TO
c / Q V + =
VTO es la tensin umbral de conduccin del MOS: tensin de puerta necesaria para
que se forme la capa de inversin.
Comentario: aunque este anlisis es conceptualmente correcto, el valor concreto de
VTO no puede deducirse directamente del mismo ya que sobre VTO inciden otros efectos
de segundo orden relativamente complejos y, en la prctica, dicho valor lo fija el
fabricante (mediante un proceso de implantacin inica en la superficie del substrato).
c) Si sobre el substrato en su zona superficial se induce, por algn medio, una tensin V',
dicha tensin acta como referencia o nivel 0 de tensiones, de forma que la tensin
efectiva sobre el condensador MOS ser VG - V':
QI = cox ( VG - V' - VTO
).
Precisamente esto es lo que ocurre al polarizar la fuente y el drenaje del transistor
MOS para que circule una corriente elctrica a su travs: las tensiones aplicadas a drenaje
y fuente VD - VS establecen una distribucin de tensiones en la zona superficial del
substrato, variando desde VS (en el extremo de la fuente) hasta VD (en el del drenaje).
Orientando el eje X en la direccin del canal (a lo largo del mismo, de fuente a
drenaje), la concentracin de portadores de carga en el canal ser:
QI = cox (VG - VTO - V(x)) donde V(x) vara entre VS y VD.
250 El ect rni ca Di gi t al
d) La diferencia de tensin entre fuente y drenaje VD - VS da lugar a una intensidad de
corriente I que corresponde a la carga que atraviesa una superficie perpendicular al eje X
por unidad de tiempo.
N N
Substrato P
V
canal
G
V
D
V
S
fuente
drenaje
zona
de vaciamiento
x
longitud del transistor: L
anchura: W
eje X
La distribucin de portadores libres en la capa de inversin variar a lo largo del
canal (eje X): ser mayor al lado de la fuente que en el del drenaje ya que VDS > 0 y, por
ello, VG - VS > VD - VS. En un elemento diferencial x la cantidad de carga que
corresponde a los portadores libres, a todo lo ancho W del transistor ser:
QI = [densidad de carga] x volumen = QI . W. x = cox . (VG - VTO - V(x)) . W. x
v .
x
Q
dt
dQ
I I
= = I
x
Q
I
= =
=
v
Integrando la anterior ecuacin diferencial a lo largo del canal resulta
Idx
0
L
= .c
ox
.W. V
G
V
TO
V(x) ( )dv
V
S
V
D
I = .c
ox
.
W
L
. V
G
V
TO
V(x) ( )dv
V
S
V
D
= .A
donde
A= V
G
V
TO
V(x) ( ) dv
V
S
V
D
= =
DS
D
V
I
valor que disminuye al aumentar la tensin de puerta VGS. Esta regin de funcionamiento
del transistor se denomina zona lineal o zona hmica.
sta es la situacin booleana que corresponde a un transistor MOS en conduccin:
equivale a una resistencia cuyo valor puede hacerse adecuadamente pequeo a travs del
factor de forma, W/L; la resistencia es inversamente proporcional a su anchura W.
f) Al aumentar VDS el canal se hace ms estrecho (presenta menor nmero de
portadores) en el lado del drenaje (pues VGD < VGS) y, al aumentar la tensin del drenaje,
llega un momento en que el canal se satura, es decir, la diferencia de tensiones VG
V(x)
no supera la tensin umbral, VG
- V(x) < VTO y, por ello, en tal zona no hay capa de
inversin que contribuya a la conduccin: para V(x) > VG
- VTO
no existe canal.
Esta situacin de canal saturado se da si VD > VG
- VTO, en cuyo caso la integral A
se extiende solamente a la zona en que VG
VTO
V(x) es positiva y la intensidad
resultante es:
( )
2
TO GS
p
sat D,
V V
L
W
2
K
I =
expresin que no depende de la tensin de drenaje y que representa la intensidad mxima
que el transistor puede conducir para una tensin de puerta VGS determinada; esta
intensidad mxima (la de canal saturado) depende de la tensin de puerta, con la cual
aumenta cuadrticamente.
g) Entre ambas zonas: zona lineal y canal saturado, la intensidad (resultante de integrar A)
es:
DS
. . . V
2
V
V V
L
W
K = I
DS
TO GS p D
|
.
|
\
|
252 El ect rni ca Di gi t al
Et apa en f uent e comn:
R
D
V
DD
S
V = 0
V
G
D
I
V
o
= V
D
) V V (
L
W
K
1
0
TO G p
=
|
.
|
\
|
=
sat D,
D
D
TO G p eq
S
I saturado canal
V
2
V
V V
L
W
K = R lineal zona
V
Para canal no saturado:
D
. . . V
2
V
V V
L
W
K = I
D
TO G p D
|
.
|
\
|
Representando la intensidad que circula por el transistor (drenaje-fuente) ID en
funcin de la tensin entre sus terminales VD se obtiene la curva caracterstica de la
conduccin del transistor:
V
D
m = 1/Req
I (canal saturado)
D
I cuando V o cuando ff
D G
R cuando V o cuando ff eq
G
I
D
Actuando sobre las dimensiones geomtricas del transistor (sobre su factor de forma
ff = W/L), se modifica su resistencia en zona lineal y, en sentido contrario, la intensidad
que conduce con canal saturado.
W L ( en ambos casos ff ) Req ; I
D
(canal saturado) ;
la magnitud de ambas variaciones es proporcional, con el mismo factor de
proporcionalidad, a la modificacin del factor de forma.
T1. Semi conduct ores, uni n PN y t ransi st or MOS 253
Comport ami ent o bool eano:
Las situaciones booleanas de un transistor MOS corresponden a:
- transistor en corte I = 0 VGS < VTO
- transistor en zona lineal VDS = 0 VGS > VTO
Req
( )
TO G p
eq
V V
L
W
K
1
R
= .
En la conmutacin, en la puesta en conduccin del transistor, ste recorre la curva
caracterstica correspondiente a VGS = V(1) desde la situacin de canal saturado hasta
alcanzar la zona lineal con VDS = 0 V.
corte
V
D
I
D
conmutacin
V
conduccin
zona lineal
I
D,sat
corte
V
D
I
D
conmutacin
V
DD
conduccin
zona lineal
C
L
V
DD
D
I
La ID,sat seala la mxima intensidad
disponible por el transistor, con ella se
inicia el proceso de conmutacin, para
descargar las capacidades equivalentes
conectadas a su salida (debidas a otras
puertas o dispositivos a los que el transistor
comunica el valor booleano 0).
254 El ect rni ca Di gi t al
Transi st ores PMOS
En el transistor MOS de canal P son los huecos (en lugar de los electrones) los
portadores que forman el canal y, por ello, sus tensiones e intensidades tienen signo
opuesto al que presentan en el transistor NMOS: el transistor PMOS requiere tensiones de
polarizacin VD y de puerta VG negativas respecto al substrato y a la fuente, siendo
tambin negativa su tensin umbral VTO.
G G
- +
D
S
ID
+
D
S
ID
-
NMOS PMOS
Adems, la movilidad de los huecos es unas tres veces inferior a la de los electrones:
- Los electrones de la banda de conduccin se encuentran efectivamente libres, han
dejado su correspondiente enlace de valencia y se mueven por efecto del campo
elctrico con una cierta movilidad e.
- En cambio, los huecos se encuentran en la banda de valencia y no se mueven por s
mismos sino como resultado de que un electrn ligado, que se encontraba en un
enlace, pasa a cubrir el hueco y deja un nuevo hueco en su enlace anterior; de manera
que el hueco se mueve en sentido contrario a como lo hacen los electrones ligados
que lo rellenan.
- Siempre es ms costoso movilizar un electrn ligado (que forma parte de un enlace
en la banda de valencia) que un electrn libre (que se encuentra ya suelto en la banda
de conduccin); la movilidad de los huecos es muy inferior a la de los electrones.
En la prctica, la movilidad de los huecos h resulta del orden de un tercio de la
movilidad de los electrones e; por ello, a igualdad de dimensiones (a igualdad de factor
de forma W / L), la intensidad conducida por un transistor PMOS ser muy inferior a la
de un transistor NMOS y la resistencia que presenta en zona lineal ser considerablemente
mayor para el transistor PMOS respecto al NMOS.
T1. Semi conduct ores, uni n PN y t ransi st or MOS 255
Modelos SPICE
El simulador elctrico SPICE Simulation Program With Integrated Circuits
Emphasis permite diversos niveles para caracterizar los transistores MOS.
El modelo de nivel 1, modelo de Shichman - Hodges, corresponde a las funciones
desarrolladas anteriormente:
( )
=
|
.
|
\
|
=
saturado canal V V
2
K
I
saturado no l c
2
V
V V
L
W
K I
2
TO GS
p
D
DS
TO GS p D
ana V
DS
En este modelo la descripcin SPICE de un transistor MOS requiere solamente tres
parmetros:
KP Kp parmetro de transconductancia
VTO VTO tensin umbral del transistor
TOX tox espesor del xido de puerta
TOX es necesario para tener en cuenta la capacidad de puerta; caso de no utilizarlo,
se supone capacidad de puerta nula.
Ejemplos del modelo de transistores MOS (nivel 1):
MODEL "nombre" NMOS LEVEL =1 KP = 40U VTO = 1 TOX = 50E-9
MODEL "nombre" PMOS LEVEL = 1 KP = 15U VTO = -1 TOX = 50E-9
Es necesario indicar tambin la dimensin de los transistores L, W bien dentro del
modelo o en la declaracin de cada transistor; por defecto configura las dimensiones de
los transistores de 1 metro (dichos transistores de un metro cuadrado son tan grandes que
dan lugar a resultados de simulacin errneos).
256 El ect rni ca Di gi t al
Nota aclaratoria sobre los smbolos utilizados para los transistores MOS
Los transistores MOS son dispositivos de 4 terminales: fuente, drenaje, puerta y
substrato y sus smbolos normalizados son:
Transistor NMOS Transistor PMOS
substrato
En el caso de transistores MOS individuales, ciertamente hay ejemplares
comerciales con los cuatro terminales disponibles, pero es ms frecuente que tengan
solamente tres terminales externos, con el substrato conectado a la fuente:
Transistor NMOS Transistor PMOS
An ms, en el caso de circuitos integrados, el substrato de todos los transistores
NMOS es comn y lo mismo sucede con el substrato de los transistores PMOS, por lo que
no resulta necesario dibujar el terminal de substrato para cada transistor individual.
Por ello, los siguientes smbolos MOS con tres terminales (fuente, drenaje y puerta)
resultan sumamente adecuados para representar el funcionamiento de los transistores
MOS en los circuitos digitales y son los que se utilizan en este texto:
Transistor NMOS Transistor PMOS
Estos smbolos no incluyen el terminal correspondiente al substrato y, por tanto, no
reflejan la polarizacin del substrato de los transistores (necesaria para que las uniones de
la difusin y del canal con el substrato estn en polarizacin inversa y el transistor quede
aislado del substrato).
Habr de tenerse en cuenta en forma implcita que el substrato de los transistores
NMOS ha de conectarse a la tensin ms negativa de las de alimentacin del circuito
(que, generalmente, ser el terminal correspondiente a 0 V), mientras que el substrato de
los transistores PMOS ha de estar conectado a la tensin ms positiva de ellas (que suele
ser el terminal correspondiente a VCC).
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
T2 LOS PROCESOS DE FABRICACION CMOS
T2.1. Etapas bsicas en la integracin CMOS
T2.2. La litografa para delimitar zonas diferenciadas
T2.3. Tipos de procesos tecnolgicos implicados
T2.4. Un ejemplo detallado de integracin
T2.5. Parmetros fsicos de las regiones CMOS
El objetivo del presente captulo es presentar el proceso de fabricacin de circuitos
integrados CMOS de forma que se comprenda la finalidad de cada una de las etapas del
proceso y, a la vez, se profundice en la comprensin de la estructura de los transistores
MOS y en la manera de conectarlos para formar circuitos digitales.
La integracin CMOS consiste en formar zonas semiconductoras N y P y la zona de
xido de puerta con polisilicio encima de ella e interconectar los diversos transistores entre
s y con la fuente de alimentacin, todas estas conexiones mediante lneas de metal
(aluminio).
Las regiones citadas no se encuentran en el mismo plano sino en pisos sucesivos: las
difusiones penetran en la oblea semiconductora, el xido de puerta y el polisilicio se elevan
sobre ella y el metal circula por encima de todo el conjunto. Sendas capas de xido
separan los transistores entre s y al metal de todo lo que tiene debajo, salvo en los puntos
en que debe establecer conexin.
Pero, adems, las difusiones N requieren un substrato P que es el dopado propio de la
oblea mientras que las difusiones P precisan de substrato N que habr que formarlo
previamente sobre la oblea P: los pozos. El substrato P debe estar polarizado a la tensin
ms negativa y los pozos N a la ms positiva, en ambos casos con la finalidad de que las
uniones difusin-substrato queden aisladas, en polarizacin inversa.
Por ello, en la superficie de la oblea, separados por xido denominado de campo,
tendremos los transistores y los contactos de polarizacin de los substratos; al conjunto de
todos ellos (transistores, polarizaciones) les denominamos zonas activas.
La presentacin de las etapas del proceso de fabricacin CMOS se hace en dos vueltas:
primero, se explica conceptualmente el esquema bsico de integracin; luego, se comenta la
litografa, necesaria para diferenciar las zonas de actuacin sobre la oblea, y se indican
los diversos procesos tecnolgicos que se utilizan, para pasar a exponer, muy
detalladamente, cada uno de los pasos de la integracin.
Adems, se incluye un apartado final con datos numricos de los parmetros fsicos
(concentracin de impurezas, de portadores, conductividad, capacidad, ...) de las diversas
regiones CMOS a fin de poder disponer de una perspectiva cuantitativa y poder comparar
unas regiones con otras (y comparar, tambin, con las caractersticas propias de un
conductor).
258 El ect rni ca Di gi t al
T2. 1. . Et apas bsi cas en l a i nt egraci n CMOS
La presentacin de las etapas del proceso de integracin en este apartado es
conceptual y esquemtica; en los apartados siguientes se explicarn en detalle los
diversos procesos tecnolgicos y estas mismas etapas desglosadas en acciones concretas.
Las mscaras son el lazo de unin entre el diseo y la fabricacin; son los dibujos
que muestran la separacin entre unas zonas y otras en la superficie de la oblea,
diferenciando la regin sobre la que se acta en cada etapa del resto que permanece
inalterado en la misma etapa.
Las figuras se refieren a la integracin de un inversor, como puerta ms simple,
conformada por un solo transistor PMOS y otro NMOS.
Los valores referidos a espesores y profundidades dependen del proceso tecnolgico
concreto; tales datos numricos se incluyen para poder apreciar su orden de magnitud y
para comparar la magnitud relativa entre ellos.
0 . O b l e a i n i c i a l d e S i l i c i o d o p a d o t i p o P
dimetro: 100 - 125 mm grosor: 0,5 mm = 500 m.
1 . F o r m a c i n d e l o s P o z o s N
Sobre el substrato P, que es la propia oblea, se formarn los transistores NMOS; es
preciso crear zonas de substrato N para los transistores PMOS: los pozos.
Substrato P
Pozo N
MQSCARA 1: pozos
profundidad de los pozos ~ 5 m
T2. Los procesos de f abri caci n CMOS 259
2 . D e m a r c a c i n d e l a s z o n a s a c t i v a :
t ransi st ores y cont act os de pol ari zaci n del subst rat o
Adems de transistores NMOS y PMOS se integran zonas de difusin para polarizar
los substratos. El substrato P (oblea) se polarizar a la tensin ms negativa de las de
alimentacin (en digital a 0 V), a fin de que todas las uniones NP de las difusiones de los
transistores NMOS (incluyendo el canal cuando se forme) queden en polarizacin inversa
y con ello dichos transistores resulten aislados del propio substrato. Por la misma razn
los pozos N se polarizarn a la tensin ms positiva (en digital Vcc) y los transistores
PMOS quedarn aislados de su substrato (del pozo en que se encuentran).
Unas barreras intermedias de xido de silicio, denominado xido de campo,
separarn los transistores entre s y stos de los contactos de polarizacin; transistores y
contactos de polarizacin son considerados zonas activas.
SiO
2
transistor P transistor N
contacto
substrato P
Pozo N
transistor P transistor N
Pozo N
Substrato P
contacto
pozo N
MSCARA 2: zonas activas
espesor del xido de campo ~ 1 m
3 . x i d o d e p u e r t a y P o l i s i l i c i o
Pozo N
PoliSi
SiO
2
Substrato P
MSCARA 3: polisilicio
espesor del xido de puerta ~ 0,05 m
espesor del polisilicio ~ 0,2 m
260 El ect rni ca Di gi t al
4 . D i f u s i n N
Pozo N
Substrato P
Difusin N
MSCARA 4: difusin N
profundidad de la difusin N ~ 0,2 m
5 . D i f u s i n P
Pozo N
Substrato P
Difusin P
MSCARA 5: difusin P
profundidad de la difusin P ~ 0,5 m (doble que la Difusin N)
6 . C o n t a c t o s
Una capa de xido de silicio, xido de aislamiento o de recubrimiento, sirve para
separar el metal (que conecta los diversos transistores entre s y con las tensiones de
alimentacin) respecto al polisilicio y las difusiones que se encuentran debajo del mismo.
Ahora bien, dicha capa de xido debe llevar agujeros para los contactos de las lneas
de metal con las diversas zonas que deben ir conectadas (los contactos son como los
puntos de soldadura en las placas de circuitos impresos).
T2. Los procesos de f abri caci n CMOS 261
Pozo N
Substrato P
SiO
2
MSCARA 6: contactos
espesor del xido de aislamiento ~ 0,7 m
dimensiones de los contactos ~ 2 x 2 m
(las dimensiones de los contactos dependen fuertemente
de las dimensiones mnimas de la tecnologa).
El polisilicio tambin recibe contactos pero no sobre las zonas de puerta (por eso no
se ven en la figura, la cual corresponde a un corte vertical por la zona de puertas):
SiO
puerta
2
SiO
2
SiO
2
SiO
2
Polisilicio
de campo
xido
El polisilicio contina su recorrido, ms all de las zonas activas, por encima del
xido de campo, efectuando conexiones en polisilicio (por ejemplo, las puertas de los dos
transistores MOS complementarios) y conectando tambin con el metal de conexionado
general.
7 . C o n e x i o n e s e n m e t a l
Pozo N
Substrato P
Aluminio
MSCARA 7: metal
espesor del aluminio ~ 0,5 m
262 El ect rni ca Di gi t al
Por simplicidad del proceso de integracin suponemos que solamente incluye un
metal, pero hoy da se integran varios metales superpuestos y cada uno de ellos requiere
una capa de xido de silicio para separarlo del anterior metal, con contactos que se
establecen siempre de cada metal con el inferior (vas); cada metal precisa de dos
mscaras: una para las vas y otra para delimitar las lneas del propio metal.
8 . P a s i v a c i n
Una gruesa capa superior de xido de silicio sirve para proteger todo el circuito
integrado; en la misma debern dejarse abiertos agujeros (PADs) de las zonas en las
que se soldarn los hilos que unen el circuito con los terminales (pines) de la carcasa de
plstico (o cermica) que lo contiene.
Pozo N
Substrato P
2
SiO
Aluminio
xido de proteccin (pasivacin)
MSCARA 8: pasivacin
espesor de la capa exterior de oxido ~ 2 m
La mscara de pasivacin delimita simplemente los espacios de metal (PADs) donde
se soldarn los citados hilos que conectan con los terminales de la carcasa.
Transi st ores MOS aut oai sl ados: el probl ema del "l at ch-up"
Gracias a la polarizacin de los substratos los transistores MOS se encuentran
elctricamente aislados de su substrato y, por ello, aislados entre s.
Los transistores NMOS estn constituidos por regiones N (fuente - canal - drenaje)
en el seno de un substrato de tipo P; para aislar los transistores del substrato y para aislar
los diversos transistores entre s se requiere polarizar el substrato P con la tensin de
alimentacin ms negativa, de forma que todas las uniones NP con el substrato se
encuentren polarizadas inversamente.
T2. Los procesos de f abri caci n CMOS 263
De igual forma los transistores PMOS estn constituidos por regiones P en el seno de
un substrato de tipo N (pozo); para aislarlos se requiere polarizar el substrato N (todos los
pozos presentes en el integrado) con la tensin de alimentacin ms positiva, para que
todas las uniones PN se encuentren polarizadas en inverso.
Este requisito de aislamiento de los transistores se encuentra reforzado por el hecho
de que las regiones N y P propias de las estructuras CMOS se encuentran intercaladas
entre s y permiten la configuracin de estructuras parsitas tipo tiristor (PNPN), con
caractersticas destructivas al ser posible el disparo de una conduccin de intensidad
incontrolada. Este fenmeno autodestructivo debido al autodisparo de las estructuras
PNPN se conoce como latch-up (enganche).
+V
N
+
P
+
P
+
N
N
+
P
P
+
N
+
+ V
R1
P P
N
N N
P
R2
Si la cada de tensin en alguna de las resistencias transversales R1 y R2 consigue
acercarse a 0,5 V, ambos transistores conducen sin limitacin de intensidad (de hecho se
encuentran realimentados positivamente: el aumento de la IC de uno de ellos provoca el
de la IB del otro, con el consiguiente aumento de su IC y, por tanto, de la IB del primero),
configurando un tiristor en situacin de disparo y sin limitacin de intensidad.
Ambas resistencias se forman a travs de los substratos, de manera que interesa que
la resistividad de ambos substratos (el P de la oblea y el N de los pozos) no sea muy alta y
que la tensin de polarizacin alcance eficazmente a toda la masa del substrato (para que
las diferencias de tensin entre dos puntos del substrato sean mnimas).
En tal sentido es fundamental asegurar una polarizacin intensiva de toda la
superficie de los substratos: para evitar la posibilidad de latch-up es preciso polarizar cada
substrato con mltiples contactos, de forma que cualquier punto de su superficie se
encuentre cercano a un contacto de polarizacin; generalmente se requiere que la
distancia de cualquier punto a un contacto de polarizacin sea inferior a 50 m.
Tengamos presente que la polarizacin de los substratos es un requisito previo a las
consideraciones sobre latch-up: es necesaria para aislar los transistores del substrato, para
establecer uniones PN inversas entre ambos. El fenmeno del latch-up aade la exigencia
de que tal polarizacin se haga en forma mltiple e intensiva, de forma que cada punto de
la superficie del substrato se encuentre a menos de 50 m de un contacto de polarizacin.
264 El ect rni ca Di gi t al
Transi st ores MOS aut oal i neados
La puerta y el polisilicio se integran antes que las difusiones y la mscara de difusin
es continua y cruza a la del polisilicio; por ello, la puerta y las dos zonas de difusin
(fuente y drenaje) quedan autoalineadas: la difusin se realiza sobre todo el transistor pero
no penetra debajo del polisilicio.
N N
Substrato P
SiO
2
Difusin N
Polisilicio
El transistor se forma fsicamente por el cruce de 2 regiones: polisilicio y difusin;
debajo del polisilicio la difusin se encuentra interrumpida (ha penetrado en el propio
polisilicio pero no pasa debajo del mismo).
polisilicio
difusin
El cruce de mcaras polisilicio-difusin siempre da lugar a un transistor MOS.
Un pequeo desplazamiento de la mscara de difusin respecto a la de polisilicio no
impide la formacin del transistor en el cruce de ambas. En tal sentido se dice que el
transistor est autoalineado: puede formarse un poco desplazado respecto a ambas
mscaras pero se forma siempre que ambas se cruzan.
Abstrayendo las dimensiones superficiales, el transistor puede representarse en un
diagrama lineal como un cruce entre dos lneas: difusin - polisilicio.
DIFUSIN
verde
POLISILICIO
rojo
Las caractersticas de autoalineados y autoaislados que poseen los transistores MOS
reducen el tamao necesario para su integracin y permiten situarlos muy prximos entre
s, de modo que la densidad de integracin en tecnologas MOS es muy alta.
T2. Los procesos de f abri caci n CMOS 265
T2. 2. La l i t ograf a para del i mi t ar zonas di ferenci adas
El proceso de fabricacin de un circuito integrado CMOS se basa en la configuracin
de diversas zonas superficiales: pozos, zonas activas, lneas de polisilicio, zonas de
difusin N, zonas de difusin P, contactos, lneas de metal (vas entre metal 1 y metal 2,
lneas de metal 2,...), puntos de conexin hacia el exterior (PADs), etc. La construccin de
estas zonas da lugar a etapas sucesivas en el proceso de integracin.
En cada una de las etapas resulta necesario distinguir las reas sobre las que se acta
del resto de la superficie de la oblea; la delimitacin de reas viene dada por las mscaras
resultantes del proceso de diseo del circuito integrado.
La forma de discriminar o dividir la superficie de la oblea en dos regiones, para
actuar sobre una de ellas y no sobre la otra, es anloga a la forma de realizar circuitos
impresos a partir del fotolito que contiene el dibujo de sus pistas:
a) cubrir la superficie metlica de la placa con una resina fotosensible,
b) insolar con luz ultravioleta a travs del fotolito,
c) revelar la resina dando lugar a la distincin entre reas protegidas por la misma
y reas sin proteccin,
d) ataque con un cido (grabado) para disolver el metal de las zonas no protegidas.
Existen dos clases de resinas sensibles a la luz (fotorresinas): aquellas en las que el
revelado elimina la resina en las zonas expuestas a la radicacin (resinas fotopositivas) y
aquellas otras en que la resina es eliminada en las zonas no iluminadas (resinas
fotonegativas).
Este proceso consistente en trasladar a la superficie de la placa metlica o de la oblea
de silicio el dibujo de un fotolito o mscara recibe el nombre de litografa (ya que su
objetivo es anlogo a la impresin de textos y dibujos sobre papel).
La litografa utilizada en los circuitos impresos y la empleada para fabricar circuitos
integrados se diferencian en el factor de escala: en el caso de los circuitos impresos, las
anchuras de sus lneas son del orden de la dcima del milmetro y en los circuitos
integrados actuales corresponden a dcimas de micra.
266 El ect rni ca Di gi t al
La litografa permite transferir a la superficie de la oblea el dibujo representado en la
mscara; la trascripcin se realiza mediante una fotorresina que, una vez revelada,
establece una diferenciacin superficial entre las zonas protegidas por la fotorresina
residual y las zonas abiertas, disponibles para ser grabadas, es decir, para ser atacadas
qumicamente o sometidas a implantacin inica.
Proceso de insolacin Situacin tras el revelado
OBLEA
El proceso se realiza en la forma que sigue:
- sobre la superficie de la oblea se depositan unas gotas de resina y mediante giro
rpido se forma, por efecto centrfugo, una delgada pelcula homognea
- insolando con luz ultravioleta, a travs de la correspondiente mscara, se
impresiona la resina en las zonas en que la mscara permite el paso de luz
- en el revelado, mediante un adecuado disolvente qumico, la resina es eliminada
de las zonas expuestas a la luz (resina fotosensible positiva) o de las zonas no iluminadas
(resina fotosensible negativa).
La utilizacin de radiacin ultravioleta (cuya longitud de onda es inferior a la de las
radiaciones visibles) permite una resolucin de 0,4 m. El inters por seguir reduciendo
las dimensiones de transistores y conexiones para aumentar la densidad de integracin ha
impulsado el desarrollado de litografa por haces de electrones (resolucin ~ 0,1 m) y
litografa por rayos X (resolucin 0,01 m).
Para fabricar un nmero de circuitos reducido (en particular, para prototipos) se
utilizan procedimientos de litografa sin mscaras, insolando la resina mediante un chorro
de electrones (electron bean) controlado por ordenador, el cual dibuja secuencialmente
(en un barrido por lneas, anlogo al de TV) la correspondiente figura geomtrica. Esta
litografa por electron bean, al no utilizar mscaras, abarata considerablemente la
fabricacin de series reducidas (hace viable la fabricacin de circuitos integrados para un
reducido nmero de ejemplares).
La etapa siguiente a una litografa es siempre una grabacin, es decir, el ataque de las
zonas abiertas (no protegidas) con un disolvente cido, o una difusin, o sea, la insercin
de impurezas (fsforo o boro) a travs de dichas zonas para formar regiones P o N.
T2. Los procesos de f abri caci n CMOS 267
T2. 3. Ti pos de procesos t ecnol gi cos i mpl i cados
a) Litografa y grabado
LITO Litografa: comentado en el apartado anterior. La litografa comprende varias
acciones sucesivas: depsito y homogeneizacin de la resina, posicionamiento respecto a
la mscara, insolacin, revelado,...
GRAB Grabado: Consiste en eliminar el xido de silicio, el polisilicio o el metal de
las zonas no protegidas por la fotorresina, una vez que sta ha sido revelada; la litografa
ha reflejado sobre la superficie del material a eliminar el dibujo de la mscara empleada,
distinguiendo la zona en que debe permanecer dicho material del resto en que debe ser
eliminado. La grabacin se efecta con disolventes qumicos adecuados, principalmente
cido fluorhdrico FH, controlando el tiempo de ataque de los mismos. En muchas
ocasiones este proceso de grabado se realiza con el atacante vaporizado al vaco y en
estado de plasma por aplicacin de campos elctricos de elevada frecuencia.
b) Oxidacin
OXter Oxidacin trmica: Se realiza directamente sobre la oblea en atmsfera
oxidante a temperatura superior a los 1000C. La oxidacin hmeda, con vapor de agua,
es un proceso relativamente rpido (~ 0,5 m/hora) pero no muy preciso; se utiliza para
hacer crecer el xido grueso de separacin de las zonas activas (xido de campo). La
oxidacin seca, en atmsfera de O2, es mucho ms lenta (~ 0,02 m/hora), permitiendo
controlar con precisin el espesor del xido; por ello se utiliza para el crecimiento del
xido fino de puerta. En ambos casos, la oxidacin trmica consume substrato,
penetrando ligeramente el xido en el mismo.
OXdep Depsito de xido: Los xidos de recubrimiento y de pasivacin han de ser
obtenidos mediante depsito; para ello suele emplearse la reaccin del hidruro de silicio
SiH4 con el oxgeno, dando lugar, a travs de un proceso de combustin, a xido de silicio
SiO2 que se deposita y agua vaporizada. Esta deposicin se realiza a temperatura de unos
500C.
c) Depsito
POLI Depsito de polisilicio: Se realiza por va qumica, forzando la ruptura
molecular (cracking) del hidruro de silicio SiH4, lo cual da lugar a deposicin de silicio
en forma policristalina (mltiples cristales).
ALdep Depsito de metal (Al): Se efecta por va fsica, mediante evaporacin del
aluminio en vaco o por pulverizacin catdica, a unos 400C de temperatura, formando
en ambos casos un plasma activo (generado por aplicacin de campos de alta frecuencia);
se aade al metal una pequea proporcin de silicio que facilita los contactos, al
configurar una aleacin Al-Si.
268 El ect rni ca Di gi t al
NIdep Depsito de nitruros de silicio: Tales nitruros se utilizan como aislantes en
las primeras etapas de la integracin, para formar el xido de campo con perfiles suaves
(perfiles de pico de pjaro >) en la separacin de zonas activas, y luego se eliminan; se
depositan por reaccin qumica entre amoniaco e hidruro de silicio:
NH3
+ SiH4 Si3H4 + H2.
d) Difusin e implantacin inica
DIF Difusin: Representa la forma clsica de obtener el dopado del
semiconductor, a temperaturas muy altas (> 1200C), en un horno de cuarzo, con una
atmsfera rica en la correspondiente impureza (generalmente fsforo para dopado tipo N
y boro para tipo P).
IIn Implantacin inica: Se refieren a implantar en la superficie del substrato,
con profundidades del orden de 0,1 m, tomos de impurezas que han sido previamente
ionizados para poder acelerarlos mediante un campo elctrico. La densidad de
concentracin de impurezas, tras un proceso de implantacin inica, presenta un perfil
gausiano con una fuerte pendiente de cada:
e' e
para campos elctricos ~ 100 Kev
e' 0,25 m en el caso del Boro
e' 0,15 m en el caso del Fsforo
En un principio, la implantacin inica se utiliz para modificar superficialmente el
dopado en la zona de canal y con ello ajustar la tensin umbral de los transistores.
Actualmente se utiliza tambin para crear las zonas de difusin (fuente y drenaje),
sustituyendo a los procesos de difusin; en este caso, la implantacin inica va seguida de
un recocido que aumenta la profundidad de las zonas dopadas.
RECC Recocido: La implantacin inica da lugar a dopados muy superficiales;
efectuando un recocido posterior a alta temperatura (> 1000C) se produce una
redistribucin de las impurezas, que se difunden por efecto trmico, penetrando hacia el
interior de la oblea y ocupando un mayor volumen.
e) Lavados
LAVO Lavado: A lo largo del proceso de integracin se realizan numerosos lavados
para eliminar la capa superficial (xido, nitruro, resina,...) mediante el disolvente
adecuado.
T2. Los procesos de f abri caci n CMOS 269
T2. 3. Un ej empl o det al l ado de i nt egraci n
A. Oblea de silicio, dopada P
dopado 10
15
at/cm
3
: 100 - 125 mm e: 0,5 mm = 500 m
1. LAVO Lavado inicial de la oblea para limpiar a fondo su superficie.
B. Implantacin inica de fsforo para construir pozos N
Si O
2
Si O
2
Fsforo
P
2. OXter Oxidacin de toda la superficie. e 0,5 m
3. LITO Definicin por litografa de todos los pozos. M1 = pozos
(en cada litografa se indica la mscara a utilizar, con la letra M)
4. GRAB Eliminacin del xido en las zonas de pozos.
5. LAVO Eliminacin de la fotorresina residual.
6. IIn(P) Implantacin inica de fsforo.
concentracin 10
13
at/cm
2
5x10
17
at/cm
3
e 0,2 m
adems de la formacin del plozo,
esta implantacin inica tiene dos utilidades complementarias:
a) da lugar a una zona N
+
en la superficie que servir para mejorar la separacin
entre zonas activas del propio pozo (debajo del xido de campo) y la separacin entre el
pozo y el substrato en los bordes de los pozos;
b) se controla adecuadamente para realizar (junto con la implantacin de boro de la
etapa H) el ajuste de la tensin umbral de los transistores PMOS.
C. Redistribucin del fsforo para conformar el pozo
Se realiza por recocido en ambiente rico en oxgeno de forma que el xido en la
superficie del pozo impida la emigracin hacia afuera del fsforo implantado.
N
Si O
2
270 El ect rni ca Di gi t al
7. RECC Recocido. 20 horas, rampa de temperatura de 900 a 1200C
concentracin fsforo 10
16
at/cm
2
espesor pozo 5
concentracin N equivalente 10
16
10
15
10
16
8. LAVO Eliminacin de la capa superficial de xido.
D. Demarcacin de zona de activas
Las zonas activas delimitan los transistores y los contactos de los substratos; sobre
ellas se deposita una capa protectora xido-nitruro-xido (SiO2 Si3N4 SiO2), para
inhibir la formacin del xido de campo en ellas y para facilitar que la formacin de dicho
xido se efecte con perfiles suaves (tipo pico de pjaro).
Si N
3 4
Si O
2
N
9. OXter Oxidacin fina de la superficie de la oblea. e 0,05 m
10. NIdep Depsito de nitruro de silicio. e 0,2 m
11. OXdep Depsito de xido de silicio. e 0,05 m
12. LITO Definicin por litografa de las zonas activas. M2 = zonas activas
se utiliza resina fotosensible negativa para dejar protegidas dichas zonas
13. GRAB Eliminacin del xido y nitruro de las zonas no protegidas.
14. LAVO Eliminacin de la fotorresina residual.
E. Difusin del boro (formacin de zonas P
+
) para mejorar las separaciones
N
<
P
Resina fotosensible
P
+
P
+
P
+
T2. Los procesos de f abri caci n CMOS 271
15. LITO Proteccin por litografa de los pozos. M1 = pozos
se utiliza resina fotosensible negativa para proteger los pozos.
16. DIF(B) Difusin de boro en el substrato P (zonas de xido de campo).
esta difusin formar zonas semiconductoras P
+
en los extremos de los pozos
y en las zonas de separacin entre las zonas activas del substrato P
concentracin 10
17
at/cm
3
e 0,2 m
17. LAVO Eliminacin de la fotorresina residual.
Las zonas P
+
de separacin formadas en esta etapa dentro del substrato P mejoran el
aislamiento de los transistores de canal NMOS y el aislamiento de los pozos en sus
bordes; el mismo efecto se produce en los pozos mediante la implantacin de fsforo en la
etapa B.
F. Oxidacin gruesa para separar las zonas activas
N
P
P
+
S
i
O
2
P
+
P
+
P
+
18. OXter Oxidacin gruesa de la superficie. e 1 m
oxidacin de las zonas no protegidas por el xidonitruroxido
19. LAVO Eliminacin de la capa superficial xidonitruroxido.
G. Oxidacin fina de puerta
20. OXter Oxidacin fina para formar el dielctrico de puerta.
e 0,05 m = 500
Esta etapa de oxidacin fina y muy controlada para formar el xido de puerta de
todos los transistores MOS es la ms delicada de todo el proceso de integracin, ya que de
las caractersticas de este xido de puerta y de su espesor (cuya magnitud es del orden de
las centsimas de micra) depende el correcto funcionamiento de los transistores MOS y el
valor concreto de su transconductancia.
272 El ect rni ca Di gi t al
H. Ajuste de V
TO
por implantacin de boro
N
P
S
i
O
2
Si O
2
Boro
21. IIn(B) Implantacin inica de boro en toda la superficie
para ajustar VTO de los transistores N.
concentracin de boro 10
12
at/cm
2
10
16
at/cm
3
e 0,2 m
Con esta implantacin inica se ajusta la tensin umbral VTO de los transistores
NMOS; adems, esta implantacin combinada con la de fsforo en la etapa A sirve para
ajustar tambin la de los transistores PMOS. Inicialmente las tensiones umbrales resultan
del orden de 0,4 V para NMOS y - 2 V para PMOS; la implantacin de boro aumenta
ambas tensiones (en sentido positivo) y sita su valor absoluto en el entorno de 1 V.
I. Depsito de polisilicio y recorte del mismo
N
P
S
i
O
2
Poli
Si O
2
22. POLI Depsito de polisilicio sobre toda la superficie. e 0,2 m.
23. DIF(P) Dopado del polisilicio con fsforo
para hacerlo buen conductor (semiconductor N).
concentracin N
D
10
20
at/cm
3
24. OXter Formacin de una capa de xido protector sobre el polisilicio. e 1
m
25. LITO Definicin por litografa de las zonas de puerta
y conexiones en polisilicio. M3 = poli
se utiliza resina fotosensible negativa
26. GRAB Eliminacin del xido en el resto de la superficie,
no protegida por la resina.
27. GRAB Eliminacin del polisilicio en la parte abierta,
no protegida por el xido anterior.
28. LAVO Eliminacin de la resina residual.
T2. Los procesos de f abri caci n CMOS 273
J. Implantacin de fsforo (transistores NMOS y contactos substrato N)
P
N
FSFORO
RESINA+
Fsforo
FSFORO
29. LITO Definicin por litografa de las zonas N
+
(transistores canal N y contactos substrato N). M4 = dif.N
se utiliza resina fotopositiva que deja descubiertas dichas zonas
30. IIn(P) Implantacin en ellas de fsforo.
100 Kev
concentracin 10
15
at/cm
2
10
20
at/cm
3
e 0,1 m
31. LAVO Eliminacin de la resina residual.
K. Implantacin de boro (transistores P y contactos substrato P)
P
N
FSFORO
RESINA-
Boro
BORO FSFORO
BORO
32. LITO Definicin por litografa de las zonas P
+
M4 = dif.N
(transistores canal P y contactos substrato P).
se emplea la misma mscara que en la etapa anterior
y resina fotosensible negativa que deja protegidas las zonas N
+
.
33. IIn(B) Implantacin de boro en el resto.
100 Kev
concentracin 10
15
at/cm
2
5x10
19
at/cm
3
e 0,2 m
34. LAVO Eliminacin de la resina residual.
274 El ect rni ca Di gi t al
L. Conformacin por redistribucin de las zonas de difusin N
+
y P
+
P
N
FSFORO
BORO
FSFORO BORO
35. RECC Recocido para redistribuir las impurezas implantadas
ensanchando las zonas N
+
y P
+
.
duracin 30 minutos
concentraciones resultantes:
difusin N 10
20
at/cm
3
e
N
+ 0,2 m
difusin P 10
19
at/cm
3
e
P
+ 0,5 m
M. Recubrimiento por xido y apertura de contactos
P
N
Si O
2
36. OXdep Deposito de una capa de xido grueso de recubrimiento.
e 0,7 m
37. LITO Definicin por litografa de los contactos. M5 = contactos
en ellos se elimina el xido superficial
para permitir que el metal conecte con la capa inferior:
difusiones, substratos o polisilicio;
se utiliza resina fotosensible positiva.
38. GRAB Eliminacin del xido en los contactos.
39. LAVO Eliminacin de la resina residual.
T2. Los procesos de f abri caci n CMOS 275
N. Metalizacin y recorte de las conexiones sobre el metal
P
N
AL
40. Aldep Depsito de metal (Aluminio) sobre toda la superficie.
e 0,5 m
el metal penetra asimismo por los agujeros de contactos
definidos en la etapa anterior.
41. LITO Delimitacin por litografa de las conexiones metlicas.
M6 = metal
43. GRAB Eliminacin del metal exterior a las conexiones.
44. LAVO Eliminacin de la resina residual.
O. Pasivacin y delimitacin de PAD's
45. OXdep Depsito de una gruesa capa de xido de pasivacin.
esta capa de xido proteger a todo el circuito integrado. e 2 m
46. LITO Demarcacin de los puntos de conexin hacia el exterior
M7 = pasivacin
se delimitan los puntos de soldadura (PAD's) de los hilos metlicos
que conectarn con las patillas (pines) del encapsulado.
47. GRAB Eliminacin del xido de pasivacin en dichos espacios.
48. LAVO Eliminacin de la resina residual.
276 El ect rni ca Di gi t al
En resumen: 7 mscaras: M1 pozos (substrato N para transistores P)
M2 zonas activas (transistores y contactos substratos)
M3 lneas de polisilicio
M4 zonas N
+
M4 zonas P
+
M5 contactos
M6 lneas de metal
M7 puntos de conexin (PAD's)
48 operaciones: 8 oxidaciones (1 de altsima precisin: tox)
3 depsitos: nitruro, polisilicio, metal
9 litografas
7 grabados
4 implantaciones inicas
1 difusin
2 recocidos
14 lavados o limpiezas.
En el caso habitual de utilizar un segundo metal son necesarias dos mscaras
adicionales:
M6 bis vas: contactos del segundo metal con el primero
M6 tris lneas de metal referidas al segundo de ellos
y las correspondientes operaciones de depsito del xido de separacin intermedio,
litografa de las vas, depsito del segundo metal, litografa de sus lneas de conexin y
grabado de las mismas.
Para circuitos integrados digitales complejos se utilizan hasta 6 capas de metal
superpuestas. Asimismo, en integrados analgicos se emplean varias capas de metal y
suelen utilizarse tambin dos polisilicios; para el segundo polisilicio es necesaria una
mscara adicional:
M3 bis lneas del segundo polisilicio
y las subsiguientes operaciones de depsito del xido de separacin intermedio, depsito
del segundo polisilicio, litografa de las lneas del mismo y grabado de ellas.
T2. Los procesos de f abri caci n CMOS 277
T2. 5. Parmet ros f si cos de l as regi ones CMOS
Val ores t pi cos de l os di versos parmetros
Los valores de los diversos parmetros dependen del proceso tecnolgico concreto;
estos datos numricos se detallan a efectos de poder apreciar su orden de magnitud y
comparar la magnitud relativa entre ellos.
S E MI C O N D U C T O R E S
Oblea inicial de silicio dopado tipo P
dimetro: 90 - 125 mm grosor: 0,5 mm = 500 m
S i l i c i o S i
El silicio cristaliza en red cbica centrada en las caras
lado del cubo: 5,43 = 543 pm
distancia entre tomos: 2,35 = 235 pm
concentracin: 5 . 10
22
ts/cm
3
~ 10
22
cm
-3
orientacin cristalogrfica 1 0 0 (seccin por las caras del cubo).
separacin energtica Banda de Conduccin - Banda de Valencia
E
G
= 1,124 eV 1 eV = 16 . 10
-20
julios
Una energa normal a escala humana (por ejemplo, la potencial gravitatoria de un
kilogramo a una altura de 1 metro o la energa calorfica de un litro de agua al aumentar
su temperatura en 2 grados) es cien mil trillones de veces superior al electrn-voltio.
278 El ect rni ca Di gi t al
Al recombinarse un electrn con un hueco se produce un fotn, cuya energa ser la
propia de separacin entre la banda de conduccin y la de valencia; la mecnica cuntica
permite calcular la longitud de onda y la frecuencia del fotn en relacin con su energa:
E = h . = h . / c h = 66,25 . 10
-35
julios.s
= / c c = 300 . 10
6
m/s
~ 1,1 m ~ 270 . 10
12
Hz infrarrojo
Esta frecuencia se encuentra fuera (por debajo) del espectro visible, el cual va de los
400 a los 800 THz (1 THz = 10
12
Hz); los 270 THz corresponden a un infrarrojo muy
bajo. [Los diodos LED utilizan esta recombinacin electrn-hueco para producir
radicacin luminosa aprovechando la mayor separacin energtica entre las bandas de
conduccin y valencia en el arseniuro de galio y fsforo, As Ga P; de esta forma se
consiguen diodos LED rojos, 1,8 eV 450 THz, naranjas, 2 eV 500 THz, y amarillos,
2,1 eV 520 THz.]
nmero de portadores
pares electrn/hueco (en BC/BV):
2.K.T
q.EG -
2
i
e . 1020 . 0,2 ~ n
K = 8,62 . 10
-5
ev
a "temperatura ambiente" t = 27C = 300K
K.T/q = 0,0026 voltios n
i
~ 10
10
cm
-3
D o p a d o
** tipo N tomos de fsforo P E
G
= 0,045 ev (25 veces < Si)
concentracin N
D
( n de tomos donadores / cm
3
)
portadores mayoritarios: electrones n = N
D
** tipo P tomos de boro B E
G
= 0,045 ev (25 veces < Si)
concentracin N
A
( n de tomos aceptores / cm
3
)
portadores mayoritarios: huecos p = N
A
substrato P (oblea)
dopado N
A
~ 10
15
ts.B/cm
3
un tomo de impureza por cada 50 billones de tomos de silicio
en cambio, 100.000 huecos por cada par electrn-hueco del silicio
T2. Los procesos de f abri caci n CMOS 279
substrato N (pozo)
dopado ND
~ 10
16
ts.P/cm
3
el pozo se forma sobre el substrato P (oblea) aadiendo tomos de fsforo para
invertir el tipo de semiconductor: el dopado N del pozo tiene que ser, al menos, un orden
de magnitud superior (10 veces mayor) que el dopado del substrato P para cambiarlo a N
polisilicio y difusin N
dopado ND
~ 10
20
ts.P/cm
3
un tomo de impureza por cada 500 tomos de silicio
en cambio, 10.000 millones de electrones por cada par electrn-hueco del silicio
100.000 electrones por cada hueco del substrato P
difusin P
dopado ND
~ 10
19
ts.P/cm
3
la difusin P penetra tambin en el polisilicio en la zona de puerta de los transistores
PMOS: es necesario asegurar que el dopado N del polisilicio no se modifica
apreciablemente; para ello la difusin P ha de ser un orden de magnitud inferior al dopado
del polisilicio
C O N D U C T I V I D A D
conduccin intrnseca del silicio
pares electrn/hueco a "temperatura ambiente" t = 27C = 300K n
i
~ 10
10
cm
-3
movilidad elctrica
e
~ 1360 cm
2
/V.s
h
~ 460 cm
2
/V.s
e
/
h
~ 3
la movilidad de los huecos es considerablemente inferior a la de los electrones libres,
ya que son electrones ligados (a enlaces de valencia) los que han de desplazarse para que
un hueco se mueva
conductividad elctrica = q . e . n + q . h . p
n = concentracin de electrones en Banda de Conduccin
p = concentracin de huecos en Banda de Valencia
q = carga del electrn = 16 . 10
-20
culombios
= q . ( e + h ) . ni
~ 3 . 10
-6
(.cm
)-1
resistividad elctrica = 1 / ~ 300 K.cm
280 El ect rni ca Di gi t al
conduccin del substrato P N
A
~ 10
15
ts.B/cm
3
movilidad elctrica h ~ 450 cm
2
/V.s
es prxima a la del silicio puro ya que el dopado es bajo
conductividad elctrica = q . h . NA
~ 70 . 10
-3
(.cm)
-1
resistividad elctrica = 1 / ~ 15 .cm
el substrato P conduce unas 20.000 veces mejor que el silicio puro
conduccin del pozo N ND
~ 10
16
ts.P/cm
3
movilidad elctrica e ~ 1200 cm
2
/V.s
conductividad elctrica = q . h . ND
~ 2 (.cm
)-1
resistividad elctrica = 1 / ~ 0,5 .cm
el pozo N conduce unas 30 veces mejor que el substrato P, ya que se encuentra 10
veces ms dopado y conduce mediante electrones (cuya movilidad es 3 veces superior)
conduccin del polisilicio y de la difusin N ND
~ 10
20
ts.P/cm
3
movilidad elctrica e ~ 100 cm
2
/V.s
conductividad elctrica = q . e . ND
~ 1600 (.cm)
-1
resistividad elctrica = 1 / ~ 0,6 m.cm
polisilicio y difusin N conducen unas 1.000 veces mejor que el pozo N; en realidad
tienen 10.000 veces ms portadores pero la movilidad es 12 veces ms pequea, debido al
gran nmero de impurezas en la red cristalina, las cuales atraen a los portadores
mayoritarios, frenan su avance y aumentan el nmero de choques con la red cristalina
conduccin de la difusin P ND
~ 10
19
ts.P/cm
3
movilidad elctrica h ~ 80 cm
2
/V.s
conductividad elctrica = q . h . NA
~ 130 (.cm)
-1
resistividad elctrica = 1 / ~ 8 m.cm
la difusin P conduce unas 10 veces peor que la difusin N ya que la concentracin
de impurezas es menor
T2. Los procesos de f abri caci n CMOS 281
conduccin en el canal
C a n a l N : movilidad superficial e ~ 600 cm
2
/V.s
C a n a l P : movilidad superficial h ~ 200 cm
2
/V.s
e / h ~ 3
conduccin en el metal Aluminio Al
conductividad elctrica ~ 375 . 10
3
(.cm)
-1
resistividad elctrica ~ 2,65 .cm
el aluminio conduce unas 250 veces mejor que el polisilicio
resistencia de los contactos
resistencia metal-difusin N o P ~ 10
resistencia metal-polisilicio ~ 5
las resistencias de contacto con las difusiones son mayores que con el polisilicio ya
que aqullas se encuentran a mayor distancia (ms abajo) de la capa de metal
E S P E S O R E S
Obviamente dependen mucho de la tecnologa; se incluyen estos datos como
referencia genrica.
oblea inicial de silicio dopado tipo P
dimetro: 90 - 125 mm grosor: 0,5 mm = 500 m
POZO N
espesor ewell ~ 5 m
POLISILICIO
espesor epoli ~ 0,2 m
DIFUSIN N
profundidad eN ~ 0,2 m
DIFUSIN P
profundidad eP ~ 0,5 m para compensar su menor conductividad
282 El ect rni ca Di gi t al
XIDO DE PUERTA
espesor tox ~ 0,05 m = 500
la tensin mxima que puede ser aplicada a la puerta sin riesgo de perforacin del
xido est en relacin con el espesor del mismo:
campo elctrico mximo que soporta Emx
~ 600 V/m
voltaje de ruptura para tox ~ 50 nm: Vmx
= Emx
. tox ~ 30 V
la reduccin de dimensiones de los transistores tiende tambin a reducir el espesor
del xido de puerta para aumentar su transconductancia Kp y, con ella, la intensidad
disponible, pero ha de tenerse en cuenta la limitacin que xidos de puerta muy finos
representan en relacin con su tensin de ruptura:
voltaje de ruptura para tox ~ 10 nm: Vmx
= Emx
. tox ~ 6 V
solamente con tensiones de alimentacin inferiores a 5 V puede reducirse el espesor
del xido de puerta al orden de 0,01 m
XIDO DE CAMPO
espesor eox,campo ~ 1 m
XIDO DE AISLAMIENTO
espesor eox,aisl ~ 0,7 m
XIDO DE PASIVACIN
capa exterior de xido de silicio espesor ~ 2 m
METAL
espesor eAl ~ 0,5 m
C A P A C I D A D
Las capacidades entre las diversas capas dependen fuertemente (proporcin inversa)
del espesor del xido de silicio intermedio, los valores siguientes estn en relacin con
los espesores de xido indicados en la pgina anterior
coeficiente dielctrico del silicio
coeficiente dielctrico del vaco: 0
= 8,85 pF/m
Si
= 117 0 100 pF/m = 0,1 fF/m 1fF = 10
-15
Faradios
coeficiente dielctrico del xido de silicio
ox
= 3,97 0 35 pF/m = 0,035 fF/m
T2. Los procesos de f abri caci n CMOS 283
capacidad del xido de puerta SiO
2
espesor tox ~ 0,05 m = 500
coeficiente dielctrico xido de silicio ox
= 0,035 fF/m
Cox = ox . S / tox ~ 0,7 fF/m
2
capacidad del xido de campo
espesor eox,campo ~ 1 m
efecto capacitivo (poli-substrato) C = Si02 . S / eox,campo ~ 0,04 fF/m
2
capacidad del xido de aislamiento o recubrimiento
espesor eox,aisl ~ 0,7 m
efecto capacitivo (metal-polisilicio) C = Si02 . S / eox,aisl ~ 0,06 fF/m
2
efecto capacitivo metal-substrato C =
Si02
. S / (eox,aisl + eox,campo)
~ 0,02 fF/m
2
efecto capacitivo difusin N - substrato (unin NP en polarizacin inversa)
- por rea 0,1 fF/m
2
- por permetro 0,15 fF/m
efecto capacitivo difusin P - substrato (unin PN en polarizacin inversa)
- por rea 0,6 fF/m
2
- por permetro 0,4 fF/m
MULTICAPA
2 Me t a l e s
el primero de ellos se hace ms delgado: espesor eAl(1) ~ 0,2 m
resistencia contacto metal-metal ~ 0,7
separacin entre ambos metales ~ 0,7 m
2 P o l i s i l i c i o s
separacin entre ambos ~ 0,4 m
capacidad entre ambos C = Si02 . S / (eox,aisl) ~ 0,1 fF/m
2
284 El ect rni ca Di gi t al
C o n c e n t r a c i n r e l a t i v a d e t o m o s y p o r t a d o r e s
1 m (una micra) es una unidad de medida muy adecuada en Microelectrnica.
El siguiente cuadro expresa, en nmero por micra cbica, las concentraciones de tomos y
de portadores y permite comparar unas respecto a otras.
Transistor NMOS nmero / m
3
tomos de Si
red cristalina de Si puro
10
10
= 10.000 millones
pares electrn-hueco
a temperatura ambiente
1 cada 100 m
3
1 par e-h
por cada 10
12
tomos de Si
Substrato P
10
3
= 1.000 tomos
1 tomo de Boro por cada
10 millones de ts. de Si
portadores de carga
en Substrato P
10
3
100.000 veces mayor
que en el Silicio puro
Difusin N
10
8
= 100 millones
1 tomo de Fsforo cada
100 tomos de Si
portadores de carga
en Difusin N
10
8
100.000 veces mayor
que en el Substrato
Polisilicio
10
8
= 100 millones
dopado anlogo
al de Difusin N
Transistor PMOS
Pozo N
10
4
= 10.000 tomos
10 veces ms que Substrato P
para cambiar su polaridad a N
Difusin P
10
7
= 10 millones
10 veces menor que Difusin N
para no cambiar el dopado
del Polisilicio
T2. Los procesos de f abri caci n CMOS 285
C o n d u c t i v i d a d r e l a t i v a
Consideremos un cable de 1 m de largo y de 1 mm
2
de seccin construido con cada
uno de los materiales siguientes; el cuadro que viene a continuacin expresa su resistencia
para los diversos materiales semiconductores que entran a formar parte de la integracin
CMOS:
Seccin
Longitud
. R =
Silicio puro
= 3.000 M
Substrato P
= 150 K.
conduce 20.000 veces
mejor que el Silicio puro.
Substrato N
(Pozo)
= 5 K
conduce 30 veces
mejor que el Substrato.
Difusin N
(Transistor NMOS)
= 6
conduce 800 veces
mejor que el pozo N.
Difusin P
(Transistor PMOS)
= 80
conduce 12 veces
peor que la Difusin N.
Polisilicio
= 6 .
conduce igual que la Difusin N.
Aluminio
= 26 m
conduce 230 veces
mejor que el Polisilicio.
286 El ect rni ca Di gi t al
R e s i s t e n c i a p o r c u a d r o
La resistencia de un cuadrado es independiente del lado del mismo, ya que se
compensa longitud con anchura:
espesor espesor . L
L
.
seccin
longitud
. R
= = = .
En los circuitos integrados, la resistencia por cuadro es un parmetro muy til que permite
calcular la resistencia que presenta cualquier lnea de conexin.
Lnea de: Resistencia por cuadro
Pozo R
= 1 K
Difusin N R
= 30
Difusin P R
= 160
Polisilicio R
= 30
Aluminio R
= 50 m
C a p a c i d a d p o r m m
2
Para construir un condensador en un circuito integrado analgico, puede
aprovecharse la capacidad que presentan las diversas parejas de elementos conductores;
este cuadro muestra el orden de magnitud de la capacidad que presenta un condensador
de 1 mm
2
de superficie:
espesor
Superficie
. C =
(los valores se refieren a los espesores de las capas de xido indicados anteriormente)
Placas del condensador
capacidad por mm
2
Polisilicio - Substrato (zona de puerta MOS) = 700 pF
Polisilicio - Substrato (sobre xido de campo) = 35 pF
Metal - Polisilicio = 50 pF
Metal - Substrato = 20 pF
Metal2 Metal1 = 50 pF
Polisilicio - Polisilicio = 90 pF
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
T3 EL RUIDO EN LOS SISTEMAS DIGITALES
T3.1. El problema del ruido
T3.2. Consideraciones previas al estudio de interferencias
T3.3. Elementos para reducir el efecto del ruido
T3.4. Mecanismos de produccin/transmisin de interferencias
T3.5. Reglas bsicas para el diseo
El ruido es un compaero inevitable y molesto de los sistemas digitales, con el que tienen
que convivir. La realidad no es nada limpia: los circuitos electrnicos han de sobrevivir
entre la propia basura electromagntica que ellos generan y la basura de los dems, la
que se genera en su entorno.
Los circuitos electrnicos trabajan con seales elctricas, que son, por si mismas, seales
electromagnticas. Por ello, los circuitos son sensibles a cualquier seal electromagntica y,
al recibir seales externas, son perturbados por ellas: se ven afectados por interferencias
que pueden alterar su buen funcionamiento, causando errores. Adems, los propios
circuitos producen seales electromagnticas parsitas: son generadores de interferencias
que les afectan a ellos mismos y que afectan tambin al resto de los circuitos de su entorno.
Este captulo pretende tratar en detalle las causas y efectos del ruido
electromagntico y las formas de actuar frente al mismo. Como punto de partida se
presentan los fenmenos fsicos que pueden dar lugar a perturbaciones para llegar a
identificar los mecanismos concretos de produccin y transmisin de interferencias sobre los
circuitos digitales.
Desde el conocimiento de sus causas y modos de operar, la defensa frente a las
perturbaciones electromagnticas pasa por un adecuado diseo de las placas circuitales
(placas de circuito impreso o similares); esta adecuacin del diseo se refiere, por un lado,
a la disposicin mecnica de componentes y de sus conexiones y, de otro, a la utilizacin de
determinados componentes electrnicos auxiliares que se oponen al ruido.
Como norma general, es preciso minimizar la longitud de las conexiones, el rea de los
bucles y las impedancias compartidas: la disponibilidad de un plano de masa, de una
capa completa del circuito impreso dedicada a la tensin de referencia, facilita plenamente
estos objetivos en lo que se refiere a las lneas de retorno, las cuales tienen una importancia
primordial respecto al ruido.
A la vez, filtros separadores como los condensadores de desacoplo, los optoacopladores
o los filtros de red reducen en gran medida la propagacin de interferencias y el
apantallamiento, en forma de jaula de Faraday, sirve de proteccin frente a la incidencia
de campos electromagnticos externos.
Una til referencia bibliogrfica: como complemento a este captulo, un libro que recoge una
muy amplia diversidad de aspectos relativos al ruido electromagntico es el texto de J. Balcells,
F. Daura, R. Esparza y R. Palls, Interferencias electromagnticas en sistemas electrnicos,
publicado por Mundo Electrnico. Marcombo Boixareu Editores. Barcelona. 1992.
288 El ect rni ca Di gi t al
T3. 1. El probl ema del rui do
El problema del ruido aparece como consecuencia de que el comportamiento de
los circuitos electrnicos no se reduce a los trminos de teora de circuitos, no queda
confinado en el simple anlisis circuital resultante del diseo; sino que la realidad fsica
acta en la forma de campos electromagnticos, con una doble incidencia: las ondas y
los campos externos presentes en el entorno actan como interferencias sobre el circuito
y, adems, su propio funcionamiento produce perturbaciones que tambin le afectan.
Los circuitos electrnicos procesan energa electromagntica para poder llevar a cabo
la funcin para la que han sido diseados. El diseador, habitualmente, maneja el
problema teniendo en cuenta tensiones y corrientes en el circuito: anlisis de circuitos.
Pero las leyes fsicas ignoran las fronteras conceptuales que el diseador impone a su
circuito y cualquier energa de tipo electromagntico presente en el entorno interfiere
sobre el mismo; adems, por causa de esas mismas leyes fsicas, los componentes no se
comportan de forma ideal (no se limitan a ser los elementos de circuito en los que el
diseador piensa) sino que presentan efectos parsitos. Es preciso un punto de vista ms
amplio que el propio anlisis circuital para entender y controlar los fenmenos que
provocan la aparicin de interferencias: presencia de campos electromagnticos.
De esta forma los sistemas digitales se encuentran sometidos a interferencias que les
llegan desde el medio ambiental en que se encuentran (motores, rels, transformadores,
radiofrecuencias, emisiones de los cables de red, deformaciones y perturbaciones de la
propia red elctrica, etc.,) y a perturbaciones debidas a los campos electromagnticos
que ellos mismos producen (variaciones de consumo que generan parsitos sobre la
alimentacin, oscilaciones propias de los circuitos, acoplamiento entre pistas del circuito
impreso, radiacin de las pistas y cables de interconexin, etc.,).
Todas estas seales son indeseables para un sistema electrnico por cuanto pueden
afectar a su correcto funcionamiento; en el caso de un sistema digital las interferencias
pueden modificar puntualmente los valores booleanos por desplazamiento de las tensiones
en los nudos del circuito.
Ruido es toda perturbacin electromagntica que afecta a un circuito digital, toda
seal parsita no propia del comportamiento booleano del circuito y que, por tanto, puede
producir errores al modificar los valores booleanos correctos.
El ruido puede proceder del exterior o puede ser producido en el propio circuito y
puede ser conducido, si se propaga a travs de conductores y componentes del mismo
circuito o de sus lneas de alimentacin, de entrada o de salida, o radiado, si se acopla a
travs de campos elctricos, magnticos o electromagnticos. El ruido conducido puede
ser razonado en trminos de tensin mientras que el radiado requiere trminos de potencia
(energa perturbativa por unidad de tiempo).
En circuitos combinacionales un ruido momentneo puede causar un error transitorio
en el vector de salida, pero no repercutir posteriormente; en los secuenciales, el efecto es
ms duradero y por tanto ms peligroso: puede dar lugar a una modificacin del estado
que se propagar como error hacia el futuro, es decir, provocar un error permanente.
T3. El rui do en l os si st emas di gi t al es 289
Fuentes de ruido electromagntico
En general, debe tenerse en cuenta que cualquier equipo o circuito elctrico o
electrnico es una fuente potencial de interferencias electromagnticas EMI. Parte de las
seales parsitas son producidas por los propios circuitos y afectan a ellos mismos (EMI
intraequipo) y tambin al resto de los circuitos de su entorno (EMI interequipos).
A continuacin, se enumeran algunas de las principales fuentes de interferencias; se
citan tanto elementos ruidosos como situaciones que llevan aparejadas la aparicin de
problemas de EMI.
Interferencias generadas por el propio circuito:
conducidas: - variaciones de intensidad (dI/dt)
-- por carga y descarga de capacidades
-- por conmutaciones
- acoplo por impedancia compartida por varias etapas
- resonancias y oscilaciones asociadas a ellas (LC)
- acoplo capacitivo entre pistas
radiadas: - osciladores, seal de sincronismo,...
- emisin de altas frecuencias (acoplamiento electromagnt.)
- acoplo inductivo entre bucles (espiras)
- componentes magnticos (transformadores, bobinas,...)
- contactos mecnicos (contactores, rels,...)
Interferencias procedentes del entorno:
radiadas: - motores y mquinas elctricas
- equipos electrnicos que operan a alta frecuencia
- contactores y rels
- bobinas y transformadores
- cables, fluorescentes,...
- emisoras de radiofrecuencia
- transistorios debidos a fenmenos atmosfricos
conducidas: - perturbaciones de la red
-- por conexin o desconexin de cargas
-- por variaciones bruscas de consumo
-- por conmutacin (troceadores) sobre la red
-- por tansferencia de altas frecuencias
- perturbaciones recogidas por las lneas de entrada y salida
290 El ect rni ca Di gi t al
T3. 2. Consi deraci ones previ as al est udi o de i nt erferenci as
1 Las autoinducciones responden con transitorios de tensin a las variaciones de
intensidad: todo elemento de naturaleza inductiva responde, ante los cambios de
intensidad, con alteraciones de tensin.
I
L
I
dI
dt
en la prctica, sern oscilaciones amortiguadas,
habida cuenta de los efectos capacitivos
presentes en el circuito
= L.
V
los picos (glitches) de tensin dependen, no slo de la amplitud de la variacin de
intensidad, sino tambin de la velocidad de dicha variacin: de la pendiente dI/dt
(de forma que I reducidas pero muy rpidas pueden producir V apreciables);
todo cable o lnea conductora presenta un efecto autoinductivo
(una lnea de 10 cm, cuya autoinduccin ser del orden de 0,1 H, responde a un aumento
de intensidad de 10 mA en 1 ns con un transitorio de tensin del orden de 1 V).
2 Los bucles de intensidad (espiras) generan campos magnticos y cuando tales campos
son variables (debidos a variaciones de intensidad) producen corrientes inducidas
sobre otros bucles (espiras) prximos. El acoplo inductivo es proporcional al rea de
los bucles.
I
M
campo
magntico
I
De igual forma, todo bucle conductor recibe el efecto inductivo de los campos
magnticos que le alcanzan y tal efecto es tanto mayor cuanto lo es el rea del bucle.
por ello, es de suma importancia conocer por dnde circula la corriente; en ello
reside uno de los secretos para controlar y reducir las interferencias.
T3. El rui do en l os si st emas di gi t al es 291
3 Dos conductores prximos (por ejemplo, dos conductores de un mismo cable plano o
dos pistas que circulan paralelas por una placa) presentan un efecto capacitivo entre
ellos: una variacin de tensin en uno de ellos es transmitida parcialmente como
transitorio al otro conductor.
4 La presencia de autoinducciones y capacidades parsitas determina la posibilidad de
oscilaciones, generalmente amortiguadas (debido a las componentes resistivas
presentes tambin en el circuito): toda variacin brusca de tensin o de intensidad
puede provocar la activacin del circuito oscilante LC y la generacin de un transitorio
en forma de senoide.
L C
f = 1 / 2..VL.C
Frecuencia de oscilacin:
5 Cuando una seal variable se propaga por un conductor, parte de la energa que
transporta se pierde en forma de radicacin electromagntica hacia el entorno; la
efectividad de esta transmisin aumenta fuertemente con la frecuencia y depende
mucho de la geometra de emisor y receptor. Dicho en otras palabras, cualquier
circuito va a comportarse como una antena ms o menos efectiva en funcin de su
geometra y de las seales que circulan por el mismo.
onda em
I
Recprocamente, cualquier lnea conductora y, en particular, cualquier bucle de
corriente acta como antena receptora de las ondas electromagnticas presentes en su
entorno y el efecto de tales interferencias es proporcional a la longitud de la lnea o, en
su caso, al rea del bucle.
La radiacin electromagntica es la forma en que se transmiten a distancia los efectos
de los campos elctricos y magnticos variables.
292 El ect rni ca Di gi t al
6 En un circuito, toda seal elctrica necesita una lnea de retorno; es decir, forma un
bucle conformado por dos conductores: el que transmite la seal y el que sirve de
referencia, que acta como lnea de retorno.
bucle de seal bucle de alimentacin
Vcc
GND
La representacin clsica de la referencia (tensin 0 V: masa) como un simple
smbolo aislado (incluso a veces la ausencia de tal referencia explcita) tiende a hacernos
olvidar que forma parte del circuito: que no es un simple sumidero omnipresente sino
una lnea de retorno que cierra los bucles:
la tensin de alimentacin de un circuito forma bucles de alimentacin para cada
una de las etapas del mismo
cada seal que se transmite de una etapa a otra forma un bucle de seal
la existencia de varias tomas a tierra (conexiones de la lnea de masa del circuito
a tierra) dan lugar a bucles de masa, que tambin pueden ser receptores de
interferencias.
Los efectos de emisin/captacin magntica/electromagntica de los bucles sern
tanto menores cuanto ms reducida sea su rea.
7 Toda lnea conductora presenta una impedancia (R, L) y, cuando por dicha lnea viajan
dos seales, es compartida por ambas (IMPEDANCIA COMN) y las variaciones de
tensin producidas por una de ellas afectan tambin a la otra.
Tngase en cuenta que, en un circuito real, dos puntos unidos por un conductor no
tienen el mismo potencial, como consecuencia de la impedancia existente entre ambos.
La lnea de retorno suele ser utilizada, a la vez, por varias alimentaciones y/o seales,
lo cual supone la existencia de una impedancia compartida por ellas, de modo que las
cadas o variaciones de tensin generadas sobre dicha impedancia afectan a las diversas
etapas conectadas a la lnea de retorno
I I
Vcc - RI
R
L
V
De igual forma una lnea de alimentacin VCC suele estar compartida por mltiples
etapas, presentando una impedancia compartida por ellas.
L
I
V
T3. El rui do en l os si st emas di gi t al es 293
T3. 3. El ement os para reduci r el efect o del rui do
Conexiones cortas y bucles de rea mnima; plano de masa
La primera norma frente al ruido es minimizar la longitud de los cables o lneas de
conexin y el rea de los bucles que conforman; la reduccin de la longitud de las
conexiones (en cuanto a antenas) y del rea de los bucles (en cuanto a espiras) afecta tanto
a la generacin como a la captacin de ruido electromagntico. La geometra final del
circuito electrnico tiene una incidencia trascendental respecto al ruido: longitudes cortas
y reas reducidas emiten y captan menos interferencias.
De ah la extraordinaria importancia que presenta el diseo de la placa de circuito
impreso en relacin con el ruido. Los circuitos impresos no son un mero soporte mecnico
y un simple conexionado elctrico, sino que determinan la topologa del circuito y, con
ella, los acoplamientos de las perturbaciones: un buen diseo geomtrico del circuito
impreso es fundamental para prevenirlas.
Particular atencin merece la distribucin de la tensin de alimentacin y la de la
seal de reloj, por cuanto que tales lneas suelen ir a mltiples integrados y, en general,
sern las que mayor trayecto recorren.
La masa o referencia de tensin (0 V) acta como camino de retorno tanto para la
alimentacin como para las seales y precisa de un tratamiento especial ya que las lneas
de retorno cierran los bucles, siendo determinantes en la conformacin de su rea;
adems, suelen ser lneas compartidas por varias seales con los consiguientes efectos de
impedancia comn a ellas.
Siempre que sea posible conviene dedicar toda una capa de circuito impreso a la
tensin de referencia, es decir, un plano de masa que permitir que los caminos de
retorno sean lo ms directos posibles; de esta forma, el retorno se producir por el
camino de menor impedancia:
- lo cual minimiza la impedancia comn a varias seales;
- en el caso de seales de baja frecuencia el camino de mnima impedancia ser el de
menor resistencia y, por tanto, menor longitud (una lnea recta directa);
- mientras que para seales de alta frecuencia dicho camino ser el de menor
autoinduccin que corresponde a mnima rea de bucle (camino de retorno siguiendo
en paralelo y lo ms prximo posible al camino de ida de la seal).
Si no se puede disponer de una capa entera para la tensin de referencia, conviene
expandir la masa todo lo posible, aprovechando los huecos libres de pistas del circuito
impreso para generar amplios islotes de masa. En general, a falta de un plano de masa, un
circuito impreso que presenta amplias zonas sin cobre es una mala solucin por
desaprovechar la oportunidad de utilizar como islotes de masa dichos espacios
294 El ect rni ca Di gi t al
En todo caso, debe cuidarse que las lneas de masa sean lo ms directas y cortas
posibles y, tambin, que los bucles que se forman a travs de dichas lneas (como caminos
de retorno) sean de la menor rea posible:
- distribuciones en forma de peine facilitan la reduccin de longitud
- y la conexin de las diversas pistas de masa en forma de retcula posibilitan
caminos de retorno de rea reducida.
Vcc
0 V
Distribucin de las lneas de alimentacin en peine
0 V
Distribucin de las lneas de masa en retcula
La distribucin de la tensin de alimentacin en peine minimiza la longitud de las
lneas que van a mltiples circuitos integrados. Adems, dado que la tensin de referencia
conforma los caminos de retorno de las seales, es conveniente unir las lneas paralelas de
masa para formar una retcula (malla de masa) que permita a los caminos de retorno
acercarse lo ms posible a los caminos de ida de las seales; se esta forma se consiguen
reas de bucle reducidas, en relacin con las seales de alta frecuencia.
Asimismo, es conveniente separar las lneas de alimentacin de las partes digitales,
analgicas y de potencia: para evitar los efectos de impedancia compartida es bueno que,
caso de existir en la misma placa de circuito impreso etapas analgicas o de potencia, sus
lneas de alimentacin sean diferentes de la alimentacin de la parte digital; ello evita
transferir cadas resistivas o variaciones inductivas en las lneas de alimentacin desde la
parte analgica o de potencia a la parte digital.
Condensadores de desacoplo sobre la tensin de alimentacin
Los condensadores de desacoplo se conectan en paralelo sobre las lneas de
alimentacin (Vcc 0 V) para formar filtros pasa-baja que reducen fuertemente la
posibilidad de que la tensin de alimentacin sea afectada por perturbaciones de alta
frecuencia. Se utiliza un condensador de desacoplo (del orden de 10 nF) para cada circuito
integrado, situado lo ms cerca posible de los terminales de alimentacin del mismo.
Los condensadores de desacoplo no deben ser electrolticos ya que stos son
deficientes a altas frecuencias (los de aluminio, por encima de los 25 KHz y los de tntalo
para los 100 KHz) por presentar un efecto inductivo en serie; deben utilizarse
condensadores cermicos o de poliester (no de mylar).
T3. El rui do en l os si st emas di gi t al es 295
Vcc
Los efectos antirruido de un condensador de desacoplo son los siguientes:
- suministra los rpidos picos de intensidad que el circuito integrado precisa en las
conmutaciones, evitando que tales variaciones de intensidad acten sobre la
autoinduccin que presentan las lneas de alimentacin y se reflejen en
perturbaciones de la tensin de alimentacin; tales perturbaciones afectaran al
propio circuito integrado que las provoca y, tambin, al resto de los circuitos
integrados conectados a las mismas lneas de alimentacin;
- configura un filtro pasa-baja (constituido por la impedancia resistivo-inductiva de las
lneas de alimentacin y el condensador de desacoplo) que reduce las perturbaciones
de alta frecuencia que pudieran llegar al circuito integrado a travs de la tensin de
alimentacin (el filtrado pasa-baja acta en ambas direcciones: tambin filtra el paso
de perturbaciones del circuito integrado hacia el exterior);
- desacopla los efectos capacitivos propios del circuito integrado respecto de las
autoinducciones que presentan las lneas de alimentacin, evitando las oscilaciones
de alta frecuencia que se podran producir por acoplo LC;
- divide en dos el bucle que conforman las lneas de alimentacin (ya que el
condensador acta como cortocircuito para frecuencias altas) y consigue que el bucle
de alimentacin en la parte del circuito integrado sea de rea mnima (por hallarse el
condensador muy prximo a los terminales del integrado).
En relacin con el ruido que el propio circuito integrado produce al conmutar, ha de
tenerse en cuenta que el pico de intensidad que se genera en la conmutacin se debe a
dos causas que se suman:
- la carga y descarga de las capacidades efectivas al cambiar su tensin (para pasar
de un valor booleano a otro)
- y la conduccin simultnea de los dos planos de transistores al iniciar la
conduccin de uno de ellos dentro del transitorio hacia corte del otro.
Los condensadores de desacoplo suministran ambos picos de intensidad, evitando que
repercutan sobre las lneas de alimentacin.
Por otra parte, el ruido debido a la conmutacin es tanto mayor cuanto lo es la
rapidez de la misma: flancos muy verticales producen ms ruido que flancos suaves, ya
que el efecto inductivo de las variaciones de intensidad aumenta con dI/dt. En las salidas
de dispositivos programables complejos o de circuitos integrados de aplicacin especfica
suele existir la posibilidad de optar entre flancos ms o menos rpidos: es muy adecuado
optar por flancos suaves para aquellas seales que no precisan muy alta velocidad.
296 El ect rni ca Di gi t al
Adems del condensador de desacoplo de cada circuito integrado suele incluirse un
par de condensadores de desacoplo (uno electroltico del orden de 100 F y otro no
electroltico de unos 100 nF) en la entrada de la tensin de alimentacin de la placa de
circuito impreso (o en la salida de la propia fuente de alimentacin si se encuentra en la
misma placa). Estos condensadores presentan, en relacin con la placa circuital global, los
mismos efectos antes comentados (desacoplo de variaciones de intensidad, filtrado en
ambos sentidos, eliminacin de oscilaciones parsitas y divisin del bucle de alimentacin
en dos). El condensador electroltico, por su mayor capacidad puede suministrar mayores
intensidades y asegura un mayor filtrado pero solamente para frecuencias no muy altas,
mientras que el otro condensador en paralelo acta en relacin con las frecuencias altas.
Filtros de red para desacoplar la red de suministro elctrico
Los sistemas digitales conectados a la red de tensin elctrica (como fuente de
energa para su tensin de alimentacin) pueden recibir, a travs de la misma,
perturbaciones electromagnticas producidas por otros sistemas elctricos y pueden
tambin transmitir a la red perturbaciones generadas por ellos. Este segundo aspecto (la
insercin de perturbaciones sobre la red) resulta, en ocasiones, el ms importante, puesto
que las normas de compatibilidad electromagntica limitan fuertemente las interferencias
que un sistema puede comunicar a la red elctrica.
Los filtros de red son de tipo pasa-baja y ejercen su efecto en ambas direcciones,
limitando el paso de perturbaciones de alta frecuencia tanto de la red hacia el sistema
digital como desde dicho sistema hacia la red.
Suelen ser filtros de tercer orden en (condensador bobina condensador),
duplicados para filtrar las dos lneas de la red elctrica, con las dos bobinas enrolladas
sobre un mismo ncleo circular de ferrita para evitar su saturacin por la propia intensidad
que consume el sistema.
T3. El rui do en l os si st emas di gi t al es 297
Apantallamientos: carcasa y cables
Las perturbaciones presentes en el entorno inciden sobre un sistema digital en forma
de ondas electromagnticas que se propagan a travs del espacio (no precisan ni siquiera
de un medio material para transmitirse).
Las cajas o carcasas metlicas suponen una barrera que impide en gran medida el
paso de tales ondas. Los materiales conductores reflejan parcialmente las ondas
electromagnticas, reduciendo su energa; los materiales ferromagnticos las atenan,
disipando la energa electromagntica. La combinacin de ambos materiales, conductor
por fuera de la caja y ferromagntico por dentro, consigue un excelente aislante en
relacin con los campos electromagnticos.
Importa en este caso que la carcasa conforme un recinto cerrado sin fisuras, con
conexin completa de la tapa de la misma respecto al resto, para lo cual existen juntas
conductoras que facilitan un cierre total. Asimismo importa minimizar las aberturas de la
carcasa (necesarias para cables de alimentacin y entradas y salidas); como dichas
aberturas se encuentran con un frente de onda bidimensional, resulta ptimo que una de
las dos dimensiones sea lo ms reducida posible.
La carcasa que apantalla a un circuito digital debe ir conectada a la tensin de
referencia del mismo (masa) para evitar que los posibles acoplos capacitivos que se
produzcan entre circuito y carcasa den lugar a peligrosas realimentaciones positivas:
- las lneas del circuito presentan un pequeo acoplo capacitivo con la carcasa metlica
- un amplificador no inversor adquiere una realimentacin positiva a travs de dichas
capacidades: salida del amplificador carcasa y carcasa entrada del amplificador
- las propias puertas booleanas (en caso de ser inversoras, las parejas de puertas
sucesivas) son etapas amplificadoras
- una realimentacin positiva es perniciosa para el ruido, ya que lo amplifica en gran
medida.
Amplificador no inversor (formado por dos puertas inversoras sucesivas)
con realimentacin positiva (a travs de los efectos capacitivos con la carcasa)
La realimentacin positiva se anula
al conectar la carcasa a masa (0 V)
La forma de eliminar el efecto de realimentacin de las capacidades parsitas que se
forman con la carcasa es conectar la carcasa a una tensin fija, por ejemplo a la tensin de
referencia del circuito; de esta forma tales capacidades quedan conectadas a 0 V y no
forman lazo de realimentacin. La conexin carcasa masa no suele ser directa (mediante
un simple cable) sino a travs de un condensador (no electroltico, de valor alto cercano a
1F); tal conexin debe hacerse en un solo punto para evitar la formacin de bucles.
298 El ect rni ca Di gi t al
Una vez apantallado un circuito digital, los cables que conectan sus entradas y salidas
exteriores pueden actuar como antenas efectivas: pueden recoger perturbaciones
electromagnticas del entorno y conducirlas directamente dentro de la carcasa. Por ello, es
necesario plantearse el tipo de cables a utilizar y el apantallamiento de los mismos;
existen muchas soluciones en cuanto a blindaje de cables: malla trenzada, laminado recto
(en forma de tubo), laminado en espiral, combinaciones laminado y trenzado,...
En caso de cables conectados a equipos que manejan seales de altas frecuencias
(como, por ejemplo, los conectados a monitores, pantallas de TV,...) suelen utilizarse
abrazaderas de ferrita sobre los propios cables, en el extremo de conexin con tales
equipos, para formar una barrera energtica que rechace la transmisin de las
componentes de alta frecuencia.
Optoacopladores para las entradas y salidas
Un optoacoplador est formado por un diodo emisor de radiacin luminosa y un
fototransistor que detecta dicha radiacin. El diodo emisor traduce los valores booleanos
0/1 a situaciones de ausencia/emisin de radiacin y de esta forma comunica dichos
valores al fotodetector, con separacin galvnica entre ambos (emisor y receptor no tienen
conexin elctrica entre ellos).
entrada salida
Los optoacopladores se sitan en las entradas y salidas de los circuitos digitales hacia
el exterior para conformar una separacin galvnica respecto de las lneas que conectan el
circuito integrado con el entorno exterior al mismo.
Los efectos de un optoacoplador son los siguientes:
- introduce una ruptura en la continuidad elctrica de los dos conductores que
corresponden a una lnea de entrada o de salida exterior; tanto la conexin que
transmite la seal como la de retorno quedan interrumpidas y se evita su efecto como
antenas de captacin de interferencias;
- configura un fuerte filtro pasa-baja frente a las perturbaciones, pues no es posible el
paso de interferencias desde el fotodetector al emisor de radicacin (pues no hay
conexin alguna en tal sentido) y el paso desde el emisor hacia el fototransistor
presenta un alto escaln energtico;
- divide en dos el bucle que conforma la lnea de entrada o salida y consigue que dicho
bucle sea de rea mnima en la parte que afecta al sistema digital;
- rompe el posible bucle de tierra que puede formarse por la lnea de masa si est
conectada a tierra en ms de un punto (dicho bucle se forma entre la lnea de masa y
la tierra como lnea de retorno y puede contener un rea muy amplia, ver figura
siguiente).
T3. El rui do en l os si st emas di gi t al es 299
suelo = tierra
sistema
sensor
bucle de masa
En situaciones de muy alto ruido ambiental puede ser necesario someter a las
entradas y salidas digitales a una doble separacin galvnica en la forma siguiente:
- transferir todas las lneas de salida y todos los dispositivos de control de potencia
(adaptadores de todo tipo: drivers, tiristores, triacs, etc.,) a una segunda carcasa
adjunta a la del sistema digital, en la cual se aplique un segundo acoplo optoelectrnico
- de igual forma, recibir todas las lneas de entrada a travs de una tercera carcasa adjunta,
en la que se efecte tambin un acoplo optoelectrnico adicional
- las fuentes de alimentacin de ambas carcasas anexas deben ser diferentes de la
alimentacin del sistema digital (ubicado en la carcasa principal), a fin de asegurar una
efectiva separacin galvnica.
sistema entradas
salidas
Es bueno, tambin, que las salidas que van a manejar potencia de la red elctrica lo
hagan a travs de triacs con disparo en cruce por cero de la red, a fin de que la
conmutacin de potencia sea lo ms suave posible.
El acoplo optoelectrnico de seales analgicas presenta mayor problema pues se
requieren acopladores de extraordinaria precisin para asegurar que los valores de tensin
en su salida coincidan con los de su entrada; dicha precisin entraa una dificultad y un
coste considerables, lo cual hace que en muchas ocasiones se utilice un simple filtrado en
frecuencia que, sin afectar a la seal analgica a transmitir, elimine las perturbaciones de
alta frecuencia.
300 El ect rni ca Di gi t al
T3. 4. Mecani smos de producci n/ t ransmi si n de i nt erferenci as
A CONDUCCIN DIRECTA de perturbaciones ya existentes en el circuito o en sus
lneas de conexin (alimentacin / red, entradas, salidas,...); tales perturbaciones se han
producido inicialmente por alguno de los mecanismos que consideraremos a
continuacin y, una vez presentes en el circuito en trminos de tensin, son
transmitidas a travs de los conductores:
Soluciones: filtrado
separacin galvnica
filtros de red
condensadores de desacoplo
optoacopladores
abrazaderas de ferrita sobre los cables
B EFECTO AUTOINDUCTIVO que genera transitorios de tensin (glitches) en
respuesta a los cambios de intensidad:
Soluciones: reducir L de las lneas de transmisin
disminuir dI/dt
absorber I
lneas cortas, directas
lneas anchas para la alimentacin
flancos suaves: slew-rate
condensadores de desacoplo
C ACOPLO CAPACITIVO entre lneas prximas y paralelas, que transmite de una a
otra las variaciones de tensin:
Soluciones: reducir la longitud de las lneas
aumentar su separacin
reducir dV/dt
interponer un conductor entre ellas
adecuada distribucin de los circuitos integrados
lneas de seal cortas
flancos suaves: slew-rate
conductor intermedio conectado a 0 V
T3. El rui do en l os si st emas di gi t al es 301
D IMPEDANCIA COMN que transite de unas etapas a otras los efectos del consumo
de intensidad (resistivos: cadas de tensin RI) y los propios de las variaciones de
intensidad (inductivos: transitorios de tensin L.dI/dt):
Soluciones: reducir R (por ejemplo, disminuyendo la longitud
o aumentando la seccin del conductor)
buena distribucin de las lneas de alimentacin
configuracin adecuada de las lneas de retorno (masa)
las mismas que en el caso B (efecto autoinductivo)
lneas cortas y anchas
plano de masa
esquemas de alimentacin en peine o retcula
lneas de alimentacin directas, anchas y cuidadas
condensadores de desacoplo
limitar dI/dt (slew-rate)
separacin de alimentaciones: digital, potencia, analgica
E ACOPLAMIENTO INDUCTIVO que hace incidir sobre los bucles de corriente el
efecto de los campos magnticos variables (producidos a su vez, por lo general, por
otros bucles de corriente variable):
Soluciones: reducir el rea de los bucles de corriente
Normalmente, los bucles se cierran por la lnea de retorno o masa;
por ello, el diseo geomtrico de la masa es transcendental
plano o malla (retcula) de masa
expandir al mximo la superficie de masa
buena distribucin de la lnea de alimentacin VCC
dividir los bucles de alimentacin:
condensadores de desacoplo
evitar los bucles de masa: una sola conexin a tierra
romper los bucles de masa: optoacopladores
302 El ect rni ca Di gi t al
aislar el circuito mediante blindajes
evitar la produccin de campos magnticos
carcasas ferromagnticas
cables apantallados
optoacopladores
apantallar transformadores y bobinas
no utilizar rels ni contactores
F ACOPLAMIENTO ELECTROMAGNTICO por el que los diversos conductores
y los bucles de corriente actan como antenas receptoras que recogen el efecto de las
ondas electromagnticas presentes en el entorno:
Soluciones: reducir el rea de los bucles
aislar el circuito mediante blindajes
introducir separaciones galvnicas
carcasas dobles: ferromagnticas
con exterior conductor
juntas con continuidad elctrica
ranuras de anchura mnima
cables apantallados
acoplo optoelectrnico de entradas y de salidas
G OSCILACIONES debidas a acoplos entre autoinductancias y capacidades parsitas:
Soluciones: reducir L de las conexiones
filtrado
lneas cortas y anchas
condensadores de desacoplo
T3. El rui do en l os si st emas di gi t al es 303
T3. 5. Regl as bsi cas para el di seo
Reduccin del ruido producido por el propio circuito
- Cuidar mucho el diseo del circuito impreso y los cables de conexionado
- Cables y pistas muy cortos
Evitan oscilaciones, acoplos, antenas, cadas de tensin,...
Reducen el rea de los bucles
- Condensadores de desacoplo en la alimentacin
Resuelven variaciones de I, dividen los bucles,...
* Filtrado en la entrada de VCC de cada placa: 100 F // 100 nF
* Filtrado de las alimentaciones de cada circuito integrado: 10 nF
- Buena distribucin de las alimentaciones
Minimiza L, R, bucles e impedancias compartidas
* Lneas directas, cortas y anchas
* Plano o malla de masa
* Separacin de alimentaciones: potencia, analgica, digital
- Eliminar / apantallar componentes magnticos
- Sustituir contactores / rels por triacs que conmuten en cruce por cero
- En los buses de conexin, intercalar lneas de masa intermedias
Reducen los acoplos capacitivos
Defensa frente al ruido que le llega del entorno
- Minimizar bucles: reducir su rea
Reduce su efectividad como receptores
- Aislar el circuito mediante carcasa metlica
* aislamiento electrosttico: conductores
* aislamiento magntico: materiales ferromagnticos
* aislamiento ante ondas electromagnticas: ambos tipos
Los materiales conductores reflejan las ondas,
por tanto, deben encontrarse en el lado exterior,
y los ferromagnticos las absorben (interior)
* Minimizar las dimensiones lineales de las aberturas
* Asegurar la continuidad elctrica en las junturas
* Conectar la masa del circuito a la carcasa
mediante un condensador en un solo punto
Evita acoplos capacitivos carcasa - circuito
El contacto en un solo punto evita bucles
304 El ect rni ca Di gi t al
- Aislar las lneas de conexin al exterior.
* Filtro de red
* Separacin galvnica de entradas y salidas mediante optoacopladores
Interrumpen la conexin directa y la transmisin de ruido
Rompen los bucles de masa
- Apantallar los cables de conexin
* Cable coaxial o cable entrelazado
- Evitar los bucles de tierra
* Conexin a tierra, a ser posible, en un solo punto.
Limitacin del ruido enviado a otros circuitos
- A travs de la red
* No trocear la intensidad
* Ajustar el consumo de intensidad a la senoide de la red
* Disparar componentes de potencia en cruce por cero de red
* Filtrar adecuadamente la conexin a red
* Los flancos de conmutacin deben ser lo ms suaves posible
- Por ondas electromagnticas
* Apantallar
* Evitar antenas
* Minimizar el rea de los bucles
* Evitar contactos mecnicos (pulsadores, contactores, rels, ...)
* Evitar componentes magnticos.
Consideraciones complementarias
- El ruido electromagntico es un problema a tener en cuenta desde las etapas
iniciales del diseo: una vez completado el diseo de un equipo se hace ms difcil y
costosa su proteccin frente al ruido.
- Los problemas debidos al ruido externo (interequipos o ambiental) no se suelen
manifestar en la fase de desarrollo en el laboratorio: son en gran medida problemas de
contaminacin ambiental que aparecen al llevar el circuito a su ambiente real.
- En los circuitos digitales conviene:
no ir nunca a muy alta velocidad si no es necesario
no utilizar series ultrarrpidas si no es preciso
no emplear flancos muy verticales innecesariamente
ya que, todo ello, adems de aumentar el consumo dinmico, colabora en gran medida en
aumentar el nivel de ruido.
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
11 INTRODUCCIN A LOS SISTEMAS SECUENCIALES I:
CONCEPTOS
11.1. Necesidad de memoria: concepto de estado
11.2. Variables de estado y grafos de estados
11.3. La memoria como almacn de informacin: biestables y registros
11.4. Estado, biestables y variables de salida; autmatas de Moore y de Mealy
Los sistemas combinacionales se construyen mediante funciones booleanas de sus
variables de entrada. Pero no todo sistema digital es combinacional: existen sistemas en que
la correspondencia entre el vector de entrada y el vector de salida no es unvoca; es decir, no
se pueden obtener las salidas como funciones de slo las entradas.
Los sistemas secuenciales necesitan recordar su pasado, la secuencia de vectores de
entrada a travs de la cual se ha llegado a la situacin presente; para ello han de tener
memoria, que se configura mediante un vector de estado que contiene la informacin
que el sistema necesita sobre su pasado. La memoria se consigue mediante realimentacin
lgica: las variables de estado son, a la vez, variables de salida y de entrada en las
funciones de evolucin del estado.
Tres vectores: entrada, estado y salida, y dos conjuntos de funciones: las de evolucin
del estado (estado anterior y entradas determinan el nuevo estado) y las de activacin de
las salidas (que dependen, tambin, del estado y de las entradas).
La evolucin de un sistema secuencial puede ser representada mediante un grafo de
estados, a partir del cual pueden construirse las funciones de modificacin del estado. En
ocasiones, hay dos formas diferenciadas de configurar el grafo de estados: distinguiendo
salidas distintas con estados diferentes (autmata de Moore) o reduciendo el nmero de
estados al mnimo y admitiendo que un mismo estado pueda tener varios vectores de salida
(autmata de Mealy).
El presente captulo presenta gradualmente los conceptos bsicos necesarios para
comprender y describir los sistemas secuenciales, a travs de una serie de ejemplos; se
reserva para el captulo siguiente la metodologa de diseo secuencial.
La necesidad de memoria, como recuerdo del pasado de un sistema secuencial, se
concreta en el concepto de estado. Pero existe otra perspectiva complementaria que nos lleva
a la memoria como necesidad de almacenar datos y resultados, es decir, conservar
informacin que puede ser utilizada posteriormente. El biestable como celda capaz de
almacenar un bit y el registro (conjunto de biestables) como bloque capaz de almacenar
una palabra binaria son los elementos bsicos de la memoria.
Precisamente, el siguiente captulo desarrollar el diseo de circuitos secuenciales,
utilizando los biestables como celdas que contienen las variables de estado.
12 El ect rni ca Di gi t al
11. 1. Necesi dad de memori a: concept o de est ado
Los sistemas combinacionales presentan una correspondencia unvoca entre el
conjunto de vectores de entrada y el de vectores de salida.
Un sistema combinacional es del tipo estmulo-respuesta: al recibir un vector de
entrada dado produce un vector de salida determinado, siempre el mismo; la salida es
respuesta directa respecto a la entrada y, por ello, puede obtenerse por combinacin
booleana de los valores de las entradas.
En un sistema combinacional las salidas son funcin booleana directa de los valores
presentes en las variables de entrada en dicho momento:
vector de entrada X = ( xi
) = ( x1, x2, x3, x4, , xm
)
vector de salida Y = ( yj
) = ( y1, y2, y3, , yn
)
Y = F(X) yj = fj(xi) =
fj(x1,x2,x3,x4,,xm) para j = 1, 2, , n.
Conocido el funcionamiento requerido para un sistema combinacional, esto es, su
tabla funcional o tabla de verdad, a partir de ella pueden obtenerse directamente las
funciones booleanas de las entradas que determinan las salidas del sistema. A cada vector
de entrada le corresponde uno y solo un vector de salida: la correspondencia vectores de
entrada vectores de salida es unvoca.
No todo sistema digital es combinacional. No toda correspondencia entre el conjunto
de vectores de entrada y el de vectores de salida es unvoca.
Existen sistemas digitales que no encajan dentro de este tipo combinacional,
sistemas que respecto a un mismo vector de entrada, en momentos diferentes, producen
vectores de salida distintos. Un ejemplo sencillo y prctico lo constituye el sistema de
apertura y cierre de una puerta de garaje (del tipo de persiana metlica) que acte de la
forma siguiente:
el sistema dispone de tres entradas: un pulsador de activacin o llave de contacto
P y dos detectores o topes de fin de carrera Ts y Ti (superior e inferior); dispone
asimismo de dos salidas: movimiento hacia arriba S y movimiento hacia abajo B de la
puerta
al presionar el pulsador P, si la puerta est abajo (tope inferior Ti activado), se
inicia el movimiento ascendente S, hasta que se activa el tope superior Ts; en cambio, si
es el tope superior Ts el que se encuentra activado en el momento de pulsar P (puerta
arriba), la puerta efecta el movimiento de bajada B hasta llegar al tope inferior Ti.
Es decir: P=0, Ti=1, Ts=0 S=0 y B=0
P=1, Ti=1, Ts=0 S=1 y B=0
P=0, Ti=0, Ts=1 S=0 y B=0
P=1, Ti=0, Ts=1 S=0 y B=1
11. Si st emas secuenci al es I: concept os 13
pero para el vector de entrada P=0, Ti=0, Ts=0
son posibles dos vectores de salida distintos S=1 y B=0 puerta subiendo
S=0 y B=1 puerta bajando.
Los sistemas secuenciales necesitan memoria. La memoria se consigue mediante
realimentacin.
Para un mismo vector de entrada existen dos vectores de salida posibles. En
definitiva, qu debe hacer la puerta? subir o bajar?... Est claro que si la puerta estaba
previamente subiendo seguir hacia arriba y si se encontraba bajando, lo seguir
haciendo. Es decir, con entrada 000 la salida de control de la puerta depender de su
estado anterior.
En cada momento, el sistema optar por uno de los vectores de salida posibles para
la misma entrada y esa opcin la har en funcin de las situaciones por la que ha pasado
el sistema; es decir, su salida depender, adems de los valores presentes en las entradas,
de la secuencia de vectores de entrada anteriores por la que ha pasado. Este tipo de
sistemas se denominan secuenciales.
El concepto de sistema secuencial est directamente relacionado con el de memoria
lgica. De alguna manera el sistema de control de la puerta ha de guardar memoria
sobre si anteriormente haba comenzado a subir o a bajar. Este tipo de memoria puede
construirse mediante la realimentacin de algunas variables (por ejemplo, en este caso,
la variable S), que vuelven hacia atrs para actuar tambin como entradas del sistema.
De esta forma la situacin P=0, Ti=0, Ts=0 se divide en dos:
P=0, Ti=0, Ts=0, S=0 S=0 y B=1 la puerta contina bajando,
P=0, Ti=0, Ts=0, S=1 S=1 y B=0 la puerta sigue subiendo.
La variable S al realimentarse y actuar como entrada informa al sistema sobre si se
encontraba subiendo o bajando y elimina la duplicidad de salidas. En trminos
conceptuales, el valor actual de la variable S influye en la evolucin futura del sistema, el
presente afecta al futuro: memoria. Existe, pues, una relacin directa entre memoria y
realimentacin lgica.
Sistemas secuenciales son aquellos sistemas digitales cuya salida en algn momento
depende, no solamente de las entradas del sistema en dicho momento, sino tambin de la
evolucin anterior del sistema, es decir, de la secuencia anterior de vectores de entrada a
travs de la cual se ha llegado al momento actual. En este sentido se dice que el circuito
posee memoria.
14 El ect rni ca Di gi t al
Construyamos las funciones booleanas del ejemplo anterior:
Variables de entrada P, Ti,Ts Variables de salida S, B
Variable de estado S
En este caso se requiere una sola variable de estado (el sistema debe guardar
memoria solamente de si la puerta se encuentra subiendo o bajando) y dicha variable de
estado coincide con una de las variables de salida S.
Tabla de evolucin del estado:
P Ti Ts S S
0 0 0 0 0
0 0 0 1 1 Ts S
0 0 1 0 0 P Ti 00 01 11 10
0 0 1 1 0 00 0 1 0 0
0 1 0 0 0 01 0 1 X X
0 1 0 1 1 11 1 1 X X
0 1 1 0 X entradas 10 0 1 0 0
0 1 1 1 X no posibles
1 0 0 0 0
1 0 0 1 1
1 0 1 0 0
1 0 1 1 0
1 1 0 0 1
1 1 0 1 1
1 1 1 0 X no
1 1 1 1 X posibles
S . T + T . P = ) t t ( S
s i
+ : la variable de estado S se activa cuando se pulsa P
estando la puerta abajo Ti y permanece activa hasta alcanzar el tope superior Ts.
11. Si st emas secuenci al es I: concept os 15
Una de las funciones de salida consiste en la identificacin de la variable de estado S
con una salida S = S; la otra se obtiene de su correspondiente tabla booleana:
Ts S
P Ti 00 01 11 10
00 1 0 0 0
01 0 0 X X
11 0 0 X X
10 1 0 1 1
S . T . T + T . P = B
s i s
: la variable de salida B se encontrar activada al pulsar P
cuando la puerta se encuentre arriba Ts y, tambin, cuando no lo estn los topes inferior y
superior Ti y Ts, ni la subida S.
P
T
i
T
s
S
S
B
En la figura anterior se ha resaltado la realimentacin booleana que realiza la
memoria del estado del sistema (variable S).
El estado (el conjunto de variables de estado) representa la informacin sobre la
secuencia previa de vectores de entrada que el sistema secuencial necesita. De forma que
un sistema secuencial presenta tres vectores propios: el de entrada, el de salida y el de
estado, y dos correspondencias funcionales: la de evolucin del estado y la de activacin
de las salidas
Un sistema secuencial se caracteriza por responder de forma distinta a un mismo
vector de entrada en momentos diferentes, dependiendo de la secuencia previa de
vectores de entrada. Ahora bien, para que pueda discriminar entre diversas secuencias de
vectores de entrada es necesario que posea unas variables de estado que, de alguna
forma, guarden informacin sobre la historia del circuito (historia = pasado = secuencia
anterior).
16 El ect rni ca Di gi t al
En funcin del valor de las entradas en un momento dado y del valor de las variables
de estado en dicho momento el circuito responde con un determinado conjunto de valores
en sus salidas y, a la vez, modifica sus variables de estado para tomar en cuenta el nuevo
vector de entrada.
Las variables de estado actan, a la vez, como variables de salida y como variables
de entrada en las funciones booleanas que configuran el sistema digital. Como variables
de salida expresan el estado en que se encuentra el sistema como consecuencia de la
secuencia de vectores de entrada anteriores. Como variables de entrada actan en la
modificacin de dicho estado a la llegada de un nuevo vector de entrada y, tambin,
determinan, junto con el vector de entrada, las salidas del sistema en cada momento.
La realimentacin de las variables de estado, es decir, el hecho de que, siendo salidas
intermedias del sistema, vuelven a la entrada del mismo, es lo que proporciona memoria
al sistema secuencial (informacin sobre su historia pasada).
Algunas de las variables de estado, o en ocasiones todas ellas, pueden coincidir con
variables de salida (en el ejemplo anterior, la variable de estado es una de las de salida,
S), pero no siempre es posible tal identificacin; en general, las variables de estado no
coincidirn ni tendrn relacin directa con las variables de salida del sistema; existen tres
conjuntos de variables diferentes: entrada, salida y estado.
Incluso en aquellos casos en que alguna variable de estado coincida con una variable
de salida, hay una distincin conceptual neta entre el vector de salida de un sistema y el
estado del mismo: el estado representa la memoria que posee de su pasado anterior.
Un sistema secuencial dispone de tres conjuntos de variables:
vector de entrada X = (xi), vector de salida Y = (yj) y estado Q = (qk)
relacionados a travs de dos conjuntos de funciones booleanas:
- funcin de salida Y = F(X, Q)
- evolucin del estado Q(t+t) = G(X(t), Q(t))
La primera funcin representa la formacin de las salidas del sistema como
combinacin de las entradas y del estado en cada momento; la segunda, muestra la
evolucin del estado del sistema en funcin de las entradas y del propio estado en el
momento anterior.
El conjunto de variables de estado, el vector de estado, contiene la informacin que
el sistema precisa para distinguir entre las diferentes secuencias de vectores de entrada
que, teniendo un mismo vector al final de la secuencia, conducen a vectores de salida
distintos.
11. Si st emas secuenci al es I: concept os 17
11. 2. Vari abl es de est ado y grafos de est ados
Las variables de estado de un sistema secuencial representan conjuntamente el
estado del sistema; individualmente cada variable de estado puede no tener significado
fsico alguno.
Conceptualmente, las variables de estado tienen un significado conjunto, el de
numerar (y, por tanto, diferenciar) los diversos estados por los que evoluciona el sistema.
El vector de estado representa la memoria que el sistema tiene de su evolucin anterior.
Qu representa cada una de las variables de estado? Individualmente no tiene por
qu tener un significado fsico concreto; en principio, cada variable de estado es una
variable interna, que no tiene que corresponder necesariamente a ninguna variable de
salida ni a ninguna situacin determinada.
El significado corresponde al vector de entrada en su conjunto, sin tener cada una de
sus variables una significacin individualizada; si bien, en muchos casos, pueden tenerla
por identificarse directa o indirectamente con alguna variable de salida o con alguna
variable situacional del sistema.
El ejemplo del apartado anterior (puerta de garaje que se activa para subir y para
bajar con un pulsador) es muy interesante por su sencillez y por ser un caso prctico muy
habitual pero presenta aspectos que pueden inducir a error conceptual:
- la variable de estado coincide con una de las variables de salida, lo cual no tiene
porque ser as: el estado y las salidas son, en principio, dos vectores diferentes, cuya
funcin y significado son bien distintos (si bien es cierto que, en algunos casos,
pueden coincidir algunas de sus variables);
- precisamente debido a esta identificacin salida-estado, en el apartado anterior se
dice que el sistema tiene que recordar lo que estaba haciendo (subir o bajar),
afirmacin que no es correcta conceptualmente: el sistema tiene que recordar su
pasado en trminos de vectores de entrada recibidos anteriormente, ha de recordar la
secuencia de vectores de entrada a travs de la cual ha llegado hasta la situacin
actual.
El control de la puerta de garaje, cuando la entrada es 000 (P Ts Ti), debe recordar si
anteriormente provena de la situacin de entrada 101 (empezar a subir) o de la situacin
110 (comenzar a bajar).
18 El ect rni ca Di gi t al
Consideremos otro ejemplo: un simple timbre con tres pulsadores a b c, enlazados
por un mecanismo que impide pulsar dos a la vez; el timbre debe sonar cuando se pulsan
sucesivamente los tres pulsadores, primero el a, luego el b y, por ltimo, el c y el sonido
cesa al soltar el pulsador c.
Podemos representar este tipo de actuacin en la forma que sigue:
reposo
estado 00
a
primer
paso
estado 01
b
estado 10
segundo
paso
c
a
estado 11
c
sonido
c
El sistema debe acordarse de 4 situaciones o estados diferentes, que pueden ser
representados con dos variables de estado q2 y q1:
q2 = 0 q1 = 0 estado de reposo
q2 = 0 q1 = 1 primer paso en la secuencia a b c
q2 = 1 q1 = 0 segundo paso en la secuencia a b c
q2 = 1 q1 = 1 se ha completado la secuencia: el timbre suena.
La secuencia de vectores de entrada (a b c) correcta es la siguiente:
000, 100, 000, 010, 000, 001.
La variable de salida (sonido del timbre) se activa en el estado 11: y = q2.q1
Qu representan las variables q2 y q1? Individualmente cada una de ellas no tienen
significado; las dos juntas expresan el estado del sistema. El estado tiene sentido fsico;
cada variable de estado no tiene por qu tenerlo.
Construyendo la tabla de evolucin de los estados q2 q1 a b c q2 q1 (32 filas),
pueden obtenerse las funciones q2 q1:
q
1
+
= q
2
.c + q
2
.a + q
2
.q
1
.c.b q
2
+
= q
2
.c + q
2
.q
1
.a + q
2
.q
1
.b .
La evolucin de los estados puede expresarse eficazmente en un grafo.
La evolucin del estado de un sistema secuencial puede ser representada mediante un
grafo de estados. Un grafo de estados detalla los diversos estados del sistema y las
transiciones entre estados; las transiciones se representan mediante arcos orientados desde
el estado de partida hasta el estado resultante de la transicin, con indicacin de la
condicin booleana que determina dicha transicin.
La figura anterior (al inicio de esta misma pgina) corresponde al grafo de estados
del circuito de control del timbre con tres pulsadores a b c.
11. Si st emas secuenci al es I: concept os 19
El grafo de estados del control de la puerta de garaje del apartado anterior ser:
Ts
P.Ti
S = 0 S = 1
Tambin sera correcto un grafo ms simtrico, en la forma que sigue:
P.Ts
P.Ti
q = 0 q = 1
bajando
y abajo
subiendo
y arriba
En este caso las funciones de activacin de las salidas sern:
S (subir) = q . T
s
B (bajar) = q . T
i
y la funcin de evolucin del estado: q
+
= P . T
i
+ q . (p . T
s
).
En este segundo grafo de control de la puerta de garaje, la variable de estado q no se
corresponde con ninguna de las salidas del sistema S B, sino que distingue entre dos
situaciones: la de subiendo, incluida la puerta parada arriba q = 1 y la de bajando con
inclusin de la puerta parada abajo q=0.
Otro ejemplo tambin muy habitual y sencillo: la lmpara de luz de mesa con un
pulsador, que se enciende al pulsar una vez y se apaga al pulsar una segunda vez.
apagada
00
se enciende
01
permanece
encendida
11
se apaga
10
P
P
P
P
Obsrvese que para diferenciar un pulso del siguiente es necesario detectar P y P ;
la omisin de las transiciones con P conducira a un grafo errneo: con P = 1 se
produciran varias transiciones, que deberan corresponder a pulsos diferentes.
Son necesarios cuatro estados y dos variables de estado q2 q1; numerando los
estados segn el cdigo Gray, la secuencia de funcionamiento es 00 01 11 10
y la variable de salida (lmpara encendida) coincide con q1: y = q1.
20 El ect rni ca Di gi t al
La tabla de evolucin de estados permite obtener las funciones q2 q1:
q2 q1 P q2
+
q1
+
________________________________________________________________________________________________
0 0 0 0 0
0 0 1 0 1
0 1 0 1 1
0 1 1 0 1
1 0 0 0 0 q
2
+
= q
2
.P + q
1
.P
1 0 1 1 0
1 1 0 1 1 q
1
+
= q
2
.P + q
1
.P
1 1 1 1 0
En este caso, la variable q1 coincide con la salida (encendido de la lmpara) y, en
cambio, la variable q2 no se refleja exteriormente: es una variable de estado necesaria
para diferenciar un pulsado del siguiente.
El ejemplo de sistema secuencial ms simple posible es aquel que solamente tiene
dos estados q = 0 y q = 1; supongamos que posee dos entradas, una S (set) para marcar
(poner a 1) a la variable de estado q y la otra R (reset) para borrarla (llevar a 0). Por
ejemplo, una lmpara con dos pulsadores diferentes S para encenderla y R para
apagarla (y suponemos que nunca se pulsan los dos a la vez, pues resulta contradictorio
desear encender y apagar la lmpara al mismo tiempo).
q = 0 q = 1
S
R
La variable de salida coincide con la de estado y su tabla de evolucin ser la
siguiente:
q S R q
+
________________________________________________________________________________
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 X
1 0 0 1
1 0 1 0
1 1 0 1 q
+
= S + q.R
1 1 1 X
Precisamente este tipo de sistema secuencial mnimo ser considerado en el prximo
apartado y recibe el nombre de biestable por tener solamente dos estados.
11. Si st emas secuenci al es I: concept os 21
11. 3. La memori a como al macn de i nformaci n: bi est abl es y regi st ros
En los dos apartados anteriores consideramos la memoria referida al estado de un
sistema secuencial: la necesidad de recordar la secuencia de vectores de entrada anteriores
y el estado como memoria efectiva de dicha secuencia. En este apartado consideraremos
la memoria desde otra perspectiva: como almacn de informacin, es decir, conservacin
de los valores booleanos de algunas variables.
Los sistemas combinacionales permiten procesar la informacin, tanto numri-
camente (operaciones de clculo) como lgicamente (combinacin de proposiciones) y,
tambin, distribuirla adecuadamente (multiplexado) y efectuar cambios entre diferentes
codificaciones de la misma informacin (codificadores).
Ahora bien, tales sistemas no bastan para manejar eficientemente nmeros y palabras
binarios; se requiere, adems, disponer de registros o memorias donde almacenar la
informacin, son necesarios unos mdulos que almacenen y conserven las palabras
digitales (conjuntos de ceros y unos) que contienen la informacin.
La unidad elemental de memoria ser un dispositivo capaz de almacenar un 0 o un 1
y de conservarlo en ausencia de entrada; tal sistema recibe el nombre de biestable (dos
estados estables). La forma ms simple de configurar un biestable (y, a la vez, su forma
conceptual bsica) consiste en conectar dos inversores en lazo cerrado.
a
a
Q = a entrada salida
Al establecer durante un momento un valor booleano sobre la entrada de este par de
inversores, el primero de ellos invierte dicho valor y el segundo vuelve a invertirlo,
coincidiendo con el valor de la entrada: no es necesario mantener exteriormente el valor
booleano en la entrada pues, aun dejando libre dicha entrada, el acoplo cerrado de los dos
inversores conserva el estado adquirido.
El sistema se encontrar en uno de sus dos estados estables ( Q=0 ; Q=1 )
dependiendo de que el ltimo valor booleano aportado a su entrada sea 0 1. La
existencia de dos estados estables da lugar a la denominacin de biestable; si bien, con
mucha frecuencia se utiliza el nombre de Flip-Flop FF, cuya derivacin es meramente
onomatopyica.
e
Q
Q
2 estados estables
Q= 0 , Q= 1
Q= 1 , Q= 0
En un sistema digital no tiene sentido dejar libre la entrada, pues cada entrada
estar conectada a la salida de otra puerta o a una entrada exterior o a un sistema anterior
que le proporcionar un 0 o un 1 y no tiene significado afirmar la ausencia de entrada.
En tal sentido, se definen los biestables RS y D en la forma que a continuacin se detalla.
22 El ect rni ca Di gi t al
11.3.1. Biestable RS
El biestable RS presenta dos entradas R y S, la primera de ellas R (reset) de puesta
a 0 o borrado y la otra S (set) de puesta a 1 o marcado, no siendo admisible activar ambas
entradas a la vez. De esta forma el marcado (memorizacin de un 1) y el borrado
(almacenamiento de un 0) se realizan por dos entradas distintas.
R
S
Q
Q
F F
R-S
R S Q
0 0
0 1 1
1 0 0
1 1
conserva su valor anterior
valores de entrada no admisibles
Se puede configurar un biestable RS directamente con puertas "o-negada" (Nor) o
con puertas "y-negada" (Nand):
R S q q
+
_____________________________________________________________________
0 0 0 0 ? = 0 borrado prioritario
0 0 1 1 q
+
= R . (S + q) = R (S q)
0 1 X 1
1 0 X 0 ? = 1 marcado prioritario
1 1 X ? q
+
= S + R . q = S (R q)
R
S
q
R
S
q
q
Biestable RS configurado con puertas Nor
R
S
q
q
q
Biestable RS configurado con puertas Nand
R
S
El vector de entrada 11 no es admisible, pues si va seguido del vector 00, la situacin
posterior del biestable no es predecible, ya que depender de los transitorios de
conmutacin de las dos entradas RS (en principio, depender de cual de ellas se retrase
ms en pasar a 0).
11. Si st emas secuenci al es I: concept os 23
Q Q
Q Q
R
S
S
R
En ambos casos se utilizan dos puertas en lazo cerrado; los dos esquemas son
estructuralmente anlogos (difieren en su respuesta para el vector de entrada R=S=1,
situacin que no debe producirse) pero presentan dos diferencias a tener en cuenta:
a) en el circuito con puertas "o-negada" R acta sobre el terminal superior y S sobre el
inferior mientras que en el que utiliza puertas "y-negada" es al revs
b) los valores activos sobre dichas entradas son el 1 en las puertas "o-negada" y el 0
(R, S) en la configuracin con puertas "y-negada" (o bien, la inclusin de
inversores en dicha configuracin).
11.3.2. Biestable D
El biestable D posee una entrada de almacenamiento D y otra de habilitacin E, de
forma que cuando el biestable es habilitado (E=1) almacena el valor booleano presente en
la entrada D y lo conserva hasta una nueva habilitacin. Si durante el tiempo de
habilitacin dicho valor de entrada se modifica, el biestable va aceptando los diversos
valores presentes en D, reteniendo el ltimo de ellos cuando la habilitacin desaparece.
Para configurar un biestable D a partir de un biestable RS, basta activar sus entradas
R y S con las siguientes condiciones booleanas:
S = D . E R = D . E
R
S
Q
Q
F F
R-S
Q
Q
F F
D
D
E
D
E
Tal esquema, realizado con puertas "y-negada", queda en la forma:
R
S
Q
D
E
q
q
D
E
q
q
S
R
24 El ect rni ca Di gi t al
Este biestable puede construirse tambin con puertas de transmisin:
D
E
q
q
Cuando E = 1 la primera puerta conduce y el valor presente en D se comunica a la
salida q; al hacerse E = 0, la entrada D queda aislada y el valor de la salida se conserva
gracias a la realimentacin que realiza la segunda puerta de transmisin.
q
q
q
q
E=0 E=1
D
[En tecnologas MOS la opcin de puertas de transmisin presenta ventajas respecto
a la de puertas Nand: menor nmero de transistores, del orden de la mitad, que repercuten
en menor rea de integracin y menores tiempos de propagacin].
El biestable D constituye la clula bsica de memoria capaz de almacenar y conserva
un valor booleano, bajo control de la entrada de habilitacin. Agrupando n de estos
biestables en paralelo, con su entrada de habilitacin comn, se configura un registro de
longitud n, capaz de almacenar una palabra de n dgitos o bits. Tal registro recibe el
nombre de memoria de retencin o memoria cerrojo (latch-memory), porque retiene la
informacin almacenada cuando E=1 durante todo el tiempo en que E=0, es decir, la
conserva entre dos habilitaciones sucesivas.
Q
F F
D
D
E
Q
F F
D
D
E
Q
F F
D
D
E
Q
F F
D
D
E
Q3 Q2 Q1 Q 0
D3 D2 D1 D 0
E
Estos registros pueden ampliarse a cualquier nmero de bits, sin ms que utilizar
varios de ellos, uniendo en una sola las diversas entradas de habilitacin E.
11. Si st emas secuenci al es I: concept os 25
La agrupacin de m registros de n bits, controlados a travs de k entradas de
direccionamiento (m=2
k
), de forma que cada registro queda seleccionado por su nmero
en binario, da lugar a un bloque de memoria RAM, memoria de acceso directo o
aleatorio (random access memory).
Los terminales de entrada y de salida de los registros son comunes para todos ellos y,
en cada momento, el vector presente en las entradas de control o direccionamiento
indicar sobre cul de los registros se acta.
A0
D0
'
'
'
'
'
'
A1
A2
A3
A4
Ak-2
Ak-1
M E M O R I A R A M
de m registros ( m = 2 )
de n bits cada uno
Capacidad: m x n bits
k
D1
D2
Dn-2
Dn-1
Lneas
de
Datos
R/W
(lectura/escritura)
E
(habilitacin)
Lneas
de
Direccio-
namiento
'
'
'
'
'
Adems, por simplicidad de acceso, no hay distincin entre terminales de entrada y
terminales de salida de los registros (es decir, la misma lnea acta como entrada y como
salida), de forma que el tipo de acceso al registro seleccionado (lectura del registro o
escritura del mismo) ha de ser indicado por una lnea adicional R/W (lectura/escritura).
Un bloque RAM tendr k lneas de direccionamiento Ai, que actan como entradas,
n lneas de datos Di, que actan bidireccionalmente, una entrada de seleccin de la
operacin a realizar R/W, que distingue entre lectura y escritura
y una entrada de
habilitacin E. Su esquema conceptual est conformado por un sub-bloque central que
contiene los m registros de n bits, un decodificador de k lneas de entrada que selecciona
los registros (m = 2
k
) y un circuito adaptador de entradas/salidas que controla la
actuacin de las n lneas de datos a tenor de las entradas de habilitacin E y
lectura/escritura R/W.
De esta forma, se dispone de unidades de memoria (biestables D) capaces de
almacenar y conservar un bit, de registros (conjuntos de biestables D) capaces de
almacenar una palabra binaria y de bloques de memoria (conjuntos de registros
numerados) capaces de almacenar mltiples datos ordenados.
26 El ect rni ca Di gi t al
11. 4. Est ado, bi est abl es y vari abl es de sal i da; aut mat as de Moore y
de Meal y
Las variables de estado de un sistema secuencial pueden configurarse sobre
biestables RS.
Los biestables RS pueden ser utilizados para la configuracin de sistemas
secuenciales como unidades de memoria capaces de almacenar las variables de estado;
ser preciso emplear un biestable para cada una de las variables de estado y, en este caso,
el resto del circuito ser exclusivamente combinacional.
En el sistema de control de la puerta de garaje utilizando la variable de salida S
como variable de estado, un biestable tipo RS servir para memorizar dicha variable,
cuyas condiciones de marcado y de borrado sern, respectivamente:
- la variable S (subir) se marcar cuando la puerta se encuentre abajo (Ti = 1) y se
active el pulsador P y se borrar al llegar arriba (Ts = 1).
S (marcado) = P.Ti R (borrado) = Ts
S
Q
R
B
S
S
Ts
P
Ti
En este esquema no queda reflejada la realimentacin booleana, ya que la memoria
del estado est configurada por el biestable.
En el caso del timbre con tres pulsadores a b c (con un mecanismo que impide pulsar
dos a la vez y que debe sonar cuando se pulsan sucesivamente los tres pulsadores: a, b y
c), del grafo de estado pueden extraerse las condiciones de marcado y borrado de cada
una de las variables de estado:
reposo
estado 00
a
primer
paso
estado 01
b
estado 10
segundo
paso
c
a
estado 11
c
sonido
c
- dos variables de estado q2 q1 sirven para dar nombre a los cuatro estados
- la variable de estado q1 se marca (pasa de 0 a 1) desde el estado 00 con a y desde el
estado 10 con c y se borra (pasa de 1 a 0) desde el estado 01 con b y con c y desde
el estado 11 con c negado
- la variable de estado q2 se marca (pasa de 0 a 1) desde el estado 01 con b y se borra
(pasa de 1 a 0) desde el estado 10 con a y desde el estado 11 con c negado.
11. Si st emas secuenci al es I: concept os 27
q1:
.c q . q + .a q . q = S
1 2 1 2
c . .q q + c) .(b .q q = R
1 2 1 2
+
q2:
.b .q q = S
1 2
c . .q q + .a q . q = R
1 2 1 2
- variable de salida: timbre = y = q2 . q1
La siguiente figura representa el circuito correspondiente a estas funciones:
q2
q1
q2
q1
y
b
a
c
S
R
Q
Q
S
R
Q
Q
De esta forma, todo sistema secuencial puede dividirse en tres subsistemas: dos de
ellos combinacionales y el tercero constituido por los biestables que almacenan las
variables de estado.
Todo sistema secuencial puede ser construido mediante un conjunto de biestables
que contengan las variables de estado y el resto del sistema ser meramente
combinacional:
a) las funciones que activan (marcado) y desactivan (borrado) a los biestables
b) y las funciones que producen las salidas del sistema.
Dichas funciones de marcado y borrado de los biestables que contienen a las
variables de estado pueden obtenerse directamente de los arcos que representan las
transiciones en el grafo de estados.
Conviene insistir en que el diseo de un circuito secuencial no se reduce a sus
variables de estado, sino que requiere configurar, tambin, las variables de salida. De
hecho, las variables de salida son lo que se ve desde fuera, el resultado efectivo de la
actuacin del circuito; las variables de estado son componentes internas instrumentales
que el circuito necesita como memoria de su evolucin anterior.
28 El ect rni ca Di gi t al
Autmata es el nombre que los matemticos dan a los sistemas secuenciales, es la
denominacin de la estructura matemtica que describe a dichos sistemas: una quntupla
[X, Q, Y, f, g] conformada por tres vectores: el vector de entrada, el vector de estado y el
vector de salida, y dos funciones: la correspondencia que determina la evolucin del
estado y la correspondencia que determina la activacin de las salidas.
Un sistema secuencial o autmata engloba tres conjuntos de variables o vectores
booleanos, entrada X, salida Y y estado Q, y dos conjuntos de relaciones funcionales:
- evolucin del estado X.Q > Q
- activacin de las salidas X.Q > Y
Este tipo de estructura, con separacin funcional entre estado y salidas, de forma que
a un mismo estado le pueden corresponder diversos vectores de salida (para vectores de
entrada diferentes), recibe el nombre de autmata de Mealy.
X
Q
Y
vector de entrada (variables exteriores)
salidas
variables
de
estado
Bloque
Combinacional
de Salida
Variables
de Estado
(n Biestables)
Bloque
Combinacional
de Evolucin
de Estado
Ahora bien, si nos fijamos en los grafos de estado desarrollados en este captulo,
resulta que en todos (menos en los de la puerta de garaje) el vector de salida es funcin
nicamente del estado (no depende del vector de entrada).
Ello da lugar a un tipo de estructura alternativa denominada autmata de Moore, en
la cual la correspondencia entre estado y vector de salida es unvoca, de forma que a cada
estado le corresponda un solo vector de salida. En este caso el estado ha de contener,
adems de la informacin sobre la evolucin anterior del sistema, la relativa al vector de
salida que debe producir en el momento actual; de forma que las relaciones funcionales
en el autmata de Moore son las siguientes:
- evolucin del estado X.Q > Q
- activacin de las salidas Q > Y
X
Q
Y
vector
de entrada
(variables
exteriores)
salidas
variables
de
estado
Codifi-
cador
Variables
de Estado
(n Biestables)
Bloque
Combinacional
de Evolucin
de Estado
11. Si st emas secuenci al es I: concept os 29
En el autmata de Moore el vector de salida se encuentra contenido en el estado, es
una simple recodificacin del vector de estado. De manera que un estado del autmata de
Mealy que produzca diversos vectores de salida tiene que desdoblarse en varios estados
del autmata de Moore, uno para cada vector de salida (distinguibles estos estados entre
s por los vectores de entrada que, en el caso de Mealy, diferenciaban entre los vectores
de salida posibles).
Entre estado y salida hay una simple codificacin booleana; ms an, en muchos
casos las variables de salida son una parte de las variables de estado: el vector de estado
queda configurado por el vector de salida junto con algunas otras variables adicionales.
Ello evita el codificador estado-salidas, reduciendo las relaciones funcionales a un solo
conjunto:
- evolucin del estado X.Q > Q
X
Q
Y
vector
de entrada
(variables
exteriores)
salidas
variables
de
estado
Variables
de Estado
(n Biestables)
Bloque
Combinacional
de Evolucin
de Estado
Ambas estructuras de autmata (Moore y Mealy) son funcionalmente equivalentes, si
bien el autmata de Moore puede contener un nmero de estados considerablemente
mayor. Por ello, el autmata de Mealy suele resultar mucho ms simple en cuanto a
descripcin de la evolucin del estado y a sntesis de las funciones correspondientes a las
variables de estado; en cambio, en el autmata de Moore resultan ms sencillas las
funciones de activacin de las salidas.
Veamos un interesante ejemplo de sistema secuencial, expresando su grafo en las
dos formas de Mealy y Moore: Un depsito se llena con una mezcla de cuatro lquidos
diferentes, para lo cual dispone de cuatro electrovlvulas A, B, C, D que controlan la
salida de dichos lquidos y de cinco detectores de nivel n1, n2, n3, n4, n5 siendo n1 el
inferior y n5 el de llenado mximo. Solamente cuando el nivel del depsito desciende por
debajo del mnimo n1 se produce un ciclo de llenado: primero con el lquido A hasta el
nivel n2, luego el lquido B hasta el nivel n3, el lquido C hasta n4 y, finalmente, D hasta
completar el depsito n5.
El grafo de estado correspondiente al autmata de Moore ser el siguiente:
n1 n2
reposo lquido A
0000 0001 0010
0100 1000
lquido B
lquido C
lquido D
n4
n3
n5
30 El ect rni ca Di gi t al
En el grafo anterior se utiliza para los estados el cdigo de un solo uno con cuatro
variables de estado q4 q3 q2 q1; de esta forma cada variable de estado coincide con una de
las variables de salida ( q1 = llenado con lquido A; q2 = lquido B; q3 = lquido C;
q4 = lquido D ). El marcado y borrado de cada variable de estado coincide, en este grafo
circular y codificado con un solo uno, con las transiciones de entrada y de salida al
estado en que la correspondiente variable vale 1:
q1:
S = n
1
2 1
.n q = R
q2:
S = q
1
.n
2
3 2
.n q = R
q3:
S = q
2
.n
3
4 3
.n q = R
q4:
S = q
3
.n
4
R = n
5
Obsrvese que para identificar cada estado solamente es necesaria una variable (ya
que el cdigo es de un solo uno).
1
S no contiene el estado desde el que se marca
1 2 3 4
q . q . q . q ya que la transicin con
0 n
1
= solamente puede darse desde dicho estado; lo mismo sucede con
4
R , pues 1 n
5
=
slo puede suceder desde el estado correspondiente a
4
q .
La siguiente figura representa el circuito resultante:
R
S
q4
D
R
S
R
S
R
S
q1
A
B
q2
C
q3
n1
n3
n4
n5
n2
11. Si st emas secuenci al es I: concept os 31
El mismo sistema secuencial puede configurarse con un nmero ms reducido de
estados, segn el siguiente grafo que corresponde a un autmata de Mealy:
n1
reposo llenado
n5
q=0 q=1
En este caso se necesita solamente una variable de estado q, pero las funciones de
activacin de las salidas resultan ms complejas, pues dependen de las entradas, de la
informacin que aportan los detectores de nivel:
electrovlvula A = q . n
2
lquido A hasta que se alcanza el nivel n2
electrovlvula B = q . n
2
. n
3
lquido B desde el nivel n2 hasta el nivel n3
electrovlvula C = q . n
3
. n
4
lquido C desde el nivel n3 hasta el nivel n4
electrovlvula D = q . n
4
lquido D por encima del nivel n4
y, segn el sencillo grafo de estados anterior, la variable q pasa a valor 1 cuando 0 n
1
=
y a valor 0 cuando 1 n
5
= :
q:
S = n
1
R = n
5
.
R
S
q
n1
n5
n2
n3
n4
D
C
B
A
32 El ect rni ca Di gi t al
De igual forma, el primer ejemplo considerado en este captulo, el control de la
puerta de garaje, puede expresarse como autmata de Moore:
Ts
abajo
arriba
subiendo
bajando
P
P
Ti
00 01
11
10
q1:
1 2
q . q P. = S
1 2
.q P.q = R
q2:
1 2
.q q Ts. = S
1 2 i
q . .q T = R
1 2
q . q = (subir) S
1 2
q . q = (bajar) B
Ti
P
Ts
R
S
S
B
q
q
2
2
2
2
R
S
q
q
1
1
1
1
q
1
q
1
q
2
q
2
y como autmata de Mealy:
P.Ts
P.Ti
q = 0 q = 1
bajando
y abajo
subiendo
y arriba
q1:
i
P.T = S
s
P.T = R
S (subir) = q . T
s
B (bajar) = q . T
i
Ts
P
Ti
R
S
S B
q
q
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
12 INTRODUCCIN A LOS SISTEMAS SECUENCIALES II:
DISEO
12.1. Simplificacin de estados con los mismos efectos
12.2. Agrupacin de estados que se distinguen por variables de entrada
12.3. Codificacin de los estados
12.4. Diseo de circuitos secuenciales con biestables RS
12.5. Ejercicios de diseo secuencial
El proceso de diseo de un sistema secuencial parte de la delimitacin de los estados
necesarios para describirlo, para lo cual resultan sumamente tiles los grafos de estados.
La reduccin, cuando es posible, del nmero de estados, contribuye a simplificar el grafo y,
en consecuencia, las funciones de evolucin del estado. Dos son las situaciones que permiten
la agrupacin de varios estados en uno solo: cuando los estados tienen los mismos efectos
(incluyendo en ellos, tanto las salidas como las transiciones que se producen desde ellos) y
cuando no es preciso distinguir los estados entre s, ya que se diferencian por los valores de
algunas variables de entrada.
Una vez establecidos los estados de un sistema, el siguiente paso es dar nombre a
cada estado: asignarle una palabra binaria. Luego, cada uno de sus dgitos (cada variable
de estado) puede almacenarse sobre un biestable, de forma que el diseo secuencial consiste
en obtener las funciones de marcado y de borrado de los mismos (biestables RS), junto con
las funciones que producen el vector de salida. El sistema secuencial queda distribuido en
tres partes: los biestables que contienen las variables de estado, las funciones de activacin
de dichos biestables y las funciones de activacin de las salidas.
El diseo secuencial equivale a un recorrido a travs de los diversos niveles de
descripcin del sistema: a partir de las especificaciones o requisitos se plantea un grafo de
estados, desde el cual se obtienen las funciones de evolucin de las variables de estado
(marcado y borrado de sus biestables) y las de activacin de las salidas del sistema para
llegar al correspondiente circuito digital de biestables y puertas lgicas.
La sntesis de las funciones de marcado y borrado de los biestables de estado puede
hacerse a travs de la correspondiente tabla de verdad (entradas, estado nuevo estado),
segn el mtodo habitual de construccin de funciones booleanas; o bien, directamente desde
el grafo de estados, identificando las transiciones que modifican el valor de cada variable
de estado. La elaboracin de la tabla funcional obliga a considerar todas y cada una de
las situaciones posibles (para cada estado, cada uno de los vectores de entrada), muchas
de las cuales no quedan reflejadas, en forma expresa, en el grafo de estado; adems
facilita la simplificacin de las funciones.
Este captulo, adems de tratar en detalle la simplificacin de estados y exponer el
proceso de diseo de sistemas secuenciales, incluye un variado y significativo conjunto de
ejemplos de diseo de los mismos.
34 El ect rni ca Di gi t al
12. 1. Si mpl i fi caci n de est ados con l os mi smos efect os
La representacin de la evolucin del estado del sistema sobre un grafo de estados
sirve para determinar los estados necesarios; una vez establecido un grafo de estados,
conviene considerar la posibilidad de simplificarlo, disminuyendo el nmero de estados
que contiene.
La reduccin del nmero de estados de un sistema secuencial, cuando tal cosa es
posible, supone una simplificacin de las funciones booleanas de evolucin del estado, la
cual resulta particularmente importante cuando permite disminuir el nmero de variables
de estado (ello sucede siempre en codificacin con un solo uno pero tiene an mayor
inters en cdigo Gray y dems cdigos de longitud mnima).
Existen dos mecanismos que permiten agrupar dos o ms estados en uno solo y que
se refieren a dos situaciones conceptuales, estados que no necesitan diferenciarse entre s
y estados que ya se distinguen por variables exteriores:
a) son agrupables aquellos estados que no precisan diferenciarse entre s, por tener
las mismas salidas, es decir, los mismos vectores de salida y las mismas
transiciones desde ellos;
b) tambin son agrupables aquellos estados que, tanto ellos como las transiciones
que se producen desde ellos, pueden diferenciarse mediante variables exteriores,
es decir, mediante los valores de las variables de entrada.
Los estados se refieren a situaciones (secuencias de vectores de entrada) que el sistema
necesita conservar en su memoria en forma diferenciada (distinguiendo una situacin de
otra). Obviamente, no es preciso diferenciar aquellas situaciones que producen los
mismos efectos: los mismos vectores de salida y las mismas transiciones. Tampoco es
necesario distinguir internamente aquellas situaciones que se diferencian entre s por el
valor de alguna de las variables de entrada (o de varias de ellas). En el primer caso, se
evita diferenciar situaciones que son idnticas por serlo sus efectos; en el segundo, puede
prescindirse de distinguir en la memoria del sistema aquello que puede diferenciarse
externamente.
Son agrupables (reducibles a uno solo) aquellos estados que producen los mismos
efectos, es decir, tienen los mismos vectores de salida y las mismas transiciones desde
ellos.
Consideremos un ejemplo muy simple: un motor con giro en sentido nico
controlado a travs de dos pulsadores; activando uno cualquiera de ellos el motor se
pone a girar y se para al presionar ambos pulsadores a la vez. Un posible grafo de
estados sera el siguiente:
A.B
A.B
A.B
A.B
reposo giro giro
12. Si st emas secuenci al es II: di seo 35
Ahora bien, los dos estados de giro tienen el mismo vector de salida (el motor
girando en el mismo sentido) y la misma transicin de salida (con A.B pasan al reposo);
por ello, equivalen a un solo estado:
A.B
reposo giro
A.B + A.B
Se ha propuesto este primer ejemplo por su sencillez, pero presenta un problema
sobre el cual conviene razonar: al activar ambos pulsadores el motor se para, pero al
soltarlos lo ms probable es que un pulsador pase a 0 antes que el otro (los circuitos
electrnicos son sensibles a diferencias de nanosegundos) y, entonces, se produce la
condicin de activacin y el motor se pone a girar. El grafo adecuado para evitar esto
requiere tres estados:
A . B
parada
A.B + A.B
A.B
reposo giro
Un segundo ejemplo: semforo de aviso de paso de tren en un cruce de va nica
bidireccional con un camino; la va posee, a ambos lados del cruce y a una distancia
adecuadamente grande, sendos detectores de paso de tren a y b; los trenes circulan por
ella en ambas direcciones y se desea que el semforo seale presencia de tren desde que
ste alcanza el primer sensor en su direccin de marcha hasta que pasa por el segundo
sensor tras abandonar el cruce.
a
b
b.a
a
reposo
tren
entrando
tren
entrando
tren
alejndose
tren
a
b
alejndose
El estado relativo a tren alejndose es necesario pues, si se prescinde de dicho
estado, un mismo tren al alejarse lleva al sistema al estado de reposo pero,
inmediatamente despus, ser considerado como tren entrando en la direccin opuesta y
causar una evolucin incorrecta.
36 El ect rni ca Di gi t al
El grafo anterior, tal como est representado no es simplificable. Pero podemos
modificar la condicin booleana de las transiciones que salen de ambos estados inferiores
(tren alejndose), de forma que ambas se produzcan con a . b (en el momento en que el
tren abandona el cruce ambos detectores estarn a 0) y, entonces, ambos estados son
reducibles a uno solo.
a
b
b.a
a
reposo
tren
entrando
a . b
tren
entrando
tren
alejndose
00 10 01
11
Aunque ambos grafos difieren en un solo estado, el primero de ellos necesita, al
menos, tres variables de estado, mientras que el segundo puede codificarse con dos
variables de estado.
En la prctica, en el diseo de un sistema secuencial a partir de unas especificaciones
funcionales, apenas suele presentarse este tipo de estados con las mismas salidas; es raro
que, al formular el correspondiente grafo de estados, el diseador incluya dos estados que
presenten los mismos efectos, pues generalmente los considerar ya de entrada como el
mismo estado.
Consideremos un ejemplo que utilizaremos posteriormente para describir las formas
de codificar estados: sea un timbre que dispone de dos pulsadores A y B, pero que
solamente suena si se ejecuta la siguiente secuencia sobre ellos: A, A y B, B, A y B (se
pulsa A; sin soltar, se pulsan ambos, A y B; se suelta A; y, por, ltimo, sin soltar B, se
vuelven a pulsar ambos, A y B). Su grafo de estados puede ser el siguiente:
A.B A.B
A.B
A.B
A.B
A
B
B
reposo 1 paso 2 paso
3 paso
llamada
Supongamos que, para evitar el tener que acordarse por cul de los pulsadores hay
que iniciar la secuencia, se admiten las dos secuencias simtricas posibles: ( A, A y B, B,
A y B ) o, tambin, ( B, A y B, A, A y B ).
12. Si st emas secuenci al es II: di seo 37
A.B
reposo
1 paso 2 paso
3 paso
llamada
1 paso
llamada
3 paso
A.B
A.B
A.B
A.B
A.B
A
A
A B
B
B
A.B
A.B
A.B
2 paso
A.B
Los dos estados que corresponden a llamada en una y otra secuencia se pueden
reducir a uno solo; el diagrama resultante puede ser codificado con tres variables de
estado, mientras que el grafo sin simplificar necesitaba, al menos, cuatro variables.
12. 2. Agrupaci n de est ados que se di st i nguen por vari abl es de ent rada
Tambin son agrupables (reducibles a uno solo) aquellos estados que, tanto ellos
como las transiciones que desde ellos se producen, son distinguibles por los valores de
las variables de entrada.
Consideremos una puerta de garaje de funcionamiento un poco ms complejo que el
detallado en el apartado 11.1: la puerta ha de abrirse al accionar una llave Ll y debe
permanecer arriba durante un tiempo prefijado, dado por una temporizacin T,
transcurrido el cual la puerta se cierra; si durante la bajada una clula fotoelctrica
situada en la zona inferior Cf detecta la presencia de un objeto o persona, la puerta debe
volver a subir reiniciando el ciclo de apertura.
Las entradas al sistema de control de esta puerta sern: la llave Ll, los topes superior
Ts e inferior Ti y la clula fotoelctrica Cf, as como la salida de un circuito auxiliar de
temporizacin T. Las salidas de dicho control sern los movimientos hacia arriba S y
hacia abajo B y el disparo de la temporizacin DT.
parada
subiendo
bajando
arriba
Ll
Ts
Cf.Ti.Ts
T
Ti
Los cuatro estados de este grafo requieren para su codificacin, al menos, dos
variables de estado q2 q1.
Pero en realidad no son necesarios cuatro estados: la necesidad de memoria se
reduce a distinguir entre subida y bajada, pudiendo diferenciarse los otros dos estados
mediante variables exteriores. El estado de reposo y el de bajada pueden distinguirse por
el valor de la variable Ti (Ti=1, reposo; Ti=0, bajada); de igual forma la variable Ts
permite diferenciar el estado de subida (Ts=0) y el de temporizacin (Ts=1).
38 El ect rni ca Di gi t al
Una vez agrupados tales estados es preciso comprobar que las transiciones que salen
de ellos pueden diferenciarse, de forma que se produzcan correctamente:
- es necesario condicionar con
i
T la transicin que produce Ll para que solamente se
realice desde la situacin de puerta parada abajo
- la transicin que produce
f
C se encuentra adecuadamente condicionada con T
i
, de
forma que no se efecta cuando la puerta se encuentra ya parada abajo
- y, tambin, hay que aadir
s
T a la transicin determinada por T para que no se
realice mientras la puerta se encuentra subiendo. De esta forma, las transiciones entre
los dos nuevos estados, resultantes de la agrupacin de los cuatro iniciales, se
producen en las mismas situaciones que en el anterior grafo de cuatro estados.
Ll.Ti
Ts
Cf.Ti.Ts
T. Ts
Ti
abajo
subiendo
arriba
bajando
Ts=1
Ti=0
Ti=1
Ts=0
q = 0
q = 1
Basta una variable de estado q para diferenciar los dos estados necesarios, que
corresponden a la puerta subiendo o parada arriba (q=1) y puerta bajando o abajo (q=0):
q:
s i i
T . T Cf. LL.T = S +
s
T . T = R
La activacin de las salidas vendr dada por las siguientes funciones:
S (subir) = q . T
s
DT (disparo de la temporizacin) = T
s
(al pasar de 0 a 1)
B (bajar) = q . T
i
Otro ejemplo semejante: sea un pequeo carrito motorizado que recorre linealmente
el camino entre dos puntos A y B, en los cuales existen sendos contactores fin de
camino a y b; al activar un pulsador P, el carrito circula desde A hasta B y vuelve
nuevamente a A.
Un primer grafo del comportamiento de dicho carrito puede incluir tres estados:
reposo, movimiento hacia B y movimiento hacia A, pero el primero y el ltimo son
simplificables, ya que los diferencia la variable exterior a (reposo: a=1, movimiento hacia
A: a=0). Basta, pues, una variable de estado q, cuyo marcado y borrado se producirn con
P.a y con b, respectivamente; el movimiento hacia B coincidir con la variable de estado
q y el movimiento hacia A se producir con q . a .
b
P.a
reposo
y mov. de vuelta
mov. de ida
12. Si st emas secuenci al es II: di seo 39
Supngase que, adems del carrito anterior que se mueve entre A y B, un segundo
carrito circula entre C y D (contactos fin de carrera: c y d), de forma que ambos
carritos inician el movimiento desde A y C con el pulsador P y el primero en alcanzar el
otro extremo B o D, espera a que el otro alcance el suyo, para iniciar juntos el
movimiento de vuelta.
Un grafo detallado de este sistema de dos carritos puede incluir siete estados:
reposo
P
b.d
b.d
d
b
a.c c
a
0 1
2
3
4
5
6
b.d a.c
a.c
El anlisis de la posibilidad de reducir el nmero de estados puede desarrollarse
sistemticamente considerando:
1 estados agrupables
2 variables que los diferencian
3 posibilidad de diferenciar correctamente las transiciones desde el nuevo estado.
En el anterior grafo de estado son posibles las siguientes agrupaciones:
1.1 estados agrupables: los estados 1, 2 y 3
1.2 variables que los diferencian: b y d : 00, 10, 01, respectivamente
1.3 posibilidad de diferenciar correctamente las transiciones desde el nuevo estado:
d debe producirse desde el estado 2 (b=1) : d.b
b debe producirse desde el estado 3 (d=1) : b.d
el nuevo estado agrupado tendr una transicin de salida d.b (cuando se alcancen los dos
topes de la derecha), lo cual es correcto.
2.1 estados agrupables: los estados 4, 5, 6 y 0
2.2 variables que los diferencian: a y c : 00, 10, 01,11, respectivamente
2.3 posibilidad de diferenciar correctamente las transiciones desde el nuevo estado:
P debe producirse desde el estado 0 (a=1 c=1) : P.a.c
el estado agrupado tendr una transicin de salida P.a.c, lo cual es correcto.
Obsrvese que solamente es necesario considerar las transiciones que salen desde el
nuevo estado agrupado y no las que se producen en el interior del mismo entre los estados
que se agrupan.
En este caso, conforme al anlisis desarrollado, son suficientes dos estados ya que el
resto de las situaciones son distinguibles mediante las variables exteriores.
40 El ect rni ca Di gi t al
Resulta un grafo del tipo siguiente:
b.d
P.a.c
q = 0 q = 1
reposo
y mov. de vuelta
mov. de ida
Este grafo corresponde a la necesidad de memoria que se limita a distinguir entre dos
situaciones: el movimiento hacia B y D del movimiento hacia A y C; adems, el grafo es
el mismo (con solamente dos estados) aunque el nmero de carritos aumente.
Las funciones de salida correspondientes a los movimientos de cada carrito sern:
- primer carrito: = mov. AB = q . b = mov. BA = q . a
- segundo carrito: = mov. CD = q . d = mov. DC = q . c .
Este grafo de dos estados, en forma de autmata de Mealy, sirve tambin para
cualquier nmero n de carritos; solamente se requiere diferenciar el movimiento de ida
del de vuelta: las salidas referidas a cada uno de los carritos dependern, adems del
estado (variable q) de la situacin de los correspondientes contactos fin de carrera.
Otro ejemplo de simplificacin de estados que se distinguen por los valores de las
variables de entradas es el considerado en el ltimo apartado del captulo anterior
(apartado 11.4, pginas 30 32, depsito que se llena con una mezcla de cuatro lquidos
diferentes): su grafo como autmata de Moore presenta cinco estados, que se reducen a
dos al tratarlo como autmata de Mealy, debido a que cuatro de dichos estados pueden
diferenciarse por las entradas detectoras de nivel (n2, n3, n4, n5).
Es conveniente insistir en la importancia que tiene el diferenciar adecuadamente las
transiciones desde el estado agrupado. Volviendo al grafo de los dos pulsadores que
activan un timbre a travs de una secuencia A, A y B, B, A y B, (apartado anterior,
pgina 36)
A.B A.B
A.B
A.B
A.B
A
B
B
reposo 1 paso 2 paso
3 paso
llamada
los estados correspondientes a 1 paso y a 2 paso pueden distinguirse a travs de la
variable B (B=0 y B=1, respectivamente) pero al agruparlos no es posible diferenciar la
transicin producida por B de forma que solamente se efecte desde el 2 paso (B=1:
B . B transicin imposible).
12. Si st emas secuenci al es II: di seo 41
Tambin los estados de reposo y 1 paso pueden distinguirse a travs de la variable
A (A=0 reposo y A=1 1 paso) pero al agruparlos no puede diferenciarse la transicin
producida por A . B de manera que slo se efecte desde el 1 paso (por ejemplo,
podramos pulsar B y luego A . B, con lo cual la transicin al 2 paso se realizara
directamente desde el reposo, lo cual es incorrecto).
Ello se debe a que, precisamente, la misma variable exterior que distingue los
estados es la que produce la transicin. En este caso la necesidad de memoria se extiende
a todos los pasos de la secuencia (A, A y B, B, A y B); al agrupar dos de ellos se reduce
la longitud de la secuencia (si acaso podra prescindirse del ltimo de los estados, el de
llamada, y activar el timbre directamente desde el estado que corresponde a 3 paso
cuando la entrada sea A.B, tal como veremos en el prximo apartado 12.3.2).
Ejemplo con los dos tipos de simplificacin de estados
Un determinado mecanismo se mueve a lo largo de un riel entre dos posiciones A y B que
se detectan mediante sendos sensores a y b:
a b
el movimiento se controla mediante un pulsador P de la siguiente manera:
- cuando el mecanismo se encuentra en A y se activa P, se inicia el movimiento hacia B al
soltar el pulsador P
- de la misma forma, cuando se encuentra en B se inicia el movimiento hacia A al dejar
libre el pulsador P (una vez activado)
- cuando el mecanismo se encuentra entre A y B, si se pulsa P el mvil se detiene y al
soltar P contina su movimiento anterior.
Un posible grafo de estados, en forma de autmata de Moore con detalle de todas las
situaciones posibles, es el siguiente, en el que las salidas corresponden directamente a los
estados de ida y vuelta, respectivamente.
Reposo prep. ida
P P
b . P
P
P
parado 1
P P
en B
a . P
prep.
vuelta
parado 2
P
P
ida
vuelta
42 El ect rni ca Di gi t al
Pero los estados preparado ida y parado 1 son idnticos ya que tienen los mismos
efectos (salida nula y transicin hacia el estado ida con P negado) y lo mismo sucede con
los estados preparado vuelta y parado 2 (salida nula y transicin hacia el estado vuelta
con P negado); de forma que ambas parejas de estados pueden agruparse segn el grafo
siguiente, que contina siendo de Moore (salidas en correspondencia con los estados de
ida y vuelta):
reposo prep. ida
P P
b . P
P
P P
en B
a . P
prep.
vuelta
P
ida
vuelta
Ahora bien, los estados preparado ida e ida pueden diferenciarse por el valor
de la entrada P (P = 1 preparado ida, P = 0 ida) y lo mismo sucede con los
estados preparado vuelta y vuelta (P = 1 preparado vuelta, P = 0 vuelta); lo cual
permite agrupar ambas parejas de estados:
reposo
P
b . P
P
en B
a . P
ida
vuelta
00 01
10 11
En este caso, el autmata es de Mealy y las funciones de activacin de las
salidas son: P . q . q = da i
1 2
P . q . q = uelta v
1 2
.
Pero tambin, en este ltimo grafo, los estados ida y en B pueden diferenciarse
por el valor de una entrada (b = 0 ida, b = 1 en B); para agrupar ambos estados es
necesario multiplicar la transicin P que sale del nuevo estado por b, a fin de que
se produzca desde la situacin en B. Igualmente sucede con los estados vuelta y
reposo (P = 0 vuelta, P = 1 reposo); ambos pueden agruparse multiplicando la
transicin P que sale del nuevo estado por a, para que se produzca desde Reposo.
Resulta un grafo de Mealy, con solo dos estados:
reposo
y vuelta
P. a
ida
y en B
0
1
P. b
12. Si st emas secuenci al es II: di seo 43
Las funciones de activacin de las salidas son:
b . P . q = da i a . P . q = uelta v
y la evolucin de la variable de estado corresponde a las siguientes funciones de
marcado y borrado:
a . P = S b . P = R .
12. 3. Codi fi caci n de l os est ados
El grafo de estados establece los estados necesarios; conocidos los estados del sistema
secuencial, el siguiente paso ser asignar un cdigo binario (un conjunto de valores de las
variables de estado) a cada uno de los estados.
La codificacin de los estados, es decir, la asignacin de vectores de estado a los
diversos estados, es un proceso arbitrario, con la nica limitacin de que a estados
diferentes deben corresponder cdigos binarios (vectores de estado) distintos. En
principio el diseador puede asignar libremente a los diversos estados las palabras
binarias que desee o que considere ms adecuadas.
Ahora bien, entre las mltiples codificaciones posibles de los estados, existen dos de
particular inters:
a) asignar a cada estado (excepto al estado inicial) una variable de estado, de forma que
cada estado se corresponda biunvocamente con una de las variables de estado,
resultando un cdigo de un solo uno (cada vector de estado contiene un solo 1);
b) utilizar para numerar los estados el cdigo Gray, de forma que dos estados
consecutivos difieran en una sola variable de estado (en cada transicin se produce
un solo cambio en las variables de estado).
La codificacin con un solo uno (cada vector de estado contiene un solo 1) supone
utilizar un biestable para cada estado (excepto para el estado inicial que ser el 000); en
cambio, para cdigo Gray en cada transicin se produce un solo cambio en las
variables de estado y, consiguientemente, solamente conmuta uno de los biestables.
El cdigo de un solo uno resulta muy sencillo de manejar si el nmero de estados
es reducido, mientras que el cdigo Gray confiere una gran seguridad al funcionamiento
del sistema secuencial, evitando evoluciones errneas. Adems, ambas formas de
codificacin de estados reducen la lgica necesaria para la activacin de los biestables
(reducen las funciones booleanas de evolucin de las variables de estado).
Aplicaremos ambas formas de codificar estados al ejemplo del timbre con dos
pulsadores A y B que suena al aplicar la secuencia: A, A y B, B, A y B.
44 El ect rni ca Di gi t al
12.3.1. Codificacin con un solo uno
El estado inicial o de reposo se codifica con el valor 000 y para el resto de los
estados se hace coincidir una variable de estado con cada uno de ellos, de forma que el
valor de dicha variable sea 1 para tal estado y 0 para el resto de ellos.
De esta forma se requiere un nmero de variables igual al nmero de estados menos
uno; en cambio, se consigue que las funciones booleanas, tanto las de evolucin de estado
como las de salida, sean relativamente simples y fciles de deducir directamente del grafo
de estados.
Con esta codificacin el ejemplo relativo al timbre con dos pulsadores requiere
cuatro variables de estado q4 q3 q2 q1 para representar sus cinco estados:
0000 reposo, 0001 primer paso, 0010 segundo paso, 0100 tercer paso, 0001 llamada.
A.B A.B
A.B
A.B
A.B
A
B
B
reposo 1 paso 2 paso
3 paso
llamada
0000 0001 0010
0100 1000
La activacin de la salida (sonido del timbre) coincide con el ltimo estado y, por
tanto, con una de las variables de estado q4. Para configurar el sistema secuencial con
biestables RS, se asigna un biestable a cada variable de estado y las condiciones de
marcado y borrado pueden obtenerse directamente del grafo de estados.
Resulta til introducir la variable q
0
= Nor(q
4
,q
3
,q
2
,q
1
), que corresponde al estado
inicial 0000, es decir, adopta el valor 1 cuando q
4
=q
3
=q
2
=q
1
=0; de esta forma, todos los
estados, incluido el inicial, se encuentran en correspondencia biunvoca con una variable
de estado.
- evolucin del estado:
q
1
:
S = q
0
. A . B ) B + A .( q = A.B) + A .( q = R
1 1
q
2
:
S = q
1
. A . B ) B + A .( q = .B) A + B .( q = R
2 2
q
3
:
S = q
2
. A . B ) B + .(A q = A.B) + B .( q = R
3 3
q
4
:
S = q
3
. A . B ) B A. .( q = R
4
- variable de salida: timbre = q
4
12. Si st emas secuenci al es II: di seo 45
La siguiente figura representa el circuito correspondiente a dichas funciones:
q1
q2
q3
q4 Y
B A
A A
q0
S
R
Q
S
R
Q
S
R
Q
S
R
Q
Obsrvese que las condiciones de marcado deben incluir la informacin sobre el
estado anterior desde el que se produce el marcado; precisamente dicha informacin
viene dada por la variable que corresponde al estado anterior y en el caso del estado
inicial por el producto de las variables de estado negadas: Nor(q4,q3,q2,q1) = q0.
Lo mismo sucede con las condiciones de borrado que, en general, deben incluir la
informacin sobre el propio estado desde el que se produce el borrado; dicha informacin
se reduce a la variable propia del estado, que es la que pasa a 0.
Se debe poner particular atencin a las transiciones entre estados, considerando la
posibilidad de que, por error, se marquen dos o ms variables de estado o que la variable
de estado anterior se borre tan rpidamente que no llegue a marcarse el estado siguiente.
As puede suceder que al pasar de un estado al siguiente (por ejemplo de q1 a q2) el
primero de los estados se borre tan rpidamente (q1 con A.B) que no llegue a marcarse el
siguiente (q2); esto puede corregirse condicionando el borrado de una variable al hecho
de que la variable de estado siguiente se haya marcado (para q1, R = A + B.q
2
).
Ahora bien, esta forma de asegurar que el borrado de una variable no se produce
hasta que no se marca la siguiente aumenta el riesgo de que se marquen dos variables a la
vez. Todos estos problemas son propios de los sistemas asncronos y no es posible
resolverlos globalmente, sino que, en cada caso deben analizarse los riesgos de que tales
problemas se produzcan; la forma de evitar todo este tipo de posibles errores pasa por
codificar n cdigo Gray o, an mejor, por efectuar un diseo sncrono (que ser estudiado
en el captulo 14).
46 El ect rni ca Di gi t al
12.3.2. Codificacin con un solo cambio
La utilizacin del cdigo Gray para numerar los estados permite que dos estados
consecutivos se diferencien en el valor de una sola variable de estado, es decir, que en
cada transicin cambie solamente una variable de estado.
Con esta codificacin el ejemplo anterior requiere tres variables de estado q3 q2 q1
para representar sus cinco estados:
000 reposo, 001 primer paso, 0011 segundo paso, 0010 tercer paso, 110 llamada.
A.B A.B
A.B
A.B
A.B
A
reposo 1 paso 2 paso
3 paso
llamada
000 001 011
010
110
B
B
transitorio
siempre
100
Ha sido preciso reorganizar las transiciones del grafo e introducir un estado adicional
para asegurar que en todas las transiciones solamente cambia de valor una de las variables
de estado. Puede comprobarse que el anterior grafo de estados es funcionalmente correcto
y que cualquiera de las transiciones expresadas en el mismo modifica un sola variable de
estados.
Asignando un biestable a cada una de las variables de estado, para obtener las
condiciones de marcado y borrado ha de tenerse en cuenta el subconjunto de estados en
que la correspondiente variable se encuentra a 1 y considerar las transiciones que
conducen y que abandonan, respectivamente, dicho subconjunto.
Tanto en las condiciones de marcado como en las de borrado debe incluirse la
informacin sobre el estado anterior desde el que se produce dicho marcado o borrado.
- evolucin del estado:
q1:
S = q
3
.q
2
.q
1
.A.B + q
3
.q
2
.q
1
.B R = q
3
.q
2
.q
1
.A + q
3
.q
2
.q
1
.A.B
q2:
S = q
3
.q
2
.q
1
.A.B R = q
3
.q
2
.q
1
.B + q
3
.q
2
.q
1
.A.B
q3:
S = q
3
.q
2
.q
1
.A.B R = q
3
.q
2
.q
1
- variable de salida: timbre = q3
12. Si st emas secuenci al es II: di seo 47
Hubiera sido correcto utilizar para este mismo sistema secuencial un grafo ms
reducido, conforme a la siguiente figura, ya que no es estrictamente necesario memorizar
el ltimo estado de la secuencia; basta con que se active el timbre desde el estado
correspondiente a 3 paso cuando la entrada sea A.B,
A.B A.B
A.B
A
B
reposo 1 paso 2 paso
3 paso
00 01 11
10
A.B
suena
el timbre
B
Obsrvese que en el estado final, si despus de activar el timbre se deja de pulsar A y
se mantiene pulsado B, permanece el mismo estado y puede activarse de nuevo el timbre
al pulsar A; en esto se diferencia este grafo del anterior, en el cual, al dejar de activar uno
de los pulsadores A o B, el estado de llamada pasa directamente al estado de reposo.
- evolucin del estado:
q1:
B .A. q . q = S
1 2
.B A . .q q + A . .q q = R
1 2 1 2
q2:
.A.B .q q = S
1 2
B . q B . .q q B . q . q = R
2 1 2 1 2
= +
- variable de salida: .A.B q . q = timbre
1 2
.
S
R
Q
S
R
Q
Y
B A
q
2
q
2
q
1
q
1
48 El ect rni ca Di gi t al
Cuando la codificacin se ajusta por completo a un cdigo Gray (un solo cambio en
cada transicin) se evita en gran medida la posibilidad de evoluciones errneas debidas a
diferencia en los tiempos de propagacin de las funciones que marcan o borran las
diversas variables.
Si el cdigo no es Gray, en el paso de un estado a otro en que cambie el valor de ms
de una variable de estado puede suceder que la modificacin de una de ellas sea ms
rpida que la del resto y se produzca un estado intermedio a partir del cual el sistema
desarrolle una evolucin errnea. Por ejemplo, en un sistema con dos variables de estado
q2 q1, en el cual para b=1 se pase del estado 01 al 10, siendo la variable q1 ms rpida en
modificarse, se pasar primero al estado 00; puede suceder que dicho estado intermedio
00 no deba cambiar con b=1 y la transicin a 10 no se complete, dando lugar a una
transicin errnea del 01 al 00.
La codificacin en cdigo Gray requiere, en ocasiones, modificar el grafo de estados,
aadiendo estados auxiliares para asegurar que en todas las transiciones se modifica una
sola variable de estado; ello siempre es posible pero, en algunos casos, resulta muy
complejo y supone un aumento significativo del nmero de estados. La alternativa, en tal
caso, pasa por el sincronismo como mecanismo conceptual que proporciona seguridad
funcional (al evitar la formacin de estados intermedios).
12. 4. Di seo de ci rcui t os secuenci al es con bi est abl es RS
El proceso de sntesis o construccin digital de una funcin parte del enunciado o
especificaciones de la misma, para configurar la tabla de verdad de la funcin y
obtener, a travs de ella, su expresin algebraica; una vez simplificada, dicha expresin
puede ser directamente trasladada a un esquema de puertas como representacin grfica
del circuito digital que hace efectiva dicha funcin.
enunciado tabla funcional expresin algebraica esquema de puertas
De forma que el proceso de diseo de un sistema combinacional consiste en
recorrer sucesivamente los diferentes niveles de descripcin del mismo.
Un sistema secuencial admite, tambin, varios niveles y tipos de descripcin:
Nivel 1: Enumeracin de las especificaciones o requisitos que se le exigen; es
una descripcin en trminos de enunciado del correspondiente problema o proyecto, con
indicacin de todas aquellas prestaciones que interesan pero sin detallar los estados
necesarios ni la evolucin entre ellos.
Nivel 2: Grafo de estados; descripcin grfica de los estados y de la evolucin
entre ellos, correspondiendo un crculo anotado a cada estado y un arco orientado a cada
posible transicin, con indicacin sobre cada arco de la condicin booleana (trmino de
entrada) que produce la transicin.
12. Si st emas secuenci al es II: di seo 49
Por su propia definicin conceptual dos estados no pueden estar en activo
(marcados) a la vez; en cada momento el sistema se encuentra en uno de los estados del
grafo, es decir, debe encontrarse marcado uno y solo uno de los estados del grafo y la
marca pasar de un estado a otro a travs de las transiciones (sin posibilidad de duplicarse
ni de desaparecer).
Adems del grafo de estados ser necesario indicar la correspondencia de los estados
con las salidas (que, si es autmata de Mealy, tambin dependern de las entradas).
Nivel 3: Funciones booleanas; expresin algebraica de las funciones de evolucin
de los estados y de activacin de las salidas.
Nivel 4: Configuracin circuital en trminos de biestables y de puertas lgicas;
constituye el objetivo del proceso de diseo del sistema secuencial y consiste en la
construccin circuital de las expresiones algebraicas de activacin de las salidas y de las
funciones de evolucin del estado (con los correspondiente biestables).
El proceso de diseo de un sistema secuencial consiste en recorrer sucesivamente
los cuatro niveles de descripcin:
especificaciones/
/requisitos
grafo
de estados
funciones
booleanas
realizacin
circuital
El paso de grafo de estados a funciones booleanas contiene dos etapas previas: la
simplificacin del nmero de estados por agrupacin de estados equivalentes y la
codificacin binaria de los estados:
grafo
de estados
funciones
booleanas
simplificacin
de estados
codificacin
de los estados
En muchos casos la acertada realizacin de estas etapas, simplificacin y
codificacin, puede reducir en gran medida la complejidad de las funciones booleanas.
Si se utiliza un biestable RS para almacenar cada variable de estado, las funciones de
evolucin del estado se dividen en dos partes:
- las funciones de activacin de los biestables (marcado)
- y las funciones de desactivacin de los mismos (borrado).
A tales funciones es preciso aadir las funciones de activacin de las salidas. Los tres
conjuntos de funciones son de tipo combinacional (sin realimentacin: la memoria es
conformada por los biestables).
Las funciones de marcado y borrado de los biestables que contienen las variables de
estado pueden obtenerse directamente de los arcos que representan las transiciones en el
grafo de estados: para cada variable de estado ha de tenerse en cuenta el subconjunto de
estados en que la correspondiente variable se encuentra a 1 y considerar las transiciones
que conducen (marcado) y que abandonan (borrado) dicho subconjunto.
50 El ect rni ca Di gi t al
Consideremos el ejemplo de un semforo de aviso de paso de tren en un cruce de va
nica bidireccional con un camino (apartado 12.1):
a
b
b.a
a
reposo
tren
entrando
a . b
tren
entrando
tren
alejndose
00 10 01
11
La variable q1 est activada en los estados 01 y 11, de forma que se marca cuando
pasa a ellos desde los otros estados (00 y 10) y se borra al pasar del estado 11 al 00: se
marca con a desde 00 y, tambin, con a desde 10 y se borra con a . b desde 11.
q1:
S = q
2
.q
1
.a + q
2
.q
1
.a = q
1
. a a . b . .q q = R
1 2
.
La variable q2 se encuentra activa en los estados 10 y 11: se marca con b.a desde 00
y con b desde 01 y se borra con a . b desde 11.
q2:
) q + a .b.( q = .b .q q + a .b. q . q = S
1 2 1 2 1 2
a . b . .q q = R
1 2
.
La salida (el semforo) debe encontrarse activa en los estados 01, 10 y 11:
semforo en rojo = q
2
.q
1
+ q
2
. q
1
+ q
2
.q
1
= q
2
+ q
1
.
Ahora bien, si el nmero de variables (entrada + estado) no es elevado conviene
obtener las condiciones de marcado y borrado a partir de la tabla funcional
correspondiente a la evolucin de las variables de estado: Q = F(X, Q).
En la misma tabla funcional de evolucin de los estados pueden expresarse las
funciones de marcado y borrado de cada una de las variables de estado; tales funciones se
deducen a partir de los cambios que sufren las correspondientes variables de estado segn
las siguientes consideraciones:
- cuando el valor previo de qi
es 0 y dicho valor permanece, se requiere que Si=0 y,
en cambio, no importa que valor adopte Ri
(con 0 contina el valor anterior y con 1
se borra, lo cual es lo mismo);
- cuando el valor previo de q
i
es 1 y dicho valor permanece, es necesario que Ri=0
y, en cambio, no importa que valor adopte Si
(con 0 contina el valor anterior y
con 1 se marca);
- cuando el valor previo de qi
es 0 y pasa a valor 1, se requiere que Si=1 y Ri=0;
- cuando el valor previo de qi
es 1 y pasa a valor 0, se requiere que Si=0 y Ri=1.
12. Si st emas secuenci al es II: di seo 51
q
i
: 0 0 Ri = X Si =
0
0 1 0 1
1 0 1 0
1 1 0 X
Para el ejemplo anterior, semforo de aviso de paso de tren, la tabla de evolucin del
estado, ampliada con las columnas de marcado S y borrado R, es la siguiente:
q2 q1 b a q2
+
q1
+
R2 S2 R1 S1
____________________________________________________________________________________________________________________________________________________________________
0 0 0 0 0 0 X 0 X 0
0 1 0 1 X 0 0 1
1 0 1 0 0 1 X 0
1 1 0 1 X 0 0 1
0 1 0 0 0 1 X 0 0 X
0 1 0 1 X 0 0 X
1 0 1 1 0 1 0 X
1 1 1 1 0 1 0 X
1 0 0 0 1 0 0 X X 0
0 1 1 1 0 X 0 1
1 0 1 0 0 X X 0
1 1 1 1 0 X 0 1
1 1 0 0 0 0 1 0 1 0
0 1 1 1 0 X 0 X
1 0 1 1 0 X 0 X
1 1 1 1 0 X 0 X
La elaboracin de la tabla de las funciones de evolucin del estado obliga a decidir
para cada estado y para cada vector de entrada, es decir, para cada una de las situaciones
posibles, cul es la transicin ms adecuada, evitando errores de diseo por no haber
previsto todas las situaciones que pueden presentarse; adems, la citada tabla permite
realizar las posibles simplificaciones a que hubiere lugar.
A partir de la tabla funcional, se obtienen las expresiones algebraicas de las
funciones de marcado y borrado de cada uno de los biestables que conforman las
variables de estado del sistema, pudiendo simplificarlas mediante mapas de Karnaugh.
En la tabla anterior, dichas funciones, una vez simplificadas sern:
q1:
S
1
= a R
1
= q
2
.b.a
q2:
S
2
= b.(a + q
1
) R
2
= q
1
.b.a .
Estas funciones son algo ms reducidas que las expresadas anteriormente, ya que la
construccin de la correspondiente tabla funcional facilita su simplificacin.
52 El ect rni ca Di gi t al
12. 5. Ej erci ci os de di seo secuenci al
12.5.1. Montacargas con pulsadores de subida S, bajada B y paro P: para modificar el
sentido de la marcha es preciso activar previamente el pulsador de paro y no
responde a la activacin simultnea de varios pulsadores; sendos topes fin de
carrera Ti y Ts le impiden continuar subiendo o bajando cuando alcanza los
extremos del recorrido.
S.B.P.Ti
P + Ti P + Ts
parada subida bajada
S.B.P.Ts
10 01
La codificacin de los estados utiliza un solo uno, correspondiendo cada variable
a una de las direcciones del movimiento del montacargas (subida = q2 , bajada = q1). A
partir de este grafo de estados pueden expresarse directamente las funciones de marcado y
de borrado de los biestables correspondientes a ambas variables de estado q1 y q2.
Sea q0
= q2
q1, cuyo valor en el estado de parada es 1
q1:
s 0 1
T . P . B . S . q = S
s 1
T + P = R
q2:
i 0 2
T . P . B . S . q = S
i 2
T + P = R .
En este caso, las funciones de borrado no necesitan incluir la correspondiente
variable de estado.
12.5.2. Indicador de paridad relativo al nmero de pulsos que llegan por una
determinada lnea L, de forma que indica paridad par p=0 cuando ha llegado
un nmero par de pulsos y paridad impar p=1 cuando dicho nmero es impar;
los pulsos se cuentan una vez que han finalizado, es decir, en su bajada ().
paridad
par
nuevo
pulso
00 01
11
nuevo
pulso
paridad
impar
L
10
L
L
L
Se han codificado los estados en cdigo Gray; aunque algunos estados son
distinguibles por la variable exterior L (01 y 11 se distinguen por L=1 y L=0 e
igualmente 10 y 00) no se puede reducir el grafo de estados ya que es precisamente dicha
variable la que produce las transiciones.
funcin de salida:
2
q = p .
12. Si st emas secuenci al es II: di seo 53
evolucin del estado:
q1:
L . q . q = S
1 2 1
.L .q q = R
1 2 1
q2:
L . q . q = S
1 2 2
L . q . q = R
1 2 2
Este grafo de estados coincide con el de control de una lmpara de mesa (flexo)
considerado en el apartado 11.2 (pgina 19); asimismo corresponde al grafo de estados
del biestable tipo T.
12.5.3. Un sistema secuencial acta de la forma siguiente: cuando aparece una seal
de alarma (entrada a=1) suena un claxon c y se enciende una lmpara l hasta
que el operario pulsa una entrada de enterado e; con ello se apaga el claxon c
pero, si la alarma sigue activa (a=1), la lmpara l sigue encendida hasta que
desaparezca la alarma. En todo caso, cuando desaparece la alarma (a=0) la
lmpara l se pone intermitente hasta que el operario vuelve a pulsar por
segunda vez el contacto de enterado e. Este comportamiento permite al
operario, una vez enterado de la situacin de alarma y si sta persiste,
dedicarse a resolver tal situacin; finalizada la misma, la lmpara se mantiene
intermitente para recordar al operario que debe anotar la hora de la misma en
un libro de registros, antes de pulsar un segundo enterado.
El grafo correspondiente a la evolucin de los estados puede reducirse a cuatro estados
(agrupando adecuadamente aquellos que se diferencian por la variable e):
reposo
aviso
00 01 11
primer
enterado
a.e
10
a.e
e
fin de
alarma
e
Los estados han sido codificados en cdigo Gray con dos variables; construyendo la
tabla de evolucin de estados y, sobre ella, las columnas Ri y Si, se obtienen las
siguientes funciones de evolucin del estado simplificadas:
q1:
S
1
= q
2
.a.e R
1
= q
2
.a.e
q2:
S
2
= q
1
.e R
2
= q
1
.e .
Las funciones de activacin de las salidas sern las siguientes:
claxon c = q
2
.q
1
luz l = a + i.(q
2
+ q
1
);
la variable i corresponde a una entrada auxiliar que genera la intermitencia (una onda
cuadrada de baja frecuencia, por ejemplo, medio segundo en 1 y otro medio en 0).
54 El ect rni ca Di gi t al
12.5.4. Secuencia sobre tres pulsadores para abrir una puerta: la apertura de una
puerta est controlada por tres pulsadores A, B y C, de forma que se abre
cuando se ejecuta sobre ellos la siguiente secuencia: 1 A y C (pulsadores de
los extremos), 2 A y B y C (los tres pulsadores), 3 B y C o A y B
indistintamente (dos pulsadores contiguos), 4 B (pulsador central); se progresa
en la secuencia sin soltar los pulsadores y la puerta permanece abierta
mientras se mantiene B pulsado.
El grafo de estados necesario puede reducirse a cuatro estados, agrupando en el
ltimo de ellos el tercer y cuarto paso de la secuencia:
A.B.C
A + C
B + A.C
reposo
1 paso 2 paso 3 paso
000 001 010 100
B + A.C
apertura:
A.B.C
A.B.C
B(A.C+A.C)
Las transiciones de vuelta al estado inicial son las siguientes: el primer paso se anula
cuando no se produce A.B.C ni A.B.C; el segundo paso lo hace cuando no estn
presentes A.B.C ni tampoco B.(A.C + A.C); el tercer estado pasa a reposo cuando
B = 0 o cuando se pulsan conjuntamente A y C (ya que, en otro caso, se encontrar
bien en una de las condiciones de transicin a dicho estado, o bien en la situacin de
apertura de la puerta). Se ha utilizado la codificacin con un solo uno.
q0 = Nor( q3, q2, q1) corresponde al estado 000
evolucin del estado:
q1:
S
1
= q
0
.A.B.C ) C + B + A .( q = A.B.C) + C + A .( q = R
1 1 1
q2:
S
2
= q
1
.A.B.C ) C + B + A .( q = R
2 2
q3:
S
3
= q
2
.B.(A.C + A.C) A.C) + B .( q = R
3 3
funcin de salida: apertura de la puerta = q
3
.A.B.C.
12. Si st emas secuenci al es II: di seo 55
12.5.5. rbitro para la utilizacin de un recurso comn: dos vas de tranva (de ida y
vuelta cada una de ellas), procedentes respectivamente de A y de B se unen en
un punto C, de forma que tienen un tramo comn desde C hasta D (dicho tramo
CD es terminal: una vez que es ocupado por un tranva, no puede entrar ningn
otro, ya que el primero ha de salir por C); previamente al punto C existen
sendos detectores de presencia de tranva (a y b) y sendos semforos (Sa y Sb)
para detener a un tranva cuando el trayecto comn se encuentra ocupado por
el otro.
Un grafo de estados de la evolucin de este sistema de arbitraje puede ser:
a b.a
reposo
tranva A
entrando
tranva B
entrando
tranva A
dentro
tranva B
dentro
tranva A
saliendo
tranva B
saliendo
a
a
a b
b
b
Este grafo incluye un nmero de estados relativamente alto; para su codificacin,
caso de utilizar una variable para cada estado (un solo uno), son necesarias seis variables
de estado. En cambio, utilizando cdigo Gray bastarn tres variables de estado; para ello,
(para que en cada transicin solamente cambie el valor de una de las variables) es
necesario aadir un estado adicional, segn el siguiente grafo de estados:
b.a
010
a
reposo
tranva A
entrando
000
001
tranva A
dentro
tranvia A
saliendo
a
a
a
011
tranva B
entrando
tranva B
saliendo
tranva B
dentro
llega el
tranva B
b
b
b
b
b
100
101
111
110
Se ha aadido el estado 100 que separa la evolucin correspondiente al tranva A de
la que corresponde al tranva B.
funciones de salida:
semforo Sa en rojo (va comn ocupada por B: detencin del tranva A) S
a
= q
3
semforo Sb en rojo (va comn ocupada por A: detencin del tranva B) S
b
= q
3
.
El grafo da prioridad al tranva A: el semforo Sb se encontrar en rojo en reposo y
pasar a verde cuando llegue el tranva B a su detector, si el otro tranva no ha llegado al
suyo ni tampoco se encuentra dentro del tramo comn. La asignacin de prioridad evita
colisiones en caso de que ambos tranvas alcancen a la vez sus respectivos sensores.
56 El ect rni ca Di gi t al
evolucin del estado:
q1:
S
1
= q
3
.q
2
.q
1
.a + q
3
.q
2
.q
1
.b R
1
= q
3
.q
2
.q
1
.a + q
3
.q
2
.q
1
.b
q2:
S
2
= q
3
.q
2
.q
1
.a + q
3
.q
2
.q
1
.b R
2
= q
3
.q
2
.q
1
.a + q
3
.q
2
.q
1
.b
q3:
S
3
= q
3
.q
2
.q
1
.b.a R
3
= q
3
.q
2
.q
1
.b .
12.5.6. Un depsito de agua dispone de dos bombas A y B para su llenado y de tres
detectores de nivel MXimo, MEDio y MNimo. Cuando el nivel cae por
debajo del nivel medio entra en funcionamiento una de las bombas hasta que
alcanza el mximo; por debajo del mnimo actan ambas bombas hasta el nivel
medio y luego una sola de ellas hasta el mximo. Para equilibrar el desgaste de
las bombas, cuando funciona una sola, lo hacen alternativamente (es decir, si la
vez pasada lo ha hecho la bomba A, entrar en funcionamiento la B y
viceversa).
El grafo de estados debe ser simtrico respecto a la actuacin de las bombas A y B;
debe recordar cual de ambas ha actuado anteriormente y, por tanto, a cual de ellas le
corresponde la siguiente puesta en marcha:
preparada A
en marcha A
A y B
preparada B
en marcha B
A y B
MED
MN
MED
MN
MED MED
MX MX
000
001
011
100
110
111
La codificacin de estados indicada en este grafo (que no es ni Gray, ni de un solo
uno) resulta adecuada porque permite identificar las variables q1 y q2 con las bombas de
agua A y B: activacin de A = q1 ; activacin de B = q2 .
evolucin del estado:
q1:
MN + MED . q . q . q = S
1 2 3 1
MX + .MED q = R
3 1
q2:
MN + MED . q . q . q = S
1 2 3 2
MX + .MED q = R
3 2
q3:
MED . .q .q q + .MX q = S
1 2 3 3 3
MED . .q .q q + .MX q = R
1 2 3 3 3
.
12. Si st emas secuenci al es II: di seo 57
12.5.7. Un motor puede girar en ambas direcciones, controlado por dos pulsadores a y
b en la forma siguiente: al pulsar a se detiene el motor (si es que estaba en
movimiento) y, al soltar dicho pulsador, el motor se pone a girar en el sentido
de las agujas del reloj; lo mismo sucede al pulsar b, pero al soltarlo, el motor
girar en sentido contrario a las agujas del reloj; la forma de detener el
movimiento del motor es pulsar a y b a la vez, en cuyo caso el motor se para y,
al soltar los pulsadores, continuar parado.
El grafo de estados, como autmata de Moore, requiere 6 estados:
reposo
parada
prep. 1
giro 1
a.b a.b
a.b a.b
a.b
b b
a a
a.b a.b
prep. 2
giro 2
Pero los estados prep. 1 y giro 1 pueden distinguirse por el valor de la variable a
e, igualmente, los estados prep. 2 y giro 2 pueden distinguirse por el valor de la variable
b, de manera que el grafo puede reducirse, en forma de autmata de Mealy, a 4 estados:
reposo
parada
1
a.b a.b
a.b a.b a.b
a.b
a.b
2
01
10
00
11
a.b
Las funciones de salida correspondientes a los dos giros se producen en los estados 01
y 10 pero, solamente, cuando no estn activados los pulsadores:
giro 1= q
2
.q
1
.a giro 2= q
2
.q
1
.b .
Las funciones de evolucin del estado se han obtenido a travs de su correspondiente
tabla funcional (en la cual, para facilitar la simplificacin, se ha hecho que el estado 00 si
se activan ambos pulsadores a la vez pase al estado 11); una vez construidas las columnas
Ri y Si y simplificadas las condiciones de marcado y borrado son las siguientes:
q1:
S
1
= a R
1
= q
2
.a.b + q
2
.a.b = a.(q
2
b)
q2:
S
2
= b R
2
= q
1
.a.b + q
1
.a.b = b.(q
1
a).
58 El ect rni ca Di gi t al
12.5.8. Cierto mecanismo M se desplaza en el sentido de las agujas del reloj por un riel
elipsoidal a partir de la posicin A, en la cual existe un sensor que detecta la
presencia del mismo: si se activa un pulsador P, M inicia su movimiento al soltar
P y da 3 vueltas completas, tras lo cual se detiene en A; si durante el transcurso
del movimiento se vuelve a pulsar P, M se para y, al soltar el pulsador, completa
la vuelta que esta dando y se detiene al llegar a A (en todo caso, al menos da una
vuelta).
A
M
Un posible grafo de estados sera el siguiente (una vez iniciado el movimiento, si se
pulsa P se va al estado de interrupcin y desde dicho estado, al soltar P, se completa la
vuelta hasta A):
reposo en A inicio
P
interrupcin
primera
vuelta
fin 1 vuelta
segunda
vuelta
fin 2 vuelta
tercera
vuelta
P.a
P.a
P . a
P
P
P . a
P . a
P.a
P
P
P
preparado
a
P
P . a
Los estados preparado e inicio pueden agruparse ya que se diferencian por el valor
de P y, por lo mismo, pueden agruparse los estados interrupcin y tercera vuelta (de esta
forma quedan 7 estados, codificables con 3 variables de estado):
reposo en A comienzo
P primera
vuelta
fin 1 vuelta
segunda
vuelta
fin 2 vuelta
ltima
vuelta
P.a
P.a
P . a
P
P
P + a
P.a
P
P . a
000 001 011
110 010 111
101
La tabla de evolucin de estados presenta solamente 5 variables: 3 de estado q3 q2 q1
y 2 de entrada P a (se deja como ejercicio para el lector). La salida (movimiento del
mecanismo) debe activarse en todos los estados menos en el de reposo; en los estados de
comienzo y de ltima vuelta se activa solamente cuando P = 0:
P . q q M de movimiento
1 2
+ = .
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
13 SINCRONISMO Y BIESTABLES SNCRONOS
SECUENCIADORES LGICOS PROGRAMABLES
13.1. Sincronismo y configuracin amo/esclavo: biestables sncronos
13.2. Registros sncronos
13.3. Tiempos funcionales e inicializacin de los biestables
13.4. Dispositivos lgicos programables: PAL con biestables
13.5. Los biestables en VHDL
Dividir en partes es la forma tpica de abordar la complejidad. El sincronismo es una
particin del tiempo que lo divide en unidades: supone que la variable tiempo deja de ser
continua y pasa a variable discreta, fraccionada en unidades numerables.
Un sistema secuencial sncrono es aquel cuyos cambios de estado se producen solamente
en los momentos de paso de una unidad de tiempo a la siguiente; tales instantes vendrn
definidos por los flancos de una seal digital que cuantifica el tiempo en unidades y a la
que, genricamente, denominaremos reloj.
Para construir sistemas secuenciales sncronos necesitamos biestables sncronos, cuyos
cambios de estado se produzcan solamente en el flanco activo de la seal de reloj. Aparece
un nuevo elemento de entrada que no es ni el 0 ni el 1, sino el paso de 0 a 1 (flanco de
subida); para conseguir un biestable habilitado por flancos es necesario utilizar dos
biestables asncronos, uno de ellos habilitado por valor 0 y el otro por 1, de forma que el
conjunto responda al flanco de la seal: configuracin amo/esclavo.
A partir de la combinacin amo/esclavo (biestable sncrono tipo D) puede construirse
una amplia diversidad de tipos de biestables y, en particular, el biestable JK que sustituye
directamente al biestable RS en el diseo sncrono de sistemas secuenciales. Por otra parte,
la conexin en serie de biestables D da lugar a registros de desplazamiento que permiten la
conversin serie-paralelo (y, tambin, paralelo-serie) de una palabra binaria.
El correcto funcionamiento de un diseo sncrono exige que se respeten los tiempos
funcionales de los biestables que lo conforman (tiempos de propagacin, de anticipacin y
de mantenimiento) y que, en el momento inicial, se establezca en ellos el valor adecuado.
Recordemos que los bloques programables tipo PAL permiten configurar en su interior
conjuntos de funciones booleanas en forma de suma de trminos producto. Anlogamente, se
construyen bloques PAL + biestables (aadiendo un biestable tipo D en la salida de cada
mdulo PAL) que permiten recoger la evolucin de las variables de estado; tales bloques
reciben el nombre de PLS (secuenciadores lgicos programables).
Diversas mejoras sobre el mdulo PAL + biestable han dado lugar al concepto de
macrocelda programable; actualmente se dispone de circuitos integrados con mltiples
macroceldas y canales de interconexin entre ellas (CPLDs: dispositivos lgicos
programables complejos), capaces de configurar, por programacin, sistemas digitales
completos (pues el nmero de macroceldas en un integrado puede ser muy alto).
58 El ect rni ca Di gi t al
13. 1. Si ncroni smo y confi guraci n amo/ escl avo: bi est abl es s ncronos
El sincronismo implica una cuantificacin del tiempo en unidades discretas,
definiendo con precisin el instante en que se pasa de una unidad a la siguiente: las
transiciones (los cambios de estado) tendrn lugar en dichos instantes y slo en ellos.
t = 1 t = 2 t = 3 t = 0
onda de reloj
t = 5 t = 6 t = 4
El paso de una unidad temporal a la siguiente vendr definido por uno de los flancos
de la onda de reloj; en la figura se ha considerado como activo el flanco positivo pero
de igual forma podra tomarse el flanco negativo .
La sincronizacin, adems de coordinar temporalmente el funcionamiento de los
biestables, proporciona una gran seguridad de funcionamiento.
Consideremos, por ejemplo, un biestable RS asncrono que ha de ser activado
cuando el valor booleano de dos variables intermedias de un circuito sea idntico:
S = a.b + a.b supongamos que en un determinado momento la variable a que estaba en 0
pasa a 1 y que, a la vez, b pasa de 1 a 0: el biestable no debe activarse.
Puede suceder que, por diferencia de tiempos de propagacin, las ondas
correspondientes a las variables a y b que lleguen a las entradas de la lgica de activacin
del biestable sean del tipo de la figura, superponindose durante un pequeo intervalo de
tiempo t, lo cual da lugar a un pulso espurio de breve duracin (glitch), que pudiera ser
suficiente para disparar el biestable.
a
b
a
b
t
t
Este marcado no deseado puede ser evitado mediante la utilizacin de biestables
sncronos: con ellos se consigue que todas las variables del circuito conmuten a la vez (en
los flancos activos del reloj). Y, lo que es ms importante, que los valores que determinan
las transiciones sean los presentes en el momento anterior al flanco activo del reloj; no
importa, pues, que existan retrasos desiguales en la llegada de las seales a los diversos
biestables, ya que son los valores consolidados previos a la transicin (y no los que se
producen durante ella) los que la controlan.
13. Bi est abl es s ncronos 59
Otro ejemplo relativo a la seguridad de funcionamiento: en el caso del depsito con
mezcla de 4 lquidos, en la codificacin con un solo uno (apartado 11.4, pgina 30),
simplificando al mximo las condiciones de marcado y de borrado resulta que:
q1:
S = n
1
2
n = R
q2:
S = q
1
.n
2
3
n = R
el primer biestable se borra con n2 y el segundo se marca con n2 cuando el primero est
en 1: la misma seal n2 que borra al primer biestable debe marcar al segundo de ellos.
R
S
R
S
q1
A
B
q2
n1
n3
n2
. . . . . . . . .
Ahora bien, el borrado de q1 es ms rpido que el marcado de q2 ya que ste debe
atravesar una puerta "y" adicional (que introduce el correspondiente retraso); es fcil (y
as ocurre normalmente si se monta este circuito en laboratorio) que se produzca el
borrado del primer biestable y, al hacerse q1 = 0, desaparezca la condicin de marcado
del segundo biestable y no se llegue a marcar.
En la solucin dada en la pgina 30 se evitaba esta situacin haciendo que el borrado
de q1 tambin pasara por dicha puerta "y" (lo cual es correcto). Pero la posibilidad de
error por diferencia en el tiempo de marcado/ borrado de las diversas variables de estado
est siempre presente y ha de tenerse en cuenta, salvo que se utilice cdigo Gray (en cuyo
caso nunca se modifican dos variables de estado a la vez).
De nuevo cabe decir que este tipo de errores, debidos a diferencia de tiempo en la
propagacin de seales que deben actuar simultneamente, se evita con la utilizacin de
biestables sncronos: en un diseo sncrono son los valores previos al flanco activo del
reloj los que determinan las transiciones (y no les afecta el transitorio de conmutacin de
las variables de estado en dicho flanco).
60 El ect rni ca Di gi t al
Biestables sncronos son aquellos en que los cambios de estado, es decir los cambios
del valor booleano memorizado, se producen solamente en el flanco activo de la seal de
reloj.
La actuacin por flancos no corresponde directamente al lgebra booleana: los
sistemas lgicos actan por niveles, correspondientes a los valores booleanos 1 / 0. Para
conseguir que un biestable sncrono modifique su salida solamente en los flancos de la
seal de reloj es preciso utilizar dos biestables conectados en serie (uno detrs del otro) y
de manera que el primero de ellos se habilite con el valor 0 de la onda de reloj y el
segundo con el valor 1 de dicha onda.
D
Q
F F
D
Q
E
D
Q
F F
D
Q
E
D
CK
De esta forma para CK=0 el primer biestable recoge el valor lgico presente en su
entrada D y lo almacena y cuando CK=1 el primer biestable transmite el valor
almacenado al segundo: el conjunto acta globalmente cuando CK pasa de 0 a 1, es decir,
en las subidas de la seal de reloj CK.
Este tipo de estructura que agrupa dos biestables (tipo D, con habilitacin por
niveles E) para obtener un biestable sncrono (tipo D, con habilitacin por flancos CK) se
denomina configuracin amo/esclavo (master/slave: el segundo biestable acta como
esclavo del primero, repite su mismo valor booleano: es la voz de su amo).
La configuracin master/slave puede construirse con puertas "y-negada" (Nand) o
con puertas "o-negada" (Nor).
CK
D
Q
Q
amo esclavo
13. Bi est abl es s ncronos 61
Asimismo, la construccin de biestables sncronos puede hacerse utilizando puertas
de transmisin [en tecnologas MOS la configuracin de biestables con puertas de
transmisin requiere menor nmero de transistores, por lo cual ocupa menor rea de
integracin y presenta menores tiempos de propagacin]:
CK
D Q
Q
amo esclavo
La combinacin amo/esclavo da como resultado un biestable tipo D sncrono; su
funcionamiento es anlogo al biestable D con habilitacin por niveles E, pero la
adquisicin del dato presente en la entrada D se produce solamente en los flancos activos
de la onda de reloj (entrada CK, Clock).
D
Q
F F
D
CK
Q
La entrada de reloj, como seal de sincronismo, se distingue mediante un pequeo
tringulo que indica que dicha seal acta por flancos (y sirve, a la vez, para
diferenciar a los biestables sncronos). Hemos supuesto que el flanco activo corresponde a
la subida (paso de valor 0 a valor 1), pero de igual modo puede serlo la bajada de la
onda (paso de valor 1 a valor 0); en tal caso, indicaremos que el reloj acta con flancos
descendentes mediante un crculo (inversor) en la entrada de reloj.
La siguiente figura representa un biestable sncrono tipo D dotado de una entrada de
habilitacin E: cuando E=0 el biestable conserva el valor anterior (para ello, la entrada ha
de recibirlo de la salida Q), mientras que para E=1 el biestable recibe un nuevo dato en el
flanco activo del reloj: D . E Q . E = 1) Q(t = ' D + +
Q
Biestable D
con habilitacin
CK
Q
D
E
D'
Q
F F
D
CK
Q
E
D
mux.
62 El ect rni ca Di gi t al
D'
Q
F F
D
CK
Q
E
D
D'
Q
F F
D
CK
Q E
D
Biestable sncrono D con habilitacin E
Dado que para E = 0 este biestable no debe cambiar de estado, podra pensarse en un
diseo ms simple, interrumpiendo el paso de la seal de reloj mediante una puerta "y"
controlada por la entrada de habilitacin E. Tal diseo sera incorrecto, ya que nunca se
debe hacer lgica sobre la seal de reloj: conformar funciones booleanas con dicha
seal rompe el sincronismo, pues provoca la aparicin de flancos espurios en la entrada
de reloj. [Vase el apartado 15.5. Precauciones relativas a la seal de sincronismo].
Como en el caso anterior, a partir de la configuracin amo/esclavo (biestable
sncrono bsico, tipo D) pueden construirse otros tipos de biestables sncronos: para ello,
delante de la entrada D' de la configuracin master/slave se aadir la funcin que
corresponda al comportamiento que se desea para el biestable; funcin que puede
obtenerse a travs de su tabla funcional: entradas, Q(t) Q(t + 1)
master
Q
E
slave
Q
E
D D
reloj CK
funcin
propia
del biestable
en
tra
das
Q
D'
El biestable JK corresponde, en forma sncrona, al biestable RS, pero su tabla de
operacin incluye tambin el caso de activacin de ambas entradas a la vez (J=K=1): la
entrada K acta para el borrado ( R) y la J para la puesta a 1 ( S) y cuando se activan
ambas a la vez el biestable cambia de estado. Bien entendido que las transiciones se
efectan slo en los flancos activos de la onda de reloj y lo hacen conforme a los valores
booleanos de J y K inmediatamente anteriores a dichos flancos.
J(t) K(t) Q(t+1)
0 0 no cambia
0 1 0
1 0 1
1 1 cambia de estado (01, 10)
13. Bi est abl es s ncronos 63
La funcin booleana previa que ha de aadirse a la configuracin amo/esclavo
corresponde a la siguiente tabla de verdad:
Q(t) J K Q(t+1)
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 0
1 1 0 1 = 1) Q(t = ' D +
1 1 1 0 ) Q (J Q) K ( = Q J. + .Q K =
Q
F F
JK
CK
Q
D'
Q
F F
D
CK
Q
K
J
J
K
El biestable sncrono tipo T (Toggle) resulta muy til para la construccin de
contadores: cuando su entrada T=0 el biestable no modifica su estado, mientras que para
T=1 el biestable conmuta (cambia de estado) en cada flanco activo del reloj:
Q T Q . T Q . T = 1) Q(t = ' D = + +
Q
F F
T
CK
Q
D'
Q
F F
D
CK
Q
T
T
Tambin podemos considerar el biestable tipo T sin entrada que cambia de estado
cada vez que recibe un flanco activo del reloj: Q = ' D
Q
F F
T
C
Q
D'
Q
F F
D
CK
Q
K
64 El ect rni ca Di gi t al
Como complemento a este tema dedicado al buen manejo del tiempo (mediante el
sincronismo), el apndice A4 (Temporizadores: osciladores y monostables) describe los
monostables y los astables, circuitos que, junto con los biestables, forman el grupo de los
multivibradores. Los biestables son las celdas bsicas de memoria y, tambin, de
sincronizacin de los circuitos secuenciales; astables y monostables son muy tiles en el
diseo secuencial, para generar ondas de reloj y como temporizadores, respectivamente.
13. 2. Regi st ros s ncronos
Agrupando n biestables D en paralelo, con sus entradas de reloj y de habilitacin
comunes, se configura un registro sncrono, capaz de almacenar una palabra de n dgitos.
Q
F F
D
D
CK
Q
F F
D
D
CK
Q
F F
D
D
CK
Q
F F
D
D
CK
CK
Q3 Q2 Q1 Q0
D3 D2 D1 D0
E E E E
E
La conexin de n biestables sncronos tipo D en serie (la entrada de cada uno unida a
la salida del anterior), con reloj comn para todos ellos, configura un registro con una
nica entrada (la del primero) y n salidas en paralelo, en el que la informacin se desplaza
de biestable a biestable a golpes de reloj: registro de desplazamiento (shift-register).
D
Q
F F
D
Q3
CK
D
Q
F F
D
CK
D
Q
F F
D
Ck
D
Q
F F
D
CK
D
CK
Entrada
serie
Reloj
Salidas paralelo
Q2 Q1 Q0
Este registro realiza una conversin serie-paralelo de la informacin que recibe en
su entrada; con cada pulso de reloj el conjunto de los bits almacenados avanza un
biestable y entra un nuevo bit en la cadena (operacin de entrada en serie, presentacin de
valores booleanos en las salidas en paralelo).
13. Bi est abl es s ncronos 65
Generalmente se aaden a tales registros de desplazamiento las correspondientes
entradas paralelo junto con la entrada de habilitacin de las mismas, es decir, una entrada
D a cada uno de los biestables, controlada por una entrada de habilitacin comn E;
activando la habilitacin (E=1) los valores presentes en las entradas paralelo son
almacenados en los biestables (carga en paralelo).
Q
F F
D
CK
Q
F F
D
CK
Q
F F
D
CK
Q
F F
D
CK
Q3
CK
Entrada
serie
D
Salidas paralelo
Entradas paralelo E
Habilitacin
entradas paralelo
Reloj
Q2 Q1 Q0
D3 D2 D1 D0
De esta forma puede recibirse informacin tanto en serie (entrada serie) como en
paralelo (entradas paralelo) y transmitirse tambin en las dos formas: paralelo (en el
conjunto de las salidas) y serie (en la salida del ltimo biestable por desplazamiento).
Ello permite realizar la conversin serie-paralelo y la conversin paralelo-serie de
una palabra binaria:
conversin serie-paralelo: la palabra se recibe bit a bit por la entrada serie del
registro de desplazamiento y, una vez recibida, sus dgitos estn presentes en paralelo en
las salidas de los biestables que configuran el registro;
conversin paralelo-serie: la palabra se recibe a travs de las entradas paralelo de
los biestables del registro de desplazamiento y es enviada bit a bit por la salida del ltimo
de dichos biestables.
Otra aplicacin de los registros de desplazamiento se basa en el hecho de que el
desplazamiento de un nmero binario una posicin haca la izquierda equivale a
multiplicar dicho nmero por 2, siendo sumamente til para el diseo de algoritmos de
producto aritmtico; recprocamente, el desplazamiento de una posicin hacia la derecha
equivale a dividir el nmero por 2 (registros de desplazamiento hacia la derecha). Para
ello, se construyen registros de desplazamiento bidireccionales, con posibilidad de
desplazarse en ambos sentidos, y, a su vez, con posibilidad de carga paralelo.
66 El ect rni ca Di gi t al
13. 3. Ti empos funci onal es e i ni ci al i zaci n de l os bi est abl es
13.3.1. Tiempos de propagacin, de anticipacin y de mantenimiento de dato
El cambio de estado de un biestable sncrono se produce coincidiendo con el flanco
activo de la onda de reloj; en el caso de un biestable tipo D, en ese momento (flanco
activo del reloj), la salida efecta una copia del valor presente en la entrada.
Obviamente existe un pequeo retraso entre el flanco activo de la seal de reloj y la
consolidacin del correspondiente estado en la salida: tiempo de propagacin del dato tp.
Adems, para asegurar el correcto funcionamiento del biestable D cuando llega el flanco
activo del reloj es necesario que el valor correcto del dato se encuentre presente en la
entrada D con una cierta anticipacin a dicho flanco (setup: ts) y que tal valor se
mantenga durante un cierto intervalo posterior (hold: th).
Supongamos, por ejemplo, que un biestable D que se encuentra con salida 0 debe
recibir un 1, dicho valor booleano 1 debe presentarse en la entrada del biestable, al
menos, durante un intervalo ts (setup: tiempo de anticipacin) previo al flanco activo del
reloj y debe permanecer dicho valor 1 en dicha entrada D, al menos, durante un intervalo
th
(hold: tiempo de mantenimiento) posterior al flanco activo.
t
s
t
h
t
p
CK
D
Q
flanco activo
Interesan, en general, tiempos de mantenimiento th muy pequeos o, al menos, que
th
sea menor que tp
(tiempo de propagacin de los biestables anteriores, es decir, de
aquellos cuyas salidas influyen sobre la entrada del biestable), de manera que el propio
retardo de propagacin en los biestables sirva para cubrir el tiempo de mantenimiento del
dato y evite errores en su captura por el biestable. En general, esto es lo que sucede al
utilizar circuitos integrados estndar y, en tal caso, no es preciso prestar atencin a los
tiempos de mantenimiento (hold).
La suma de los tiempos de propagacin y de preparacin del dato tp+ts
limita la
velocidad mxima de trabajo de los biestables; el perodo de la onda de reloj deber ser
superior a dicha suma, para permitir que se forme el valor correcto en las salidas de los
biestables (retraso tp) con suficiente anticipacin (intervalo previo ts) para establecer el
nuevo valor correcto en sus entradas. De forma que las violaciones de setup se
resuelven disminuyendo la velocidad del reloj o, si es viable, utilizando biestables ms
rpidos (con menores tiempos de propagacin o de anticipacin).
El captulo 15 desarrolla con mayor detalle el anlisis de tiempos en los circuitos
secuenciales sncronos, incorporando al mismo los tiempos de propagacin debidos a la
parte combinacional existente entre los biestables.
13. Bi est abl es s ncronos 67
13.3.2. Inicializacin de los biestables
Por lo general, un sistema secuencial, es decir, cualquier sistema configurado con
biestables, requiere un estado inicial determinado, a partir del cual comienza la evolucin
del sistema: los biestables deben adoptar, en el primer momento, un estado booleano
determinado, en muchos casos el estado 0 (00).
Al activar la tensin de alimentacin de un sistema (encendido: power-on), cada uno
de los biestables presentes adoptar un estado booleano que, en principio, no es
predecible, ya que depende de la configuracin electrnica del biestable y del transitorio
de encendido de la alimentacin.
Para la inicializacin de los biestables sncronos (fijacin de valores iniciales en los
mismos) y, tambin, para poder efectuar en cualquier momento un borrado o marcado de
los mismos (con independencia del funcionamiento normal controlado por el reloj),
interesa disponer de entradas asncronas de marcado y borrado (set y clear o reset) que, al
ser activadas, lleven directamente el biestable a estado 1 o estado 0, respectivamente.
Es sencillo incluir entradas asncronas de marcado y borrado en las configuraciones
circuitales amo/esclavo representadas anteriormente:
CK
D
Q
Q
Set
Reset
D
R S
Q
Q
Ck
D
Q
Q
Set
Reset
Obsrvese (en las dos figuras) que es necesario actuar sobre ambos semibiestables
(amo y esclavo) para asegurar que el borrado o el marcado permanecen hasta el siguiente
flanco activo del reloj (si el borrado o marcado actuasen solamente sobre el esclavo y
finalizasen cuando el reloj se encuentra con valor 1, el esclavo recibira inmediatamente
el valor almacenado en el amo).
68 El ect rni ca Di gi t al
La inicializacin de los biestables consiste en forzarles a adoptar el estado booleano
que interese, mediante un primer pulso singular que se produzca tras el encendido
(power-on) de la alimentacin. La activacin de las entradas de borrado o de marcado
asncrono (reset y set) por dicho primer pulso llevar al biestable a estado 0 1 segn
proceda.
El pulso de inicializacin puede generarse automticamente mediante un circuito
RC conectado a la tensin de alimentacin; el retraso originado por la carga del
condensador, a partir del propio arranque de la alimentacin, determina la permanencia
del valor 0 booleano durante un cierto intervalo posterior al encendido.
Vcc
Vinic.
Vinic.
Vcc Vcc
Vinic.
R
C
R
C
R
C
En el caso de que las entradas de borrado o marcado asncrono se activen con valor
0, bastar conectar la salida del primer circuito RC a la entrada que corresponda. Cuando
su valor activo sea 1 ser preciso invertir el pulso, mediante una puerta inversora,
preferiblemente de entrada con histresis (tipo Schmitt) para mejorar la definicin del
propio pulso y evitar los rebotes. Incluso, en activacin con valor 0, si las entradas de
borrado o marcado de los biestables no son de tipo Schmitt es conveniente conformar el
pulso a travs de dos inversores cuyas entradas s lo sean.
La anchura del pulso de inicializacin en los circuitos anteriores ser del orden de la
constante de tiempo del circuito RC. Los valores del condensador y de la resistencia
deben ser adecuadamente altos para asegurar una amplia anchura de pulso que lo
prolongue ms all del transitorio de encendido (RC > 100 ms). En su caso, la inclusin
de un monostable disparado por el circuito RC permite fijar con precisin la anchura del
pulso de inicializacin.
Suele incluirse un diodo en paralelo con la resistencia R, en polarizacin inversa,
para descargar rpidamente el condensador C cuando hay cadas de tensin y asegurar
que se produzca el pulso de inicializacin en caso de microcortes (cadas de tensin de
pequea duracin) de la alimentacin.
Existen circuitos integrados especficos que supervisan la tensin de alimentacin y
proporcionan un pulso de anchura fija en el encendido y, asimismo, activan la
inicializacin cada vez que la tensin de alimentacin cae por debajo de un valor
prefijado, prolongando despus el pulso de inicializacin al restablecerse la alimentacin.
13. Bi est abl es s ncronos 69
Caso de que interese una inicializacin manual, ser necesario conformar el pulso
producido sobre el correspondiente pulsador mediante un circuito RC de constante de
tiempo relativamente alta (a fin de evitar los rebotes del pulsador), seguido de una puerta
con entrada Schmitt. La utilizacin de un monostable permite ajustar a un valor fijo la
anchura de este pulso manual de inicializacin.
100F
Q A
B
1K 1K
monostable
Vcc
100
100
Vcc
pulso
positivo
pulso
negativo
100F
Puede resultar conveniente sincronizar los pulsos de inicializacin de los biestables
con el reloj del sistema secuencial para evitar posibles coincidencias entre el final de la
inicializacin y el flanco activo del reloj; tales coincidencias podran generar errores por
cuanto que algunos biestables podran responder al flanco de reloj y otros no.
Para sincronizar la inicializacin basta pasarla a travs de un biestable sncrono y, en
tal caso, interesa conectar su entrada de reloj al flanco no activo del reloj para que la
inicializacin cubra por completo al anterior flanco activo del mismo; a fin de reducir la
incidencia de situaciones metastables suelen utilizarse dos biestables sucesivos.
D
Q
D
Q
CK
Vcc
pulso de inicializacin
sincronizado
13. 4. Di sposi t i vos l gi cos programabl es: PAL con bi est abl es
Existen dispositivos programables basados en la configuracin PAL, que aaden un
biestable en cada una de las salidas; de esta forma, se proporciona a la estructura PAL
capacidad de memoria y, por tanto, de realizacin de circuitos secuenciales. En este caso,
los trminos producto de la PAL han de admitir como variables, adems de las propias
variables de entrada, las salidas de los biestables; es decir, las variables de estado
(almacenadas en los biestables) han de realimentarse como entradas sobre los mdulos
PAL que configuran las funciones de evolucin del estado.
De esta forma tendremos un bloque con n mdulos, formados, cada uno de ellos, por
un biestable cuya entrada D es activada por una puerta "o" precedida por q puertas "y",
cuyas entradas configuran una Matriz Y programable respecto a las m variables de
entrada exteriores y sus negadas y a las n salidas de los biestables del bloque y sus
negadas.
70 El ect rni ca Di gi t al
Este tipo de bloque programable recibe el nombre de secuenciador lgico
programable PLS (programmable logic sequencer) o el de PAL con biestables RPAL
(registered PAL).
f e d c b a
e n t r a d a s e x t e r i o r e s
D
CK
Q
Q
D
CK
Q
Q
D
CK
Q
Q
D
CK
Q
Q
D
CK
Q
Q
D
CK
Q
Q
CK
reloj
QA
QB
QC
QD
QE
QF
PLS de 6 mdulos con 8 trminos producto en cada mdulo y 6 variables de entrada
13. Bi est abl es s ncronos 71
Los bloques PLS permiten la programacin de las funciones de evolucin de estado
de un circuito secuencial; para ello habr que obtener tales funciones de evolucin del
estado correspondientes a biestables tipo D, expresadas en forma de suma de productos.
Asimismo se pueden programar en el mismo bloque PLS las funciones de activacin
de las salidas. En este caso, las salidas pasarn a travs de biestables que realizan un
sincronismo de las mismas, lo cual suele ser beneficioso en la mayora de los casos: se
aade al sincronismo de las variables de estado el sincronismo de las salidas (que aplica a
las mismas un retraso de una unidad de tiempo de reloj).
Hay tambin bloques PLS en que el biestable de salida de cada mdulo puede
utilizarse o no (puede puentearse) mediante programacin, de forma que permiten la
inclusin tanto de variables sincronizadas, como de funciones combinacionales; de esta
manera pueden construirse las funciones de activacin de las salidas sin aadirles el
retraso correspondiente al sincronismo.
As pues, en el interior de un bloque PLS puede configurarse un circuito secuencial
completo, mediante programacin; sta es, hoy da, la forma habitual de diseo digital: un
solo circuito integrado particularizado que contiene todo el sistema digital (sin necesidad
de la conexin de mltiples circuitos integrados estndar).
Los circuitos programables han experimentado un extraordinario desarrollo en la
ltima dcada (aos 90), con la integracin de un alto nmero de mdulos en el mismo
circuito y el aumento de prestaciones de tales mdulos. El mdulo bsico PLS suma de
productos + biestable ha incorporado diversos selectores programables, as como la
posibilidad de salida tri-estado y recibe el nombre genrico de macrocelda (cuya
configuracin es la representada en la figura de la pgina siguiente).
Una macrocelda est compuesta por
- una suma de productos programables de mltiples entradas entre las que se
encuentran las salidas de todas las macroceldas (realimentacin), estando
disponible cada entrada en su forma afirmada y negada;
- una puerta "o-exclusiva" programable que permite configurar la funcin de la
macrocelda (suma de trminos producto) en forma afirmada (y ) o negada (y ),
pudiendo optar por la que menor nmero de trminos producto requiera (lo cual
equivale a poder elegir entre resolver la funcin por unos o por ceros);
- un biestable que recibe dicha funcin;
- un selector que permite puentear el biestable y que configura, por tanto, la
macrocelda como combinacinal o como secuencial;
- y un adaptador triestado con capacidad para desconectar la macrocelda respecto
del terminal de salida, lo cual da lugar a las siguientes posibilidades:
la simple desconexin (alta impedancia) del terminal
su utilizacin bidireccional (I/O)
su disponibilidad como entrada, caso de que la macrocelda no sea utilizada.
72 El ect rni ca Di gi t al
1
0
0
1
1
0
D
Q
S R
Q
entradas exteriores macroceldas CK
Configuracin booleana de una macrocelda
Los circuitos integrados programables que utilizan macroceldas suelen ser aludidos
con las siglas PLD (dispositivos lgicos programables).
Mientras el nmero de macroceldas contenido en un PLD no es alto, cada una de
ellas recibe todas las entradas del dispositivo y la realimentacin de todas las salidas del
mismo, que coinciden directamente con las salidas de todas las macroceldas del
dispositivo: en caso de que alguna de las macroceldas no sea utilizada, la salida
correspondiente puede ser usada como entrada.
El ms conocido de estos dispositivos es el 22V10 que contiene 10 macroceldas con
diferente nmero de trminos producto (hay 2 macroceldas con 8 trminos producto,
otras 2 con 10, 2 con 12, 2 con 14 y 2 con 16 trminos producto). [Vase la figura de la
pgina siguiente.]
El circuito integrado programable 22V10 ofrece 22 terminales: 12 de entrada (uno de
ellos para el reloj) y 10 de tipo I/O (correspondientes a las 10 salidas de las macroceldas);
cuando una macrocelda no es utilizada su correspondiente terminal de salida puede ser
aprovechado como una entrada exterior ms para el resto de las macroceldas.
13. Bi est abl es s ncronos 73
Configuracin del circuito integrado programable PLD 22V10
74 El ect rni ca Di gi t al
La figura siguiente representa un PLD an mayor: el circuito integrado programable
EP1800, que contiene 48 macroceldas con 16 entradas exteriores (encapsulado de 68
pines) y posibilidad de aprovechar tambin como entradas las salidas de las macroceldas
que no se utilicen como tales.
Configuracin del circuito integrado programable EP1800
Como el nmero de macroceldas de este circuito integrado ya es considerable, se
dividen en cuatro cuadrantes; dentro de cada cuadrante hay cuatro macroceldas
globales que se realimentan con todas las del integrado y ocho macroceldas locales
que solamente se realimentan con las del propio cuadrante y con las globales.
13. Bi est abl es s ncronos 75
Cuando se trata de un gran nmero de macroceldas dentro de un mismo integrado no
resulta adecuado que cada una de ellas reciba todas las entradas y se conecte con todas las
macroceldas ya que la cantidad de conexiones programables sera sumamente elevada;
tampoco es viable que las salidas de todas las macroceldas se conecten a terminales de
salida del circuito integrado.
Para limitar el tamao y el nmero de terminales del circuito, las macroceldas se
agrupan en bloques disjuntos y reciben solamente las entradas propias del bloque y la
realimentacin de las macroceldas del mismo; no todas las salidas de las macroceldas
estn conectadas a terminales de salida sino solamente un nmero reducido de cada
bloque. Los bloques se conectan entre s a travs de un bus central de conexiones
programables conformando una estructura ramificada: un canal o eje de conexiones (a
manera tronco) sobre el cual se insertan los bloques de macroceldas (como ramas del
mismo). [Vase la figura de la pgina siguiente.]
Este tipo de circuitos integrados programables de amplio nmero de macroceldas
con arquitectura ramificada es nombrado con las siglas CPLD (dispositivos lgicos
programables complejos).
Para reducir la superficie de integracin y evitar un alto desaprovechamiento de las
estructuras PAL, el nmero de trminos producto de cada macrocelda suele ser pequeo
(4 6) y para ampliarlo, cuando se necesite, se incluyen en cada bloque expansores, en
forma de trminos producto adicionales que, sin pertenecer directamente a ninguna de las
macroceldas del bloque, pueden ser utilizados por cualquiera de ellas.
La figura de la pgina siguiente representa un CPLD de 256 macroceldas, de las
cuales solamente 64 pueden utilizarse como salidas exteriores (las otras 192 macroceldas
son internas); el circuito dispone de una entrada especfica de reloj y de 12 entradas
exteriores, pudindose emplear tambin como entradas los terminales correspondientes a
macroceldas que no se usen como tales.
76 El ect rni ca Di gi t al
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
canal
de
interconexin
programable
entrada
entrada
entrada
entrada
entrada
entrada
entrada
entrada
entrada
entrada
entrada
entrada
CK
Macrocelda 1
Macrocelda 2
Macrocelda 3
Macrocelda 4
Macroceldas 5 - 16
Macrocelda 17
Macrocelda 18
Macrocelda 19
Macrocelda 20
Macroceldas 21-32
Macrocelda 33
Macrocelda 34
Macrocelda 35
Macrocelda 36
Macroceldas 37 - 48
Macrocelda 49
Macrocelda 50
Macrocelda 51
Macrocelda 52
Macroceldas 53 - 64
Macrocelda 65
Macrocelda 66
Macrocelda 67
Macrocelda 68
Macroceldas 69 - 80
Macrocelda 81
Macrocelda 82
Macrocelda 83
Macrocelda 84
Macroceldas 85 - 96
Macrocelda 97
Macrocelda 98
Macrocelda 99
Macrocelda 100
Macroceldas 101 - 112
Macrocelda 113
Macrocelda 114
Macrocelda 115
Macrocelda 116
Macroceldas 117 - 128
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
Macrocelda 129
Macrocelda 130
Macrocelda 131
Macrocelda 132
Macroceldas 133 - 144
Macrocelda 145
Macrocelda 146
Macrocelda 147
Macrocelda 148
Macroceldas 149 - 160
Macrocelda 161
Macrocelda 162
Macrocelda 163
Macrocelda 164
Macroceldas 165 - 176
Macrocelda 177
Macrocelda 178
Macrocelda 179
Macrocelda 180
Macroceldas 181 - 192
Macrocelda 193
Macrocelda 194
Macrocelda 195
Macrocelda 196
Macroceldas 197 - 208
Macrocelda 209
Macrocelda 210
Macrocelda 211
Macrocelda 212
Macroceldas 213 - 224
Macrocelda 225
Macrocelda 226
Macrocelda 227
Macrocelda 228
Macroceldas 229 - 240
Macrocelda 2411
Macrocelda 242
Macrocelda 243
Macrocelda 244
Macroceldas 245 - 256
Configuracin CPLD con 256 macroceldas
13. Bi est abl es s ncronos 77
13. 5. Los bi est abl es en VHDL
Al igual que en los captulos 1 y 4, se incluye aqu la descripcin VHDL de diversos
tipos de biestables a fin de desarrollar una aproximacin gradual al diseo con lenguajes
de descripcin circuital:
Biestables asncronos
biestable RS
R
S
q
q
F F
R-S
biestable D
q
q
F F
D
D
E
a) q <= '0' when R = '1' else '1' when S = '1' else q;
b) y <= not R and (S or q);
ambos casos con borrado prioritario
descripcin utilizando proceso
process (R,S)
begin
if R = '1' then q <= '0';
elsif S = '1' then q <= '1';
end if;
end process;
(tngase en cuenta que proceso conserva los valores:
por ello no es necesario aadir else q <= q;)
a) q <= D when E = '1' else q;
b) y <= (D and E) or (q and not E)
descripcin utilizando proceso
process (D,E)
begin
if E = '1' then q <= D;
end if;
end process;
(no es necesario aadir else q <= q;)
78 El ect rni ca Di gi t al
Biestables sncronos
biestable D
E
q
F F
D
CK
q
D
biestable JK
q
F F
JK
CK
q
J
K
biestable D
con marcado/borrado
asncronos
D
q
F F
D
CK
q
Reset Set
process
begin
wait on CK until CK = '1';
if E = '1' then q <= D; end if;
end process;
(el reloj se describe siempre dentro de un proceso;
si afecta a todo el proceso se describe con un wait
y el until CK = '1' indica flanco ascendente)
(no es necesario aadir else q <= q;)
process
begin
wait on CK until CK = '1';
if J = '1' and K ='1' then q <= not q;
elsif J='1' then q <= '1';
elsif K = '1' then q <= '0';
end if;
end process;
process(Reset,Set,CK,D)
begin
if Reset = '1' then q <= '0';
elsif Set = '1' then q <= '1';
elsif CK'event and CK = '1' then
q <= D;
end if;
end process;
(la parte asncrona debe describirse antes del reloj;
luego el reloj se describe dentro de un elsif con event
y CK = '1' indica flanco ascendente)
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
14 DISEO SECUENCIAL SNCRONO
14.1. Diseo de sistemas secuenciales con biestables sncronos
14.2. Ejercicios de diseo sncrono
14.3. Configuracin microprogramada de grafos de estado
14.4. Los grafos de estado en VHDL
Los biestables sncronos son las celdas bsicas del sincronismo, gracias a las cuales se
consigue configurar sistemas sncronos. Las variables de estado se almacenan en biestables
sncronos y las funciones de evolucin del estado correspondern a las de activacin de
dichos biestables.
Hoy da se utilizan habitualmente biestables bsicos de tipo D; el diseo con biestables
D requiere la obtencin funcional del nuevo valor de la variable de estado, a travs de la
tabla de evolucin del estado (Di = qi
+).
Ahora bien, en casos de tabla funcional muy compleja (de gran nmero de variables)
resulta til separar las condiciones de marcado y de borrado: desde el propio grafo de
estados es posible obtener directamente las funciones de marcado S y borrado R y el diseo
con biestables tipo D se reduce a agrupar ambas funciones. Ello equivale a razonar en
trminos de biestables tipo JK, que son el equivalente sncrono (ampliado) del biestable
RS, y la traslacin del diseo a biestables D se hace en forma anloga a como se
conforman biestables JK a partir de biestables D.
Un diversificado conjunto de ejemplos de diseo ilustran la forma de aplicar estos
procedimientos; entre ellos se incluyen muchos casos tpicos, como son: sumadores serie,
deteccin de secuencias, contadores, dados electrnicos, generacin de ondas sincronizadas
entre s, detectores de entrada y salida de personas, activacin/desactivacin mediante
deteccin de secuencias, semforo con demanda de paso,
Al igual que la configuracin ROM permite construir las funciones booleanas sin
obtener su expresin algebraica, directamente desde su tabla funcional, la evolucin de las
variables de estado puede construirse mediante un registro (que contenga el estado actual)
y un codificador ROM (que proporcione el estado siguiente): esta forma de configurar
grafos de estado se denomina microprogramada ya que el codificador contendr el
programa de estados sucesivos, en funcin del estado actual y del vector de entrada.
82 El ect rni ca Di gi t al
14. 1. Di seo de si st emas secuenci al es con bi est abl es s ncronos
Cualquier sistema secuencial de una cierta complejidad (es decir, con excepcin
nicamente de los sistemas digitales muy simples o muy directos) debe disearse en
forma sncrona, con una seal de reloj CK, comn a todo el sistema, que organiza el
tiempo en unidades y seala con precisin los momentos de cambio de estado: flancos
activos del reloj.
El sincronismo facilita en gran medida el diseo de un sistema complejo, al dividir el
tiempo en unidades sucesivas y, con ello, hacer posible el razonamiento con unidades de
tiempo discretas y numeradas.
Pero, sobre todo, el sincronismo proporciona seguridad de funcionamiento: evita
fallos en las transiciones de estado al dedicar el intervalo correspondiente a cada unidad
de tiempo al clculo del nuevo estado y ejecutar simultneamente el nuevo estado, ya
completamente preparado, al finalizar la unidad de tiempo (en el siguiente flanco activo
del reloj). De forma que los espurios o valores transitorios de algunas variables que
puedan formarse durante la transicin de un estado al siguiente no llegan a afectar al
circuito porque el nuevo estado no es admitido hasta el siguiente flanco activo del
reloj, cuando ya ha sido calculado por completo a lo largo de la unidad de tiempo.
El sincronismo de una variable, su modificacin coincidente con los flancos activos
de la seal de reloj, se consigue mediante una configuracin amo/esclavo
(master/slave), es decir, empleando un biestable sncrono para dicha variable. Por ello,
los sistemas secuenciales sncronos se disean utilizando biestables sncronos:
habitualmente biestables sncronos tipo D.
El diseo de un sistema secuencial sncrono, en lo que a sus variables de estado se
refiere, consiste en expresar las funciones de evolucin del estado en trminos de
activacin de las entradas de sus biestables.
Para ello han de recorrerse los sucesivos niveles de descripcin del sistema
secuencial:
especificaciones/
/requisitos
grafo
de estados
tabla funcional
de evolucin
de los estados
expresin algebraica
de activacin
de los biestables
simplificacin
de estados
codificacin
de los estados
14. Di seo secuenci al s ncrono 83
14.1.1. Diseo con biestables D
El biestable tipo D es el biestable sncrono bsico y el ms utilizado; para disear un
sistema secuencial con biestables D conviene construir la tabla funcional de evolucin del
estado y, en ella, la propia columna qi constituye la funcin de activacin de su entrada:
Di(t) = qi(t+1) = qi
+
= fi( X , Q )
La sntesis de las funciones de activacin de las salidas constituye un proceso
meramente combinacional: Y = f( X , Q ) .
Consideremos un ejemplo clsico, muy simple, el detector de una secuencia de bits
consistente en tres unos seguidos: un sistema con una sola entrada A, por la cual
recibe dgitos binarios en unidades de tiempo sucesivas, debe responder con un pulso (de
duracin igual a una unidad de tiempo) cuando detecta la llegada de tres unos seguidos
111; suponemos que el sistema no admite solapes (una vez recibidos tres unos, para
volver a activar la salida es preciso que reciba otros tres unos diferentes).
inicial
1er uno 2 uno
pulso
1
1
1
0
0
00
01 10
11 0
1
Este grafo puede ser codificado con dos variables de estado; las funciones de
activacin de las entradas de los biestables D, obtenidas a partir de la tabla de evolucin
del estado sern:
estado anterior q2 q1 a q2
+
q1
+
nuevo estado
________________________________________________________________
0 0 0 0 0
1 0 1
0 1 0 0 0
1 1 0
1 0 0 0 0 D
1
= q
1
+
= a.(q
2
+ q
1
)
1 1 1
1 1 0 0 0 D
2
= q
2
+
= a.(q
2
q
1
)
1 0 1
y la funcin de activacin de la salida corresponde al estado 11: y = q
2
.q
1
.
84 El ect rni ca Di gi t al
14.1.2. Diseo desde el grafo de estados
Razones de tiempo y de complejidad obligan en ocasiones a realizar el diseo
directamente desde el grafo de estados (por la dificultad de construir la tabla funcional de
evolucin de los estados). En tal caso, una vez realizada la simplificacin y la
codificacin de los estados, se pasa a considerar cada variable de estado qi, dividiendo
para cada una de ellas el grafo de estados en dos partes:
- conjunto de estados en que la variable q
i
tiene valor 1;
- conjunto de estados en que la variable q
i
tiene valor 0.
Para cada una de las transiciones que pasan de la parte en que q
i
vale 0 a la parte en
que qi
vale 1 se obtiene un trmino de marcado de dicha variable qi, dado por el producto
booleano del trmino mnimo correspondiente al estado anterior por el trmino de entrada
que provoca dicha transicin.
De igual forma para cada transicin que pasa de la parte en que qi
vale 1 a la parte
en que qi
vale 0 se obtiene un trmino de borrado de la variable qi, dado asimismo por el
producto booleano del trmino mnimo correspondiente al estado anterior por el trmino
de entrada que provoca la transicin.
Las funciones de marcado y borrado conducen, de por s, a un diseo con biestables
JK: Ji equivale, en tal sentido, a Si y debe recoger todos los trminos de marcado de qi y
Ki, que equivale Ri, debe recibir todos los trminosde borrado:
Ji = suma booleana de los trminos de marcado de qi;
Ki = suma booleana de los trminos de borrado de qi.
En el ejemplo anterior, la obtencin de las funciones de marcado y borrado
directamente desde el propio grafo de estados, conduce a:
q1:
J
1
= q
2
.q
1
.a + q
2
.q
1
.a = q
1
.a K
1
= q
2
.q
1
+ q
2
.q
1
.a = q
1
.(a + q
2
)
q2:
J
2
= q
2
.q
1
.a K
2
= q
2
.q
1
.a + q
2
.q
1
= q
2
.(a + q
1
).
Resulta sencillo pasar de las funciones de marcado y borrado JiKi a biestables tipo
D, mediante la siguiente transformacin funcional:
D
i
= q
i
.J
i
+ q
i
.K
i
;
las condiciones de marcado actan cuando la variable de estado se encuentra a 0 y las de
borrado cuando se encuentra a 1. La expresin anterior coincide, obviamente, con la
forma de construir un biestable JK a partir de uno D (apartado 13.1, pgina 65).
En el caso que nos ocupa:
D
1
= q
1
.J
1
+ q
1
.K
1
= q
1
.a + q
1
.a.q
2
= a.(q
2
+ q
1
)
D
2
= q
2
.J
2
+ q
2
.K
2
= q
2
.q
1
.a + q
2
.a.q
1
= a.(q
2
q
1
)
que coinciden con las obtenidas directamente de la tabla funcional.
14. Di seo secuenci al s ncrono 85
Este diseo directo a partir del grafo o de la mquina de estados conduce a funciones
booleanas que pueden quedar menos simplificadas que en el caso de construir las tablas
funcionales; adems, tiene el riesgo de no considerar alguna situacin particular que no se
encuentre expresamente reflejada en el grafo de estados y que pudiera conducir a errores
de funcionamiento. A costa de asumir este riesgo y una menor simplificacin, se evita la
pesada tarea de construir fila a fila la tabla funcional.
Se indica, a continuacin, la forma de obtener las funciones de activacin de las
entradas Ji Ki desde la tabla de evolucin del estado: ser preciso ampliar dicha tabla con
las condiciones de marcado Ji y borrado Ki de cada una de las variables de estado qi, a
partir de la siguiente correspondencia entre la evolucin de qi y los valores de Ji y de Ki.
qi(t)
qi(t+1)
Ji
Ki
0 0 0 X
0 1 1 X
1 0 X 1
1 1 X 0
lo cual permite expresar la tabla de verdad para las entradas
Ji y Ki
de los biestables y, a
partir de ella, construir las funciones booleanas que deben actuar sobre dichas entradas:
J = f'( X , Q ) K = f"( X , Q )
En la prctica no tiene mucho inters el diseo con biestables JK utilizando la tabla
de evolucin del estado, ya que es un proceso ms complejo que para biestables tipo D y,
adems, es ms habitual la disponibilidad de los biestables D (entre otras razones porque
son ms bsicos y de circuitera ms reducida y porque son los biestables tpicos de los
dispositivos programables y de las libreras de celdas estndar para el diseo de ASICs).
En el caso del detector de una secuencia de bits consistente en tres unos seguidos,
la tabla funcional de evolucin del estado, incluyendo las columnas correspondientes a la
activacin de las entradas J y K, es la representada en la pgina siguiente.
q2 q1 a q2
+
q1
+
J2 K2 J1 K1
_______________________________________________________________________________________________
0 0 0 0 0 0 X 0 X q1:
1 0 1 0 X 1 X J
1
= a
0 1 0 0 0 0 X X 1 K
1
= a + q
2
1 1 0 1 X X 1
1 0 0 0 0 X 1 0 X q2:
1 1 1 X 0 1 X J
2
= q
1
.a
1 1 0 0 0 X 1 X 1 K
2
= a + q
1
1 0 1 X 1 X 0
86 El ect rni ca Di gi t al
14. 2. Ej erci ci os de di seo de si st emas secuenci al es s ncronos
14.2.1. Sumador secuencial: realiza la suma de dos nmeros binarios, los cuales recibe
en serie, bit a bit, por dos lneas en unidades de tiempo sucesivas
(comenzando por el dgito de menor valor significativo).
Este sumador requiere memoria, por cuanto que el bit de arrastre o acarreo que se
produce al sumar dos dgitos ha de actuar como operando (como entrada) en la suma de
los siguientes dgitos; el correspondiente sistema secuencial ha de ser sncrono pues ha de
adaptarse a las unidades de tiempo en las cuales recibe los sucesivos dgitos de los
nmeros a sumar.
SUMADOR
S
Resultado suma
i
c
bit de arrastre
i
a
i
b
i
sumando A sumando B
D
q
CK
Este sumador secuencial se reduce a una celda sumadora bsica (apartado 3.1,
primer volumen) a la que se aade un biestable D para almacenar el arrastre.
Las tablas funcionales de evolucin del estado ci
(bit de acarreo) y de activacin de
la salida si
(resultado de la suma) son las mismas que en la celda sumadora, slo que aqu
la entrada y la salida de acarreo corresponden a una misma variable de estado:
ci bi ai ci
+
si
_____________________________
0 0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0
1 0 0 0 1
0 1 1 0
1 0 1 0
1 1 1 1
Resolviendo este diseo con un biestable D, para almacenar ci, resulta:
variable de salida s
i
= c.(b.a + b.a) + c.(b.a + b.a) = c (a b)
variable de estado ci:
a).c (b b.a a c.b. .a b c. b.a = c + = + +
+
que dan como resultado el circuito de la figura siguiente.
14. Di seo secuenci al s ncrono 87
D
Q
a
i
i
i
i
b
s
c
reloj sincronizado
con los digitos de A y B
Sumador secuencial
14.2.2. Detector de una secuencia de bits: un sistema con una sola entrada A, por la
cual recibe dgitos binarios en unidades de tiempo sucesivas, responde con un
pulso (de duracin igual a una unidad de tiempo) cuando detecta la llegada de
una determinada secuencia, por ejemplo, la secuencia 11011.
El problema de deteccin de una secuencia genrica (en este caso, la deteccin de
11011) es diferente segn se admita o no la posibilidad de solape (es decir, que la
sucesin 11011011 produzca doble deteccin de secuencia, la primera correspondiente a
los cinco primeros bits y la segunda relativa a los cinco ltimos, dos de ellos solapados en
ambas, o solamente produzca una deteccin).
Los grafos de estado correspondientes a ambas posibilidades sern los siguientes:
a) sin solape
inicial
1 bit 2 bit
3 bit
4 bit pulso
1
1
1
1
1
0
0
0
0
0
b) con solape
inicial
1 bit 2 bit
3 bit
4 bit pulso
1
1
1
0
0
0
0
1
0
1
88 El ect rni ca Di gi t al
Ambos casos pueden ser codificados con tres variables de estado, su tabla de
evolucin del estado tendr a cuatro variables de entrada (las de estado ms la entrada A)
y la salida se activar en el estado anotado como pulso.
Se deja para el lector (como ejercicio de aplicacin) la codificacin de los estados, la
construccin de las tablas de evolucin del estado y la obtencin, a partir de dichas tablas,
de las funciones de activacin de los biestables D.
La deteccin con solape podra resolverse, tambin, con un registro de
desplazamiento (y el trmino mnimo correspondiente a la secuencia a detectar), pero en
este caso seran necesarios cinco biestables, frente a los tres que requiere el anterior grafo
de estados.
14.2.3. Deteccin sncrona de flancos de subida: dada una seal proveniente de un
pulsador A (o, simplemente, dada cualquier seal digital A) se desea generar
un pulso cuya duracin sea igual a una unidad del tiempo de reloj, cada vez que
se active el pulsador (cada vez que se produzca un flanco de subida en la seal
A).
Un posible grafo de estados de este sistema es el siguiente:
A A
A
A
reposo
pulso
continuidad
de A en 1
Son necesarias, al menos, dos variables de estado para codificar el grafo anterior; la
introduccin de un cuarto estado no complica en modo alguno dicho grafo y, en cambio,
introduce una gran simetra en el mismo:
A
A A
00
10
11
01
A
A A
14. Di seo secuenci al s ncrono 89
De la codificacin del ciclo principal del grafo en cdigo Gray resulta la siguiente
tabla funcional:
q2 q1 A q2
+
q1
+
__________________________________
0 0 0 0 0
1 0 1
0 1 0 1 0
1 1 1
1 0 0 0 0
1 0 1
1 1 0 1 0
1 1 1
que, realizada con biestables D, da lugar a un registro de desplazamiento de dos bits:
D
1
= A
D
2
= q
1
;
siendo la funcin de salida (estado 01) la siguiente: y = q
2
.q
1
.
D
Q
D
Q
A y
CK
El resultado es obvio: para detectar un flanco de subida en la seal A basta retener el
valor de dicha seal durante dos unidades de tiempo seguidas y seleccionar la secuencia
01 que corresponde a un flanco ascendente (paso de 0, valor previo, a 1, valor siguiente).
Este circuito es un detector de flanco de subida, un mdulo muy til para el diseo
secuencial, que aparece frecuentemente en sus diagramas de bloques (ver apartado 16.4,
Contaje de pulsos diferentes del reloj) .
El flanco de bajada se detecta con la secuencia 10:
1 2
q . q = y , es decir con un
circuito anlogo, cambiando las salidas de los biestables que van a la puerta puerta "y";
para detectar ambos flancos (el de subida y el de bajada) ser necesaria una puerta
"o-exclusiva" que reciba las salidas de ambos biestables:
1 2 1 2 1 2
q q q . q .q q = y = + .
90 El ect rni ca Di gi t al
14.2.4. Activacin gradual de alarma: un sistema de deteccin de temperatura
proporciona cuatro niveles codificados en binario (00, 01, 10, 11); la situacin
de alarma debe activarse cuando se detecta el nivel 3 11 (temperatura muy
alta), o si se detecta el nivel 2 10 (alta) en dos ciclos seguidos de reloj y debe
desaparecer cuando se detecta el nivel 0 00 (muy baja), o si se detecta el nivel 1
01 (baja) en dos ciclos de reloj consecutivos.
El grafo de estados del sistema de activacin de la situacin de alarma puede ser el
representado en la siguiente figura; su codificacin, con dos variables de estado, se ha
indicado al lado de cada estado.
inicial
entrando
alarma
11
00
10
0-
1-
0-
01
1-
00
01
11
10
saliendo
La situacin de alarma corresponde a los estados 11 y 10: alarma = q
2
y la tabla
de evolucin de estados ser la siguiente:
q2 q1 b a q2
+
q1
+
__________________________________
0 0 0 0 0 0
0 1 0 0
1 0 0 1
1 1 1 1
0 1 0 0 0 0
0 1 0 0
1 0 1 1
1 1 1 1
1 0 0 0 0 0
0 1 0 0
1 0 1 1
1 1 1 1
1 1 0 0 0 0 D
1
= b
0 1 1 0
1 0 1 1 D
2
= b.(a + q
2
+ q
1
) + q
2
.q
1
.a
1 1 1 1
14. Di seo secuenci al s ncrono 91
14.2.5. Contador sncrono mdulo 5: su grafo tendr 5 estados, comenzando en el
estado 0, pasando de cada nmero al siguiente y del estado 4 al primer estado.
q3 q2 q1 q3
+
q2
+
q1
+
_____________________________________
0 0 0 0 0 1
0 0 1 0 1 0
0 1 0 0 1 1
0 1 1 1 0 0
1 0 0 0 0 0
1 0 1 X X X
1 1 0 X X X
1 1 1 X X X
1 3 1
q . q = D
1 2 1 2 1 2 2
q q .q q q . q = D = +
1 2 3
q . q = D
D
Q
Q
D
Q
Q
D
Q
Q
CK
q1 q2
q3
Contador sncrono mdulo 5
14.2.6. Dado electrnico: un contador especial 1 - 6, activado con una frecuencia muy
alta (por ejemplo, 100 KHz) y de forma que cuente cuando se acta sobre un
pulsador P y deje de contar cuando se suelta dicho pulsador, dar como
resultado un nmero entero entre 1 y 6, obtenido al azar (ya que el final del
pulsado manual es realmente aleatorio respecto al contaje producido por una
frecuencia muy alta).
Una posible forma de seleccionar nmeros al azar, entre el 1 y el 6 consiste en
construir un sistema que cuente de 1 a 6 cclicamente, con una entrada de habilitacin,
siendo los pulsos a contar de frecuencia relativamente alta; al pulsar la habilitacin, el
contador realizar el contaje muy rpidamente y el nmero en que se detenga al finalizar
la habilitacin ser aleatorio.
92 El ect rni ca Di gi t al
Oscilador
100 KHz
CONTADOR 1 - 6
P
"1"
P
BCD 7 segmentos
La tabla funcional del contador habilitado por el pulsador P ser la siguiente (en ella
se ha hecho que el estado 0 pase siempre al 1 y que el estado 7 pase al 6, para evitar que
el contador se site en valores no pertinentes):
P q3 q2 q1 q3
+
q2
+
q1
+
_____________________________________________________________________________________________
0 0 0 0 0 0 1
0 0 0 1 0 0 1
0 0 1 0 0 1 0
0 0 1 1 0 1 1
0 1 0 0 1 0 0
0 1 0 1 1 0 1
0 1 1 0 1 1 0
0 1 1 1 1 1 0
1 0 0 0 0 0 1
1 0 0 1 0 1 0
1 0 1 0 0 1 1
1 0 1 1 1 0 0 Este contador (de 1 a 6)
1 1 0 0 1 0 1 puede programarse
1 1 0 1 1 1 0 sobre un bloque PLS
1 1 1 0 0 0 1 utilizando 3 mdulos
1 1 1 1 1 1 0 y una sola entrada P :
D
1
= P.q
1
+ q
3
.q
2
.q
1
+ P.q
3
.q
1
+ P.q
2
.q
1
D
2
= P.q
2
.q
1
+ P.q
2
+ q
3
.q
2
.q
1
+ q
3
.q
2
.q
1
2 3 3 1 2 3
q . q + .q P + .q P.q = D
14. Di seo secuenci al s ncrono 93
14.2.7. Generador de mltiples ondas repetitivas, sincronizadas entre s: a partir de
una seal de reloj de frecuencia fija se desea generar las formas de onda
representadas en la figura, las cuales se repetirn indefinidamente.
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0 4 6 5 1 2 7 3
La secuencia de valores booleanos correspondientes a estas ondas es : 0, 4, 6, 5, 1, 2,
7, 3,, de manera que la generacin de estas formas de onda corresponde a un contador
cuya secuencia de contaje (grafo de estados) ser:
0 4 6 5 1 2 7 3
Su diseo requiere tres variables de estado (3 biestables), sin variables de entrada.
q3 q2 q1 q3
+
q2
+
q1
+
____________________________________________________________________________
0 0 0 1 0 0
0 0 1 0 1 0
0 1 0 1 1 1
0 1 1 0 0 0
1 0 0 1 1 0
1 0 1 0 0 1
1 1 0 1 0 1
1 1 1 0 1 1
D
1
= q
3
.q
1
+ q
2
.q
1
D
2
= q
3
(q
2
q
1
)
D
3
= q
1
Si las formas de onda hubieran sido las de la figura siguiente:
0 4 6 5 1 2 6 3
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
94 El ect rni ca Di gi t al
la secuencia de contaje sera:
0 4 6 5 1 2 6 3
en la cual se repite el estado 6.
El cdigo 6 se asigna a dos estados distintos (que presentan transiciones diferentes);
ser preciso diferenciar ambos estados, lo cual puede conseguirse con una variable
adicional q4, cuyo valor sea indiferente X en todos los estados salvo en los dos que es
preciso distinguir:
q4 q3 q2 q1 q4
+
q3
+
q2
+
q1
+
____________________________________
X 0 0 0 X 1 0 0
X 0 0 1 X 0 1 0
X 0 1 0 1 1 1 0
X 0 1 1 X 0 0 0
X 1 0 0 0 1 1 0
X 1 0 1 X 0 0 1
0 1 1 0 X 1 0 1
1 1 1 0 X 0 1 1
X 1 1 1 X X X X
D
1
= q
3
. (q
2
+ q
1
) D
2
= q
3
(q
2
q
1
) + q
4
.q
3
.q
2
D
3
= (q
4
+ q
3
+ q
2
) . q
1
D
4
= q
2
En los dos casos anteriores las correspondientes formas de onda (representadas en las
figuras) aparecen en las salidas de los biestables; en el segundo caso, aparecen en las
salidas de los tres ltimos biestables, mientras que el biestable ms significativo sirve
simplemente para distinguir dos estados en los que el valor de los otros tres biestables es
idntico.
Esta forma de diseo supone que las formas de onda o, lo que es lo mismo, la
secuencia de nmeros binarios a obtener se produce directamente sobre las salidas de los
biestables, es decir, las salidas coinciden con las variables de estado.
Otra manera, igualmente vlida, de resolver el diseo de una secuencia numrica
cualquiera, de longitud n, que se repite indefinidamente (n pasos de reloj), consiste en
utilizar un contador mdulo n, seguido de un codificador (conversor de cdigo) que
transforme los valores numricos sucesivos del contador (0, 1, 2, 3, , n-1) en los
cdigos correlativos de la secuencia deseada.
14. Di seo secuenci al s ncrono 95
reloj
(unidad de tiempo)
secuencia de nmeros
o de formas de onda
CODIFICADOR
C O N T A D O R
mdulo n
Supongamos que programamos sobre un bloque PLS el generador de ondas
repetitivas diseado en la pgina anterior: se necesitan 4 mdulos para las 4 variables de
estado q4 q3 q2 q1 (de las cuales, las tres ltimas coinciden con las variables de salida);
pero, si la programacin corresponde a la configuracin anterior contador-codificador, el
nmero de mdulos necesarios es de 6 (3 para el contador de 8 estados y 3 para el
codificador que proporciona las salidas).
14.2.8. Detector de nmero de personas presentes: supuesto que exista un solo acceso
que es, a la vez, entrada y salida y que las personas entran y salen de una en
una y con una mnima distancia entre ellas, un par de clulas fotoelctricas
prximas a y b permite detectar la salida o entrada de personas y el sentido en
que cruzan dicho acceso.
Siendo a la clula fotoelctrica exterior, las secuencias normales de las situaciones
de entrada y de salida son, respectivamente:
- entrada: a. b a.b a.b a.b a.b
- salida: a. b a.b a.b a.b a.b
inicial
E1
E2
E3
E4
S1
S2
S3
S4
a
a
a
a
a
a
a
b
b
b
b
b
b
b
siempre siempre
La figura anterior representa un primer grafo de la evolucin de los estados de este
sistema secuencial; los estados E4 y S4 se presentan durante una sola unidad de tiempo y
corresponden a las salidas: incrementar y decrementar en una persona, respectivamente.
96 El ect rni ca Di gi t al
Supuesto que el contaje de las personas presentes se efecte con un contador
bidireccional, al estado E4 le corresponde contar una unidad y al estado S4 le
corresponde descontar una unidad:
habilitacin del contador (estados E4 y S4): E = q
2
.q
1
contaje ascendente (estado E4):
3
q = te" /descenden ascendente control " .
Habida cuenta de que el nmero de estados es alto, conviene considerar la
posibilidad de que algunos de ellos sean simplificables entre s:
1.1 estados agrupables: los estados inicial, E1, E2 y E3
1.2 variables que los diferencian: a y b : 00, 10, 11, 01 respectivamente
1.3 posibilidad de diferenciar correctamente las transiciones desde el nuevo estado:
La transicin con b debe producirse desde el estado E3 hacia E4 : b.a.b ( = 0); no
es posible distinguir correctamente esta transicin (una de las variables que diferencian al
estado E3 es la que produce la transicin desde dicho estado) y, por tanto, no es posible
efectuar esta agrupacin de estados.
Lo mismo sucede en la transicin con a desde el estado E1 hacia el inicial.
Consideremos otras posibilidades de agrupacin de estados:
2.1 estados agrupables: los estados E1 y E2
2.2 variable que los diferencia: b : 0, 1, respectivamente
2.3 posibilidad de diferenciar correctamente las transiciones desde el nuevo estado:
Una transicin con a debe producirse desde el estado E1 hacia el inicial : a. b
Asimismo, debe producirse otra transicin con a desde el estado E2 hacia E3 : a. b
El nuevo estado agrupado tendr una transicin de salida a. b hacia el estado inicial y otra
transicin a. b hacia el estado E3.
3.1 estados agrupables: los estados S1 y S2
3.2 variable que los diferencia: a : 0, 1, respectivamente
3.3 posibilidad de diferenciar correctamente las transiciones desde el nuevo estado:
Una transicin con b debe producirse desde el estado S1 hacia el inicial : b.a
Tambin debe producirse otra transicin con b desde el estado S2 hacia S3 : b.a
El nuevo estado agrupado tendr una transicin de salida b.a hacia el estado inicial y otra
transicin b.a hacia el estado S3.
14. Di seo secuenci al s ncrono 97
La agrupacin de los estados E1 y E2 en uno solo E1,2 y la simtrica de S1 y S2 en
S1,2 reduce el grafo a siete estados, codificables con tres variables q3 q2
q1.
inicial
E1,2
E3
E4
S1,2
S3
S4
a
a.b
b
a.b
siempre siempre
a a.b
-00
101
111
110 010
011
001
a.b
a.b
a.b
b.a
Respetando la simetra del grafo, el estado inicial se ha codificado con -00 (es
indiferente para dicho estado el valor q3) y, para evitar marcados duplicados, se ha
condicionado con a la transicin que produce b desde dicho estado; lo mismo se ha
hecho (evitar la posibilidad de marcados duplicados) con las transiciones que salen de los
estados E3 y S3 (b.a ).
Extrayendo las condiciones de marcado y de borrado del grafo de estados:
q1: J
1
= q
2
.q
1
.(b + a) K
1
= q
1
.b.a
q2: J
2
= q
2
.q
1
.(q
3
.b.a + q
3
.b.a) K
2
= q
2
.q
1
+ q
2
.(q
3
.b + q
3
.a)
q3: J
3
= q
2
.q
1
.b.a K
3
= q
2
.q
1
.a
Para construir este sistema secuencial biestables D, aplicaremos la transformacin:
D = q.J + q.K
D
1
= (q
2
+ q1) . (b + a)
) a . b + a . q + b . .(q .q q + ) a .b. q + .a b . .(q q . q = D
3 3 1 2 3 3 1 2 2
D
3
= q
3
.q
2
.q
1
.b.a + q
3
.(q
2
+ q
1
+ a)
En este caso la tabla de evolucin de estados presenta 5 variables (es decir, es
amplia pero manejable); construyendo dicha tabla se obtienen las siguientes funciones
(bastante ms simplificadas que las anteriores):
D
1
= (q
2
+ q1) . (b + a)
a . b . .q q + ) a .b. q + .a b . .(q q = D
1 2 3 3 1 2
D
3
= q
1
.a + q
3
.q
1
98 El ect rni ca Di gi t al
14.2.9. Activacin y desconexin de un sistema por deteccin de secuencia: un sistema
elctrico es controlado a travs de una lnea a por la que recibe valores
booleanos sucesivos, sincronizados con un reloj de 1 MHz; el sistema se activa
al recibir la secuencia 1011 y se desactiva cuando detecta 1101 (se admite el
solapamiento entre secuencias. Disear el circuito de activacin/desactivacin,
de forma que pueda ser programado sobre un circuito PLS y la salida
(activo = 1, desactivo = 0) se corresponda con una de las variables de estado.
La cuestin no consiste en detectar dos secuencias 1011 y 1101, sino en diferenciar
dos situaciones activo/inactivo: en la situacin de sistema inactivo interesa detectar la
secuencia 1011 que lo activa y cuando el sistema se encuentra activo importa detectar la
otra secuencia 1101 que lo lleva a inactivo.
Habida cuenta que se admite el solape entre las secuencias a detectar, cuando el
sistema se activa se encuentran ya detectados los dos primeros dgitos de la secuencia que
lo desactiva 1011 11--; del mismo modo, al pasar a inactivo se encuentran detectados
los tres primeros dgitos de la secuencia que lo puede activar 1101 101-.
Un posible grafo de estados es el siguiente, en cuya codificacin se ha reservado la
variable q3 para representar la situacin de sistema activo q3 = 1 o inactivo q3 = 0:
- - - - 1 - - - 1 0 - - 1 0 1 -
- - - - 1 - - - 1 1 0 -
1 0 1
1
0
0
1
1 1 0
0
sistema
inactivo
sistema
activo
0
000 001 010 011
100 101 110 111
1 1 - -
La funcin de salida, y = sistema activo, corresponde a la variable de estado q3
y = q3 y la tabla de evolucin de los estados es la representada en la pgina siguiente.
14. Di seo secuenci al s ncrono 99
q3 q2 q1 a q3
+
q2
+
q1
+
________________________________________________
0 0 0 0 0 0 0
1 0 0 1
0 0 1 0 0 1 0
1 0 0 1
0 1 0 0 0 0 0
1 0 1 1
0 1 1 0 0 1 0
1 1 1 0
1 0 0 0 1 0 0
1 1 0 1
1 0 1 0 1 0 0
1 1 1 0
1 1 0 0 1 1 1
1 1 1 0
1 1 1 0 1 0 0
1 0 1 1
A partir de esta tabla las funciones de activacin de los biestables D
i
= q
i
+
sern
las siguientes:
D
1
= q
3
.q
2
.q
1
.a + q
3
.q
2
.q
1
.a + q
3
.q
2
.a + q
3
.q
1
.a + q
2
.q
1
.a
D
2
= q
3
.q
2
.q
1
+ q
3
.q
1
.a + q
3
.q
1
.a + q
2
.a
D
3
= q
3
.q
2
+ q
3
.q
1
+ q
3
.a + q
3
.q
2
.q
1
.a
Un diseo alternativo consiste en configurar un registro de desplazamiento de 4
biestables q4 q3 q1 q1 para recibir la secuencia, detectndola sobre las salidas de dicho
registro y utilizar un biestable adicional q5 que se marque con la secuencia 1011 y se
borre con la otra secuencia 1101:
D
1
= a D
2
= q
1
D
3
= q
2
D
4
= q
3
D
5
= marcado + q
5
.borrado = q
4
.q
3
.q
2
.q
1
+ q
5
.(q
4
.q
3
.q
2
.q
1
) =
= q
4
.q
3
.q
2
.q
1
+ q
5
.q
4
+ q
5
.q
3
+ q
5
.q
2
+ q
5
.q
1
Este diseo requiere 5 mdulos PLS (uno de ellos con, al menos, 5 trminos
producto), mientras que el diseo anterior (como sistema secuencial directamente a partir
del grafo de estados) solamente necesita 3 mdulos PLS.
100 El ect rni ca Di gi t al
14.2.10 Un sencillo cruce de dos calles perpendiculares y unidireccionales dispone de
semforos (con slo rojo y verde) que, cada 20" dan paso, alternativamente, a
cada una de las dos direcciones; sobre dicho cruce incide una pequea calle
lateral (ver figura) que dispone de un sensor de vehculos d, de forma que el
paso de dicha calle est normalmente interrumpido, pero, cuando se detecta un
vehculo en ella, se espera a finalizar el intervalo de 20" y se da paso a dicha
direccin lateral (interrumpiendo las otras dos), tambin durante 20". Disear
el circuito de control de los semforos de las tres calles.
detector
de vehculos
Como los tiempos de los semforos son todos ellos de 20 segundos, dicha
temporizacin se resuelve directamente mediante un reloj de 20" de perodo (frecuencia
0,05 Hz). Un posible grafo de estados es el siguiente, siendo d la entrada conectada al
sensor de vehculos:
d
d
lateral
lateral
d
d
lateral
lateral
d
d
siem
pre
siem
p
re
Este grafo asigna prioridad a la calle lateral, de forma que cuando hay mucha
demanda de paso por la misma, se produce un verde en la calle lateral despus de cada
paso en una de las otras direcciones. Parece ms adecuado asegurar el paso de las otras
dos direcciones entre cada dos verdes de la calle lateral, para lo cual sirve el grafo de
estados siguiente (todas las transiciones se producen con los flancos activos del reloj, es
decir, cada 20" y las transiciones no anotadas se producen siempre).
d
d
lateral
lateral
d d
000 001
100
111 110
101
d
d
lateral
lateral
d d
d
d
lateral
lateral
d d
d
d
lateral
lateral
d d
000 001
100
111 110
101
semforo calle horizontal:
1 2
q . q = erde v
semforo calle vertical:
1 2
.q q = erde v
semforo calle lateral:
2 3
.q q = erde v
14. Di seo secuenci al s ncrono 101
La tabla de evolucin de los estados es la siguiente.
q3 q2 q1 d q3
+
q2
+
q1
+
________________________________________________
0 0 0 0 0 0 1
1 1 1 0
0 0 1 0 0 0 0
1 1 1 1
0 1 0 0 X X X
1 X X X
0 1 1 0 X X X
1 X X X
1 0 0 0 0 0 1
1 0 0 1
1 0 1 0 0 0 0
1 0 0 0
1 1 0 0 1 0 1
1 1 0 1
1 1 1 0 1 0 0
1 1 0 0
A partir de esta tabla las funciones de activacin de los biestables sern las
siguientes:
d . q + .d .q q + q . q = D
1 1 3 1 3 1
.d q . q = D
2 3 2
.d q + q = D
3 2 3
102 El ect rni ca Di gi t al
14. 3. Confi guraci n mi croprogramada de grafos de est ado
El diseo de un grafo o mquina de estados puede ser abordado en dos formas
conceptualmente muy diferentes:
- segn el mtodo aplicado en los apartados anteriores, que trata cada variable de
estado por separado, reflejando las transiciones en condiciones de activacin de sus
biestables individuales forma microcableada;
- recogiendo el estado sobre un registro global y codificando los cambios de estado a
partir del estado anterior y del vector de entradas, mediante un codificador que
calcula el nuevo estado forma microprogramada.
nuevo Estado
E n t r a d a s
REGISTRO ( Estado )
C O D I F I C A D O R
Estado
CK
La configuracin ROM de los codificadores permite construirlos directamente desde
su tabla funcional, sin necesidad de obtener la expresin algebraica de sus funciones:
bastar trasladar la tabla de evolucin de los estados a la Matriz O del codificador;
podemos considerar que este codificador contiene microinstrucciones relativas al
clculo del estado siguiente, numeradas por el estado anterior y el vector de entrada.
La forma microprogramada conserva en forma explcita la estructura del grafo de
estados, pues el codificador expresa directamente la correspondencia entre la situacin
actual (estado y vector de entrada) y el nuevo estado; por ello, resulta fcil efectuar
modificaciones de esta mquina de estados, cambiando las correspondientes
microinstrucciones (la programacin) del codificador.
La programacin del codificador (es decir, su Matriz O) corresponde a la tabla de
evolucin de estados; en tal sentido, consideremos la configuracin microprogramada
de los ejercicios detallados en el apartado anterior de este mismo captulo:
- 14.2.4: su tabla de evolucin de estados se encuentra en la pgina 90, requiere 2
variables de estado y 2 de entrada: el codificador tendr 4 entradas y 2 salidas;
- 14.2.5: (pg. 91) 3 variables de estado: codificador de 3 entradas y 3 salidas;
- 14.2.6: (pg. 92) 3 variables estado y 1 entrada: codificador de 4 entradas y 3 salidas;
- 14.2.7: (pg. 93) 3 variables de estado: codificador de 3 entradas y 3 salidas;
- 14.2.8: (pg. 97) 3 variables estado y 2 entradas: codificador de 5 entradas y 2 salidas;
- 14.2.9: (pg. 98) 3 variables estado y 1 entrada: codificador de 4 entradas y 3 salidas.
14. Di seo secuenci al s ncrono 103
Respecto al vector de salida, en el caso de autmata de Moore un segundo
codificador puede calcular las salidas a partir del estado (en muchas ocasiones las salidas
sern variables de estado y no es necesario el codificador); podemos considerar que este
codificador contiene las microinstrucciones referidas a las salidas que corresponden a
cada estado:
REGISTRO ( Estado )
nuevo Estado
E n t r a d a s
C O D I F I C A D O R
C O D I F I C A D O R
E S T A D O
S a l i d a s
CK
En los autmatas de Mealy, como las salidas dependen del estado y de las entradas,
el mismo codificador puede calcular el nuevo estado y el vector de salidas:
nuevo Estado
E n t r a d a s
REGISTRO ( Estado )
C O D I F I C A D O R
Estado
Salidas
CK
En estas configuraciones microprogramadas el tamao de los codificadores
aumenta fuertemente con el nmero de sus variables de entrada: se duplica cada nueva
entrada (dependencia segn 2
m
); de ah el inters en reducir el nmero de variables de
estado (codificaciones de un solo uno resultan altamente desaconsejables) y, cuando
ello sea posible, utilizar tcnicas de multiplexado de las variables del vector de entrada
(suele suceder que no todas las entradas actan en todos los estados, de forma que el
nmero efectivo de entradas puede reducirse por multiplexado).
104 El ect rni ca Di gi t al
14. 4. Los grafos de est ado en VHDL
Como ejemplo de descripcin VHDL de grafos de estado se incluye la
correspondiente al control de llenado de un depsito con una mezcla de cuatro
lquidos diferentes (apartado 11.4, pginas 29-31); se detalla su diseo sncrono en las
dos formas de autmata de Mealy y autmata de Moore.
Un depsito se llena con una mezcla de cuatro lquidos, para lo cual dispone de
cuatro electrovlvulas A, B, C, D, y de cinco detectores de nivel n1, n2, n3, n4 y n5;
cuando el nivel del depsito desciende por debajo del mnimo n1 se produce un ciclo de
llenado: primero A hasta el nivel n2, luego B hasta n3, C hasta n4 y, finalmente, D n5.
Autmata de Mealy
n1
reposo llenado
n5
q=0 q=1
constant reposo : bit := '0';
constant llenado : bit := '1';
signal estado : bit ;
process
begin
wait until CK = '1';
if ( Reset = '1' ) then estado <= reposo;
else case estado is
when reposo =>
if (n1 = '0') then estado <= llenado; end if;
when llenado =>
if (n5 = '1') then estado <= reposo; end if;
end case;
end if;
end process;
(tngase en cuenta que proceso conserva el estado cuando no se indica lo contrario: por
ello no es necesario aadir else estado <= estado;)
--funciones de activacin de las salidas:
A <= '1' when (estado = llenado) and (n2='0') else '0';
B <= '1' when (estado = llenado) and (n2='1') and (n3 ='0') else '0';
C <= '1' when (estado = llenado) and (n3='1') and (n4 ='0') else '0';
D <= '1' when (estado = llenado) and (n4='1') else '0';
14. Di seo secuenci al s ncrono 105
Autmata de Moore
n1 n2
reposo lquido A
0000 0001 0010
0100 1000
lquido B
lquido C
lquido D
n4
n3
n5
constant reposo : bit_vector_(4 downto 1):="0000";
constant lquido_A : bit_vector_(4 downto 1):="0001";
constant lquido_B : bit_vector_(4 downto 1):="0010";
constant lquido_C : bit_vector_(4 downto 1):="0100";
constant lquido_C : bit_vector_(4 downto 1):="1000";
signal estado : bit_vector_(4 downto 1);
process
begin
wait until CK = '1';
if ( Reset = '1' ) then estado <= reposo;
else case estado is
when reposo => if (n1 = '0') then estado <= lquido_A; end if;
when lquido_A => if (n2 = '1') then estado <= lquido_B; end if;
when lquido_B => if (n3 = '1') then estado <= lquido_C; end if;
when lquido_C => if (n4 = '1') then estado <= lquido_D; end if;
when lquido_D => if (n5 = '1') then estado <= reposo; end if;
when others =>
end case;
end if;
end process;
--funciones de activacin de las salidas:
A <= '1' when estado = lquido_A else '0';
B <= '1' when estado = lquido_B else '0';
C <= '1' when estado = lquido_C else '0';
D <= '1' when estado = lquido_D else '0';
106 El ect rni ca Di gi t al
El ejemplo anterior solamente presenta una transicin desde cada estado y en cada
una de ellas acta solamente una variable de entrada; el siguiente grafo, referido a la
activacin gradual de alarma (apartado 14.2.4, pgina 88), incluye mayor nmero de
transiciones entre estados y dos variables de entrada involucradas en ellas.
Un sistema de deteccin de temperatura con cuatro niveles (00, 01, 10, 11); la
alarma debe activarse cuando se detecta 11 (temperatura muy alta), o si se detecta el
nivel 10 (alta) en dos ciclos seguidos de reloj y debe desaparecer cuando se detecta 00
(muy baja), o si se detecta el nivel 01 (baja) en dos ciclos de reloj.
inicial
entrando
alarma
11
00
10
0-
1-
0-
01
1-
00
01
11
10
saliendo
constant inicial : bit_vector_(2 downto 1):="00";
constant entrando : bit_vector_(2 downto 1):="01";
constant saliendo : bit_vector_(2 downto 1):="10";
constant alarma : bit_vector_(2 downto 1):="11";
signal estado : bit_vector_(2 downto 1);
process
begin
wait until CK = '1';
if ( Reset = '1' ) then estado <= reposo;
else case estado is
when inicial => if (entrada = "10") then estado <= entrando;
elsif (entrada = "11") then estado <= alarma; end if;
when entrando => if (entrada(2) = '1') then estado <= alarma;
elsif (entrada(2) = '0') then estado <= inicial; end if;
when saliendo => if (entrada(2) = '1') then estado <= alarma;
elsif (entrada(2) = '0') then estado <= inicial; end if;
when alarma => if (entrada = "00") then estado <= inicial;
elsif (entrada = "01") then estado <= saliendo; end if;
end case;
end process;
--funcin de activacin de la salida:
y <= '1' when (estado = alarma) or (estado = saliendo) else '0';
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
15 EL SINCRONISMO:
SIGNIFICADO, UTILIDAD Y REQUISITOS
15.1. Necesidad y conveniencia del sincronismo
15.2. Simultaneidad y estabilidad
15.3. Delimitacin de caminos
15.4. Separacin entre las dos fases del reloj
15.5. Precauciones relativas a la seal de sincronismo
Para abordar la complejidad resulta til la idea de estructura, en cuanto a
disposicin, orden y enlace de las partes para conformar un todo. El tiempo, aunque
inmaterial, es tambin una de las partes conformadoras de un sistema complejo y el
sincronismo confiere una organizacin estructural que simplifica el manejo del tiempo al
cuantificarlo y numerarlo en unidades sucesivas.
El sincronismo no es sino una particin aplicada al tiempo, una forma de utilizar la
estrategia de divide y vencers en relacin con una variable particularmente compleja por
su carcter continuo e impreciso cual es el tiempo.
El sincronismo es un estilo de diseo que simplifica la planificacin temporal (permite
referir su actividad funcional a unidades de tiempo discretas y numerables) y aporta alta
seguridad funcional; en grandes lneas, el sincronismo sirve para fijar el tiempo de cada bit
en el procesamiento serie, coordinar temporalmente las diversas partes de un sistema,
simplificar los clculos de tiempos funcionales de los componentes y, sobe todo, garantizar
la seguridad de funcionamiento del sistema.
Dada su importancia y utilidad, se requiere una comprensin clara del significado
conceptual del sincronismo, del mecanismo implcito en el mismo y de sus consecuencias
prcticas, tanto las prestaciones o ventajas que ofrece como los requisitos o condiciones que
exige. En tal sentido, el presente captulo trata de profundizar en:
- los procesos que se desarrollan dentro de cada unidad de tiempo,
- su relacin con los caminos entre biestables (la forma en que la divisin del tiempo
en unidades se refleja en la divisin del espacio en recorridos entre biestables)
y el anlisis de tiempos aplicado a dichos caminos,
- y los requisitos que hacen efectivo el sincronismo.
El sincronismo exige una neta separacin entre las dos fases de la seal de reloj como
idea clave para la correcta actuacin de los biestables sncronos, lo cual requiere el
adecuado diseo de dichos biestables (de forma que no puedan cambiar de estado en el
flanco no activo del reloj), el cumplimiento del tiempo de permanencia del dato en sus
entradas y el que la seal de reloj sea vertical, simultnea y fuerte (en cuanto a capacidad
de intensidad) y no se efecte ninguna clase de lgica sobre dicha seal.
108 El ect rni ca Di gi t al
15. 1. Necesi dad y conveni enci a del si ncroni smo
El sincronismo puede servir para:
- determinar el tiempo de actuacin que corresponde a cada dgito o bit,
- coordinar temporalmente los diversos componentes de un sistema,
- planificar su comportamiento dividindolo en acciones sucesivas,
- simplificar los clculos relativos a los tiempos funcionales de los biestables
- y, sobre todo, garantizar la seguridad de funcionamiento del sistema.
Hay problemas que por su propia naturaleza requieren un diseo sncrono, por
ejemplo, la transmisin y el procesamiento serie en los cuales se procesa un bit tras otro
(o una palabra tras otra), de forma que es preciso definir el intervalo temporal de duracin
de cada bit.
En sistemas con partes que trabajan a diferentes velocidades, el sincronismo permite
coordinar los diferentes tiempos de retraso entre unas y otras. En general, en sistemas
cuyos componentes presentan tiempos de propagacin diferentes, interesa un diseo
sncrono, con la frecuencia de reloj adaptada a la velocidad del elemento ms lento, para
evitar problemas con los tiempos de retraso de las seales y asegurar que dichos retrasos
no den lugar a transiciones de estado o salidas no deseadas.
De esta forma, el sincronismo facilita el diseo de un sistema complejo, al permitir la
planificacin temporal de la actividad del sistema referida a unidades de tiempo discretas
y ordenadas sucesivamente (numeradas). Sin duda es mucho ms fcil razonar respecto a
un parmetro cuantificado en intervalos discretos y numerados que frente a una variable
de rango continuo. La cuantificacin permite establecer correspondencias bien
delimitadas entre unidades de tiempo y acciones sucesivas y facilita mucho la adaptacin
entre partes con diferentes velocidades.
Asimismo, el sincronismo facilita los clculos relativos a los tiempos de propagacin
(tp) y dems tiempos funcionales de los componentes (ts, th, ) al establecer el concepto
de camino, como recorrido que han de efectuar las variables dentro de la unidad de
tiempo.
Pero, sobre todo, el sincronismo proporciona alta seguridad de funcionamiento:
todas las variables del sistema conmutarn a la vez (en los flancos activos del reloj) y, lo
que es ms importante, los valores que determinarn las transiciones sern los valores
booleanos presentes en el momento anterior al flanco activo del reloj.
No importa que existan retrasos desiguales en las diversas seales, ya que son los
valores consolidados previos a la transicin (y no los que se producen durante ella) los
que la controlan: cada unidad de tiempo es un intervalo dedicado a calcular el nuevo
estado. Los valores transitorios de algunas variables que puedan formarse durante la
transicin de un estado al siguiente no afectan al sistema, porque el nuevo estado no es
admitido hasta el siguiente flanco de reloj, cuando ya ha sido calculado por completo a lo
largo de la unidad de tiempo.
15. Si ncroni smo: si gni f i cado, ut i l i dad y requi si t os 109
En los sistemas combinacionales el tiempo interviene solamente como un retraso
entre entradas y salidas (tiempo de propagacin) que, en definitiva, limita la velocidad de
trabajo del sistema. En los sistemas secuenciales, adems de limitar la velocidad de
trabajo, tales retrasos pueden dar lugar a errores funcionales que afectan a la evolucin de
los estados (presentando un comportamiento errneo continuado, an a velocidades de
procesamiento admisibles).
Veamos un ejemplo sencillo: supongamos que un vector de entrada activa una
transicin por la cual el estado 1000 debe cambiar al estado 0111;
1000 0111
1111
supongamos tambin que la variable de estado inicial q4 es mucho ms lenta (pasa a
travs de mayor nmero de puertas) que las otras tres q3 q2 q1: se formar
transitoriamente el estado 1111 antes de completarse la transicin a 0111.
Pero, si el vector de entrada no afecta al estado 1111 (si para dicho vector el estado
1111 no debe cambiar), puede suceder que el estado transitorio 1111 se consolide como
nuevo estado (pues las condiciones booleanas que determinaban la transicin a 0111 -
estado 1000 y entrada - han desaparecido) y, a partir de ese momento, la evolucin del
sistema ser errnea.
Esto no suceder si el sistema es sncrono (y est bien diseado), pues el nuevo
estado 0111 se encontrar ya calculado previamente al momento de la transicin y ser
capturado en bloque, con el flanco activo de la seal de reloj.
Aparte de sus ventajas, el diseo sncrono resulta obligado en la prctica actual, dado
que los mdulos constitutivos de los dispositivos programables CPLD y FPGA son, de
por s, sncronos y tambin lo son los biestables habituales de las libreras de celdas para
el diseo de circuitos integrados de aplicacin especfica ASIC.
Actualmente, habida cuenta de la alta densidad de integracin de los bloques
digitales disponibles, de la diversidad y del bajo coste de los mismos, no suele haber
razones suficientes para configurar un sistema en forma asncrona: cada vez ms el
diseo digital es un diseo sncrono.
110 El ect rni ca Di gi t al
15. 2. Si mul t anei dad y est abi l i dad
Si mul t anei dad en l os cambi os
y est abi l i dad a l o l argo de l a uni dad de t i empo
El sincronismo se define por el hecho de que el conjunto de estados del sistema
cambie simultneamente, en coordinacin directa con la seal que separa las unidades
de tiempo, a la que denominamos reloj. Ahora bien, el cambio simultneo de variables
fsicas es mera entelequia si tal simultaneidad se entiende con total precisin; por ello,
ha de reinterpretarse como cambio a la vez con dos condiciones determinantes:
I) el nuevo estado a adoptar se encuentra preparado previamente al momento de
cambio
II) los valores de las variables correspondientes al nuevo estado no actan hasta el
siguiente momento de cambio (es decir, no provocan variaciones inmediatas sobre el
propio estado).
El intervalo de una unidad de tiempo se dedica a los tres procesos temporales
indicados en la parte I de la figura siguiente:
unidad de tiempo
adopcin
del estado
preparacin del estado siguiente anticipacin
del nuevo estado
permanencia
I)
II)
Habida cuenta de que ningn proceso fsico es instantneo, el cambio de estado que
supone el inicio de una nueva unidad de tiempo requiere un cierto intervalo temporal
(adopcin del estado), despus del cual el circuito prepara el estado siguiente (con la
correspondiente suma de tiempos de propagacin a travs de puertas booleanas
sucesivas) y dicho nuevo estado ha de estar preparado con suficiente antelacin para
asegurar que sea capturado correctamente en el cambio a la siguiente unidad de tiempo.
Por otro lado (parte II de la figura), tambin es necesario un intervalo de seguridad o
permanencia en que el estado preparado anteriormente no cambie, para que no afecte a
la propia adopcin de dicho estado. Esta permanencia garantiza la condicin II, es decir,
la estabilidad del nuevo estado a lo largo de su unidad de tiempo.
En un circuito digital, el estado (en una perspectiva de conjunto) se identifica con las
variables que intervienen en la conformacin de las salidas del circuito. Adems de las
propias variables internas de estado que constituyen la memoria y que estn contenidas
en biestables, tambin ser necesario ajustar las variables de entrada a las unidades de
tiempo.
15. Si ncroni smo: si gni f i cado, ut i l i dad y requi si t os 111
La conmutacin de una entrada a mitad de la unidad de tiempo puede dar lugar a que
sobre unas partes (biestables) del circuito acte con su nuevo valor y sobre otras con el
valor anterior, debido a los diferentes tiempos de propagacin de los conjuntos de puertas
que atraviesa.
El sincronismo de las entradas es necesario para asegurar la estabilidad de sus
valores a lo largo de cada unidad de tiempo y, con ello, garantizar la preparacin correcta
del nuevo estado; adems, en el caso de autmatas de Mealy, evita transitorios
intermedios en las salidas.
Tambin resulta conveniente sincronizar las variables de salida del circuito, pues
ello evita pequeos pulsos transitorios o fisuras (glitches) que pueden producirse al
inicio de las unidades de tiempo, al efectuarse el clculo de las salidas con el nuevo
estado. Ahora bien, la sincronizacin de las salidas supone retrasarlas una unidad de
tiempo de reloj, lo cual, en ocasiones, puede no interesar.
15. 3. Del i mi t aci n de cami nos
Un sistema sncrono se compone de biestables que almacenan las variables
(variables de estado, de entrada y, si el sincronismo es total, tambin las de salida) y de
partes combinacionales que conectan los biestables entre s.
Un circuito secuencial sncrono puede segmentarse en bloques o mdulos
conformados por una parte combinacional que recibe las entradas al bloque y calcula las
funciones booleanas que corresponden a la actividad del mismo y un registro o conjunto
de biestables que recogen las salidas de la parte combinacional y conectan con el bloque
o bloques siguientes; adems, las salidas del propio bloque pueden realimentarse como
entradas sobre el mismo.
De manera que cada parte combinacional se encuentra emparedada (a modo de
sndwich) entre dos registros o conjuntos de biestables, uno de ellos correspondiente al
bloque o bloques anteriores (entradas) y el otro, el propio del bloque (salidas).
Bloques
anteriores
B
i
e
s
t
a
b
l
e
s
B
i
e
s
t
a
b
l
e
s
Lgica
combinacional
Bloque
112 El ect rni ca Di gi t al
Incluso aquellos bloques que reciben entradas del exterior del sistema digital
responden a esta configuracin ya que, para sincronizarlas, las entradas se recibirn a
travs de biestables. Y lo mismo sucede con los bloques que emiten salidas del sistema
hacia el exterior pues dichas salidas o bien corresponden directamente a registros o
biestables del sistema o, caso de ser conformadas combinacionalmente, suelen incluir
biestables que las sincronizan con el reloj central.
La figura anterior puede representar tambin al sistema secuencial completo,
considerado como un nico bloque que recibe entradas sincronizadas, a travs de los
biestables de la izquierda de la figura y emite salidas sincronizadas por biestables de la
derecha (quedando, tambin a la derecha, otros biestables internos de estado que se
realimentan sobre la lgica combinacional).
Tomando como referencia esta estructura de bloques secuenciales (figura anterior),
entendemos por camino el recorrido de una seal desde una de las entradas del bloque
hasta la entrada de uno de los biestables del mismo; es decir, un camino es el recorrido
que llega a la entrada de un biestable desde la salida de uno de los biestables que inciden
sobre el primero.
Un camino va de biestable FF1 a biestable FF2 atravesando solamente la parte
combinacional del bloque al que corresponde el segundo de ellos FF2; obviamente,
pueden existir caminos que conectan la salida de un biestable FF2 con su entrada, caso
de darse realimentacin de dicho biestable sobre s mismo.
El sincronismo permite particionar (dividir en partes) el clculo de tiempos,
aplicndolo a caminos definidos entre biestables, y calcular sobre ellos la velocidad
mxima de reloj y las posibles violaciones de permanencia. La unidad de tiempo se
refleja sobre el recorrido de cada camino entre biestable y biestable.
I)
II)
T : perodo del reloj
t
p
t'
p (parte combinacional) t
s
t
h
El tiempo de propagacin de la seal por un camino corresponde a la suma de
tiempos de propagacin del primer biestable y de la parte combinacional que atraviesa el
camino, ms el tiempo de anticipacin que requiere el segundo biestable:
tp
(FF1) + tp
(parte combinacional) + ts
(FF2)
El tiempo de anticipacin (set-up) del biestable receptor interviene en esta suma ya
que es un tiempo adicional a los de propagacin, necesario para el correcto
funcionamiento del biestable.
15. Si ncroni smo: si gni f i cado, ut i l i dad y requi si t os 113
La duracin de una unidad de tiempo T = 1/fCK ha de ser suficiente para que todos
los caminos completen la propagacin de las seales a travs de ellos, es decir:
TCK > tp
(FF1) + tp
(parte combinacional) + ts
(FF2)
desigualdad que ha de cumplirse para todos los caminos existentes en el sistema digital.
Caso de no respetarse esta desigualdad se produce una violacin de la anticipacin
necesaria para el funcionamiento correcto del biestable FF2: violacin de set-up; es
decir, el nuevo dato a la entrada de dicho biestable no ha completado su preparacin con
el tiempo de anticipacin suficiente (previo al flanco activo del reloj) para asegurar que
ser capturado correctamente.
Los tiempos de propagacin de diversos caminos sern diferentes, ya que lo es la
parte combinacional que atraviesa cada camino. La frecuencia mxima de trabajo del
sistema digital vendr limitada por aquellos caminos cuyos tiempos de propagacin sean
mayores: caminos crticos. Resulta, pues, importante detectar los caminos crticos de un
sistema digital para tratar de reducir sus tiempos de propagacin, caso de que interese
aumentar la velocidad de trabajo.
El correcto funcionamiento de los biestables requiere, adems de respetar su tiempo
de anticipacin, el mantenimiento del dato durante un tiempo de permanencia (hold) th
posterior al flanco activo de reloj. El tiempo que tarda un dato en cambiar, en la entrada
de un biestable, ser el debido al retraso que sufre para recorrer el correspondiente
camino, o sea, la suma de tiempos de propagacin del biestable anterior y de la parte
combinacional que atraviesa el camino:
tp
(FF1) + tp
(parte combinacional).
Para garantizar que el dato se mantiene estable durante un intervalo no inferior al
tiempo de permanencia th ha de cumplirse que:
tp
(FF1) + tp
(parte combinacional) > th
(FF2).
Caso de que esta desigualdad no se respete, se produce una violacin de la permanencia
del dato necesaria para asegurar el correcto funcionamiento del biestable FF2: violacin
de hold; es decir, el dato no se mantiene en la entrada de dicho biestable suficiente
tiempo (despus del flanco del reloj) para asegurar que ser capturado correctamente.
En la primera desigualdad, referida a ts, deben aplicarse los valores mximos de los
tiempos de propagacin, mientras que en la segunda, relativa a ts, deben aplicarse
tiempos de propagacin mnimos:
TCK > tp,mx(FF1) + tp,mx
(parte combinacional) + ts,mx
(FF2)
th
(FF2) < tp,mn
(FF1) + t p,mn
(parte combinacional)
Estas dos desigualdades expresan las posibles violaciones de anticipacin (set-up) o
de permanencia (hola); con ellas, los analizadores de tiempos calculan los tiempos en
cada camino, seleccionan los caminos crticos y detectan las violaciones de anticipacin o
de permanencia.
Obviamente las violaciones de la anticipacin se resuelven directamente
aceptando una frecuencia de trabajo suficientemente baja:
114 El ect rni ca Di gi t al
fCK < 1/mx(tpc) siendo tpc = tp,mx(FF1) + tp,mx(combinacional) + ts,mx(FF2).
Cuando las violaciones de la anticipacin afectan solamente a unos pocos caminos
crticos cabe considerar la reduccin de sus tiempos de propagacin, mediante un
rediseo de la parte combinacional que les afecta: tp(parte combinacional).
En suma, la consecucin de altas velocidades de trabajo pasa por la reduccin de los
tiempos de los caminos crticos y para ello se dispone de tres sumandos: el tiempo de
propagacin del primer biestable, el de la parte combinacional y el tiempo de
anticipacin del segundo biestable; de estos tres, salvo en casos excepcionales de
biestables lentos, el mayor y ms maleable suele ser el tiempo de propagacin de la parte
combinacional.
Para resolver las violaciones de la permanencia bastar aumentar el tiempo de
propagacin de la parte combinacional, incluyendo en ella un par de inversores sucesivos
o, si la violacin es relativamente pequea, aumentando el tiempo de propagacin de
alguna puerta lgica intermedia, sustituyndola por otra anloga con mayor fan-out (una
puerta con mayor capacidad de carga contiene transistores de dimensiones mayores y
presenta una mayor carga capacitiva sobre la puerta anterior).
Ha de tenerse en cuenta que la resolucin de violaciones de la permanencia
aumenta los correspondientes tiempos de propagacin en los caminos afectados y, por
ello, puede disminuir la velocidad de trabajo alcanzable.
15. 4. Separaci n ent re l as dos fases del rel oj
El reloj de un sistema sncrono es una seal particular que organiza el manejo del
tiempo y que, por su propia especificidad, requiere un detenido anlisis conceptual.
La actividad del reloj no se refiere a niveles booleanos 0 y 1, sino a las transiciones
entre ambos. Esta actuacin por flanco se refleja en la sucesin de dos valores (0/1),
dando lugar a dos fases temporales (captura/salida) cuya funcin est en relacin directa
con la actuacin de los dos biestables que conforman uno sncrono (master/slave).
El primer biestable bsico efecta la captura de los datos, mientras que el segundo
biestable realiza la presentacin o salida de los mismos. Existen pues dos tiempos
diferentes en el funcionamiento de un sistema secuencial sncrono, intervalo de captura e
intervalo de salida, que coinciden con cada uno de los semiperodos del reloj.
fase de captura
master
q
q
D
E
q
q
D
E
Q
Q
D
CK
fase de salida
slave
15. Si ncroni smo: si gni f i cado, ut i l i dad y requi si t os 115
El reloj habilita sucesiva y selectivamente al amo (CK = 0) y al esclavo (CK = 1), lo
cual hace que el conjunto acte como si fuera habilitado con flancos de subida (cuando
CK pasa de 0 a 1).
De forma que la existencia de flancos activos en la seal de reloj se debe a la
sucesin de dos fases concordantes con los dos valores booleanos: la fase de captura o de
habilitacin del amo (CK = 0), en la cual el amo captura el dato de entrada y la fase de
salida o de habilitacin del esclavo (CK = 1), en que el esclavo presenta en la salida el
dato anteriormente capturado. Como el conjunto amo/esclavo slo puede capturar el
dato en la primera fase y presentarlo en la segunda, sus cambios de estado (del valor
booleano presente en su salida) solamente pueden producirse en las transiciones de la
fase de captura a la de salida (al inicio de la fase de salida el dato capturado pasa a ser el
valor de la salida).
El buen funcionamiento de un sistema secuencial sncrono se basa en una separacin
neta entre las fases de captura y de salida: Principio bsico de separacin de las fases de
reloj, de manera que la actuacin de ambos biestables internos (master, slave) se
encuentre netamente separada en el tiempo.
La correcta actuacin del reloj requiere la separacin entre sus dos fases, es decir,
la no coincidencia temporal de actuacin de las mismas y ello tanto para cada biestable
en particular como para los diversos biestables entre s; lo cual tiene implicaciones
directas en el diseo y utilizacin de los biestables y, tambin, sobre la seal de reloj.
Separacin de las fases de reloj en un biestable
Hemos de considerar los dos momentos en que las fases pueden coincidir, es decir,
tanto la transicin de la fase de captura a la de salida (flanco activo del reloj), como la
otra transicin que va de la fase de salida a la de captura (flanco no activo).
fase de captura
fase de salida
flanco no activo
Si la fase de captura se solapa con la de salida en el flanco no activo del reloj, puede
producirse un cambio de estado en dicho flanco, lo cual constituye un grave error:
durante el intervalo de habilitacin de ambos (solape de fases), el amo podra capturar un
nuevo valor y el esclavo podra recibirlo, dando lugar a un cambio de estado en el flanco
no activo del reloj.
Para evitarlo, el diseo de cada biestable ha de asegurar que la habilitacin del
esclavo (fase de salida) finaliza antes de iniciarse la habilitacin del amo (fase de
captura); ser necesario, en su caso, retrasar la habilitacin del amo, de forma que el
esclavo se bloquee previamente: sta es una condicin bsica en el diseo de la
configuracin amo/esclavo.
116 El ect rni ca Di gi t al
Por ello, en el diseo del conjunto amo/esclavo, el inversor necesario para
diferenciar las dos fases captura/salida (es decir, las dos habilitaciones) se incluye
siempre en la habilitacin del amo, a fin de retrasarla respecto a la del esclavo.
fase de captura
fase de salida
flanco activo
Si la fase de salida se solapa con la de captura, en el flanco activo del reloj, puede
producirse un doble cambio de estado en dicho flanco; es decir, en caso de que el
biestable tenga realimentacin sobre s mismo, puede suceder que el nuevo estado
traspasado a la salida del biestable d lugar a un segundo nuevo estado que sea capturado
y trasladado a la salida.
En tal caso, el primer nuevo estado asumido en el flanco activo del reloj resulta
operativo y afecta al biestable en ese mismo flanco, sin esperar al siguiente flanco del
reloj, lo cual es tambin un error funcional.
Un ejemplo sencillo puede clarificar este tipo de doble cambio de estado en un
mismo flanco activo de reloj: sea un biestable sncrono D, con su entrada conectada a su
salida negada,
CK
Q
Q
D
al llegar el flanco activo del reloj este biestable cambia de estado (por ejemplo, pasa de
valor 0 a 1); si la fase de captura se solapa con la de salida, es posible que la entrada
capture el nuevo estado de Q ( Q ha pasado de 1 a 0) y, una vez capturado, dicho valor
pasar directamente a la salida, ya que se encuentra en fase de salida (Q pasar
posteriormente de 1 a 0: no habr cambiado de valor, salvo un transitorio espurio).
Es precisamente el tiempo de permanencia del dato th
(hold) el que asegura que el
nuevo estado no afecta al biestable en su mismo flanco activo de reloj (sino en el
siguiente): el tiempo de permanencia entra en juego para impedir el solapamiento entre la
fase de captura de un nuevo dato y la de salida del dato anterior (la permanencia excluye
la presencia de un nuevo dato y, consiguientemente, la posibilidad de su captura).
En relacin con la onda de reloj, la separacin de fases requiere que los flancos de
dicha seal sean adecuadamente verticales; es decir, que el tiempo de transicin entre
los valores booleanos, en ambos flancos, sea reducido. Si la conmutacin entre los
valores booleanos es lenta pueden existir intervalos de indefinicin en que ambos
biestables, el amo y el esclavo, se encuentren habilitados a la vez.
15. Si ncroni smo: si gni f i cado, ut i l i dad y requi si t os 117
Separacin de las fases de reloj entre los diversos biestables
La condicin de no solapamiento debe cumplirse, no slo en cada biestable
respecto de s mismo, sino tambin respecto a todos los dems. De esta forma se garantiza
que el nuevo valor que presentan los biestables, tras el flanco activo del reloj, no afecta a
ningn biestable hasta que se produce el siguiente flanco activo.
Damos por supuesto que el diseo de los biestables asegura le separacin de fases en
cada uno de ellos en los flancos no activos del reloj y, por tanto, en dichos flancos no
puede producirse cambio del estado de los biestables.
Ahora bien, en los flancos activos del reloj puede suceder que un biestable presente
su nuevo valor de salida antes de finalizar la fase de captura del segundo biestable,
conectado (a travs de la correspondiente parte combinacional) al primero. Es decir,
podra solaparse la fase de captura del segundo biestable con la fase de salida del primero
de ellos; en tal caso, tambin puede producirse el doble cambio de estado comentado
anteriormente, o sea, la actuacin de la nueva salida de un biestable sobre otro de ellos en
el mismo flanco de reloj.
Al igual que en el caso de un simple biestable, el tiempo de permanencia del dato th
evita la efectividad de este solapamiento de fases entre diversos biestables, con tal, claro
est, de que la seal de reloj llegue simultneamente a todos los biestables. Si los retrasos
en la propagacin de la onda de reloj hacen que los flancos activos que actan sobre los
diversos biestables no sean simultneos, pueden existir intervalos de solapamiento entre
las fases de salida de uno de ellos y las de captura de otros que den lugar a errores
funcionales (dobles cambios de estado, o sea, que una transicin de estado produzca
efectos sobre la entrada de algn biestable en el mismo flanco en que sta se produce).
15. 5. Precauci ones rel at i vas a l a seal de si ncroni smo
El reloj es una seal especial que estar conectada a la entrada de sincronismo de
todos los biestables para que el cambio de estado de los mismos se produzca en el flanco
activo de dicha seal.
Conviene destacar la necesidad de no contaminacin de la propia seal de reloj: el
reloj debe ser enviado directamente a los biestables y, en ningn caso, debe condicionarse
la onda de reloj con habilitaciones, ni efectuar ninguna operacin booleana sobre la
misma: el reloj no debe atravesar ninguna puerta lgica (fuera de los biestables), sino que
debe ser comunicada por conexin directa a las entradas de reloj de todos los biestables.
118 El ect rni ca Di gi t al
Cualquier operacin o funcin lgica realizada sobre la seal de reloj pone en peligro
el concepto de sincronismo, al introducir la posibilidad de que se produzcan flancos
activos espurios sobre la entrada de reloj del biestable afectado, no simultneos con el
flanco activo propio del reloj.
E
CK
a la entrada
de reloj del biestable
inhibe habilita
flanco activo efectivo
(fuera de sincronismo)
En el caso de la figura, se pretende inhibir la actuacin de un biestable cuando E = 0
mediante una puerta "y" que impide el paso de la seal de reloj; ahora bien, si una vez
anulado el paso de un flanco activo E pasa a valor 1 durante el intervalo en que la seal
de reloj sigue en 1, se producir un flanco en la entrada de reloj del biestable coincidente
con el flanco de E y fuera de sincronismo respecto a la autntica seal de reloj CK.
La seal de reloj debe poseer como caractersticas propias las siguientes:
verticalidad, simultaneidad y fuerza. Estos tres requisitos indicados se derivan de la
necesidad de separacin neta entre las fases de captura y salida, de evitar solapes entre la
habilitacin de todos los primeros biestables bsicos del conjunto amo/esclavo (CK = 0)
y la habilitacin de los segundos biestables de dicho conjunto (CK = 1).
La onda de reloj debe ser sumamente vertical para que no puedan producirse solapes
en la habilitacin de los dos semibiestables (amo/esclavo) que conforman cada
biestable sncrono. La verticalidad de la seal de reloj asegura que los cambios booleanos
que se producen a partir del flanco activo del reloj no afecten al valor contenido en el
esclavo ya que el amo se encontrar inhibido; tambin asegura que la habilitacin amo
cuando recibe el otro flanco de reloj coincide con la inhibicin del esclavo.
Flancos suaves en la onda de reloj pueden dar lugar a intervalos temporales con
niveles booleanos imprecisos, en que ambos biestables (master/slave) se encuentren
habilitados a la vez, rompiendo la condicin de no solapamiento entre las fases.
El reloj debe llegar a la vez a todos los biestables para que su conmutacin sea
simultnea; ello exige que no exista ninguna puerta intermedia en las lneas que
comunican el reloj y que dichas lneas sean lo ms cortas posibles, a fin de evitar todo
tipo de retardo en la propagacin del reloj.
La falta de simultaneidad har que la fase de captura de algn biestable se solape
con la de salida de otro biestable previo y pueda producirse doble cambio de estado, o
sea, la actuacin de la nueva salida del primer biestable sobre el segundo en el mismo
flanco activo de reloj en que tal salida se produce.
15. Si ncroni smo: si gni f i cado, ut i l i dad y requi si t os 119
Ambas caractersticas de la seal de reloj, simultaneidad y verticalidad, requieren
una tercera complementaria: fuerza, es decir, capacidad para suministrar una intensidad
adecuada para que la transmisin del reloj sea muy rpida (habida cuenta de los efectos
capacitivos de las lneas de conexin) y para conmutar rpidamente las mltiples entradas
de reloj de los biestables (que, asimismo, suponen una carga capacitiva).
Capacidad de suministro de intensidad equivale a capacidad de carga sobre la seal
y se traduce en transmisin rpida a travs de lneas directas y conmutacin rpida, an
en el caso de un gran nmero de entradas conectadas sobre tal seal.
En los flancos de la seal de reloj se producen fenmenos de carga y descarga de las
capacidades equivalentes de las mltiples entradas a las que dicha seal est conectada. Si
su capacidad de carga, es decir, la intensidad que es capaz de suministrar no es
suficientemente alta se prolongar en gran medida el tiempo de conmutacin (flancos
suaves) y se generarn retardos diferentes en la comunicacin del reloj a las diversas
entradas de los biestables (prdida de la simultaneidad).
Para facilitar la transmisin de la seal de reloj existen celdas especficas que,
adems de proporcionar altos valores de intensidad de salida (buffers de intensidad),
ofrecen mltiples salidas que permiten conectar un fan-out elevado, asegurando tiempos
iguales en la propagacin del reloj a todas ellas; tales adaptadores mltiples de reloj
reciben el nombre de clock drivers (distribuidores de reloj).
Reloj de dos fases separadas
En general, en sistemas integrados no muy complejos realizados con circuitos
integrados estndar no es difcil evitar el solape entre las fases de captura y de salida si se
cumplen las recomendaciones relativas a los tiempos de los biestables y a la seal de
reloj; recomendaciones que afectan tanto al propio diseo del circuito como al de la placa
de circuito impreso que los conecta.
Ahora bien, en sistemas muy amplios (o en aquellos que requieren alta seguridad de
funcionamiento) y, sobre todo, en estructuras integradas complejas es frecuente la
utilizacin de un reloj de dos fases no solapadas 1 y 2, con un intervalo temporal de
separacin entre ambas; cada una de las fases corresponde a la habilitacin de uno de los
dos biestables bsicos de la configuracin amo/esclavo:
1 determina el intervalo de captura (habilitacin del primer biestable master)
y 2 coincide con el intervalo de salida (habilitacin del segundo biestable slave).
t
1
2
t
120 El ect rni ca Di gi t al
De este modo, pequeos retrasos en la propagacin de las seales o en los tiempos
de subida o bajada de ellas quedan cubiertos por el tiempo de separacin entre las dos
fases y no provocan errores funcionales, ya que la habilitacin de cada biestable
(master/slave) se produce en intervalos claramente distintos y separados en el tiempo.
El intervalo de separacin t ha de ser mayor que el tiempo de permanencia del
dato th de los diversos biestables sncronos sumado al mayor de los tiempos de
propagacin de las seales de reloj a ellos; si esto se cumple, la utilizacin de dos fases
separadas de reloj, 1 2, asegura un correcto funcionamiento del mismo. Tanto el tiempo
de mantenimiento, como pequeos retrasos en la propagacin de las seales de reloj o los
propios tiempos de subida o de bajada de ellas quedan cubiertos por el tiempo de
separacin entre las dos fases y no provocan errores funcionales.
El siguiente esquema circuital sirve para la generacin de dos fases de reloj
separadas a partir de una onda normal de reloj CK:
CK
1
2
t
El componente sealado como t produce simplemente un retraso en la seal y puede
hacerse mediante un simple circuito RC o bien mediante una serie de inversores
sucesivos (cada uno de los cuales retrasar la seal segn su tiempo de propagacin).
La separacin de fases en este circuito se produce porque, para dar salida 1, la puerta
"y" requiere dos unos y la puerta "o-negada" requiere dos ceros y, en ambos casos,
uno de ellos llega con un retraso t.
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
16 CONTAR PULSOS Y DIVIDIR FRECUENCIAS:
DISEO Y CONEXIN DE CONTADORES
16.1. Biestables T y su utilidad para conformar contadores
16.2. Diversidad de contadores
16.3. Diseo de contadores sncronos con biestables D
16.4. Los contadores y el sincronismo global
Un contador es un sistema secuencial conceptualmente muy simple: con cada pulso que
recibe pasa de un estado al siguiente (cuenta el nmero de pulsos). Un contador mdulo n
presenta n estados (de 0 a n-1) y su evolucin es circular: pasa de cada estado i al
siguiente i+1 y del ltimo n-1 al primero de ellos 0; su grafo de estados es un anillo, con
una sola transicin para cada estado (que le lleva al estado siguiente i+1).
A pesar de la sencillez de este comportamiento funcional, los contadores son
extraordinariamente tiles en el diseo de sistemas digitales de medida y de control. Por
ello, aunque su construccin puede realizarse aplicando la metodologa general de diseo
de los sistemas secuenciales sncronos (desarrollada en el captulo anterior), se dedica el
presente captulo al diseo y conexin de contadores.
El biestable tipo T, que cambia de estado (conmuta) con cada pulso que recibe si su
entrada T se encuentra a 1, resulta muy apropiado para la construccin de contadores. El
diseo de contadores sncronos con biestables tipo T consiste en establecer, en forma de
funciones booleanas, las situaciones en que cada biestable debe conmutar.
Es sencillo transferir a biestables D el diseo efectuado con los biestables T: basta una
transformacin booleana equivalente a una operacin "o-exclusiva" entre la funcin que
activa la entrada T y la salida Q del biestable.
Otro aspecto de inters es la conexin de contadores para conformar otros ms grandes,
as como la posibilidad de respetar la codificacin BCD para mantener la estructura de
nuestros nmeros decimales (base 10).
El prximo captulo se dedica a las aplicaciones de los contadores: contaje y control de
nmero de objetos o de sucesos; divisin de frecuencias; medida y multiplexado de tiempos;
medida y control de frecuencias; y el siguiente (captulo 18) trata de la modulacin de
anchura de pulsos, tcnica que tambin aprovecha muy eficazmente a los contadores.
La gran utilidad de los contadores se traduce en la disponibilidad de una amplia
variedad de los mismos, entre los que se cuentan los contadores descendentes (que
descuentan) y los contadores bidireccionales.
122 El ect rni ca Di gi t al
16. 1. Bi est abl es T y su ut i l i dad para conformar cont adores
Un contador mdulo n es un sistema secuencial de n estados, numerados
sucesivamente de 0 a n-1, cuyo grafo de estados es circular, pasando de un estado al
siguiente (i i+1) y del ltimo al primero de ellos (n-1 0); con cada pulso el
contador avanza un estado (pasa del estado i al estado i+1) y en el caso del ltimo estado
(n-1) pasa al primero (0).
0 1 2 3 4
9 8 7 6 5
Grafo de estados de un contador mdulo 10 (dcada)
Un contador mdulo n requiere m biestables, siendo m el menor exponente de base
2 necesario para alcanzar el nmero n:
si n es potencial entera de 2: n = 2
m
contador completo
si no lo es: 2
m-1
< n < 2
m
contador parcial.
En el primer caso (n potencia de 2) el contador recorre todos los estados posibles de
los m biestables, por lo cual lo denominaremos contador completo, mientras que en el
segundo caso existen estados no alcanzados por el contador: contador parcial.
En este captulo trataremos sobre el diseo de contadores sncronos, aquellos cuyos
biestables conmutan a la vez, en sincrona con el flanco activo en su entrada de pulsos.
Resulta ms sencillo disear contadores asncronos pero no es recomendable en modo
alguno su utilizacin en sistemas digitales complejos. El diseo digital actual se hace en
forma sncrona por las amplias ventajas que el sincronismo proporciona (principalmente
en cuanto a seguridad funcional).
Ahora bien, habida cuenta de que en diseos reducidos pueden resultar adecuados
los contadores asncronos y, sobre todo, que en los catlogos de las familias lgicas
integradas hay una amplia oferta de tales contadores no sncronos, se incluye un apndice
(A5 Contadores asncronos) referido a dichos contadores asncronos.
El diseo de contadores puede realizarse a travs de los mtodos generales de diseo
secuencial sncrono: a partir de la tabla de evolucin de los estados obtener las funciones
de activacin de los biestables. Ahora bien, los biestables tipo T facilitan en gran manera
dicho diseo, sin necesidad de construir la tabla de evolucin del estado, lo cual es
particularmente til en el caso de contadores de gran tamao; y, adems, la traslacin de
dicho diseo con biestables T a biestables tipo D se efecta a travs de una
transformacin booleana sencilla.
16. Cont adores 123
El biestable tipo T presenta dos entradas: la de reloj con la cual sincroniza su
funcionamiento, y la entrada T: el biestable cambia de estado con el flanco activo de la
onda de reloj siempre que T = 1 y permanece en su estado anterior cuando T = 0.
El biestable T puede construirse a partir del biestable D sncrono, anteponindole la
siguiente funcin de entrada que corresponde a su comportamiento: el biestable debe
cambiar de estado cuando T = 1 y debe permanecer en el mismo si T = 0.
Q T = .Q T + Q T. = D
Q
F F
T '
Ck
Q
D
Q
F F
D
Ck
Q
T
T
Al utilizar los biestables T para configurar contadores sncronos es necesario activar
la entrada T de cada biestable con las condiciones booleanas que determinan cuando debe
conmutar:
en el caso de contadores completos (mdulo 2
m
) la condicin de conmutacin de
cada biestable es que todos los anteriores se encuentren a 1 (basta observar la
secuencia de contaje y, en ella, el valor de los biestables anteriores al considerado en
el estado previo a su conmutacin); el primero de los biestables conmuta siempre;
en caso de contadores parciales (mdulo n < 2
m
) ser preciso aadir la condicin
de que todos los biestables pasen a 0 con el pulso de reloj siguiente al estado n-1.
De forma que, para construir un contador completo, las entradas T de los sucesivos
biestables deben recibir las siguientes funciones booleanas:
T
0
= 1
T
1
= q
0
T
2
= q
1
.q
0
T
3
= q
2
.q
1
.q
0
Contador mdulo 16
T
i
= q
i-1
.q
i-2
. ... .q
2
.q
1
.q
0
Estos trminos boleanos, que contienen el producto de todos los dgitos anteriores en
forma afirmada, se corresponden al contaje directo en binario: cuando se completan todos
los dgitos anteriores (se llenan a 1) es cuando se produce un arrastre de una unidad al
dgito siguiente.
124 El ect rni ca Di gi t al
Para convertir un contador completo en contador parcial mdulo n, basta incluir
en las anteriores expresiones de Ti las condiciones booleanas necesarias para que el
ltimo estado n-1 pase al estado inicial 0. Para ello puede utilizarse el trmino mnimo
reducido correspondiente a n-1, definido como el producto de aquellas variables de
estado cuyo valor en dicho estado es 1, y basta considerar el valor booleano de cada
biestable en el estado n-1 y el que tendra en el estado n:
aquellos biestables cuyo valor en el estado n sera 0 no requieren modificacin
alguna ya que a partir del estado n-1 asumirn directamente, como estado siguiente,
el valor booleano 0;
cuando un biestable vale 1 en el estado n-1 y su valor en el estado n contina siendo
1, es preciso forzar su conmutacin aadiendo en la activacin de su entrada T,
mediante suma booleana, el trmino mnimo reducido correspondiente a n-1;
en el caso de un biestable cuyo valor es 0 en n-1 y su valor en el estado n sera 1 hay
que evitar su conmutacin, condicionando la activacin de la entrada T, mediante
producto booleano, con el negado del trmino mnimo reducido de n-1.
Por ejemplo, para configurar un contador mdulo 10 (dcada):
- el ltimo estado es el 9 1001 y tras dicho estado debe alcanzarse el inicial 0000,
siendo as que en su evolucin normal el contador pasara al estado 10 1010;
- no es preciso ocuparse de los biestables primero q0 y tercero q2: su valor en 10 es 0;
- es necesario evitar la conmutacin del segundo q1 y obligar a conmutar al cuarto
q3;
- el trmino mnimo reducido correspondiente al ltimo estado (9 1001) es q3.q0.
Obsrvese que no es necesario utilizar el trmino mnimo completo, ya que el
trmino mnimo reducido vale 1 para dicho estado; tambin vale 1 para algunos estados
posteriores, pero tales estados no son alcanzables en el contaje. As, por ejemplo, q3.q0
vale 1 para el 9 y, tambin, para el 11 (1011), el 13 (1101) y el 15 (1111); pero el contaje
mdulo 10 pasa de 9 a 0, de forma que nunca se llega a los otros estados con valor 1.
impedir que conmute
ltimo estado n-1 9 1 0 0 1
siguiente estado n 10 1 0 1 0
estado inicial 0 0 0 0 0 0
- -
obligar a que conmute
q .q
3 0
Con lo cual, las condiciones de activacin de las entradas T son las siguientes:
T
0
= 1
0 3 0 3 0 1
.q q = ) .q (q . q = T
T
2
= q
1
.q
0
T
3
= q
2
.q
1
.q
0
+ q
3
.q
0
16. Cont adores 125
Conexin de contadores sncronos
Para conectar entre s contadores sncronos, a fin de configurar un contador ms
amplio, es necesario aadir a cada contador una entrada de habilitacin de contaje E y
una salida que se active cuando el contador alcanza el estado mximo mx; de esa forma
conectando la salida mx de un contador con la entrada E del siguiente, el segundo de los
contadores se incrementar en una unidad cuando el primero de ellos haya alcanzado el
valor mximo de su contaje.
La entrada de habilitacin E condicionar, a travs de producto booleano directo,
todas las funciones de activacin de las entradas Ti de los biestables; la salida mx
coincide con el trmino mnimo reducido correspondiente al ltimo estado n-1
multiplicado booleanamente por la habilitacin E:
T
0
= E
T
1
= E.q
3
.q
0
T
2
= E.q
1
.q
0
T
3
= E.q
2
.q
1
.q
0
+ E.q
3
.q
0
0 3
.q E.q = x m
contador sncrono mdulo 10 x 10 x 10
10
max
E
E
pulsos
E
10
max
Q3 Q2 Q1 Q0 Q7 Q6 Q5 Q4 Q11 Q10 Q9 Q8
E
10
max
El contador de la figura anterior es un contador mdulo 1000 (10 x 10 x 10) que
cuenta en BCD, ya que cada uno de los contadores que lo componen es mdulo 10
(contador dcada); sus salidas pueden representarse sobre visualizadores de 7 segmentos,
a travs de sendos conversores de BCD en 7 segmentos.
Borrado de contadores
Generalmente los contadores disponen de una entrada de borrado cuya activacin
lleva a sus biestables al estado 0. El borrado puede ser asncrono, a travs de la
correspondiente entrada Clr o Reset de borrado de cada uno de los biestables, o sncrono,
con una entrada B que acta sobre la funcin booleana de las entradas T de habilitacin
de los biestables; el borrado asncrono se produce inmediatamente despus de activar la
entrada de borrado Clr, mientras que el borrado sncrono B se ejecuta en el flanco activo
de reloj.
Para aadir al contador una entrada de borrado sncrono B es necesario inhibir la
conmutacin (para que ningn biestable que se encuentre a 0 pase a 1) y, tambin, es
preciso forzar la conmutacin de aquellos biestables que se encuentren en 1: para ello,
adems de anular, multiplicando por B, las funciones de activacin de las entradas Ti, es
necesario aadirles un trmino +B.q
i
para obligar a conmutar si qi = 1.
126 El ect rni ca Di gi t al
En el caso del contador mdulo 10 (dcada) las expresiones resultantes sern las
siguientes (borrado prioritario: se borra aunque la habilitacin sea nula E = 0):
T
0
= E.B + B.q
0
T
1
= E.B.q
3
.q
0
+ B.q
1
T
2
= E.B.q
1
.q
0
+ B.q
2
T
3
= E.B.q
2
.q
1
.q
0
+ E.B.q
3
.q
0
+ B.q
3
= E.B.q
2
.q
1
.q
0
+ E.q
3
.q
0
+ B.q
3
0 3
.q E.q = x m .
Cont ar pul sos y di vi di r f recuenci as
Contar pulsos puede parecer algo muy simple pero, en la prctica, tiene muchas
aplicaciones. Los contadores son sumamente tiles en la realizacin de sistemas digitales,
siendo el ncleo bsico de muchos de ellos, como es el caso de relojes, temporizadores,
frecuencmetros, dispositivos de sincronizacin, y de un amplio nmero de sistemas de
control y de medida. Pocos son los sistemas digitales en los que no se encuentren
presentes diversos contadores, realizando operaciones variadas.
Contar pulsos permite contar objetos o contar sucesos y como resultado del contaje
conocer el nmero de piezas producidas, el nmero de personas en un recinto, el nmero
de automviles que circulan por una carretera, el nmero de unidades de tiempo
transcurridas (relojes y cronmetros), Contar permite tambin controlar el nmero de
objetos a incluir en un recipiente, el nmero de unidades de tiempo de un proceso
(temporizadores), el nmero de marcas a recorrer (posicionamiento lineal o angular),
Asimismo, contar pulsos en una unidad de tiempo equivale a medir la frecuencia de
la seal y, con ella, la velocidad de motores (revoluciones por minuto), la velocidad de
bicicletas y automviles, el valor de una variable codificada en frecuencia,
Adems, los contadores permiten configurar controles de tipo todo/nada en que cada
perodo de tiempo resulta dividido en dos intervalos activo/inactivo. El resultado de este
control on/off es una modulacin de la anchura de pulsos (captulo 18) con aplicaciones
en control de potencia, conversin nmero-tensin (conversores digital-analgicos),
conversores tensin-tiempo y tensin-nmero (analgico-digitales), control de amplitud
de seales (potencimetros digitales),...
Un componente bsico de los procesadores en los sistemas digitales que actan bajo
programa (computadores, microprocesadores, etc.) es el contador central o contador de
programa, que seala la direccin de la instruccin a ejecutar y, una vez ejecutada la
misma, pasa a la siguiente instruccin. Este contador ha de disponer de la posibilidad de
carga paralelo a fin de poder efectuar saltos en el programa para atender a instrucciones
condicionales, a subrutinas y a interrupciones.
16. Cont adores 127
El contaje de pulsos se encuentra asociado directamente a la divisin de la frecuencia
de los mismos: los biestables de un contador completo (mdulo n potencia entera de 2)
proporcionan en sus salidas ondas digitales cuyas frecuencias son, respectivamente, la
mitad (1/2), la cuarta parte (1/4), la octava parte (1/8), (1/2
i
), de la frecuencia de los
pulsos de entrada.
CK
Q0
Q1
Q2
Q3
En el caso de un contador parcial (mdulo n, siendo n un nmero cualquiera),
tomando como salida la de su biestable de valor ms significativo, se obtiene la divisin
por n de la frecuencia de los pulsos que recibe, es decir, produce un pulso en su salida por
cada n pulsos en su entrada.
CK
Q0
Q1
Q2
Q3
1 2 3 4 5 6 7 8 9 10 11 11 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10
Ondas en las salidas de un contador mdulo 11
Al dividir una frecuencia por n (la frecuencia se hace ms lenta) su perodo queda
multiplicado por n (el perodo se hace ms largo); de esta forma, pueden obtenerse
seales de reloj ms lentas, con unidades de tiempo mayores. As es posible pasar de
unidades de tiempo muy precisas del orden del microsegundo, obtenidas mediante
osciladores con cristal de cuarzo, a tiempos de milisegundos o de segundos, por simple
agrupacin de n unidades a travs de la divisin de su frecuencia.
128 El ect rni ca Di gi t al
16. 2. Di versi dad de cont adores
16.2.1. Contadores descendentes
Contadores descendentes son aquellos que descuentan, es decir, pasan del estado i
al i-1 y, obviamente, del estado inferior 0 al n-1 (mdulo n).
La condicin de conmutacin de un biestable en un contador descendente
completo (mdulo n potencia entera de 2) consiste en que todos los anteriores se
encuentren a 0 (como puede comprobarse observando en la secuencia de descontaje el
valor de los biestables anteriores al considerado en el estado previo a su conmutacin):
T
i
= q
i-1
.q
i -2
. ... .q
2
.q
1
.q
0
Un contador descendente parcial (mdulo n que no sea potencia entera de 2) ha de
forzar la transicin desde el estado 0 al estado n-1; si el contador es completo desde el
estado 0000... se pasa directamente al 1111..., de forma que para alcanzar el estado n-1
bastar evitar la conmutacin de aquellos biestables cuyo valor en dicho estado sea 0.
El estado 0 (cero) viene identificado por la operacin "y" extendida a las negadas de
todas las salidas del contador, mientras que la situacin contraria (no cero) corresponde a
la operacin "o" aplicada a todas las salidas:
) q , q , q , ... , q , Nor(q = q . q . q . ... . q . q = z
0 1 2 2 - m 1 - m 0 1 2 2 - m 1 - m
0 1 2 2 - m 1 - m
q q q ... q q = z + + + + +
Si el biestable qi no tiene valor 1 en el estado n-1 ser preciso evitar que conmute a
partir del estado 0:
) q + q + ... + q + .(q q . q . q . ... . q . q = z . q . q . q . ... . q . q = T
i 1 + i 2 - n 1 - n 0 1 2 2 - i 1 - i 0 1 2 2 - i 1 - i i
Por ejemplo, en el caso de un contador mdulo 10 (dcada) el contaje descendente
ha de conducir del estado 0000 al 1001 (cuando, de por s, pasara al 1111); para ello, es
necesario evitar que, desde el estado 0, los biestables segundo q1
y tercero q2
conmuten.
Las funciones correspondientes al contaje descendente en mdulo 10 sern las siguientes:
z = q
3
.q
2
.q
1
.q
0
z = q
3
+ q
2
+ q
1
+ q
0
T
0
= E
T
1
= E.q
0
.z = E.q
0
.(q
3
+ q
2
+ q
1
)
T
2
= E.q
1
.q
0
.z = E.q
1
.q
0
.(q
3
+ q
2
)
T
3
= E.q
2
.q
1
.q
0
0 1 2 3
q . q . q . q E. = E.z = n m
Para la conexin sucesiva de contadores descendentes han de presentar la salida de
mnimo mn que se activar cuando el contador se encuentre a 0; dicha salida se
conectar a la entrada de habilitacin E del siguiente contador.
16. Cont adores 129
16.2.2. Contadores bidireccionales
Los contadores bidireccionales (contadores hacia arriba y hacia abajo: up/down
counter) pueden contar de 0 a n-1 y pueden tambin descontar de n-1 a 0, siendo
controlada dicha posibilidad mediante una entrada adicional C (up/down), cuyo valor 1
determina el contaje ascendente y su valor 0 impone el descendente; obviamente al
descontar el estado siguiente al 0 es el n-1. En tales contadores la salida para conexin de
contadores mx/mn ha de activarse cuando el contador se encuentra habilitado y alcanza
su mximo valor (n-1), caso de estar contando (up), o su valor mnimo (0), caso de
encontrarse descontando (down).
Las funciones booleanas de activacin de los biestables en un contador bidireccional
pueden obtenerse agrupando las funciones correspondientes al contaje ascendente y las
propias del contaje descendente, diferenciando ambas posibilidades mediante una entrada
de control C (/).
Q3 Q2 Q1 Q0
10
CK
Dcada
mx/mn
E
C
habilitacin
control /
En el caso de un contador mdulo 10 (dcada) tomando ambas funciones de contaje
ascendente (apartado 1 de este captulo) y de contaje descendente (16.2.1):
Contaje ascendente Contaje descendente
T
0
= E T
0
= E
T
1
= E.q
3
.q
0
T
1
= E.q
0
.(q
3
+ q
2
+ q
1
)
T
2
= E.q
1
.q
0
T
2
= E.q
1
.q
0
.(q
3
+ q
2
)
T
3
= E.q
2
.q
1
.q
0
+ E.q
3
.q
0
T
3
= E.q
2
.q
1
.q
0
0 3
.q E.q = x m
0 1 2 3
q . q . q . q E. = E.z = n m
y, agrupando las funciones correspondientes a ambos contajes, multiplicando
booleanamente por C las relativas al contaje ascendente y por su negado las que producen
el contaje descendente, resulta:
T
0
= E
T
1
= C.E.q
3
.q
0
+ C.E.q
0
.(q
3
+ q
2
+ q
1
)
T
2
= C.E.q
1
.q
0
+ C.E.q
1
.q
0
.(q
3
+ q
2
)
T
3
= C.E.(q
2
.q
1
.q
0
+ q
3
.q
0
) + C.E.q
2
.q
1
.q
0
0 1 2 3 0 3
q . q . q . q .E. C + .q C.E.q = n m / mx .
130 El ect rni ca Di gi t al
16.2.3. Contadores complejos. Contadores universales
Dada la utilidad que los contadores ofrecen para la realizacin de sistemas digitales
existe una amplia disponibilidad de tipos diferenciados dentro de las familias lgicas
integradas; algunos de ellos con prestaciones complejas como veremos a continuacin.
Existe un tipo de contadores para divisin de frecuencias (rate multipliers) que, a
partir de un nmero total de pulsos m que llegan a su entrada, permiten el paso de un
nmero n de ellos (n < m), programable en sus entradas de control, de forma que realizan
un cambio de frecuencia segn el factor n / m.
Asimismo, orientados a la divisin de frecuencias y a la temporizacin, existen
contadores descendentes (down) programables a travs de sus entradas paralelo (carga
sncrona) y dotados de una salida que se activa cuando el contador se encuentra a cero.
Conectando la salida indicadora de estado cero a la habilitacin de entradas paralelo se
obtiene un divisor de frecuencia por n+1: tras alcanzarse su valor mnimo (0) el contador
pasa al valor n programado en tales entradas. En cambio, cargando inicialmente el valor n
y activando con la salida indicadora de cero una entrada de inhibicin de contaje se
consigue un temporizador: el contador descuenta desde n hasta alcanzar el estado 0.
Existen integrados conteniendo varias dcadas, cuyas salidas son multiplexadas
sobre las mismas cuatro lneas BCD, de forma que presentan sucesivamente una a una las
cifras decimales. El mismo circuito integrado incluye el multiplexor y el correspondiente
contador de control del mismo, recibiendo la frecuencia deseada para el multiplexado a
travs de pulsos por una entrada de muestreo (SCAN) o mediante un simple condensador
exterior que determina la frecuencia de muestreo.
Un paso ms consiste en incluir un registro de retencin que reciba las cifras de los
contadores BCD, estando en este caso las salidas del registro multiplexadas sobre los
cuatro terminales de salida; ello permite utilizar directamente tal integrado en
aplicaciones ms complejas que el simple contaje, siendo muy apropiado para la
realizacin de frecuencmetros.
El desarrollo de esta lnea de creciente complejidad y potencia de clculo ha
culminado en el concepto de contador universal:
- un contador suficientemente amplio, generalmente de 6 dcadas, bidireccional, con
posibilidad de carga paralelo multiplexada (de forma que cada vez se almacena una de
las cifras BCD), con salidas indicadoras de que se encuentra en su valor mximo y en
su valor mnimo (0), junto con las correspondientes entradas de borrado e inhibicin;
- un registro de retencin conectado a la salida del contador, con salidas multiplexadas
cifra a cifra sobre cuatro terminales BCD y, a la vez, decodificadas en 7 segmentos
para atacar directamente a un visualizador;
- un segundo registro de retencin programable exteriormente en forma multiplexada
anloga a la del contador y cuyo contenido se compara aritmticamente con el del
contador de forma que una salida exterior indica la igualdad entre ambos;
16. Cont adores 131
- y el sistema de multiplexado necesario para la salida de las cifras del primer registro y
para la programacin del contador y del segundo registro; la velocidad de muestreo se
fija mediante un condensador exterior y 6 lneas individuales indican cul de las cifras
BCD se encuentra activa en cada momento.
Demultiplexor
Contador 6 Dcadas
Demultiplexor
Registro
Comparador
Registro
Cero
(mn)
Arrastre
(mx)
Entradas
Contador
Entradas
Registro
Multiplexor
Decodificador
BCD -> 7 segmentos
Salidas
BCD
Salidas
7 seg.
Ceros
no sign.
Habilitacin
Inhibicin
Borrado
Bidireccion.
Pulsos
Carga paral.
Barrido 6 cifras
n de
cifra
frec.
barrido
Habilit.
=
Contador universal de 6 cifras BCD
El anterior es un posible esquema de bloques de un contador universal; una
aplicacin inmediata de tales contadores es el diseo de frecuencmetros o
temporizadores para lo cual se requiere aadir muy poca circuitera adicional.
Por otra parte, existen contadores amplios de propsito particular entre los que
destacan los dedicados a relojes digitales que contienen toda la circuitera necesaria para
su configuracin como sistemas autnomos sin ms que aadir el visualizador, la
alimentacin de tensin y el cristal de cuarzo que genera la frecuencia inicial; tales
integrados incluyen, el sistema de programacin de la hora mediante simples pulsadores y
la funcin de despertador o alarma.
Se utilizan contadores anlogos de contaje horario (real time clock RTC) como
perifricos de microprocesadores (o de otros sistemas digitales complejos), a los cuales
pueden comunicar la hora mediante transmisin serie (utilizando muy pocas lneas para
tal comunicacin).
132 El ect rni ca Di gi t al
16. 3. Di seo de cont adores s ncronos con bi est abl es D
Para construir contadores con biestables sncronos tipo D, las funciones booleanas de
activacin de sus entradas Di no slo han de contener las condiciones en que el biestable
cambia de estado, sino tambin aquellas en que conserva el estado 1.
Tomando como referencia el diseo de contadores sncronos con biestables T, las
funciones Ti expresan las situaciones en las cuales el correspondiente biestable debe
conmutar y, en cambio, cuando Ti = 0 el biestable debe conservar el valor anterior; ello
nos permite escribir:
D
i
= q
i
. cuando debe conmutar + q
i
. cuando debe permanecer
= q
i
. T
i
+ q
i
. T
i
expresin que se corresponde con la forma de construir un biestable T a partir de un
biestable sncrono tipo D.
D'
Q
F F
D
CK
Q
T
D' = q . T + q . T
Por tanto, una forma sencilla de disear contadores con biestables tipo D, consiste en
construir las funciones Ti correspondientes al diseo con biestables T y, a partir de ellas,
aplicar la anterior transformacin a biestables D:
D
i
= q
i
. T
i
+ q
i
. T
i
.
Por ejemplo, sea un contador mdulo 12:
ltimo estado n-1
11 1 0 1 1
siguiente estado
n
12 1 1 0 0
estado inicial 0 0 0 0 0 0
- -
q .q .q
3 1 0
T
0
= E
T
1
= E.q
0
T
2
= E.q
1
.q
0
.(q
3
.q
1
.q
0
) = E.q
3
.q
1
.q
0
T
3
= E.q
2
.q
1
.q
0
+ E.q
3
.q
1
.q
0
= E.q
1
.q
0
.(q
3
+ q
2
)
16. Cont adores 133
quedando la activacin de las entradas Di en la forma que sigue.
D
0
= q
0
.E + q
0
.E = E.q
0
+ E.q
0
D
1
= q
1
.E.q
0
+ q
1
.(E + q
0
) = E.q
1
.q
0
+ q
1
.q
0
+ E.q
1
D
2
= q
2
.E.q
3
.q
1
.q
0
+ q
2
.(E + q
3
+ q
1
+ q
0
)
= E.q
3
.q
2
.q
1
.q
0
+ q
3
.q
2
+ q
2
.q
1
+ q
2
.q
0
+ E.q
2
D
3
= q
3
.E.q
1
.q
0
.(q
3
+ q
2
) + q
3
.(E + q
1
+ q
0
+ q
3
.q
2
)
= E.q
3
.q
2
.q
1
.q
0
+ q
3
.q
1
+ q
3
.q
0
+ E.q
3
max = E.q
3
.q
1
.q
0
En la funcin correspondiente a D2 puede prescindirse del trmino
2 3
.q q + ya que nunca
se alcanza dicho valor (corresponde a nmeros mayores de 11).
Para aadir una entrada de borrado sncrono B, basta con multiplicar por B las
expresiones de activacin de las entradas Di, de forma que cuando B = 1 el dato que
reciben los biestables sea 0.
D
0
= B.E.q
0
+ B.E.q
0
D
1
= B.E.q
1
.q
0
+ B.q
1
.q
0
+ B.E.q
1
2 0 2 1 2 0 1 2 3 2
.q E . B + q . .q B + q . .q B + .q .q q . q .E. B = D
D
3
= B.E.q
3
.q
2
.q
1
.q
0
+ B.q
3
.q
1
+ B.q
3
.q
0
+ B.E.q
3
En las expresiones anteriores el borrado B es prioritario (respecto a la habilitacin E); si
se quisiera dar prioridad a la habilitacin (es decir, que no se borre si no hay habilitacin)
ser necesario dejar sin multiplicar por B el trmino + E.q
i
, responsable de conservar el
valor del biestable en ausencia de habilitacin.
A veces los contadores no empiezan en valor 0, sino que su primer estado es un
nmero no nulo; la forma de disearlos es anloga, con el mismo tipo de razonamiento.
Consideremos, por ejemplo, un contador mdulo 6 que simule el funcionamiento de un
dado y, por tanto, cuente de 1 a 6 (en lugar de 0 a 5):
ltimo estado
6 1 1 0
siguiente estado
7 1 1 1
estado inicial
1 0 0 1
-
q .q
2 1
T
0
= E
T
1
= E.q
0
+ E.q
2
.q
1
T
2
= E.q
1
.q
0
+ E.q
2
.q
1
= E.q
1
.(q
2
+ q
0
)
134 El ect rni ca Di gi t al
D
0
= E.q
0
+ E.q
0
D
1
= E.q
1
.q
0
+ q
2
.q
1
.q
0
+ E.q
1
D
2
= E.q
2
.q
1
.q
0
+ q
2
.q
1
+ E.q
2
Si se utiliza como reloj de pulsos de dicho contador una onda de frecuencia
relativamente alta y se activa la habilitacin a travs de un pulsador manual, el nmero en
que se detenga al finalizar la habilitacin ser aleatorio y tendremos un dado
electrnico (anlogo al diseado en 14.2.6, pgina 92).
Un segundo ejemplo: en algunos juegos de rol se utilizan dados de 25 caras,
numeradas de 1 a 25; supongamos que deseamos disear un contador para simular
dichos dados (este contador mdulo 25, que cuente de 1 a 25, ha de contar en BCD para
poder representar el resultado en sendos visualizadores de 7 segmentos).
El contador tendr 6 biestables, los cuatro inferiores q3 q2 q1 q0 para representar las
unidades y los dos superiores q5 q4 para contar hasta 2; el contador formado por los
cuatro biestables inferiores q3 q2 q1 q0 ha de ser mdulo 10 (contando solamente de 0 a 9
para respetar las cifras decimales)
9 1 0 0 1
10 1 0 1 0
0 0 0 0 0
- -
q .q
3 0
y el contador global q5 q4 q3 q2 q1 q0 ha de ser mdulo 25, de 1 a 25:
25 0 1 0 1
26 0 1 1 0
1 0 0 0 1
q .q .q
5 2 0
0
0
0
1
1
0
- -
- en q0 hay que imponer la condicin de que no conmute en el estado 25;
- q1 no debe conmutar ni en el estado 9 (BCD) ni en el estado 25;
- a q2 es preciso obligarle a conmutar en el estado 25;
- a q3 hay que obligarle a conmutar en el estado 9 (BCD);
- q4 y q5 solamente deben contar cuando el contador q3 q2 q1 q0 est en 9 (BCD)
- y a q5 hay que obligarle a conmutar en el estado 25:
16. Cont adores 135
T
0
= E.(q
5
.q
2
.q
0
) = E.q
5
+ E.q
2
+ E.q
0
T
1
= E.q
0
.(q
3
.q
0
) .(q
5
.q
2
.q
0
) = E.q
3
.q
0
.(q
5
+ q
2
)
T
2
= E.q
1
.q
0
+ E.q
5
.q
2
.q
0
T
3
= E.q
2
.q
1
.q
0
+ E.q
3
.q
0
contador BCD (mdulo 10)
--------------------------------------
T
4
= E.q
3
.q
0
cuenta cuando el anterior est en 9
T
5
= E.q
3
.q
0
.q
4
+ E.q
5
.q
2
.q
0
D
0
= E.q
0
+ q
5
.q
2
.q
0
+ E.q
0
D
1
= E.q
5
.q
3
.q
1
.q
0
+ E.q
3
.q
2
.q
1
.q
0
+ q
3
.q
1
+ q
1
.q
0
+ E.q
1
D
2
= E.q
2
.q
1
.q
0
+ q
2
.q
0
+ q
5
.q
2
.q
1
+ E.q
2
D
3
= E.q
3
.q
2
.q
1
.q
0
+ q
3
.q
0
+ E.q
3
D
4
= E.q
4
.q
3
.q
0
+ q
4
.q
3
+ q
4
.q
0
+ E.q
4
D
5
= E.q
5
.q
4
.q
3
.q
0
+ q
5
.q
0
+ q
5
.q
3
.q
2
+ q
5
.q
4
.q
2
+ E.q
5
En la funcin correspondiente a D1 se ha prescindido del trmino + q
5
.q
2
.q
1
ya que
nunca se alcanza dicho valor (corresponde al nmero 26).
Este contador requiere 6 biestables y puede ser programado en un bloque PLS, cuyas
macroceldas dispongan de, al menos, 5 trminos producto; utiliza solamente una entrada
exterior E.
Contador descendente
Al pasar las funciones booleanas correspondientes al contaje descendente en mdulo
10 (apartado 16.2.1), a biestables sncronos tipo D, resulta:
T
0
= E D
0
= E.q
0
+ E.q
0
) q + q + .(q q E. = T
1 2 3 0 1
D
1
= E.q
3
.q
1
.q
0
+ E.q
2
.q
1
.q
0
+ q
1
.q
0
+ E.q
1
) q + .(q q . q E. = T
2 3 0 1 2
D
2
= E.q
3
.q
2
.q
1
.q
0
+ q
2
.q
1
+ q
2
.q
0
+ E.q
2
T
3
= E.q
2
.q
1
.q
0
D
3
= E.q
3
.q
2
.q
1
.q
0
+ q
3
.q
0
+ E.q
3
0 1 2 3
q . q . q . q E. = n m
0 1 2 3
q . q . q . q E. = n m
En la funcin correspondiente a D3 se ha prescindido de los trminos + q
3
.q
2
y + q
3
.q
1
ya que nunca se alcanzan dichos valores (12 y 10).
136 El ect rni ca Di gi t al
Contador bidireccional
En el caso del contador mdulo 10 (dcada) bidireccional (apartado 16.2.2):
T
0
= E
T
1
= C.E.q
3
.q
0
+ C.E.q
0
.(q
3
+ q
2
+ q
1
)
T
2
= C.E.q
1
.q
0
+ C.E.q
1
.q
0
.(q
3
+ q
2
)
T
3
= C.E.(q
2
.q
1
.q
0
+ q
3
.q
0
) + C.E.q
2
.q
1
.q
0
0 1 2 3 0 3
q . q . q . q .E. C + .q C.E.q = n m / mx .
construyendo este mismo contador con biestables sncronos tipo D, queda:
D
0
= E.q
0
+ E.q
0
D
1
= C.E.q
3
.q
1
.q
0
+ C.q
1
.q
0
+
+ C.E.q
3
.q
1
.q
0
+ C.E.q
2
.q
1
.q
0
+ C.q
1
.q
0
+ E.q
1
D
2
= C.E.q
2
.q
1
.q
0
+ C.q
2
.q
1
+ C.q
2
.q
0
+
+ C.E.q
3
.q
2
.q
1
.q
0
+ C.q
2
.q
1
+ C.q
2
.q
0
+ E.q
2
D
3
= C.E.q
3
.q
2
.q
1
.q
0
+ C.q
3
.q
0
+
+ C.E.q
3
.q
2
.q
1
.q
0
+ C.q
3
.q
0
+ E.q
3
0 1 2 3 0 3
q . q . q . q .E. C + .q C.E.q = n m / mx .
16. 4. Los cont adores y el si ncroni smo gl obal
Cont aj e de pul sos di f erent es del rel oj
El diseo de sistemas digitales complejos se realiza en forma sncrona; para ello,
adems de utilizar contadores sncronos, conviene prestar atencin a la forma de
incorporarlos dentro del diseo respetando el sincronismo global del sistema.
No basta con que los contadores sean sncronos, tambin hay que asegurar que su
conexin se hace en forma sncrona. Si, por ejemplo, un contador recibe en su entrada de
pulsos (entrada que acta por flancos) cualquier seal diferente del propio reloj del
sistema se pierde el sincronismo, ya que el contador cambiar su estado segn el flanco
activo de esa seal y no con referencia al flanco activo del reloj. Lo mismo sucede si se
producen borrados asncronos del contador (por entradas del tipo Clear o Reset).
16. Cont adores 137
El reloj central de un sistema secuencial sncrono es la nica seal que acta por
flancos; cualquier otra seal debe actuar por niveles booleanos 0 y 1. En tal sentido,
cuando se desea contar pulsos diferentes a los propios de la seal de reloj, ha de
transformarse el correspondiente flanco de los mismos (generalmente el de bajada, con el
cual finaliza el pulso) en un pequeo pulso coincidente con una unidad de tiempo del
reloj central y habilitar con dicho pulso el contaje del contador sncrono, cuyo reloj
seguir siendo el propio del sistema secuencial global.
El esquema necesario para detectar un flanco de bajada de un pulso cualesquiera (de
mayor duracin que la unidad de tiempo del reloj central) y transformar dicho flanco en
un nivel activo 1, cuya duracin coincida con una unidad de tiempo, es simple: dos
biestables sucesivos, formando un reducido registro de desplazamiento, que detecten la
secuencia 10 (en una bajada el valor anterior del pulso ser 1 y el siguiente valor del
pulso ser 0). [Vase este mismo diseo realizado como ejercicio en 14.2.3, pgina 86.]
Q
Q
D
CK
Q
Q
D
entrada
de
pulsos
CK
CK CK
E
Contador scrono
u. de t.
0
1
de habilitacin con entrada
Este tipo de esquema de deteccin de flanco (detectar un 1 seguido de un 0 en el
caso del flanco descendente o viceversa para flancos de subida) debe ser utilizado en
cualquier actuacin por flancos de una seal distinta de la del reloj central del sistema.
seal:
deteccin
de flancos
reloj
pulsos
El detector de flancos es un bloque secuencial que aparece con mucha frecuencia en
los diagramas de bloques correspondientes al diseo de sistemas digitales.
La seal resultante de la deteccin de flancos est sincronizada con el reloj del
sistema, tiene la misma frecuencia que la seal de pulsos (un pulso por cada uno de
entrada) pero su tiempo en 1 coincide con una unidad de tiempo del reloj: de esta
forma, solamente habilita una vez (coincidiendo con el reloj) por cada pulso que se desea
contar. Esta seal es del tipo de las ondas de temporizacin que trataremos a
continuacin.
138 El ect rni ca Di gi t al
Ondas de temporizacin
Las seal que se obtiene en la salida mx de un contador mdulo n, alimentado con
la frecuencia de reloj CK del sistema digital correspondiente, es una onda que se repite
cada n pulsos de reloj (frecuencia = fCK / n) y cuyo intervalo en valor 1 coincide con una
unidad de tiempo del reloj CK.
Por ejemplo, en el caso de un contador mdulo 11, dicha seal, con amplitud en 1 de
una unidad de tiempo de reloj, dividir la frecuencia del reloj por 11:
reloj
mx
1 2 3 4 5 6 7 8 9 10 11 11 11 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10
Este tipo de formas de onda pueden ser utilizadas como seales de temporizacin en
los sistemas sncronos: su actuacin solamente se har presente durante un pulso de reloj
y podr servir para condicionar transiciones de forma que se realicen despus de haber
transcurrido el intervalo de tiempo correspondiente a su perodo.
Asimismo, si deseamos temporizar en forma sncrona con alguna seal (bien sea una
entrada al circuito digital o una seal intermedia generada por el mismo) deber
configurarse una onda de temporizacin en forma anloga: intervalo activo igual a una
unidad de tiempo de reloj. Lo cual puede hacerse mediante un detector de flancos como el
detallado en la pgina anterior.
As, por ejemplo, en sistemas de control de la potencia suele interesar temporizar con
la seal de cruce por cero de la red, la cual se repite cada 10 ms (dos veces por perodo,
frecuencia de 50 Hz). Dicha seal puede obtenerse comparando la seal de la red
(reducida mediante un transformador), rectificada en doble onda, con una referencia baja;
posteriormente habr que utilizar un detector de flancos para que la seal resultante acte
una sola vez (est activa durante un solo pulso de reloj).
Dividiendo la anterior seal por 100 se tiene un perodo de 1 segundo; la salida mx
del contador mdulo 100 que produce tal divisin de frecuencia presenta un tiempo en
1 de una sola unidad de tiempo de reloj, de forma que puede ser utilizada como onda de
temporizacin.
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
17 APLICACIONES DE LOS CONTADORES
17.1. Contaje de objetos y sucesos
17.2. Divisin de frecuencias y ampliacin de perodos
17.3. Medida de tiempos
17.4. Multiplexado temporal: reparto de tiempos
17.5. Medida de frecuencias
Sin duda, los contadores son los bloques digitales ms utilizados, estando presentes en
la mayor parte de los sistemas digitales, habida cuenta del amplio nmero y diversidad de
sus aplicaciones.
En primer lugar, el propio contaje directo de unidades que, adems de la informacin
sobre nmero de objetos, personas o sucesos, permite el control de dicho nmero; por
ejemplo controlar el nmero de objetos a insertar en un envase, el nmero mximo de
personas presentes en un recinto, Y la divisin de frecuencias, consecuencia directa del
contaje de sus pulsos, que ofrece la posibilidad de disminuir la frecuencia de las seales y
aumentar la unidad temporal que sealan sus perodos.
El tiempo es una variable omnipresente que afecta a todo tipo de procesos y
actividades; adems, puede ser aprovechada indirectamente para medir otros tipos de
magnitudes. Los contadores son una buena herramienta para el manejo de la variable
tiempo, por cuanto que permiten medirla con precisin y permiten, tambin, definir
intervalos temporales precisos.
La forma de medir tiempos admite diversidad de opciones: desde la medida horaria
propia de los relojes o la medida con mayor resolucin y precisin que realizan los
cronmetros, hasta la determinacin de intervalos temporales precisos (temporizadores).
Asimismo, la medida de tiempos puede ser utilizada para medir velocidades (al recorrer
espacios conocidos) y distancias (conocida la velocidad con que se recorren).
La distribucin del tiempo en partes (multiplexado temporal) permite la generacin
repetitiva de secuencias, la seleccin de seales y su medida con un instrumento comn, la
realizacin de temporizaciones sucesivas, el control temporal de procesos, etc.
As como medir tiempos consiste en contar pulsos de frecuencia fija conocida durante el
intervalo a medir; el contaje recproco de pulsos durante un intervalo de tiempo fijo y
conocido da como resultado la medida de la frecuencia de los pulsos. Los frecuencmetros
configuran otro campo de las aplicaciones de los contadores, con utilidad para la
caracterizacin de seales, medida de velocidades de motores, medida de velocidad lineal de
vehculos, medida de magnitudes codificadas en frecuencia,
Se deja para el captulo siguiente la gran variedad de aplicaciones resultantes de la
modulacin de anchura de pulsos PWM.
140 El ect rni ca Di gi t al
17. 1. Cont aj e de obj et os y de sucesos
La cuenta directa de unidades (pulsos, objetos, sucesos,) encuentra aplicacin en
muchos procesos. Para ello se precisa que el fenmeno (evento) a contabilizar sea
primeramente transformado en seal elctrica, mediante el correspondiente sensor al que
seguir un circuito de conformacin de pulsos adecuado.
Por ejemplo, se pueden contar objetos hacindolos pasar en fila de a uno por una
cinta transportadora entre una clula fotoelctrica y un foco luminoso. La utilizacin de
fotodetectores y otros tipos de sensores de interposicin o de proximidad para detectar
presencia de objetos, personas o marcas es tan amplia que existe una gran diversidad en la
oferta de tales componentes.
Por otra parte, se da el caso de operaciones que pueden realizarse indirectamente por
contaje; por ejemplo, el control de posicin o de ngulo de algunos mecanismos
(cabezales de impresoras, posicionamiento de taladros, etc.) puede efectuarse mediante
regletas o discos graduados, con marcas que se cuentan a partir de un origen.
En tareas de control es muy til el contaje hasta un nmero predeterminado; lo cual
puede realizarse de dos formas:
- comparando el resultado del contaje de un contador normal (ascendente) con el
nmero deseado, a travs del correspondiente comparador;
- prefijando en un contador descendente (imponiendo mediante carga paralelo) el
nmero a contar y detectando cundo el contaje inverso llega a cero.
Contadores de este tipo pueden emplearse, por ejemplo, para contar el nmero de
objetos que entran en un recipiente o envase; al alcanzarse el nmero fijado, el pulso de
salida determina el fin de la serie de n objetos (inhibe el paso de ms objetos) y, para
dejar pasar una nueva serie de n objetos, un pulso de inicio debe borrar (poner a 0) el
contador.
detector
de objetos
CONTADOR
Clr
1 habilita
0 no pasa
inicio
n
En la figura anterior, la puerta "y" debe conformar el trmino mnimo reducido del
nmero n, es decir, debe recibir las salidas del contador que corresponden a dgitos con
valor 1 en dicho nmero n.
17. Apl i caci ones de l os cont adores 141
Consideremos un sencillo ejemplo de control de nmero de unidades: una cinta
transportadora mueve pequeos objetos de uno en uno; al final de ella, un operario
coloca una caja de embalaje y, al presionar un pedal, deben caer 100 objetos en la caja.
La figura siguiente muestra un posible circuito para controlar el movimiento de la cinta,
de forma que no se produce error aunque se presione el pedal mientras la cinta se mueve.
detector
de objetos
CONTADOR
mdulo 128
C
control
de la cinta
transportadora
V
cc
pedal
operario
La activacin del pedal borra el contador, pero durante dicho intervalo la cinta
transportadora permanece inmvil (entrada inferior de la puerta "o-negada");
posteriormente, al soltar el pedal, la cinta transportadora avanza y el detector de objetos
enva los correspondientes pulsos al contador, hasta alcanzar el nmero 100 (1100100)
que detiene el movimiento de la cinta (entrada superior de la puerta "o-negada") hasta
una nueva activacin del pedal.
Obsrvese que el borrado del contador se encuentra condicionado a que se encuentre
en el nmero 100, para evitar que activaciones errneas del pedal durante el proceso de
llenado de una caja incrementen el nmero de objetos en la misma.
Configuraciones anlogas pueden utilizarse para cualquier control de nmero de
unidades, por ejemplo, para dejar pasar n pulsos cada vez que se activa su entrada de
pulsos, para avanzar n posiciones (determinadas por marcas), etc.
De igual forma, para controlar un nmero mximo (de personas o de objetos
presentes en un recinto), supuesto que se disponga de sendos detectores de entrada y de
salida (que comunican un pulso por cada entrada o salida individual), puede emplearse un
contador bidireccional; el contador cuenta los pulsos provenientes del sensor de entradas
y descuenta los que recibe del sensor de salidas y, al alcanzar el nmero mximo, produce
una seal que avisa o cierra el paso (seal de alto: stop) hasta que se producen salidas que
sitan el contador por debajo del nmero mximo.
CONTADOR
ALTO
entra
n
sale
142 El ect rni ca Di gi t al
No es frecuente disponer de contadores con entradas de pulsos separadas para el
contaje y descontaje y, adems, un diseo sncrono no admite varias entradas de reloj; lo
habitual ser configurar el contador anterior en la forma que se representa en la figura
siguiente (en ella los pulsos de entradas y de salidas se han ajustado a una unidad de
tiempo del reloj mediante los correspondientes detectores de flanco).
ALTO
entra
n
sale
E
CK
El contador debe actuar cuando recibe un solo pulso de entrada o de salida y debe
hacerlo en sentido ascendente si el pulso es de entrada. La puerta "y", que produce la
seal de salida, corresponde al trmino mnimo reducido del nmero n (recibe los dgitos
con valor 1 en dicho nmero n).
17. 2. Di vi si n de frecuenci as y ampl i aci n de per odos
La divisin de frecuencia se utiliza para obtener frecuencias inferiores a partir de una
frecuencia patrn o, lo que es lo mismo, para obtener unidades de tiempo mltiplos del
perodo que corresponde a dicha frecuencia patrn.
Por ejemplo, en los relojes digitales de pulsera la unidad de tiempo bsica (un
segundo) suele obtenerse a partir de un cristal de cuarzo de 32,768 KHz, dividiendo dicha
frecuencia mediante un contador completo de 15 biestables (2
15
=32.678).
Se consigue mayor precisin con cristales de cuarzo de 1 MHz (generalmente
1000000 1 Hz, precisin del uno por milln, que corresponde a una desviacin inferior a
3 segundos al mes), cuya divisin a travs de 4 contadores dcada (mdulo 10)
proporciona el perodo de 0,01" bsico para cronmetros o relojes de alta precisin.
La unidad de tiempo puede obtenerse, tambin, a partir de la frecuencia de la red de
tensin alterna (220 voltios, 50 Hz): una vez reducida adecuadamente la tensin a travs
de un transformador, su rectificacin da lugar a pulsos iniciales de 50 Hz (rectificacin en
media onda) o de 100 Hz (en onda completa) que, por divisin de frecuencia, permiten
obtener perodos de un segundo o de una dcima, segn interese.
De igual modo se pueden definir unidades de tiempo diferentes para intervalos de
medida, control de procesos, etc.; por ejemplo, los frecuencmetros suelen utilizar un
intervalo de 6" o 10" como tiempo de medida e intervalo de visualizacin de la misma.
Asimismo se utilizan divisores de frecuencia en aplicaciones de sincronismo, adaptacin
a la velocidad de trabajo de dispositivos ms lentos, transmisin de datos, etc.
17. Apl i caci ones de l os cont adores 143
Los mdulos de comunicacin digital serie (comunicacin con perifricos o entre
sistemas informticos) permiten seleccionar la velocidad de transmisin; para ello
disponen de un amplio divisor de frecuencia a partir de un oscilador inicial que suele
emplear un cristal de 1,8432 MHz. Dicha frecuencia dividida por 48 (3 x 16) da lugar a
38,4 KHz y sucesivas divisiones por 2 generan las frecuencias tpicas de transmisin de
datos: 19.200, 9.600, 4.800, 2.400, 1.220, 600, 300, 150 baudios (bits por segundo).
Los osciladores de cristal de cuarzo proporcionan seales digitales con frecuencias
muy precisas, pero las frecuencias de vibracin de los cristales de cuarzo son
relativamente elevadas; no se utilizan cristales por debajo de 10 KHz y los ms habituales
y de mayor precisin se sitan en el rango de los megaciclos.
La forma de obtener osciladores de precisin para frecuencias inferiores al MHz
consiste en dividir la frecuencia superior de un oscilador de cristal de cuarzo; la divisin
de frecuencia se realiza mediante un contador mdulo n, tomando la salida del biestable
que corresponde al bit ms significativo del contador o la salida mx del mismo.
Si la seal se toma de la salida mx del contador (o bien se utiliza un detector de
flancos) se obtiene una onda de temporizacin con el perodo sealado y con tiempo en
1 igual a una unidad de tiempo de reloj; esta onda de temporizacin permite habilitar
cualquier cambio o transicin en forma sncrona y solamente durante un pulso de reloj.
Cambio de escala en el nmero de pulsos
Un contador mdulo n configura un divisor de escala por n que genera un pulso por
cada n pulsos recibidos en su entrada; este pulso se obtiene en la salida del ltimo
biestable (el ms significativo) del contador (o en su salida mx), la cual proporciona un
pulso por cada vuelta del contador (por cada n pulsos).
Un caso particular de divisin de frecuencia, representado a continuacin, es un
divisor de escala que deja pasar precisamente el n-simo de los pulsos recibidos en su
entrada; el circuito de la figura de cada 10 pulsos que recibe permite el paso al dcimo de
ellos (para lo cual la puerta "y" de salida del circuito es habilitada cuando el contador ha
detectado el paso de 9 pulsos: el siguiente pulso pasa a travs de ella).
q3 q2 q1 q0
pulsos
10
pulso
9 = 1001
Dcada
144 El ect rni ca Di gi t al
La posibilidad inversa en el cambio de escalas se refiere a multiplicar el nmero de
pulsos que se reciben por un factor n, lo cual puede hacerse mediante un contador que, al
recibir cada pulso, permita el paso de n pulsos de frecuencia superior. La siguiente figura
representa un sistema que multiplica por 10 el nmero de pulsos que le llegan.
10 = 1010
q3 q2 q1 q0
(frec. alta)
Contador
pulsos X 10
Clr
pulsos
E
oscilador
auxiliar
El pulso de entrada borra el contador y, al finalizar dicho pulso, permite que el
oscilador auxiliar se active y proporcione pulsos hasta que se alcanza el nmero 10, cuyo
trmino mnimo reducido se utiliza para bloquear de nuevo al oscilador; durante el
borrado del contador el oscilador se bloquea (mediante el inversor) para impedir que
genere pulsos y no sean contados. La frecuencia de los pulsos de salida (oscilador
auxiliar) ha de ser adecuadamente alta para que puedan producirse 10 pulsos en el
intervalo entre cada pulso de entrada y el siguiente.
17. 3. Medi da de t i empos
A partir de un generador de pulsos de frecuencia fija y muy precisa, cuyo perodo
sea mucho menor que los intervalos temporales a medir, la medida de tiempos se reducir
a contar el nmero de pulsos en cada intervalo; dicha medida quedar expresada en
unidades equivalentes al perodo de los pulsos.
Como generador de pulsos de frecuencia precisa suele utilizarse un oscilador con
cristal de cuarzo o la propia seal de la red de tensin alterna (50 Hz).
Consideraremos, a continuacin, diversas utilidades relativas a la medida de tiempos:
- la medida del tiempo horario (horas, minutos, segundos): relojes digitales,
- la medida de intervalos con precisin y resolucin: cronmetros,
- la delimitacin de intervalos temporales precisos: temporizadores
17. Apl i caci ones de l os cont adores 145
17.3.1. Relojes digitales
El caso ms general de medida de tiempos corresponde a los relojes digitales (reloj
horario en horas, minutos y segundos) cuyo esquema de bloques puede ser el siguiente:
OSCILADOR
1 MHz
CONTADOR CONTADOR
1 DCADA
CONTADOR
MOD 6x10
CONTADOR
MOD 12 *
CONTADOR
MOD 6x10
* contador modificado 1-12
1s 0,1s 1s 1m 1h
BCD - 7seg. BCD - 7seg. BCD - 7seg.
conteo rpido
5 DCADAS
Un contador adicional mdulo 7 permite indicar los das de la semana y un nuevo
contador hasta 31 sealar el da del mes; al cual seguir un contador mdulo 12 para
obtener el nmero del mes y la correspondiente lgica de ajuste para los meses de 30 y de
31 das (y los 28/29 das de febrero).
La puesta en hora de este reloj suele realizarse llevando directamente la seal rpida
de 0,1 segundos, mediante pulsadores apropiados, al contador de minutos y al contador de
horas, hasta que en cada uno de ellos se contabilice el nmero deseado.
Es sencillo dotar a este reloj de alarma o despertador mediante un contador
duplicado de horas y minutos en el que se fija, por contaje directo con la seal de 0,1 s,
la hora y el minuto en el que debe sonar la alarma; un comparador entre ambos
contadores (horas y minutos) activa, con su salida de igualdad, un pequeo zumbador (en
cuyo caso la alarma sonar durante 1 minuto).
OSCILADOR
1 MHz
CONTADOR
5 DCADAS
CONTADOR
1 DCADA
CONTADOR
MOD 6x10
1s 0,1s 1s 1m
conteo rpido
CONTADOR
MOD 12 *
CONTADOR
MOD 6x10
1h
CONTADOR
MOD 12 *
CONTADOR
MOD 6x10
COMPA-
RADOR
COMPA-
RADOR
= =
En el captulo anterior se coment la disponibilidad de circuitos integrados
especficos para relojes con toda la circuitera necesaria para su configuracin, sin ms
que aadir el visualizador y el cristal de cuarzo; as como contadores horarios perifricos
de microprocesadores a los cuales comunican la hora mediante transmisin serie.
146 El ect rni ca Di gi t al
17.3.2. Cronmetros
Otra forma de medida de tiempo es la realizada por los cronmetros que permiten
medir con muy alta precisin el tiempo transcurrido entre dos sucesos; su actuacin viene
definida por un pulso de comienzo y otro de final de medida, los cuales abren y cierran,
respectivamente, la habilitacin de un contador, previamente borrado, que recibe en su
entrada de reloj pulsos de frecuencia fija y muy precisa.
CONVERSOR BCD - 7 seg.
CONTADOR (Dcadas)
E
Clr
FF
Frecuencia
patrn
pulso
de inicio
pulso final
S
R
Q
inicializacin
Con este esquema funcional es posible realizar medidas de tiempo sumamente
precisas sin ms que disponer de la frecuencia patrn adecuada (cristal de cuarzo).
Un cronmetro permite conseguir una extraordinaria precisin en la medida de
intervalos relativos a un determinado fenmeno fsico, realizando una transformacin de
las condiciones fsicas que definen sus instantes inicial y final en pulsos elctricos; por
ejemplo, el paso de una bala entre dos detectores fotoelctricos permite medir el tiempo
en que recorre tal distancia.
Tal medida de intervalos temporales es aplicable indirectamente a la medida de otras
magnitudes fsicas tales como velocidad de vehculos y proyectiles (midiendo el tiempo
empleado en recorrer una distancia prefijada), distancia (midiendo el tiempo que tarda en
recorrerla una seal de velocidad conocida con precisin), volumen de llenado de
lquidos a travs de una tubera (conocido su caudal), etc. El radar y el sonar calculan la
distancia a que se encuentran los objetos detectados a partir de la medida del tiempo que
tarda en volver a ellos la seal emitida, tras ser reflejada por dichos objetos.
17. Apl i caci ones de l os cont adores 147
17.3.3. Temporizadores
Otra medida particular de tiempos es la temporizacin, en la cual se establece el
tiempo que debe durar un proceso, produciendo un pulso cuya duracin coincida con el
tiempo prefijado; dicho pulso determina el intervalo de activacin del proceso, al finalizar
el cual se produce su desconexin o desactivacin o bien se genera una seal de alarma
acstica o visual.
Una temporizacin no es sino un monostable de alta precisin, la cual se consigue a
partir de una frecuencia patrn muy precisa, multiplicando su perodo por n mediante el
correspondiente contador.
Temporizaciones, con diferentes grados de precisin, se utilizan en todo tipo de
actividades, desde el control del tiempo de encendido de la iluminacin de las escaleras
comunitarias, hasta la apertura del objetivo de las mquinas fotogrficas, pasando por la
programacin de tiempos en microondas o en hornos de cocina, y por los ciclos de
funcionamiento de lavadoras y lavavajillas, por el control de luces de los semforos, etc.,
que no son sino un conjunto de temporizaciones sucesivas.
En general, sistemas de temporizacin estn presentes en el control de los procesos
industriales de todo tipo, pues ser preciso establecer en ellos los diversos tiempos de
duracin de cada fase o etapa.
La temporizacin puede ser por contaje ascendente, desde cero hasta el nmero
prefijado, en forma anloga al sistema de alarma descrito para un reloj digital; sobre un
registro o contador auxiliar se programa la duracin del intervalo a temporizar y el final
del mismo ser detectado por comparacin entre el contador activo y el registro
programado.
COMPARADOR
CONTADOR
B
Frecuencia
patrn borrado
REGISTRO
=
FF
disparo
duracin del pulso:
n de unidades de tiempo
S
R
Q
unidad
de
tiempo
Q
PULSO t
148 El ect rni ca Di gi t al
Otra posibilidad consiste en utilizar un contador bidireccional (up/down), en el cual
se programa inicialmente (mediante carga en paralelo o por contaje rpido ascendente), el
tiempo de temporizacin deseado. Durante la temporizacin el contador va descontando
las unidades de tiempo que transcurren, de forma que el contenido del contador muestra
en cada momento el tiempo que falta para completarla; la llegada del contador a cero
seala el final de la temporizacin.
CONTADOR
Frecuencia
patrn
hacia abajo: "down"
FF
disparo
duracin del pulso:
n de unidades de tiempo
S
R
Q
unidad
de
tiempo
Q
PULSO t
L
contador = 0
En el contador anterior, la entrada L (load) determina la carga en paralelo del
nmero presente en las entradas del mismo; a partir de ah, el contador descuenta hasta
llegar a 0.
La figura de la pgina siguiente detalla un ejemplo de temporizador con una
capacidad mxima de 99 minutos, una resolucin de 1 segundo y programacin por
contaje rpido ascendente con pulsos de 0,1 s.
Mientras se mantiene activado el pulsador de programacin el contador cuenta
hacia arriba (up) a una velocidad de 10 pulsos por segundo que permite interrumpir el
contaje en el nmero que se desea prefijar. Un segundo pulsador determina el inicio de la
temporizacin al situar el biestable JK a 1; durante la temporizacin el contador
descuenta segundo a segundo hasta llegar a cero, en tal momento la puerta "o-negada"
(Nor) que recibe todas las salidas del contador borra el biestable JK, dando por finalizada
la temporizacin.
La frecuencia patrn ha sido tomada de la semionda de 50 Hz de la red de tensin
alterna, rectificada y limitada en amplitud mediante un zener de 5 V, para obtener pulsos
positivos cuyos flancos se conforman mediante un inversor con entrada Schmitt; esta
frecuencia acta como reloj general del sistema y, adems, dividida por 5 genera una
onda de temporizacin de 0,1" para la programacin del temporizador mientras que una
segunda divisin por 10 produce el perodo base de la temporizacin (1").
17. Apl i caci ones de l os cont adores 149
CONTADOR
DCADA
CONTADOR
DCADA
CONTADOR
MOD. 6
CONTADOR
DCADA
BCD-7 seg. BCD-7 seg. BCD-7 seg. BCD-7 seg.
+Vcc
pulsador
de
programacin
CONTADOR
DCADA
CONTADOR
MOD. 5
1 seg
0,1 s
red
5
CK
0Hz
FF
J
K
Q
intervalo
activo
inicio
de la
temporizacin
+Vcc
fin de la temporizacin
5V
CK
Otro ejemplo de temporizador: Las lmparas de una escalera deben encenderse
cada vez que se pulsa un interruptor P y mantenerse encendidas durante un intervalo de
tiempo a programar mediante un conmutador BCD entre 10'' y 90'' (en mltiplos de
10''); durante los 10'' siguientes las lmparas deben apagarse y encenderse 5 veces, con
intervalos de 1''.
Un posible diagrama de bloques del correspondiente circuito de control puede ser el
representado en la figura de la pgina siguiente: se utilizan dos contadores sucesivos, el
primero de ellos tiene un ciclo de 10" que es la unidad de tiempo de contaje del segundo;
la salida de ste se compara con el nmero n fijado por el conmutador BCD, de forma
que la seal de salida tendr valor 1 durante un nmero de estados igual a n (es decir,
durante n x 10").
150 El ect rni ca Di gi t al
q3 q2 q1 q0
16
B
P
q3 q2 q1 q0
10
B
E mx
comparador
E
conmutador BCD
=
<
>
CK 1"
encendido
lmparas
n
Durante el contaje del segundo contador de 0 a n-1, las lmparas permanecen
encendidas: cuando dicho contador llega a n, deja pasar la intermitencia producida por
la primera salida del primer contador (1" a 0 y 1" a 1) y al pasar a n+1 se deshabilitan los
contadores, hasta un nuevo borrado de los mismos con el pulsador P.
17. 4. Mul t i pl exado t emporal : repart o de t i empos
Generador de palabras digitales y de secuencias de seales
Un multiplexor digital puede ser utilizado como generador de formas de onda
digitales o generador de palabras; conectando sus entradas de control a las salidas de un
contador, ste determina un muestreo sucesivo de los valores booleanos impuestos en las
n lneas de entrada, dando lugar a la correspondiente onda repetitiva.
q2 q1 q0
Mul
ti
ple
xor
0
1
1
0
1
0
0
1
C
Contador mod. 8
reloj: frecuencia de
barrido
B
A
Anlogamente, si se sustituye el multiplexor por un pequeo codificador ROM, se
obtiene una secuencia repetitiva de los vectores de salida programados en dicho bloque,
es decir, una secuencia de seales sincronizadas con el reloj del contador; lo cual puede
ser til para el control de maniobras repetitivas como, por ejemplo, el control de motores
paso a paso o el control de mquinas herramientas (el codificador o memoria ROM
sustituye en este caso a las antiguas cintas perforadas de programacin).
17. Apl i caci ones de l os cont adores 151
Multiplexado de seales analgicas
Un conjunto de n puertas de transmisin CMOS, conectadas a una misma lnea de
salida y controladas por un decodificador que active una sola de dichas puertas,
constituye un multiplexor analgico que permite seleccionar una de entre n seales de
entrada. El mismo multiplexor utilizado en direccin opuesta (1 entrada hacia n salidas)
se convierte en demultiplexor analgico habida cuenta el carcter bidireccional que
presentan las puertas de transmisin.
Conectando las entradas de control de un multiplexor analgico a un contador se
realizar el muestreo sucesivo y cclico de las n seales de entrada; la frecuencia del
muestreo ser la de los pulsos que reciba el contador.
El muestreo de seales analgicas puede ser aprovechado para medir dichas seales
con un mismo instrumento o circuito de medida (conversor analgico/digital). Resulta as
una configuracin tpica de los sistemas de adquisicin de datos para medir o controlar
peridicamente diversas magnitudes fsicas: el transductor correspondiente las transforma
en tensiones y el multiplexado de ellas permite tomar sus valores con un solo conversor
analgico-digital.
q2 q1 q0
Mux.
anal-
gico
seal 0
seal 1
seal 2
seal 3
seal 4
seal 5
seal 6
seal 7
C
Contador mod. 8
reloj: frecuencia de
barrido
B
A
Conversor
A/D
Asimismo, un demultiplexor analgico puede ser utilizado para generar varias
referencias de tensin o varias seales lentas; un conversor digital/analgico puede
proporcionar los diversos valores de tensin y el demultiplexor (controlado por un
contador) los trasladar a sus salidas (ser necesario que exista una capacidad adecuada
conectada en cada lnea de salida para mantener los valores de tensin).
Demux.
anal-
gico
seal 0
seal 1
seal 2
seal 3
seal 4
seal 5
seal 6
seal 7
C
Contador mod. 8
reloj: frecuencia de
barrido
B
A
Conversor
D/A
q2 q1 q0
152 El ect rni ca Di gi t al
Tambin se utiliza el muestreo analgico para la transmisin de mltiples seales por
una misma lnea de comunicacin: el multiplexor enviar muestras sucesivas de las n
seales y, en la recepcin, un sistema simtrico demultiplexor-contador, funcionando con
la misma frecuencia de muestreo, separar las muestras hacia n lneas de salida.
q2 q1 q0
MUX.
anal-
gico
lnea 0
lnea 1
lnea 2
lnea 3
lnea 4
lnea 5
lnea 6
lnea 7
C
Contador mod. 8
B
A
q2 q1 q0
MUX.
anal-
gico
lnea 0
lnea 1
lnea 2
lnea 3
lnea 4
lnea 5
lnea 6
lnea 7
C
Contador mod. 8
reloj: frecuencia de barrido
B
A
Un teorema de muestreo, introducido por Claude E. Shannon, garantiza que, cuando
se muestrea una seal a una frecuencia superior al doble de la frecuencia mxima
contenida en ella, no hay prdida de la informacin de la seal, es decir, es posible
recuperar la seal inicial mediante filtrado de la seal muestreada.
El citado teorema de muestreo condiciona la integridad de la seal a transmitir a que
la frecuencia de muestreo sea superior al doble de la frecuencia mxima de dicha seal;
en cambio, no depende de la anchura de las muestras.
De esta forma, el muestreo a frecuencias adecuadas (superiores al doble de su
frecuencia mxima) permite enviar un gran nmero de seales (en pequeos trozos de
cada una de ellas) por la misma lnea, multiplexadas en el tiempo. En la recepcin de
tales seales, una vez demultiplexadas las muestras recibidas, para obtener las seales
primitivas basta con filtrar las lneas de salida mediante filtros pasa-baja con frecuencias
de corte del orden de la mitad de la frecuencia de muestreo.
Reparto de tiempos
El multiplexado en tiempo (multiplexor controlado por un contador que recibe una
seal de frecuencia fija) equivale a una distribucin del tiempo en sucesivos intervalos, de
igual duracin, dedicados a diferentes seales o acciones. Con el mismo esquema
circuital, sustituyendo el multiplexor por un decodificador de n lneas, se obtendr un
circuito de n salidas que se activarn sucesiva y cclicamente; cada salida permite
habilitar una actuacin particular, que se irn ejecutando una tras otra.
De esta manera el ciclo se divide en partes o acciones sucesivas que se ejecutan en
un orden dado (y se repetirn posteriormente en el mismo orden): el resultado es un
conjunto de temporizaciones sucesivas, con igual duracin de tiempo cada una de ellas.
17. Apl i caci ones de l os cont adores 153
Tambin es posible dedicar varios intervalos a una misma accin y obtener as
temporizaciones sucesivas de duraciones diferentes (siempre mltiplos del intervalo
temporal bsico).
Un ejemplo ilustrativo de este tipo de reparto de tiempos puede ser el
comportamiento de un semforo: consideremos un semforo para un simple paso de
peatones que desarrolla el siguiente ciclo: 40" en verde para automviles, 10" en mbar
para detenerlos; 20" en verde para paso de peatones y 10" en mbar para completar el
cruce de los mismos.
El circuito de control de dicho semforo puede ser el representado en la figura
siguiente: un contador que recibe pulsos de 10" de perodo seala los ocho intervalos de
10" contenidos en el ciclo anterior, un decodificador diferencia cada uno de dichos
intervalos y, a travs de puertas "o", se agrupan tales intervalos para formar las cuatro
temporizaciones a las que alude el enunciado.
q2 q1 q0
T
De
co
di
fi
ca
dor
000
C B A
Contador mod. 8
reloj: 10"
111
verde automviles
mbar automviles
verde peatones
mbar peatones
Obviamente, el decodificador no es imprescindible, pues las diferentes salidas
pueden ser definidas a travs de funciones booleanas:
verde automviles = q
2
0 1 2
q . q . q = s automvile mbar
verde peatones = q
2
.(q
1
q
0
)
0 1 2
.q .q q = peatones mbar
pero, desde una perspectiva conceptual, el decodificador expresa muy grficamente el
reparto del tiempo (4 intervalos de 10" para paso de automviles, 1 intervalo para
detenerlos, 2 intervalos para paso de peatones y 1 intervalo de aviso a stos).
154 El ect rni ca Di gi t al
Podemos perfeccionar el ejemplo anterior de manera que los peatones deban activar
un pulsador como demanda de paso: sea un cruce de peatones que cuenta con un
semforo para detener a los automviles, con un pulsador P que debe ser activado por
los peatones cuando desean cruzar; la activacin de P da lugar al siguiente ciclo:
10" en amarillo para detener a los automviles, 20" en rojo (verde para peatones), 10"
en amarillo para peatones, pasando finalmente al estado de circulacin de automviles
(rojo para peatones); cuando en dicho estado de circulacin se recibe una nueva
demanda de paso, es atendida pero asegurando siempre que el intervalo mnimo de paso
de automviles sea de 40".
Puede utilizarse un biestable RS para recoger la demanda de paso por parte de los
peatones; dicho biestable se borra en el intervalo de mbar para peatones (que es cuando
se completa el paso de peatones, en respuesta a una demanda anterior). Mientras hay
nuevas solicitudes de paso se ejecuta normalmente el ciclo completo; pero, si no hay
demanda de paso, el ciclo se detiene en el cuarto intervalo de 10" de paso de automviles
(ya que la puerta Nand anula la habilitacin del contador) y permanece en dicha situacin
(paso de automviles) hasta que se produce una peticin de paso por parte de peatones.
q2 q1 q0
De
co
di
fi
ca
dor
000
C B A
Contador mod. 8
reloj: 10 s
111
verde automviles
mbar automviles
verde peatones
mbar peatones
Q R
Q S pulsador
E
17. 5. Medi da de frecuenci as
La frecuencia de una seal o de un proceso peridico es el nmero de repeticiones o
pulsos por unidad de tiempo; su medida consiste en contar pulsos durante un intervalo de
tiempo unidad o durante uno de sus mltiplos.
La medida de frecuencias es en cierta manera el recproco de la medida de tiempos:
mientras que en esta segunda se cuentan pulsos de frecuencia precisa y conocida durante
el intervalo temporal a medir, para la medicin de una frecuencia se cuentan los pulsos de
la seal durante un intervalo de tiempo de duracin precisa y conocida.
17. Apl i caci ones de l os cont adores 155
Para ello se requiere un subsistema que determine con precisin los intervalos
temporales, a partir de una frecuencia patrn; durante la unidad de tiempo definida se
permite el contaje de pulsos de la seal a medir y, al final de la misma, se inhibe dicho
contaje, quedando recogida en el contador la medida de la frecuencia: nmero de pulsos
por unidad de tiempo.
CONTADOR (Dcadas)
E
UNIDAD
DE TIEMPO
Conformador
de pulsos
seal
a medir
u. de t.
Esquema bsico conceptual de un frecuencmetro
Un adaptador previo deber digitalizar los pulsos de la seal de entrada, filtrando
los posibles rebotes, ajustando sus valores de tensin y conformando flancos
adecuadamente verticales; para ello, el bloque conformador de pulsos debe efectuar un
filtrado pasa-baja (integracin) a fin de evitar rizados y rebotes, recortar las tensiones en
los niveles booleanos y verticalizar los flancos:
Seal
a medir
Circuito
integrador
Conformador
de niveles
pulsos
digitales
Comparador
(histresis)
La integracin puede ser hecha mediante un simple filtro RC (o con un filtro activo),
un diodo zener puede recortar los niveles de tensin y un inversor con entrada Schmitt
sirve para evitar rebotes y conformar flancos verticales:
.
Normalmente el diseo ser sncrono con un reloj diferente de los pulsos de la seal
de entrada, de forma que despus del conformador de pulsos se necesitar un detector de
flancos de los mismos para proceder a su contaje sncrono:
Q
Q
D
Q
Q
D
entrada
de pulsos
CK
u. de t.
0
1
156 El ect rni ca Di gi t al
La figura siguiente representa un frecuencmetro de funcionamiento continuo; el
intervalo de medida ha de ser del orden de 10", a fin de que cada medida se visualice
durante un tiempo mnimo adecuado; como el contador va a ser utilizado
continuadamente, el resultado de cada medida ser almacenado en un registro de
retencin (latch memory) para su visualizacin.
CONVERSOR BCD - 7 seg.
REGISTRO RETENCIN
CONTADOR (Dcadas)
Conformador
de pulsos
CONTADOR
mdulo N
mx
B
seal
a medir
Detector
de flancos
E
E
CK
El contador que define el ciclo de medida divide por N la frecuencia del reloj, de
forma que el perodo de medida ser T = N.TCK y el pulso de salida de dicho contador es
una onda de temporizacin (cuyo tiempo en 1 es una sola unidad de tiempo de reloj).
Cada ciclo de medida comienza con la puesta a cero del contador; a partir de dicho
momento ste cuenta los pulsos de la seal de entrada durante el intervalo temporal
T = N.TCK , al final del cual el mismo pulso que borra el contador recoge el contaje
anterior sobre el registro y lo representa en el visualizador.
Esta configuracin circuital permite un diseo sncrono a partir del reloj que genera
la frecuencia patrn; el detector de flancos servir para el contaje sncrono de los pulsos
de entrada al frecuencmetro.
17. Apl i caci ones de l os cont adores 157
Medida y control de la velocidad de un motor
Una aplicacin caracterstica de la medida de frecuencias es la medida de la
velocidad angular de un motor, expresada en nmero de revoluciones por minuto; para
ello se detectan las vueltas del eje del motor mediante un sensor de tipo magntico o
fotoelctrico que genera los pulsos a contar.
La estructura circuital bsica de un fecuencmetro de funcionamiento continuo sirve
para configurar circuitos de control de la velocidad de un motor; por ejemplo, el de la
figura cuya salida se activa si el nmero de revoluciones por minuto es superior a 1000.
pulsos
del
sensor
E
Contador
mod. 128
detector
de flancos
B
E
D
Q
E
6.10
6
CK
1 MHz
Ciclo de medida 6"
mx
La velocidad de 1000 revoluciones por minuto equivale a 100 revoluciones en 6
segundos. Adoptando 6" como tiempo de medida, el contador deber vigilar si se
alcanza o no el nmero 100 (1100100); cuando el contador llega a tal cantidad, se inhibe
su habilitacin y la puerta "y" seala que se ha superado la velocidad mxima, dato que es
recogido por el biestable D al finalizar el ciclo de medida e iniciarse uno nuevo (con el
borrado del contador).
El mismo pulso (la onda de temporizacin de 6" generada por el contador inferior)
produce la habilitacin del registro (en este caso, un simple biestable para almacenar el
aviso de superacin de velocidad) y el borrado sncrono del contador para iniciar una
nueva medida.
El anterior circuito podra utilizar un comparador con el nmero 100 (1100100), en
lugar de la puerta "y"; en todo caso, es importante inhibir el contador una vez que se ha
detectado la velocidad mxima, para evitar que se de la vuelta (llegue a su valor
mximo y, luego, siga contando desde 0).
El esquema anterior presenta un tiempo de respuesta de 6 segundos (el tiempo de
medida); puede obtenerse una respuesta ms rpida midiendo el tiempo de cada vuelta (su
perodo), en lugar de contar el nmero de revoluciones.
1000 revoluciones por minuto corresponden a un perodo de 60"/1000 = 60 ms;
perodos inferiores a 60 ms (111100) suponen velocidad superior a la mxima. El
circuito para medir dicho perodo puede ser el de la figura siguiente: el contador cuenta
ahora el tiempo transcurrido entre dos pulsos del sensor y si dicho tiempo es inferior a 60
la puerta "y-negada" seala velocidad superior a la mxima.
158 El ect rni ca Di gi t al
pulsos
del
sensor
detector
de flancos
aviso
Contador
mod. 64
reloj
de 1 KHz
B
E
D
Q
E
< 60
( 1 ms )
En este caso son los pulsos del sensor de vueltas del motor los que determinan el
intervalo de medida y, para ello, generan los pulsos de habilitacin de dato y borrado del
contador; al igual que en el caso anterior, es necesario inhibir el contaje una vez que se
han detectado 60 ms, para evitar que el contador pase a valor 0. Igualmente se podra
utilizar un comparador con el nmero 60 (111100), en lugar de la puerta "y-negada".
Medida de la velocidad de un vehculo
En cualquier vehculo que circula sobre ruedas, sea bicicleta, motocicleta o
automvil, el producto del nmero de revoluciones por minuto por la longitud de la
circunferencia exterior de sus ruedas expresa la velocidad lineal del vehculo.
Por ejemplo, para una bicicleta con ruedas de 70 cm de dimetro (220 cm de
circunferencia) la velocidad en kilmetros por hora coincide aproximadamente con el
nmero de revoluciones que da en 8 segundos:
hora
Km
n n 0,99 =
h
Km
.
8.100000
.3600 220
. n =
=
h
Km
3600"
8"
100000cm
220cm
n. =
" 8
cm 220
n. = cm 220 .
segundos 8
vueltas n
De manera que un frecuencmetro con una unidad de tiempo de 8 segundos
proporciona directamente la velocidad de la bicicleta (cuyo dimetro de rueda sea de
70 cm) en kilmetros por hora; con diferentes dimetros de rueda o tiempos de medida
distintos ser necesario efectuar el correspondiente cambio de escala.
Codificacin en frecuencia
En ocasiones para la transmisin de valores medidos por sensores alejados se utiliza
su codificacin en frecuencia (se enva una frecuencia proporcional al valor medido); este
tipo de comunicacin en frecuencia ofrece alta fiabilidad, minimizando el efecto de los
errores propios de la transmisin; un frecuencmetro transformar la frecuencia recibida
en un nmero que expresa la medida del sensor.
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
18 MODULACIN DE ANCHURA DE PULSOS
18.1. Control todo/nada
18.2. Modulacin de anchura de pulsos
18.3. Modulacin PWM en pulsos distribuidos
18.4. Conversin tensin-tiempo de tipo rampa
18.5. Conversores sigma-delta
La modulacin de anchura de pulso es una codificacin analgica, alternativa a la
representacin habitual en amplitud de tensin, que se acomoda muy fcilmente a las
tcnicas digitales y permite configurar mdulos de control de potencia, conversin DC-DC,
potencimetros digitales, conversin digital-analgica y analgico-digital, Este tipo de
etapas resulta de gran inters en el diseo microelectrnico puesto que permiten reducir, en
forma considerable, la parte analgica que acompaa a la digital.
El objeto propio de la electrnica es la informacin; las seales elctricas son el soporte
fsico de la informacin. Generalmente dicha informacin se representa sobre la amplitud de
la tensin elctrica que conforma la seal: las variaciones de tensin corresponden, en su
caso, a las variaciones del valor de la magnitud fsica representada por la seal. Pero
tambin es posible representar la misma informacin sobre la anchura de pulsos de tensin
fija: la seal soporte de la informacin quedar determinada por las variaciones en la
duracin de los sucesivos pulsos; este procedimiento de codificacin de la informacin se
denomina modulacin de anchura de pulsos (PWM).
Ambas codificaciones analgicas, en amplitud de tensin o en anchura de pulso, son
equivalentes: el teorema de muestreo de Shannon garantiza que ambas seales contienen la
misma informacin, siempre que la frecuencia de los pulsos de anchura modulada sea
superior al doble de la frecuencia mxima de la seal. Ahora bien, resulta que los pulsos
de anchura modulada son relativamente fciles de manejar mediante tcnicas digitales,
aprovechando que los contadores son una herramienta adecuada para manejar el tiempo.
Contadores y sumadores permiten generar pulsos de anchura controlada por un nmero
y, por otra parte, la carga de condensadores, seguida por comparadores analgicos,
proporciona pulsos de anchura controlada por una tensin; de esta forma se configuran
circuitos que pueden sustituir (si la velocidad de trabajo requerida no es muy elevada) a
etapas tpicamente analgicas mucho ms complejas.
En concreto, la modulacin de anchura de pulsos resulta muy til para el control de
potencia (por el mecanismo todo/nada), para la conformacin de potencimetros digitales
(para controlar la amplitud de seales o efectuar una conversin DC-DC) y, tambin,
para efectuar sencillas conversiones de seal digital a analgica (de nmero a tiempo o a
tensin) y de analgica a digital (de tensin a nmero). Todos estos casos sern
desarrollados en los apartados que siguen.
160 El ect rni ca Di gi t al
18. 1. Cont rol t odo/ nada
Uno de los mtodos ms simples de regulacin de potencia es el control todo/nada
(on/off): a partir de la potencia mxima a suministrar y de un perodo T que marca la
duracin del ciclo, se efecta una conmutacin todo/nada de la potencia, de forma que
durante un primer intervalo T1 se aplica la potencia mxima Pmx y durante el resto del
ciclo T - T1 no se aplica potencia alguna; promediando en el tiempo, la potencia eficaz
aplicada ser Pmx.T1/T.
La seal de control todo/nada puede ser generada mediante un contador mdulo N,
activado con una seal de reloj cuyo perodo sea T/N, seguido de un comparador en cuya
segunda entrada se establece el nmero que acta como referencia n; n puede variar de 0
a N. Tomando la salida "<" del comparador (contador < n) se obtiene una seal
rectangular de perodo T y cuyo tiempo en 1 ser T.n/N, es decir, el porcentaje de
tiempo activo (tiempo de on) respecto al total ser n/N.
CONTADOR mod. 64
COMPARADOR
A5 A4 A3 A2 A1 A0
B6 B5 B4 B3 B2 B1 B0
Q5 Q4 Q3 Q2 Q1 Q0
A<B
perodo
reloj:
T/64
n (entre 0 y 64 )
T.n / 64
T
Si durante el tiempo de on se suministra a la carga la potencia mxima y durante el
tiempo de off no se le suministra potencia alguna, la potencia promedio ser:
N
n
. P =
T
T
. P = P
mx
1
mx
Un contador dcada permite una regulacin todo/nada con 11 niveles (de 0 a 10) y
un paso entre niveles del 10 % mientras que un contador de 6 bits (mdulo 64) permite
disminuir el paso entre dos niveles consecutivos al 1,5%.
Esta forma de suministrar potencia a trozos (todo/nada), en lugar de variar la
tensin que se transmite a la carga, resulta sumamente adecuada en relacin con los
dispositivos y las etapas electrnicas de potencia:
- determinados componentes de potencia, como los tiristores y triacs no permiten otro
tipo de actuacin (solamente presentan dos estados que corresponden a las dos
situaciones de conduccin total o no conduccin);
- incluso, para los transistores (que admiten tensiones variables de entrada y de salida)
las situaciones todo/nada son muy favorables en relacin con la disipacin de potencia
(cuando conducen todo su tensin es muy baja VCE 0 y cuando no conducen su
intensidad es nula IC = 0: en ambos casos la potencia disipada en el transistor,
producto tensin por intensidad VCE . IC, es muy reducida).
18. Modul aci n de anchura de pul sos 161
18.1.1. Conversin nmero-tiempo
Un control todo/nada realiza una conversin nmero tiempo: el nmero que llega
al comparador como referencia es transformado en anchura de pulso. El resultado es una
modulacin de la anchura de pulso en relacin con el nmero que acta como referencia:
n t.
CONTADOR
mdulo N
COMPARADOR
A<B
perodo T
= N.T
REGISTRO
n
pulso de anchura
proporcional a n
mx
E
CK
CK
CK
Si el nmero n que incide sobre el comparador es constante se producen pulsos de
anchura fija (proporcional a dicho valor n). Al variar n se produce una variacin de la
anchura de los pulsos en su salida, siendo dicha anchura proporcional al valor de n; de
esta forma una seal expresada numricamente es convertida en pulsos de duracin
proporcional a su valor.
Este esquema de modulacin en anchura de pulsos (conversin de nmeros en pulsos
de anchura proporcional a ellos) puede ser utilizado en la reproduccin de msica
digitalizada (discos compactos CD). Los valores numricos de la seal digitalizada que
contiene el CD son ledos con un perodo T, en sincronismo con el ciclo del conversor
todo/nada, de forma que cada valor numrico controla la duracin de un pulso.
Si tales pulsos de amplitud modulada son enviados a un altavoz, a travs de un
amplificador de potencia, el propio altavoz filtrar la frecuencia del ciclo on/off y
responder a la anchura de los pulsos con la correspondiente seal de audio. En lugar de
enviar la potencia al altavoz en forma de amplitud de tensin, se transmite en forma de
duracin de pulso; el resultado es el mismo, con la ventaja de que las prdidas en potencia
en el amplificador sern muy inferiores, pues acta en situaciones todo/nada.
162 El ect rni ca Di gi t al
18.1.2. Conversin nmero-tensin
Si la salida del anterior conversor nmero-tiempo es filtrada mediante un filtro pasa-
baja (cuya frecuencia de corte sea inferior a la del ciclo todo/nada) el resultado es una
tensin proporcional al nmero que acta como referencia. De esta manera se dispone de
un sencillo conversor digital-analgico cuyos componentes son bloques digitales (con
excepcin del filtro de la salida):
- si la referencia del modulador de anchura de pulso es fija (n fijo) se tiene un conversor
DC-DC en que la tensin de salida VoH (supuesto VoL = 0 V) es convertida en una
tensin de valor inferior, controlado por el nmero n que acta como referencia;
- si n es variable se obtiene una onda que es el resultado de convertir a tensin la seal
definida numricamente.
sta es una de las formas ms sencillas de efectuar la conversin de un valor digital
en una tensin analgica (conversor D/A) y, adems, utiliza procedimientos digitales
(salvo el filtrado); existen conversores ms rpidos y precisos (que son descritos en el
apndice A8), pero requieren la utilizacin de bloques analgicos (lo cual dificulta su
integracin en circuitos digitales). Este esquema permite generar digitalmente tensiones
de referencia o formas de onda (seales de tensin variable).
CONTADOR
mdulo N
COMPARADOR
A<B
REGISTRO
n
mx
E
CK
CK
proporcional
a n
V
Para que el rizado debido al ciclo on/off sea despreciable debe cumplirse que la
frecuencia de corte del filtro sea muy inferior a la de dicho ciclo; por otra parte, tambin
es necesario que la frecuencia de la seal a obtener sea muy inferior a la de corte del
filtro, a fin de que dicha seal de salida no se vea afectada por el filtrado:
on/off ciclo filtro corte seal mx
f << f << f
CK seal mx
N.T T >> RC >> f / 1 =
18. Modul aci n de anchura de pul sos 163
El comportamiento del filtro y el valor de la tensin de salida sobre el condensador
VC, en condiciones de pequeo rizado, puede razonarse en la siguiente forma:
En un ciclo on/off la tensin del condensador se mantiene prcticamente constante
ya que la frecuencia de la seal de salida es sumamente inferior a la frecuencia del ciclo
(por un lado, la propia frecuencia de corte del filtro solamente permite el paso de
frecuencias muy inferiores a la del ciclo on/off y, adems, se ha impuesto la condicin de
que la seal de salida sea de frecuencia muy inferior a la de corte del filtro).
Para que dicha tensin se mantenga constante, el balance de carga sobre el
condensador debe ser nulo, es decir, la cantidad de carga que recibe el condensador
durante el intervalo de on ha de ser igual a la que el condensador cede durante el
intervalo de off
Q
on
Q
off
; I
on
. t
on
I
off
. t
off
R
V
= I ;
R
V - V
= I
C
off
C oH
on
(supuesto VoL = 0 V)
on off on
t - T = t ;
N
T . n
= t
V
oH
- V
C
R
.
n . T
N
=
V
C
R
. (T -
n . T
N
)
V
C
= V
oH
.
n
N
= k . n donde
N
V
= k
oH
es decir, la tensin de salida es proporcional a la referencia n y la constante de
proporcionalidad es VoH / N VCC / N, que puede ajustarse adecuadamente (por
ejemplo, con VCC = 5 V y N = 50, a cada unidad de n le corresponden 0,1 V).
164 El ect rni ca Di gi t al
18.1.3. Potencimetro digital
El mismo esquema conceptual empleado en el epgrafe anterior (PWM ms filtrado
pasa-baja) puede ser utilizado para controlar la amplitud de una seal analgica; su
muestreo mediante un control todo/nada sobre un divisor de tensin, seguido de un filtro
pasa-baja, en la forma representada en la figura siguiente, permite reducir la amplitud de
dicha seal, controlndose el factor de proporcionalidad numricamente mediante n. Esta
reduccin proporcional de la amplitud es precisamente lo que hace un potencimetro
cuando se utiliza como divisor de tensin.
CONTADOR
mdulo N
COMPARADOR
A<B
REGISTRO
n
mx
E
CK
CK
R1
Vi Vo
R2
Al igual que en el caso anterior, para que el rizado sea despreciable y la seal de
salida no se vea afectada por el filtrado, debe verificarse que:
on/off ciclo filtro corte seal . mx
f << f << f
CK seal mx
N.T T >> RC >> f / 1 =
y el anlisis del comportamiento del circuito es anlogo al caso anterior (igualdad de
carga en intervalos de on y off):
Q
on
Q
off
; I
on
. t
on
I
off
. t
off
I
on
=
V
i
- V
C
R1 + R2
; I
off
=
V
C
R2
; t
on
=
n . T
N
; t
off
= T - t
on
V
i
- V
C
R1 + R2
.
n . T
N
=
V
C
R2
. (T -
n . T
N
)
tomando las resistencias R1 << R2 , puede aproximarse R1 + R2 R2
N
n
= k donde V . k =
N
n
. V = V
i i C
.
Si la tensin de entrada es continua resulta una tensin de salida continua y menor,
segn un factor k < 1, y si la entrada es una seal variable resulta una seal de salida de
menor amplitud, proporcional a la entrada conforme a dicho factor k = n/N < 1.
18. Modul aci n de anchura de pul sos 165
18. 2. Modul aci n en anchura de pul sos
La modulacin de anchura de pulso PWM (pulse width modulation) es una forma de
codificar la informacin que utiliza, para ello, pulsos de anchura variable; es decir, en
lugar de una seal que expresa la informacin a travs de su amplitud (variaciones de
tensin), se utilizan pulsos de amplitud fija cuya anchura (la duracin de los pulsos) es
variable, proporcional al valor de la seal en cada momento.
seal
codificada
en
amplitud
seal
en
PWM
El paso de seal en amplitud a pulsos modulados en anchura se consigue mediante
una transformacin V-t tensin-anchura de pulso. Precisamente en el apartado anterior
(Control todo/nada) se ha utilizado una transformacin n-t, nmero-anchura de pulso,
que efecta la modulacin PWM a partir del valor numrico de la seal.
El teorema de muestreo de Shannon garantiza que la informacin contenida en los
pulsos de anchura modulada es la misma que transmite la amplitud de la seal si la
frecuencia de los pulsos es superior al doble de la mxima frecuencia de dicha seal.
El control todo/nada es la forma ms simple y directa de transformar un nmero en
un pulso de anchura proporcional al mismo. Esta modulacin on/off acta cclicamente
con un perodo T dividido en dos intervalos: activo/inactivo (1/0), de forma que, al inicio
de cada perodo T se produce un pulso cuyo tiempo en 1, proporcional al nmero n,
seala el intervalo activo.
Como se ha visto en el anterior apartado, la conversin nmero anchura de pulso,
propia de la modulacin todo/nada, requiere simplemente un contador (que desarrolla el
ciclo de N unidades) y un comparador (del contador con la referencia n) y resulta muy
til para control de potencia, conversin digital-analgica y control de amplitud de
seales (potencimetro digital).
Dentro de cada ciclo on/off, el tiempo en 1 (on) se encuentra agrupado en un
mismo pulso al comienzo del perodo; un procedimiento alternativo consiste en dividir el
tiempo de on en pulsos disjuntos repartidos a lo largo de todo el perodo.
166 El ect rni ca Di gi t al
En lugar de diferenciar dos intervalos separados y sucesivos (activo/inactivo) es
viable, tambin, producir pulsos (de duracin igual a una unidad de tiempo de reloj) cuya
suma de tiempos en 1 sea igual al tiempo de on y que se distribuyan a lo largo del ciclo
homogneamente; a esta otra forma de producir pulsos de anchura modulada la
denominaremos modulacin PWM en pulsos distribuidos.
Ambas modulaciones son equivalentes y ofrecen las mismas aplicaciones; en
algunos casos la segunda puede tener ventajas en relacin con filtrados pasa-baja
posteriores (el rizado en un filtro pasa-baja es menor si los pulsos se encuentran
distribuidos homogneamente). Las dos modulaciones corresponden a una conversin
nmero anchura de pulsos: entrada, el nmero n que es la referencia; salida, pulsos de
anchura modulada.
Otra conversin de inters que tambin produce pulsos modulados en anchura, es la
transformacin tensin anchura de pulso. Puede configurarse a travs de la
comparacin de la tensin de entrada con una rampa de tensin creciente (apartado 18.4),
dando lugar a pulsos cuya anchura (el tiempo que tarda la rampa en alcanzar la tensin de
entrada) es proporcional a la misma: conversores de tensin-tiempo de tipo rampa.
De esta forma, al igual que en el control todo/nada, en cada ciclo se produce un
pulso inicial de duracin controlada por la tensin de entrada, seguido por un intervalo
inactivo. Tambin existe la alternativa de pulsos distribuidos a lo largo del ciclo, que se
consigue con conversores sigma-delta (apartado 18.5).
Estos dos ltimos tipos de conversores (por rampa o sigma-delta) corresponden a
una conversin tensin anchura de pulsos: entrada, tensin analgica; salida, pulsos de
anchura modulada. Si durante el tiempo en 1 se habilita un contador que efecta el
contaje de unidades de tiempo (a partir de una seal de reloj apropiada) se consigue una
conversin tensin nmero, es decir, analgico-digital.
As, pues, consideramos en este captulo cuatro tipos de moduladores de anchura de
pulsos que podemos clasificar en la forma siguiente:
conversin nmero-anchura de pulso:
pulsos de frecuencia fija: modulacin on/off,
pulsos aleatorios: modulacin en pulsos distribuidos;
conversin tensin-anchura de pulso:
pulsos de frecuencia fija: rampa de tensin,
pulsos aleatorios: conversor sigma-delta.
18. Modul aci n de anchura de pul sos 167
Todos estos moduladores dividen el tiempo en intervalos activos e inactivos; en
consecuencia, los cuatro permiten el control de potencia por el mtodo todo/nada y el
control de amplitud de seales (potencimetro digital), tal como estn detallados en el
apartado anterior; en los dos primeros la variable de control es un nmero n y en los otros
dos el control lo realiza la tensin de entrada Vi.
Adems, los dos primeros (con un filtro pasa-baja a su salida) pueden ser utilizados
como conversores digital-analgicos (D/A) y los otros dos (con un contador de unidades
de tiempo habilitado por ellos) como conversores analgico-digitales (A/D).
Tales conversores entre el mundo analgico y el digital son relativamente lentos,
pues hacen la conversin a lo largo del tiempo, a travs de la produccin de pulsos de
anchura controlada por su entrada (por un nmero en los primeros y por una tensin en
los segundos), pero pueden alcanzar gran precisin y resultan tiles para muchas
aplicaciones.
Como complemento a este captulo, en el aspecto de conversin D/A y A/D, y para
completar el estudio de los sistemas digitales con la interfase entre ellos y el mundo
analgico, el apndice A7 (Conversin Digital-Analgica y Analgica-Digital) describe
otros tipos de conversores directos (ms rpidos) digital-analgicos y analgico-digitales.
18. 3. Modul aci n PWM en pul sos di st ri bui dos
Una conversin nmero anchura de pulsos con pulsos de salida distribuidos
homogneamente a lo largo del intervalo de conversin puede conseguirse mediante
sumas repetitivas del nmero a convertir, segn el circuito de la figura.
SUMADOR de 8 bits
A7 A6 A5 A4 A3 A2 A1 A0 B7 B6 B5 B4 B3 B2 B1 B0
R7 R6 R5 R4 R3 R2 R1 R0 acarreo
REGISTRO de 8 bits
n
salida
de pulsos
CK
Este sumador (de nmeros de p dgitos, cuyo resultado es un nmero de longitud p y
un bit de acarreo) produce arrastre cuando el resultado de la suma alcanza o sobrepasa el
nmero N = 2
p
(p es el nmero de dgitos del sumador que coincide con el nmero de
biestables del registro que almacena el resultado de la suma).
168 El ect rni ca Di gi t al
Al realizar N = 2
p
sumas sucesivas del nmero de entrada n, el resultado total
debera ser N.n = n.N = n.2
p
; durante la realizacin de dichas N sumas el arrastre se debe
activar n veces ya que n es la parte numrica resultante ms all de los p dgitos del
sumador: n es la parte del resultado situada por encima de los p bits que aparecen en las
salidas de resultado de la suma y que se almacenan en el registro. El resultado global n.2
p
indica que, por encima de los p bits, se han tenido que llevar (arrastre) n unidades
puesto que la parte ms significativa del resultado (a partir de los p dgitos inferiores)
vale n y tal es el nmero de veces que ha tenido que activarse el arrastre para producirla.
Insistiendo en la misma explicacin, consideremos un segundo sumador
(suficientemente largo) situado a partir del anterior y que suma simplemente los arrastres
del primero. Despus de N sumas sucesivas del nmero n el sumador total debe contener
el resultado n.N y, como N = 2
p
es el valor relativo del segundo sumador (pues se
encuentra p dgitos por encima de las unidades), el contenido del mismo debe ser el
nmero n. Para ello el arrastre del primer sumador ha tenido que activarse n veces, es
decir, ha producido n pulsos de duracin un perodo de reloj.
El intervalo de conversin es N unidades de tiempo de reloj y el resultado son n
pulsos de duracin igual a una unidad de tiempo, siendo n el nmero de entrada a este
conversor. Tales pulsos de salida se encontrarn distribuidos homogneamente: si n es
pequeo estarn ms espaciados entre s pues hace falta un mayor nmero de sumas para
alcanzar N y si n es grande (cercano a N) el espaciado de los pulsos ser pequeo e,
incluso, podrn encontrarse consecutivos (formar un mismo pulso de duracin doble, ...).
Las aplicaciones de esta segunda forma de conversin nmero anchura de pulsos
son las mismas que se detallan en el apartado 18.1:
- control de potencia todo/nada
- conversin nmero-tensin (digital-analgica)
- control de amplitud de seal (potencimetro digital).
Comparando ambas formas de modular la anchura de pulsos, resulta que la
modulacin PWM en pulsos distribuidos aumenta el nmero de pulsos y, con ello, el
nmero de conmutaciones, lo cual puede ser un inconveniente en cuanto a control de
potencia (ya que aumenta el esfuerzo a realizar por los componentes de potencia debido
al mayor nmero de conmutaciones de los mismos y, tambin, aumenta el consumo
dinmico producido en tales conmutaciones).
En cambio, la distribucin ms homognea de los pulsos de salida hace que la
separacin entre pulsos sea menor, lo cual es una ventaja en las aplicaciones que utilizan
un filtrado de salida pasa-baja (pues se reduce el rizado del filtro al estar ms prximos
los pulsos).
18. Modul aci n de anchura de pul sos 169
18. 4. Conversi n t ensi n t i empo de t i po rampa
La carga de un condensador, con una corriente constante, desde 0 V hasta el valor de
la tensin de entrada Vi determina un intervalo de tiempo proporcional a dicha tensin:
COMP
inicio
"reset"
I
V
i
C
+
-
Pulsos de inicio
V (rampa)
Vo
V = Vi
t
V
El condensador recibe una intensidad constante, de forma que la tensin del
condensador variar en forma de rampa lineal de pendiente I/C; cuando dicha rampa
alcanza el valor Vi finaliza el pulso de salida cuya anchura ser proporcional a Vi.
V
C
(t) =
I
C
. t ;
i i i C
.V k = V .
I
C
= t V = (t) V para
El circuito requiere pulsos de inicializacin, que descarguen el condensador, para
comenzar cada pulso de salida. La carga del condensador a intensidad constante puede
hacerse con un generador de intensidad (por ejemplo, la etapa tpica de transistor bipolar
en base comn); si no se requiere una precisin muy alta, puede utilizarse una simple
resistencia, aprovechando la parte inicial de la exponencial del proceso de carga RC (por
ejemplo, en un circuito RC conectado a 12 V, si se acota el intervalo de carga del
condensador de 0 a 5 V, el error de linealidad resultante es inferior al 5 %).
Si los pulsos de inicio (reset) tienen una frecuencia fija, con un perodo T, al
comienzo de cada perodo se produce un pulso de salida cuya duracin ser proporcional
a Vi: pulsos de anchura modulada, obtenidos por una conversin tensin-tiempo.
Pulsos de inicio
integrador (rampa)
Vo
Vcomp = Vi
t
T
Este modulador de anchura de pulso se diferencia de los dos anteriores en que la
variable de entrada (de control de la anchura de los pulsos) es una tensin (en lugar de un
nmero); sirve para las mismas aplicaciones: control de potencia todo/nada y control de
amplitud de seal (potencimetro digital), realizndose ambos controles por tensin.
Adems, la duracin de cada pulso puede ser medida por un contador cuyo reloj se
ajuste a una unidad de tiempo precisa, de forma que se efecte una segunda convesin
tiempo-nmero, dando como resultado un conversor analgico-digital.
170 El ect rni ca Di gi t al
A travs de la rampa de tensin del condensador el circuito efecta la conversin
tensin-tiempo y el contador completa el proceso con una conversin tiempo-nmero:
tensin tiempo nmero
rampa contador
La segunda conversin conforma una medida del intervalo de tiempo (duracin de la
rampa hasta Vi) que, a tenor de la primera conversin, es tambin una medida del valor
de la tensin de entrada; se consigue as una conversin tensin-nmero que corresponde
a un conversor analgico-digital.
COMP
inicio
"reset"
I
V
i
C
+
-
E
Clr
CK
CONTADOR
t .
C
I
= V
C
sea
CK
T . n = t' el tiempo que tarda la rampa en alcanzar el valor de Vi, donde n ser el
nmero alcanzado por el contador en dicho tiempo y TCK el perodo del reloj:
CK i
T . n .
C
I
= V ;
i i
CK
k.V V .
I.T
C
= n = ;
I.T
C
= k
CK
.
El resultado n, expresado en el contador, es proporcional a la tensin de entrada y la
constante de proporcionalidad puede ser ajustada adecuadamente (por ejemplo, I = 1 mA,
C = 100 nF y TCK = 1 s hacen que n exprese la medida de Vi en centsimas de voltio,
0,01 V).
El siguiente circuito representa un conversor tensin-nmero (analgico-digital) de
funcionamiento continuo, que cada determinado tiempo T = N.TCK efecta una medida
de la tensin de entrada:
C
+
-
COMP
INTEGRADOR
COMPARADOR
E
B
Registro
Contador
I
V
i
E
mx
pulso de una unidad de tiempo de reloj
: onda de temporizacin
CK
N
18. Modul aci n de anchura de pul sos 171
El contador mdulo N determina el tiempo en que comienza cada medida de la
tensin de entrada; para ello produce los pulsos de inicializacin, los cuales almacenan en
el registro el resultado de la medida anterior y, a la vez, borran el contador (borrado
sncrono durante una sola unidad de tiempo). A partir del borrado del contador, el
integrador genera una rampa de pendiente I/C que es comparada con la tensin de
entrada hasta que ambas tensiones son iguales.
Este conversor requiere que los trminos que intervienen en el factor de escala (I,
C y T) sean de adecuada precisin, as como el amplificador operacional y el
comparador. Es posible mejorar en gran medida la precisin de la conversin tensin-
tiempo utilizando doble rampa: un integrador genera dos rampas, una de ellas
descendente y la otra ascendente, integrando primero la tensin a medir Vi durante un
tiempo fijo y posteriormente integrando una tensin de referencia negativa Vref; el
comparador, en este caso, sirve para comparar la rampa ascendente con 0 V.
+
-
A.O.
+
- COMP
Vi
-Vref.
Doble rampa:
0 V
n.T
pendiente
m = -Vi / R.C
m' =
Vref / R.C
N.T
-Vp
CK CK
La tensin -Vp alcanzada por la rampa descendente al cabo del tiempo fijo N.TCK
de integracin sobre Vi ser:
CK
i
p
.N.T
R.C
V
= V = V
La rampa ascendente posterior, conformada por integracin sobre -Vref, tardar un
tiempo n.TCK en alcanzar los 0 voltios:
CK
ref
p
.n.T
R.C
V
= V = V
CK
ref
CK
i
.n.T
R.C
V
= .N.T
R.C
V
i i
ref
k.V = V .
V
N
= n siendo
ref
V
N
= K .
La duracin de la segunda rampa, expresada en nmero de unidades de tiempo de
reloj n, es proporcional a la tensin a medir, con un factor de escala que no depende de
R, ni de C ni de TCK, sino solamente de la tensin de referencia Vref; tomando, por
ejemplo, Vref = 10 V y N = 10.000, el nmero n expresar la medida de Vi
en
milivoltios.
172 El ect rni ca Di gi t al
Un posible esquema del circuito necesario para un conversor de doble rampa de
funcionamiento continuo es el representado en la siguiente figura:
+
-
A.O.
+
-
COMP
INTEGRADOR
- V
ref
COMPARADOR
Contador
mdulo 2N
R
C
E
B
Registro
Contador
bit ms significativo
E
CK
mx
V
i
El tiempo del ciclo es 2N.TCK; durante la primera mitad de dicho intervalo el
contador mdulo 2N pone en conduccin la puerta de transmisin superior, de forma que
el integrador genera la rampa descendente de pendiente -Vi/R.C; durante todo este
intervalo el contador que efecta la medida de la tensin permanece borrado. En el otro
semiperodo conduce la puerta de transmisin inferior, que genera la rampa ascendente
de pendiente +Vref/R.C, hasta alcanzar la tensin de 0 V, tiempo durante el cual el
segundo contador realiza el contaje hasta el valor n.
Al finalizar el intervalo de medida, se habilita el registro para almacenar el resultado
de la misma (valor n) y se descarga el condensador; a partir de aqu se inicia un nuevo
ciclo de conversin.
La utilizacin de dos rampas compensa la falta de precisin de R, C y TCK y, en
gran medida, los posibles errores introducidos por el amplificador operacional; basta
asegurar una alta precisin en la tensin de referencia y que la frecuencia de reloj sea
estable para obtener una medida digital n muy precisa.
Este tipo de conversin tensin-tiempo es relativamente lento en cuanto a realizar la
conversin A/D pero proporciona una razonable precisin a bajo coste; por ello es muy
utilizada cuando no se necesitan altas velocidades de conversin, por ejemplo, en los
voltmetros digitales de bajo coste (el operador humano necesita varios segundos para
leer el resultado de la medida, disponindose por tanto de intervalos de tiempo
relativamente amplios para completar la conversin).
18. Modul aci n de anchura de pul sos 173
18. 5. Conversores si gma del ta
El esquema de conversin tensin-tiempo-nmero constituye, tambin, la base
operativa de los denominados conversores sigma-delta (), pero en ellos los pulsos se
encuentran distribuidos homogneamente a lo largo del intervalo de tiempo en que se
efecta la conversin.
La figura siguiente representa un conversor sigma-delta tensin-tiempo muy simple:
el circuito RC de la entrada realiza una integracin de la seal Vi y la realimentacin a
travs del biestable conforma un camino de descarga que, bajo el control del comparador
analgico, hace que la tensin del condensador se mantenga en el entorno de VCC/2.
+
-
COMP
D
Q
CK R R
C
Vcc/2
Vi
pulsos
de salida
La realimentacin negativa, que se efecta a travs del biestable, intenta mantener la
tensin del condensador en el valor de referencia fijado en la otra entrada del
comparador:
- el biestable se pone a 0 cuando la tensin del condensador es mayor que la de
referencia y de esa forma proporciona un camino de descarga al condensador
- el biestable se pone a 1 cuando la tensin del condensador es menor que la de
referencia y suministra carga al condensador.
A mayor tensin de entrada mayor tiempo tiene que encontrarse el biestable a 1
(salida a 0), en situacin de desacarga del condensador, para compensar la mayor carga
que produce dicha tensin de entrada.
Habida cuenta que la salida del circuito est invertida respecto a la del biestable, el
resultado es un conjunto de pulsos de salida cuyo tiempo en 1 es proporcional a la
tensin de entrada: Tales pulsos se distribuirn de manera homognea a lo largo del
tiempo, pues se ajustan a la necesidad de carga/descarga del condensador para mantener
su tensin en el valor establecido por la referencia.
Para que el rizado del condensador sea pequeo es necesario que la constante de
tiempo del integrador RC sea mucho mayor que el perodo del reloj que mueve al
biestable TCK: RC >> TCK (o, lo que es lo mismo, que la frecuencia de corte del filtro
pasa-baja RC sea muy superior a la frecuencia de actuacin del biestable).
Para una tensin de entrada Vi continua, la realimentacin negativa mantendr la
tensin del condensador en el entorno de la tensin de referencia (comportamiento como
etapa lineal); se verificar que
V
+
V- =
V
CC
2
174 El ect rni ca Di gi t al
y para ello (para que la tensin del condensador se mantenga constante), el aporte de
carga al mismo ha de ser igual a la cesin de carga:
Q
c arga
= Q
descarga
La carga del condensador proviene de la tensin de entrada Vi y del biestable en
aquellos intervalos de tiempo en que se encuentra a 1 (salida del circuito a 0), mientras
que la descarga se debe solamente al biestable cuando se encuentra a 0 (salida a 1).
Supuesto un tiempo de ciclo T, relativamente amplio respecto al perodo del reloj
T = N. TCK, y siendo ton la suma de los intervalos de tiempo en los cuales la salida se
encuentra a 1 (el biestable a 0, VoL 0 V, produce descarga del condensador) y toff la de
los intervalos con salida a 0 (biestable a 1, VoH VCC, con efecto de carga):
off
CC
CC
CC
i
a arg c
t .
R
2
V
- V
+ T .
R
2
V
- V
= Q ;
on
CC
a arg desc
t .
R
0 -
2
V
= Q
como Q
c arga
= Q
descarga
:
on
CC
off
CC
CC
CC
i
t .
2
V
= t ).
2
V
- (V + T ).
2
V
- V (
on
CC
off
CC
off CC
CC
i
t .
2
V
+ t .
2
V
+ .t V - .T
2
V
= T . V
dado que t
on
+ t
off
= T:
on CC off CC
CC
off CC
CC
i
.t V = ) t - .(T V = T .
2
V
+ .t V - .T
2
V
= T . V
siendo T = N.T
CK
:
i i
CC
CK
i
CC CC
i
on
k.V = V .
V
N.T
= V .
V
T
=
V
T . V
= t con
CC
CK
V
N.T
= k .
El circuito efecta una conversin de la tensin de entrada Vi en tiempo de on ton:
cuanto mayor es la tensin de entrada, mayor es el tiempo del biestable a 0 necesario para
mantener el condensador en el entorno de VCC/2 (mayor tensin de entrada implica
mayor tiempo de descarga). La relacin es directamente proporcional, como lo muestra el
anterior balance de carga-descarga y la constante de proporcionalidad N.TCK/VCC puede
ajustarse adecuadamente: para N = 5000, TCK = 1s y VCC = 5 V, a 1 voltio le
corresponde 1 milisegundo.
18. Modul aci n de anchura de pul sos 175
Si la tensin de entrada es una seal (tensin variable), conformada por tensiones
positivas (Vi 0V), la conversin tensin-tiempo de on sigue siendo vlida con la
condicin de que la frecuencia mxima de la seal sea muy inferior a la de corte del filtro
que introduce el condensador; tal condicin es necesaria a fin de que la realimentacin
sea adecuadamente rpida para seguir la seal, es decir, para ajustarse a los cambios de
la tensin de entrada siendo capaz de mantener la tensin del condensador en el entorno
de la referencia VCC/2; para ello ha de verificarse que
f << f
filtro corte seal mx
CK seal mx
T >> RC >> f / 1
La segunda desigualdad (RC >> TCK) es la indicada anteriormente para condiciones
de bajo rizado.
Si durante el tiempo en 1 de la salida se habilita el contaje de unidades de tiempo
de reloj en un contador, al final del intervalo de medida, el nmero resultante en el
contador n ser proporcional a la tensin de entrada:
V .
V
N.T
= t
i
CC
CK
on
;
si el contador alcanza el nmero n
CK on
n.T = t ;
i i
CC
k.V = V .
V
N
= n siendo
CC
V
N
= k .
para N = 5000 y VCC = 5 V, n expresa la medida de la tensin Vi en milsimas de voltio.
De esta forma, al igual que en el caso del conversor por rampa, se efectan dos
conversiones seguidas: tensin-tiempo y tiempo-nmero:
tensin tiempo nmero
sigma-delta contador
resultando un conversor analgico-digital:
+
-
COMP
D
Q
CK
R R
C
Vcc/2
Vi
E
B
tiempo de medida N.T
CONTADOR
CK
N+1
mx
E REGISTRO
176 El ect rni ca Di gi t al
Este conversor puede admitir, tambin, tensiones negativas; para ello hay que situar
la tensin de comparacin a 0 V y hacer que las tensiones que proporciona el bucle de
realimentacin a travs del biestable sean simtricas: VoH = +VCC y VoL = -VCC (circuito
de la figura siguiente, en el cual el segundo comparador suministra tensiones de salida
+VCC y -VCC como resultado de la comparacin).
+
-
COMP
D
Q
CK
R R
C
0 V
Vi
B
tiempo de medida N.T
CONTADOR
CK
N+1
mx
E REGISTRO
+
-
COMP 2
Vcc/2
En este caso y con la condicin de bajo rizado RC >> TCK:
off
CC i
a arg c
t .
R
V
+ T .
R
V
= Q
on
CC
a arg desc
t .
R
V
= Q
) t - t .( V = T . V
off on CC i
El contador ha de ser bidireccional y debe contar durante el tiempo de on (biestable
a 0) y descontar en el tiempo de off (biestable a 1), de forma que
T = N.T
CK
tiempo del ciclo (N unidades de tiempo de reloj),
t
on
= n
1
.T
CK
tiempo de on durante el cual el contador cuenta en forma ascendente,
t
off
= n
2
.T
CK
tiempo de off durante el cual el contador descuenta,
siendo
2 1
n n = N + y
2 1
n - n = n el resultado global del contaje en el contador:
.n V = ) n - (n . V = .N V
CC 2 1 CC i
;
i i
CC
k.V = .V
V
N
= n ;
CC
V
N
= k .
El resultado del contaje n se presentar en codificacin en complemento a 2: cuando
las tensiones de entrada son negativas, el tiempo de off ser superior al tiempo de on y el
contador presentar nmeros negativos expresados en dicha codificacin. Para evitar su
desbordamiento (over-flow) el contador debe ser de mdulo 2N: debe poder llegar a
contener el nmero N y el nmero N en complemento a 2. La tensin de entrada
admisible en este conversor se encontrar en el intervalo [ VCC ; +VCC].
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
19 MEMORIAS DE ACCESO DIRECTO
19.1. Biestables, registros, pilas y memorias
19.2. Configuracin de los bloques de memoria de acceso directo
19.3. Arquitectura de buses: mapa de memoria
19.4. Direccionamiento de un bloque RAM en sectores separados
19.5. Memorias de slo lectura
En el captulo 11 se considera la memoria de los sistemas secuenciales desde dos puntos
de vista complementarios: el estado del sistema y el almacenamiento de datos. Dentro de
esta segunda perspectiva, la mayora de los sistemas digitales (salvo sistemas muy
simples o directos) necesitan memoria para conservar en ella informacin (datos y
resultados intermedios) que ser utilizada posteriormente.
Un biestable D es una unidad de memoria capaz de almacenar un bit, un registro de n
biestables tiene capacidad para conservar una palabra de n bits, una pila es una fila de
registros a los que se accede secuencialmente (uno tras otro) y se denomina memoria de
acceso directo RAM a un bloque de m registros numerados, con capacidad para m
palabras de n bits.
Los bloques integrados RAM permiten acceder (leer o escribir) a cada registro por
medio de su nmero, a travs de un conjunto de lneas de direccionamiento o bus de
direcciones. La transferencia de informacin se lleva a cabo por unas lneas bidireccionales
(permiten tanto leer como escribir sobre el registro seleccionado) que conforman el bus de
datos; tales lneas presentan, adems, la capacidad de desconexin, pasando a un estado
de alta impedancia (tri-estado).
La memoria de un sistema digital puede incluir mltiples bloques RAM; la
arquitectura de buses (datos y direcciones) permite organizar la memoria en forma
sencilla, asignando a cada registro un nmero binario (con longitud igual al nmero de
lneas del bus de direcciones). La correspondencia entre los registros y su numeracin da
lugar a un mapa de memoria; un bloque RAM ocupar un sector de dicho mapa y dos
bloques diferentes debern situarse en sectores diferentes.
El presente captulo describe en detalle la configuracin de los circuitos integrados de
memoria de acceso directo y la forma de insertarlos en un mapa de memoria: cmo situar
uno o varios bloques RAM en posiciones determinadas de un mapa de memoria e, incluso,
cmo ubicar segmentos de un mismo bloque en sectores separados del mapa de memoria.
Por otra parte, los codificadores ROM (estudiados en el captulo 4) pueden ser
considerados como conjuntos de palabras binarias numeradas, seleccionables por su vector
de entrada o direccin; en tal sentido, pueden ser utilizados como memorias de slo
lectura. De forma que, adems de los bloques RAM que solamente pueden suministrar
datos despus de que el sistema los haya escrito en ellos, pueden existir bloques ROM que
corresponden a conjuntos de registros de informacin fija (progamada previamente sobre
ellos).
178 El ect rni ca Di gi t al
19. 1. Bi est abl es, regi st ros y memori as
Una clula o unidad de memoria digital es un dispositivo capaz de almacenar y
conservar un bit de informacin, es decir, un 0 o un 1 booleanos. La unidad de memoria
bsica es el biestable y, en concreto, el biestable tipo D: la entrada de habilitacin
determina el momento de aceptacin de un nuevo bit, que ser conservado hasta una
nueva habilitacin
D
E
Q
D
E
Q
Q
E
D
Q
Q
Biestable D con puertas Nand
con puertas de
transmisin
Un conjunto de n biestables D con habilitador comn conforma un registro con
capacidad de una palabra binaria de n bits: registro de retencin (latch memory).
Q
F F
D
E
Q
F F
D
E
Q
F F
D
E
Q
F F
D
E
Q3
D3
E
Q2 Q1 Q0
D2 D1 D0
Este tipo de registros, habilitados por nivel (entrada de habilitacin E = 1),
constituyen el elemento bsico de almacenamiento masivo de informacin digital, ya que
generalmente son de este tipo los registros internos de las memorias de acceso directo
(bloques integrados RAM).
En los biestables sncronos la habilitacin se realiza por flancos (CK = ) en lugar
de por niveles; cada biestable sncrono se construye por asociacin de dos biestables
habilitados por nivel, en configuracin amo-esclavo (master-slave) de forma que la
habilitacin combinada del primer biestable con 0 y del segundo con 1 produce una
habilitacin global con flancos de subida (paso de la seal de reloj de 0 a 1).
D
Q
F F
D
Q
E
D
Q
F F
D
Q
E
D
CK
D
Q
F F
D
CK
Q
19. Memori as de acceso di rect o 179
Con biestables sncronos, adems de registros de retencin sncronos, pueden
conformarse otros dos tipos de registros de particular inters: los registros de
desplazamiento y los contadores. [Los contadores, su configuracin y sus aplicaciones,
han sido descritos en detalle en los tres captulos anteriores (16, 17 y 18).]
Los registros de desplazamiento (shift register, apartado 13.2) resultan de conectar
un conjunto de biestables D sncronos en serie, de forma que la informacin que reciben
avanza un biestable con cada pulso de reloj; de esta manera pueden recibir una palabra
binaria, bit a bit, a travs de su entrada y presentarla completa en las salidas de los
biestables: conversin serie-paralelo.
D
Q
F F
D
Q3
CK
D
Q
F F
D
CK
D
Q
F F
D
CK
D
Q
F F
D
CK
D
CK
Entrada
serie
Reloj
Salidas paralelo
Q2 Q1 Q0
Aadiendo a un registro de desplazamiento la posibilidad de carga paralelo (propia
del registro de retencin) se dispone, tambin, de la conversin paralelo-serie: una
palabra recibida a travs de las entradas paralelo puede ser transmitida, bit a bit, a travs
de la salida del ltimo biestable.
F F
D
F F
D
F F
D
F F
D
Q3
CK
Entrada
serie
D
Salidas paralelo
Entradas paralelo E
Habilitacin
entradas paralelo
Reloj
Q2 Q1 Q0
D3 D2 D1 D0
Adems, los registros de desplazamiento resultan tiles para los algoritmos de
multiplicacin y de divisin, ya que el desplazamiento de un nmero un lugar hacia la
izquierda equivale a multiplicar dicho nmero por 2. [Asimismo los registros de
desplazamiento permiten la configuracin de pilas, memorias de acceso secuencial, que
sern consideradas al final de este mismo apartado.]
180 El ect rni ca Di gi t al
En sistemas digitales reducidos bastan unos pocos registros junto con algunos
contadores y algunos biestables de estado para configurar la memoria global del sistema.
Ahora bien, en sistemas complejos suele requerirse un alto nmero de registros para
memorizar el conjunto de datos y resultados (e instrucciones en el caso de sistemas que
actan bajo programa).
Resulta muy til disponer, en un mismo bloque digital, de un amplio nmero de
registros, capaces, cada uno de ellos, de memorizar una palabra binaria de n dgitos; los
terminales de entrada y salida a estos registros han de ser comunes para todos ellos y unas
entradas adicionales de direccionamiento indicarn en cada momento a cul de los
registros interesa acceder.
Esta agrupacin de m registros de n bits, seleccionables por k entradas de
direccionamiento (m = 2
k
), recibe el nombre de memoria de acceso directo (random
access memory): RAM.
A0
D0
'
'
'
'
'
A1
A2
A3
A4
Ak-2
Ak-1
M E M O R I A R A M
de m registros ( m = 2 )
de n bits cada uno
Capacidad: m x n bits
k
D1
D2
Dn-2
Dn-1
Lneas
de
Datos
R/W
(lectura/escritura)
E
(habilitacin)
Lneas
de
Direccio-
namiento
'
'
'
'
'
La denominacin de memoria de acceso directo (acceso aleatorio) indica que, en
cualquier momento, puede leerse o escribirse directamente sobre cualesquiera de sus
registros. El calificativo de aleatorio se utiliz por contraposicin a las memorias de
acceso secuencial, en las cuales para acceder a un dato es preciso desplazar previamente
todos los anteriores; un ejemplo caracterstico de memorias de acceso secuencial son las
de cinta magntica.
En un bloque RAM el vector presente en las entradas de direccionamiento selecciona
el registro sobre el que se lee o se escribe y los terminales de datos actan como entradas
y como salidas para todos los registros, de forma que el tipo de acceso (lectura del
registro o escritura del mismo) ha de ser controlado por una lnea adicional R/W
(lectura/escritura).
Una memoria de acceso directo tendr k lneas de direccionamiento Ai, que actan
como entradas, n lneas de datos Di, bidireccionales, una entrada de seleccin de la
operacin a realizar R/W, que distingue entre las dos operaciones siguientes:
- R/W = 1 operacin de lectura del registro seleccionado por Ai
- R/W = 0 operacin de escritura sobre el registro seleccionado por Ai
y una o varias entradas de habilitacin CE, que permiten (CE = 1) o inhiben (CE = 0) el
funcionamiento global de la memoria.
19. Memori as de acceso di rect o 181
La transferencia de datos de un bloque de memoria de acceso directo RAM presenta
dos nuevas posibilidades, no contempladas hasta ahora en los bloques digitales: la
bidireccionalidad (los terminales de datos son bidireccionales, es decir, actan en unos
momentos como entradas y en otros como salidas) y la desconexin (los terminales de
datos pueden situarse en estado de alta impedancia).
En las funciones y bloques digitales considerados anteriormente cada terminal era
claramente unidireccional, entrada o salida, y los terminales se conectaban a travs de
lneas unidireccionales en las que los valores booleanos se comunicaban desde una salida
a una o a varias entradas. Las lneas de datos de las memorias de acceso directo son
bidireccionales, ya que tales bloques utilizan los mismos terminales cuando reciben la
informacin a memorizar (escritura) y cuando la envan (lectura).
Adems, se dota a los terminales de datos de una tercera posibilidad en la forma de
un tercer estado, la desconexin: cuando CE = 0 las lneas de datos de dicho bloque no
actan ni como entradas ni como salidas, sino como si el bloque no estuviese conectado a
ellas. Esta capacidad de desconexin, estado de alta impedancia, permite la conexin de
varios bloques RAM sobre las mismas lneas de datos, actuando en cada momento uno de
ellos y estando inhibidos los dems.
La figura de la pgina siguiente representa la conexin de 4 bloques RAM de 4K
registros de 8 bits, formando una memoria de 16K registros; se utilizan 12 lneas de
direccionamiento para seleccionar el registro interno de entre los 4K que posee cada uno
de los integrados y 2 lneas ms de direccionamiento, convenientemente decodificadas en
sus cuatro posibilidades, para habilitar uno de los cuatro bloques.
La bidireccionalidad y la desconexin o triestado, permiten introducir el concepto
de bus de datos como conjunto de lneas que enlazan a diversos bloques digitales y por
las que pueden transmitirse los datos en ambas direcciones. El bus de datos configura una
forma sencilla de comunicacin entre la parte que procesa la informacin (procesador) y
la parte que la almacena (memoria).
Anlogamente, las lneas de direccionamiento (que seleccionan un registro de entre
los muchos que forman cada bloque) son compartidas por los diversos elementos de
memoria y reciben el nombre de bus de direcciones; dicho bus es unidireccional
(comunica hacia la memoria el nmero del registro).
Bus de datos y bus de direcciones facilitan en gran medida la organizacin
estructural de aquellos sistemas que requieren amplia capacidad de memoria; se
necesitan, adems, unas pocas lneas de control que determinen el sentido de la operacin
a realizar (lectura/escritura) y el momento de su ejecucin (sincronizacin).
182 El ect rni ca Di gi t al
R A M
4K x 8
R A M
4K x 8
R A M
4K x 8
R A M
4K x 8
De
co
di
fi
ca
dor
A13
A12
A11
A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
B
U
S
D
E
D
I
R
E
C
C
I
O
N
E
S
B
U
S
D
E
D
A
T
O
S
11
10
01
00
CHS R/W
CHS R/W
CHS R/W
CHS R/W
C
o
n
t
r
r
o
l
d
e
L
e
c
t
u
r
a
/
E
s
c
r
i
t
u
r
a
Bidireccional
Tri-estado
R/W
19. Memori as de acceso di rect o 183
Memorias de acceso secuencial
Consideraremos brevemente otra forma de agrupar conjuntos de registros consistente
en apilarlos (cada uno encima del anterior) formando una columna de ellos; el
acceso a los registros ser secuencial: habr que leer y escribir en ellos segn el orden de
la columna.
La agrupacin de varios registros en vertical, de manera que reciban la
informacin por las entradas del primero de ellos y la devuelvan por las salidas del ltimo
registro, da lugar a una pila; el conjunto equivale a una memoria de desplazamiento,
capaz de almacenar secuencialmente varias palabras binarias y devolverlas en el mismo
orden en que las ha recibido: pila FIFO (first in, first out), la primera palabra en entrar
ser tambin la primera en salir.
El desplazamiento se produce a travs de los sucesivos registros; en tal sentido, una
pila FIFO de n registros de m bits puede construirse con m registros de desplazamiento
de n bits cada uno de ellos, orientados verticalmente y colocados unos al lado de otros:
CK
Salida
Entrada
D
e
s
R p
e l
g a
i d z
s e a
t m
r i
o e
n
t
o
D3 D2 D1 D0
Q3 Q2 Q1 Q0
Pila FIFO
(de 6 registros)
CK
Una memoria RAM puede ser utilizada como pila FIFO si se le aaden dos
contadores que realicen su direccionamiento en la siguiente forma:
- los contadores debern ser de mdulo igual a la capacidad de la memoria (para
recorrer exactamente las direcciones de la misma);
- uno de ellos contendr la direccin de escritura y deber incrementarse (pasar a la
direccin siguiente) cuando se escribe en la pila;
- el otro contador tendr la direccin de lectura y se incrementar tambin cuando se
produzca una operacin de lectura en la misma;
- cuando ambos contadores sealen la misma direccin la pila se encontrar vaca y,
en cambio, cuando el contador de escritura alcance la direccin anterior a la de
lectura la pila estar llena (y no deben escribirse nuevos datos en ella).
184 El ect rni ca Di gi t al
Las pilas FIFO se utilizan para almacenar temporalmente palabras binarias (es decir,
informaciones sucesivas) que sern utilizadas posteriormente en el mismo orden con que
se han recibido o producido; una aplicacin tpica es la comunicacin entre sistemas de
diferente velocidad (por ejemplo entre un computador y una impresora), de forma que el
emisor deposita a su propia velocidad un fichero sobre la pila y el receptor lo recoge a
una velocidad distinta.
Otro tipo diferente es la pila LIFO (last in, first out) en la que la ltima palabra en
entrar es la primera en salir; tendr los mismos terminales para almacenar una palabra y
para extraerla de la pila, de forma que las palabras se leen en orden inverso al que se han
escrito en ella. Puede construirse con registros de desplazamiento bidireccionales,
conformando un bus, tambin bidireccional, con las entradas y salidas de los primeros
biestables de dichos registros.
CK
Entrada/
Salida
D
e
s
R p
e l
g a
i d z
s e a
t m
r i
o e
n
t
o
D3 D2 D1 D0
Pila FIFO
(de 6 registros)
sentido
del desplazamiento
CK
sentido
del desplazamiento
Los procesadores de los sistemas que actan bajo programa (computadores,
microprocesadores, etc. ) utilizan las pilas LIFO para el servicio de subrutinas,
interrupciones y otros tipos de saltos que se realizan con intencin de volver; la
informacin relativa a la vuelta al punto desde el que se efecta el salto ha de ser
almacenada de forma que, si se producen varios saltos sucesivos, la informacin
correspondiente al ltimo de ellos ser la primera en ser recuperada.
Tambin es posible utilizar una memoria RAM como pila FIFO; bastar aadirle un
contador de direccionamiento (de mdulo igual a la capacidad de la memoria), que
indique la posicin de memoria en la que se debe escribir (la primera posicin que se
encuentra vaca). La escritura debe efectuarse sobre dicha posicin de memoria y el
contador debe incrementarse (sealando la siguiente), mientras que la lectura debe
hacerse decrementando previamente el contador y leyendo de la posicin de memoria
resultante. La pila LIFO se encontrar vaca cuando el contador indique la primera
posicin de la memoria RAM y estar llena cuando el contador contenga la ltima
posicin de la misma.
19. Memori as de acceso di rect o 185
19. 2. Confi guraci n de l os bl oques de memori a de acceso di rect o
La mayora de las memorias de acceso directo integradas presentan tres terminales
de control:
- CE que habilita el circuito integrado (CE = 0 ), de forma que si CE = 1 es
como si dicho circuito no se encontrara presente, es decir, todas sus lneas de datos
se encuentran en alta impedancia y las diversas partes que conforman el integrado
adoptan un estado de consumo mnimo (standby)
- E W que habilita la operacin de escritura (WE = 0 ), posicionando las lneas de
datos como entradas y activando el correspondiente circuito de escritura
- OE que habilita las lneas de datos como salidas (OE = 0 ), permitiendo la
ejecucin de una operacin de lectura.
De acuerdo con ello, el circuito integrado RAM se puede encontrar en una de las
siguientes cuatro situaciones:
CE = 1 desconexin y consumo mnimo
CE = 0 y WE = 0 escritura; lneas de datos como entradas
CE = 0 , WE = 1 y OE = 0 lectura; lneas de datos como salidas
CE = 0 , WE = 1 y OE = 1 conectado; las lneas de datos en alta impedancia.
La estructura interna de una memoria de acceso directo es, en trminos conceptuales,
la representada en la siguiente figura:
A0
D0
'
'
'
'
'
'
'
'
'
'
A1
A2
A3
A4
Ak-2
Ak-1
M E M O R I A
de m registros
de n biestables
D1
D2
Dn-2
Dn-1
D E
C O
D I
F I
C A
'
'
'
'
2 lneas
k
A
DAP
T A
DOR
'
'
'
'
'
CE WE OE
DOR
El mdulo central de la memoria contiene m = 2
k
registros, constituido cada uno de
ellos por n biestables. El decodificador es un bloque combinacional tpico que selecciona
numricamente una de entre m lneas, cada una de las cuales va a corresponder a uno de
los registros.
186 El ect rni ca Di gi t al
Un circuito adaptador determina la direccin del flujo de informacin del registro
direccionado:
- lectura del contenido del mismo, operando las lneas de datos como salidas
- escritura de un nuevo dato sobre sus biestables, actuando las lneas de datos
como entradas.
Obviamente, la lectura de un registro de un bloque RAM es una operacin no
destructiva: el registro no se borra ni se modifica, sino que sigue conservando la palabra
binaria que se ha ledo; solamente la escritura de una nueva palabra en tal registro
modifica su contenido.
El circuito adaptador realiza el control de las operaciones de la memoria
(lectura/escritura/desconexin), a travs de adaptadores triestado cuya entrada de
habilitacin determina su situacin de conexin o desconexin (estado de alta
impedancia); la bidireccionalidad se consigue mediante la utilizacin de dos adaptadores
triestado, que permiten actuar como salidas de los registros (lectura) o como entradas de
los mismos (escritura).
CE
WE
OE
lnea de datos
salida registros (lectura)
entrada registros (escritura)
Debido al gran nmero de registros presentes, resulta necesario minimizar el rea de
integracin y la forma de seleccin de los mismos, para lo cual se adoptan
configuraciones muy simples.
Basta con un solo decodificador para seleccionar el registro sobre el que se ejecuta la
correspondiente operacin (lectura/escritura); las k lneas de direccionamiento sern
decodificadas en sus 2
k
posibilidades, cada una de las cuales sirve para habilitar uno de
los registros de la memoria. Ahora bien, el tamao del decodificador y el nmero de
lneas de seleccin de registros puede reducirse mucho dividiendo la decodificacin en
dos partes (fila y columna), de forma que cada registro corresponda a dos lneas de
seleccin (su fila y su columna).
De manera que un bloque RAM de 1 Mega, en lugar de decodificar de una vez sus
20 lneas de direccionamiento sobre sus 1.048.576 registros, divide dichas lneas en dos
grupos de 10, con dos decodificadores mucho ms pequeos, cuyas lneas de salida se
reducen a 2 x 1.024 (un nmero quinientas veces inferior al anterior). El decodificador
de 20 lneas de entrada hubiera requerido 10
6
puertas con, al menos, 20 x 10
6
transistores,
mientras que dos decodificadores de 10 lneas de entrada requieren del orden de 2 x 10
3
puertas con unos 20 x 10
3
transistores).
19. Memori as de acceso di rect o 187
Por ello, para reducir el nmero de lneas necesarias para la seleccin de registro y el
tamao de los decodificadores, la distribucin de los biestables de los registros adopta
una estructura de tipo bidimensional, conformando una matriz en la que cada registro
queda identificado por la fila y la columna que ocupa ; las lneas de direccionamiento se
agrupan en dos subconjuntos, uno de los cuales indica la fila y el otro la columna a la que
pertenece el registro seleccionado. [Vase la correspondiente figura en la pgina
siguiente.]
Los biestables de cada registro se localizan en hojas sucesivas; cada una de ellas
contiene un biestable de cada uno de los registros y se encuentra recorrida
horizontalmente por las lneas de seleccin de fila y verticalmente por lneas que enlazan
cada una de las columnas; cada hoja se corresponde con una de las lneas del bus de datos
y cuenta con un amplificador de lectura/escritura.
Cada columna cuenta con dos lneas una para Q y otra para Q, conectadas ambas a
los correspondientes terminales de los biestables; al seleccionar una de las filas, mediante
la activacin de la correspondiente lnea de seleccin de fila, los biestables que se
encuentran en ella quedan unidos a las lneas de columna que les corresponden.
[Vanse en relacin con este prrafo y siguientes las figuras de la pgina 189.]
Las lneas de columna establecen la comunicacin de los biestables con el
amplificador de lectura/escritura; un amplificador para cada una de las hojas, es decir,
para cada uno de los bits de los registros. Las lneas de seleccin de columna determinan
que, en cada momento, solamente una de las columnas se encuentre unida a dicho
amplificador de lectura/escritura.
Las operaciones de lectura y de escritura son realizadas por el citado amplificador de
lectura/escritura actuando sobre las lneas de columna, esto es, comparando las
tensiones existentes en ambas (lectura) o imponindoles el correspondiente valor
booleano (escritura):
- una operacin de escritura se ejecuta estableciendo en la lnea Q de la columna
seleccionada el valor booleano a almacenar en el correspondiente biestable y en la
lnea Qel valor booleano inverso
- una operacin de lectura se realiza por comparacin entre las tensiones de ambas
lneas de columna para discriminar cul de ellas se encuentra a 1 (a mayor tensin).
La configuracin electrnica de cada biestable ha de ser tambin muy simple para
reducir su rea de integracin: basta un par de inversores en lazo cerrado, la salida de
cada uno de ellos conectada a la entrada del otro.
188 El ect rni ca Di gi t al
D
e
c
o
d
i
f
i
c
a
d
o
r
D
i
r
.
F
i
l
a
CE
Ai
CE
CE
WE
OE
Di
Decodif. Dir. Columna
Amplificador R/W
CE
Ai
A
dap
ta
dor
tri-
es
ta
do
A
dap
ta
dor
tri-
es
ta
do
Estructura de una memoria de acceso directo (diagrama de bloques)
19. Memori as de acceso di rect o 189
lnea
bit Q
lnea
bit Q
seleccin
de columna
seleccin
de fila
biestable
+
-
Comparador
lectura
escritura
WE
OE
Conexin y forma de seleccin de los biestables en una memoria de acceso directo
Vcc
l nea
de bi t Q
seleccin
de fila
l nea
de bi t Q
Configuracin y conexiones de uno de los biestables en tecnologa CMOS
190 El ect rni ca Di gi t al
19. 3. Arqui t ect ura de buses: mapa de memori a
Un bus es un conjunto de lneas de comunicacin entre varios subsistemas o bloques
digitales, en concreto, entre varios circuitos integrados, entre varias placas de circuitos en
los sistemas amplios o, incluso, entre sistemas digitales diferenciados.
La utilizacin conjunta del bus de datos y del bus de direcciones ha permitido
organizar la memoria en forma muy simple: todos los registros se numeran
correlativamente accediendo a ellos (lectura o escritura) por las mismas lneas de datos
mientras que las lneas de direccionamiento seleccionan el registro sobre el que se opera.
Las lneas de datos son bidireccionales (lectura/escritura), mientras que las de
direccionamiento son unidireccionales (se dirigen siempre hacia la memoria).
A cada registro se le hace corresponder circuitalmente un nmero binario
diferenciado; a cada nmero o direccin le corresponde un slo registro o ninguno
(posicin de memoria vaca): dicho nmero de seleccin (direccin) de registro es
recibido por la memoria, a travs del bus de direcciones Ai. La correspondencia entre
cada registro o conjunto de registros y la direccin o direcciones que ocupan configura el
mapa de memoria del sistema.
Los buses determinan una divisin estructural del sistema digital en dos partes: el
procesador que efecta el procesamiento de la informacin (unidad operativa y de
control) y la memoria que almacena la informacin. Procesador y memoria se comunican
a travs de tres buses:
el bus de datos, por el que viaja la informacin en forma de palabras digitales
el bus de direcciones, que selecciona el registro sobre el que se opera
el bus de control, que determina la direccin de transferencia de la informacin y
sincroniza dicha transferencia.
PROCESADOR MEMORIA
BUS DE
DATOS
BUS DE
DIRECCIONES
BUS DE CONTROL
El bus de datos es bidireccional; puede recibir la informacin del procesador y
comunicarla hacia la memoria o, al revs, actuar la memoria como salida de la
informacin y el procesador como entrada. El nmero de lneas de datos determina la
longitud de palabra y de los registros de la memoria.
19. Memori as de acceso di rect o 191
Los buses de direcciones y de control estn constituidos por lneas que salen del
procesador y llegan a los mltiples bloques que constituyen la memoria. El nmero de
lneas de direcciones determina la capacidad mxima de memoria que puede manejar
directamente el procesador: con 10 lneas se pueden seleccionar solamente 1.024 registros
(1K); 16 lneas alcanzan a discriminar entre 64K registros (65.536); 20 lneas de
direccionamiento permiten manejar 1 Mega (1.048.576) y 32 lneas suponen la
posibilidad de 4 x 10
9
registros (4.000 Megas).
El bus de control incluir al menos tres lneas referidas, respectivamente, a la
seleccin de la operacin a efectuar R/W (lectura/escritura), a la validacin de la
direccin presente en el bus de direcciones DIRV (direccin vlida) y a la validacin del
dato enviado por el procesador al bus de datos en las operaciones de escritura DATV
(dato vlido). DIRV evita que se efecten operaciones sobre la memoria en momentos en
que no hay una direccin vlida en el bus de direcciones y DATV impide que se
produzcan operaciones de escritura cuando no se dispone del dato correcto en el bus de
datos.
Entendemos por mapa de memoria la distribucin de las posiciones de memoria
posibles entre los registros que la integran, efectuando una asignacin numrica a cada
registro. Una direccin o posicin de memoria viene caracterizada por el correspondiente
nmero binario de m bits, tantos como lneas tiene el bus de direcciones encargado de
seleccionarla; para evitar la complejidad de manejo de largos nmeros binarios, suele
utilizarse el sistema hexadecimal para numerar las direcciones.
De esta forma, si el bus de direcciones es de 16 lneas, cada posicin de memoria
estar numerada por 16 dgitos binarios, pero bastan 4 cifras hexadecimales para expresar
tal numeracin; la capacidad total de memoria direccionable con dicho bus ir de la
posicin 0000H a la FFFFH (65.535(10)
En los siguientes ejemplos se considera que el bus de direcciones es de 16 lneas
A15 - A0 y se utilizan las siguientes lneas de control:
- seleccin de lectura/escritura R/W
- validacin de direccin DIRV
- y validacin del dato enviado por el procesador para su escritura DATV
(se supone que cuando se indica que el dato es vlido, DATV = 1, tambin lo es
la direccin, DIRV = 1).
Para diferenciar las lneas del bus de direcciones de las entradas de direccionamiento
de los bloques RAM, denotaremos con maysculas Ai las lneas del bus y con
minsculas las entradas ai de cada bloque; un bus de direcciones de 16 lneas
corresponder al conjunto A15 - A0, mientras que un circuito integrado de 1K registros
tendr 10 entradas de direccionamiento (1K = 2
10
) que correspondern a a9 - a0.
Asimismo, se utiliza la palabra sector para referirse a un conjunto de posiciones
sucesivas (a un trozo) del mapa de memoria y la palabra segmento para un conjunto
de registros seguidos (un trozo) de un bloque RAM.
192 El ect rni ca Di gi t al
19.3.1. Posicionamiento de un simple registro: dado un registro de retencin (entrada
de habilitacin E), se desea situarlo en la posicin B9A5H del mapa de memoria.
B 9 A 5 H = 1011 1001 1010 0101
Para ello ser necesario activar la entrada de habilitacin del registro con el trmino
mnimo correspondiente a dicho nmero binario:
A
15
.A
14
.A
13
.A
12
. A
11
.A
10
.A
9
.A
8
. A
7
.A
6
.A
5
.A
4
. A
3
.A
2
.A
1
.A
0
Adems, es preciso multiplicar dicho trmino por R/ W para que la habilitacin
slo se produzca en las operaciones de escritura y por DATV para que dicha escritura se
efecte cuando el dato sea vlido (que tambin lo ser la direccin).
Di
Q
i
DIR
R/W
DATV
Registro
E
A15
A14
A13
A12
A11
A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
bus de datos
19.3.2. Posicionamiento de un bloque RAM: dado un circuito integrado RAM de 2K
registros, se desea situarlo a partir de la posicin 5800H del mapa de memoria.
5 8 0 0 H = 0101 1000 0000 0000
Un bloque de 2 K requiere 11 lneas de direccionamiento a10 - a0 para los 2048
registros que contiene (2K = 2 x 2
10
), de forma que ocupar las posiciones de memoria:
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 5 8 0 0 H
0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 5 F F F H
es decir todas las posiciones correspondientes a los nmeros binarios
0 1 0 1 1 - - - - - - - - - - - 5800 5FFF
donde el signo representa la posibilidad de ambos valores boleanos 0, 1.
19. Memori as de acceso di rect o 193
Para situar los registros en dichos nmeros ser preciso habilitar el bloque con:
A15 A14 A13 A12 A11
0 1 0 1 1 A15 = 0, A14 = 1, A13 = 0, A12 = 1 y A11 = 1
CE = A
15
. A
14
. A
13
. A
12
. A
11
. DIRV
Adems, las lneas de direccionamiento a10 a0 han de conectarse a las
correspondientes del bus de direcciones: A10 A0, la habilitacin de escritura debe
producirse cuando R/W = 0 y DATV = 1 y la de lectura cuando R/W = 1:
a
10
- a
0
= A
10
- A
0
; WE = R/ W . DATV ; OE = R/W.
A
10
A
9
A
8
A
7
A
6
A
5
A
4
A
3
A
2
A
1
A
0
CE WE OE
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
A
15
A
14
A
13
A
12
A
11
DATV
R/W
DIRV
RAM
2K x 8
19.3.3. Posicionamiento de 8 bloques RAM: sean 8 circuitos integrados RAM de 2K
registros
a) se desea colocarlos a partir de la posicin 8000H del mapa de memoria.
8 0 0 0 H = 1000 0000 0000 0000
Cada bloque necesita 11 lneas de direccionamiento a10 - a0 y para situar los 8
bloques seguidos son precisas 3 lneas ms A13 A12 A11, de forma que el conjunto
ocupar:
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 H
1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 B F F F H
es decir, todas las posiciones indicadas en:
1 0 - - - - - - - - - - - - - - 8000 BFFF.
194 El ect rni ca Di gi t al
La ubicacin de los 8 bloques sucesivos ser la siguiente:
1 0 0 0 0 - - - - - - - - - - - 8000 87FF
1 0 0 0 1 - - - - - - - - - - - 8800 8FFF
1 0 0 1 0 - - - - - - - - - - - 9000 97FF
1 0 0 1 1 - - - - - - - - - - - 9800 9FFF
1 0 1 0 0 - - - - - - - - - - - A000 A7FF
1 0 1 0 1 - - - - - - - - - - - A800 AFFF
1 0 1 1 0 - - - - - - - - - - - B000 B7FF
1 0 1 1 1 - - - - - - - - - - - B800 BFFF.
Los 8 bloques se diferenciarn por los valores de las lneas A13 A12 A11, de manera
que podemos utilizar para seleccionarlos un decodificador de 3 entradas y 8 salidas, que
disponga de una lnea de habilitacin para situar el conjunto en el sector del mapa de
memoria que corresponde a A15 = 1 y A14 = 0.
E (decodificador) = A
15
. A
14
. DIRV
Las lneas a10 a0 de los bloques irn conectadas a las del mismo nmero del bus de
direcciones, A10 A0, y las habilitaciones de escritura y lectura corresponden a
WE = R/ W . DATV y R/W = OE .
CE1
CE2
CE3
CE4
CE5
CE6
CE7
CE8
Habilitaciones
de los 8 bloques
RAM
A
13
A
12
A
11
E
De
co
di
fi
ca
dor A
15
A
14
DIRV
DATV
R/W
WE
OE
b) los 8 bloques RAM deben situarse a partir de la posicin 1000H del mapa.
1 0 0 0 H = 0001 0000 0000 0000
En este caso, respecto a las 14 lneas de direcciones necesarias para situar el
conjunto ( a10 - a0 para los 2K de cada bloque y A13 A12 A11 para los 8 bloques), no
disponemos de todas las posibilidades a partir del nmero inicial (pues la lnea A12 tiene
ya de entrada valor 1, no puede comenzar desde 0).
19. Memori as de acceso di rect o 195
Por ello, es preciso ocupar los siguientes sectores de memoria:
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 H
0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 F F F H
0 0 0 1 - - - - - - - - - - - - 4K
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 H
0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 F F F H
0 0 1 - - - - - - - - - - - - - 8K
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 H
0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 4 F F F H
0 1 0 0 - - - - - - - - - - - - 4K.
En el primero de los sectores anteriores caben 4K (dos de los bloques), el segundo
sector es de 8K (cuatro bloques de 2K) y, por ltimo, quedan 4K (dos bloques) que irn
en el tercero de los sectores.
La situacin de los 8 bloques sucesivos ser la siguiente:
0 0 0 1 0 - - - - - - - - - - - 1000 17FF
0 0 0 1 1 - - - - - - - - - - - 1800 1FFF
0 0 1 0 0 - - - - - - - - - - - 2000 27FF
0 0 1 0 1 - - - - - - - - - - - 2800 2FFF
0 0 1 1 0 - - - - - - - - - - - 3000 37FF
0 0 1 1 1 - - - - - - - - - - - 3800 3FFF
0 1 0 0 0 - - - - - - - - - - - 4000 47FF
0 1 0 0 1 - - - - - - - - - - - 4800 4FFF.
Como los 8 bloques van seguidos, las lneas A13 A12 A11 sirven para diferenciarlos
(si bien el primer bloque en el mapa de memoria corresponde al valor 010 de dichas
lneas, el segundo al valor 011, y el ltimo al valor 001) y puede utilizarse un
decodificador anlogo al del ejercicio anterior; pero, en este caso, el decodificador debe
habilitarse en las siguientes situaciones:
A15 = 0, A14 = 0, A13 = 0, A12 = 1
A15 = 0, A14 = 0, A13 = 1
A15 = 0, A14 = 1, A13 = 0, A12 = 0
E (decodif.) = A
15
. ( A
14
.A
13
.A
12
+ A
14
.A
13
+ A
14
.A
13
.A
12
) . DIRV
a
10
- a
0
= A
10
- A
0
; WE = R/ W . DATV ; OE = R/W.
196 El ect rni ca Di gi t al
19.3.4. Posicionamiento de 4 bloques RAM en sectores no contiguos: sean 4 circuitos
integrados RAM de 2K registros que deben colocarse en el mapa de memoria
a) a partir de las posiciones 0000H, 2000H, 4000H, y 6000H, respectivamente.
La situacin de los 4 bloques sucesivos ser la siguiente:
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0 0 0 0 0 - - - - - - - - - - - 0000 07FF
0 0 1 0 0 - - - - - - - - - - - 2000 27FF
0 1 0 0 0 - - - - - - - - - - - 4000 47FF
0 1 1 0 0 - - - - - - - - - - - 6000 67FF
Se observa que los 4 bloques pueden diferenciarse por los valores de las lneas A14
A13 de forma que pueden seleccionarse mediante un decodificador de 2 lneas de entrada
(A14 A13) y 4 de salida (para las habilitaciones CE de cada uno de los circuitos
integrados); las lneas A14 y A13 adoptan los cuatro vectores posibles (00, 01, 10 y 11) y
las otras tres lneas A15 A12 y A11 tienen el mismo valor en los cuatro bloques, de forma
que el decodificador debe habilitarse cuando: A15 = 0, A12 = 0, A11 = 0.
E (decodificador) = A
15
. A
12
. A
11
. DIRV
a
10
- a
0
= A
10
- A
0
; WE = R/ W . DATV ; OE = R/W .
b) a partir de las posiciones 1000H, 5000H, 9800H, y B000H.
La situacin de los 4 bloques sucesivos ser la siguiente:
0 0 0 1 0 - - - - - - - - - - - 1000 17FF
0 1 0 1 0 - - - - - - - - - - - 5000 57FF
1 0 0 1 1 - - - - - - - - - - - 9800 9FFF
1 0 1 1 0 - - - - - - - - - - - B000 B7FF
Como no existe ninguna regularidad en las posiciones que ocupan, los 4 bloques
debern habilitarse independientemente, a travs de la funcin correspondiente a su
situacin en el mapa de memoria:
CE 1 = A
15
. A
14
. A
13
. A
12
. A
11
. DIRV
CE 2 = A
15
. A
14
. A
13
. A
12
. A
11
. DIRV
CE 3 = A
15
. A
14
. A
13
. A
12
. A
11
. DIRV
CE 4 = A
15
. A
14
. A
13
. A
12
. A
11
. DIRV
Estas funciones pueden ser programadas sobre un bloque PAL (precisamente el
direccionamiento para configurar mapas de memoria fue una de las primeras aplicaciones
de dichos bloques programables).
19. Memori as de acceso di rect o 197
19. 4. Di recci onami ent o de un bl oque RAM en sect ores separados
Aunque los ejemplos siguientes constituyen casos muy particulares de ubicacin de un
circuito integrado RAM en un mapa de memoria (que no se presentan habitualmente), son
de gran inters de cara a comprender en profundidad el posicionamiento de registros en
un mapa de memoria.
19.4.1. Sea un circuito integrado RAM de 8K (13 lneas de direccionamiento), cuyos
registros se desean colocar en el mapa de memoria, en sectores no contiguos:
a) 4K registros en el sector inicial del mapa de memoria y 4K en el final.
Un segmento de 4K registros requiere 12 lneas de direccionamiento a11 a0, de
forma que el situado en el sector inicial tendr las restantes lneas A15 A12 a 0, mientras
que su valor para el sector final ser 1; el circuito integrado de 8K tendr 13 lneas de
direccionamiento a12 a0, 12 de las cuales a11 a0 sirven para conformar segmentos de
4K y la lnea a12 distinguir entre los dos segmentos (inicial y final del mapa de
memoria):
0 0 0 0 - - - - - - - - - - - - 0000 0FFF
1 1 1 1 - - - - - - - - - - - - F000 FFFF
CE = (A
15
. A
14
. A
13
. A
12
+ A
15
. A
14
. A
13
. A
12
) . DIRV
a
12
= A
12
o, tambin, a
12
= A
15
a
11
- a
0
= A
11
- A
0
; WE = R/ W . DATV ; OE = R/W .
b) 2K registros en los sectores del mapa de memoria cuya direccin inicial es,
respectivamente, 0000H, 4000H, 8000H y C000H.
Un segmento de 2K registros requiere 11 lneas de direccionamiento a10 a0; las
posiciones de memoria ocupadas por los cuatro segmentos de 2K sern:
0 0 0 0 0 - - - - - - - - - - - 0000 07FF
0 1 0 0 0 - - - - - - - - - - - 4000 47FF
1 0 0 0 0 - - - - - - - - - - - 8000 87FF
1 1 0 0 0 - - - - - - - - - - - C000 C7FF
Para situar el bloque en estas posiciones, debe habilitarse cuando
A13 = 0, A12 = 0, A11 = 0: CE = A
13
. A
12
. A
11
. DIRV.
a
10
- a
0
= A
10
- A
0
; WE = R/ W . DATV ; OE = R/W
Para diferenciar los 4 segmentos del bloque RAM que van a encontrarse en 4
sectores separados del mapa de memoria, disponemos de las lneas A15 A14 que
diferencian dichos 4 sectores (A15 A14 recorren todos vectores posibles); las entradas a12
a11 que distinguen los 4 segmentos del bloque han de conectarse a dichas lneas
A15 A14 : a
12
= A
15
; a
11
= A
14
198 El ect rni ca Di gi t al
Tngase en cuenta que, si se conectasen las lneas a12 y a11 a las del mismo nmero
del bus de direcciones, solamente se utilizara el primer segmento de 2K del bloque
RAM, pues los valores de las entradas a12a11 = A12A11 = 00 seran iguales (a12a11 = 00)
en los cuatro sectores del mapa de memoria (lo cual significa que los otros segmentos
a12a11 = 01, 10, 11 no seran utilizados, sino que dicho segmento a12a11 = 00 se
encontrara repetido cuatro veces en sectores distintos del mapa de memoria).
c) 6K registros en el sector inicial del mapa de memoria y 2K en el final.
Distribuyendo el circuito integrado en segmentos de 2K (11 lneas a10 a0):
0 0 0 0 0 - - - - - - - - - - - 0000 07FF
0 0 0 0 1 - - - - - - - - - - - 0800 0FFF
0 0 0 1 0 - - - - - - - - - - - 1000 17FF
1 1 1 1 1 - - - - - - - - - - - F800 FFFF
Los tres primeros segmentos han de situarse en el sector inicial de la memoria
(A15 = 0, A14 = 0,A13 = 0, y A12A11 = 00, 01, 10) y el cuarto segmento en el sector final
(A15 = 1, A14 = 1, A13 = 1, A12 = 1, A11 = 1):
CE = ( A
15
.A
14
.A
13
.( A
12
+ A
11
) + A
15
.A
14
.A
13
.A
12
.A
11
).DIRV
Los cuatro segmentos pueden diferenciarse por los valores de las lneas A12 A11 que
recorren todos vectores posibles: a
12
= A
12
; a
11
= A
11
a
10
- a
0
= A
10
- A
0
; WE = R/ W . DATV ; OE = R/W .
d) 2K registros a partir de la posicin 4000H y 6K a partir de A000H
En segmentos de 2 K:
0 1 0 0 0 - - - - - - - - - - - 4000 47FF
1 0 1 0 0 - - - - - - - - - - - A000 A7FF
1 0 1 0 1 - - - - - - - - - - - A800 AFFF
1 0 1 1 0 - - - - - - - - - - - B000 B7FF
el primer segmento ha de situarse en A15 = 0, A14 = 1, A13 = 0, A12 = 0 y A11 = 0 y los
otros tres segmentos en A15 = 1, A14 = 0, A13 = 1 y A12A11 = 00, 01, 10:
CE = ( A
15
.A
14
.A
13
.A
12
.A
11
+ A
15
.A
14
.A
13
.(A
12
+ A
11
)) . DIRV
19. Memori as de acceso di rect o 199
En este caso, para diferenciar los cuatro segmentos y determinar la conexin de las
entradas de direccionamiento que los numeran a12 a11 podemos construir una pequea
tabla en la forma siguiente:
A15 A14 A13 A12 A11 a12 a11
0 1 0 0 0 0 0 A partir de esta tabla de verdad
1 0 1 0 0 0 1 se obtienen:
1 0 1 0 1 1 0 a
12
= A
12
+ A
11
1 0 1 1 0 1 1 a
11
= A
13
. A
11
.
19.4.2. Sea un circuito integrado RAM de 4K (12 lneas de direccionamiento), cuyos
registros se desea situar en las posiciones iniciales del mapa de memoria, pero
sabiendo que el primer sector de 1K del mapa se encuentra ocupado previamente.
El sector de 1K ocupado corresponde a:
0 0 0 0 0 0 - - - - - - - - - - 0000 03FF
A continuacin de dicho sector podemos situar los 4K registros en la siguiente
forma:
0 0 0 0 0 1 - - - - - - - - - - 0400 07FF
0 0 0 0 1 - - - - - - - - - - - 0800 0FFF
0 0 0 1 0 0 - - - - - - - - - - 1000 17FF
El primero de los sectores anteriores es de 1K (10 lneas), el segundo permite colocar
2K (11 lneas) y el tercero corresponde a 1K restante; la habilitacin del circuito
integrado ha de producirse en las tres situaciones:
A15 = 0, A14 = 0, A13 = 0, A12 = 0, A11 = 0, A10 = 1 1 sector de 1K
A15 = 0, A14 = 0, A13 = 0, A12 = 0, A11 = 1 2 sectores de 1K
A15 = 0, A14 = 0, A13 = 0, A12 = 1, A11 = 0, A10 = 0 1 sector de 1K
CE = A
15
.A
14
.A
13
.( A
12
.A
11
.A
10
+ A
12
.A
11
+ A
12
.A
11
.A
10
).DIRV
Como los 4 sectores de memoria de 1K van seguidos, las lneas A11 A10 sirven para
diferenciarlos (si bien el primer segmento del bloque integrado en el mapa de memoria
corresponde al valor 01 de dichas lneas, el segundo al valor 10, el tercero a 11 y el
ltimo al valor 00):
a
11
- a
0
= A
11
- A
0
; WE = R/ W . DATV ; OE = R/W .
200 El ect rni ca Di gi t al
19.4.3. Sea un circuito integrado RAM de 8K (13 lneas de direccionamiento), cuyos
registros se desean situar en la parte inicial de un mapa de memoria, en el cual
se encuentra ocupado el sector 0800H a 6FFFH.
0 8 0 0 H = 0000 1000 0000 0000
6 F F F H = 0110 1111 1111 1111
Previamente a la posicin 0800H se pueden poner registros en:
0 0 0 0 0 - - - - - - - - - - - 0000 07FF
sector de 2K; quedarn por situar otros 6K registros detrs de la posicin 6FFFH:
0 1 1 1 - - - - - - - - - - - - 7000 7FFF
1 0 0 0 0 - - - - - - - - - - - 8000 87FF
sectores de 4K y 2K, respectivamente.
La habilitacin del circuito integrado ha de producirse en:
A15 = 0, A14 = 0, A13 = 0, A12 = 0, A11 = 0 1 segmento de 2K
A15 = 0, A14 = 1, A13 = 1, A12 = 1 2 segmentos de 2K
A15 = 1, A14 = 0, A13 = 0, A12 = 0, A11 = 0 1 segmento de 2K
(de los tres vectores anteriores, primero y tercero pueden simplificarse entre s)
CE = ( A
14
.A
13
.A
12
.A
11
+ A
15
.A
14
.A
13
.A
12
) . DIRV
El bloque RAM queda organizado en cuatro segmentos de 2K registros, de los cuales
los tres ltimos se sitan juntos; para diferenciar los segmentos y determinar la conexin
de sus entradas de seleccin a12 a11 podemos utilizar la siguiente tabla:
A15 A14 A13 A12 A11 a12 a11
0 0 0 0 0 0 0 A partir de esta tabla
0 1 1 1 0 0 1 se obtienen:
0 1 1 1 1 1 0 a
12
= A
11
+ A
15
1 0 0 0 0 1 1 a
11
= A
12
. A
11
+ A
15
a
10
- a
0
= A
10
- A
0
; WE = R/ W . DATV ; OE = R/W.
19.4.4. Determinacin de la posicin en un mapa de memoria: cul ser el mapa de
memoria ocupado por un bloque RAM de 8K, cuya habilitacin es la siguiente:
CE = A
15
. (A
14
. A
13
. (A
12
+ A
11
) + A
14
. A
13
. A
12
. A
11
) . DIRV
El bloque se habilitar en cada una de las siguientes situaciones:
A15 = 0, A14 = 0, A13 = 1, A12 = 0
A15 = 0, A14 = 0, A13 = 1, A11 = 0
A15 = 0, A14 = 1, A13 = 0, A12 = 0, A11 = 0
19. Memori as de acceso di rect o 201
que podemos expresarlas ordenadamente en la siguiente tabla
A15 A14 A13 A12 A11
0 0 1 0 0 sector 2000-27FF
0 0 1 0 1 sector 2800-2FFF
0 0 1 1 0 sector 3000-37FF
0 1 0 0 0 sector 4000-47FF
Los sectores anteriores son de 2K (11 lneas A10 - A0 para direccionar sus registros)
y los tres primeros son contiguos (6K), de forma que el mapa de memoria ocupado est
dividido en dos trozos: 2000-37FF y 4000-47FF (entre ambos queda un sector de 2K
3800-3FFF).
Cmo deben conectarse las entradas de direccionamiento a12 - a0 de este bloque?
A15 A14 A13 A12 A11 a12 a11
0 0 1 0 0 0 0
0 0 1 0 1 0 1
0 0 1 1 0 1 0 A + A = a
12 14 12
0 1 0 0 0 1 1 A + A = a
11 14 11
19. 5. Memori as de sl o l ect ura
Los codificadores ROM, aunque no contienen registros, pueden ser considerados
como memorias de slo lectura (a lo cual alude su propia denominacin ROM: read
only memory, debida a que sta fue la primera aplicacin de los grandes codificadores con
estructura ROM).
Un codificador proporciona un vector de salida (dato) para cada vector de entrada
(direccin) que recibe; es como si a una direccin recibida a travs de sus entradas
respondiese con un dato en sus lneas de salida; el resultado es la obtencin en las
salidas de una palabra binaria, seleccionada por el nmero binario que hay en sus
entradas.
Ciertamente la relacin entrada salida (direccin dato) es meramente combina-
cional y no hay memoria en el sentido propio de los sistemas secuenciales; pero,
funcionalmente, un codificador presenta un conjunto de palabras binarias numeradas.
En tal sentido, el comportamiento de un codificador equivale al de una memoria de
acceso directo cuyos registros estuviesen ya escritos con informacin fija y solamente se
pudieran leer: memoria de slo lectura. Las entradas del codificador corresponden a las
lneas de direcciones y las salidas a las lneas de datos en una operacin de lectura.
202 El ect rni ca Di gi t al
Por otra parte, para poder conectar el codificador ROM a un bus de datos ser
necesario dotar a sus salidas de capacidad tri-estado, con la posibilidad de desconexin
(alta impedancia) controlada por una lnea de habilitacin (CE), de forma que pueda
compartir las lneas de datos con otros bloques RAM o ROM.
Por analoga con los circuitos integrados RAM, los codificadores ROM suelen tener
dos entradas de control: CE para habilitar el bloque y OE para habilitar las salidas del
mismo (lectura), ambas activas con valor booleano 0. [WE no tiene sentido por cuanto
que la escritura en este tipo de bloques no es posible.]
A
i
D
i
CE WE OE
R
A
M
A
i
D
i
CE OE
R
O
M
Las memorias de slo lectura son tiles para datos fijos, tablas de valores, tablas de
conversin, tablas funcionales, etc., y, en particular, para los programas especficos de los
microprocesadores dedicados a aplicaciones de control.
La disponibilidad de codificadores ROM programables permite contar con
memorias de slo lectura cuya escritura previa puede realizarse mediante
programacin. De forma que las palabras binarias contenidas en una memoria ROM
pueden venir fijadas de fbrica, resultantes de la inclusin o no de transistores en los
correspondientes nudos de la matriz "O", o bien pueden ser escritas por el diseador
(codificadores programables PROM), a travs de un programador, previamente a su
utilizacin circuital.
La estructura de una memoria ROM es anloga a la de una RAM, prescindiendo de
los circuitos correspondientes a la escritura y utilizando una sola lnea Q(en lugar de las
dos lneas Q y Q); la celda bsica, para cada bit, consistir en la presencia/ausencia de
un transistor en el nudo correspondiente, segn que el valor de dicho bit sea 0/1.
La figura de la pgina siguiente muestra tal estructura; en ella se observa que el
transistor PMOS pone la lnea Qa 1 y dicho valor permanece cuando no hay transistor
NMOS en la fila seleccionada; en cambio, cuando el transistor NMOS est presente en
dicha fila, conducir si est seleccionada y llevar la lnea Qa 0.
En el caso de codificadores PROM se incluye un transistor EPROM programable
para cada bit, de forma que equivale a valor 1 (el transistor no conduce nunca) cuando se
carga negativamente su puerta aislada y, en caso de que dicha puerta est descargada,
implica valor 0 (el transistor conduce al ser seleccionado y lleva la lnea Q a 0 V).
19. Memori as de acceso di rect o 203
fila
lnea Q
de columna
fila
lnea Q
de columna
fila
lnea Q
de columna
bit de valor 0 bit de valor 1 bit programable
Configuracin y conexiones de uno de los biestables ROM
Existen tres tipos de transistores MOS programables: EPROM, E
2
PROM y FLASH
(ver apartado 9.5., primer volumen). En cuanto a la forma de programarlos (y, tamben,
en cuanto a la velocidad de lectura) no hay diferencias funcionales entre ellos; se
distinguen, en cambio, en que el borrado de los primeros puede hacerse con luz
ultravioleta y los otros dos permiten hacerlo mediante tensin elctrica (de signo
contrario a la de su programacin). En el caso E
2
PROM el borrado es individual (cada
transistor se puede programar bit a 1 o borrar bit a 0 individualmente), mientras que
en el caso FLASH el borrado es global (se borra todo el bloque, mediante una tensin
elctrica positiva aplicada al terminal de fuente que es comn a todos los transistores).
Cualquiera de estos tres tipos puede ser utilizado como ROM, memoria de slo
lectura, programando previamente su contenido a travs de un programador.
Memorias de slo lectura reprogramables
Los transistores MOS tipo E
2
PROM son reprogramables elctricamente, es decir,
puede escribirse en ellos un 1 (transistor programado) o un 0 (tansistor borrado)
mediante la aplicacin a la puerta de una tensin positiva o negativa relativamente alta.
Esta capacidad de programacin individual de un 0 o un 1 sobre cada bit ha permitido la
construccin de memorias ROM que se pueden re-escribir en el propio circuito funcional,
mediante una operacin de escritura a travs de los buses.
Dicha operacin requiere tiempos ms amplios que los normales de acceso a una
memoria RAM ya que es necesario efectuar la programacin de la correspondiente
palabra binaria sobre los transistores E
2
PROM, cargando con electrones su puerta
aislada (caso de un bit a 0) o descargndola (caso de programar un 1).
204 El ect rni ca Di gi t al
Adems tal operacin requiere, por lo general, tensiones ms elevadas que las
habituales de alimentacin digital y necesita los correspondientes circuitos de control de
la programacin; tanto las tensiones como los circuitos adicionales se incorporan dentro
del circuito integrado en su diseo y fabricacin, de forma que, desde el exterior, acta
como una memoria de acceso directo con capacidad de lectura y de escritura, solo que la
escritura es lenta y requiere varios ciclos de reloj.
Incluso, se fabrican memorias RAM duplicadas con otra ROM dentro del propio
circuito integrado para evitar la prdida de informacin cuando dejan de estar alimentadas
a la correspondiente tensin elctrica: cuando se detecta una cada de tensin, un
circuito de control determina el traspaso de todos los datos del bloque RAM al bloque
ROM disponible en el interior del mismo circuito integrado y, viceversa, al recuperarse la
tensin de alimentacin el control reescribe el bloque RAM con los datos guardados en la
parte ROM del integrado.
Con la misma finalidad, existen series especiales de circuitos integrados RAM no
voltiles, dotados de una batera interna (recargable con la propia alimentacin del
integrado) que conserva los valores almacenados en sus registros, en ausencia de tensin
de alimentacin.
Memorias FLASH de acceso secuencial
Un bloque ROM programable tipo FLASH constituye una memoria de lectura
rpida, con capacidad de escritura lenta (ya que debe hacerse por programacin) si el
bloque ha sido previamente borrado; en las memorias FLASH el borrado se efecta en
forma global (se borra todo el bloque a la vez) ya que los transistores, una vez
programado, no pueden borrarse individualmente.
Las reducidas dimensiones de los transistores FLASH y de su agrupacin en
configuracin ROM han permitido la integracin de memorias FLASH de muy alta
capacidad. Tales memorias se utilizan para el almacenamiento masivo de datos, con una
funcionalidad anloga a la de los disquetes o discos compactos CDs y con importantes
ventajas sobre ellos al no necesitar un sistema mecnico para su lectura.
Para estas aplicaciones de memorias de conservacin y transporte de datos (o de
memoria de acumulacin de datos en un sistema de adquisicin de los mismos) se utilizan
memorias FLASH serie, con acceso secuencial que se gestiona a travs de contadores
incluidos en la propia memoria. Estas memorias permiten escribir los datos en ellas y
recuperarlos posteriormente a travs de una simple entrada serie.
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
20 SISTEMAS CON ARQUITECTURA DE BUS
20.1. Memoria en sentido amplio
20.2. Configuracin circuital de mapas de memoria
20.3. Ciclos de lectura y de escritura: tiempos de acceso
20.4. Problemas relativos a los buses: adaptadores de bus
La arquitectura basada en buses (datos y direcciones), que determina una divisin
estructural entre procesador y memoria, sirve tambin para organizar las transferencias de
informacin con el exterior.
De esta forma la memoria engloba, no slo los registros que conservan la informacin
(datos y resultados intermedios) sino, tambin, aquellos registros a travs de los cuales se
enva informacin al exterior o se recibe informacin externa (salidas y entradas). La
memoria incluye dos unidades de diferente funcionalidad: la unidad de almacenamiento de
informacin y la unidad de comunicacin con el exterior.
De manera que los elementos de memoria son diversos: RAM, ROM, registros de
salida, adaptadores de entradas, adaptadores de perifricos, Para el procesador,
cualquier elemento de memoria no es sino un conjunto de registros numerados (en ocasiones
un registro individual con su nmero), a los que puede acceder a travs del bus de datos,
seleccionando cada registro concreto por su nmero, a travs del bus de direcciones.
Este captulo, despus de considerar en detalle tales elementos de memoria, trata de la
forma de situarlos adecuadamente en el mapa de memoria, de manera que el procesador
pueda escribir o leer sobre los correspondientes registros mediante su nmero. Tambin se
estudian las formas de onda y requisitos temporales (tiempos de acceso y de habilitacin)
necesarios para ejecutar un ciclo de lectura o de escritura sobre los diversos elementos de
memoria.
Por ltimo, se consideran las cuestiones especficas que afectan a los buses: la necesidad
de no retrasar las seales y la de proporcionar intensidades relativamente altas. En
ocasiones resulta necesario amplificar la intensidad disponible mediante adaptadores de
bus, que, en el caso del bus de datos, han de ser bidireccionales.
Las exigencias de velocidad e intensidad en los buses dan lugar a la utilizacin de series
especficas de circuitos integrados: lgica interbus, de muy bajos tiempos de propagacin
y altas intensidades de salida; en particular, resulta muy apropiada la tecnologa
BiCMOS, desarrollada precisamente para esta clase de aplicaciones aprovechando las
ventajas de ambos tipos de transistores (bipolares y MOS).
Una t i l ref erenci a bi bl i ogrf i ca: como compl ement o a est e cap t ul o, un
l i bro dedi cado a si st emas con mi croprocesadores, que recoge una ampl i a
di versi dad de aspect os rel at i vos a memori as, peri f ri cos y mapas de memori a,
es el t ext o de Boni f aci o Mart n del Br o, Si st emas el ect rni cos basados en
mi croprocesadores y mi crocont rol adores, publ i cado en est a mi sma col ecci n
de Text os Docent es, n 61. Prensas Uni versi t ari as de Zaragoza. 1999.
206 El ect rni ca Di gi t al
20. 1. Memori a en sent i do ampl i o
La combinacin estructural de bus de datos y bus de direcciones organiza no
solamente el almacenamiento de informacin sino tambin la comunicacin de la misma
con el exterior. Ambas funciones se refieren a transferencia de informacin: en un caso,
transferencia a memoria para su utilizacin posterior (transferencia en el tiempo) y, en el
otro, transferencia hacia el exterior (transferencia en el espacio).
La memoria de un circuito digital complejo, como concepto genrico, engloba a todo
tipo de registros de los que se extrae directamente o a los que se enva directamente
informacin digital. En este sentido, el concepto de memoria incluye no slo a los
registros de trabajo donde se memorizan datos y resultados (generalmente englobados en
bloques de tipo RAM), sino tambin a los registros de informacin fija que contienen
tablas de valores o programas (como pueden ser los bloques ROM) y a los registros de
adaptacin de entradas y de salidas del circuito (adaptadores de perifricos).
De esta forma un sistema digital complejo puede dividirse, conceptualmente, en dos
partes diferenciadas:
el procesador que controla el proceso y efecta las operaciones pertinentes
y la memoria o conjunto amplio de registros que memorizan, reciben o envan la
informacin, es decir, que realizan la transferencia de informacin.
PRO
CE
SA
DOR
unidad
operativa
unidad
de control
ME
MO
RIA
RAM
ROM
adaptadores
de
perifricos
BUS DE
DATOS
BUS DE
DIRECCIONES
BUS DE CONTROL
peri
fri
cos
EXTERIOR
Este concepto amplio de memoria engloba dos unidades claramente diferenciadas
por su finalidad operativa:
la unidad de memoria, como lugar de almacenamiento de la informacin disponible,
y la unidad de entradas/salidas, como conjunto de perifricos que comunican con el
exterior.
20. Si st emas con arqui t ect ura de bus 207
La comunicacin con el exterior se realiza a travs de registros adaptadores de salida
que presentan la informacin hacia un perifrico (visualizador, conversor D/A, impresora,
monitor, mdem, etc.) o a travs de adaptadores de entrada, asimilables conceptualmente
a registros, que reciben la informacin desde el perifrico (teclado, pulsadores o
conmutadores, conversor A/D, mdem, etc.). Desde su punto de vista, el procesador se
encuentra con un conjunto de registros (generalmente unidireccionales) que,
posteriormente, se comunican con un perifrico a travs del cual reciben o transmiten
informacin respecto al exterior.
Para el procesador todo lo dems son registros, seleccionables (a travs del bus de
direcciones) por su nmero dentro del mapa de memoria, y sobre los cuales escribe o lee,
a travs del bus de datos, informacin contenida en palabras binarias.
Los buses de datos y direcciones, no solamente dividen al sistema en dos partes
estructurales (procesador, memoria), sino que permiten dividir la memoria en elementos
constituidos por conjuntos de registros (o registros individuales) que ocupan los
correspondientes sectores del mapa de memoria.
La unidad de memoria propiamente dicha, esto es, el conjunto de registros de trabajo
del procesador (almacenamiento de informacin), estar constituida por integrados RAM,
capaces de memorizar datos y resultados operativos, y por circuitos integrados ROM, con
registros de slo lectura cuya informacin es fija.
Otra parte diferenciada de la memoria est formada por los registros de adaptacin
de perifricos, configurando la unidad de entradas/salidas del sistema; tales registros
suelen ser unidireccionales, distinguindose entre los registros de salida y los adaptadores
de entrada.
Los registros de salida sern del tipo de registros de retencin (latch memory),
conformados por n biestables con una entrada de habilitacin comn E, la cual ser
activada al realizar una operacin de escritura sobre la direccin que ocupa el registro en
el mapa de memoria DIR; tales registros han de habilitarse al enviar la correspondiente
direccin DIR, cuando la operacin es de escritura R/W = 0 y una vez que el dato es
vlido DATV = 1.
E = DIR . R/W . DATV
D
i
Q
i
DIR
R/W
DATV
Registro
de
retencin
E
al bus de datos
al exterior
208 El ect rni ca Di gi t al
La figura siguiente representa un ejemplo de perifrico de salida muy simple: se trata
de un visualizador de dos cifras decimales adaptado al bus de datos, a travs de un
registro de salidas y de los correspondientes decodificadores de BCD a 7 segmentos;
cuando el procesador efecta una operacin de escritura sobre la direccin ocupada por
dicho registro (DIR, R/W = 0, DATV = 1), ste recibe por el bus de datos dos cifras
BCD que quedan permanentemente representadas en los visualizadores de 7 segmentos.
PROCESADOR
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
A
i
DIR
R/W
DIRV
Registro
de
Retencin
DATV BCD->7 sg.
E
BCD->7 sg.
Perifrico que permite la visualizacin de dos cifras decimales
Si las salidas del registro se conectan a un conversor digital/analgico, la salida de
ste proporcionar la seal de tensin que corresponde a los sucesivos valores numricos
que el procesador escriba sobre la direccin de memoria correspondiente; de esta forma,
el procesador puede generar una determinada onda o una seal de referencia.
PROCESADOR
A
i
DIR
R/W
DIRV
Registro
de
Retencin
DATV
CONVERSOR D/A
seal analgica
E
bus de datos
Perifrico que permite la generacin de una seal analgica
20. Si st emas con arqui t ect ura de bus 209
Los adaptadores de entrada sern simples adaptadores tri-estado (buffers) que, al ser
seleccionados en una operacin de lectura, vuelcan sobre el bus de datos los valores
booleanos presentes en sus entradas; su habilitacin ha de producirse cuando la operacin
es de lectura R/W = 1 sobre la correspondiente direccin DIR, una vez que se valide
dicha direccin como correcta DIRV = 1.
E = DIR . R/W . DIRV
Y
i
X
i
DIR
R/W
DIRV
Adaptador
tri-estado
E
al bus de datos
del exterior
La siguiente figura representa un perifrico de entrada muy simple constituido por
ocho conmutadores, conectados al bus de datos a travs de un adaptador de entradas;
cuando el procesador efecta una operacin de lectura sobre la direccin ocupada por
dicho adaptador (DIR, R/W = 1, DATV = 1), ste resulta habilitado, comunicando al
procesador los valores booleanos fijados sobre los conmutadores.
E
PROCESADOR
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
A
i
DIR
R/W
DIRV
Adaptador
tri-estado
DATV
"1"
"0"
8 conmutadores
entre 0 y 1
Perifrico que permite leer el estado de 8 conmutadores
210 El ect rni ca Di gi t al
Un circuito anlogo al anterior sera el correspondiente a un teclado hexadecimal o
decimal o a un conmutador BCD, que necesitar solamente 4 lneas del bus de datos.
E
PROCESADOR
D
3
D
2
D
1
D
0
A
i
DIR
R/W
DIRV
Adaptador
tri-estado
DATV 0 1 2 3
4 5 6 7
8 9 A B
C D E F
Perifrico que permite leer un teclado hexadecimal
Otro tipo de adaptadores de entrada lo constituyen los registros de retencin con
salida tri-estado, los cuales pueden memorizar una palabra binaria en cualquier momento
y transferirla al bus de datos cuando su salida sea habilitada.
Los adaptadores anteriores son de tipo unidireccional, para conectar perifricos de
entrada o de salida; existen muchos otros tipos de adaptadores de propsito particular
para perifricos especficos y, tambin, existen adaptadores de tipo genrico, dotados de
una cierta programacin de su funcionamiento. Como integrantes de la memoria, tales
adaptadores equivalen, desde el punto de vista del procesador, a reducidos conjuntos de
registros, algunos de ellos unidireccionales.
Un ejemplo de adaptadores de entradas/salidas de tipo genrico es el bloque PIA
(Peripheral Interface Adapter) que ofrece dos puertos de 8 lneas, las cuales pueden ser
configuradas como lneas de entrada o de salida y contiene 4 registros: dos de ellos para
la transferencia de informacin (uno para cada puerto) y los otros dos para determinar si
las lneas actan como entradas o como salidas; por tanto, este bloque ocupa 4 posiciones
de memoria.
Puerto A Puerto B
bus de datos
CE
R/W
a
1
a
0
P I A
4 registros
internos
20. Si st emas con arqui t ect ura de bus 211
20. 2. Confi guraci n ci rcui t al de un mapa de memori a
Se pretende en este apartado abordar el diseo del circuito necesario para que los
diversos circuitos integrados que constituyen la memoria de un procesador, incluidos los
adaptadores de perifricos, queden situados en las direcciones que les corresponden, es
decir, la realizacin circuital de un mapa de memoria.
Por lo general no suele utilizarse la capacidad total de la memoria, es decir, no
suelen ocuparse todas las posiciones de memoria que el bus de direcciones permite
numerar, sino que puede quedar un buen nmero de posiciones vacas; ello permite elegir
de entre los posibles mapas de memoria el que resulte ms sencillo en cuanto al circuito
necesario para su realizacin.
En los ejercicios que siguen se utiliza un bus de direcciones de 16 lneas y 3 lneas
de control: lectura/escritura R/W, validacin de direccin DIRV y validacin del dato en
la escritura DATV (se supone que cuando DATV = 1, tambin DIRV = 1); los circuitos
integrados utilizados son:
- bloques RAM de 2K x 8 (entradas de control CE, WE y OE),
- bloques ROM de 2K x 8 (entradas de control CE y OE),
- registros de salida de 8 biestables (entrada de habilitacin E )
- y adaptadores de entrada de 8 lneas (entrada de habilitacin E ).
20.2.1. Caso de una memoria reducida: sea una memoria con un circuito integrado RAM
de 2K, otro ROM tambin de 2K, un registro de salida y un adaptador de
entrada, es decir, un solo elemento de memoria de cada tipo; la memoria RAM
debe situarse al inicio del mapa de memoria y la ROM al final del mismo.
a) Configuracin de los 4 elementos con ocupacin mnima del mapa de memoria
Los integrados RAM y ROM requieren 11 lneas de direccionamiento a10 - a0 para
los 2K registros que contienen; quedan 5 lneas disponibles A15 A11 para la seleccin
de estos circuitos integrados que deben situarse, respectivamente, al inicio y al final del
mapa de memoria:
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 H
0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 7 F F H
0 0 0 0 0 - - - - - - - - - - - 0000 07FF
1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 F 8 0 0 H
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 F F F F H
1 1 1 1 1 - - - - - - - - - - - F800 FFFF
212 El ect rni ca Di gi t al
El registro de salida RS y el adaptador de entrada AE pueden situarse en una misma
direccin de memoria, accediendo al segundo en las operaciones de lectura y al primero
en las de escritura; supongamos que los ubicamos en la posicin 8000H:
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 H.
De acuerdo con los sectores del mapa de memoria indicados, las habilitaciones de los
cuatro componentes de la memoria sern:
RAM: CE = A
15
. A
14
. A
13
. A
12
. A
11
. DIRV
WE = R/ W . DATV ; OE = R/W
a
10
- a
0
= A
10
- A
0
ROM: CE = A
15
. A
14
.A
13
. A
12
. A
11
. DIRV OE = R/W
a
10
- a
0
= A
10
- A
0
AE (adaptador de entradas):
debe habilitarse en la posicin 8000H cuando la operacin sea de lectura:
E = A
15
.A
14
.A
13
.A
12
.A
11
.A
10
.A
9
.A
8
.A
7
.A
6
.A
5
.A
4
.A
3
.A
2
.A
1
.A
0
.R/W.DIRV
RS (registro de salidas):
debe habilitarse en 8000H cuando la operacin sea de escritura y el dato sea vlido:
E = A
15
.A
14
.A
13
.A
12
.A
11
.A
10
.A
9
.A
8
.A
7
.A
6
.A
5
.A
4
.A
3
.A
2
.A
1
.A
0
.R/W.DATV
Estas funciones pueden ser programadas sobre un bloque PAL (de un amplio
nmero de entradas; se utilizan 19 de ellas: A15 A0, R/W, DIRV y DATV).
b) Configuracin de los 4 elementos con circuito de posicionamiento reducido
Los cuatro elementos de memoria presentes pueden ser reducidos a tres, al situar el
registro de salida RS y el adaptador de entrada AE en la misma direccin de memoria;
para discriminar entre los tres elementos (RAM, ROM, RS-AE) resultantes bastan dos
lneas de direccionamiento A15
y A14 :
A15
= 1 A14 = 1 Bloque ROM en posiciones finales de memoria
A15
= 1 A14 = 0 Registro de salida RS y adaptador de entrada AE
A15
= 0 A14 = X Bloque RAM en posiciones iniciales.
Con esta asignacin de valores a las lneas A15
y A14 resulta que:
a) el integrado ROM ocupa todo el sector de memoria numerado por
1 1 X X X - - - - - - - - - - - C000 FFFF
que supone una ocupacin de 16K de memoria (14 lneas); el signo indica que dichas
posiciones se encuentran ocupadas por registros del bloque y el signo X indica que tales
lneas del bus de direcciones no son utilizadas.
20. Si st emas con arqui t ect ura de bus 213
b) el integrado RAM ocupa el sector numerado por
0 X X X X - - - - - - - - - - - 0000 7FFF
ocupando 32K de memoria (15 lneas)
c) y los dos adaptadores, aun cuando constituyen una sola posicin de memoria, se
encuentran en todo el sector numerado por
1 0 X X X X X X X X X X X X X X 8000 BFFF
que corresponde a una ocupacin de 16K de memoria (14 lneas).
El smbolo X significa que no importa el valor booleano presente en dicha lnea,
ya que tales lneas no se utilizan en la seleccin de registros del correspondiente
elemento, y el signo - indica que dicha lnea direcciona registros internos del bloque
integrado.
En suma, en esta configuracin (decodificacin parcial) los registros no se encuentran
unvocamente direccionados en una sola posicin, sino que aparecen en varias posiciones
distintas (por ejemplo, cada adaptador, que en realidad es un solo registro, llega a ocupar
16K posiciones de memoria). Ello es debido a que no se han utilizado todas las lneas del
bus de direcciones para situar cada elemento de memoria, lo cual supone un gran
desperdicio de posiciones de memoria (al ocupar un mismo registro mltiples
posiciones), pero resulta admisible por cuanto que solamente se precisa utilizar una parte
reducida de la capacidad total de la memoria.
Dentro de la multiplicidad de posiciones que corresponden a un mismo registro
puede elegirse un mapa de memoria concreto, conviniendo una asignacin unvoca que
constituir el mapa de memoria con el que trabajar el procesador:
RAM de 0000 0000 0000 0000 = 0 0 0 0 H
hasta 0000 0111 1111 1111 = 0 7 F F H
RS-AE en 1000 0000 0000 0000 = 8 0 0 0 H
R0M de 1111 1000 0000 0000 = F 8 0 0 H
hasta 1111 1111 1111 1111 = F F F F H
Las condiciones booleanas de habilitacin, incluyendo las lneas de control, son las
siguientes:
RAM: CE = A
15
. DIRV WE = R/ W . DATV ; OE = R/W
a
10
- a
0
= A
10
- A
0
ROM: CE = A
15
. A
14
. DIRV OE = R/W
a
10
- a
0
= A
10
- A
0
AE (adaptador de entradas): E = A
15
. A
14
. R/W . DIRV
RS (registro de salidas): E = A
15
. A
14
. R/W . DATV
214 El ect rni ca Di gi t al
DATV
DIRV
R/W
A
15
A
15
A
14
A
14
DATV
DIRV
A
15
A
14
R/W
CE
OE
E E
CE
OE
WE
ROM
AE RS RAM
Ha de tenerse en cuenta que las entradas de control de los elementos de memoria
utilizados se activan con valor booleano 0, lo cual hace que las anteriores funciones
booleanas conduzcan directamente a puertas "y-negada" (Nand).
Todas las puertas de direccionamiento deben ser muy rpidas a fin de minimizar los
retrasos en las seales de habilitacin y, con ello, asegurar que se cumplen los diversos
tiempos exigidos por los ciclos de lectura y de escritura sobre los elementos de memoria.
20.2.2. Caso de una memoria de tipo medio: una memoria con 8 K de RAM (en bloques
integrados de 2 K), 4 K de ROM (tambin en bloques de 2 K), 2 registros de
salida y 2 adaptadores de entrada; la memoria RAM al inicio del mapa de
memoria y la ROM al final del mismo.
Los 10 elementos de memoria citados pueden ser reducidos a 8 elementos
diferenciados ya que los registros de salida y los adaptadores de entrada pueden ser
colocados sobre las mismas posiciones de memoria.
Los bloques de 2 K requieren 11 lneas para el direccionamiento de sus registros
a10 - a0 y para situar conjuntamente los cuatro circuitos integrados RAM se requieren dos
lneas ms A11 y A12, a fin de que los cuatro bloques ocupen sectores sucesivos de
memoria. Para seleccionar los 8 elementos diferenciados de memoria se requieren tres
lneas de direccionamiento, dos de las cuales han de ser A11 y A12, segn lo anterior, y la
tercera lnea puede ser cualquiera de las otras tres superiores (por ejemplo A15).
Un decodificador de 8 lneas proporciona directamente la discriminacin entre los
bloques; dado que las lneas de habilitacin de los mismos se activan con valor 0 ha de
utilizarse un decodificador con salidas negadas y su entrada de habilitacin se condiciona
con la validacin de la direccin DIRV.
20. Si st emas con arqui t ect ura de bus 215
RAM1
RAM2
RAM3
RAM4
AE-RS1
AE-RS2
ROM1
ROM2
L0
L1
L2
L3
L4
L5
L6
L7
S0
S1
S2
EN
DIRV
A15
A12
A11
a las entradas
de habilitacin
CE
Con ello puede asignarse el siguiente mapa de memoria:
RAM1 de 0000 0000 0000 0000 = 0 0 0 0 H
hasta 0000 0111 1111 1111 = 0 7 F F H
RAM2 de 0000 1000 0000 0000 = 0 8 0 0 H
hasta 0000 1111 1111 1111 = 0 F F F H
RAM3 de 0001 0000 0000 0000 = 1 0 0 0 H
hasta 0001 0111 1111 1111 = 1 7 F F H
RAM4 de 0001 1000 0000 0000 = 1 8 0 0 H
hasta 0001 1111 1111 1111 = 1 F F F H
RS-AE1 en 1000 0000 0000 0000 = 8 0 0 0 H
RS-AE2 en 1000 1000 0000 0000 = 8 8 0 0 H
R0M1 de 1111 0000 0000 0000 = F 0 0 0 H
hasta 1111 0111 1111 1111 = F 7 F F H
R0M2 de 1111 1000 0000 0000 = F 8 0 0 H
hasta 1111 1111 1111 1111 = F F F F H
Es claro que este mapa de memoria no es nico, pues no se han utilizado todas las
lneas para direccionar cada bloque; obsrvese que a las lneas A14 y A13, que no son
utilizadas se les asigna arbitrariamente valor 0 en el caso de los bloques RAM para
situarlos al inicio de memoria y, en cambio, se les asigna valor 1 para los bloques ROM a
fin de ubicarlos al final.
Cada registro, segn este direccionamiento, ocupa mltiples posiciones de memoria:
en el caso de los registros de los bloques RAM o ROM, cada registro ocupa 4 posiciones
separadas de memoria, resultantes de dar valores a las lneas A14 y A13; pero en el caso
de los adaptadores de entrada/salida, cada uno de ellos ocupa 8K posiciones de memoria:
RS-AE1 en 1XX0 0XXX XXXX XXXX
ocupa los sectores 8000 - 87FF, A000 - A7FF, C000 - C7FF y E000 - E7FF
RS-AE2 en 1XX0 1XXX XXXX XXXX
ocupa los sectores 8800 8FFF, A800 - AFFF, C800 - CFFF y E800 - EFFF.
216 El ect rni ca Di gi t al
La conexin de las entradas de control de los diversos circuitos integrados que
constituyen la memoria se completa en la forma siguiente:
RAM: La salida correspondiente del decodificador se conecta a la habilitacin global
CE, mientras que las otras dos entradas de habilitacin OE y WE han de conectarse a
R/W y a R/ W . DATV, respectivamente; las entradas de direcciones se conectan a las
correspondientes lneas del bus a
10
- a
0
= A
10
- A
0
.
ROM: La salida del decodificador se conecta a la habilitacin CE y la otra entrada de
habilitacin OE a R/W; las entradas de direcciones se conectan a las correspondientes
lneas del bus a
10
- a
0
= A
10
- A
0
.
AE (adaptadores de entradas): Cada uno de ellos debe habilitarse cuando la lnea del
decodificador que le corresponde L4 o L5 se encuentra a 0 y la operacin es la lectura
R/W = 1: E = L
i
. R/W = L
i
+ R/W.
RS (registros de salidas): Su habilitacin debe tener lugar para Li = 0, R/W = 0
(operacin de escritura) y DATV = 1 (dato vlido):
E = L
i
. R/W . DATV = L
i
+ R/W . DATV.
Resulta fcil incluir nuevos registros de salida o adaptadores de entrada en el
esquema anterior; consideremos concretamente la forma de aadir un tercer registro de
salida RS3 a partir de la lnea de habilitacin de RS1 (L4), desdoblndola en dos a travs
de su combinacin con la primera lnea de direccionamiento A
0.
RS1 deber habilitarse cuando L4 = 0 y A0 = 0
E = L
4
. A
0
. R/W . DATV = L
4
+ A
0
+ R/W . DATV
RS3 lo har cuando L4 = 0 y A0 = 1
E = L
4
. A
0
. R/W . DATV = L
4
+ A
0
+ R/W . DATV
Con ello el registro RS1 conserva su anterior direccin 8 0 0 0 H y el registro aadido
RS3 queda situado en la siguiente 8 0 0 1 H (A
0
= 1).
20. Si st emas con arqui t ect ura de bus 217
20.2.3. El mismo caso anterior de una memoria de tipo medio, pero con ocupacin
mnima del mapa de memoria
Consideremos los 8 elementos de memoria del caso anterior con el mismo mapa:
RAM (4) de 0000 0000 0000 0000 = 0 0 0 0 H
hasta 0001 1111 1111 1111 = 1 F F F H
RS-AE1 en 1000 0000 0000 0000 = 8 0 0 0 H
RS-AE2 en 1000 1000 0000 0000 = 8 8 0 0 H
R0M (2) de 1111 0000 0000 0000 = F 0 0 0 H
hasta 1111 1111 1111 1111 = F F F F H
Los 4 bloques RAM de 2 K pueden situarse al comienzo del mapa mediante un
decodificador de 4 lneas de salida, con entradas A11 y A12, habilitado con la funcin:
DIRV . A . A . A = E
13 14 15
RAM1
RAM2
RAM3
RAM4
L0
L1
L2
L3
S0
S1
EN
A15.A14.A13.DIRV
A12
A11
a las entradas
de habilitacin
CE
Cada adaptador de entrada/salida ocupa una sola posicin de memoria y requiere,
para ello, de las 16 lneas de direccionamiento en su habilitacin:
E(AE1) (posicin de memoria 8 0 0 0 H ) =
DIRV . W / R . A . A . A . A . A . A . A . A . A . A . A . A . A . A . A . A
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 5 1
E(RS1) (misma posicin de memoria 8 0 0 0 H ) =
= DATV . W / R . A . A . A . A . A . A . A . A . A . A . A . A . A . A . A . A
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 5 1
E(AE2) (posicin de memoria 8 8 0 0 H ) =
DIRV . W / R . A . A . A . A . A . A . A . A . A . A . A . A . A . A . A . A
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 5 1
E(RS2) (misma posicin de memoria 8 8 0 0 H ) =
DATV . W / R . A . A . A . A . A . A . A . A . A . A . A . A . A . A . A . A
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 5 1
Y los dos bloques de memoria ROM para situarse al final del mapa de memoria:
E(ROM1) (posiciones de memoria 1111 0--- ---- ---- ) = DIRV . A . A . A . A . A
11 12 13 14 5 1
E(ROM2) (posiciones de memoria 1111 1--- ---- ---- ) = DIRV . A . A . A . A . A
11 12 13 14 5 1
.
Estas funciones de habilitacin y, tambin, la habilitacin del decodificador de las
memorias RAM pueden ser programadas sobre un bloque PAL.
218 El ect rni ca Di gi t al
20.2.4. Posicionamiento de 4 adaptadores de perifricos: se desea situar 4 adaptadores
PIA (cada uno de ellos tiene 4 registros y, por tanto, dos lneas de
direccionamiento) a partir de la posicin B000H del mapa.
Cada PIA requiere 2 lneas de direccionamiento a1 a0 y para situar conjuntamente
las cuatro se requieren dos lneas ms A3 y A2, a fin de que ocupen sectores sucesivos de
memoria.
La ocupacin de los 4 adaptadores ser la siguiente:
1 0 1 1 0 0 0 0 0 0 0 0 0 0 - - B000 B003
1 0 1 1 0 0 0 0 0 0 0 0 0 1 - - B004 B007
1 0 1 1 0 0 0 0 0 0 0 0 1 0 - - B008 B00B
1 0 1 1 0 0 0 0 0 0 0 0 1 1 - - B00C B00F
Un decodificador de 4 lneas permite situar los cuatro adaptadores, tomando como
entradas las lneas A3 y A2; la habilitacin del decodificador deber ser:
E = A
15
.A
14
.A
13
.A
12
.A
11
.A
10
.A
9
.A
8
.A
7
.A
6
.A
5
.A
4
. DIRV.
20.2.5. Placa de memoria RAM de 16K y direccionamiento verstil: se trata de disear
una placa de 16K de memoria RAM con circuitos integrados de 2K, que pueda
ser posicionada en cualquiera de los cuatro posibles sectores de 16 K
(0000-3FFF, 4000-7FFF, 8000-BFFF, C000-FFFF).
Cada bloque RAM de 2 K requiere 11 lneas de direccionamiento a10 - a0 y para
agrupar los ocho bloques que configuran 16K se requieren tres lneas de direcciones ms
A13 A12 A11; quedan dos lneas A15 y A14 con las cuales puede situarse globalmente la
placa en los cuatro sectores de memoria indicados.
Un decodificador de 8 lneas permite discriminar entre los 8 bloques integrados
RAM; la seleccin del sector en que se sita globalmente la placa se realiza mediante un
conector de puentes de hilo, que permite condicionar la habilitacin del decodificador con
los valores de las lneas A15 y A14:
A15 = 0 y A14 = 0 : 0000-3FFF A15 = 1 y A14 = 0 : 8000-BFFF
A15 = 0 y A14 = 1 : 4000-7FFF A15 = 1 y A14 = 1 : C000-FFFF
a las entradas
de habilitacin
CE
L0
L1
L2
L3
L4
L5
L6
RAM1
RAM2
RAM3
RAM4
RAM5
RAM6
RAM6
RAM8
S0
S1
S2
EN
DIRV
A13
A12
A11
1
2
3
4
a
b
A
Conector
de puentes
de hilo
15
14
A
L7
20. Si st emas con arqui t ect ura de bus 219
La lnea DIRV evita direccionamientos falsos y los puentes de hilo del conector
determinan el sector de memoria en el que se sita globalmente la placa:
conexin 1-a y 3-b : C000-FFFF conexin 1-a y 4-b : 8000-BFFF
conexin 2-a y 3-b : 4000-7FFF conexin 2-a y 4-b : 0000-3FFF.
Las otras dos entradas de habilitacin OE y WE han de conectarse a R/W y a
R/ W . DATV, respectivamente, y las entradas de direcciones a las correspondientes
lneas del bus a
10
- a
0
= A
10
- A
0
.
Esta placa de memoria contiene ocho circuitos integrados conectados a los buses y,
en general, se utilizar junto con otras placas, de modo que ser apreciable el nmero de
integrados cargados sobre los buses; conviene incluir en cada placa adaptadores de bus
que amplifiquen la intensidad de los mismos (vase apartado 20.4).
20. 3. Ci cl os de l ect ura y de escri t ura: t i empos de acceso
Lectura a travs de un adaptador tri-estado
Los adaptadores tri-estado conectados sobre un bus mantienen normalmente sus
lneas de salida en alta impedancia (desconexin) y requieren un pulso de habilitacin de
lectura OE para ejecutar tal operacin.
A partir del momento en que se inicia dicho pulso de habilitacin de lectura y con un
cierto retraso sobre el mismo (tiempo de activacin de las lneas de datos tOEd) las salidas
dejan de estar en alta impedancia para transmitir, posteriormente (tiempo de habilitacin
de lectura tOE) la palabra binaria presente en sus entradas. El pequeo intervalo existente
entre los tiempos sealados (tOE - tOEd) corresponde a un transitorio durante el cual las
lneas de salida actan como tales pero el dato que presentan no es vlido (o bien los
valores de las tensiones elctricas no lo son).
t
OE
OE
t
D
Dato vlido OUT
t
OEd
OEz
Una vez finalizado el pulso de habilitacin de lectura las lneas de salida tardan un
cierto tiempo (tiempo de desactivacin tOEz) en pasar al estado de alta impedancia,
durante el cual el dato permanece en dichas salidas; corresponde por tanto a un tiempo de
permanencia de la salida.
220 El ect rni ca Di gi t al
Ciclo de lectura en una memoria de acceso directo (RAM o ROM)
En el caso de una memoria de acceso directo, que contiene mltiples registros
seleccionables por su nmero binario o direccin, la ejecucin de una operacin de
lectura sobre uno de dichos registros requiere:
- seleccionar el registro a travs de las lneas de direcciones A
i
,
- habilitar la memoria a travs de la lnea CE
- y habilitar, tambin, la correspondiente operacin de lectura OE.
Por razones de proteccin, a fin de evitar inserciones (escrituras) falsas sobre los
registros, la habilitacin de escritura WE se mantiene a 1 permanentemente y slo pasa a
0 en los momentos de escritura; a tal fin los procesadores mantienen siempre la lnea
R/ W a 1, salvo en las operaciones de escritura.
El diagrama de seales en un ciclo de lectura adopta la forma representada en la
figura siguiente:
t
t
OE
t
CE
t
acc
Ai
CE
OE
t
hold
t
CEz
t
OEz
D
Dato vlido
OUT
CEd
t
OEd
Para que aparezcan vlidamente los datos de un registro en las lneas de
entrada/salida D
i
es preciso:,
- establecer la direccin correspondiente a dicho registro en las lneas de direcciones ai
durante, al menos, un mnimo tiempo de acceso tacc,
- habilitar la memoria (CE = 0 ) durante un intervalo superior al tiempo de
habilitacin tCE
- y habilitar, tambin, las lneas de datos como salidas (OE = 0 ) durante un intervalo
superior al tiempo de habilitacin de lectura tOE.
20. Si st emas con arqui t ect ura de bus 221
El tiempo de acceso es el retraso que transcurre desde que se activan
convenientemente las lneas de direccionamiento hasta que aparecen en las lneas de
salida los datos vlidos del registro direccionado, supuesto que la memoria se encuentra
habilitada globalmente y que tambin lo est la operacin de lectura. Este tiempo es el
ms largo de todos debido al gran nmero de puertas que involucran los decodificadores
de direccin del registro y, por ello, caracteriza la velocidad del circuito integrado.
Los tiempos de habilitacin son los retrasos entre la activacin de la correspondiente
entrada de habilitacin y la aparicin de los datos en las lneas de datos, que pasan en este
caso desde su estado de alta impedancia a actuar como salidas y a presentar en ellas el
contenido del registro seleccionado, supuesta una direccin establecida previamente. Los
datos permanecen en la salida un pequeo tiempo posterior al establecimiento de una
nueva direccin (tiempo de permanencia thold).
La figura anterior incluye, asimismo los tiempos de paso de las lneas de datos del
estado de alta impedancia a su funcionamiento como salidas (tCEd, tOEd) y el paso
contrario a alta impedancia (tCEz, tOEz); la activacin de tales lneas como salidas
requiere la habilitacin de la pastilla CE = 0 y de las salidas OE = 0 y, tambin, la
no habilitacin de una operacin de escritura WE = 1.
La siguiente figura representa los tres tiempos involucrados en el paso de alta
impedancia a salida de datos y en el paso inverso a alta impedancia:
CE
OE
OUT
t
OEd
t
CEd
WE
t
WEd
t
CEz
t
OEz
t
WEz
D
222 El ect rni ca Di gi t al
Escritura en un registro
La operacin de escritura sobre un registro requiere que la palabra binaria (dato) que
va a ser escrita se encuentre presente en las lneas de entrada del mismo con una cierta
anticipacin (tiempo de preparacin del dato: setup ts) al momento de la escritura y que
permanezca durante un pequeo tiempo posterior (tiempo de mantenimiento: hold th) a
dicho momento.
t
W
CK o E
Dato
Escritura
t
s
t
h
Dato estable
En un registro sncrono el momento de ejecucin de una operacin de escritura viene
determinado por el flanco activo del reloj CK, mientras que en un registro habilitado por
nivel (latch) dicho momento coincide con el final del pulso de habilitacin.
En ambos casos, el pulso de escritura (es decir, el nivel previo al flanco activo del reloj
o el pulso de habilitacin) ha de tener una duracin superior a un valor mnimo: tiempo
de escritura tw.
Uno de los dos tiempos referentes al dato (tiempo de preparacin ts o tiempo de
mantenimiento th) puede ser nulo; de hecho existe un cierto compromiso entre ambos
tiempos, de forma que, en el diseo de un registro, es posible disminuir uno de ellos a
costa de aumentar el otro.
El respeto a los tiempos mnimos de anticipacin, de mantenimiento del dato y de
escritura asegura la correcta ejecucin de la operacin; la violacin de tales tiempos
puede dar lugar a una escritura incorrecta o a la permanencia del dato anterior en el
registro.
Tras una operacin de escritura sobe un registro, la palabra binaria escrita en l se
presentar en sus lneas de salida con un pequeo retraso respecto al momento de
escritura (tiempo de propagacin tp) y permanecer en las salidas del registro hasta la
siguiente operacin de escritura.
20. Si st emas con arqui t ect ura de bus 223
Escritura en una memoria de acceso directo RAM
Para realizar una operacin de escritura sobre un registro RAM se requiere:
- seleccionar dicho registro, a travs de las lneas A
i
, durante un intervalo de tiempo
previo anlogo al tiempo de acceso t'acc;
- habilitar la memoria ( 0 = E C ) durante un tiempo mnimo t'CE;
- ordenar la escritura a travs de la lnea WE (WE = 0 ), durante un tiempo mnimo
de escritura tW;
- y, adems, el dato ha de estar presente en las lneas de entrada/salida de la memoria
D
i
cumpliendo los correspondientes tiempos de anticipacin (setup tDs) y de
mantenimiento (hold tDh).
El pulso de escritura puede actuar bien sobre la entrada de habilitacin de escritura
WE estando la memoria habilitada CE = 0 o bien sobre la propia habilitacin de la
memoria CE estando la escritura habilitada WE = 0 .
El pulso de escritura controla la insercin de nuevo dato en la pastilla, de forma que
el instante de escritura coincide con el flanco de subida del mismo; previamente ha de
encontrarse el dato en las lneas de entrada/salida durante un intervalo temporal superior a
tDs y debe mantenerse presente durante un pequeo intervalo posterior tDh; todo ello para
asegurar una escritura correcta.
La secuencia de tiempos para el ciclo de escritura es la siguiente:
t
W
t'
CE
t'
acc
Ai
CE
WE
D
IN
Escritura
Datos estables
t
Ds
t
Dh
t
As
t
Ah
t
WC
224 El ect rni ca Di gi t al
En la escritura, el tiempo de acceso o seleccin de registro t'acc es anlogo al
considerado en el ciclo de lectura (ligeramente inferior); dicho tiempo expresa el retraso
entre la implantacin de una direccin en las lneas de direccionamiento y el acceso a
dicho registro por las lneas de entrada/salida.
El tiempo de escritura tw es el intervalo mnimo de habilitacin a travs de la lnea
de seleccin de escritura. Los tiempos de preparacin tDs y de mantenimiento del dato
tDh aseguran la estabilidad del mismo en las lneas de datos en el momento de
memorizacin o escritura.
Pero, adems, la direccin correcta ha de establecerse previamente al pulso de
escritura tAs y ha de permanecer posteriormente al mismo tAh para evitar que se produzca
una escritura errnea en algn otro registro.
El tiempo global del ciclo de escritura tWC
suele ser anlogo al tiempo de acceso
tacc del ciclo de lectura (que es tambin el tiempo mnimo posible para dicho ciclo de
lectura tRC); por ello, el tiempo de acceso tacc caracteriza la memoria en cuanto a
velocidad.
Los diversos tiempos dependen del circuito integrado especfico y deben ser
consultados en las correspondientes hojas de caractersticas; dentro de un mismo tipo de
memoria integrada suelen ofrecerse diversas series con tiempos de acceso y,
consiguientemente, velocidades de trabajo diferentes; por ello, al nmero que identifica al
circuito integrado suele aadirse su tiempo de acceso.
Tiempos de acceso y velocidades de trabajo habituales son los siguientes:
a) Memorias lentas:
(en la segunda lnea de datos se indican las velocidades de trabajo admisibles,
suponiendo que los retrasos intermedios, procesador-memoria, en las lneas de buses,
incluida la decodificacin de direccin del bloque, son inferiores a 20 ns)
120 ns 100 ns 85 n
6 MHz 8 MHz 10 MHz
b) Memorias rpidas:
(supuestos retrasos intermedios en las lneas de buses que no superen los 10 ns)
70 ns 55 ns 30 ns
12 MHz 15 MHz 25 MHz
c) Memorias ultrarrpidas:
(retrasos intermedios inferiores a 5 ns)
25 ns 15 ns 10 ns
33 MHz 50 MHz 66 MHz.
20. Si st emas con arqui t ect ura de bus 225
20. 4. Probl emas rel at i vos a l os buses: adapt adores de bus
La conexin de circuitos integrados o de placas (conjuntos de ellos) sobre los buses ha
de respetar la velocidad de trabajo, asegurando que no se introducen retrasos importantes
en las seales transmitidas a travs de los buses; para ello:
a) cualquier circuito intermedio (interbus) ha de ser suficientemente rpido
b) y ha de limitarse el nmero de circuitos integrados conectados a un bus, incluyendo, si
es necesario, adaptadores de bus (buffers: amplificadores de intensidad).
Los circuitos que realizan la decodificacin de las direcciones (para situar
adecuadamente los registros en el mapa de memoria), as como el resto de circuitos de
habilitacin y control de los diversos elementos que configuran la memoria (y, tambin,
los adaptadores de bus) se interponen en medio de las lneas de los buses entre el
procesador y la memoria, retrasando la transmisin de seales en los buses.
Por ello, tales circuitos (interbus) han de tener tiempos de propagacin muy pequeos:
para ciclos de operacin no inferiores a 200 ns (5 MHz) pueden ser suficientes tiempos de
propagacin inferiores a 25 ns, mientras que ciclos con duracin inferior precisan tiempos
no superiores a 15 ns que debern bajar a menos de 10 ns cuando la duracin del ciclo sea
inferior a 40 ns (25 MHz).
Las diversas familias y series lgicas integradas presentan, para un mismo circuito
integrado, tiempos de propagacin muy diferentes; por ejemplo, para un decodificador de
8 lneas muy utilizado en la decodificacin de direcciones (74138), los tiempos de
propagacin son:
HC (CMOS) tp
mximo = 50 ns tpico (25C): 25 ns
LS (TTL) tp
mximo = 40 ns tpico (25C): 20 ns
ALS (TTL) tp mximo = 20 ns tpico (25C): 10 ns
FAST (TTL) tp
mximo = 10 ns tpico (25C): 6 ns
AC (CMOS) tp
mximo = 8 ns tpico (25C): 5 ns.
La serie ALS es adecuada para velocidades de trabajo altas (no superiores a
20 MHz) ya que asegura retrasos en la propagacin de las seales relativamente bajos
(del orden de 10 ns) y, en cambio, su repercusin como carga sobre el bus es inferior a
0,1 mA (intensidad para entrada 0).
Para velocidades mayores es necesario utilizar series de menor tiempo de
propagacin, como puede ser la serie F (FAST) bipolar (cuyo consumo global es
relativamente elevado y su carga sobre el bus es superior a 0,5 mA para entrada 0) o la
serie AC en CMOS (que requiere un diseo muy cuidadoso de la placa de circuito
impreso pues presenta graves problemas de ruido en su conmutacin).
Como veremos a continuacin, una alternativa mejor es utilizar la familia BiCMOS.
226 El ect rni ca Di gi t al
Necesidad de suministrar intensidades altas
Los buses han de conectarse a mltiples circuitos integrados (fan-out), cuyo nmero
en ocasiones puede ser muy alto; sin embargo, la intensidad suministrable por cada lnea
de bus suele ser relativamente baja, inferior a 10 mA.
Los circuitos integrados TTL requieren una intensidad de entrada no despreciable
cuando su valor booleano es 0: 0,2 mA para la serie LS, 0,1 para la serie ALS, 0,5 para la
serie rpida FAST,; por ello el nmero de circuitos integrados TTL conectados
directamente sobre una lnea de un bus debe ser muy pequeo.
De hecho los bloques de memoria (incluidos los adaptadores de perifricos) suelen ser
integrados de tecnologas MOS, cuya repercusin sobre las lneas de los buses es
capacitiva: cada entrada equivale a un condensador que hay que cargar o descargar en
cada transicin, cuyo valor suele estar entre 1 y 10 pF, siendo 3 pF el valor tpico.
La carga o descarga de las mltiples entradas capacitivas que soporta un lnea de un
bus supone un aumento del tiempo de conmutacin de las seales; supuesto un fan-out n,
una intensidad de 10 mA y una tensin de alimentacin de 5 V:
Q = n.Ci.V I.t = n.Ci.V t = n.Ci.V/I n.(3 pF).(5 V)/(10 mA) = 1,5.n ns
Para n = 10 el tiempo de conmutacin de la lnea de bus es de 15 ns, que suponen un
cierto retraso en la propagacin de las seales, pero para n = 100 el retraso sera del orden
de 150 ns, sumamente alto.
Tanto en el caso bipolar como en el MOS, cuando el nmero de circuitos a conectar
sobre los buses es relativamente alto, interesa aumentar la capacidad de carga del bus, es
decir, la intensidad suministrable por sus lneas. Esto se consigue mediante adaptadores
de bus (buffers), que transmiten directamente el valor booleano presente en el bus y
proporcionan en su salida intensidades relativamente altas.
Un adaptador de bus puede ser unidireccional bus driver (caso del bus de direcciones
y del bus de control) o bidireccional bus transceiver (para el bus de datos); ambos se
configuran mediante adaptadores triestado de alta intensidad de salida:
- un adaptador unidireccional bus driver est constituido por un conjunto de
adaptadores triestado con una sola entrada de habilitacin comn para todos ellos
(por ejemplo, el circuito integrado 74244 de 8 lneas)
E
bus driver
20. Si st emas con arqui t ect ura de bus 227
- un adaptador bidireccional bus transceiver contiene un conjunto de parejas de
adaptadores triestado en antiparalelo (para una operacin de lectura debe ser
habilitado uno de ellos y para la escritura ha de habilitarse el de la direccin
opuesta), de forma que, adems de la entrada de habilitacin ha de tener una
entrada comn Sel que selecciona la direccin en que se produce la habilitacin
(por ejemplo, el circuito integrado 74245 de 8 lneas).
E
bus transceiver
Sel = R/W
Como circuitos intermedios en los buses, los adaptadores deben presentar tiempos
de propagacin muy pequeos y, adems, por su propia funcin, han de proporcionar
intensidades de salida relativamente altas; constituyen una clase particular de circuitos
digitales que han de ofrecer, a la vez, alta velocidad y alta intensidad de salida.
Para los buses de direcciones y de control han de utilizarse adaptadores
unidireccionales (bus driver), que han de estar continuamente habilitados. Para el bus de
datos sern necesarios adaptadores bidireccionales (bus transceiver), que han de
habilitarse slo cuando se accede al correspondiente sector del mapa de memoria (a la
zona o placa de circuitos integrados a la que transmiten los datos); adems, se necesita
distinguir el sentido de transmisin de los datos, diferenciando entre la habilitacin de
lectura (hacia el procesador) y la habilitacin de escritura (en sentido contrario).
La serie ALS proporciona adaptadores de bus con intensidades de salida de 15 mA y
24 mA para el 1 y el 0 lgicos, respectivamente, y tiempos de propagacin inferiores a 10
ns en el caso unidireccional (bus driver 74ALS244) y a 20 ns en el caso bidireccional
(bus transceiver 74ALS245).
228 El ect rni ca Di gi t al
Lgica interbs y tecnologa BiCMOS
En el captulo 10 (primer volumen) se ha introducido la denominacin de lgica
interbs (apartado 10.1.3) para referirse a los circuitos situados en medio de los buses;
dentro de este tipo se encuentran tanto los adaptadores de bus como aquellos otros
circuitos intermedios que, situados sobre los buses, han de conectar sus salidas a
mltiples bloques de memoria.
La lgica interbs requiere tiempos de propagacin muy reducidos para no retrasar
las seales que transmiten los buses y altas intensidades de salida para poder conectarse a
mltiples bloques. Para mejorar dichas caractersticas de alta velocidad e intensidad se ha
desarrollado recientemente una nueva tecnologa de integracin aprovechando las
ventajas de los transistores bipolares y las propias de la integracin CMOS: tecnologa
BiCMOS.
En la integracin BiCMOS la etapa de salida es de tipo TTL (totem pole), que
permite conmutar rpidamente altas intensidades, mientras que las entradas y la lgica
booleana son de tipo CMOS, aprovechando su reducida carga (como entradas) y sus
mejores caractersticas de funcionalidad lgica y de conmutacin; adems, el consumo de
las puertas BiCMOS en la situacin de alta impedancia es muy reducido (mientras que el
consumo de las puertas bipolares en alta impedancia es alto).
La tecnologa BiCMOS se utiliza para circuitos integrados especficamente dirigidos
a los buses (adaptadores de bus, decodificacin de direcciones, control de lectura y
escritura, etc.) y, tambin, para circuitos integrados mixtos (ASICs digitales con parte
analgica).
La serie ABT (Advanced BiCMOS Tecnology) proporciona adaptadores de bus con
intensidades de salida de 32 mA (para el 1) y 64 mA (para el 0) y tiempos de propagacin
inferiores a 5 ns (bus driver 74ABT244) y a 7 ns en el caso bidireccional (bus transceiver
74ABT245); existe asimismo una serie BiCMOS de baja tensin LVT para el intervalo
2,7-3,6 V, con tiempos de propagacin inferiores a 4 ns.
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
A4 Apndi ce al cap t ul o 16
Contadores asncronos
Si anulamos la entrada de habilitacin de un biestable T resulta un biestable muy
simple con una nica entrada que corresponde a la entrada de reloj o entrada de pulsos y
que cambia de estado con cada pulso que recibe; estos biestables utilizan como flanco
activo el de bajada (el flanco con el que finaliza cada pulso).
.
Q
Q
D
Q
F F
D Q
La evolucin de este biestable corresponde a la funcin Q(t +1) = Q(t) y equivale a
un biestable D en el cual D = Q o a un biestable JK en el cual J = K = 1.
Este biestable permite la construccin de contadores en forma muy sencillo:
mediante la conexin directa, en cadena, de n biestables se configura un contador mdulo
2
n
; en el caso de 4 biestables ser un contador mdulo 16, que contar desde 0 hasta 15.
Q
Q
3
Q Q Q
entrada
de pulsos
Q
2
Q
1
Q
0
El primer biestable cambia de estado con cada pulso que le llega y cada uno de los
biestables siguientes cambia cuando el biestable anterior pasa de 1 a 0 (al contar un
biestable de 1 a 0 se lleva una unidad al siguiente biestable). Esto equivale a contar en
binario desde el valor inicial, 00000 = 0, hasta el mximo que pueden contener los
biestables, 11111 = 2
m
-1 (vase la figura de la pgina siguiente).
262 El ect rni ca Di gi t al
Q3
0
0
0
0
0
0
1
1
1
0
0
Q2
0
0
0
0
1
1
1
1
1
0
0
Q1
0
0
1
1
0
0
0
1
1
0
0
Q0
0
1
0
1
0
1
1
0
1
0
1
primer pulso
segundo pulso
tercer pulso
cuarto pulso
quinto pulso
13 pulso
14 pulso
15 pulso
16 pulso
17 pulso
situacin inicial: 0
Generalmente se incluye en los contadores una entrada de borrado asncrono
Clr (clear) comn a todos los biestables que, al ser activada (Clr = 1), lleva el contador a
cero; su adecuada utilizacin permite transformar un contador completo mdulo 2
m
en
otro contador parcial mdulo n, siendo n un nmero cualesquiera inferior a 2
m
.
Para configurar tal contador mdulo n se parte de un contador de m biestables tal
que 2
m
> n y se hace que dicho contador se borre cuando aparezca en sus salidas el
nmero n; para ello basta llevar los dgitos con valor 1 del nmero n en binario a una
puerta "y" que acte sobre la entrada de borrado, de manera que al formarse el nmero n
en las salidas se borre inmediatamente el contador y pase a 0: contador mdulo n.
Q3 Q2 Q1 Q0
Clr
Q3 Q2 Q1 Q0
Clr
CONTADORmdulo 10
10 = 1 0 1 0
CONTADORmdulo 13
13 = 1 1 0 1
(2
( 2
A5. Cont adores as ncronos 263
As pues, para construir contadores mdulo n 2
m
, basta aadir una puerta "y" que
reciba las variables cuyo valor en n es 1: trmino mnimo reducido correspondiente a n.
Al no utilizar el trmino mnimo completo, el borrado no solamente se produce con n
sino, tambin, con otros nmeros superiores (con todos aquellos que tengan valor 1 en las
mismas posiciones que n y en alguna otra ms); siendo n el menor de ellos, los dems
nmeros que producen el borrado no pertenecen a la evolucin del contador (el contador
vuelve al estado inicial antes de llegar a ellos).
Aunque cada biestable individualmente es sncrono (si su entrada se conecta a la
seal de reloj), su conexin en cadena hace que el contador resultante sea asncrono, pues
los biestables van conmutando sucesivamente y no en el mismo instante; aun ms, en los
contadores mdulo n 2
m
se presenta durante unos instantes el estado n, que se utiliza
para borrar el contador y que no pertenece al contaje mdulo n.
De forma que este tipo de configuracin de contadores no es globalmente sncrona y
ello por dos razones:
a) no conmutan todos los biestables a la vez, sino que lo hacen sucesivamente; la
conmutacin de cada biestable es provocada por el paso de 1 a 0 del biestable anterior y,
por tanto, la transicin entre dos estados que difieren en ms de una variable de estado
(por ejemplo el paso de 7 0111 a 8 1000) recorre fugazmente toda una serie de estados
intermedios (01110110010000001000).
b) en el caso de contadores parciales (de que n no sea potencia entera de 2) la
transicin del estado n-1 al estado inicial 0 genera un estado adicional (el estado n) que
ha de estar presente durante un intervalo de tiempo pequeo pero suficiente para producir
el borrado de los biestables; tal estado n no pertenece a la evolucin del contador mdulo
n y no es meramente un estado fugaz ya que tiene una actuacin booleana concreta
(borrado de los biestables); adems, existe el peligro de que, por diferencias en los
tiempos de propagacin entre los biestables, no se complete el borrado de todos ellos y la
transicin se detenga (errneamente) en un estado intermedio entre el 0 y el n, distinto de
ambos.
Conexin de contadores asncronos
Los contadores asncronos pueden conectarse entre s uniendo la salida ms
significativa de cada uno de ellos con la entrada de pulsos del siguiente.
Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0
16 16
Si conectamos de esta forma dos contadores sncronos (uniendo la salida ms
significativa del primero con la entrada de reloj del segundo), el contador resultante ser
asncrono ya que el segundo de los contadores no cambiar de estado con los pulsos de
reloj del sistema, sino despus de que haya cambiado de estado el primer contador.
264 El ect rni ca Di gi t al
En el caso de conexin de contadores parciales asncronos un posible error de
diseo sera llevar a dicha entrada el pulso de borrado del contador anterior; la duracin
de dicho pulso es tan pequea que no asegura su reconocimiento como tal, a efectos de
avanzar un unidad en el contaje (y adems, no es necesario utilizarlo, pues se dispone del
flanco de bajada del biestable ms significativo del correspondiente contador).
Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0
C C l l r r
Contador mdulo 100 (10 x 10)
Contador 7490
En los catlogos de circuitos integrados digitales existe un amplio nmero de
contadores integrados asncronos de tipos muy diversos.
Uno de ellos muy utilizado es el 7490, que contiene dos partes separadas: un
biestable qA (mdulo 2) y los otros tres biestables qD qC qB unidos configurando un
contador mdulo 5, de forma que para conformar un contador mdulo 10 es necesario
unir la salida del primer biestable a la entrada de pulsos de los otros tres. Dos entradas
R01 y R02 permiten poner a 0 todos los biestables (cuando ambas se encuentran a 1) y
otras dos entradas R91 y R92 llevan al contador a 9 (1001).
D A C B
entrada A entrada B
o
o
2
o
o
5
R01
R02
R91
R92
D A C B
entrada A entrada B
o
o
2
o
o
5
R01
R02
R91
R92
QA
QB
QC
QD
R02
R01
R92
R91
CLKB
CLKA
90
3
2
1
14
7
6
12
9
8
11
La separacin del primer biestable permite la configuracin de contadores mdulo
10 BCD (DCBA: entrada por A y la salida de A unida a la entrada de B) y bi-quinarios
(ADCB: entrada por B y la salida de D unida a la entrada de A); estos ltimos tambin
dividen la frecuencia por 10 pero, adems, proporcionan una onda cuadrada como
resultado de dicha divisin (en la salida ms significativa qA: 5 unidades de tiempo en 0
y otras 5 unidades de tiempo en 1).
La existencia de dos entradas de borrado (configurando internamente una puerta "y"
entre ellas) permite construir contadores mdulo 3, mdulo 6 y mdulo 9 (cuyos trminos
mnimos reducidos tienen dos variables) sin necesidad de aadir ninguna puerta exterior.
Adems, este circuito ofrece de por s contadores mdulos 2 y 5 y es directo configurar
contadores mdulos 4 y 8 (cuyos trminos mnimos reducidos tienen una sola variable).
[Un contador mdulo 7, con contaje un poco extrao, puede conseguirse uniendo las
salidas C y B a las entradas R91 y R92, de manera que contar 0 1 2 3 4 5 9 0 1 2 ...]
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
A5 Apndi ce al cap t ul o 19
Memori as de acceso di rect o dinmicas
Una memoria de acceso directo con k lneas de direccionamiento y n lneas de datos
contiene n x 2
k
biestables, nmero que puede ser considerablemente alto; por ello, la
configuracin electrnica de cada biestable ha de ser muy simple para minimizar el rea
de integracin: basta un par de inversores en lazo cerrado (la salida de cada uno de ellos
conectada a la entrada del otro).
La siguiente figura representa la configuracin y conexiones de un biestable CMOS
y de un biestable bipolar propios de un bloque RAM:
Vcc Vcc
l nea
de bi t Q
l nea
de bi t Q
seleccin
de fila
seleccin
de fila
l nea
de bi t Q
l nea
de bi t Q
En el caso CMOS las dos salidas Q y Q del biestable se encuentran conectadas a
travs de sendos transistores de paso a las lneas que enlazan la correspondiente columna;
cuando se selecciona la fila en que se encuentra dicho biestable los transistores de paso
conducen y comunican las dos salidas del biestable con las lneas de columna, haciendo
posible una operacin de lectura o de escritura sobre l.
En el caso bipolar la conexin con las lneas de columna se establece a travs de los
emisores de los transistores; un segundo emisor conecta los transistores con la lnea de
seleccin de fila, de forma que cuando sta se encuentra a 0 (no activada) dichos emisores
conducen e impiden que lo hagan los que conectan con las lneas de columna.
Este tipo de memorias de acceso directo, con biestables que conservan la
informacin a lo largo del tiempo (con tal de que se encuentren adecuadamente
alimentados, VCC), reciben el nombre de RAM estticas: SRAM.
Existe una amplia oferta de circuitos integrados SRAM para cubrir las diferentes
necesidades relativas a capacidad de memoria (nmero de registros) y a velocidad de
trabajo (tiempos de acceso).
266 El ect rni ca Di gi t al
Para reducir el rea de integracin de los biestables y, consiguientemente, aumentar
la capacidad de la memoria, se ha desarrollado otro tipo de memorias de acceso directo
que utilizan un simple condensador, en lugar de un biestable, para almacenar y mantener
el valor que deben conservar; se denominan memorias RAM dinmicas: DRAM.
fila
lnea Q
de columna
Estas memorias incorporan condensadores anlogos a las capacidades de puerta de
los transistores MOS para retener sobre ellos la tensin correspondiente a cada bit
memorizado (la capacidad de tales condensadores suele ser del orden de 0,1 pF).
La conservacin de la tensin por efecto capacitivo no es permanente pues se
producir un lento proceso de descarga. Por ello, en estas memorias la informacin no
permanece indefinidamente, sino que es necesario refrescar (leer y volver a escribir)
cada cierto tiempo las palabras binarias almacenadas; de ah el calificativo de
dinmicas DRAM. En cambio, al disminuir el nmero de componentes y, tambin, por
el hecho de utilizar una sola lnea de columna, el rea necesaria para su integracin es
muy inferior al de las memorias estticas SRAM, lo que permite aumentar en gran
medida el nmero de registros que contienen (la capacidad de la memoria).
Una operacin de lectura de uno de los biestables (en realidad, condensadores) de
estas memorias supone una redistribucin de la carga del correspondiente condensador
sobre la capacidad equivalente de la lnea de columna a que se encuentra conectado; es
decir, supone una modificacin de la tensin memorizada de forma que no se alcanzan
los valores propios del 0 y del 1 booleanos. Ello exige mayor complejidad en las
operaciones de lectura y la posterior reescritura del registro ledo para evitar la
destruccin de su informacin.
En una memoria DRAM cada lnea de columna se encuentra conectada a un
amplificador de lectura/escritura de forma que una operacin de lectura se ejecuta sobre
todos los biestables (condensadores) de la fila correspondiente; posteriormente la
direccin de columna seleccionar los bits que han de ser comunicados a las salidas de la
memoria. En cada una de las hojas de la memoria, un registro de fila, cuya longitud
es igual al nmero de biestables que componen una fila, almacena el resultado de la
lectura de todos ellos.
A6. Memori as de acceso di rect o di nmi cas 267
La lectura se efecta a travs de un comparador, cuyas dos entradas son
precargadas a una tensin intermedia (entre las que corresponden al 0 y al 1
booleanos); al poner en comunicacin al condensador de la lnea seleccionada con una de
las entradas de este comparador, la tensin de dicha entrada aumentar o disminuir
segn que el valor almacenado sea un 1 o un 0, de forma que el comparador ser capaz de
discriminar entre dichos valores. Cada comparador comunica su salida hacia uno de los
biestables del registro de fila; una vez finalizada una operacin de lectura, el contenido
de dicho registro es reescrito sobre los condensadores que conforman la fila, de forma
que se produce un refresco de toda la fila sobre la que se ha efectuado la lectura.
La operacin de escritura se realiza en forma anloga: refirindonos a una de las
hojas de la memoria, en primer lugar se ejecuta una lectura de la correspondiente fila
sobre el registro de fila, luego se actualiza la porcin de dicho registro que corresponde
a la columna sobre la que se desea escribir y, por ultimo, se reescribe el contenido del
registro de fila sobre la fila seleccionada.
El refresco de toda la memoria se consigue ejecutando una operacin de lectura
sobre cada una de las filas que componen la memoria. Generalmente las memorias
DRAM se organizan en hojas con matrices de 256 x 256 biestables (64K) o de 512 x
512 biestables (256K = 1/4 Mega); por lo cual el refresco supone, respectivamente,
256 512 operaciones de lectura sobre la memoria.
Por lo general las memorias DRAM disponibles actualmente conservan la
informacin por perodos superiores a 8 ms, que son el intervalo tpico de refresco.
Supuesto que cada operacin de lectura precise 1 s, para refrescar toda la memoria se
necesitarn 256 s 512 s segn el nmero de sus filas; lo cual supone, en relacin con
el intervalo de 8 ms, un 3 % y un 6 % del tiempo total, respectivamente.
El manejo de las memorias DRAM integradas se complica an ms por cuanto que,
para reducir el nmero de sus terminales (pines), suelen recibir la direccin de fila y la
direccin de columna por los mismos terminales; una lnea de validacin de la direccin
de fila RAS y otra de validacin de la direccin de columna CAS gestionan el
almacenamiento de dichas direcciones en sendos registros en el inicio de cada operacin
de lectura o escritura.
De forma que una operacin de lectura desarrolla la siguiente secuencia:
0) situacin al inicio del ciclo RAS = 1 y CAS = 1
1) RAS = 1 : precarga de los comparadores
2) RAS = : almacenamiento de la direccin de fila
3) RAS = 0 : lectura de toda la fila de biestables
sobre el registro de fila
4) CAS = : almacenamiento de la direccin de columna
5) CAS = 0 : salida del correspondiente dato (lectura)
268 El ect rni ca Di gi t al
6) RAS = : escritura del registro de fila
sobre la fila de biestables (refresco)
7) RAS = 1 : fin del ciclo de operacin (nueva precarga).
Como puede apreciarse la lnea RAS es la que controla realmente las filas de
condensadores, determinando su lectura RAS = 0 y su escritura RAS = 1;
asimismo con su flanco negativo dicha lnea memoriza la direccin de la fila sobre la que
se acta. La lnea CAS acta como habilitacin de salidas, determinando la presentacin
de un dato CAS = 0 o, alternativamente, el estado de alta impedancia CAS = 1; con
su flanco negativo memoriza la direccin de la columna.
Una operacin de escritura coincide con la secuencia anterior salvo en:
4) CAS = con WE = 0 : almacenamiento de la direccin de columna
y recepcin del dato desde las lneas de entrada
5) CAS = 0 con WE = 0 : almacenamiento del dato en el registro de fila
en esta quinta etapa el dato que haba sido recibido por las lneas de entrada en la etapa
anterior es almacenado en el registro de fila, en la posicin que corresponda a la
columna seleccionada y en la etapa siguiente el registro de fila es escrito en la fila
seleccionada.
Cada operacin de lectura o de escritura produce el refresco de la correspondiente
fila de la memoria. Cuando lo nico que se pretende es refrescar la memoria no es
necesario referirse a las columnas ni utilizar la correspondiente lnea de validacin CAS;
basta conmutar la lnea de validacin de la direccin de fila RAS, presentando en cada
uno de sus flancos negativos la direccin de una de las filas de la memoria.
Los cronogramas correspondientes a los ciclos de lectura y de escritura de las
memorias DRAM incluyen medio centenar de tiempos diferenciados (acceso,
anticipacin, mantenimiento,). La complejidad de tales operaciones y la necesidad de
producir cclicamente un refresco global de la memoria han motivado la aparicin de
controladores de DRAM integrados que logran que, desde el lado del procesador, las
operaciones de lectura y escritura se ejecuten como si fueran memorias SRAM y, a la
vez, aseguran que se realice el refresco de la memoria con adecuada periodicidad.
En muchas memorias dinmicas, se incluye en el propio bloque integrado el circuito
de refresco de la memoria (un simple contador que controla la lectura de sus filas,
operando internamente cuando la memoria no se encuentra habilitada); de esta forma,
vistas desde fuera, se comportan como si fueran estticas: pseudo static RAM.
A6. Memori as de acceso di rect o di nmi cas 269
La velocidad de acceso a una memoria DRAM aumenta cuando se realizan
operaciones en una misma fila, es decir, cuando no se modifica la direccin de fila sino
solamente la de columna; en tal sentido se considera que los registros situados en una
misma fila se encuentran en una pgina nica: operacin en modo de pgina.
Cuando se producen varias operaciones seguidas sobre la misma pgina, solamente
es necesario que la primera de ellas ejecute un ciclo normal de lectura o escritura; para los
siguientes accesos basta modificar la direccin de columna y conmutar la correspondiente
lnea de validacin CAS, sin necesidad de gastar tiempo en las etapas relativas a la lnea
RAS.
Este tipo de bloques DRAM se denomina FPM (fast page mode), ya que accesos
sucesivos a una misma pgina requieren tiempos de ciclo inferiores al primero de ellos:
una vez determinada la pgina, basta enviar las sucesivas direcciones de las columnas
sobre las que se ha de efectuar la operacin.
Los bloques DRAM FPM de alta velocidad (y alta capacidad de memoria) suelen
tener tiempos de acceso de 70 ns que se reducen a 40 ns cuando las siguientes
operaciones se realizan sobre la misma pgina. [Como memorias RAM de los
computadores se utilizan en placas con relojes de hasta 66 MHz, pero, en tal caso,
requieren 5 ciclos de reloj para el primer acceso a pgina y 3 ciclos para los accesos
siguientes.]
La lectura limita la velocidad de trabajo en mayor medida que la escritura, ya que en
esta segunda el procesador mantiene el dato a escribir en el bus durante todo el ciclo de
escritura; por ello, las siguientes figuras se refieren a operaciones de lectura sobre los
bloques DRAM.
Fila columna 1 columna 2 columna 3 columna 4 columna 5 columna 6
RAC
t
CAC
t
RAS
CAS
DIR
DAT D1 D2 D3 D4 D5
Operaciones sucesivas de lectura sobre una pgina DRAM FPM
Las operaciones de lectura sobre estas memorias presentan el inconveniente de que
la salida de dato es habilitada por la lnea CAS, de manera que se interrumpe despus de
que dicha lnea pasa a valor 1 (y, en lecturas sucesivas, hay intervalos de tiempo muerto
en los cuales no hay salida de ningn dato correcto).
270 El ect rni ca Di gi t al
Para aumentar la velocidad de trabajo (en relacin con la lectura de registros en la
misma pgina) se ha desarrollado un tipo de memorias en que el dato se mantiene en las
salidas hasta que, como resultado de una nueva operacin de lectura, se presenta el dato
siguiente (es decir, el dato de salida se mantiene durante el intervalo en que CAS = 1);
este tipo de DRAM se denomina EDO (extended data output).
De esta forma, los tiempos de acceso para lecturas sucesivas en una misma pgina
se reducen: de 60 ns en el primer acceso se pasa a 25 ns en los siguientes. [Se utilizan en
placas de computadores con relojes de hasta 75 MHz, reservando 5 ciclos de reloj para el
primer acceso a pgina y 2 ciclos para los accesos siguientes.]
Fila columna 1 columna 2 columna 3 columna 4 columna 5 columna 6
D1
RAC
t
CAC
t
D2 D3 D4 D5
RAS
CAS
DIR
DAT
Operaciones sucesivas de lectura sobre una pgina DRAM EDO
An se consiguen velocidades mayores cuando se trata de operar sobre registros
sucesivos de una misma pgina; para ello el registro de direccin de columna se configura
en forma de contador con una entrada de reloj que permite incrementar sucesiva y
rpidamente la columna: memorias dinmicas sncronas SDRAM (synchronous DRAM).
Los tiempos de accesos sucesivos en una misma pgina son an menores: de 40 ns en
primer acceso se baja a 8 ns en los siguientes. [Se utilizan relojes de hasta 133 MHz, 5
ciclos para el primer acceso y 1 ciclo para los siguientes.]
Fila columna 1
RAC
t
CLK
RAS
CAS
DIR
DAT D1 D2 D3
CLK
Operaciones sucesivas de lectura sobre una pgina SDRAM
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
T4 TEMPORIZADORES: OSCILADORES Y MONOSTABLES
T4.1. Comportamiento circuital de los condensadores
T4.2. Monostables
T4.3. Circuitos astables
T4.4. El circuito temporizador 555
T4.5. Osciladores de precisin: cristal de cuarzo
T4.6. Acomodacin de pulsos externos
Este tema se dedica a la configuracin y diseo de circuitos auxiliares que tienen que ver
con el tiempo, con la delimitacin de intervalos de tiempo: circuitos monostables que
proporcionan un pulso con la anchura temporal que interese y osciladores astables que
generan una seal de frecuencia fija.
El tiempo es una variable necesaria en muchos circuitos digitales: se trata de disponer
de intervalos temporales de una duracin dada, bien en forma de pulsos individuales
producidos a partir de una seal de disparo (monostables) o bien en forma de seal
repetitiva cuyos perodos determinan unidades de tiempo sucesivas (astables). El primer
caso sirve para controlar la duracin de un proceso, mientras que el segundo proporciona
ondas de sincronismo o de reloj (imprescindibles en los sistemas sncronos).
En ambos casos hay que delimitar la duracin temporal de intervalos, conforme al
valor deseado, mediante pulsos cuya anchura o cuyo perodo de repeticin se ajusten a
dicho valor.
La carga o descarga de un condensador a travs de una resistencia proporciona una
manera sencilla para fijar tiempos: el condensador recorre una exponencial y, tomando
un intervalo de la misma (entre dos tensiones V1 y V2), tardar en recorrerlo un tiempo
determinado. De esta forma, tanto la duracin del pulso de un circuito monostable como la
del perodo de un astable pueden controlarse mediante un circuito RC.
A veces, sobre todo en la seal de reloj de sistemas sncronos, interesa mayor precisin
de la que puede obtenerse con circuitos RC: el empleo de cristales de cuarzo, con frecuencias
de resonancia sumamente precisas, permite construir osciladores apropiados.
Comienza este captulo repasando el comportamiento circuital de un condensador en una
red RC, para utilizarlo, luego, en circuitos monostables y astables; se considera, tambin,
la configuracin de los monostables digitales integrados y la del temporizador tpico 555.
Asimismo se describe la utilizacin de cristales de cuarzo y la configuracin de los
correspondientes osciladores de precisin. Y se incluye un ltimo apartado sobre la
adaptacin de pulsos externos, acomodndolos a los niveles de tensin y a la verticalidad
de los flancos propios de los sistemas digitales.
230 El ect rni ca Di gi t al
T4. 1. Comport ami ent o ci rcui t al de l os condensadores
Un condensador es un depsito capaz de almacenar carga elctrica; la cantidad de
carga almacenada determina la tensin del condensador: q = C . V
La cantidad de carga en un condensador no puede modificarse instantneamente,
sino a travs de un proceso de carga o de descarga. Por tanto, la tensin de un
condensador no puede variar bruscamente sino a travs de las correspondientes funciones
de carga y de descarga, que sern exponenciales si se produce a travs de una resistencia.
Consideremos un circuito RC, una resistencia y un condensador en serie:
Al aplicar una tensin continua a un circuito RC, tras el correspondiente transitorio,
toda la tensin continua quedar aplicada sobre el condensador: un condensador es un
circuito abierto para tensin continua, es como si el condensador no estuviera presente
para tal tensin (la tensin continua sobre la resistencia ser nula).
Cualquier variacin brusca de una tensin aplicada al circuito RC se proyecta de
inmediato sobre la resistencia, despus de lo cual el condensador desarrollar el
correspondiente proceso de carga o descarga.
V
R
V
C
R
C
Un circuito RC cuya salida se toma sobre el condensador suaviza las tensiones que
recibe, se comporta como un integrador: filtro pasa-baja.
V
i
pasa la tensin continua
y las bajas frecuencias
frecuencia de corte fc = 1/(2RC)
para f << 1/(2RC) Vo = K.
Vi dt K=1/RC
En los circuitos digitales se emplean condensadores de desacoplo en paralelo con
la tensin de alimentacin, situados junto a los circuitos integrados y muy prximos a sus
terminales de alimentacin, con una doble utilidad:
- por una parte, suministran los picos de intensidad que se requieren en las
conmutaciones, evitando que produzcan transitorios de tensin sobre las lneas de
alimentacin (a causa de la autoinduccin que presentan)
- y, tambin, junto con las inductancias de dichas lneas de alimentacin, conforman
filtros pasa-baja que impiden el paso de los transitorios de alta frecuencia presentes
en las mismas.
T4. Monost abl es y ast abl es 231
En cambio, si la salida del circuito RC se toma sobre la resistencia, se refuerzan las
variaciones de la tensin recibidas, el circuito se comporta como un diferenciador o
derivador: filtro pasa-alta.
V
i
V
o
pasan las altas frecuencias
frecuencia de corte fc = 1/(2RC)
para f >> 1/(2RC) Vo = K. dVi/dt K=1/RC
Al condensador le lleva su tiempo cargarse o descargarse, siendo as que para
responder a las variaciones de la tensin de entrada, el condensador (en un circuito
RC) ha de ejecutar el correspondiente proceso de carga o de descarga.
Supuesto que la tensin de entrada al circuito RC vare mediante un escaln, de un
valor Va a otro Vb (ambos de tensin continua), el condensador pasar suavemente de
tener una tensin Va a otra Vb y el correspondiente proceso de carga o descarga ser
exponencial con constante de tiempo = RC. La constante de tiempo expresa la
velocidad de variacin de las exponenciales.
Tngase en cuenta que la constante de tiempo de un circuito RC no es el tiempo que
el condensador tarda en cargarse o descargarse (que matemticamente es infinito, ya que
es una curva asinttica), sino el tiempo en que se recorre el 63 % del intervalo de carga o
descarga: 1 - 1/e = 1 - 1/2,72 = 0,63. En el caso de la descarga de un condensador
desde una tensin V, una constante de tiempo es el tiempo en que la tensin del
condensador disminuye desde V hasta el valor V/e = 0,37.V.
En dos constantes de tiempo se recorre el 86 % del intervalo de carga o descarga, en
tres el 95 % y en cuatro constantes de tiempo se recorre el 98 %, porcentaje que, en la
prctica, equivale a completar el proceso de carga o de descarga.
Los temporizadores aprovechan la funcin de carga o descarga de un condensador a
travs de una resistencia para determinar intervalos de tiempo de duracin prefijada t: la
ecuacin de carga o descarga (circuito RC conectado a una tensin V) es:
V
V
R
C
i
8
C
R
) V - (V
i
C
=
dt
dV
. C i
C
=
C . R
) V - (V
dt
dV
C C
=
exponencial: ecuacin diferencial cuya solucin es de tipo
RC
t
-
C
.e B A V + = ,
obtenindose los valores de A y B a travs de las condiciones de contorno:
para t = 0
inicial C
V B A V = + = ;
para t =
= = V A V
C
con lo cual
RC
t
-
inicial C
).e V - (V - V V
= .
(Se utiliza la notacin V para la tensin aplicada al circuito RC para destacar que tal es
el valor hacia el cual tiende la tensin del condensador: el condensador adquiere la
tensin V al cabo de un tiempo suficientemente grande).
232 El ect rni ca Di gi t al
Si el proceso de carga o descarga se realiza hasta alcanzar la tensin Vfinal, su
duracin t ser:
RC
t
-
inicial final
).e V - (V - V V
=
final
RC
t
-
inicial
V - V ).e V - (V
= ;
final
inicial
V - V
V - V
ln . R.C t
= .
En la carga o descarga de un condensador C hacia una tensin V a travs de una
resistencia R, el intervalo de tiempo t en que la tensin del condensador pasa de un
valor inicial Vini a un valor final Vfin
ser:
fin
ini
V - V
V - V
ln . R.C t
= .
T4. 2. Monost abl es
Un monostable (o temporizador) es un bloque digital con un estado estable 0 y otro
estado inestable 1; el monostable pasa a estado 1 cuando se produce su disparo y
permanece en dicho estado durante un intervalo de tiempo constante T.
Un monostable produce un pulso de duracin T; para ello ha de ser disparado a
travs de sus correspondientes entradas: normalmente los monostables integrados
presentan dos entradas de disparo, una de ellas A se activa con bajadas (paso de 1 a 0
en dicha entrada) y la otra B se activa con subidas (paso de 0 a 1 en la misma),
existiendo dos posibilidades de disparo definidas por las condiciones siguientes:
- disparo por A : A = y B = 1
- disparo por B : A = 0 y B = .
El monostable en reposo se encuentra a 0; en el disparo pasa a 1 y permanece en
dicho estado durante un tiempo T prefijado (generalmente dicho tiempo se fija mediante
un circuito RC externo); es, pues, un temporizador que se activa durante tiempos de
duracin prefijada o, lo que es lo mismo, produce pulsos de una anchura temporal dada.
A
B
Monostable
Q
Q
T
disparo
Se dice que el monostable es redisparable si al producirse un nuevo disparo durante
su pulso activo prolonga la duracin del pulso durante un nuevo intervalo de tiempo T; en
cambio, un monostable no redisparable finaliza siempre sus pulsos cuando stos han
alcanzado la duracin T prefijada.
T4. Monost abl es y ast abl es 233
Los monostables suelen utilizar un circuito RC conectado a la tensin de
alimentacin: el condensador se encuentra inicialmente cargado a la tensin de
alimentacin VCC y, en el momento del disparo del monostable, se fuerza una descarga
rpida hasta una tensin V1 a partir de la cual el condensador se carga a travs de la
resistencia hasta alcanzar una tensin V2 que determina el final del pulso.
Vcc
V1
V2
pulso
disparo
tensin
sobre el
condensador
t
t
La anchura del pulso t viene dada por el tiempo de carga entre las tensiones V1
y
V2 , habida cuenta de que el tiempo de descarga hasta V1
es despreciable frente a la carga
a travs de R:
2 CC
1 CC
fin
ini
V - V
V - V
ln . R.C
V - V
V - V
ln . R.C t = =
.
La figura siguiente representa un monostable sencillo que se dispara con flancos de
subida en su entrada B:
Vcc
B
R
C
Y
**
Las formas de onda en los nudos de este circuito son las siguientes, siendo Vcom la
tensin de conmutacin del inversor (y supuesto VoH = VCC y VoL = 0 V):
Vcc
Vcc
com
**
B
Y
V
B
234 El ect rni ca Di gi t al
La realimentacin sobre la puerta "o-negada" (Nor) impide que la bajada del pulso
de disparo en la entrada B se transmita (invertida) al condensador e interrumpa el pulso
de salida.
Las puertas integradas CMOS (serie HC) tienen, por lo general, su tensin de
conmutacin Vcom aproximadamente a mitad de la de alimentacin:
R.C . 0,7 2 ln . R.C
) 2 / (V - V
V
ln . R.C
V - V
0 - V
ln . R.C t
CC CC
CC
com CC
CC
= = =
Este monostable puede ser construido empleando dos puertas "o-negada" (Nor)
integradas (74HC02). Tambin puede ser construido con transistores discretos
segn la figura siguiente (con la ventaja de que, en este caso, pueden utilizarse
tensiones de alimentacin y, en consecuencia, tensiones de salida ms elevadas).
Q
Q
Vcc
Q
Q
T
V
cc
T
R
C
C
R
Los monostables integrados suelen utilizar un esquema del siguiente tipo:
T
Q
Clr
S
R
Q
+
-
COMP
+
-
COMP
Vc
c
comparador 2
A
B
V
2
R
ext
C
V
1
pulso
R
1
R
2
R
3
comparador 1
ext
La entrada de disparo A acta con bajadas siempre que B = 1 mientras que la
entrada B lo hace con subidas cuando A = 0; en ambos casos se dispara el biestable T
(que causa la descarga rpida del condensador hasta que alcanza la tensin V1) y se
marca el biestable RS que proporciona el pulso de salida. El conmutador que descarga al
condensador puede ser realizado mediante un simple transistor NMOS (o un NPN).
T4. Monost abl es y ast abl es 235
Dos comparadores de tensin detectan el cruce de la tensin del condensador con V1
y V2; el condensador se descarga hasta que su tensin es V1 (momento en que el primer
comparador borra al biestable T y finaliza la descarga) y, luego, se carga hasta V2 (en que
el segundo comparador borra al biestable RS y finaliza el pulso de salida).
En los monostables integrados CMOS (serie HC) suele hacerse R2=2.R1=2.R3 con lo
cual V1
= VCC/4, V2 = 3VCC/4 y la anchura de pulso: t = R.C . ln3 1,1 RC.
El monostable representado en la figura anterior es redisparable, es decir, si durante
el intervalo temporal que corresponde a un pulso vuelve a actuar el disparo, el
condensador se descarga de nuevo hasta la tensin V1 y el pulso se prolonga durante un
intervalo igual a la anchura de pulso t.
Puede evitarse el redisparo aadiendo a la puerta "y" que dispara el biestable T una
entrada conectada a la salida negada del monostable; de esta forma, durante el pulso dicha
puerta "y" se encuentra inhibida y, con ella, el disparo del monostable.
La figura siguiente muestra un monostable no redisparable; esta figura incluye,
asimismo, un conmutador que evita el consumo de intensidad a travs de la red de
resistencias fuera de los intervalos correspondientes al pulso.
T
Q
Clr
S
R
Q
+
-
COMP
+
-
COMP
Vc
c
comparador 2
V
2
V
1
R
1
R
2
R
3
comparador 1
A
B
C
ext
R
ext
T4. 3. Ci rcui t os ast abl es
Un astable (u oscilador digital) es un bloque que no tiene ningn estado estable sino
que conmuta sucesivamente entre sus dos estados (0 y 1) produciendo una onda de
perodo T: frecuencia f = 1/T. Un astable, como oscilador en onda cuadrada (o bien en
onda rectangular si los semiperodos de la misma son de distinta duracin) sirve para
generar la onda de reloj de los sistemas sncronos o cualquier otra seal de frecuencia fija
que interese.
Q
Astable
T
f = 1 / T
236 El ect rni ca Di gi t al
Es posible configurar un sencillo oscilador en onda rectangular mediante un lazo de
realimentacin RC sobre un inversor con entrada de tipo Schmitt; la realimentacin a
travs de R determina la carga y descarga del condensador segn que la salida del
inversor sea 1 0 y, a su vez, la tensin del condensador fuerza la conmutacin del
inversor al alcanzar las tensiones umbrales Va
y Vb.
C
R
V
1
V
C
En la figura anterior se aade un segundo inversor para mejorar la verticalidad de los
flancos de la onda y, a la vez, proteger funcionalmente al circuito oscilador evitando el
efecto de carga de mltiples entradas conectadas sobre el mismo.
La tensin sobre el condensador ser aproximadamente triangular (constituida por
sendos tramos de las exponenciales de carga y descarga) entre los valores de tensin Va
y Vb (de disparo de la entrada Schmitt) de forma que las ondas en la salida y la entrada
del primer inversor sern las siguientes:
V
V
C
Vb
V
a
V
oH
VoL
1
V
a
La onda rectangular de salida tendr como semiperodos:
- carga
b oH
a oH
1
V - V
V - V
ln . R.C T = - descarga
a oL
b oL
2
V - V
V - V
ln . R.C T =
Supuesto que VoH VCC y VoL 0
a b CC
b a CC
2 1
V ). V - (V
V ). V - (V
ln . R.C T T T = + =
En inversores integrados CMOS (serie HC) para una tensin de alimentacin de 5 V
(VCC = 5 V) las tensiones de disparo de la entrada Schmitt suelen ser 2 y 3 V:
T = RC ln( 9 / 4 ) 0,8 RC f = 1/T 1,25/RC
La realimentacin negativa que efecta la resistencia ha de ajustarse en forma
adecuada para evitar tanto el posible bloqueo del oscilador si la realimentacin es muy
fuerte, como la presencia de oscilaciones parsitas o ruido; valores de la resistencia que
une entrada y salida del inversor entre 5K y 50K suelen ser apropiados.
T4. Monost abl es y ast abl es 237
Tambin puede construirse un oscilador astable con inversores CMOS normales (sin
entrada Schmitt), utilizando el circuito de la figura.
V
o
3 2 1
* *
C R' R
Tngase en cuenta que el nudo ** no est conectado a masa. La resistencia R' sirve
simplemente para separar el nudo ** de la entrada del primer inversor, evitando que los
diodos limitadores que suelen incluirse en las entradas de las puertas integradas recorten
las ondas de dicho nudo **: R' >> R para que pueda despreciarse su efecto en relacin
con la carga y descarga del condensador.
La tensin del nudo ** evoluciona exponencialmente hacia la del nudo 2, pero, a la
vez, dicha tensin ** acta sobre el nudo 1 y fuerza a la conmutacin de ambos inversores
cuando alcanza el valor Vcom (tensin de conmutacin del primer inversor).
Las formas de onda en los nudos de inters son las siguientes:
**
Vcc
Vcc
3
2
V
com
Los escalones de tensin del nudo 2 pasan, a travs del condensador, al nudo **,
despus de lo cual, la tensin de dicho nudo ** tiende exponencialmente, a travs de la
resistencia R, hacia la tensin del nudo 2.
Por otra parte, la tensin del nudo ** se proyecta directamente sobre el nudo 1
(resistencia de entrada de las puertas CMOS infinita), de forma que cuando alcanza la
tensin de conmutacin Vcom, cambia el valor booleano en los nudos 2 y 3.
Las ondas de carga y de descarga son simtricas y su semiperodo (calculado en la
semionda de carga) ser:
com CC
CC com CC
V - V
)) V (V (V
ln . R.C 2 / T
=
238 El ect rni ca Di gi t al
y para el caso de Vcom = VCC/2 :
R.C . 1,1 3 ln . R.C
2 / V - V
2 / V V
ln . R.C 2 / T
CC CC
CC CC
=
+
=
0,45/RC 1/T f ; R.C . 2,2 T =
Asimismo puede configurarse un oscilador astable con transistores discretos (que
permiten tensiones de alimentacin y de salida ms elevadas):
Q
Q
Vcc
Q
Vcc
R
R R
C
C C
periodo = 2 . 0,7 . R.C
R
Q
C
T4. 4. El ci rcui t o t empori zador 555
Un monostable es un temporizador especfico que se considera como circuito digital;
ahora bien, los catlogos de circuitos integrados lineales ofrecen tambin una amplia
gama de temporizadores (timers), de los cuales el ms conocido y utilizado es el 555 cuya
configuracin interna es la representada en la siguiente figura:
+
-
COMP
+
-
COMP
R
S
Q
Clr
Vcc
Reset
U
2
U
1
Uext.
Desc.
555
5K
5K
5K
El esquema circuital del 555 es similar al del monostable integrado y sirve, en forma
anloga, para configurar temporizaciones utilizando un circuito RC exterior para
determinar los intervalos temporales.
Para ello se dispone de sendos comparadores con sus entradas U1 y U2 y de un
circuito de descarga Desc. del condensador; una entrada auxiliar Uext permite modificar
ambas tensiones de comparacin, sirviendo, asimismo, para configurar sistemas de
modulacin de anchura de pulsos PWM.
T4. Monost abl es y ast abl es 239
Para completar este circuito como monostable basta conectar una red RC a los
terminales U2 y Desc., produciendo el disparo a travs de U1, mediante un circuito
derivador que, a partir de un flanco de bajada, proporcione un pequeo pulso invertido.
Vcc
Vcc
R
R'
C'
Disparo
+
-
COMP
+
-
COMP
R
S
Q
Clr
Vcc
Reset
U
2
Uext.
Desc.
555
5K
5K
5K
R'.C' << R.C
U
1
Al producirse el disparo el condensador, que se encuentra descargado por su
conexin al terminal Desc., iniciar un proceso de carga hacia VCC hasta alcanzar la
tensin de referencia del comparador superior; de esta forma, si no existe una tensin
exterior conectada al terminal Uext., la anchura del pulso del monostable ser:
R.C . 1,1 ln3 . R.C
3 / 2V - V
0 - V
ln . R.C
V - V
V - V
ln . R.C T
CC CC
CC
fin
ini
= = =
.
Es necesario que el pulso de disparo que acte sobre la entrada U1 tenga una anchura
inferior a la duracin del pulso del monostable; para ello R'C' << RC.
Los temporizadores integrados (timers), configurados como monostables, pueden ser
utilizados como moduladores de la anchura de los pulsos (PWM, vase 18.2).
Para utilizar un circuito integrado 555 como modulador de anchura de pulso basta
dispararlo con una frecuencia fija (perodo T) y conectar al terminal Uext la tensin a
transformar; la anchura del pulso del monostable ser:
ext. CC
CC
U - V
V
ln . R.C t = (a mayor Uext, mayor anchura de pulso).
Esta transformacin tensin-anchura de pulso es aproximadamente lineal cuando
Uext. << VCC, en cuyo caso la expresin anterior puede reducirse al primer trmino de su
desarrollo en serie:
ext.
CC
ext.
CC
ext.
CC
ext. CC
U . K
V
U
. R.C
V
U
- 1 ln . R.C -
V
U - V
ln . R.C - t =
= =
Es posible mejorar la linealidad de la transformacin anterior y evitar la restriccin
sobre Uext. utilizando para cargar el condensador un generador de intensidad (intensidad
constante), en lugar de una resistencia.
240 El ect rni ca Di gi t al
Asimismo, los temporizadores (timers) pueden ser utilizados para construir astables;
la configuracin de un astable con el 555 requiere dos resistencias, R1 y R2, en la red RC,
a fin de descargar el condensador a travs de una de ellas.
Vcc
R
2
R1
C
+
-
COMP
+
-
COMP
R
S
Q
Clr
Vcc
Reset
U
2
U
1
Uext.
Desc.
555
5K
5K
5K
La carga del condensador se produce a travs de ambas resistencias en serie R1+R2
conectadas a VCC, mientras que la descarga se realiza a travs de la segunda de ellas R2,
cuando el transistor interno conduce. Habida cuenta de que las tensiones de comparacin,
en ausencia de tensin exterior conectada al terminal Uext, son VCC/3 y 2VCC/3, los
semiperodos de carga y descarga del condensador sern:
ln2 . ).C R (R
3 / 2V - V
3 / V - V
ln . ).C R (R T
2 1
CC CC
CC CC
2 1 1
+ = + =
ln2 . .C R
3 / V -
3 / 2V -
ln . .C R T
2
CC
CC
2 2
= =
).C 2R (R . 0,7 ln2 . ).C 2R (R T T T
2 1 2 1 2 1
+ + = + =
La onda resultante ser rectangular, con el semiperodo correspondiente al 1 mayor
que el correspondiente al 0, y su frecuencia ser:
).C 2R (R
4 , 1
).C 2R (R . 0,7
1
T
1
f
2 1 2 1
+
+
= .
T4. Monost abl es y ast abl es 241
T4. 5. Osci l adores de preci si n: cri st al de cuarzo
La utilizacin de cristales de cuarzo permite disponer de circuitos astables de gran
precisin en cuanto a la frecuencia de oscilacin. Su configuracin circuital se basa en
realimentar positivamente una etapa amplificadora a travs del cristal de cuarzo, que
determina que la realimentacin se produzca nicamente para su frecuencia propia. La
ganancia de la etapa amplificadora combinada con la realimentacin selectiva que
produce el cuarzo dan lugar a un oscilador en onda cuadrada a la frecuencia del cristal.
El cristal de cuarzo como componente electrnico es un resonador que presenta dos
modos de resonancia: serie con desfase nulo para la frecuencia de resonancia y paralelo
que produce un desfase ligeramente inferior a 180; en ambos casos el cristal ofrece muy
pequea resistencia de paso para su frecuencia de resonancia y alta resistencia para
cualquier otra frecuencia.
La frecuencia de resonancia de un cristal de cuarzo depende del corte cristalogrfico
con que ha sido tallado y de su espesor, abarcando el intervalo de frecuencias que va de
los 10 KHz a los 10 GHz. Las dos frecuencias de resonancia (serie y paralelo) se
encuentran muy prximas entre s, pero para osciladores de muy alta precisin se fabrican
cristales de cuarzo especialmente adaptados para la oscilacin en serie y otros para la
oscilacin en paralelo con indicacin precisa del valor de tales frecuencias.
La etapa amplificadora necesaria para configurar el oscilador se consigue
polarizando un inversor en la zona de su funcin de transferencia que corresponde a la
conmutacin; en dicha zona el inversor se comporta como un amplificador, ya que
pequeas variaciones de la tensin de entrada Vi producen mayores variaciones en la
tensin de salida Vo.
En los inversores CMOS basta unir la entrada a la salida a travs de una resistencia
de alto valor para polarizar ambas en un valor intermedio entre 0 y VCC; de esta forma se
consigue que Vo = Vi, situacin que corresponde a la zona de conmutacin del inversor.
Un solo inversor, as polarizado, configura una etapa amplificadora con desfase de 180
(inversora), mientras que un par de inversores dan lugar a un amplificador no inversor.
Amplificador inversor
20K
Amplificador no inversor
200K
Ambos amplificadores, al ser realimentados a travs de un cristal de cuarzo, oscilan
segn las frecuencias de resonancia del cristal.
20K
Resonancia serie
200K
Resonancia paralelo
10K
22pF
242 El ect rni ca Di gi t al
Si la etapa es no inversora la oscilacin corresponde al modo serie; en cambio,
cuando la etapa es inversora oscilar a la frecuencia de resonancia en modo paralelo. En
este segundo caso la realimentacin ha de efectuar un desfase de 180 para compensar la
inversin que produce la etapa y, para ello, ha de aadirse un pequeo circuito RC en
serie con el cristal de cuarzo (ya que el cristal por s solo, en su modo paralelo, produce
un desfase cercano pero inferior a los 180).
La figuras anteriores incluyen un inversor a la salida para proteger funcionalmente al
oscilador separndolo de las mltiples puertas que reciben su onda como seal de reloj.
Circuitos anlogos pueden ser utilizados con resonadores piezocermicos,
componentes que sustituyen a los cristales de cuarzo con la ventaja de su menor precio y
el inconveniente de la menor precisin y estabilidad de su frecuencia de resonancia.
En los sistemas conectados a la red elctrica es posible extraer, de la propia onda de
red, una seal de reloj de la misma frecuencia: 50 Hz.
Red
50Hz
5V
R
50 Hz
En el circuito anterior el diodo zener acta como rectificador y como limitador de
amplitud: por un lado rectifica la seal alterna de salida del transformador, de manera que
la semionda negativa queda sobre la resistencia y la positiva pasa hacia la salida del
circuito, y de otro lado recorta dicha semionda positiva, limitando su valor mximo a 5 V.
El inversor de entrada con histresis (Schmitt) sirve para mejorar la verticalidad de
los flancos de la semionda que recibe, de manera que la seal de salida es rectangular
(con el semiperodo correspondiente al 1 ligeramente mayor que el que corresponde al 0)
con la misma frecuencia que la red: 50 Hz.
De igual forma, si la rectificacin es en doble onda, la seal resultante ser de
frecuencia doble: 100 Hz.
+
-
Red
50 Hz 5V
alimentacin
de tensin
R
100 Hz
El circuito anterior aprovecha el esquema tpico de una fuente de alimentacin lineal
(transformador-puente rectificador de 4 diodos-condensador de filtrado); ahora bien, para
utilizar la seal de red rectificada en doble onda se separa la rectificacin del filtrado
mediante un diodo, de manera que cada semionda, una vez limitada su amplitud a 5 V por
el diodo zener y digitalizada por el inversor de entrada Schmitt, da lugar a un pequeo
pulso en la salida. La seal de reloj as obtenida es rectangular (el semiperodo del 1
bastante menor al del 0) con frecuencia doble respecto a la de la red: 100 Hz (debido a la
rectificacin en doble onda).
T4. Monost abl es y ast abl es 243
En arquitecturas digitales complejas o que requieran alta seguridad de
funcionamiento suele utilizarse un reloj de dos fases no solapadas que incluyen un
intervalo temporal de separacin entre la habilitacin de cada uno de los semibiestables
de la configuracin amo/esclavo.
t t
1
2
De este modo, pequeos retrasos en la propagacin de las seales de reloj o los
propios tiempos de subida o de bajada de ellas quedan cubiertos por el tiempo de
separacin entre las dos fases y no provocan errores funcionales.
El siguiente esquema circuital permite la generacin de dos fases no solapadas (non-
overlapping) a partir de una onda rectangular de reloj CK:
t CK
1
2
El retardo t puede realizarse mediante un simple circuito RC o, en forma integrada,
con una cadena de inversores que acumulan sus tiempos de propagacin.
La puerta "y" superior requiere dos unos en sus entradas para que la salida sea de
valor 1, mientras que la puerta "o-negada" (Nor) inferior requiere dos ceros para que
su salida sea 1; en ambos casos uno de los valores de entrada provenientes de CK llega
con un retraso t, lo que determina que en dicho intervalo ambas salidas sean 0
(separacin entre los unos de ambas ondas).
T4. 5. Acomodaci n de pul sos ext ernos
Cuando un circuito digital recibe pulsos externos es preciso efectuar un ajuste de sus
niveles de tensin a los correspondientes a los valores booleanos VoH y VoL y un ajuste
de flancos de forma que resulten adecuadamente verticales; en caso de que la amplitud de
los pulsos no alcance los niveles VoH y VoL ser necesaria una amplificacin previa.
Para ajustar los niveles a las tensiones booleanas basta un pequeo circuito
recortador con diodo zener en inversa (que limita la tensin positiva a Vz y la negativa a
0,6 V) o bien con sendos diodos en polarizacin inversa conectados a ambas lneas de
alimentacin (que limitarn la tensin positiva a VCC + 0,6 V y la negativa a -0,6 V).
circuitos recortadores de tensin
Vcc
.
244 El ect rni ca Di gi t al
El ajuste de flancos se consigue con un inversor con entrada Schmitt (con dos
tensiones de comparacin para evitar rebotes o transiciones suaves en el entorno de la
tensin de conmutacin); un segundo inversor restituir la polaridad del pulso (evitar
que el pulso resultante quede invertido respecto al de entrada).
adaptador a flancos verticales
En ocasiones (por ejemplo, para el contaje sncrono de pulsos) ser necesario aadir
un detector de flancos que, por cada pulso recibido, produzca otro pulso cuya anchura sea
una unidad de tiempo del reloj del circuito (onda de temporizacin, vase 16.4);
dicho detector de flancos se configura con dos biestables D sncronos seguidos, qb y qa
(qa recibe el pulso exterior y qb conectado a la salida del anterior):
la condicin
a b
q . q detecta flanco ascendente (01: valor anterior 0, valor siguiente 1),
a b
q . q descendente (10: valor anterior 1, siguiente 0) y
a b
q q detecta ambos flancos.
D D
entrada
de
pulsos
CK
u. de t.
q
q
a
q
q
b
La actuacin con pulsos manuales puede efectuarse mediante un pulsador conectado
a VCC, con una resistencia a 0 V que suministre entrada 0 en ausencia de pulsado. Ahora
bien, los pulsadores mecnicos pueden producir rebotes (con duracin del orden del
milisegundo) tanto al pulsar como al soltar, de forma que en lugar de un pulso se produce
una serie de ellos; es necesario incluir un filtrado de los rebotes, seguido de un ajuste a
flancos verticales. Un simple filtro RC (con constante de tiempo del orden de 0,1 s) puede
servir para filtrar los rebotes, segn el circuito de la figura siguiente.
Vcc
R1
R2
C
1K
10K
100F
R2 ha de ser bastante mayor que R1 para que al activar el pulsador la tensin
comunicada sea prxima a VCC; el condensador conforma un filtro pasa bajo, cuya
constante de tiempo es 0,1 s al pulsar y 1 s al soltar, y el inversor con entrada Schmitt
acomoda los flancos a verticales.
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
T5 CONVERSIN DIGITAL/ANALGICA Y ANALGICO/DIGITAL
T5.1. Conversores D/A
T5.2. Conversores A/D
T5.3. Resolucin, linealidad y errores en los conversores
T5.4. Conversin tensin-frecuencia
El mundo real es bsicamente analgico. La medida directa de una magnitud fsica
(sonido, temperatura, presin, etc.) es convertida por el correspondiente transductor
(sensor) a un valor de tensin analgica capaz de ser procesada por un sistema electrnico.
Asimismo, el sistema electrnico proporcionar a los correspondientes efectores (altavoces,
motores, calefactores, etc.) una tensin analgica que determine su actuacin.
Los sistemas digitales emplean los valores numricos codificados en binario, en
palabras digitales compuestas por ceros y unos; ello proporciona a los sistemas digitales
alta fiabilidad y precisin, conseguidas por la perfecta distincin fsica entre el 0 y el 1, y
una gran potencia de clculo, derivada de la utilizacin de un sistema de numeracin y de
la capacidad de integracin de funciones booleanas de altsima complejidad.
En la frontera (interfase) entre las seales analgicas procedentes del medio fsico o
destinadas a interferir con l y las seales digitales que procesa el sistema electrnico se
requieren conversores que pasen los valores numricos del campo analgico al digital y
viceversa: conversores A/D y D/A.
Mediante una suma ponderada de los dgitos de valor 1 se consigue, en forma muy
simple, un conversor digital-analgico rpido; la ponderacin puede hacerse con una serie
de resistencias en progresin geomtrica (cada una mitad de la anterior), lo cual obliga a
utilizar un amplio rango de resistencias, o bien mediante una red R-2R que efecta
sucesivas divisiones por 2.
Puede convertirse una tensin en nmero binario utilizando un conversor opuesto D/A,
a travs de la comparacin entre la tensin de entrada y la proporcionada por dicho
conversor D/A aplicado a un generador de nmeros binarios; se trata de aproximar el
nmero-resultado a aquel cuya correspondiente tensin analgica es igual a la de entrada.
La aproximacin puede hacerse de unidad en unidad, mediante un simple contador, o dgito
a dgito mediante un circuito secuencial especfico.
En los sistemas digitales la precisin viene dada por la utilizacin de dos smbolos 1/0 y
por la separacin entre las tensiones que los representan. En cambio, en el tratamiento de
tensiones analgicas y, por tanto, en los conversores D/A y A/D, hemos de preocuparnos de
la precisin y de las diversas causas de error que le afectan: desplazamiento del origen,
linealidad, resolucin,...
Se incluye en este captulo, por completitud, la conversin tensin-frecuencia (V f),
que puede servir tambin (aadindole un frecuencmetro) como conversin A/D. La
conversin tensin-tiempo (V t) ha sido tratada en detalle en el captulo 18 (PWM).
246 El ect rni ca Di gi t al
T5. 1. Conversores D/ A
Conceptualmente la conversin analgica-digital consiste en realizar la suma
ponderada de los diversos dgitos que configuran el nmero binario; el valor relativo de
cada uno de ellos viene dado por la correspondiente potencia de 2:
.a 2 ... .a 2 .a 2 .a 2 .a 2 .a 2
... 16.a 8.a 4.a 2.a a N
i
i
4
4
3
3
2
2
1
1
0
0
4 3 2 1 0
= + + + + + =
+ + + + + =
Esta suma puede realizarse mediante un sencillo circuito sumador con resistencias
ponderadas (segn la relacin R, R/2, R/4, R/8, ...) como el de la figura:
+
-
A.O.
D
3
D
2
D
1
D
0
Vo
R' R/ 8
R/ 4
R/ 2
R
Supuesto que las tensiones que corresponden a los valores booleanos sean 0 y +V:
) ... 8.D 4.D 2.D (D . V) ( . R) / (R' - V
3 2 1 0 o
+ + + + + =
El ltimo parntesis de la expresin anterior expresa el valor del nmero binario
... D3
D2
D1
D0 y el factor inicial V.R'/R determina el valor de tensin asignado a cada
unidad; las resistencias R' y R permiten ajustar dicho valor a la tensin unitaria que se
desee.
Resulta un circuito sumamente sencillo para obtener una tensin analgica a partir de
las tensiones de los dgitos binarios del nmero que se desea convertir. Habida cuenta de
que la etapa sumadora es inversora, se obtendr una tensin negativa, que puede
transformarse fcilmente en positiva mediante una segunda etapa amplificadora inversora
de ganancia unidad.
Las tensiones booleanas que presentan los diversos dgitos de un nmero binario
(salidas de los correspondientes terminales del circuito digital, generalmente salidas de
circuitos integrados) no ofrecen adecuada precisin: ambas tensiones, VoL 0 V y
VoH +V , no son valores muy precisos.
Por ello, para aumentar la precisin del conversor, no se utilizan directamente las
tensiones de los dgitos a convertir sino una tensin nica de referencia de alta precisin,
la cual se conecta (caso de dgito de valor 1) o no (valor 0) a las correspondientes
resistencias sumadoras mediante interruptores; adems, para disminuir los efectos
capacitivos propios de los conmutadores y aumentar la velocidad de conmutacin, sta se
efecta entre dos posiciones de igual tensin.
T5. Conversores D/ A y A/ D 247
+
-
A.O. D
0
V
o
R'
R/8
D
3
D
2
D
1
R/4 R/2 R
V
ref.
Cada conmutador se conecta hacia la entrada del amplificador cuando el valor del
correspondiente dgito es 1; en otro caso, se conecta directamente hacia la lnea de 0 V.
) ... 8.D 4.D 2.D (D . V . R) / (R' - V
3 2 1 0
.
ref o
+ + + + =
La precisin de este conversor depende de la precisin de las resistencias y de la
tensin de referencia as como de las caractersticas del amplificador operacional,
especialmente en lo relativo a tensin y corrientes de offset.
Ahora bien, esta red sumadora requiere resistencias de valores muy diferentes (por
ejemplo para 12 bits ha de llegarse desde R hasta R/4096), siendo extremadamente difcil
integrar tal diversidad de resistencias con la precisin necesaria. Por ello, resulta
preferible utilizar una red de resistencias R-2R en escalera o red divisora de tensin, que
posee la propiedad de que la resistencia de carga vista desde cualquier nudo de la red
hacia adelante es de idntico valor: 2R.
2R
R
2R
R
2R
R
2R 2R
R
2R 2R
nudo i nudo i +1
!
!
!
!
!
!
=
R
R
Esta red de resistencias tiene la propiedad de que en cada nudo se encuentran en
paralelo sendas resistencias de igual valor 2R, una de las cuales es la equivalente del
resto del circuito; de forma que en cada nudo la intensidad de divide en dos partes iguales
y, de esta forma, cada nudo realiza una divisin de la tensin del nudo anterior por 2.
Utilizando este tipo de red como sumadora, mediante conmutadores entre dos
posiciones (ambas con tensin de referencia 0 V) segn el esquema siguiente, puede
obtenerse un conversor D/A que solamente utiliza dos valores de resistencias R y 2R.
D
0
D
3
D
2
D
1
V
ref.
2R 2R 2R 2R 2R
R R R
Vo
R
+
-
A.O.
R
+
-
A.O.
R'
248 El ect rni ca Di gi t al
La segunda etapa amplificadora sirve para que la tensin de salida sea positiva e
introduce la amplificacin con el factor R'/R. Habida cuenta la sucesiva divisin de
tensiones e intensidades que se produce en cada nudo:
) D 4.D 8.D (16.D . V . R) /16 (R'
/8) D /4 D /2 D (D . V . R) / (R' V
0 1 2 3
.
ref
0 1 2 3
.
ref o
+ + + =
+ + + =
Con este tipo de red sumadora se configura una amplia gama de conversores D/A
integrados, de alta precisin, ya que es posible conseguir gran precisin en la red de
resistencias y en la tensin de referencia (utilizando un zener de alta precisin bien
estabilizado). Ello permite asegurar una fuerte linealidad en la conversin, con errores
inferiores a la mitad del paso en tensin correspondiente a una unidad.
Los conversores D/A ms comunes de este tipo son de 8 y de 12 bits; un conversor
de 8 bits permite una resolucin de 256, es decir, para un intervalo de conversin 0-10 V
a cada unidad le corresponden aproximadamente 40 mV; la resolucin de un conversor
de 12 bits es de 4096 pasos, 2.5 mV.
En tecnologa MOS los conmutadores se realizan mediante transistores NMOS
alternativos, entre cuyos terminales de puerta se conecta un inversor; se consiguen
tiempos de respuesta globales (desde que se presenta el valor digital, hasta que aparece el
correspondiente valor analgico) inferiores al microsegundo. Adems, en aplicaciones
relativas a la generacin de ondas, en las cuales la salida va siguiendo sucesivamente
valores prximos de la onda a generar, el tiempo de transicin entre un valor y otro
resulta mucho menor, pudiendose alcanzar frecuencias superiores a 10 MHz.
En el caso bipolar se configuran generadores de intensidad ponderados, mediante
redes R-2R incluyendo transistores en las mismas; la configuracin en amplificador
diferencial permite conmutar tales intensidades entre las dos posiciones con altas
velocidades de respuesta, consiguindose tiempos de conmutacin del orden de 10 ns.
La utilizacin de una referencia de tensin negativa evita la necesidad de utilizar el
segundo amplificador inversor.
En todos los conversores D/A anteriormente considerados la tensin de salida es
proporcional al nmero binario aplicado a sus entradas: Vo = Vu.N, siendo Vu el paso
en tensin correspondiente a una unidad; a veces (por ejemplo en la generacin digital de
ondas senoidales o de otras formas de onda) interesa otro tipo de funciones Vo
= f(N)
distintas de la simple proporcionalidad.
Para ello puede efectuarse una transformacin digital previa del nmero N a un
nmero N' tal que f(N) = Vu.N', de manera que un conversor D/A proporcional aplicado
sobre N' servir para generar la tensin analgica deseada; la conversin intermedia (de
N a N') puede ser realizada por un conversor de cdigo o codificador ROM.
T5. Conversores D/ A y A/ D 249
Cuando no se requiere gran precisin en la tensin de salida, puede obtenerse
directamente la funcin Vo
= f(N) mediante un multiplexor analgico (formado por
puertas de transmisin) controlado por el nmero N, segn el esquema siguiente.
Vo
Multi-
plexor
Anal-
gico
C B A
-V
ref.
R0
R1
R2
R3
R4
R5
R6
R7
+
-
A.O.
R
N
A un valor concreto N le corresponder una tensin Vo = R'.Vref./ RN, que
puede ser ajustada al valor deseado mediante la resistencia RN; caso de que la
funcin f(N) adopte tambin valores negativos, bastar conectar las resistencias
correspondientes a una tensin de referencia positiva +Vref..
T5. 2. Conversores A/ D
La utilizacin de los conversores D/A considerados en el apartado anterior permite
realizar la conversin inversa, analgica-digital A/D, a travs de un sencillo esquema
funcional basado en la comparacin entre la seal a digitalizar y la proporcionada por el
conversor D/A; un circuito secuencial de aproximacin deber generar los nmeros
binarios cuya correspondiente tensin analgica es comparada con la tensin a convertir,
de forma que la conversin finaliza en el momento en que ambas tensiones se igualan.
El circuito de aproximacin ms sencillo lo constituye un contador bidireccional
(up/down), que cuente hacia arriba o hacia abajo segn que el resultado de la
comparacin entre la tensin de entrada y la tensin generada por el conversor D/A sea
favorable a la primera o a la segunda de dichas tensiones.
Astable
Contador
bidireccional
Conversor D/A
+
-
COMP
+
-
COMP
ventana
E
Vconversor
V
reloj
i
Cuando los valores de tensin (la exterior y la resultante del conversor D/A) se
igualan el contador se sita en una secuencia alternativa (contar-descontar), oscilando
entre dos nmeros contiguos; para evitarlo se aade un comparador de ventana, cuya
tensin central se sita en la tensin a medir y la anchura de la ventana se hace algo
mayor que el paso en tensin correspondiente a una unidad.
250 El ect rni ca Di gi t al
Para realizar una medida de tensin, estos conversores han de efectuar un contaje de
pulsos desde la situacin en que se encuentre el contador hasta la correspondiente a la
medida, empleando para ello los ciclos de reloj necesarios: en el peor de los casos tiene
que llegar a realizar 2
n
pasos (4096 pulsos de reloj para una conversin de 12 bits). Por
ello este conversor resulta lento para efectuar conversiones aisladas, como, por ejemplo,
para efectuar las medidas sucesivas de varias seales multiplexadas.
Sin embargo, el contaje hacia arriba y hacia abajo resulta apropiado para seguir la
evolucin de una seal en un proceso de medida continuada; para tales aplicaciones este
esquema de conversin A/D resulta muy atractivo por su sencillez.
Conversores A/D ms rpidos se consiguen utilizando, en lugar del contador, un
circuito secuencial que acte por aproximaciones sucesivas, bit a bit:
inicialmente se pone a 1 el dgito ms significativo y el resto de ellos a 0;
se compara la tensin analgica correspondiente (dada por el conversor D/A) con
la tensin de entrada a medir: si es mayor esta ltima se consolida el valor 1, en
otro caso se pasa a 0 dicho dgito;
se procede de igual forma con el dgito siguiente, de modo que cada bit se sita a
valor 1 y se respeta dicho valor si la tensin correspondiente es menor que la
tensin a medir, pasndolo a 0 en caso contrario.
Designando con M el valor booleano que expresa el resultado de la comparacin
entre la tensin de entrada y la tensin del conversor D/A, M = "Vi > Vconversor", el
diagrama de estados del circuito secuencial es el siguiente:
1111
1110
1101
1100
1011
1010
1001
1000
0111
0110
0101
0100
0011
0010
0001
0000
1111
1101
1011
1001
0111
0101
0011
0001
1110
1010
0110
0010
1100
0100
1000
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
T5. Conversores D/ A y A/ D 251
De esta forma, para realizar la conversin se requieren solamente n pulsos de reloj,
tantos como dgitos ha de tener el nmero digital resultante. El proceso comienza con una
seal de inicio que pone a 1 el bit ms significativo y borra todos los dems, a partir de la
cual cada pulso de reloj determina una de las transiciones del grafo de estados anterior.
El circuito secuencial que efecta las aproximaciones sucesivas, bit a bit a partir del
ms significativo, estar compuesto por n biestables cuyas condiciones booleanas de
marcado y de borrado son las siguientes:
el pulso de comienzo (start) marca el biestable correspondiente al dgito ms
significativo (primer biestable) y borra todos los dems biestables;
cualquier biestable, salvo el primero, debe marcarse al llegar un pulso de reloj, cuando
el anterior biestable se encuentra a 1 y todos los siguientes, incluido el mismo, a 0:
q . q . ... . q . q . q J
0 1 2 - i 1 - i 1 i i +
=
cualquier biestable, incluido el primero, debe borrarse con un pulso de reloj cuando el
mismo se encuentre a 1 y todos los siguientes estn a 0 y, adems, el resultado de la
comparacin M es 0:
M . q . q . ... . q . q . q K
0 1 2 - i 1 - i i i
= .
El diagrama de bloques del conversor por aproximaciones sucesivas ser el
siguiente:
Generador
de n pulsos
Circuito secuencial
(n biestables)
Conversor D/A
+
-
COMP
Preset 1 biestable
Clear resto biestables
conversor
V
reloj
M
CK
Inicio
i
V
ste es el esquema conceptual tpico de los conversores A/D integrados de uso
general, siendo los ms frecuentes los de 8 12 bits, con intervalos de conversin de
[0,5], [0,10], [-5, +5] [-10, +10] voltios, con precisin equivalente al paso en tensin
correspondiente al ltimo bit y con tiempos de respuesta que se sitan en el orden de los
microsegundos (1-100 s.).
Los conversores A/D requieren que la tensin analgica a convertir permanezca
constante durante el tiempo de conversin; para ello, si es necesario, se utilizan circuitos
especficos de muestreo y mantenimiento (sample and hold) que toman un valor puntual
de la seal presente en su entrada (muestreo) y lo mantienen en su salida (por efecto
capacitivo) durante un cierto intervalo de tiempo.
252 El ect rni ca Di gi t al
Velocidades de conversin muy altas requieren convertidores de tipo paralelo, muy
rpidos (flash), que comparan internamente la tensin a medir con los 2
m
-1 niveles de
tensin intermedia posibles (siendo m el nmero de bits del resultado).
Dichos 2
m
-1 niveles se generan por divisin de tensin sobre 2
m
resistencias y, a
partir de ellos, un conjunto de 2
m
-1 comparadores realiza la comparacin de la tensin
exterior con cada uno de los niveles. El vector de salida de dichos comparadores ser un
nmero digital formado por dos conjuntos sucesivos de ceros y unos; el nmero de unos
presentes determina el nivel al que equivale la tensin exterior; un codificador de
prioridad efecta la conversin de dicho vector en el nmero binario que expresa el
nmero de unos contenidos en l.
Para evitar errores debidos a transiciones durante la comparacin suelen incluirse
2
m
-1 biestables tipo D que reciben las salidas de los comparadores despus de haberse
estabilizado la comparacin.
+
-
COMP
D
E
Q
+
-
COMP
D
E
Q
+
-
COMP
D
E
Q
+
-
COMP
D
E
Q
+
-
COMP
D
E
Q
+
-
COMP
D
E
Q
+
-
COMP
D
E
Q
R
R
R
R
Vu.7/ 2
R
R
Vu.1/ 2
Vu.3/ 2
E
Vu.5/ 2
Vu.9/ 2
Vu.11/ 2
Vu.13/ 2
R/2
R/ 2
Vu.7
V
C
o P
d r
i i
f d o
i e r
c i
a d
d a
o d
r
C
B
A
i
Vref.
Este circuito de conversin A/D (flash) es sumamente rpido, existiendo series
comerciales para 4 y 8 bits con tiempos de conversin inferiores a los 100 ns.
El inconveniente es el gran nmero de bloques circuitales repetidos necesarios para
realizar la conversin en paralelo (para 8 bits se necesitan 255 comparadores), lo cual
limita el nmero de dgitos a obtener y eleva el coste de estos integrados.
T5. Conversores D/ A y A/ D 253
Otros conversores de 8 y 12 bits utilizan un proceso de divisin en intervalos en dos
pasos sucesivos (conversores pipeline) mediante dos conjuntos de redes de resistencias y
comparadores, el primero de los cuales realiza una divisin gruesa (bits ms
significativos) y, restando de la tensin de entrada la tensin analgica correspondiente a
tales dgitos ms significativos, obtiene la diferencia de tensin sobre la cual realiza la
comparacin fina la segunda red. De esta forma para 8 bits bastan dos redes de 15
comparadores y para 12 bits se requieren dos redes de 63 comparadores.
Asimismo existen conversores A/D integrados que utilizan a la vez la conversin en
paralelo y la conversin mediante aproximaciones sucesivas (semiflash); la conversin en
paralelo se utiliza para una parte de los dgitos (ms significativos) y se resta la tensin
correspondiente a ellos, para efectuar luego, por aproximaciones sucesivas, la conversin
fina que produce la otra parte de ellos (los de menor valor relativo).
T5. 3. Resol uci n, l i neal i dad y errores en l os conversores
Este apartado se refiere expresamente a conversores D/A y A/D de tipo lineal, es
decir, aquellos en que la correspondencia entre tensin analgica y valor numrico
binario (en sistema de numeracin de base 2) es de proporcionalidad directa. El
recorrido del conversor ir de 0 a N en cuanto a valor numrico digital (N = 2
m
1,
siendo m el nmero de dgitos del conversor) y de Vmn a Vmx en lo que se refiere a
tensin analgica; de forma que a una unidad digital (bit menos significativo MSB) le
corresponder una tensin analgica Vu (tensin unitaria), tal que
N
V - V
V
mn mx
u
= , que es el paso o salto en tensin entre un nmero digital y el
siguiente (entre dos valores digitales consecutivos).
As, pues, en toda conversin (entre digital y analgica) se aplica un proceso de
cuantificacin de la tensin analgica, habida cuenta de que los valores digitales son
discretos; la tensin analgica no interviene en su forma propia de rango continuo de
valores (entre dos extremos Vmx y Vmn) sino que acta a travs de escalones:
- la conversin D/A presenta un paso o escaln vertical, dado por la diferencia
entre las dos tensiones que corresponden a dos nmeros binarios sucesivos; los
valores de tensin situados dentro de dicho escaln (entre las dos tensiones
citadas) nunca se producirn como tensiones de salida;
- en la conversin A/D, a cada nmero binario de salida le corresponde todo un
intervalo o escaln horizontal de tensiones analgicas; las tensiones situadas
dentro de un mismo escaln son indistinguibles en cuanto a que proporcionan la
misma salida digital.
254 El ect rni ca Di gi t al
Se produce, de por s, un error de cuantificacin o discriminacin, pues valores de
tensin prximos pero diferentes corresponden al mismo valor digital, no pueden ser
diferenciados por el conversor: si ste es analgico/digital no distingue entre ellos y si es
digital/analgico no los genera como tensiones de salida.
De esta forma las funciones de transferencia (salida entrada: Vo-n en el conversor
D/A y n-Vi en el A/D) son de tipo escalonado (ver figuras siguientes); si la conversin
es lineal la anchura de los escalones es constante: todos ellos son de la misma altura
Vu (conversor D/A) o de la misma longitud Vu (conversor A/D).
000 001 010 011 100 101 110 111
salto
o escaln
000
001
010
011
100
101
110
111
intervalo
o escaln
V
mn
V
mx
V
mn
V
mx
Conversor digital-analgico Conversor analgico-digital
La funcin de transferencia de los conversores lineales viene caracterizada por una
lnea recta (que denominaremos recta de conversin), que pasa por el origen (0, Vmn):
- en el caso D/A esta recta contiene los puntos de conversin, es decir, de
correspondencia entre los nmeros binarios de entrada eje X y los valores de
tensin analgica de salida eje Y
- y en el caso A/D la recta de conversin pasa por los puntos medios de los escalones,
o sea, de los intervalos de correspondencia entre las tensiones analgicas de entrada
eje X y los nmeros binarios de salida eje Y.
Resolucin: rango y sensibilidad
La resolucin de un conversor vendr dada, desde el lado digital, por el nmero de
dgitos (bits) que admite para el nmero binario y, desde el lado analgico, por la anchura
del escaln (su altura en el conversor D/A y su longitud en A/D).
Resolucin digital: m dgitos.
Resolucin analgica o sensibilidad: Vu, anchura del escaln.
Por ejemplo, un conversor cuya tensin analgica vare entre 10 y +10 V y su
nmero binario sea de 12 dgitos (resolucin digital, 12 bits) tendr una anchura de
escaln Vu = 20 / 2
12
= 20 / 4096 5 mV; tal ser su resolucin analgica.
El nmero de dgitos determina el rango numrico dentro del cual se efecta la
conversin: 0 N, siendo N = 2
m
- 1.
T5. Conversores D/ A y A/ D 255
La anchura de escaln o paso entre tensiones analgicas, Vu, expresa la
sensibilidad con que acta el conversor: la mnima diferencia entre tensiones que es
percibida por el conversor como correspondiente a dos nmeros binarios diferentes (dos
nmeros consecutivos).
El intervalo de tensin va de Vmn a Vmx, siendo Vmx = Vmn + N.Vu.
Proporcionalidad lineal y errores
En los sistemas digitales la precisin queda garantizada por la codificacin en dos
smbolos diferenciados 0/1 y por la separacin de los valores de tensin que los
representan: salvo problemas de ruido electromagntico o de mal funcionamiento, un
circuito digital proporciona con absoluta precisin los vectores de salida que
corresponden a su diseo lgico.
No ocurre as en los circuitos analgicos, como son los conversores D/A y A/D, en
los cuales hay mltiples causas de imprecisin que determinan desviaciones entre los
resultados que tericamente deberan proporcionar y los que realmente suministran.
Los posibles errores de estos conversores pueden detectarse y clasificarse en
relacin con la recta de conversin:
- cuando esta recta no pasa por el origen: error de cero o de offset;
- cuando la pendiente de la recta no es la apropiada: error de ganancia;
- cuando dicha lnea no es una recta: error de linealidad.
El error de cero (offset) existe cuando no se corresponde el valor numrico 0 (00...0)
con la tensin analgica inicial Vmn, es decir, cuando la recta de conversin est
desplazada y no corta al eje de tensiones analgicas en dicho valor Vmn y, por tanto, el
valor numrico mximo N (11..1) tampoco se corresponde con la tensin Vmx.
V 000 001 010 011 100 101 110 111
000
001
010
011
100
101
110
111
V
mn
V
mx
V
mn mx
Conversor digital-analgico Conversor analgico-digital
En la figura anterior (y en las siguientes de este mismo apartado) se representa en
gris la escala de conversin sin error, como referencia para apreciar la desviacin
provocada por el error; asimismo se representa en lnea de raya y dos puntos la recta de
conversin terica.
256 El ect rni ca Di gi t al
Si solamente hay error de cero (offset), el intervalo de tensin [Vmn , Vmx] se
desplaza: [Vmn + Voffset, Vmx + Voffset], pudiendo Voffset ser positiva o negativa.
El error de ganancia se presenta cuando la pendiente de la recta de conversin es
mayor o menor del valor que le corresponde segn la relacin de conversin. Tal error se
produce cuando la anchura de los escalones no coincide con la tensin unitaria Vu, sino
que es mayor o menor a la que corresponde al cociente (Vmx Vmn)/N.
000 001 010 011 100 101 110 111
000
001
010
011
100
101
110
111
V
mn
V
mx
V
mn
V
mx
V'
u V
u V'
u
Vu
Conversor digital-analgico Conversor analgico-digital
Si existe error de ganancia el rango de la tensin analgica no coincidir con el
previsto; V'mx = Vmn + N.V'u ser mayor o menor que Vmx, segn que V'u > Vu o
V'u < Vu. El intervalo de conversin [Vmn , V'mx] ser ms amplio o ms pequeo que
el previsto [Vmn , Vmx].
Cuando la anchura de los escalones no es constante la recta de conversin deja de
ser un lna recta y decimos que hay error de linealidad. Dicho error puede ser puntual,
referido a un escaln especfico o general, afectando a un conjunto de escalones
seguidos.
000 001 010 011 100 101 110 111
000
001
010
011
100
101
110
111
V
mn
V
mx
V
mn
V
mx
altura de los escalones
longitud
de los escalones
Conversor digital-analgico Conversor analgico-digital
El error de linealidad puede expresarse (para cada valor binario) en forma integral
por la desviacin respecto de la recta de conversin ideal y en forma diferencial por la
diferencia entre la anchura real de cada escaln y la anchura (Vu) que deberan tener
todos ellos.
T5. Conversores D/ A y A/ D 257
Sea un valor numrico digital a:
- sea V'a el valor de tensin analgica que corresponde a dicho nmero a (en el caso de
un conversor D/A el valor V'a es, obviamente, la tensin de salida para entrada a, en el
caso A/D V'a ser el punto medio del intervalo de tensiones que generan a como valor
digital de salida);
- habida cuenta que la pendiente de la recta de conversin es el cociente entre el
intervalo de tensiones V(N) - V(0) y el intervalo de nmeros N 0; el valor Va que
corresponde a a segn la linealidad es Va = V(0) + a.(V(N) - V(0))/N;
- sea V'a el valor de la anchura del escaln correspondiente al nmero binario a;
- la anchura V que deben tener todos los escalones, en un conversor lineal, coincide
con la pendiente de la recta de conversin: V = (V(N) - V(0))/N
error de linealidad (integral) en el punto a = V'a Va:
diferencia entre la tensin analgica real y la terica (si fuera lineal)
error de linealidad (diferencial) en el punto a = V'a V:
diferencia entre la anchura de escaln real y la terica (para ser lineal).
La forma integral expresa la desviacin global respecto a la linealidad en el punto
considerado, mientras que la forma diferencial expresa el error puntual, es decir, en
que medida la diferencia con el valor anterior es errnea (en que medida contribuye el
punto a al error de linealidad).
Obviamente, los tres tipos de error (cero, ganancia y linealidad) no son excluyentes
sino que pueden darse a la vez: consideraremos como error absoluto o desviacin
mxima la mayor de las diferencias entre la recta de conversin terica y la lnea real
de conversin:
En el caso del conversor digital-analgico el error absoluto cada diferencia se
calcula entre la tensin de salida real y la tensin de salida terica para un valor
numrico de entrada, V'a (Vmn + a.Vu), y de las N+1 diferencias (para los valores
digitales de 0 a N) se toma la mayor de ellas.
Respecto al conversor analgico-digital para cada valor digital se toman los valores de
tensin analgica mximo y mnimo que proporcionan dicho valor de salida y se
calcula su diferencia con el valor de tensin terico segn la recta de conversin
(punto medio del escaln de tensin que corresponde a ese valor digital); del conjunto
de estas 2(N+1) diferencias (para cada valor numrico se calculan en ambos extremos
de tensin) se toma la mayor de ellas. De esta forma, el error absoluto incluye,
tambin, el error de cuantificacin (Vu): si no hubiera otro tipo de errores, el error
absoluto no sera nulo sino igual al error de cuantificacin.
258 El ect rni ca Di gi t al
Limitacin respecto a la frecuencia de muestreo (efecto de aliasing)
La conversin analgico-digital de una seal implica tomar muestras puntuales de
la misma cada cierto intervalo de tiempo t, lo cual da lugar a una frecuencia de muestreo
fm = 1/t.
El teorema de Shannon aplicado a este muestreo de la seal (conversin de la
misma en pulsos de anchura mnima y frecuencia fm) reclama que, para asegurar la
integridad de la seal, la frecuencia de muestreo ha de ser superior al doble de la
frecuencia mxima presente en la seal analgica.
Si no se respeta esta limitacin, se corre el peligro de que la seal digitalizada sea
muy diferente a la seal analgica de entrada al conversor.
Efecto exagerado de aliasing (muestreo a una frecuencia excesivamente baja):
la seal continua es la entrada analgica y la discontinua el resultado de la digitalizacin
Una seal real suele tener una ancho de banda amplio, es decir, en las seales
reales suele haber mltiples frecuencias (incluso ruido, generalmente de frecuencias
ms altas que las propias de la seal) y, normalmente, interesan las componentes de la
seal por debajo de una frecuencia dada.
El teorema de Shannon obliga, de un lado, a muestrear y efectuar la conversin A/D
a una frecuencia superior al doble de la mxima frecuencia de inters y, por otro, a filtrar
previamente la seal eliminando sus componentes por encima de dicha frecuencia. En
toda conversin analgico-digital, es sumamente conveniente incluir un filtro antialiasing
previo, con frecuencia de corte inferior a la mitad de la frecuencia a la cual se realiza la
conversin.
T5. 4. Conversores t ensi n-frecuenci a
Otra forma de realizar la conversin A/D consiste en convertir la tensin analgica
en un tiempo o en una frecuencia directamente proporcionales al valor de dicha tensin.
En el primer caso un contador inicialmente a cero y cuyos pulsos de entrada tengan
como perodo la unidad elemental de tiempo expresar, al finalizar el tiempo resultante
de la conversin, la medida digital de la tensin analgica. En el segundo caso dicha
medida puede ser obtenida mediante un frecuencmetro que reciba la seal resultante de
la conversin tensin-frecuencia.
La conversin tensin-tiempo da lugar a pulsos de anchura modulada y, como tales
moduladores, se describen en detalle en el captulo 18; se consideran en dicho captulo
dos tipos de conversores tensin-tiempo: por rampa y sigma-delta.
T5. Conversores D/ A y A/ D 259
La conversin tensin-frecuencia puede hacerse mediante un integrador y un
comparador con histresis, configurando un generador de onda triangular y rectangular.
El circuito siguiente representa un conversor tensin-frecuencia de baja precisin y
linealidad, pero muy simple.
+
-
A.O.
+
-
A.O.
C
R
1
R
2
INTEGRADOR
COMPARADOR SCHMITT
R
onda
rectangular
onda en diente
de sierra
R
'
V
i
R
'
<<R
La onda triangular de salida del integrador tiene dos semiperodos muy diferentes,
debido a la desigualdad entre las resistencias R' y R. Suponiendo despreciable el
semiperodo ms pequeo respecto al otro mayor, resulta una frecuencia directamente
proporcional a la tensin exterior Vi.
Diente de sierra:
0 V
t
t'
pendiente m = -Vi / R.C
+Vcc.R1 / R2
V = -Vcc.R1 / R2
i 2
CC 1
i
2 1 CC
.V R
.V 2.R.C.R
C . R / V
R / .R 2.V
m
V
t t' t T = =
= + =
i
V . K 1/T f = con
CC 1
2
.V 2.R.C.R
R
K = .
Puede mejorarse considerablemente la linealidad de este circuito conformando una
onda triangular simtrica por integracin sobre V
i
y V
i
, respectivamente, de forma que
no ser preciso despreciar uno de los semiperodos frente al otro; adems, la utilizacin
de tensiones zener a la salida del comparador Schmitt proporciona mayor precisin a sus
tensiones de disparo.
260 El ect rni ca Di gi t al
+
-
A.O.
+
-
A.O.
-
R
'
R'
R
C
V
i
Vz
INVERSOR
onda
triangular
V
i
INTEGRADOR
onda
cuadrada
+
-
A.O.
R
1
R
2
COMPARADOR SCHMITT
Se consigue as un conversor tensin-frecuencia con buena linealidad y cuya
precisin depender de la red RC del integrador, de las resistencias R1 y R2 del
comparador y de las tensiones de referencia de los diodos zener Vz
'
(Vz
'
= Vz + V),
siendo Vz la tensin del diodo en su zona zener y V su tensin de conduccin en
directo, as como de las caractersticas de los amplificadores operacionales.
Onda triangular:
0 V
t
pendiente m = -Vext / R.C
+Vz'.R1 / R2
-Vcc.R1 / R2
pendiente m' = +Vext / R. C
t'
i 2
'
z 1
i
2 1
'
z
.V R
.V 4.R.C.R
C . R / V
R / .R 2.V
2.
m
V
2. 2.t t' t T = =
= = + =
i
V . K 1/T f = con
'
z 1
2
.V 4.R.C.R
R
K = .
Existen conversores integrados tensin-frecuencia de alta linealidad y precisin para
diversos intervalos de frecuencia, siendo comunes los de 1-10 KHz, 10-100 KHz y
100KHz-1MHz. Un pequeo frecuencmetro conectado a su salida completa la
conversin A/D; por otra parte, en algunos tipos de control automtico se utiliza
directamente la conversin tensin-frecuencia para transmitir con precisin el valor de
una variable a travs de un lazo de realimentacin.
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
21 MICROELECTRNICA:
CIRCUITOS INTEGRADOS ESPECIFICADOS POR EL USUARIO
21.1. Circuitos integrados programados por el usuario: tipos
21.2. Circuitos integrados diseados por el usuario: tipos
21.3. Herramientas de diseo
21.4. Validacin de circuitos integrados: simulacin, anlisis de tiempos y test
La palabra microelectrnica alude a la electrnica en tamao micro, es decir, a la
configuracin miniaturizada de los circuitos electrnicos. Ahora bien, aadir sin ms la
referencia al reducido tamao de los circuitos electrnicos no deja de ser una redundancia:
el desarrollo de la electrnica se encuentra marcado, desde los aos 50, por un continuado
proceso de miniaturizacin, del cual deriva su propia funcionalidad (su capacidad de
abordar eficazmente funciones complejas) y su viabilidad (mediante equipos de tamao,
consumo y coste reducido).
A partir de los aos 80, algunos autores han aprovechado, en forma relativamente
oportunista y confusa, el ttulo de microelectrnica en textos de electrnica realizada con
circuitos integrados estndar, en cuyo contexto el prefijo micro no aporta ninguna
precisin porque no hay otro tipo de electrnica: carece de sentido prctico (y estara
fuera de contexto tecnolgico) un diseo que no utilice los circuitos integrados disponibles.
El trmino microelectrnica, para que resulte significativo y conceptualmente relevante,
debe ser entendido como la configuracin del circuito electrnico completo, resultante de un
diseo especfico, en el interior de un solo circuito integrado. Ello supone pasar de la
interconexin de circuitos integrados estndar a la configuracin de un circuito integrado
especfico: se trata de insertar nuestro propio diseo completo en un integrado.
Es decir, en lugar del ensamblaje de microcircuitos genricos (de catlogo) para
configurar nuestro diseo, la microelectrnica trata de la realizacin de dicho diseo
especfico en un microcircuito particular; para lo cual disponemos de dos alternativas:
- programar nuestro diseo sobre un circuito integrado programable (CPLD, FPGA)
- o, fabricar dicho diseo como circuito integrado especfico (ASIC).
Ambos casos (programacin o fabricacin del diseo) utilizan las mismas tecnologas
de fabricacin de los circuitos integrados (proceso de integracin CMOS), el mismo
esquema de desarrollo del proceso de diseo, el mismo tipo de herramientas y las mismas
consideraciones metodolgicas a tener en cuenta.
El presente captulo describe las diversas posibilidades existentes en cuanto a circuitos
integrados programables (PLDs, basados en la estructura PAL, y FPGAs, con estructura
PGA) y respecto a la fabricacin del propio diseo (ASIC); presenta las diversas
herramientas necesarias para desarrollar un diseo en sus diferentes fases y opciones y
reflexiona sobre tres aspectos diferenciados de la comprobacin del diseo.
12 El ect rni ca Di gi t al
21. 1. Ci rcui t os i n t e g r a d o s p r o g r a ma d o s p o r e l u s u a r i o : t i p o s
La finalidad de la microelectrnica es configurar un circuito digital especfico en el
interior de un circuito integrado (es decir, insertar nuestro diseo en un integrado) y
los circuitos integrados programables ofrecen una posibilidad de realizar este objetivo.
Un circuito integrado programable, adecuadamente grande, permite configurar, a
travs de su programacin, un diseo digital especfico y ello puede ser realizado
directamente por el propio usuario.
En tal sentido, en la construccin de prototipos y en la fabricacin de series
limitadas la lgica programada sobre un nico circuito integrado ha desplazado a las
placas de mltiples circuitos integrados estndar. La utilizacin de integrados estndar,
an cuando puede resultar til en laboratorio (para casos de diseos relativamente
simples), ha sido sustituida en la prctica por el empleo de circuitos integrados
programables, de forma que un solo circuito recoge el conjunto completo de funciones
booleanas necesarias, evitando el cableado entre los diversos bloques digitales.
Los circuitos integrados programables presentan siempre una configuracin interna
modular: una celda tipo repetida mltiples veces; cada celda cuenta con una parte
combinacional, sobre la que puede programarse una funcin booleana, seguida de un
biestable. La parte combinacional de la celda o mdulo bsico permite establecer una
divisin de los dispositivos programables en dos grandes grupos:
- dispositivos de tipo PAL: funciones expresadas en forma de suma de productos;
- dispositivos basados en multiplexores (funciones LUT), organizados en forma
de matriz de mdulos programables, tipo PGA.
Los dispositivos de tipo PAL estan conformados por macroceldas (que incluyen las
funciones como suma de productos seguidas de sendos biestables) y fueron estudiados
en el apartado 4 del captulo 13 (volumen 2). Las macroceldas han de contener sumas de
trminos producto de muchas variables; son mdulos de granularidad gruesa: funciones
de muchas variables de entrada (pudiendo cada mdulo realizar una funcin compleja o
bien desaprovechndose muchas de sus conexiones programables).
Los dispositivos de tipo PGA (Programmable Gate Array) corresponden a una
granularidad ms fina, con funciones internas de pequeo nmero de entradas (4, 5
6) y, en cambio, ofrecen mayor potencialidad en las conexiones entre mdulos; estn
compuestos por una matriz de celdas lgicas (de reducido tamao), separadas por
canales de conexin verticales y horizontales, junto con celdas de entrada/salida
situadas en la periferia, que conectan con los terminales del circuito.
Los mdulos de tipo PAL son ms potentes (y, por ello, ms susceptibles de ser
desaprovechados) en cuanto a su parte combinacional interna y se presentan en
estructuras de interconexin (arquitecturas) relativamente directa: lineal o ramificada.
Los dispositivos PGA contienen mdulos ms simples (y, por lo tanto, de limitada
capacidad booleana) en una organizacin matricial con canales verticales y horizontales
de interconexin, con una gran capacidad en cuanto a conexiones programables.
21. Ci rcui t os i nt egrados especi f i cados por el usuari o 13
Di sposi t i vos l gi cos programabl es compl ej os: CPLDs
La manera ms habitual de expresar una funcin booleana es su forma algebraica
como suma de productos p; la configuracin reticular de varias funciones booleanas
expresadas en forma de suma de productos recibe el nombre de PAL: cada funcin ocupa
un mdulo separado, conformado por una puerta "o" que recibe las salidas de varias
puertas "y" sobre las que se programan los trminos producto de la funcin.
Para poder programar sistemas secuenciales es necesario aadir a la configuracin
PAL la capacidad de memoria que proporcionan los biestables: la inclusin de un
biestable en cada mdulo, cuyos trminos producto han de admitir como variables,
adems de las propias variables de entrada, las salidas de los biestables, para permitir la
realimentacin de las variables de estado.
El mdulo bsico resultante, suma de productos + biestable, ha sido ampliado con
diversos selectores programables, as como con la posibilidad de salida tri-estado, y
recibe el nombre genrico de macrocelda.
1
0
0
1
1
0
D
Q
S R
Q
entradas exteriores macroceldas
CK
Los circuitos integrados programables que utilizan macroceldas suelen ser aludidos
con las siglas PLD (dispositivo lgico programable) y CPLD (PLD complejo, cuando el
nmero de mdulos o macroceldas que contiene es alto).
En los PLDs pequeos cada macrocelda est conectada a todas las dems (recibe la
realimentacin de las otras macroceldas). En los CPLDs las macroceldas se organizan en
bloques, existiendo un canal de interconexin (lneas con conexiones programables para
conectar los bloques entre s y para comunicarlos con las entradas exteriores).
[Vase una descripcin ms detallada de los CPLDs en el apartado 13.4 del volumen 2 y
en el siguiente captulo, apartado 22.1, que incluye un repaso de dicha descripcin.]
14 El ect rni ca Di gi t al
Mat ri ces de cel das l gi cas conf i gurabl es: FPGAs
Una funcin boleana puede expresarse, tambin, a travs de su tabla funcional y
puede construirse mediante un multiplexor que toma valores sobre dicha tabla:
configuracin LUT (look up-table).
y = f (c,b,a)
b
a
c
tabla de verdad
r
e
g
i
s
t
r
o
:
8
b
i
e
s
t
a
b
l
e
s
funcin de 3 variables
3
mux.
8
2 = 8 valores de salida
De esta forma, las funciones se configuran mediante su tabla de verdad que se
memoriza en un registro: un multiplexor cuyas entradas son las salidas del registro
selecciona (por bsqueda en la tabla, LUT) la salida de la funcin.
Asimismo, las conexiones entre funciones (o entre mdulos) pueden ser controladas
mediante biestables: una puerta de transmisin entre dos lneas permite su conexin
cuando la puerta conduce o su separacin en caso de que se encuentre en corte; la
situacin de conduccin o corte de la puerta de transmisin puede ser determinada por el
valor booleano almacenado en un biestable. Tngase en cuenta que las puertas de
transmisin, en tecnologa CMOS, son bidireccionales: la conexin que establecen entre
dos lneas puede actuar en ambas direcciones.
biestable
puerta de
transmisin
conexin de dos lneas seguidas conexin de dos lneas que se cruzan
Los circuitos programables resultantes de esta configuracin (funciones LUT y
conexiones por puertas de transmisin) disponen de un conjunto de celdas lgicas (LC),
organizadas matricialmente en dos dimensiones; a travs de las franjas (verticales y
horizontales) de separacin entre ellas se establecen canales (conjuntos de lneas) para la
interconexin de las celdas y, adems, en la periferia se disponen celdas especficas de
adaptacin de las entradas y salidas (IOC).
21. Ci rcui t os i nt egrados especi f i cados por el usuari o 15
IOC IOC IOC IOC IOC
LC LC LC LC LC
I
O
C
I
O
C
LC LC LC LC LC
I
O
C
I
O
C
LC LC LC LC LC
I
O
C
I
O
C
LC LC LC LC LC
I
O
C
I
O
C
LC LC LC LC LC
I
O
C
I
O
C
LC LC LC LC LC
I
O
C
I
O
C
LC LC LC LC LC
I
O
C
I
O
C
LC LC LC LC LC
I
O
C
I
O
C
IOC IOC IOC IOC IOC
IOC IOC IOC IOC IOC IOC IOC IOC IOC IOC
LC LC LC LC LC
I
O
C
I
O
C
LC LC LC LC LC LC LC LC LC LC
I
O
C
I
O
C
I
O
C
I
O
C
LC LC LC LC LC
I
O
C
I
O
C
LC LC LC LC LC LC LC LC LC LC
I
O
C
I
O
C
I
O
C
I
O
C
LC LC LC LC LC
I
O
C
I
O
C
LC LC LC LC LC LC LC LC LC LC
I
O
C
I
O
C
I
O
C
I
O
C
LC LC LC LC LC
I
O
C
I
O
C
LC LC LC LC LC LC LC LC LC LC
I
O
C
I
O
C
I
O
C
I
O
C
LC LC LC LC LC
I
O
C
I
O
C
LC LC LC LC LC LC LC LC LC LC
I
O
C
I
O
C
I
O
C
I
O
C
LC LC LC LC LC
I
O
C
I
O
C
LC LC LC LC LC LC LC LC LC LC
I
O
C
I
O
C
I
O
C
I
O
C
LC LC LC LC LC
I
O
C
I
O
C
LC LC LC LC LC LC LC LC LC LC
I
O
C
I
O
C
I
O
C
I
O
C
LC LC LC LC LC
I
O
C
I
O
C
LC LC LC LC LC LC LC LC LC LC
I
O
C
I
O
C
I
O
C
I
O
C
IOC IOC IOC IOC IOC
IOC IOC
LC LC
LC LC
LC LC
LC LC
LC LC
LC LC
LC LC
LC LC
IOC IOC
IOC IOC IOC IOC
LC LC LC LC LC LC
LC LC LC LC LC LC
LC LC LC LC LC LC
LC LC LC LC LC LC
LC LC LC LC LC LC
LC LC LC LC LC LC
LC LC LC LC LC LC
LC LC LC LC LC LC
IOC IOC
Estos circuitos programables reciben el nombre de PGA (Programmable Gate
Array): matrices de puertas programables, entendiendo el trmino puerta (G gate) en su
acepcin amplia de mdulo lgico (como celda que contiene una funcin booleana de
pocas variables). Su denominacin habitual es FPGA (Field Programmable Gate Array),
donde la F inicial (field: in situ), viene a indicar que la programacin por el usuario puede
hacerse en la propia placa circuital de aplicacin, sin tener que extraer la FPGA del
circuito de que forma parte.
16 El ect rni ca Di gi t al
Las matrices de celdas programables FPGAs son dispositivos de granularidad
fina, compuestos por una amplia matriz de celdas lgicas de reducido tamao (y
limitada capacidad booleana), separadas por canales de conexin verticales y
horizontales, y por celdas de entrada/salida situadas en la periferia, que conectan con los
terminales del dispositivo. El calificativo programable adjetiva tanto a las celdas (de
ambos tipos: lgicas y de entrada/salida) como a la matriz de conexiones, es decir, tiene
una doble repercusin: son programables tanto las celdas internamente (su funcin
booleana y su configuracin) como las conexiones de las celdas entre s.
El prximo captulo (cap. 22) se dedica a los circuitos integrados programables,
repasando brevemente la configuracin y caractersticas de los CPLDs y describiendo en
detalle las FPGAs.
21. 2. Ci rcui t os i nt egrados di seados por el usuari o: t i pos
El extraordinario desarrollo alcanzado por las tecnologas de integracin MOS y la
continuada reduccin de costes de los circuitos fabricados con ellas, junto con la
sistematizacin de los procesos de diseo y la disponibilidad de eficaces herramientas
CAD, han permitido que el diseo de los circuitos integrados sea realizado por los
propios usuarios de los mismos.
De esta manera, cualquier diseador de sistemas digitales puede abordar el diseo de
su propio circuito integrado y, por tanto, cualquier empresa puede incorporar a los
productos que fabrica circuitos integrados propios, diseados especficamente para el
producto en cuestin y pensados desde la perspectiva de mejorar, ampliar y personalizar
las prestaciones de dicho producto.
La utilizacin de circuitos integrados especficos no slo resulta viable, sino tambin
econmicamente rentable; aun ms, contribuye en gran medida a aumentar la
competitividad de los productos fabricados en serie, por su repercusin en las
prestaciones y en el precio de los mismos.
Un ASIC (application specific integrated circuit) es un circuito integrado, no
disponible en catalogo, diseado para una aplicacin concreta, de forma que sus
prestaciones se ajustan especficamente a dicha aplicacin.
En realidad, el trmino ASIC puede aplicarse tanto a los circuitos integrados
programados por el usuario como a los fabricados segn el diseo del mismo; en ambos
casos, tales circuitos integrados resultan configurados en forma no estndar, para
aplicaciones especficas. Ahora bien, suele ser habitual reservar la denominacin de
ASICs para los circuitos fabricados con diseo propio y, en tal sentido, lo utilizaremos en
este texto.
21. Ci rcui t os i nt egrados especi f i cados por el usuari o 17
Un ASIC permite sustituir una o varias placas de circuitos integrados estndar,
reduciendo drsticamente su coste, su tamao y su consumo y aumentando su fiabilidad y
su velocidad as como las prestaciones del circuito global; adems un ASIC personaliza
el circuito electrnico, asegurando en gran medida su confidencialidad, es decir, la
dificultad de reproduccin del mismo mediante duplicacin de las placas circuitales o
mediante el rediseo de las mismas con ligeras modificaciones.
En relacin con una placa de circuitos integrados estndar, un ASIC
presenta:
menor coste
menor consumo
menor tamao
menor peso
mayor velocidad
mayores prestaciones
mayor fiabilidad
mayor confidencialidad
pero, tambin, supone:
mayor inversin inicial NRE
necesidad de un n mnimo
menor flexibilidad al cambio
test ms complejo
La fabricacin de circuitos integrados especficos ofrece un coste por ejemplar
sumamente inferior al coste global de la placa (o placas) de circuitos integrados estndar
a los que sustituye y muy inferior, tambin, al coste de un circuito integrado programable
equivalente.
Se requiere, en cambio, una inversin inicial (NRE: non recursive engineering)
relativamente elevada, referente al diseo, desarrollo y construccin de las mscaras de
integracin; inversin que es independiente del nmero de ejemplares a fabricar. La
repercusin de la inversin NRE, en el coste de cada unidad, es pequea cuando el
nmero de unidades que posteriormente se integran es de varios miles; de otro modo, el
coste de fabricacin individual se ver fuertemente incrementado por la amortizacin de
dicha inversin inicial.
La ltima etapa del diseo a nivel fsico de un circuito integrado, la que conecta con
el proceso de fabricacin, tiene un carcter netamente geomtrico, para culminar en el
dibujo de las mscaras que determinan, en cada una de las etapas del proceso de
integracin, la distincin entre unas y otras zonas superficiales de la oblea; respetando,
adems, las reglas de diseo que impone la tecnologa de integracin.
Existen tres posibilidades para abordar el diseo y la fabricacin de un circuito
integrado, segn se expresa en el siguiente diagrama:
fabricacin completa partir de una matriz
de puertas prefabricadas
disear completamente diseo fsico completo
cada una de sus partes FULL CUSTOM
utilizar una librera celdas prediseadas puertas prefabricadas
de celdas prediseadas STANDARD CELL GATE ARRAY
18 El ect rni ca Di gi t al
Un diseo fsico completo (full custom) incluye el dibujo de las mscaras por parte
del propio diseador, ayudado por las correspondientes herramientas CAD. Este tipo de
diseo completo puede resultar sumamente complejo; en cambio, permite, si el diseador
es suficientemente hbil, un ptimo aprovechamiento de la superficie de la oblea de
silicio. De esta forma se disean los circuitos integrados estndar, cuyo alto volumen de
produccin justifica el esfuerzo de un diseo fsico completo, en orden a minimizar la
superficie de silicio de cada integrado y, con ello, su precio.
Sin embargo, el diseo de un ASIC no suele descender hasta el nivel de las mscaras
de fabricacin, sino que aprovecha libreras de celdas lgicas prediseadas (puertas,
biestables, pequeos bloques combinacionales, reducidos registros o contadores,). El
circuito especfico se describe a travs de la correspondiente interconexin de tales celdas
y, una vez capturado su esquema, el compilador lo traduce automticamente a las
correspondientes mscaras fsicas (utilizando para ello potentes algoritmos de colocacin
ptima de las celdas, placement, y de conexionado de ellas, routing).
A partir del diseo con celdas prediseadas (standard cell) pueden obtenerse todas
las mscaras necesarias para fabricar el correspondiente circuito integrado,
personalizadas todas ellas para cada ASIC, y, consiguientemente, puede efectuarse el
proceso completo de fabricacin del mismo.
Otra posibilidad consiste en disponer de circuitos integrados parcialmente
prefabricados, con un gran nmero de puertas en su interior, y configurar el circuito
digital especfico mediante el conexionado sobre dichas puertas. Este tipo de fabricacin
que utiliza una matriz de puertas prefabricadas (gate array o, tambin, sea of gates)
simplifica el proceso de fabricacin de cada ASIC individual, pues solamente las
mscaras correspondientes al conexionado son personalizadas para cada ASIC.
En ambos casos (standard cell y gate array) el diseo se realiza utilizando una
librera de celdas estndar y no es muy diferente del diseo clsico con circuitos
integrados estndar, seleccionndolos en el correspondiente catalogo y realizando la
correspondiente interconexin entre ellos.
La fabricacin completa de celdas prediseadas (standard cell) permite un buen
aprovechamiento de la superficie de la oblea de silicio, por cuanto que se incorporan
solamente las celdas funcionalmente necesarias, ya optimizadas en su diseo, y tales
celdas se posicionan (mediante algoritmos de placement y routing) de forma que su
interconexin sea lo ms directa posible; por tanto permite fabricar un mayor nmero de
unidades en cada oblea.
En cambio la utilizacin de matrices de puertas prefabricadas (gate array) requiere
mayor rea (no es posible utilizar todas las puertas prefabricadas, ni tampoco conseguir
un ptimo aprovechamiento de las mismas), pero disminuye fuertemente el coste de la
inversin inicial NRE, ya que solamente es necesario personalizar las mscaras y las
etapas de fabricacin correspondientes al conexionado (es decir, a las lneas de metal).
21. Ci rcui t os i nt egrados especi f i cados por el usuari o 19
La eleccin entre uno u otro mtodo de fabricacin de un ASIC (standard cell o
gate array) depende del nmero de ejemplares a integrar, es decir, al trmino de coste
que predomina: el del proceso de fabricacin concreta de cada ejemplar o el de la
inversin inicial NRE distribuida entre todos los ejemplares fabricados.
En todo caso, el proceso de diseo incluir la descripcin del circuito, su simulacin
funcional (comprobar que funciona conforme se desea) y la generacin de los vectores de
test que permitan la comprobacin fsica de cada circuito una vez fabricado; todo ello
sobre computador, utilizando potentes herramientas CAD.
Di seo f si co compl et o
Los procesos de diseo completo (full custom) de un circuito integrado, junto con su
fabricacin, abarcan las siguientes etapas:
1.- Especificaciones / Requisitos
2.- Descripcin funcional del comportamiento
3.- Diagrama de bloques
4.- Esquema circuital con puertas y biestables
5.- Configuracin con transistores
6.- Dibujo geomtrico de zonas
7.- MSCARAS
8.- Proceso de integracin
9.- Test de los circuitos fabricados
"
F
U
L
L
C
U
S
T
O
M
"
D
i
s
e
o
F
s
i
c
o
En un diseo completo, la tarea del diseador parte de las especificaciones o
requisitos que debe cumplir el circuito hasta llegar a su dibujo geomtrico (layout), que
dar lugar a las mscaras que el fabricante utilizar en el proceso de fabricacin.
Tambin, es responsabilidad del diseador la obtencin de los vectores de test que el
fabricante ha de aplicar para verificar cada uno de los circuitos resultantes del proceso de
fabricacin.
20 El ect rni ca Di gi t al
Di seo con cel das predi seadas
Otra posibilidad de diseo consiste en utilizar una librera de celdas prediseadas
(standard cell) por el fabricante, de forma que el diseador no ha de descender al nivel
fsico de los transistores que configurarn el circuito, sino que efecta el diseo en el
nivel lgico (booleano). Los procesos de diseo y fabricacin utilizando una librera de
celdas seguirn las etapas siguientes:
D
i
s
e
o
l
g
i
c
o
"
S
T
A
N
D
A
R
D
C
E
L
L
"
Celdas Bsicas Prediseadas
5.- Colocacin y Conexionado (Placement & Routing)
6.- Sustitucin de las celdas por el dibujo de zonas (layout)
1.- Especificaciones / Requisitos
2.- Descripcin funcional del comportamiento
3.- Diagrama de bloques
4.- Esquema circuital con
7.- MSCARAS
8.- Proceso de integracin
9.- Test de los circuitos fabricados
Las celdas bsicas incluidas en una librera tienen dimensiones geomtricas
ajustadas entre s, para facilitar el encaje de unas con otras. Las tareas de ubicacin de las
celdas y conexionado de las mismas (placement and routing) son ejecutadas con la ayuda
de potentes herramientas informticas y suelen ser realizadas por el diseador, en
contacto y colaboracin directa con el fabricante. La sustitucin de las celdas por su
layout es realizada directamente por el fabricante.
La descripcin del circuito puede ser grfica (captura de esquemas) o textual
(lenguajes de descripcin circuital o descripcin de hardware) o mezcla de ambas.
A medida que aumenta la complejidad de los circuitos integrados resultan cada vez ms
tiles los lenguajes de descripcin circuital (VHDL, Verilog,), que permiten describir
un circuito a travs de su funcionamiento, sin descender a su configuracin (puertas,
biestables o bloques); de construir tal configuracin se encarga el correspondiente
compilador.
21. Ci rcui t os i nt egrados especi f i cados por el usuari o 21
Fabri caci n con mat ri ces de puert as pref abri cadas
En cuanto al proceso de fabricacin, una posibilidad de reducir costes consiste en
utilizar circuitos integrados ya fabricados a nivel de puertas (gate array) o de mdulos
equivalentes, sobre los cuales se configurarn (por conexin mediante las capas de
metales) las celdas de la librera.
De esta forma, el circuito particularizado slo requiere las mscaras
correspondientes a los metales y a sus contactos:
D
i
s
e
o
l
g
i
c
o
"
S
T
A
N
D
A
R
D
C
E
L
L
"
1.- Especificaciones / Requisitos
2.- Descripcin funcional del comportamiento
3.- Diagrama de bloques
4.- Esquema circuital con Celdas Bsicas Prediseadas
6.- MSCARAS DE METALES
7.- Integracin de los metales
8.- Test de los circuitos fabricados
5.- Configuracin de las celdas sobre Mdulos Prefabricados
"GATE ARRAY"
La configuracin tpica de una puerta o mdulo bsico gate array suele ser del tipo
representado en la figura siguiente:
1
2
3
4
5
6
7
8
Inversor: conectando los nudos 1 y 2
juntos como entrada nica,
3 y 5 a 0 V, 6 y 8 a Vcc
y 4 y 7 juntos como salida
se obtiene un inversor.
Puerta Nand: las dos entradas 1 y 2,
el nudo 5 a 0 V,
el 6 y el 8 a Vcc
y 3 y 7 como salida.
Puerta Nor: los nudos 3 y 5 a 0 V,
el 6 a Vcc y 4 y 8 juntos
como salida.
22 El ect rni ca Di gi t al
21. 3. Herramient as de diseo
El proceso de diseo de un circuito integrado digital (en sus diferentes modalidades)
se desarrolla sobre computador, en forma de tareas de tipo CAD, para cuya ejecucin se
dispone de eficaces y potentes herramientas informticas. Las herramientas que se
utilizan para el diseo digital con circuitos programables y para el diseo de ASICs
digitales son bsicamente las mismas y se emplean de la misma forma, diferencindose
luego en la forma de compilar el diseo y en los resultados de tal compilacin.
El diseo de un circuito integrado digital es bsicamente un proceso de descripcin
del mismo, junto con la simulacin de su comportamiento para verificar que el diseo es
correcto, conforme a las especificaciones o requisitos del mismo. La descripcin digital
puede hacerse a diferentes niveles, en particular, a nivel geomtrico (layout), a nivel
lgico (esquemtico) o a nivel funcional (programa).
El nivel geomtrico (descripcin fsica del circuito integrado) no tiene sentido en el
diseo sobre circuitos integrados programables (pues ya estn fabricados) y es utilizado
en forma muy limitada en el diseo de ASICs con librera, es decir en el diseo standard
cell o gate array (solamente se usan algoritmos de colocacin y conexionado de las
celdas de la librera, que ya estn diseadas).
Los niveles lgico y funcional ofrecen dos alternativas de diseo: en forma grfica
de esquema de puertas y biestables, adecuadamente conectadas, o en forma de texto,
describiendo el comportamiento del circuito; actualmente, y cada vez ms, predomina la
descripcin en texto, utilizando un lenguaje de descripcin circuital (HDL, Harware
Description Language).
Existen, pues, tres niveles de descripcin de los diseos digitales:
- nivel geometrico (layout): descripcin grfica de las diferentes regiones fsicas
que conforman el circuito integrado (difusiones, polisilicio, metal, contactos,...),
o sea, el dibujo que corresponde a las mscaras con las que se fabricar el
integrado; este nivel es propio y casi exclusivo del diseo completo (full custom),
- nivel lgico (esquemtico): descripcin, en trminos de puertas lgicas y
biestables; es el nivel que corresponde directamente al diseo con librera,
- nivel funcional (texto): descripcin del comportamiento del circuito en un
lenguaje de descripcin circuital (como puede ser VHDL o Verilog).
El tipo de tareas que permiten abordar las herramientas informticas, segn los tres
niveles anteriores, est resumido en la tabla de la pgina siguiente.
21. Ci rcui t os i nt egrados especi f i cados por el usuari o 23
1 Nivel Funcional
Lenguajes de Descripcin Funcional
Edicin y anlisis de la descripcin.
Simulacin funcional.
Compilacin lgica.
2 Nivel Lgico
Descripcin
Captura de esquemas.
Generacin de celdas matriciales (ROM, PLA, RAM, ...).
Simuladores Lgico-temporales
Anlisis Temporal
Verificacin de tiempos de anticipacin y de mantenimiento.
Clculo de retardos y deteccin de caminos crticos.
Test
Simulacin de fallos.
Cobertura de test.
Generacin automtica de test: ATPG.
3 Ni vel Geomtri co
Descripcin
Colocacin y conexionado de celdas: Placement and Routing.
Edicin grfica.
Simulacin
Extractores de parmetros: back-annotation.
Simuladores Elctricos.
Comprobacin Lgica
Extractores lgicos.
Verificacin de correspondencia.
Verificadores de reglas de diseo: DRC.
24 El ect rni ca Di gi t al
En todos los niveles es preciso comprobar que el diseo es correcto, a travs de la
simulacin de su comportamiento:
- en el nivel geomtrico, se utilizan simuladores elctricos, en particular el
simulador SPICE, extrayendo previamente, sobre el layout, los transistores y los
componentes capacitivos y resistivos presentes;
- en el nivel lgico, se emplean simuladores lgico-temporales que actan en
trminos de funciones booleanas y de retrasos temporales (tiempos de
propagacin);
- en el nivel funcional, los lenguajes de descripcin circuital ofrecen simuladores
del comportamiento del circuito, tal como queda descrito en dichos lenguajes.
Adems, en el nivel lgico se aplica el anlisis de tiempos para verificar que se
respetan los tiempos de propagacin, de anticipacin y de mantenimiento (y, en el caso
de ASICs, se obtiene el conjunto de vectores de test necesarios en el proceso de
integracin para comprobar que cada ejemplar fabricado responde efectivamente al
diseo).
En el nivel funcional (lenguajes de descripcin circuital), se dispone de
compiladores que trasladan la descripcin al nivel lgico. En dicho nivel lgico, los
compiladores para circuitos integrados programables, traducen el diseo en el mapa de
fusibles que corresponde a su programacin; en el caso de ASICs (standard cell y gate
array), del nivel lgico se pasa al nivel geomtrico mediante algoritmos de ubicacin y
conexionado que sustituyen la descripcin lgica por la conexin de las correspondientes
celdas de la librera, adecuadamente situadas.
El compilador para CPLDs trasladar la descripcin (esquemtica o en texto) a
funciones booleanas, expresadas en suma de productos, y biestables tipo D y tratar de
encajar dichas funciones y biestables en las macroceldas que conforman el dispositivo
programable. El resultado ser un mapa de fusibles que describe la forma en que deben
quedar los diversos trminos producto y, en su caso, las conexiones entre macroceldas;
un programador ejecutar dicho mapa de fusibles sobre el correspondiente circuito
integrado programable.
El compilador para FPGAs pasar a funciones booleanas de un nmero de
variables limitado, descomponiendo cada funcin en varias si es preciso, para insertarlas
en las celdas lgicas que componen el dispositivo; el mapa de valores (denominacin
que es ms adecuada que la de mapa de fusibles, habida cuenta de que predomina en
este caso la programacin de tipo SRAM) describir las funciones booleanas, mediante
su tabla de verdad, la configuracin de las celdas y las conexiones entre ellas.
En el caso de ASICs, la descripcin funcional se compila utilizando la librera de
celdas disponible para pasarla a un esquemtico de celdas (nivel lgico) y,
posteriormente, se traslada a nivel geomtrico, mediante los algoritmos de colocacin y
conexionado de las celdas (cuya dimensin geomtrica ya se conoce pues su layout se ha
diseado previamente).
21. Ci rcui t os i nt egrados especi f i cados por el usuari o 25
21. 4. Val i daci n de ci rcui t os i nt egrados: simulacin, anlisis de tiempos y test
En el proceso de diseo y fabricacin de un circuito integrado se utilizan tres tipos
de procedimientos de simulacin, verificacin y supervisin que tienen objetivos y
metodologas de ejecucin totalmente diferentes:
- la simulacin funcional
- el anlisis de tiempos
- y el test del circuito fabricado.
Estos tres procedimientos se refieren, respectivamente, a la verificacin del
comportamiento del circuito resultante del proceso de diseo, a la verificacin de los
tiempos implicados en tal circuito y a la verificacin de cada circuito integrado obtenido
tras el proceso de fabricacin:
1 verificacin del comportamiento
Simulacin Funcional
Lgica-temporal
Elctrica
2 verificacin de tiempos
Anlisis de tiempos Tiempos de anticipacin y de mantenimiento
Tiempos de propagacin y caminos crticos
3 verificacin del circuito obtenido
Test Simulacin de fallos
Cobertura de fallos
La simulacin funcional trata de comprobar si el diseo realizado funciona
adecuadamente, es decir, si se ajusta a las especificaciones o requisitos que se pretendan
alcanzar. Consiste en reproducir el funcionamiento real del circuito para verificar que es
correcto, incluyendo las ms diversas situaciones posibles de sus entradas y
comprobando la ausencia de errores en la respuesta del circuito. Es un estudio
estmulo/respuesta (entradas/salidas) en relacin con el funcionamiento normal del
circuito; se realiza con simuladores lgico-temporales que evalan la respuesta booleana
a los vectores de entrada y calculan tambin el tiempo de respuesta: cada celda bsica es
sustituida por la correspondiente funcin booleana y por un tiempo de propagacin que
tiene en cuenta la carga (fan out y capacidad equivalente) que soporta su salida.
26 El ect rni ca Di gi t al
El anlisis de tiempos trata de comprobar que se respetan las restricciones
temporales internas (compatibilidad entre los tiempos de propagacin y los tiempos de
anticipacin set-up y de mantenimiento hold) y de calcular la velocidad mxima de
trabajo del circuito; asimismo, aporta informacin sobre los caminos en que se violan las
restricciones temporales y sobre los caminos que resultan crticos respecto a la velocidad
mxima de funcionamiento del circuito.
El anlisis de tiempos se efecta por caminos: un camino es el recorrido existente
entre dos biestables, se inicia en la salida de un biestable y finaliza en la entrada de otro
(sin atravesar ningn biestable intermedio). Se realiza mediante un clculo directo de
tiempos entre la entrada de cada biestable y las salidas de aquellos biestables que
influyen sobre ella: cada celda bsica combinacional es sustituida por sus tiempos de
propagacin (teniendo en cuenta en ellos la situacin real de carga fan out y capacidad
equivalente que les afecta) y para cada biestable se tienen en cuenta sus tiempos de
propagacin (biestable origen) y los de anticipacin y de mantenimiento (biestable final
del camino).
El anlisis de tiempos no tiene en cuenta, en cambio, la funcin concreta que el
circuito va a realizar: no utiliza vectores de entrada y de salida, ni efecta la simulacin
del circuito sino que meramente calcula tiempos entre biestables; supone de partida que
el diseo es sncrono y los tiempos se calculan con referencia al flanco activo del reloj.
Ambos procedimientos de comprobacin/verificacin (simulacin funcional y
anlisis de tiempos) se ejecutan en las diferentes etapas del diseo: tanto en el nivel
lgico, sobre el esquemtico del circuito, como en el nivel geomtrico, sobre las mscaras
que conectan con el proceso de fabricacin. Cuanto ms cercana es la informacin que
utilizan al nivel fsico definitivo del circuito ms precisa es la simulacin temporal y el
anlisis de tiempos: cuanto ms prximos nos situemos a la configuracin fsica real del
circuito integrado, mayor precisin puede obtenerse en los aspectos de carga efectiva que
soportan las salidas de las celdas bsicas y en los retardos debidos a los efectos resistivos
y capacitivos que introducen las conexiones (es decir, en aquellas cuestiones que afectan
a los clculos temporales).
Obviamente, el anlisis de tiempos es la verificacin propiamente temporal, pero
tambin la simulacin funcional tiene en cuenta el tiempo ya que involucra dos aspectos:
el lgico relativo a las funciones booleanas que ejecutan las celdas y el temporal
correspondiente a sus tiempos de propagacin; es una simulacin lgico-temporal.
La simulacin funcional se efecta globalmente (calculando las salidas que
produce el circuito en funcin de las ondas de entrada que recibe) y suministra
informacin sobre la validez del diseo (sobre si es correcto o no); en su caso, obliga a
redisear parcial o totalmente el circuito para que su funcionamiento coincida con el que
se pretende.
21. Ci rcui t os i nt egrados especi f i cados por el usuari o 27
El anlisis de tiempos se efecta por caminos (calcula tiempos entre la entrada de un
biestable y cada una de las salidas de los biestables que le afectan), ayuda a aumentar la
velocidad de trabajo del circuito (detecta los caminos crticos, aquellos que presentan
mayor tiempo de propagacin entre biestables) y proporciona informacin sobre las
violaciones de los tiempos de mantenimiento (hold) de los biestables. Los tiempos de
anticipacin (set-up) de los biestables intervienen en la velocidad mxima del circuito
sumndose a los tiempos de propagacin en los diversos caminos; asimismo, aun no
existiendo problemas de velocidad, han de respetarse los tiempos de mantenimiento.
La violacin de un tiempo de set-up requiere reducir los tiempos de propagacin
intermedios (disminuyendo el nmero de puertas intermedias o utilizando puertas ms
rpidas) o bien admitir una velocidad de trabajo inferior (mayor perodo de reloj, es decir,
mayor intervalo temporal para formar el nuevo dato y presentarlo en la entrada del
biestable). La violacin de un tiempo de hold requiere aumentar el tiempo de
permanencia del dato en la entrada del biestable respecto del flanco activo del reloj, es
decir, aumentar el tiempo de propagacin a partir de la salida del biestable anterior
(incluyendo un par de inversores para retrasar la seal o utilizando puertas de mayor
tiempo de propagacin). Obviamente puede suceder que la correccin de una violacin
de hold produzca una violacin de set-up y, consiguientemente, exija una velocidad de
trabajo menor.
Tanto la simulacin funcional como el anlisis de tiempos son comprobaciones que
se ejecutan en el proceso de diseo y pueden determinar una vuelta atrs en el mismo
para corregir lo que no funciona bien. En cambio, el test de un circuito integrado es la
comprobacin, posterior a la fabricacin del mismo, que garantiza que el circuito se ha
fabricado bien, es decir, que todas las celdas que configuran el circuito han sido
integradas correctamente de forma que el resultado fsico coincide con el esquema
circuital resultante del diseo.
El test no equivale, ni mucho menos, a la simulacin funcional: no se trata de
verificar que el funcionamiento normal del circuito es el deseado sino de comprobar
que todos y cada uno de los transistores han sido fabricados y conectados correctamente.
Tngase en cuenta que, si el circuito es relativamente complejo, su funcionamiento
total no puede ser simulado: requerira una secuencia enormemente alta de vectores de
test.
El test es, por tanto, mucho ms exigente que la simulacin funcional: que el diseo
es correcto queda garantizado, en la misma etapa de diseo, por la simulacin funcional
y, complementariamente, por el anlisis de tiempos en lo que se refiere a restricciones
temporales; con el test de lo que se trata es de garantizar, para cada uno de los circuitos
integrados, que tal diseo ha sido fabricado correctamente, es decir, que cada uno de los
circuitos fsicos obtenidos (chips) corresponde exactamente al diseo.
28 El ect rni ca Di gi t al
El test va ms all de una comprobacin funcional de los casos de inters: los
vectores de test pretenden verificar que todos los nudos booleanos presentes en el circuito
integrado son capaces de actuar correctamente, lo cual asegura, en gran medida, que el
circuito fsico responde efectivamente al diseo efectuado y no contiene errores debidos
al proceso de integracin. En la prctica, es imposible la comprobacin funcional
completa de un circuito digital complejo, recorriendo todos los casos posibles; el test
permite efectuar una comprobacin completa de todos los nudos booleanos del mismo,
conforme a un modelo conceptual establecido para tal finalidad.
El test se efecta, tambin, mediante un estudio estmulo/respuesta (entradas/salidas)
utilizando una secuencia apropiada de vectores test (que no coincide con la secuencia
propia de la simulacin funcional, aunque sta puede formar parte del conjunto global de
vectores de test). Los vectores de test han de permitir controlar, desde las entradas del
circuito integrado, cada uno de los nudos booleanos internos del mismo (pudiendo
situarlos a valor 0 y a valor 1) y observar, desde las salidas del circuito integrado, el
estado booleano de cada uno de dichos nudos; de esta forma, podremos comprobar que
cada celda bsica est en su sitio y que acta correctamente.
Aun cuando la aplicacin del test es posterior a la fabricacin, afecta directamente al
diseo por cuanto que el circuito ha de ser testeable (no todos lo son) y, adems, la
obtencin de los vectores de test forma parte del diseo del circuito. Es decir, todo el
proceso de diseo ha de estar orientado al test; no basta un diseo funcional sino que hay
que efectuar, a la vez, un diseo para el test, siendo as que, en muchas ocasiones, los
aspectos relativos al test resultan ms difciles y complejos que el propio diseo
funcional. [El captulo 25 se dedica ntegramente al test de circuitos integrados digitales.]
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
22 CIRCUITOS INTEGRADOS PROGRAMABLES:
MATRICES DE CELDAS CONFIGURABLES
22.1. Resumen de la configuracin y caractersticas de los CPLDs
22.2. Los biestables como componentes programables: SRAM
22.3. Matrices de celdas programables: FPGAs
Los circuitos integrados programables constituyen una de las opciones de construir
la electrnica digital en tamao micro, es decir, de insertar nuestro diseo digital en un
nico circuito integrado; la otra es fabricar especficamente dicho diseo.
Dos son los grandes tipos de dispositivos programables, que se diferencian segn su
granularidad (segn el tamao de su celda bsica) y por la forma de configurar las
funciones booleanas: los de granularidad gruesa y configuracin PAL (funciones en forma
de suma de trminos producto) y los de granularidad fina y configuracin LUT (tabla
funcional a travs de multiplexores): CPLDs y FPGAs. Este captulo incluye un
comprensivo repaso de los CPLDs que ya fueron objeto de estudio en el captulo 13
(segundo volumen) y la presentacin en detalle de las FPGAs.
Frente a la forma fsica de programacin, habitual en los CPLDs (fusibles y
transistores NMOS de doble puerta), las FPGAs utilizan una programacin ms suave,
por almacenamiento de valores sobre biestables: programacin SRAM, cuyo fichero debe
ser nominado mapa de valores (en lugar del clsico mapa de fusibles).
Una FPGA contiene bloques lgicos (formados por varias celdas lgicas elementales),
bloques de entrada/salida y conexiones entre ellos; dichos tres componentes (cada uno de
ellos) son de una gran potencia, en cuanto a posibilidades de programacin.
Cada celda lgica permite su utilizacin como funcin booleana, como registro de
desplazamiento, como pequea memoria RAM o ROM, como multiplexor rpido,...;
adems, incluye recursos especficos para operaciones aritmticas: sumadores, restadores,
multiplicadores y contadores de muy alta velocidad.
Los adaptadores de entrada/salida son celdas perifricas que ofrecen su programacin
como entradas, como salidas o como terminales bidireccionales, con sincronizacin o no de la
entrada y la salida, con capacidad de alta impedancia y con la posibilidad de seleccionar
los niveles de las tensiones lgicas, las pendientes de las seales (slew rate), ...
Una tupida malla de conexiones programables, de diversos tipos de longitud (cortas,
dobles y largas), a travs de los canales horizontales y verticales que hay entre los
bloques, ofrece una amplsima conectividad entre las diversas celdas, optimizando los
retrasos que introducen las lneas de conexin.
A todo ello se une la disponibilidad de bloques especficos de memoria RAM, de
multiplicadores e, incluso, de microprocesadores, todo dentro de una misma FPGA.
En suma, cualquier sistema digital, por grande y complejo que sea, puede ser insertado
en una FPGA, en forma eficiente.
30 El ect rni ca Di gi t al
22. 1. Resumen de l a confi guraci n y caract er st i cas de l os CPLDs
Estructura PAL + biestables
Recordemos, una vez ms, que la finalidad de la microelectrnica es configurar un
circuito digital especfico en el interior de un circuito integrado (es decir, insertar
nuestro diseo en un integrado) y que una manera de conseguir este objetivo consiste en
programar el circuito especfico en un circuito integrado programable.
La configuracin reticular de varias funciones booleanas, expresadas en forma de
suma de productos, recibe el nombre de PAL (product adding layers estratos o mdulos
sumadores de productos).
d c b a
Y4
Y3
Y2
Y1
d c b a
Y1 = c + d.a + b.a Y2 = d.c.b + d.c.a + c.b
Y3 = d.b.a + d.b + c.b Y4 = d.b + d.a + c.b + c.a
Cada funcin (suma de productos p) ocupa un mdulo separado y dispone de sus
propios trminos producto; las conexiones de las variables se ajustan a la retcula
formada por las entradas y sus negadas sobre las lneas de entrada de las puertas "y".
Para poder programar sistemas secuenciales se requiere, adems de funciones
booleanas, biestables como memoria para las variables de estado. Bata, para ello,
aadir a la configuracin PAL la capacidad de memoria que proporcionan los biestables:
incluir un biestable en cada una de las salidas de un bloque PAL. De esta forma
tendremos bloques con n mdulos, cada uno de ellos con un biestable cuya entrada D es
activada por una funcin en forma de suma de productos, cuyas variables sern las
propias variables de entrada y, tambin, las salidas de los biestables (realimentacin).
Tales bloques reciben la denominacin de PLS (secuenciadores lgicos programables) o,
tambin, la de PLD (dispositivos lgicos programables).
22. Ci rcui t os i nt egrados programabl es: FPGAs 31
f e d c b a
e n t r a d a s e x t e r i o r e s
D
CK
Q
Q
D
CK
Q
Q
D
CK
Q
Q
D
CK
Q
Q
D
CK
Q
Q
D
CK
Q
Q
CK
reloj
QA
QB
QC
QD
QE
QF
Componentes programables
Recordemos las formas de conseguir que una puerta lgica sea programable: cules
son los mecanismos fsicos que permiten tal programacin? Bsicamente hay dos formas
de dotar de capacidad de programacin a una puerta lgica, dos tipos de componentes
circuitales que permiten la conexin-desconexin fsica entre lneas del circuito:
> fusibles
> y transistores MOS de doble puerta
y, dentro de los transistores de doble puerta, se dispone de tres tipos diferentes:
<> EPROM (borrables por luz ultravioleta)
<> EEPROM (borrables elctricamente)
<> FLASH (con borrado elctrico global y
mayor densidad de integracin).
32 El ect rni ca Di gi t al
Un fusible se construye mediante un estrechamiento en un conductor de un material
apropiado, de forma que pueda fundirse por efecto trmico mediante el paso de una
intensidad relativamente elevada; suele tener un tamao aproximado de 5 x 5 m y se
utilizan aleaciones de platino-silicio, titanio-tungsteno o nquel-cromo (nicrom).
3 - 5 m
Los fusibles se utilizan principalmente en tecnologas bipolares de alta velocidad;
se programan mediante fusin trmica, a travs de pulsos de intensidad alta, con una
fuerte pendiente dI/dt para generar tensiones puntuales apreciables (por efecto inductivo):
tensiones tpicas de 10,5 V aplicadas en pulsos repetitivos de anchura entre 10 y 50 s,
dando lugar a intensidades de 0,1 - 0,5 A con tiempos de subida inferiores a 100 ns.
Los fusibles son de tipo destructivo en cuanto a su programacin; por ello, no son
reprogramables, es decir, una vez programados no pueden borrarse y volver a la
situacin inicial ya que la conexin ha sido cortada y no puede reparase. Este tipo de
dispositivos se denomina OTP (one time programmable), a diferencia de los dispositivos
EPROM que son reprogramables.
Los transistores MOS de doble puerta (MOS EPROM) se programan mediante
almacenamiento de carga en la puerta interior; dicha carga modifica la tensin umbral del
transistor MOS, situndola por encima de la tensin de alimentacin: la tensin umbral
V
TO
pasa del entorno de 1 V a unos 8 V y el transistor no entra nunca en conduccin.
V
TO
22. Ci rcui t os i nt egrados programabl es: FPGAs 33
Hay tres tipos de transistores MOS programables:
i) EPROM, borrables mediante luz ultravioleta (para descargar la puerta aislada).
Su programacin se hace a travs de una fuerte corriente de canal y de una tensin
relativamente alta en la puerta externa (pulsos de tensin de unos 12 V sobre drenaje y
sobre puerta). El alto coste que supone el encapsulado con ventana hace que estos
dispositivos EPROM se ofrezcan tambin en versin OTP (sin ventana).
ii) E
2
PROM, borrables elctricamente, cuya programacin y borrado se hace
mediante tensin entre la puerta externa y el drenaje.
Un pequeo solapamiento de las dos puertas con el drenaje permite que el proceso
de carga de la puerta aislada sea reversible: se carga y se descarga desde el drenaje por
atraccin (tensin de puerta positiva) o repulsin de electrones (tensin negativa).
fuente drenaje
puerta aislada
fuente drenaje
puerta
EPROM
E PROM
2
solapamiento
puertas - drenaje
puerta
El borrado es individual (se efecta sobre un solo transistor), pero presenta un
problema de sobreborrado: cuando la tensin de la puerta exterior es negativa la puerta
aislada suele cargarse positivamente y se genera un canal permanente que pone en
conduccin al transistor. Por ello, es necesario utilizar dos transistores en serie: el de
doble puerta para conectar y desconectar al segundo, que es un transistor NMOS normal.
iii) FLASH, borrables elctricamente, cuya programacin se hace por corriente de
canal y el borrado por tensin entre puerta y fuente.
Este tercer tipo de transistores proviene de agrupar los dos transistores de la celda
E
2
PROM en uno solo: las dos puertas se solapan con la fuente y la puerta aislada slo
ocupa la mitad de la longitud del canal.
fuente drenaje
puerta
FLASH
solapamiento
puertas - fuente
circuito equivalente
El proceso de carga de la puerta aislada es del tipo EPROM, con una intensidad de
canal alta que deriva electrones hacia dicha puerta y la descarga se produce segn el tipo
E
2
PROM, por pulsos de tensin positiva sobre la fuente, que atrae a los electrones de la
puerta aislada. El borrado no puede realizarse individualmente sino que afecta a todos los
transistores del bloque (la fuente es comn a todos los transistores NMOS) y no hay
riesgo de sobreborrado (aunque la puerta aislada se cargue positivamente, no puede
poner en conduccin al transistor, ya que slo acta sobre la mitad del mismo).
34 El ect rni ca Di gi t al
Los dispositivos programables (fusibles y EPROM) se diferencian en el proceso
fsico que determina su programacin: ruptura por efecto trmico y almacenamiento de
carga, respectivamente; sin embargo, el proceso de programacin de ellos es anlogo: se
aplica una secuencia de pulsos de tensin relativamente elevada que se repite
cclicamente hasta estar seguros de que la correspondiente conexin ha quedado
programada.
pulsos de programacin
verificacin de la programacin
Configuracin seudoNMOS
En general, los bloques programables PAL requieren puertas con un alto nmero de
entradas: cada trmino producto recibe un alto nmero de variables (sumando las de
entradas, las salidas de los biestables realimentadas y las negadas de ambas) y en cada
mdulo el nmero de trminos producto puede ser relativamente alto.
La conexin en serie de un nmero alto de transistores se evita utilizando puertas
"o-negada" (Nor) seudoNMOS: el plano N tiene todos sus transistores NMOS en
paralelo y el plano P se reduce a un solo transistor como resistencia de polarizacin (tales
puertas tienen el inconveniente de que su consumo esttico, para salida 0, no es nulo).
Vcc
Adems, en cuanto a dispositivos programables, esta configuracin seudoNMOS hace
que solamente sea necesario programar el plano N, pues el plano P es fijo, constituido por
un solo transistor: solamente se utilizan transistores EPROM de tipo NMOS y su
programacin consiste en eliminar (desconectar) los correspondientes transistores.
Ciertamente la programacin de ambos planos sera sumamente compleja, pues, en
uno de ellos, los transistores se encontraran en serie y su programacin consistira en
puentearlos (lo cual es mucho ms difcil que desconectarlos).
Vcc
Puerta Nor seudoNMOS con transistores programables
22. Ci rcui t os i nt egrados programabl es: FPGAs 35
La figura siguiente representa un mdulo PAL de 6 entradas y 8 trminos producto.
Vcc
Vcc
Vcc
Vcc
Vcc
Vcc
Vcc
Vcc
Vcc
Y
A F E D C B
Macroceldas
Una macrocelda est compuesta por:
- una suma de productos programables de mltiples entradas entre las que se
encuentran su salida y las salidas de otras macroceldas (realimentacin), estando
disponible cada entrada en su forma afirmada y negada,
- una puerta "o-exclusiva" programable que permite configurar la funcin de la
macrocelda (suma de trminos producto) en forma afirmada (y ) o negada (y , que
equivale a producto de trminos suma),
- un biestable que recibe dicha funcin,
- un selector que permite puentear el biestable y que configura, por tanto, la
macrocelda como combinacional o como secuencial,
- y un adaptador triestado con capacidad para desconectar la macrocelda respecto
del terminal de salida, lo cual da lugar a las siguientes posibilidades:
la simple desconexin (alta impedancia) del terminal,
su utilizacin bidireccional (I/O),
su disponibilidad como entrada, caso de que la macrocelda no sea utilizada.
Mientras el nmero de macroceldas de un circuito integrado programables no es alto,
cada una de ellas recibe todas las entradas del dispositivo y la realimentacin de todas las
salidas del mismo, que coinciden directamente con las salidas de todas sus macroceldas:
en caso de que alguna macrocelda no sea utilizada, la salida correspondiente puede ser
usada como entrada.
36 El ect rni ca Di gi t al
1
0
0
1
1
0
D
Q
S R
Q
entradas exteriores macroceldas CK
Macrocelda con 8 trminos producto
Configuracin del circuito integrado programable PLD 22V10
CPLDs
22. Ci rcui t os i nt egrados programabl es: FPGAs 37
Si bien el nombre de PLD es genrico (y, en principio, engloba a cualquier circuito
integrado programable) suele utilizarse para referirse a los dispositivos programables de
tipo PAL, es decir, mdulos PLS: PAL + biestable.
Cuando se trata de un gran nmero de macroceldas dentro de un mismo integrado no
resulta adecuado que cada una de ellas reciba todas las entradas y se conecte con todas las
macroceldas ya que la cantidad de conexiones programables sera sumamente elevada;
tampoco es viable que las salidas de todas las macroceldas se conecten a terminales de
salida del circuito integrado.
Para limitar el tamao del circuito y el nmero de sus terminales, las macroceldas se
agrupan en bloques disjuntos y reciben solamente las entradas propias del bloque y la
realimentacin de las macroceldas del mismo; adems, no todas las salidas de las
macroceldas estn conectadas a terminales de salida sino solamente un nmero reducido
de cada bloque.
Los bloques se conectan entre s a travs de un bus central de conexiones
programables conformando una estructura ramificada: un canal o eje de conexiones (a
manera de tronco) sobre el cual se insertan los bloques de macroceldas (como ramas del
mismo). Este tipo de circuitos integrados programables de amplio nmero de macroceldas
con arquitectura ramificada es nombrado con las siglas CPLD (dispositivos lgicos
programables complejos).
Para reducir la superficie de integracin y evitar un alto desaprovechamiento de las
estructuras PAL, el nmero de trminos producto de cada macrocelda suele ser pequeo
(4 6) y para ampliarlo, cuando se necesite, se incluyen en cada bloque expansores, en
forma de trminos producto adicionales que, sin pertenecer directamente a ninguna de las
macroceldas del bloque, pueden ser utilizados por cualquiera de ellas.
La figura de la pgina siguiente representa un CPLD de 256 macroceldas, de las
cuales solamente 64 pueden utilizarse como salidas exteriores (las otras 192 macroceldas
son internas); el circuito dispone de una entrada especfica de reloj y de 12 entradas
exteriores, pudindose emplear tambin como entradas los terminales correspondientes a
macroceldas que no se usen como tales.
Para proteger los diseos almacenados en estos dispositivos, frente a duplicacin o
copia de los mismos, suelen disponer de un fusible de seguridad que, una vez
programado, impide la lectura del mapa de fusibles y, con ello, la duplicacin del
circuito.
Adems, suelen ofrecer la posibilidad de seleccionar la velocidad de trabajo (y con
ello, el consumo) a travs de la programacin de un fusible de velocidad: el dispositivo
puede trabajar con dos conjuntos de tiempos funcionales diferenciados; cuando se
selecciona mxima velocidad el consumo es mayor, pudiendo actuar con menores
intensidades si la velocidad no es tan alta.
38 El ect rni ca Di gi t al
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
canal
de
interconexin
programable
entrada
entrada
entrada
entrada
entrada
entrada
entrada
entrada
entrada
entrada
entrada
entrada
CK
Macrocelda 1
Macrocelda 2
Macrocelda 3
Macrocelda 4
Macroceldas 5 - 16
Macrocelda 17
Macrocelda 18
Macrocelda 19
Macrocelda 20
Macroceldas 21-32
Macrocelda 33
Macrocelda 34
Macrocelda 35
Macrocelda 36
Macroceldas 37 - 48
Macrocelda 49
Macrocelda 50
Macrocelda 51
Macrocelda 52
Macroceldas 53 - 64
Macrocelda 65
Macrocelda 66
Macrocelda 67
Macrocelda 68
Macroceldas 69 - 80
Macrocelda 81
Macrocelda 82
Macrocelda 83
Macrocelda 84
Macroceldas 85 - 96
Macrocelda 97
Macrocelda 98
Macrocelda 99
Macrocelda 100
Macroceldas 101 - 112
Macrocelda 113
Macrocelda 114
Macrocelda 115
Macrocelda 116
Macroceldas 117 - 128
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
I/O pin
Macrocelda 129
Macrocelda 130
Macrocelda 131
Macrocelda 132
Macroceldas 133 - 144
Macrocelda 145
Macrocelda 146
Macrocelda 147
Macrocelda 148
Macroceldas 149 - 160
Macrocelda 161
Macrocelda 162
Macrocelda 163
Macrocelda 164
Macroceldas 165 - 176
Macrocelda 177
Macrocelda 178
Macrocelda 179
Macrocelda 180
Macroceldas 181 - 192
Macrocelda 193
Macrocelda 194
Macrocelda 195
Macrocelda 196
Macroceldas 197 - 208
Macrocelda 209
Macrocelda 210
Macrocelda 211
Macrocelda 212
Macroceldas 213 - 224
Macrocelda 225
Macrocelda 226
Macrocelda 227
Macrocelda 228
Macroceldas 229 - 240
Macrocelda 2411
Macrocelda 242
Macrocelda 243
Macrocelda 244
Macroceldas 245 - 256
Configuracin CPLD con 256 macroceldas
22. Ci rcui t os i nt egrados programabl es: FPGAs 39
En paralelo con el desarrollo de las FPGAs, las series recientes de CPLDs incluyen
tambin celdas perifricas adaptadoras de entradas/salidas anlogas a las que se describen
ms adelante. Asimismo existen CPLDs de muy alto nmero de macroceldas con la
estructura reticular propia de las FPGAs: los bloques de macroceldas separados por
canales de conexin horizontales y verticales. Estas caractersticas de los CPLDs
avanzados sern estudiadas en el apartado 3.
22. 2. Los bi est abl es como component es programabl es: SRAM
En la configuracin LUT (lookuptable) las funciones se construyen a travs de su
tabla funcional, mediante un multiplexor que toma valores sobre dicha tabla; dichos
valores pueden ser almacenados en un registro.
Las conexiones entre funciones (o entre mdulos) son seleccionadas, tambin, a
travs de biestables que actan sobre puertas de transmisin: el valor booleano (1/0)
almacenado en un biestable determina que las dos lneas conductoras enlazadas por la
puerta de transmisin queden conectadas entre s o permanezcan independientes.
b a c
tabla de verdad
r
e
g
i
s
t
r
o
:
8
b
i
e
s
t
a
b
l
e
s
mux.
8
biestable
puerta de
transmisin
conexin de dos lneas seguidas
conexin de dos lneas
que se cruzan
De esta forma, las funciones se configuran mediante su tabla de verdad que se
memoriza en un registro y las conexiones se establecen a travs de los valores que se
almacenan tambin en registros (en conjuntos de biestables).
En ambos casos, se establece una programacin por memoria (software), a travs de
un amplio nmero de biestables que almacenan las tablas de las funciones y la seleccin
de conexiones entre lneas. De forma que tanto las funciones booleanas de los mdulos
(look-up-table) como las conexiones (seleccin de caminos posibles) se programan
almacenando valores booleanos sobre registros; las siglas SRAM identifican este tipo de
programacin por memoria esttica.
40 El ect rni ca Di gi t al
Este tipo de dispositivos, con programacin SRAM, se denomina FPGA y ser
estudiado en detalle en el prximo apartado; estn formados por:
- celdas con funciones lgicas configurables y biestables
- celdas adaptadoras de entradas y salidas configurables
- conexiones configurables
- y la memoria (el conjunto de biestables) donde se almacena la configuracin de
todo lo anterior junto con el circuito de control de la misma.
La programacin se refiere tanto a las tablas de verdad de las funciones como a la
configuracin interna de las celdas en que stas se encuentran y la de las celdas
adaptadoras de entrada/salida y a las conexiones entre celdas. En conjunto ser un amplio
nmero de biestables cuyas salidas actan sobre lneas de entrada de multiplexores (en el
cado de tablas de verdad) o sobre las entradas de control de otros multiplexores (en el
caso de configuracin de celdas o de conexiones entre ellas).
El nmero de biestables es muy alto: una FPGA mediana, de unos 2000 mdulos
lgicos suele tener del orden de 10
6
biestables de programacin, es decir, unos 500
biestables por cada mdulo, de los cuales unos 50 son de configuracin del propio mdulo
y el resto de programacin de las conexiones entre mdulos.
En relacin con su programacin, es decir, con el almacenamiento de los valores
booleanos correspondientes a un determinado diseo, todos estos biestables se encuentran
conectados formando un largo registro de desplazamiento, en el cual se introduce, bit a
bit, el mapa de valores que corresponde a dicho diseo. Este registro de desplazamiento
es anlogo al que se forma con los biestables de un circuito secuencial para efectuar el test
del mismo: scan path (que ser estudiado en 25.4).
Biestables de configuracin: REGISTRO DE DESPLAZAMIENTO DIN
PROG
CCLK
Una entrada de control PROG (selector de modo de programacin), determina el
paso del circuito a la situacin de programacin, en la cual todos los biestables de
configuracin (de programacin) SRAM se unen, en cadena, formando un registro de
desplazamiento, con una entrada DIN (entrada de datos para la programacin) que
recibir los dgitos del mapa de valores, bit a bit conforme a una seal de reloj CCLK
que desplaza los dgitos a lo largo del registro. Un contador auxiliar sirve para contar el
nmero de dgitos recibidos y sealar (salida DONE) el momento en que se completa la
programacin: se ha llenado todo el registro.
Sin tensin de alimentacin el dispositivo carece de programacin; en la puesta en
marcha (power-on), la primera tarea que realiza el dispositivo consiste en leer su
programacin: sta puede ser proporcionada por una PROM auxiliar (generalmente una
PROM serie que se comunica con la FPGA a travs de un reducido nmero de lneas) o
bien suministrada directamente desde un computador o microprocesador.
22. Ci rcui t os i nt egrados programabl es: FPGAs 41
La figura siguiente muestra la conexin entre una FPGA y una memoria PROM
serie que contiene su programacin; las lneas de conexin para efectuar la programacin
son las siguientes:
PROM FPGA
- lnea de control RESET INIT seal externa de inicio
- lnea de datos DATA DIN lo enva la PROM
- lnea de reloj CLK CCLK lo enva la FPGA
- lnea de finalizacin CE DONE lo enva la FPGA.
Al activar una seal de inicio (RESERT / INIT) la FPGA lee el contenido de la
memoria PROM a travs de la lnea de datos (DATA DIN), lectura que es controlada
mediante dos lneas que la FPGA enva a la PROM: una lnea de reloj (CLK CCLK) y
otra de habilitacin (CE DONE); la segunda lnea determina la finalizacin de la
lectura cuando se ha completado el fichero necesario para la programacin.
DIN
CCLK
DONE
INIT
DATA
CLK
CE
RESET
PROM
FPGA
inicializacin
Tambin pueden utilizarse las memorias PROM habituales de 8 lneas de datos; su
lectura ser ms rpida pero requieren un mayor nmero de lneas dedicadas a la
programacin.
Asimismo, el fichero de programacin de una FPGA puede ser enviado desde un
computador o desde un microprocesador a travs de 4 lneas de interconexin:
procesador FPGA
- lnea de control TMS PROG control de la programacin
- lnea de datos TDI DIN lo enva el procesador
- lnea de reloj TCK CCLK lo enva el procesador
- lnea de finalizacin TDO DONE lo enva la FPGA.
Basta, pues, con dejar 4 terminales en la placa de la FPGA preparados con este fin;
es el computador el que enva el reloj a la FPGA para sincronizar la transmisin de datos,
mientras que con una PROM es la FPGA la que enva el reloj a la memoria para leerla.
42 El ect rni ca Di gi t al
En ambos casos la FPGA recibe los datos de la programacin a travs de la lnea
DIN e informa de que se ha completado tal programacin a travs de la lnea DONE.
La siguiente figura muestra un cable normalizado de interconexin: a las 4 lneas
bsicas de programacin se les aaden otras lneas con la referencia de tierra y la
alimentacin.
La figura que sigue muestra un adaptador para conectar el cable anterior al puerto
paralelo de un PC:
De igual forma la programacin puede realizarla un microprocesador presente en la
misma placa circuital, a travs de 4 lneas del circuito impreso.
Como puede apreciarse, la programacin de los dispositivos SRAM se efecta en el
mismo sistema digital del que forman parte: es una programacin en el propio circuito
global aplicado ISP (in system programmable). Estos dispositivos, programables
directamente en el propio sistema digital del que forman parte, permiten, incluso, el
cambio de su programacin durante el funcionamiento del mismo (de manera que pasen a
realizar funciones diferentes de las que estaban realizando).
22. Ci rcui t os i nt egrados programabl es: FPGAs 43
No todas las FPGAs son de tipo SRAM; la configuracin LUT y seleccin de lnea
por multiplexores puede tambin conformarse con programacin E
2
PROM o FLASH,
reflejando sobre simples transistores MOS programables los valores 0/1 que en el caso
SRAM se almacenan en los biestables.
Las FPGAs de tipo E
2
PROM o FLASH suelen incluir internamente la generacin
de las tensiones y la circuitera necesaria para su borrado y programacin, de forma que
tambin pueden ser programadas en el propio sistema, de manera anloga a las de tipo
SRAM; son pues dispositivos ISP (programables en el sistema a travs de 4 lneas).
Existen tambin FPGAs con programacin destructiva, mediante antifusibles. Los
antifusibles consisten en contactos entre polisilicio y difusin separados inicialmente por
un aislante de xido de silicio SiO2 muy fino, de forma que la perforacin del aislante
pone en contacto la difusin con el polisilicio; la resistencia inicial del antifusible es
superior a 100 M y se reduce por debajo de los 500 al perforar el xido de silicio.
Los antifusibles se programan por perforacin elctrica a travs de la accin de un
campo elctrico fuerte, producido por una tensin relativamente elevada; para ello se
utilizan pulsos de tensin de unos 21 V muy repetitivos (en dos pasos: una precarga de
todos los antifusibles a 10,5 V, para evitar la perforacin simultnea de varios de ellos,
seguida de la aplicacin de 21 V al fusible particular que se quiere perforar).
22. 3. Mat ri ces de cel das l gi cas programabl es: FPGAs
Las matrices de celdas programables FPGA son dispositivos de granularidad fina,
compuestos por una matriz de bloques lgicos, formados por 2 4 parejas de celdas
lgicas de reducido tamao (y limitada capacidad booleana), separados por canales de
conexin verticales y horizontales, con celdas de entrada/salida situadas en la periferia,
que conectan con los terminales del dispositivo.
El calificativo programable adjetiva a las celdas y a la matriz de conexiones, es
decir, tiene una doble repercusin: son programables tanto las celdas internamente (su
funcin booleana y su configuracin) como las conexiones de las celdas entre s.
La descripcin que, a continuacin, se detalla pretende ser una aproximacin
conceptual y genrica a la conformacin de las FPGAs, que proporcione una idea clara y
justificada de su configuracin y de sus posibilidades; la configuracin concreta de una
FPGA depende del fabricante y de la serie especfica y alcanza progresivamente mayores
niveles de complejidad.
Celdas, mdulos y bloques lgicos
Las celdas lgicas cuentan con una parte combinacional, capaz de realizar una
funcin booleana de pocas entradas (generalmente 4 entradas), un biestable y algunos
multiplexores de configuracin; las funciones se construyen mediante multiplexores
por el procedimiento de bsqueda sobre tabla LUT (look-up-table).
44 El ect rni ca Di gi t al
El biestable ofrece una entrada de habilitacin E para mantener su valor cuando
interese (E = 0), lo cual simplifica mucho el diseo de determinados registros (como los
de retencin o los contadores) y sendas entradas asncronas de marcado S y de borrado R,
para la inicializacin del biestable.
registro
para la tabla
de la funcin
d c b a CK S R
S R
D
0
1
Y
entradas
salida
parte LUT biestable
E
E
De esta forma, una celda lgica ofrece una funcin de 4 variables, con salida directa
(combinacional) o registrada (a travs de un biestable). Caso de que no se utilice la
celda como funcin booleana, pueden emplearse los biestables de programacin de la
misma en las tres formas siguientes:
a) como registro de desplazamiento (muy rpido) de hasta 16 biestables (el
multiplexor LUT permite controlar la longitud de dicho registro) o de 17
biestables utilizando el propio de la celda lgica;
b) como memoria ROM de 16 x 1 bits, fijando los 16 valores sobre el registro de
programacin y tomando la salida del multiplexor LUT;
c) como memoria RAM de 16 x 1 bits, utilizando los 16 biestables de
programacin como biestables numerados; en principio, la lnea de entrada y la
de salida de dicha memoria son independientes: se incluye en la celda la lgica
necesaria para escribir selectivamente en uno de los biestables y la lectura es a
travs del multiplexor LUT (que selecciona el biestable que aporta su valor).
Asimismo, la funcin LUT puede ser configurada como multiplexor rpido de 2 lneas.
De manera que una celda lgica equivale a:
- una funcin de 4 variables + biestable,
- un registro de desplazamiento de hasta 17 bits,
- una pequea memoria ROM de 16 x 1 bits,
- una pequea memoria RAM de 16 x 1 bits,
- un multiplexor de 2 lneas de entrada.
22. Ci rcui t os i nt egrados programabl es: FPGAs 45
Dos celdas lgicas se agrupan en un mdulo lgico, con un multiplexor de las dos
salidas LUT a fin de poder configurar funciones de 5 variables.
LUT
LUT
( par t e LUT)
De esta forma, un mdulo lgico puede ser utilizado como:
- dos funciones de 4 variables + 2 biestables,
- una funcin de 5 variables + 2 biestables (el bloque permite la programacin de
cualquier funcin de 5 variables y, tambin, algunas funciones, no todas, de hasta 9
variables),
- dos registros de desplazamiento de hasta 17 bits cada uno o uno de hasta 34 bits,
- una pequea memoria ROM de 16 x 2 bits o de 32 x 1 bits,
- una pequea memoria RAM de 16 x 2 bits o de 32 x 1 bits,
- un multiplexor de 4 lneas de entrada.
Adems, segn veremos en el prximo subapartado, los mdulos lgicos incluyen
una circuitera adicional especfica para operaciones aritmticas rpidas.
Los mdulos lgicos se agrupan para formar bloques lgicos que, separados por
canales horizontales y verticales de conexin, forman la matriz bsica de las FPGAs.
Los bloques lgicos contienen dos o cuatro mdulos lgicos, o sea, 4 u 8 celdas lgicas.
Un bloque lgico de 2 mdulos (ver la figura siguiente), adems de las prestaciones
que ofrecen sus dos mdulos por separado, puede ser utilizado, conjuntamente, como:
- una funcin de 6 variables + 4 biestables (el bloque permite la programacin de
cualquier funcin de 6 variables y algunas funciones de hasta 19),
- un registro de desplazamiento de hasta 68 bits,
- una memoria ROM de 16 x 4 o de 32 x 2 o de 64 x 1 bits,
- una memoria RAM de 16 x 4 o de 32 x 2 o de 64 x 1 bits,
- un multiplexor de 8 lneas de entrada.
46 El ect rni ca Di gi t al
mdulo lgico
mdulo lgico
LUT
LUT
LUT
LUT
Bloque lgico formado por 2 mdulos lgicos
Cualquiera de las prestaciones que se configuran dentro de un bloque lgico son de
alta velocidad, ya que las funciones y conexiones, en su interior, estn optimizadas en
cuanto a tiempos de propagacin.
Las FPGAs avanzadas, de alta capacidad, contienen 4 mdulos lgicos en cada
bloque lgico (en cada celdilla de su matriz):
mdulo lgico
mdulo lgico
mdulo lgico
mdulo lgico
LUT
LUT
LUT
LUT
parte LUT
LUT
LUT
LUT
LUT
Bloque lgico formado por 4 mdulos lgicos
22. Ci rcui t os i nt egrados programabl es: FPGAs 47
Un bloque lgico de 4 mdulos, adems de las prestaciones de dichos mdulos,
puede ser utilizado como:
- una funcin de 7 variables + 8 biestables (permite la programacin de cualquier
funcin de 7 variables y algunas funciones de hasta 39 variables),
- un registro de desplazamiento de hasta 136 bits,
- una memoria ROM de 16 x 8 o de 32 x 4 o de 64 x 2 o de 128 x 1 bits,
- una memoria RAM de 16 x 8 o de 32 x 4 o de 64 x 2 o de 128 x 1 bits,
- un multiplexor de 16 lneas de entrada.
Recursos para operaciones aritmticas
A fin de poder configurar operaciones aritmticas y que stas puedan efectuarse a
alta velocidad, se incluye en cada mdulo lgico una circuitera adicional especfica para
el diseo de sumadores, restadores y multiplicadores. Dicha circuitera permite, tambin,
la configuracin de contadores rpidos, que pueden ser bidireccionales, con borrado
sncrono y con carga paralelo.
Una celda sumadora requiere las siguientes funciones:
suma: a) (b c = s
-
acarreo: a) .(b c + b.a = c'
-
+ ;
en relacin con la velocidad, hay que prestar particular atencin a la funcin de acarreo
porque es recursiva: el acarreo de cada dgito c' debe esperar al acarrreo del dgito
anterior c_.
Ahora bien, dentro de la funcin acarreo hay dos terminos: la generacin de acarreo
a.b y la propagacin del acarreo anterior (a+b).c_, siendo este segundo el que limita la
velocidad; resulta eficaz la utilizacin de un multiplexor rpido que transmita el acarreo
propio cuando ste es generado (a = b = 1) o el anterior cuando a o b son 1.
Las dos funciones de la celda sumadora pueden construirse de la siguiente forma,
que aprovecha una puerta "o-exclusiva" para ambas:
a
b
c_
s
c'
suma: a) (b c = s
-
acarreo:
a) .(b c + b.a .a).c b a (b. b.a
.a).c b a (b. b.a).a a . b ( a).c (b ).a a b ( = c'
- -
- -
+ = + + =
+ + + = +
Con ello, un mdulo lgico queda en la forma de la figura siguiente, donde la
primera puerta "o-exclusiva" se configura en la parte funcional (LUT) de cada celda y se
48 El ect rni ca Di gi t al
aade el multiplexor y la segunda puerta "o-exclusiva" como elementos especficos para
operaciones aritmticas:
LUT
LUT
a
b
a
b
De esta forma, cada celda lgica se convierte en una celda sumadora (el mdulo
lgico es un sumador de 2 dgitos). Esta configuracin presenta muy bajos tiempos de
retraso en lo que se refiere a la propagacin del arrastre, ya que el paso a travs de
multiplexores (que se encuentran todos ellos previamente habilitados, conforme al valor
de su entrada de control) es muy rpido y las lneas de conexin son directas y cortas.
Tngase en cuenta que, en muchas ocasiones, los tiempos de propagacin a travs de las
conexiones son mayores que los que presentan las puertas lgicas.
Adems, la salida de propagacin de arrastre de cada mdulo lgico se encuentra
unida, a travs de una lnea directa y corta, con la entrada de propagacin de arrastre
del siguiente mdulo lgico de la misma columna (el que se encuentra encima del
mismo de acuerdo con la disposicin matricial de las FPGAs); es decir, existe una lnea
directa y mnima de propagacin de arrastre a lo largo de cada columna de mdulos
lgicos que permite la configuracin de sumadores ultrarrpidos en dicha columna.
Aprovechando an ms la parte funcional (LUT) de las celdas lgicas, el anterior
sumador puede convertirse en un sumador/restador (en complemento a 2) controlado por
una entrada de seleccin. La resta A-B, en complemento a 2, equivale a sumar a A el
inverso de B ms una unidad, ya que el cambio de signo de B equivale a invertirlo y
sumarle una unidad:
1 B A ) 1 B ( A ) B - ( A = B - A + + = + + = + .
22. Ci rcui t os i nt egrados programabl es: FPGAs 49
La suma de dicha unidad (+1) se efecta haciendo el arrastre inicial igual a 1.
La siguiente figura representa la configuracin del primer mdulo lgico para un
sumador/restador que efecta la suma cuando s = 0 y la resta cuando s = 1; la primera
puerta "o-exclusiva" de cada celda invierte el dgito de B cuando s = 1 (dejndolo pasar
sin invertir cuando s = 0) y la entrada de seleccin s acta como arrastre inicial para
sumar una unidad en el caso de la resta.
LUT
LUT
a
b
a
b
control suma/resta
1
1
0
0
Habida cuenta de que contar es ejecutar la suma n + 1 (sumar una unidad) sobre un
registro y que contar hacia abajo equivale a restar una unidad (n - 1), esta misma
configuracin, utilizando sus biestables como registro (nmero n) permite construir
contadores bidireccionales que admiten frecuencias de reloj muy altas: siendo Q el estado
de los biestables, basta hacer A = Q y B = ...00001; la entrada de habilitacin de los
biestables sirve tambin para la habilitacin de los contadores.
Adems del multiplexor de propagacin de arrastre y de la puerta "o-exclusiva", se
aade en cada celda una puerta "y" (en el control del citado multiplexor) para facilitar la
construccin de multiplicadores y de contadores con carga paralelo y borrado sncrono.
La forma habitual de efectuar un producto
a
7
a
6
a
5
a
4
a
3
a
2
a
1
a
0
b
3
b
2
b
1
b
0
a
7
a .b
0 0
a .b
1 0
a .b
2 0
a .b
0
a .b
4 0
a .b
5 0
a .b
6 0
a .b
0 3
a
7
a .b
0 1
a .b
1 1
a .b
2 1
a .b
1
a .b
4 1
a .b
5 1
a .b
6 1
a .b
1 3
a
7
a .b
0 2
a .b
1 2
a .b
2 2
a .b
2
a .b
4 2
a .b
5 2
a .b
6 2
a .b
2 3
7
a .b
0 3
a .b
1 3
a .b
2 3
a .b
3
a .b
4 3
a .b
5 3
a .b
6 3 3
a .b
3
x
arrastre
requiere sumadores para los productos lgicos ai.bj; en la operacin anterior, cada
cuadrado es una suma de tipo ai.b0 + ai-1.b1 y cada rectngulo lo es en la forma
ai.bj + suma anterior; ambos tipos de sumadores pueden ser realizados utilizando una
sola celda lgica (en total, 26 celdas).
50 El ect rni ca Di gi t al
Los rectngulos son sumadores ai.bj + suma anterior que pueden ser configurados
en una celda en la siguiente forma:
LUT
suma
anterior
a
i
b
j
a .b + suma anterior + c_
i j
En cambio, para la suma ai.b0 + ai-1.b1 de las dos primeras filas se necesita disponer
de una puerta "y" adicional en la forma representada en la figura siguiente:
LUT
a
b
i
0
a
b
i-1
1
a .b + a .b + c_
i-1 1 i 0
De esta forma un multiplicador de 8 x m dgitos requiere un sumador de 9 bits (y una
puerta "y": a0.b0) para las dos primeras filas y otro sumador de 8 bits para cada una de las
filas siguientes ms una celda lgica que recoja el arrastre ms significativo. El producto
de n x m dgitos necesita m 1 sumadores con un total de n.(m 1) + 2 celdas lgicas.
Un multiplicador de nmeros binarios de 16 dgitos requiere un amplio nmero de
celdas lgicas (242 celdas: 121 mdulos lgicos) pero realiza el producto muy
rpidamente, en un solo ciclo de reloj. En el captulo 24 se considera otra opcin de
construccin de multiplicadores, en forma de mquina algortmica, de menor tamao (36
celdas:18 mdulos lgicos) pero, tambin, con menor velocidad pues requiere 32 ciclos
de reloj para realizar el producto. Es habitual, en el diseo digital, la existencia de un
compromiso entre velocidad y tamao de los circuitos.
Adems, habida cuenta del gran nmero de celdas lgicas que requiere la
configuracin de un multiplicador largo, las FPGAs avanzadas incorporan, como
mdulos especficos, multiplicadores de 16 o de 32 bits
La puerta "y" que controla el multiplexor del arrastre permite configurar la celda en
la forma a.b + F(a,b,c,d) (suma aritmtica) que da lugar a contadores bidireccionales,
con borrado sncrono y carga paralelo, a travs de las siguientes expresiones:
[ ] anterior bit del rrastre a " " ) C d .( C " " .C q aritmtica Suma q
2 i 1 2 i i
+ + + =
+
para i 0 y para el primer dgito [ ]
2 0 1 2 0 0
C d . C " " .C q aritmtica Suma q + + =
+
.
22. Ci rcui t os i nt egrados programabl es: FPGAs 51
LUT
LUT
q
d
1
0
0
q
d
1
1
C
arrastre
q
0
q
1
2
C
1
C
2
C
E CK
Esta figura representa un mdulo lgico con los dos primeros dgitos del contador
(unidades y dosenas); las celdas correspondientes a los siguientes dgitos tendrn la
misma configuracin que la celda superior (la de arriba, q1) de este mdulo. La entrada
de control C2 puede ser considerada como habilitacin de contaje (cuando C2 = 1) o bien
como habilitacin de carga negada (C2 = 0):
- cuando C2 = 0 se efecta la carga si C1 = 1; si C1 = 0 se produce borrado sncrono;
- cuando C2 = 1 el contador realiza su operacin propia de contaje:
si C1 = 0 el contaje es ascendente y si C1 = 1 es hacia abajo.
C2 = 0 C1 = 0 0 q
i
=
+
Q = 000000.... borrado sncrono
C2 = 0 C1 = 1
i i
d q =
+
Q = D carga paralelo
C2 = 1 C1 = 0 [ ] rrastre a " " 0 " " q aritmtica Suma q
i i
+ + =
+
[ ] 1 " " q aritmtica Suma q
0 0
+ =
+
suma Q + ...00001 contaje hacia arriba
C2 = 1 C1 = 1 [ ] rrastre a " " 1 " " q aritmtica Suma q
i i
+ + =
+
[ ] 1 " " q aritmtica Suma q
0 0
+ =
+
suma Q + ...11111 contaje hacia abajo
Este contador bidireccional (cuya entrada de habilitacin del contaje es la propia de
los biestables), con borrado sncrono y carga paralelo, requiere solamente una celda lgica
para cada dgito.
52 El ect rni ca Di gi t al
Celdas perifricas adaptadoras de entradas/salidas
Las celdas de entrada/salida contienen sendos biestables para sincronizar la entrada
y la salida, adaptadores triestado para desconectarlas y una serie de multiplexores de
configuracin que permiten programar:
- la utilizacin de la celda como entrada, como salida o como terminal bidireccional
- respecto a la entrada:
-- su desconexin como tal entrada
-- su paso a travs de biestable: sincronismo de la entrada
-- los niveles de tensin para discriminar los valores booleanos 0 / 1
- respecto a la salida:
-- su paso o no a travs de biestable: sincronismo de la salida
-- el control de la situacin de alta impedancia: triestado
-- el valor de la tensin de salida para el 1 lgico
-- la pediente de los flancos de salida (slew rate): lento o rpido
-- la inclusin de una resistencia de push-up o de pull-down.
control
de alta impedancia
CK
D
0
1 salida
programacin de:
tensin de salida V
pendiente (slew rate)
pin
CK
D
0
1
entrada
discriminacin de nivel de V:
V / V
insercin de:
R push up
R pull down
oH
iHmn iLmx
desconexin
de la entrada
En relacin con las tensiones de salida (es decir, con VoH, ya que VoL = 0 V) y de
entrada (con ViHmn y ViLmx) las FPGAs suelen presentar mltiples posibilidades (en
ocasiones hasta una decena de ellas) de niveles de tensin para facilitar su conexin con
otros circuitos integrados digitales o analgicos; en general admiten todo tipo de
tensiones lgicas normalizadas (tanto TTL como CMOS y las diversas series de baja
tensin), de las cuales debe seleccionarse en cada caso la que interesa mediante
programacin.
Conexin entre celdas
Los canales de conexin, verticales y horizontales, situados entre los bloques
lgicos, contienen lneas de diferentes longitudes, con muy alta capacidad de
interconexin entre ellas; a travs de tales lneas se efectan las conexiones de las celdas
lgicas entre s y de stas con las celdas de entrada/salida.
22. Ci rcui t os i nt egrados programabl es: FPGAs 53
Se trata de poder conectar dos elementos cualesquiera, optimizando, en lo posible,
los tiempos de retardo que introducen las lneas de conexin. Ya, de entrada, se
minimizan las longitudes de las lneas dentro de cada bloque lgico y en los canales entre
bloques se dispone de tres tipos de lneas de conexin: cortas para conexin de bloques
lgicos vecinos, dobles para los bloques siguientes y largas que recorren toda la fila (si
son horizontales) o toda la columna (si son verticales).
En cada cruce de los canales de conexin horizontales con los verticales (es decir, en
las cuatro esquinas de los bloques lgicos), hay una matriz de conexiones que permite
prolongar las lneas que llegan a ella y conectarlas con las lneas que se cruzan en ella.
De forma que cada canal de conexiones est formado por lneas cortas, que van de
una matriz de conexiones a la siguiente, junto con unas pocas lneas dobles (que enlazan
matrices alternas) y algunas lneas largas que recorren todo el canal (y no pasan por las
matrices de conexin). Las entradas y salidas de cada bloque lgico se prolongan en
forma de lneas cortas perpendiculares a los canales de conexin.
La figura siguiente presenta una hipottica distribucin de lneas y conexiones:
bloque
lgico
bloque
lgico
bloque
lgico
bloque
lgico
matriz
de
conexiones
matriz
de
conexiones
matriz
de
conexiones
matriz
de
conexiones
matriz
de
conexiones
matriz
de
conexiones
matriz
de
conexiones
matriz
de
conexiones
matriz
de
conexiones
lnea corta
arrastre
lnea doble
lnea larga
54 El ect rni ca Di gi t al
Las lneas cortas (de mnima resistencia y capacidad) son las ms numerosas y
relacionan a cada bloque y a cada matriz de conexin con los cuatro bloques y con las
cuatro matrices inmediatamente contiguos: los bloques vecinos se conectan a travs de
sus propias lneas cortas (utilizando las lneas de canal que las cruzan); los bloques no
contiguos lo hacen a travs de las matrices de conexin.
Las lneas dobles permiten la conexin directa entre matrices de conexin alternas y
las lneas largas (ms lentas) son para seales de tipo global (que van a muchos bloques)
y para conexiones rpidas entre bloques muy alejados.
Las conexiones se configuran a travs de puertas de transmisin (que equivalen a
interruptores estticos) controladas, cada una de ellas, por un biestable que determina su
situacin de conexin (biestable a 1) o desconexin (biestable a 0); las conexiones son
siempre bidireccionales (ya que los transitores MOS y las puertas de transmisin
formadas con ellos tambin lo son).
En los cruces sealados con crculo (en la figura anterior) hay una conexin
programable entre las lneas que se cruzan:
biestable
puerta de
transmisin
En las matrices de conexin cada lnea corta (o doble) puede prolongarse hacia la
siguiente (situada en lnea, a continuacin de ella) y tambin puede unirse a las otras
dos lneas perpendiculares a ella.
biestable
6 puertas de
transmisin
cada
cruce:
En principio, las puertas de transmisin estn formadas por sendos transistores
NMOS (que transmite bien los ceros) y PMOS (para transmitir los unos) en paralelo;
pero tambin es viable utilizar solamente transistores NMOS de paso (en cuyo caso
conviene aumentar la tensin umbral de los transistores PMOS de la tecnologa para
recuperar la situacin de consumo nulo de las puertas complementarias ver T8.2).
22. Ci rcui t os i nt egrados programabl es: FPGAs 55
El nmero de conexiones en una FPGA es muy alto, de manera que los biestables de
programacin de las conexiones son siempre un nmero muy superior al de biestables de
configuracin: un mdulo lgico suele tener unos 60 biestables para su programacin
(32 para las tablas de verdad de las 2 funciones de 4 variables que contiene y unos 28
de configuracin del propio mdulo); una FPGA de unos 2000 mdulos tiene del orden
de 10
6
conexiones programables (es decir, unas 500 por mdulo).
La distribucin del diseo entre los diversos bloques lgicos es de vital importancia
respecto a la velocidad de trabajo que puede alcanzar dicho diseo (en forma anloga a la
importancia que tiene la distribucin de circuitos integrados en una placa de circuito
impreso): los bloques que se relacionan entre s deben estar lo ms cercanos posible y los
sumadores, restadores, multiplicadores y contadores deben situarse en la misma columna
de mdulos lgicos (para aprovechar la propagacin directa del arrastre).
Distribucin de la seal de reloj
Dada la importancia de la simultaneidad de la seal de reloj, en relacin con el
sincronismo, se incorporan esquemas de distribucin de dicha seal que aseguran que
recorre caminos de longitud prcticamente igual para los diversos bloques lgicos.
Distribuciones de tipo fractal, como la representada en la figura siguiente,
consiguen que la longitud de todas las lneas de distribucin de reloj sea la misma: desde
la conexin que la recibe (sealada como CK reloj) hasta su aplicacin a cada mdulo
lgico (indicada con un triangulo) la seal de reloj recorre caminos de igual longitud.
CK reloj
Esta forma de asegurar la simultaneidad de la seal de reloj aumenta, en forma
apreciable, la longitud (ya de por s grande) de las lneas de reloj y el largo recorrido que
debe efectuar para llegar a los diversos biestables determina un retraso significativo entre
el reloj interno y el reloj externo que recibe la FPGA.
56 El ect rni ca Di gi t al
Para evitar los efectos del retardo de propagacin de la seal de reloj, las FPGAs
avanzadas incorporan mdulos de resincronizacin de flanco (bloques denominados
DLL, Delay Locked Loop) que permiten sincronizar el reloj interno con el externo, es
decir, retrasan el reloj interno de forma que sus flancos coinciden con los de la seal de
reloj externa. De esta forma, en cada flanco activo (en los momentos de transicin de una
unidad de tiempo a la siguiente) el flanco actual del reloj interno procede de un flanco
anterior del reloj de entrada pero coincide con el flanco actual de dicho reloj.
Memoria RAM y bloques incrustados
Al describir la celda lgica, se coment la posibilidad de configurar los registros
SRAM de la programacin LUT (biestables previos a los multiplexores que conforman
las funciones) como memorias RAM internas y rpidas; este tipo de memoria RAM,
utilizando celdas no empleadas para funciones booleanas, se denomina memoria RAM
distribuida.
Adems, las FPGAs avanzadas suelen incluir bloques especficos de memoria RAM
de varios Kbytes, a fin de disponer de mdulos de memoria ms amplios y compactos;
esta memoria es, tambin, muy rpida por ser interna al dispositivo. Tales bloques de
memoria suelen ser configurables; por ejemplo, un bloque de 8K x 8 bits puede utilizarse
como 16K x 4, 32 K x 2 64K x 1 bit y, tambin, como 4K x 16 2K x 32 bits.
Asimismo, las FPGAs ms grandes incorporan otros mdulos operativos de utilidad
incrustados (embedded) dentro del mismo circuito integrado; de esta forma, en el
interior de la FPGA se encuentran disponibles algunos bloques grandes de utilidad
general, sin necesidad de programarlos sobre mdulos lgicos (lo que dara lugar a un
mayor tamao del bloque distribuido resultante y menor velocidad de trabajo del
mismo). Por ejemplo, multiplicadores de 16 de 32 bits (ya citados en pginas
anteriores), microprocesadores de 8 de 16 bits, etc.
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
23 LENGUAJE DE DESCRIPCIN CIRCUITAL: V H D L
23.1. VHDL como lenguaje para describir, simular, validar y disear
23.2. VHDL bsico para disear circuitos combinacionales
23.3. Descripcin de circuitos secuenciales y de sistemas sncronos
23.4. Descripcin de grafos de estado
23.5. Otros recursos de VHDL
A la hora de describir un diseo microelectrnico (es decir, de realizar la descripcin de
un circuito digital, en formato informtico, para ser, posteriormente, compilado sobre un
dispositivo programable o sobre una librera de celdas de un ASIC), tal descripcin puede
hacerse en forma grfica (esquema circuital) o en forma de texto (programa).
El "Versatile Hardware Description Language" VHDL (cuyas siglas proceden de un
nombre an ms largo y restrictivo: Very high speed integrated circuit HDL) se desaroll
inicialmente como lenguaje de documentacin, de simulacin y de validacin (simulacin
en el contexto en que debe funcionar) de circuitos integrados digitales. Para documentar y
simular se requiere una descripcin precisa, carente de ambigedades y estructurada y tal
descripcin puede ser directamente utilizada para disear el circuito descrito (mediante su
compilacin sobre los recursos booleanos disponibles). Las dos pginas que siguen
(apartado 1 de este captulo) amplan la breve presentacin que del lenguaje VHDL se
hace en este prrafo y deben ser ledas como parte de esta introduccin.
Habida cuenta de que un circuito integrado no tiene finalidad propia, sino que forma
parte de un sistema ms amplio, cuyo funcionamiento controla o supervisa, uno de los
propsitos de VHDL era simular el circuito en el contexto del sistema de que forma parte;
de manera que no se limita a describir sistemas digitales sino que abarca, tambin,
cualquier otro tipo de sistema activo (elctrico, mecnico,...).
Es obvio que un tratado sobre VHDL requerira todas las pginas de este volumen y
muchas ms. Por ello, el contenido de este captulo se restringe a la parte de VHDL que se
utiliza habitualmente en el diseo digital. Su objetivo es ensear las bases de la descripcin
de circuitos digitales en VHDL a quienes desconozcan por completo este lenguaje.
Quizs la mejor forma de aprender un lenguaje sea utilizarlo y practicarlo. Por eso
este captulo, que es simplemente una presentacin parcial y utilitaria de VHDL, est
construido, fundamentalmente, con ejemplos de diseo; se apoya en mltiples descripciones
y diseos de subcircuitos y de pequeos sistemas digitales y prescinde, en gran medida, de
lo que pudiera ser una exposicin acadmica o descriptiva del propio lenguaje.
La misma organizacin del captulo est dirigida directamente al diseo digital y, as,
los diversos epgrafes de introduccin del lenguaje se refieren, sucesivamente, a la
descripcin de sistemas combinacionales (apartado 2), de sistemas secuenciales y sncronos
(apartado 3) y de grafos de estado (apartado 4) y a otros recursos avanzados de diseo
digital, aplicados tambin a ejemplos concretos (apartado 5).
58 El ect rni ca Di gi t al
23. 1. VHDL como l enguaj e para descri bi r, si mul ar, val i dar y di sear
En un principio, la captura de esquemas fue la forma habitual de diseo CAD
(apoyado y almacenado en un computador). Pero, hoy da, ha sido sustituida (casi por
completo) por su descripcin funcional en texto (programa que detalla el funcionamiento
de las diversas partes del circuito y la conexin entre ellas), utilizando para ello un
lenguaje de descripcin de hardware (HDL).
La forma textual presenta numerosas ventajas: suele requerir menor tiempo y
esfuerzo para comprender lo que el circuito hace (en el caso de sistemas complejos); es
independiente de la implementacin a bajo nivel (en puertas, bloques, biestables y
registros); es directamente trasladable a los diversos dispositivos programables y a las
diversas libreras de ASICs;... y, sobre todo, resulta mucho ms sencillo revisar e
introducir modificaciones en el texto descriptor que en el esquema grfico del mismo.
Actualmente, son dos los lenguajes de descripcin circuital que se han impuesto
como estndares para el diseo digital: VHDL y Verilog; y, de entre ellos, en el contexto
europeo predomina el VHDL (si bien Verilog resulta, en buena medida, ms cercano al
hardware y a los esquemas grficos que se utilizaban anteriormente).
El lenguaje de descripcin de sistemas digitales VHDL naci como herramienta de
documentacin y de comunicacin en relacin con los circuitos integrados digitales. Un
circuito integrado complejo, a lo largo del tiempo pasa por muchas manos (por muchas
mentes): quien lo define y quien lo utiliza no suele ser el mismo que quien lo disea;
quien repara o quien modifica los sistemas en que participa el circuito no suele ser el
propio diseador; e, incluso, quien lo ha diseado, al volver a su circuito cuando ha
transcurrido un cierto tiempo, difcilmente recordar los detalles de las diversas funciones
y recursos con los que lo ha configurado.
De ah la necesidad de un lenguaje que ofrezca una descripcin funcional precisa,
carente de ambigedades, estructurada y de fcil lectura e independiente de la
implementacin concreta a bajo nivel. Que quien lea esa descripcin sea capaz de
comprender, con poco esfuerzo y absoluta claridad, las funciones que hace el circuito y
cmo las hace; sin tener que descender al nivel booleano de puertas y biestables que, por
su mayor amplitud en componentes, resultara ms difcil de analizar.
Adems, una misma descripcin funcional puede configurarse circuitalmente de
formas muy variadas y tal configuracin depender de la librera de celdas estndar
disponibles (para el diseo de un ASIC) o, en su caso, del dispositivo programable en que
se inserte; en principio no es necesario conocer su configuracin a nivel booleano para
utilizar eficientemente un circuito digital.
Lo que s es necesario es disponer de una adecuada y detallada descripcin
funcional. La escritura es la herramienta de las ideas; el vehculo haca la claridad, la
precisin, la estructura (disposicin, orden y enlace de las partes que configuran el todo)
y la comunicacin (transmisin de las ideas en el espacio y en el tiempo); la escritura
es el mejor medio para poder trasladar las ideas a otras personas (comunicacin espacial)
y poder contrastarlas y debatirlas y, tambin, para recordar las ideas (comunicacin
temporal) y poder recuperarlas y revisarlas pasado el tiempo.
23. Lenguaj e de descri pci n ci rcui t al : V H D L 59
La documentacin es un requisito inexcusable para considerar que un diseo se ha
completado y hecho efectivo y, cuando el diseo se refiere a un sistema complejo,
requiere un lenguaje preciso y estructurado (estructurado tanto en su forma de expresar el
diseo como en el sentido de que confiera estructura al propio diseo).
Por otra parte, antes de construir un diseo complejo, con el coste econmico y de
tiempo que ello supone, conviene saber si el diseo es correcto; para ello es de gran
ayuda efectuar una simulacin virtual de su funcionamiento. Un lenguaje que describa
con precisin el comportamiento de un sistema servir, sin duda, para simular su
comportamiento: bastar con una aplicacin informtica que ejecute la descripcin del
sistema en relacin con el transcurso del tiempo.
An ms, un circuito integrado no tiene sentido funcional por s mismo, sino que
formar parte de un sistema ms amplio; generalmente ser una pieza de control de un
sistema con partes elctricas y mecnicas. El objetivo final no es que el circuito
integrado funcione (individualmente) bien, sino que el sistema global acte
correctamente: en definitiva, el objetivo que se persigue no es el funcionamiento del
propio circuito integrado, sino el del sistema de que forma parte.
De manera que el propsito de un lenguaje eficiente se refiere a la capacidad de
describir y simular, adems de los circuitos integrados digitales, los mecanismos y
sistemas controlados por ellos. Es decir, validar al circuito integrado en el entorno
funcional para el que ha sido diseado.
Estamos, pues, planteando un objetivo cada vez ms ambicioso: de la
documentacin se pasa a la simulacin y se pretende, tambin, la validacin de los
circuitos integrados complejos. Con esa intencionalidad ha sido desarrollado el Very high
speed integrated circuit Hardware Description Language, que conocemos como VHDL,
siglas que podemos referir mejor a Versatile Hardware Description Language (pues la
referencia a la alta velocidad de los circuitos es superflua; de igual forma puede ser
utilizado para documentar, describir, simular y validar circuitos integrados lentos).
Un lenguaje con capacidad para describir con precisin y simular con eficiencia
puede ser fcilmente utilizado para disear: una vez descrito un sistema digital, basta
compilar la descripcin sobre una librera de recursos.
Se entiende por compilacin el paso de la descripcin funcional a la configuracin
circuital (del algoritmo al circuito), utilizando como componentes de dicho circuito los
contenidos en una librera de recursos:
- en el caso de CPLDs dicha librera se refiere a las funciones booleanas en forma de
suma de productos (configuracin PAL) y biestables tipo D;
- para las FPGAs los recursos son las funciones booleanas, con un limitado nmero de
variables (dividiendo, en su caso, las funciones ms amplias), expresadas en forma
de tabla de verdad (configuracin LUT) y los biestables D;
- y en el diseo de ASICs, la librera de celdas bsicas prediseadas, propia del diseo
con librera (standard cell).
60 El ect rni ca Di gi t al
El compilador (la herramienta informtica de compilacin) traslada la descripcin
funcional al circuito que la materializa, conformado por componentes disponibles en la
librera de recursos sobre la que se compila.
VHDL es una excelente herramienta de documentacin, simulacin, validacin y
diseo de sistemas digitales, estandarizada y en permanente proceso de actualizacin bajo
los auspicios del IEEE (Institute of Electrical and Electronics Engineers). El nico
lenguaje alternativo que goza, tambin, de amplia aceptacin es Verilog, pero su difusin
en el contexto europeo es mucho menor (aunque, en buena medida, Verilog es un
lenguaje ms directo y ms cercano al propio circuito digital).
23. 2. VHDL bsi co para di sear ci rcui t os combi naci onal es
El lenguaje VHDL no se refiere solamente a sistemas digitales sino que est abierto
a la descripcin de sistemas de cualquier tipo; por otra parte, VHDL es un lenguaje
tremendamente verstil y potente. Su descripcin requiere todo un amplio volumen y su
estudio precisa de, al menos, un curso especfico dedicado solamente a este lenguaje.
Interesa aqu la utilizacin de VHDL para disear sistemas digitales, es decir,
aquella parte del lenguaje que es compilable para dar como resultado un circuito
digital. A continuacin, se expone un breve resumen, a la vez parcial y til, como primera
aproximacin a este lenguaje y, a fin de ser lo ms directa y prctica posible, esta
introduccin se realiza a travs de ejemplos concretos de descripcin circuital.
Nota: Todos los ejemplos de cdigo VHDL (incluso las descripciones parciales) que vienen a
continuacin han sido comprobados en cuanto a su compilacin (con MAX+plus II de ALTERA).
23.2.1. Primeras nociones
VHDL no distingue entre MAYSCULAS y minsculas (salvo unas pocas
excepciones referidas a valores de las seales). Pueden incluirse comentarios y, para
identificarlos, se inician con el smbolo repetido "--" que indican al compilador que
ignore todo lo que sigue hasta final de lnea. Cada mdulo descriptivo y cada
asignacin se cierran con el smbolo ";".
Los elementos bsicos de la descripcin digital son las seales (signal); para ellas
suele utilizarse el tipo std_logic (standard logic) que admite los siguientes nueve valores:
'0' -- cero '1' -- uno valores booleanos tpicos
'X' -- desconocido no se conoce el valor
'Z' -- alta impedancia propio de tri-estado
'U' -- sin inicializar biestables en su situacin previa
'-' -- no importa (dont care) indiferente (para simplificacin)
'L' -- 0 dbil 'H', -- 1 dbil 'W', -- desconocido dbil
Los valores de una seal se expresan siempre entre comillas simples: '0', '1' y los
valores X y L no admiten la minscula (x , l no son vlidas).
23. Lenguaj e de descri pci n ci rcui t al : V H D L 61
Los tres primeros valores (0, 1, X) son de tipo fuerte, si se encuentran dos de ellos
aplicados sobre un nudo el resultado es X (desconocido). Los valores dbiles
corresponden a determinadas situaciones circuitales que, si confluyen con algn valor
fuerte, dan como resultado dicho valor fuerte; en cambio, si se encuentran dos valores
dbiles sobre un nudo el resultado es W (desconocido dbil).
Un conjunto de seales constituye un vector, std_logic_vector, que puede ser
declarado en forma ascendente std_logic_vector(0 to 7) o descendente std_logic_vector(7
downto 0), siendo ms frecuente esta segunda declaracin porque corresponde a la forma
tpica en la que el dgito ms significativo es el de mayor subndice; el conjunto de
valores que adopta un vector se expresa entre comillas dobles: por ejemplo, "11010001".
Para conjuntos de seales (vectores), se utiliza tambin el tipo integer (entero) que
debe ser declarado para un rango determinado: integer range 0 to 15 (seal de 4 bits).
Los tipos de seales, std_logic y std_logic_vector, aunque son los ms habituales en
diseo digital (ya que describen bien las seales electrnicas en todas sus posibilidades),
no se encuentran definidos en el propio VHDL bsico (estn definidos los tipos bit y
bit_vector, que admiten slo los dos valores booleanos 0 y 1). Los tipos standard logic
han sido introducidos en la normalizacin hecha por IEEE y requieren la declaracin de
la librera (y de los paquetes) que los definen al principio de la descripcin:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
(con el paquete ieee.std_logic_unsigned las operaciones se realizan en binario natural; si
se desea efectuarlas en complemento a 2 debe utilizarse el paquete ieee.std_logic_signed)
En estos paquetes se dispone de dos funciones muy tiles:
CONV_INTEGER(a) que convierte el std_logic_vector a en integer
CONV_STD_LOGIC_VECTOR(b,n) que convierte el integer b en vector de longitud n.
Las operaciones bsicas entre seales son:
asignacin: <=
operaciones booleanas and or not xor
comparaciones = /= > < >= <=
aritmticas + - *
concatenacin &
(la concatenacin se refiere a poner seales o vectores juntos, formando un vector ms
largo, cuyo nmero de bits es la suma de los nmeros de ambas seales).
62 El ect rni ca Di gi t al
La base de la descripcin VHDL es la asignacin de valores a una seal, la cual
puede hacerse directamente o por medio de operaciones entre seales.
Ejemplos de asignaciones directas:
signal a, b, c, Y: std_logic_vector(3 downto 0);
signal m, n: integer range 0 to 15; -- 4 bits
y <= "1001";
Y <= (3 => '1', 0 => '1', others => '0'); -- equivale a la anterior ("1001")
m <= 9;
Y <= ((not a) and b) or (a and not b); -- equivale a y <= a xor b;
y <= a + b; -- suma aritmtica
El lenguaje VHDL es muy disciplinado: una seal de un tipo no admite asignacin
de valores o de seales de otro tipo.
Ejemplos de asignaciones incorrectas:
y <= 9; -- y no es de tipo integer
m <= "1001"; -- m no es del tipo std_logic
Y <= m; -- tipos de seal diferentes
M <= a; -- tipos de seal diferentes
Y <= "001"; -- faltan componentes
m <= 18; -- fuera de rango
y <= '1001'; -- faltan comillas dobles
M <= 4 -- falta ;
23.2.2. Estructura de una descripcin: libreras, entidades y arquitecturas
En VHDL se describe por un lado la caja del circuito con sus entradas y salidas, o
sea, los terminales de conexin hacia el exterior, y eso se hace en un mdulo denominado
entity, y en otro mdulo posterior, denominado architecture, se describe lo que hace el
circuito, es decir, su funcionamiento interno. Adems, es preciso declarar previamente las
libreras necesarias para compilar el circuito (sobre libreras se trata en el apartado
23.5.6).
En consecuencia, la descripcin VHDL tiene la siguiente estructura:
declaracin de libreras
mdulo de terminales
entity nombre_de_la_entidad is
port(
declaracin de entradas y salidas
);
end nombre_de_la_entidad ;
23. Lenguaj e de descri pci n ci rcui t al : V H D L 63
mdulo de funciones
architecture nombre_de_la_arquitectura of nombre_de_la_entidad is
signal declaracin de seales internas
begin
descripcin del funcionamiento (asignaciones)
end nombre_de_la_arquitectura ;
Ejemplo: consideremos un sencillo circuito integrado, como puede ser el 7400 que
contiene 4 puertas Nand.
Podramos representar grficamente la entidad y la arquitectura de ese circuito en la
siguiente forma:
entity cuatro_puertas is
1 2 3 4 5 6 7
14 13 12 11 10 9 8
1a 1b 1Y 2a 2b 2Y GND
Vcc 3a 3b 3Y 4a 4b 4Y
architecture puertas_nand of cuatro_puertas is
+5V
1 2 3 4 5 6 7
14 13 12 11 10 9 8
y su descripcin en texto VHDL:
library ieee;
use ieee.std_logic_1164.all;
entity cuatro_puertas is
port( a1,b1,a2,b2,a3,b3,a4,b4 :in std_logic;
Y1,Y2,Y3,Y4 :out std_logic);
end cuatro_puertas;
architecture puertas_nand of cuatro_puertas is
begin Y1 <= a1 nand b1;
Y2 <= a2 nand b2;
Y3 <= a3 nand b3;
Y4 <= a4 nand b4;
end puertas_nand;
64 El ect rni ca Di gi t al
Otra forma, ms breve, de describir este mismo circuito es la siguiente:
entity cuatro_puertas is
port( a,b :in std_logic_vector(1 to 4);
Y :out std_logic_vector(1 to 4));
end cuatro_puertas;
architecture puertas_nand of cuatro_puertas is
begin Y <= a and b;
end puertas_nand;
En la entidad (entity) se describen los terminales del circuito dentro del epgrafe de
puertos (ports); hay cuatro tipos de puertos: entrada (in), salida (out), bidireccionales
(inout) y adaptados (buffer). Los puertos de salida no se pueden leer dentro del
circuito, es decir, no pueden figurar como entradas en ninguna de las asignaciones de su
arquitectura; en cambio, los puertos adaptados son salidas que s se pueden leer
dentro del circuito (sin embargo, suele utilizarse poco este tipo de puertos).
23.2.3. Asignaciones concurrentes
Son asignaciones concurrentes aquellas que se ejecutan siempre y directamente
sobre una seal; de forma que una seal no puede recibir dos asignaciones concurrentes
(dara lugar a error al intentar imponer dos valores a la misma seal).
En lo que sigue, los valores se representan genricamente con el grafismo """"" y las
condiciones (principalmente, comparaciones) con ........ ; denominaremos expresin a
cualquier conjunto de operaciones entre seales, entre valores y entre ambos y
utilizaremos ------- para representarlas; una expresin puede ser un valor, una seal, una
operacin (o una serie de operaciones) entre seales o entre valores o entre ambos.
Las asignaciones concurrentes pueden ser
fijas: seal <= -------;
es decir, seal <= valor; seal <= seal;
seal <= operaciones entre seales, entre valores y entre ambos;
condicionales: seal <= ------- when ........ else
------- when ........ else
------- when ........ else
-------;
mltiples: with ------- select
seal <= ------- when """"",
------- when """"",
------- when """"",
------- when """"",
------- when others;
23. Lenguaj e de descri pci n ci rcui t al : V H D L 65
Ejemplos de asignaciones concurrentes:
Descripcin de un multiplexor de cuatro lneas de
entrada
signal control : integer range 0 to 3;
y
control
L0
L1
L2
L3
versin 1 versin 2
y <= L0 when control = 0 else with control select
L1 when control = 1 else y <= L0 when 0,
L2 when control = 2 else L1 when 1,
L3; L2 when 2,
L3 when others;
Descripcin de un decodificador de ocho lneas
entrada <= c & b & a;
with entrada select
salida <= "10000000" when "000",
"01000000" when "001",
"00100000" when "010",
"00010000" when "011",
"00001000" when "100",
"00000100" when "101",
"00000010" when "110",
"00000001" when others;
s
a
l
i
d
a
L0
L1
L2
L3
L4
L5
L6
L7
c
b
a
Descripcin de un codificador de prioridad de ocho lneas
salida <= "1001" when L9 = '1' else
"1000" when L8 = '1' else
"0111" when L7 = '1' else
"0110" when L6 = '1' else
"0101" when L5 = '1' else
"0100" when L4 = '1' else
"0011" when L3 = '1' else
"0010" when L2 = '1' else
"0001" when L1 = '1' else "0000";
L9
s
a
l
i
d
a
L8
L7
L6
L5
L4
L3
L2
L1
Comparacin de nmeros: Suma de dos nmeros:
igual <= '1' when A = B else '0'; R <= A + B;
mayor <= '1' when (A > B) else '0';
menor <= '1' when (A < B) else '0';
Tambin los procesos (process), que se describen en el prximo subapartado, son
concurrentes (cada uno de ellos considerado globalmente es una asignacin concurrente)
y no puede asignarse valores a una seal en dos procesos diferentes.
66 El ect rni ca Di gi t al
23.2.4. Asignaciones secuenciales
Las asignaciones secuenciales se encuentran dentro de un mdulo denominado
proceso (process) y no se ejecutan hasta que se ha terminado de leer todo el mdulo.
Dentro de un proceso puede haber dos o ms asignaciones referidas a la misma seal y es
vlida la ltima de ellas; en el caso de asignaciones condicionales (que ser el caso
general), es vlida la ultima de ellas que resulta efectiva (es decir, cuyas condiciones se
cumplen). Las asignaciones secuenciales no corren peligro de imponer doble valor a una
misma seal, pues son consideradas en el orden en que estn escrita (igual que un
programa de computador) y solamente se aplica la ltima efectiva de ellas.
Los procesos se declaran y se concluyen de la siguiente forma:
nombre_del proceso (opcional): process (lista de sensibilidad)
begin
asignaciones
end process;
La lista de sensibilidad se refiere a las seales que despiertan el proceso (que lo
hacen operativo) y, en el caso de descripcin circuital, debe contener todas las seales
que actan como entradas sobre el proceso. En principio, los compiladores no tienen en
cuenta la lista de sensibilidad pero suelen avisar si sta es incompleta.
Cada proceso, considerado globalmente, es una asignacin concurrente (o, si asigna
valor a varias seales, un conjunto de asignaciones concurrentes sobre ellas): no se puede
efectuar asignacin a una misma seal en dos procesos diferentes.
Las asignaciones secuenciales pueden ser fijas, condicionales o mltiples. Las fijas
utilizan la misma sintaxis que las asignaciones concurrentes fijas, pero las condicionales
y las mltiples utilizan sintaxis diferentes:
condicionales:
if ........ then seal <= -------; seal <= -------; seal <= -------;
elsif ........ then seal <= -------; seal <= -------; seal <= -------;
elsif ........ then seal <= -------; seal <= -------; seal <= -------;
else seal <= -------; seal <= -------; seal <= -------;
end if;
mltiples:
case ........ is
when """"" => seal <= -------; seal <= -------; seal <= -------;
when """"" => seal <= -------; seal <= -------; seal <= -------;
when """"" => seal <= -------; seal <= -------; seal <= -------;
when others => seal <= -------; seal <= -------; seal <= -------;
end case;
Dentro de un proceso no pueden utilizarse asignaciones con when o con with y, de
igual forma, las estructuras if y case no pueden utilizarse fuera de procesos.
23. Lenguaj e de descri pci n ci rcui t al : V H D L 67
Ejemplos de asignaciones secuenciales:
Descripcin de un multiplexor de cuatro lneas de entrada
process (control,L3,L2,L1,L0)
begin
versin 1 versin 2
if control = 0 then y <= L0; end if; case control is
if control = 1 then y <= L1; end if; when 0 => y <= L0;
if control = 2 then y <= L2; end if; when 1 => y <= L1;
if control = 3 then y <= L3; end if; when 2 => y <= L2;
end process; when others => y <= L3;
end case;
end process;
Descripcin de un codificador de prioridad de nueve lneas
process (L9,L8,L7,L6,L5,L4,L3,L2,L1)
begin
if L9 = '1' then salida <= "1001";
elsif L8 = '1' then salida <= "1000";
elsif L7 = '1' then salida <= "0111";
elsif L6 = '1' then salida <= "0110";
elsif L5 = '1' then salida <= "0101";
elsif L4 = '1' then salida <= "0100";
elsif L3 = '1' then salida <= "0011";
elsif L2 = '1' then salida <= "0010";
elsif L1 = '1' then salida <= "0001";
else salida <= "0000";
end if;
end process;
L9
s
a
l
i
d
a
L8
L7
L6
L5
L4
L3
L2
L1
Descripcin de un demultiplexor de ocho lneas.
control : integer range 0 to 7
process (control,entrada)
begin
-- asignaciones por defecto
L0 <= '0'; L1 <= '0'; L2 <= '0'; L3 <= '0';
L4 <= '0'; L5 <= '0'; L6 <= '0'; L7 <= '0';
68 El ect rni ca Di gi t al
case control is
when 0 => L0 <= entrada;
when 1 => L1 <= entrada;
when 2 => L2 <= entrada;
when 3 => L3 <= entrada;
when 4 => L4 <= entrada;
when 5 => L5 <= entrada;
when 6 => L6 <= entrada;
when 7 => L7 <= entrada;
end case;
end process;
L0
entrada
control
L1
L2
L3
L4
L5
L6
L7
23.2.5. Conversor BCD a 7 segmentos de nodo comn
g f e d c b a
D C B A
RBO RBI
LT
El conversor recibe las 4 entradas BCD y proporciona las 7 salidas (g f e d c b a)
correspondientes a la activacin de los 7 segmentos (que se activarn con valor 0, ya que
son de nodo comn); adems, dispone de una entrada LT para test de lmparas y otra
entrada RBI, con su correspondiente salida RBO, para apagado de ceros no significativos.
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;
entity BCD_7SEG is
port ( D,C,B,A,LT,RBI : in std_logic;
SALIDA : out std_logic_vector(1 to 7); -- a b c d e f g
RBO : out std_logic );
end BCD_7SEG;
-- versin 1: con asignaciones concurrentes
architecture CODIFICADOR of BCD_7SEG is
signal bcd: std_logic_vector(3 downto 0);
signal ENTRADA: integer range 0 to 9;
signal AUX: std_logic_vector(1 to 7); -- seal auxiliar;
begin
bcd <= D & C & B & A; ENTRADA <= conv_integer (bcd);
RBO <= '1' when (RBI = '1') and (entrada = 0) else '0';
SALIDA <= "0000000" when LT = '1' else
"1111111" when (RBI = '1') and (entrada = 0) else AUX;
23. Lenguaj e de descri pci n ci rcui t al : V H D L 69
with ENTRADA select -- ando comn: activo el 0
AUX <= "0000001" when 0, "1001111" when 1,
"0010010" when 2, "0000110" when 3,
"1001100" when 4, "0100100" when 5,
"0100000" when 6, "0001111" when 7,
"0000000" when 8, "0000100" when 9,
"1111111" when others;
end CODIFICADOR;
versn 2: con asignaciones secuenciales
architecture CODIFICADOR of BCD_7SEG is
signal bcd: std_logic_vector(3 DOWNTO 0);
signal ENTRADA: integer range 0 to 9;
begin
bcd <= D & C & B & A; entrada <= conv_integer (bcd);
process(ENTRADA,LT,RBI)
begin
RBO <= '0';
if ( LT = '1' ) then SALIDA <= "0000000" ;
elsif ((RBI = '1') and (ENTRADA = 0)) then SALIDA <= "1111111"; RBO <= '1';
else case ENTRADA is
when 0 => SALIDA <="0000001";
when 1 => SALIDA <="1001111";
when 2 => SALIDA <="0010010";
when 3 => SALIDA <="0000110";
when 4 => SALIDA <="1001100";
when 5 => SALIDA <="0100100";
when 6 => SALIDA <="0100000";
when 7 => SALIDA <="0001111";
when 8 => SALIDA <="0000000";
when 9 => SALIDA <="0000100";
when others => SALIDA <="1111111";
end case;
end if;
end process;
end CODIFICADOR;
70 El ect rni ca Di gi t al
23.2.6. Decodificador de mapa de memoria
Se trata de situar, en un mapa de memoria cuyo bus de direcciones tiene 16 lneas,
un circuito integrado RAM de 8 K al comienzo del mapa, de 0000(H a 1FFF(H, un
adaptador de puertos PIA que tiene 4 registros a partir de la posicin A000(H, y dos
circuitos integrados ROM al final de memoria, uno de 2K de F000(H a F7FF(H y el otro
de 4K de F800(H a FFFF(H; el decodificador de direcciones utiliza, para ello, solamente
las 6 lneas superiores del bus de direcciones.
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;
entity MAPA is
port ( A15, A14, A13, A12, A11, A10 : in std_logic;
RAM, IO,ROM1,ROM2 : out std_logic); end MAPA;
architecture HABILITACIONES of MAPA is
signal DIR :std_logic_vector (15 downto 0);
-- se introduce la seal auxiliar DIR para referir las direcciones a las 16 lneas
-- del bus de direcciones (y por tanto 16 bits del mapa de memoria)
begin
DIR <= A15 & A14 & A13 & A12 & A11 & A10 & "0000000000";
RAM <= '1' when DIR <= 16#1FFF# else '0';
-- la notacin 16#..# indica que el nmero es hexadecimal
IO <= '1' when DIR = 16#A000#;
ROM1 <= '1' when (DIR >= 16#F000#) and (DIR <= 16#F7FF#) else '0';
ROM2 <= '1' when DIR >= 16#F800# else '0';
end HABILITACIONES;
23.2.7. Comentarios
Las asignaciones condicionales de tipo concurrente han de ser completas: debe
especificarse qu pasa en caso de que no se cumplan las condiciones; es decir, deben
llevar else en el caso de when y deben llevar when others en el caso de with.
La asignacin mltiple case tambin debe ser completa; debe llevar when others =>.
Tambin la asignacin con if debe ser completa (llevar else o, alternativamente, haber
dado valores por defecto a las seales) si el circuito es combinacional, pues en caso de no
serlo introduce biestables para conservar el valor de las seales (segn se ver en el
prximo apartado: los procesos producen memoria implcita).
En el caso de if o de case, dentro de una misma condicin, se pueden hacer
asignaciones a varias seales: seal <= -------; seal <= -------; seal <= -------; por eso
es necesario acabar cada asignacin con ";" y finalizar el conjunto de condiciones con
end if o end case.
23. Lenguaj e de descri pci n ci rcui t al : V H D L 71
En una asignacin mltiple (with o case), para referirse a varios casos se utiliza el
smbolo "|" para separarlos (no es correcto utilizar "or", ya que, en tal caso, se aplicar la
operacin booleana "o"); por ejemplo: case entrada is when 1 | 3 | 6 => y <= '1'; ...
with entrada select y <= 1 when 1 | 3 | 6, ...
23. 3. Descri pci n de ci rcui t os secuenci al es y si st emas s ncronos
23.3.1. Descripcin de biestables
En los biestables, la salida acta tambin como entrada (realimentacin) y, habida
cuenta que las salidas VHDL (port out) no pueden ser leidas desde dentro del circuito
(es decir, no pueden actuar como entradas de ninguna asignacin), es necesario utilizar
para la realimentacin una seal interior, del mismo valor que la salida.
.......
port( q :out std_logic;
.......
architecture nombre_de_la_arquitectura of nombre_de_la_entidad is
signal q_interna: std_logic;
begin
q <= q_interna;
Por otra parte, los procesos tienen memoria implcita: si una seal recibe una
asignacin condicional dentro de un proceso y el conjunto de asignaciones no es
completo (es decir, existe alguna condicin en que la asignacin a dicha seal no est
especificada), el proceso asigna por defecto la conservacin del valor de dicha seal.
Es como si, al comienzo del proceso existiera la asignacin seal <= seal;, referida, por
defecto, a cada una de las seales que reciben alguna asignacin dentro del proceso.
Ejemplo: process(a,b)
begin
if a = '1' then p <= b; end if;
end process;
En este caso, cuando a = 1, p adopta el valor de b y, cuando a = 0, como no se
especifica nada dentro del proceso, p conserva el valor que tena anteriormente; es
equivalente a cualquiera de las dos descripciones siguientes:
process(a,b) process(a,b)
begin begin
if a = '1' then p <= b; p <= p;
else p <= p; if a = '1' then p <= b; end if;
end if; end if;
end process; end process;
72 El ect rni ca Di gi t al
Diversas formas de describir un biestable RS
q_interna <= '0' when R = '1' else '1' when S = '1' else q_interna;
process (R,S)
begin
if S = '1' then q_interna <= '1'; end if;
if R = '1' then q_interna <= '0'; end if;
end process; -- borrado prioritario
process (R,S)
begin
if R = '1' then q_interna <= '0'; elsif S = '1' then q_interna <= '1'; end if;
end process; -- tambin borrado prioritario
(tngase en cuenta que un proceso conserva los valores: por ello no es necesario aadir
en los dos procesos anteriores else q_interna <= q_interna ;)
Diversas formas de describir un biestable D
q_interna <= D when E = '1' else q_interna;
with E select q_interna <= D when '1', q_interna when others;
process (D,E)
begin if E = '1' then q_interna <= D; end if; end process;
23.3.2. Circuitos sncronos: descripcin del reloj
La descripcin de la seal de reloj CK ha de hacerse dentro de un proceso, de las
siguientes formas:
- si todo el proceso es sncrono
process sin lista de sensibilidad
begin
wait on CK until CK = '1'; -- flanco ascendente
- si hay una parte asncrona (por ejemplo, un borrado asncrono con R)
process(R,CK)
begin
if R = '1' then
elsif CK'event and CK = '1' then -- flanco ascendente
o, tambin, elsif rising-edge(CK) then -- flanco ascendente
23. Lenguaj e de descri pci n ci rcui t al : V H D L 73
Biestable D con habilitacin y con borrado asncrono
process (R,D,E,CK)
begin
if R = '1' then q_interna <= '0';
elsif CK'event and CK = '1' then
if E = '1' then q_interna <= D; end if;
end if;
end process;
Biestable JK con marcado y borrado asncronos
process (R,S,J,K,CK)
begin
if R = '1' then q_interna <= '0';
elsif S = '1' then q_interna <= '1';
elsif CK'event and CK = '1' then
if J = '1' and K = '1' then q_interna <= not q_interna;
elsif J = '1' then q_interna <= '1';
elsif K = '1' then q_interna <= '0';
end if;
end if;
end process;
Registro de desplazamiento bidireccional de 8 bit con carga paralela sncrona
Se trata de disear un registro de desplazamiento con las cuatro posibilidades
funcionales siguientes, controladas por dos entradas de seleccin (C2 y C1):
- 00: retencin del valor anterior
- 01: desplazamiento hacia la izquierda (entrada SI)
- 10: desplazamiento hacia la derecha (entrada SD)
- 11: carga paralelo (entradas D)
Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0
D7 D6 D5 D4 D3 D2 D1 D0 SI SD
C2
C1
CK
RS
74 El ect rni ca Di gi t al
library ieee; use ieee.std_logic_1164.all;
entity REGDESP is
port ( CK,RS,C1,C2,SI,SD : in std_logic;
D : in std_logic_vector(7 downto 0);
Q : out std_logic_vector(7 downto 0) );
end REGDESP;
architecture SINCRONA of REGDESP is
signal Q_interior :std_logic_vector(7 downto 0);
signal control :std_logic_vector(2 downto 1);
begin
Q <= Q_interior; control <= C2 & C1;
REGISTRO: process
-- un proceso puede llevar una etiqueta o nombre identificativo delante del mismo
begin
wait until CK = '1';
if ( RS = '1' ) then Q_interior <= (others => '0');
else case control is
when "01" => Q_interior <= Q_interior(6 downto 0) & SI;
when "10" => Q_interior <= SD & Q_interior(7 downto 1);
when "11" => Q_interior <= D;
when others =>
end case;
end if;
end process;
end SINCRONA;
Obsrvese que no es necesario aadir Q_interior <= Q_interior; en when others
ya que un proceso tiene memoria implcita (conserva los valores).
23.3.3. Contador dcada
Contador mdulo 10, bidireccional, con habilitacin
y con borrado y carga paralela sncronos
Q3 Q2 Q1 Q0
D3 D2 D1 D0
LOAD
E
UP_DOWN
CK
RS
MAX_MIN
23. Lenguaj e de descri pci n ci rcui t al : V H D L 75
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;
entity DECADA is
port ( CK,RS,E,UP_DOWN,LOAD : in std_logic;
D : in std_logic_vector(3 downto 0);
MAX_MIN : out std_logic;
Q : out std_logic_vector(3 downto 0));
end DECADA;
architecture CONTADOR of DECADA is
signal Q_interior :std_logic_vector(3 downto 0);
begin
-- COMBINACIONAL:
Q <= Q_interior;
MAX_MIN <= '1' when ((UP_DOWN = '1') and (Q_interior = "1011"))
or ((UP_DOWN = '0') and (Q_interior = "0000")) else '0';
SINCRONO: process
begin
wait until CK ='1';
if ( RS = '1' ) then Q_interior <= "0000";
elsif ( LOAD = '1' ) then Q_interior <= D;
elsif ( E = '1' ) then
if ( UP_DOWN = '1') then
if Q_interior = "1001" then Q_interior <= "0000";
else Q_interior <= Q_interior + 1; end if;
else if Q_interior <= "0000" then Q_interior <= "1001";
else Q_interior <= Q_interior - 1; end if;
end if;
end if;
end process;
end CONTADOR;
El mismo contador mdulo 10, bidireccional, con habilitacin
pero con borrado y carga paralela asncronos
Basta cambiar, en la descripcin anterior, el proceso SINCRONO por el
siguiente, denominado ASINCRONO
ASINCRONO: process(CK,RS,Q_interior,LOAD,E,UP_DOWN)
begin
if ( RS = '1' ) then Q_interior <= "0000";
elsif ( LOAD = '1' ) then Q_interior <= D;
elsif (CK'event and CK='1') then
if ( E = '1' ) then
76 El ect rni ca Di gi t al
if ( UP_DOWN = '1') then
if Q_interior = "1001" then Q_interior <= "0000";
else Q_interior <= Q_interior + 1; end if;
else if Q_interior <= "0000" then Q_interior <= "1001";
else Q_interior <= Q_interior - 1; end if;
end if;
end if; end if; end process;
23.3.4. Temporizaciones sucesivas: semforo con demanda de paso para los peatones
Sea un cruce de peatones que cuenta con un semforo para detener a los automviles,
con un pulsador P que debe ser activado por los peatones cuando desean cruzar; la
activacin de P da lugar al siguiente ciclo: 10" en amarillo para detener a los automviles,
20" en rojo (verde para peatones), 10" en amarillo para peatones, pasando finalmente al
estado de circulacin de automviles (rojo para peatones); cuando en dicho estado de
circulacin se recibe una nueva demanda de paso, es atendida pero asegurando siempre
que el intervalo mnimo de paso de automviles sea de 40".
Se utiliza un biestable RS para recoger la demanda de paso por parte de los peatones;
dicho biestable se borra en el intervalo de mbar para peatones (que es cuando se
completa el paso de peatones, en respuesta a una demanda anterior). El reloj del sistema
es de 1 Hz (1 segundo de perodo).
El ciclo comienza por el servicio a la demanda de paso (mbar para automviles) y
dura un total de 80"; mientras hay solicitudes de paso se ejecuta normalmente el ciclo
completo, pero, si no hay demanda, el ciclo se detiene al final del mismo (cuarto intervalo
de 10" de paso de automviles) y permanece en dicha situacin (paso de automviles)
hasta que se produce una peticin de paso por parte de peatones.
10"
mbar automviles
20"
verde peatones
10"
mbar peatones
40"
verde automviles
si hay demanda de paso
000 001 y 010
011
100, 101 , 110 y 111
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity PEATONES is
port ( CK, RS,DEMANDA : in std_logic;
AMBAR,ROJA,VERDE,PAMBAR,PROJA ,PVERDE : out std_logic);
end PEATONES;
23. Lenguaj e de descri pci n ci rcui t al : V H D L 77
architecture TEMPORIZADOR of PEATONES is
signal contador_1 : std_logic_vector(3 downto 0);
signal contador_2 : std_logic_vector(2 downto 0);
signal activo : std_logic;
begin
-- biestable para guardar la solicitud de paso
SOLICITUD: process(activo, RS, contador_2, DEMANDA)
begin
if RS = '1' or contador_2 = "011" then activo <= '0';
elsif DEMANDA = '1' then activo <= '1';
end if;
end process;
TEMPORIZACION: process
-- el contador_1 divide por 10: pasa del reloj de 1" a 10''
begin
wait until CK = '1';
if RS = '1' then contador_2 <= "000"; contador_1 <= "0000";
elsif contador_1 = "1001" then -- cada 10"
if contador_2 = "111" then -- fin de ciclo
if activo ='1' then contador_2 <= "000";
contador_1 <= "0000"; end if;
else contador_2 <= contador_2 + 1;
contador_1 <= "0000";
end if;
else contador_1 <= contador_1 + 1;
end if;
end process;
SALIDAS: process(contador_2)
begin
VERDE <= '0'; AMBAR <= '0'; ROJA <= '0';
PVERDE <= '0'; PAMBAR <= '0'; PROJA <= '0';
case contador_2 is when "000" => AMBAR <= '1'; PROJA <= '1';
when "001" => ROJA <= '1'; PVERDE <= '1';
when "010" => ROJA <= '1'; PVERDE <= '1';
when "011" => ROJA <= '1'; PAMBAR <= '1';
when others => VERDE <= '1'; PROJA <= '1';
-- paso de automviles :others contador_2 de 100 a 111: 40''
end case;
end process;
end TEMPORIZADOR;
78 El ect rni ca Di gi t al
23. 4. Descri pci n de grafos de est ados
La evolucin del estado de un sistema secuencial se describe muy bien con la
asignacin mltiple case para referirse a cada uno de los estados y, dentro de ella,
utilizando adecuadamente la asignacin condicional if para las transiciones. Existen
diversas posibilidades para asignar nombres y cdigos binarios a los estados; si se
prefiere puede dejarse al compilador la tarea de codificar los estados. A continuacin se
detallan las descripciones VHDL de varios sistemas secuenciales, a partir de sus grafos
de estados.
23.4.1. Autmata de Moore: semforo para cruce de una va de tren bidireccional con
un camino rural
Se trata de un semforo de aviso de paso de tren en un cruce de va nica
bidireccional con un camino; la va posee, a una distancia adecuadamente grande, sendos
detectores de paso de tren a y b; los trenes circulan por ella en ambas direcciones y se
desea que el semforo seale presencia de tren desde que ste alcanza el primer sensor en
su direccin de marcha hasta que pasa por el segundo sensor tras abandonar el cruce.
a
b
b.a
a
reposo
tren
entrando
a . b
tren
entrando
tren
alejndose
00 10 01
11
library ieee;
use ieee.std_logic_1164.all;
entity SEMAFORO is
port ( CK,RS,A,B : in std_logic;
SEMF : out std_logic);
end SEMAFORO;
architecture GRAFO of SEMAFORO is
-- definicin de los estados
subtype mis_estados is std_logic_vector(1 downto 0);
constant reposo : mis_estados :="00";
constant entra_por_a : mis_estados :="01";
constant entra_por_b : mis_estados :="10";
constant saliendo : mis_estados :="11";
signal estado : mis_estados;
begin
23. Lenguaj e de descri pci n ci rcui t al : V H D L 79
-- evolucin del estado:
SECUENCIAL: process
begin
wait until CK = '1';
if ( RS = '1' ) then estado <= reposo;
else case estado is
when reposo => if (A = '1') then estado <= entra_por_a;
elsif (B = '1') then estado <= entra_por_b; end if;
when entra_por_a => if (B = '1') then estado <= saliendo; end if;
when entra_por_b => if (A = '1') then estado <= saliendo; end if;
when saliendo => if (A = '0') and (B = '0') then estado <= reposo; end if;
when others =>
end case;
end if;
end process;
-- funciones de activacin de las salidas:
SEMF <= '0' when estado = reposo else '1';
end GRAFO;
23.3.2. Otras formas de describir los estados
En el ejemplo anterior se ha dado nombre y nmero binario a los estados mediante la
definicin de un tipo mis_estados y la enumeracin de los estados y asignacin de valores
a los mismos, a travs de su declaracin como constantes.
subtype mis_estados is std_logic_vector(1 downto 0);
constant reposo : mis_estados :="00";
constant entra_por_a : mis_estados :="01";
constant entra_por_b : mis_estados :="10";
constant saliendo : mis_estados :="11";
signal estado : mis_estados;
Otra forma, ms breve, que conduce exactamente a la misma declaracin de estados
y asignacin de valores, es la siguiente:
type mis_estados is (reposo, entra_por_a, entra_por_b, saliendo);
attribute enum_encoding: string;
attribute enum_encoding of mis_estados: type is 00 01 10 11;
signal estado: mis_estados;
Tambin puede hacerse una declaracin de estados sin asignar valores a los mismos,
permitiendo que el compilador efecte esta asignacin:
type mis_estados is (reposo, entra_por_a, entra_por_b, saliendo);
signal estado: mis_estados;
80 El ect rni ca Di gi t al
23.4.3. Automta de Mealy: dos carritos con movimiento de ida y vuelta sincronizados
Sean dos carritos motorizados que se mueven linealmente, entre sendos detectores a
y b el primero y entre c y d el segundo, de forma que, al activas un pulsador P, ambos
carritos inician el movimiento desde a y c y el primero en alcanzar el otro extremo b o d,
espera a que el otro alcance el suyo, para iniciar juntos el movimiento de vuelta.
Un grafo detallado de este sistema de dos carritos puede incluir siete estados (como
autmata de Moore) pero puede ser simplificado dando como resultado el grafo siguiente
(autmata de Mealy: la necesidad de memoria se limita a distinguir entre dos situaciones:
el movimiento de ida hacia b y d y el de vuelta hacia a y c):
b.d
P.a.c
q = 0 q = 1
reposo
y mov. de vuelta
mov. de ida
library ieee; use ieee.std_logic_1164.all;
entity CARRITOS is
port ( CK,RS,A,B,C,D,P : in std_logic;
iz_1,der_1,iz_2,der_2 : out std_logic);
end CARRITOS;
architecture GRAFO of CARRITOS is
type mis_estados is (vuelta_y_reposo, ida);
signal estado: mis_estados;
begin
-- evolucin del estado:
SECUENCIAL: process
begin
wait until CK = '1';
if ( RS = '1' ) then estado <= vuelta_y_reposo;
else case estado is
when vuelta_y_reposo => if (P and A and C) = '1' then estado <= ida; end if;
when ida => if (B and D) = '1' then estado <= vuelta_y_reposo;
end if;
end case;
end if;
end process;
-- funciones de activacin de las salidas:
der_1 <= '1' when (estado = ida) and (B='0') else '0';
iz_1 <= '1' when (estado = vuelta_y_reposo) and (A='0') else '0';
der_2 <= '1' when (estado = ida) and (D='0') else '0';
iz_2 <= '1' when (estado = vuelta_y_reposo) and (C='0') else '0';
end GRAFO;
23. Lenguaj e de descri pci n ci rcui t al : V H D L 81
23.4.4. Ejemplo realizado con ambas posibilidades, Moore y Mealy: depsito con
mezcla de 3 lquidos
Un depsito se llena con una mezcla de tres lquidos diferentes, para lo cual dispone
de tres electrovlvulas A, B, C que controlan la salida de dichos lquidos y de cuatro
detectores de nivel n1, n2, n3, n4, siendo n1 el inferior y n5 el de llenado mximo.
Solamente cuando el nivel del depsito desciende por debajo del mnimo n1 se produce un
ciclo de llenado: primero con el lquido A hasta el nivel n2, luego el lquido B hasta el
nivel n3 y, finalmente, el lquido C hasta completar el depsito n4.
El grafo de estado correspondiente al autmata de Moore ser el siguiente:
n1 n2
reposo lquido A
000 001 010
100
lquido B
lquido C
n4
n3
library ieee; use ieee.std_logic_1164.all;
entity DEPOSITO is
port ( CK,RS,n1,n2,n3,n4 : in std_logic;
A,B,C : out std_logic);
end DEPOSITO;
architecture MOORE of DEPOSITO is
subtype mis_estados is std_logic_vector(3 downto 1);
-- cdigo de un solo uno
constant reposo : mis_estados :="000";
constant liquido_A : mis_estados :="001";
constant liquido_B : mis_estados :="010";
constant liquido_C : mis_estados :="100";
signal estado: mis_estados;
begin
-- funciones de activacin de las salidas:
A <= estado(1); B <= estado(2); C <= estado(3);
-- evolucin del estado:
SECUENCIAL: process
begin
wait until CK = '1';
if ( RS = '1' ) then estado <= reposo;
82 El ect rni ca Di gi t al
else case estado is
when reposo => if (n1 = '0') then estado <= liquido_A; end if;
when liquido_A => if (n2 = '1') then estado <= liquido_B; end if;
when liquido_B => if (n3 = '1') then estado <= liquido_C; end if;
when liquido_C => if (n4 = '1') then estado <= reposo; end if;
when others =>
end case;
end if;
end process;
end MOORE;
El mismo sistema secuencial puede configurarse con un nmero ms reducido de
estados, segn el siguiente grafo que corresponde a un autmata de Mealy (en este caso se
necesita solamente una variable de estado q, pero las funciones de activacin de las
salidas resultan ms complejas, pues dependen de las entradas, de la informacin que
aportan los detectores de nivel):
n1
reposo llenado
n5
architecture MEALY of DEPOSITO is
type mis_estados is (reposo, llenado);
signal estado: mis_estados;
begin
-- evolucin del estado
SECUENCIAL: process
begin
wait until CK = '1';
if ( RS = '1' ) then estado <= reposo;
else case estado is
when reposo => if (n1 = '0') then estado <= llenado; end if;
when llenado => if (n4 = '1') then estado <= reposo; end if;
end case;
end if;
end process;
-- funciones de activacin de las salidas:
A <= '1' when (estado = llenado) and (n2='0') else '0';
B <= '1' when (estado = llenado) and (n2='1') and (n3 ='0') else '0';
C <= '1' when (estado = llenado) and (n3='1') else '0';
end MEALY;
23. Lenguaj e de descri pci n ci rcui t al : V H D L 83
23.4.5. Ejemplo de grafo con varias transiciones desde cada estado: activacin gradual
de alarma
Los ejemplos anteriores presentan solamente una transicin desde cada estado y en
muchos casos acta solamente una variable de entrada en cada transicin; el siguiente
grafo, incluye mayor nmero de transiciones entre estados y dos variables de entrada
involucradas en ellas.
Un sistema de deteccin de temperatura con cuatro niveles (00, 01, 10, 11); la
alarma debe activarse cuando se detecta 11 (temperatura muy alta), o si se detecta el
nivel 10 (alta) en dos ciclos seguidos de reloj y debe desaparecer cuando se detecta 00
(muy baja), o si se detecta el nivel 01 (baja) en dos ciclos de reloj.
inicial
entrando
alarma
11
00
10
0-
1-
0-
01
1-
00
01
11
10
saliendo
architecture GRAFO of ALARMA is
type mis_estados is (inicial,entrando,alarma,saliendo);
attribute enum_encoding: string;
attribute enum_encoding of mis_estados: type is 00 01 11 10;
signal estado: mis_estados;
begin
SECUENCIAL: process
begin
wait until CK = '1';
if ( Reset = '1' ) then estado <= inicial;
else case estado is
when inicial => if (entrada = "10") then estado <= entrando;
elsif (entrada = "11") then estado <= alarma; end if;
when entrando => if (entrada(2) = '1') then estado <= alarma;
else estado <= inicial; end if;
when saliendo => if (entrada(2) = '1') then estado <= alarma;
else estado <= inicial; end if;
when alarma => if (entrada = "00") then estado <= inicial;
elsif (entrada = "01") then estado <= saliendo; end if;
end case; end if; end process;
--funcin de activacin de la salida:
y <= '1' when (estado = alarma) or (estado = saliendo) else '0';
end GRAFO;
84 El ect rni ca Di gi t al
23. 5. Ot ros recursos de VHDL
23.5.1. Tipos de datos
Como ya se hizo en el caso de la declaracin de estados en los sistemas secuenciales,
se pueden definir y dar valores a constantes, despus de la declaracin de arquitectura y
antes del begin de la misma y dichas constantes pueden ser utilizadas para asignacin de
valores a seales o como parmetros:
constant nueve : std_logic_vector(3 downto 0);="1001";
y <= nueve;
constant k : integer;=8;
signal ww : std_logic_vector(k-1 downto 0);
Tambin pueden definirse parmetros o valores constantes en la declaracin de
entidad, antes de los puertos, en la forma siguiente:
generic( m : integer := 8 );
port( .
Los vectores pueden utilizarse en forma parcial o por componentes; por ejemplo:
signal a : std_logic_vector(15 downto 0);
signal b,c : std_logic_vector(7 downto 0);
signal d,e :std_logic;
begin
b <= a(15 downto 8); -- mitad ms significativa del vector a
c <= a(11 downto 4); -- parte central del vector a
d <= a(6); -- dgito nmero 6 del vector a
e <= a(0); -- bit menos significativo del vector a
Al igual que un vector es un conjunto ordenado y numerado de valores (bits), una
matriz (array) es un conjunto ordenado y numerado de vectores:
signal tt : array(1 to 64) of std_logic_vector(7 downto 0);
begin
tt(21) <= "10101100";
tt(52,7) <= '1';
La declaracin anterior de seal introduce una matriz formada por 64 vectores de tipo
standar logic de 8 bits, numerados de 1 a 64; tt(21) se refiere al vector nmero 21 y
tt(52,7) seala al bit ms significativo del vector nmero 52.
23. Lenguaj e de descri pci n ci rcui t al : V H D L 85
Variables
En los procesos (y en las funciones, que se explican a continuacin), pueden
definirse variables internas a los mismos. Mientras que las seales no cambian de valor
dentro del propio proceso, sino al final de la aplicacin del mismo, las variables cambian
de valor dentro del proceso, en cuanto reciben una asignacin aplicada sobre ellas.
Las asignaciones a variables se hacen con los smbolos ":=" en lugar de "<=".
Ejemplo de la diferencia funcional entre seales y variables:
p seal
architecture ejemp1 of entidad is
signal a,b,y,w: std_logic_vector(3 downto 0);
signal p : std_logic_vector(3 downto 0);
begin
....
p1: process(a,b,p)
begin
p <= a or b;
y <= p;
p <= a and b;
w <= p;
end process;
p variable
architecture ejemp1 of entidad is
signal a,b,y,w: std_logic_vector(3 downto 0);
begin
....
p2: process(a,b)
variable p : std_logic_vector(3 downto 0);
begin
p := a or b;
y <= p;
p := a and b;
w <= p;
end process;
En el ejemplo de la izquierda (proceso p1) la asignacin final que reciben ambas
seales y y w ser a and b, ya que, como seal, p recibe asignacin al final del proceso y
la anterior asignacin (a or b) resulta ignorada; en cambio, en el ejemplo de la derecha
(proceso p2) la seal y recibe la asignacin a or b, y la seal w, a and b, (como variable p
ejecuta sus asignaciones inmediatamente).
Por ejemplo, si el vector a tiene valor "1010" y el vector b vale "0101", los valores
resultantes para y y w sern:
p seal
y = "0000" "1010" and "0101" = "0000"
w = "0000"
p variable
y = "1111" "1010" or "0101" = "1111"
w = "0000"
En relacin con el diseo digital, las seales se corresponden ms directamente con
los nudos del circuito; en tal sentido, es preferible la utilizacin de seales para la propia
descripcin circuital, mientras que las variables pueden usarse para dar valores a ndices,
parmetros, etc.
86 El ect rni ca Di gi t al
23.5.2. Alta impedancia y bidireccionalidad
Forma de configurar el estado de alta impadancia en seales tri-estado
salidas: out std_logic_vector(7 downto 0)
salidas <= "ZZZZZZZZ" when E = '0' else y;
-- para no especificar el nmero de valores,
salidas <= (others => 'Z') when E = '0' else y;
-- dentro de un proceso
if E = '0' then salidas <= (others => 'Z')
else salidas <= y; end if;
Forma de configurar un terminal bidireccional
A
salida
entrada
E
A :inout std_logic;
.
signal entrada,E : std_logic;
signal salida :std_logic;
begin
A <= salida when E = '1' else 'Z';
entrada <= A;
Cuando el terminal bidireccional A acta como entrada (E = '0'), recibe el valor de
fuera y su asignacin como salida debe hacerse a Z (alta impedancia).
Ejemplo: contador cuyas salidas actan, tambin, como entradas paralelo
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;
entity contador is
port( salidas :inout std_logic_vector(3 downto 0);
CK,oe, load :in std_logic);
end contador ;
architecture bidir of contador is
signal qq: std_logic_vector(3 downto 0);
begin
-- actuacin como salidas
salidas <= qq when oe = '1' and load = '0' else (others => 'Z');
process
23. Lenguaj e de descri pci n ci rcui t al : V H D L 87
begin
wait until CK ='1';
if load = '1' and oe = '1' then qq <= "0000";
elsif load = '1' then qq <= salidas;
elsif oe = '1' then qq <= qq + 1;
end if;
end process;
end bidir;
El contador es completamente sncrono; se borra cuando load y oe se ponen a 1,
toma el valor de las salidas cuando solamente load est a 1 y cuenta y presenta el valor
del contaje en las salidas cuando oe se encuentra 1 (con load a 0)
Forma de configurar un adaptador bidireccional (buffer)
B A
dir
library ieee; use ieee.std_logic_1164.all;
entity adaptador is
port( A,B :inout std_logic_vector(7 downto 0);
dir :in std_logic);
end adaptador ;
architecture bidir of adaptador is
begin
process(A,B,dir)
begin
if dir = '0' then A <= B; else A <= (others => 'Z'); end if;
if dir = '1' then B <= A; else B <= (others => 'Z'); end if;
end process;
end bidir;
La descripcin anterior corresponde a un adaptador bidireccional de 8 lneas; cuando
los terminales actan como entradas su asignacin de salida debe hacerse a Z.
88 El ect rni ca Di gi t al
23.5.3. Bucles
Los bucles sirven para aplicar repetitivamente una instruccin segn un ndice que
recorre el intervalo de valores que se le fija:
for i in to loop
asignaciones
end loop;
Para recorrer todo el rango del parmetro i puede utilizarse "for i in qrange".
Ejemplo: largo registro de desplazamiento (50 biestables)
signal q: std_logic_vector(50 downto 1);
begin
process(reset,clk)
begin
if reset = '1' then
for i in 50 downto 1 --- tambin for i in qrange
loop q(i) <= '0'; end loop;
elsif clkevent and clk = '1' then q(1) <= entrada;
for i in 50 downto 2 loop q(i) <= q(i-1); end loop;
end if;
end process;
Otro ejemplo: pila FIFO (64 registros de 8 bits)
type pila is array(1 to 64) of std_logic_vector(7 downto 0);
signal qqqq :pila;
signal entrada : std_logic_vector(7 downto 0);
begin
salida <= qqqq(64);
process(reset,clk)
begin
if reset = '1' then
for i in qqqqrange loop qqqq(i) <= "00000000"; end loop;
elsif clkevent and clk = '1' then qqqq(1) <= entrada;
for i in 2 to 64 loop qqqq(i) <= qqqq(i-1); end loop;
end if;
end process;
23. Lenguaj e de descri pci n ci rcui t al : V H D L 89
23.5.4. Funciones
Una funcin consiste en un conjunto de asignaciones, cuya aplicacin a las entradas de
la funcin sirve para devolver un valor; se describe al inicio de la arquitectura, antes del
begin de la misma y puede ser llamada, dentro de la arquitectura, cuantas veces sea
necesaria. Dentro de una funcin no puede ir una instruccin de espera (wait), ni una
actuacin por flancos (reloj).
Funcin: function nombre_de_la_funcin (entradas: tipo)
return tipo_de_la_salida is
begin
asignaciones
return ;
end;
llamada a la funcin: seal <= nombre_de_la_funcin (entradas);
Ejemplo: descripcin de una simple celda sumadora utilizando funciones
library ieee; use ieee.std_logic_1164.all;
entity CELDA is
port( a,b,arrastre_in : in std_logic;
suma,arrastre_out : out std_logic); end CELDA ;
architecture SUMADOR of CELDA is
function paridad (a,b,c: std_logic) return std_logic is
begin return ((a xor b) xor c); end;
function mayoria (a,b,c: std_logic) return std_logic is
begin return ((a and b) or (b and c) or (c and a)); end;
begin
suma <= paridad(a,b,arrastre_in);
arrastre_out <= mayoria(a,b,arrastre_in);
end SUMADOR ;
Otra funcin: multiplexor que deja pasar el mayor de 2 nmeros
function mayor(a,b: std_logic_vector) return std_logic_vector is
variable y: std_logic_vector(7 downto 0);
begin if a > b then y := a; else y := b; end if;
return y; end;
a) dejar pasar el mayor de 3 nmeros A, B, C
t <= mayor(A,B); Y <= mayor(t,C);
o tambin, Y <= mayor(mayor(A,B),C);
90 El ect rni ca Di gi t al
b) dejar pasar el nmero intermedio de entre 3 nmeros A, B, C
process(A,B,C)
variable t,u,v: std_logic_vector(7 downto 0);
begin
t := mayor(A,B); u := mayor(B,C); v := mayor(C,A);
if (t = u) then Y <= v; elsif (u = v) then Y <= t; else Y <= u; end if;
end process;
ahora bien, esta solucin, aunque ingeniosa, requiere mucha circuitera (del orden de
cinco comparadores y dos multiplexores de 2 nmeros) y puede resolverse en forma
mucho ms reducida; por ejemplo,
Y <= A;
if (A > B) = (B > C) then Y <= B; end if;
if (A > C) /= (B > C) then Y <= C; end if;
que ocupa poco ms de la mitad (unos dos multiplexores y tres comparadores).
Otro ejemplo de funcin: contador de minutos, segundos y dcimas (cronmetro)
Se trata de un cronmetro, con resolucin de una dcima de segundo y capacidad de
contaje hasta una hora; se utilizan dos funciones para configurar los diversos contadores
mdulo 10 y mdulo 6, respectivamente.
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;
entity CRONO is
port ( clk,rs,hab : in std_logic;
max : out std_logic;
decimas : out std_logic_vector(3 downto 0);
minutos,segundos : out std_logic_vector(6 downto 0));
end CRONO;
architecture CONTADORES of CRONO is
-- contaje mdulo 10
function mod10 (e :std_logic; q:std_logic_vector) return std_logic_vector is
variable cont :std_logic_vector(3 downto 0);
begin
if e = '1' then
if q = "1001" then cont := "0000"; else cont := q + 1; end if;
else cont := q; end if;
return cont; end;
23. Lenguaj e de descri pci n ci rcui t al : V H D L 91
-- contaje mdulo 6
function mod6 (e :std_logic; q:std_logic_vector) return std_logic_vector is
variable cont:std_logic_vector(6 downto 4);
begin
if e = '1' then
if q = "101" then cont := "000"; else cont := q + 1; end if;
else cont := q; end if;
return cont; end;
signal seg,min : std_logic_vector(6 downto 0);
signal dec : std_logic_vector(3 downto 0);
signal max1,max2,max3, max4 : std_logic;
-- seales para indicar el mximo ( 9 5 ) de los contadores
begin
decimas <= dec;
segundos <= seg;
minutos <= min;
max1 <= '1' when dec(3 downto 0) = "1001" and hab = '1' else '0';
max2 <= '1' when seg(3 downto 0) = "1001" and max1 = '1' else '0';
max3 <= '1' when seg(6 downto 4) = "101" and max2 = '1' else '0';
max4 <= '1' when min(3 downto 0) = "1001" and max3 = '1' else '0';
max <= '1' when min(6 downto 4) = "101" and max4 = '1' else '0';
process(rs,clk)
begin
if rs = '1' then dec <= (others => '0'); seg <= (others => '0'); min <= (others => '0');
elsif clk'event and clk = '1' then
dec(3 downto 0) <= mod10(hab,dec(3 downto 0));
seg(3 downto 0) <= mod10(max1,seg(3 downto 0));
seg(6 downto 4) <= mod6(max2,seg(6 downto 4));
min(3 downto 0) <= mod10(max3,min(3 downto 0));
min(6 downto 4) <= mod6(max4,min(6 downto 4));
end if;
end process;
end CONTADORES;
92 El ect rni ca Di gi t al
23.5.5. Descripcin estructural: conexin de mdulos
Hasta aqu, la descripcin VHDL de sistemas digitales se ha desarrollado en forma
funcional, pero este lenguaje admite tambin una descripcin estructural, detallando
las conexiones entre celdas o mdulos circuitales.
Ejemplo: descripcin estructural de una sencilla combinacin de puertas en forma de
suma de productos
a
b
c
d
t
u
y
library ieee; use ieee.std_logic_1164.all;
entity puerta_and is port(a,b : in std_logic; y : out std_logic); end puerta_and;
architecture uno of puerta_and is begin y<='1' when a='1' and b='1' else '0'; end uno;
library ieee; use ieee.std_logic_1164.all;
entity puerta_or is port(a,b : in std_logic; y : out std_logic); end puerta_or;
architecture dos of puerta_or is begin y<='1' when a='1' or b='1' else '0'; end dos;
library ieee; use ieee.std_logic_1164.all;
entity suma_de_productos is
port(a,b,c,d : in std_logic; y : out std_logic);
end suma_de_productos;
architecture andor of suma_de_productos is
component puerta_and port(a,b : in std_logic; y : out std_logic); end component;
component puerta_or port(a,b : in std_logic; y : out std_logic); end component;
signal t,u: std_logic;
begin
u1: puerta_and port map(a=>a, b=>b, y=>t);
u2: puerta_and port map(a=>c, b=>d, y=>u);
u3: puerta_or port map(a=>t, b=>u, y=>y);
end andor;
Obsrvese que es necesario declarar la librera y el paquete que se utilizan en cada
entidad: la declaracin de libreras y paquetes se satura (se gasta) cada vez que dicha
librera se utiliza.
Los componentes del ejemplo anterior son muy pequeos (simples puertas lgicas
bsicas), pero de igual forma se procedera para conectar entre s mdulos ms amplios
(descritos cada uno de ellos con su entidad y su arquitectura), a fin de formar un circuito
con ellos.
23. Lenguaj e de descri pci n ci rcui t al : V H D L 93
Otro ejemplo: descripcin estructural del cronmetro anterior
Cronmetro con resolucin de una dcima de segundo y capacidad hasta una hora;
se utilizan en esta descripcin como mdulos los contadores mdulo 10 y mdulo 6.
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;
entity mod10 is
port(e,ck,rs : in std_logic; q : out std_logic_vector(3 downto 0); max : out std_logic);
end mod10;
architecture contador1 of mod10 is signal qqq : std_logic_vector(3 downto 0); begin
q <= qqq; max <= '1' when qqq = "1001" and e = '1' else '0';
process(rs,ck) begin
if rs = '1' then qqq <= (others => '0');
elsif ck'event and ck = '1' then
if e = '1' then
if qqq = "1001" then qqq <= (others => '0'); else qqq <= qqq + 1; end if;
end if; end if; end process; end contador1;
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;
entity mod6 is
port(e,ck,rs : in std_logic; q : out std_logic_vector(2 downto 0); max : out std_logic);
end mod6;
architecture contador2 of mod6 is signal qqq : std_logic_vector(2 downto 0); begin
q <= qqq; max <= '1' when qqq = "101" and e = '1' else '0';
process(rs,ck) begin
if rs = '1' then qqq <= (others => '0');
elsif ck'event and ck = '1' then
if e = '1' then
if qqq = "101" then qqq <= (others => '0'); else qqq <= qqq + 1; end if;
end if; end if; end process; end contador2;
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;
entity CRONO is
port ( clk,rs,hab : in std_logic;
max : out std_logic;
decimas : out std_logic_vector(3 downto 0);
minutos,segundos : out std_logic_vector(6 downto 0));
end CRONO;
94 El ect rni ca Di gi t al
architecture CONTADORES of CRONO is
component mod10 port(e,ck,rs : in std_logic; q : out std_logic_vector(3 downto 0);
max : out std_logic); end component;
component mod6 port(e,ck,rs : in std_logic; q : out std_logic_vector(2 downto 0);
max : out std_logic); end component;
signal max1,max2,max3, max4 : std_logic;
begin
u1: mod10 port map(e=>hab, ck=>clk, rs=>rs, q=>decimas, max=>max1);
u2: mod10 port map(e=>max1, ck=>clk, rs=>rs, q=>segundos(3 downto 0),
max=>max2);
u3: mod6 port map(e=>max2, ck=>clk, rs=>rs, q=>segundos(6 downto 4), max=>max3);
u4: mod10 port map(e=>max3, ck=>clk, rs=>rs, q=>minutos(3 downto 0), max=>max4);
u5: mod6 port map(e=>max4, ck=>clk, rs=>rs, q=>minutos(6 downto 4), max=>max);
end CONTADORES;
Bucle para generar mdulos: generate
etiqueta: for i in to generate
insercin de mdulos
end generate;
Ejemplo: descripcin estructural de un registro de desplazamiento de 25 biestables
library ieee; use ieee.std_logic_1164.all;
entity biestable is
port(ck,rs,d : in std_logic; q : buffer std_logic); end biestable;
architecture ff of biestable is begin
process(ck,rs,q) begin
if rs='1' then q<='0'; elsif ck'event and ck='1' then q<=d; end if;
end process; end ff;
library ieee; use ieee.std_logic_1164.all;
entity registro is
port(ck,rs,entrada : in std_logic; y : buffer std_logic_vector(25 downto 1));
end registro;
architecture desplazamiento of registro is
component biestable port(ck,rs,d : in std_logic; q : out std_logic); end component;
begin
u1: biestable port map(ck=>ck, rs=>rs, d=>entrada, q=>y(1));
23. Lenguaj e de descri pci n ci rcui t al : V H D L 95
gen1 : for i in 2 to 25 generate
u_resto: biestable port map(ck=>ck, rs=>rs, d=>y(i-1), q=>y(i));
end generate; end desplazamiento;
En este ejemplo, la instruccin generate da lugar a la insercin de 24 componentes
de tipo biestable (numerados del 2 al 25).
Otro ejemplo: divisor de frecuencia por 10
6
Un modulo divisor de frecuencia por un milln sirve, por ejemplo, para pasar de una
frecuencia de 1 MHz (perodo de 1 microsegundo) a la de 1 Hz (perodo 1 segundo).
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;
entity contador is port(ck,rs,E : in std_logic; max : out std_logic); end contador;
architecture modulodiez of contador is begin
process(ck,rs,E)
variable q: std_logic_vector(3 downto 0); begin
if E = '1' and q = "1001" then max <= '1'; else max <= '0'; end if;
if rs='1' then q := "0000";
elsif ck'event and ck='1' then
if E = '1' then if q = "1001" then q := "0000"; else q := q +1; end if; end if;
end if; end process; end modulodiez ;
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;
entity divisor is port(ck,rs,hab : in std_logic; y : out std_logic); end divisor;
architecture unmillon of divisor is
component contador port(ck,rs,E : in std_logic; max : out std_logic); end component;
signal aa :std_logic_vector(6 downto 0) ;
begin
y <= aa(6); aa(0) <= hab;
gen1 : for i in 1 to 6 generate
u_resto: contador port map(ck=>ck, rs=>rs, E=>aa(i-1), max=>aa(i));
end generate; end unmillon;
23.5.6. Libreras y paquetes
Una librera es una carpeta (un directorio) en la que se almacenan diseos (con su
entidad y su arquitectura, cada uno de ellos) y paquetes, que pueden ser utilizados en otros
diseos. Un paquete es un fichero, dentro de una librera, en el que se declaran
componentes, constantes, tipos o funciones.
Libreras y paquetes sirven para organizar y ordenar los diseos y para aprovechar el
trabajo generando mdulos reutilizables. La librera directa de trabajo, en la que se
desarrolla el diseo actual, se denomina work y no es necesario declararla.
96 El ect rni ca Di gi t al
Ejemplo de libreras y paquetes son los declarados habitualmente al inicio del texto:
library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all;
Esta declaracin indica el uso de la librera "ieee"; dentro de ella se usan los
paquetes "std_logic_1164", "std_logic_arith" y "std_logic_unsigned"; y dentro de dichos
paquetes se usan todos los elementos contenidos en los mismos. Si se necesitase slo un
elemento, bastara poner el nombre del elemento (en lugar de all).
Un paquete tiene una parte declarativa y otra descriptiva:
declaracin de un paquete:
package nombre_del_paquete is
-- declaracin de tipos, constantes, componentes, funciones y/o procedimientos
subtype nombre is ;
constant nombre :tipo;
component nombre port( ) end component;
function nombre (entradas) return tipo;
end;
descripcin de un paquete:
package body nombre_del_paquete is
-- valores de las constantes y descripcin de componentes, funciones y procedimientos
entity y architecture de cada componente
constant nombre: tipo := valor;
function nombre (entradas) return tipo is
begin
asignaciones
return expresin;
end nombre;
end;
para utilizar el paquete
library nombre_de_la_librera ;
use nombre_de_la_librera.nombre_del_paquete.all;
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
24 APROXIMACIN ESTRUCTURAL AL DISEO
DE SISTEMAS COMPLEJOS
24.1. Hacer manejable la complejidad
24.2. Sistemas con mucha transferencia de informacin
24.3. Sistemas con esquema de clculo complejo
24.4. Mquinas algortmicas: varios ejemplos
24.5. Dividir en partes los tiempos de retraso: segmentacin
El estudio de la electrnica digital suele recorrer un itinerario acumulativo de funciones
booleanas, conjuntos de funciones, bloques combinacionales, biestables y registros,
contadores y sus derivados, memorias, , en una aproximacin botton-up, de lo sencillo
hacia arriba; de esta forma llegamos a conocer los elementos disponibles, los recursos
constructivos, es decir, las piezas del diseo. Pero el diseo real supone algo ms que
conocer las piezas disponibles, es un ejercicio de sntesis, un proceso en direccin contraria
top-down, del todo hacia abajo.
Resulta difcil enfrentarse a la complejidad, pero es algo que los diseadores de
sistemas digitales venimos haciendo en el da a da y conviene transferir una pautas o
formas de actuar que orienten y ayuden a quienes se inician en las tareas de diseo.
Si nos acercsemos al templo de Apolo en Delfos, con confianza en el orculo, y nuestra
pregunta fuese Cmo abordar el diseo de sistemas complejos?, es seguro que la pitonisa, en
la forma oscura y ambigua que acostumbra, respondera con dos palabras: Divide y vencers.
Si, adems, la pitonisa tuviera conciencia de la complejidad de nuestros sistemas actuales,
seguramente aadira: Divide, s, pero con estructura.
Dividir en partes, pero sin perder de vista la globalidad. Es decir, dividir dotando al
conjunto de una estructura adecuada, conociendo la relacin, orden y enlace de las partes
para formar el todo (que es la definicin apropiada de "estructura").
En esta perspectiva, al tratar de los sistemas secuenciales, se introduce el sincronismo
como divisin estructurada de algo tan complejo como es el tiempo: el sincronismo separa el
tiempo en unidades sucesivas, como forma de manejarlo con seguridad, eficacia y sencillez.
El presente captulo, adems de plantear, en forma conceptual y genrica, la estrategia
de dividir con estructura, presenta en detalle dos procedimientos sumamente tiles de
efectuar tal divisin: la arquitectura de buses como estructura eficaz para sistemas con
mucha transferencia de informacin y la separacin parte de control/parte operativa para
esquemas de clculo complejos. Se incluyen varios diseos de mquinas algortmicas
(parte de control) relativamente complejas (divisin, raz cuadrada, conversin BCD-
binario) as como dos ejemplos no aritmticos, referidos a control de cronmetros.
Adems, se comenta, en forma breve, el mecanismo de segmentacin (pipe-line) como
forma de aumentar la velocidad de trabajo, a travs de la divisin en partes de los tiempos
de propagacin de los bloques combinacionales (cuando tales tiempos son altos).
98 El ect rni ca Di gi t al
24. 1. Hacer manej abl e l a compl ej i dad
Cmo abordar el diseo de sistemas digitales complejos? Divide y vencers, es una
buena respuesta; pero, como complemento a la divisin, conviene aadir la exigencia de
estructura (dividir teniendo clara la relacin de cada parte con el conjunto).
Cmo abordar un diseo que nuestra mente no puede abarcar en conjunto?
1
Fraccionar sin perder la globalidad, podra ser una respuesta concisa: la idea es dividir
el sistema en partes, conservando la visin global del mismo; an ms, dando particular
importancia a la estructura, a la relacin de cada parte con el conjunto.
Estructura: relacin, orden y enlace de las partes para formar un todo (un sistema).
La relacin de cada parte con el conjunto presenta una triple referencia:
- funcionalidad de cada parte en relacin con el sistema, con las dems partes,
- comunicacin fsica (lneas de conexin) de las partes,
- y ordenacin temporal de las seales entre ellas.
Por partes (divide y vencers) y, a la vez, con estructura (con perspectiva organizada
del conjunto): una metodologa que permita poner en relacin el diseo de cada parte con
los requisitos globales que se pretenden, combinando adecuadamente los aspectos de
particin, jerarqua y coordinacin.
Esto es lo que hacemos cuando formulamos la arquitectura de un sistema en
trminos de diagrama de bloques; cada bloque constituye una parte diferenciada del
sistema y la conexin entre ellos sita cada parte en la perspectiva de conjunto: confiere
estructura a la divisin.
Tal conexin presenta el triple aspecto citado: conexin funcional (funcionalidad de
cada bloque respecto a los dems), conexin fsica (comunicacin entre los bloques) y
conexin temporal (ordenacin de las seales entre ellos).
Un diagrama de bloques representa una de las posibles soluciones (arquitecturas)
que realizan el sistema, es decir, que cumplen las especificaciones o requisitos del
proyecto; supone una divisin estructural en la que cabe destacar ambos aspectos:
- una divisin en partes (bloques) que permitir el diseo independiente de cada parte,
- y una estructura que expresa la funcin de cada parte respecto al conjunto (al sistema)
y, asimismo, la comunicacin entre las partes.
El aspecto estructural, de relacin entre partes, exige que se preste especial atencin
a la conexin entre ellas: tanto la coordinacin funcional entre las diversas partes como la
comunicacin (adecuadamente sincronizada) entre las mismas.
1
Every engineering construction is an organized system. If it contains only a few components, the designer
has no difficulty in bearing them all in mind at once, but if there are many components, the designer almost
instinctively creates a hierarchical design with subassemblies and sub-subassemblies as necessary so that he
can shape the design without exceeding his span of understanding. By such means in every field of
engineering the design task is broken down into manageable sections.
G. G. Scarrott From computing slave to knowledgeable servant: the evolution of computers.
24. Di seo de si st emas compl ej os 99
El nombre de arquitectura resulta sumamente apropiado, ya que destaca la idea de
una estructura que conecta, funcional y fsicamente, partes diversas; conocida la situacin
de cada parte en la estructura, es posible un tratamiento individualizado de la misma.
El diseo es un trayecto desde las especificaciones o requisitos que definen al
sistema hasta las funciones o bloques booleanos que determinan su configuracin
circuital. En esta perspectiva, la divisin en partes se ejecuta, por lo general, en dos
etapas sucesivas (a travs de dos escalones diferenciados que descienden del todo a las
partes): una primera divisin en mdulos, referidos a las especificaciones o prestaciones
del sistema y su posterior acomodacin a bloques, en relacin con los recursos
(subsitemas digitales).
En la primera aproximacin se divide el sistema en mdulos con significado
funcional respecto al propio sistema, respecto a las especificaciones o funciones que se
pretende que el sistema realice; en un segundo paso se configuran o reajustan dichos
mdulos en bloques o subsistemas digitales conocidos (y, si es preciso, se introducen
bloques especficos), definidos todos ellos por su comportamiento booleano.
En todo este proceso de divisin, conservando la globalidad a travs de la estructura,
resulta importante dedicar tiempo a:
- dejar claras las especificaciones del sistema,
- llegar a comprenderlas en profundidad,
- conocer sus razones, sus efectos y las relaciones entre ellas,
- idear un esquema de funcionamiento detallado y coherente,
todo ello para llegar a establecer la arquitectura correspondiente, representada en un
diagrama de bloques.
De todo lo cual debe dejarse constancia por escrito, porque la escritura es la
herramienta de las ideas, la nica forma de dejarlas claras, de transmitirlas y de
contrastarlas y de recuperarlas andando el tiempo.
Nunca insistiremos demasiado en la necesidad de escribir, de documentar el
diseo, de describir cada detalle, cada variable, cada registro, (tanto su funcin propia
como su relacin con el conjunto); en el ahorro de tiempo que, en definitiva, supone el
texto escrito tanto para clarificar ideas, como para transmitirlas, no solamente a otras
personas, sino tambin a uno mismo con el transcurso del tiempo.
La escritura nos impone la disciplina de aclarar y concretar las ideas, de darles
forma expresndolas en modo explcito y de recogerlas en un soporte material. A
cambio, la escritura es un eficaz vehculo de comunicacin para transmitir las ideas y
permitir su revisin y debate y para almacenarlas y permitir recuperarlas despus.
Precisamente, el lenguaje de descripcin circuital VHDL naci como herramienta de
documentacin; como respuesta a la necesidad de describir, en forma clara, precisa y
exenta de ambigedades, el comportamiento detallado de los circuitos digitales
complejos. La propia potencialidad de la escritura estructurada hizo que la descripcin
VHDL pasase a ser, tambin, una excelente herramienta de diseo.
100 El ect rni ca Di gi t al
En la perspectiva de dividir en partes, cabe destacar que el sincronismo no es sino
una particin aplicada al tiempo que, al cuantificarlo en unidades, facilita el diseo y le
confiere seguridad funcional; es una forma de modularizar un aspecto particularmente
complejo por su carcter de continuo e impreciso cual es el tiempo.
En buena medida el sincronismo en los sistemas digitales equivale a un buen
manejo del tiempo: al dividir el tiempo en unidades sucesivas facilita la planificacin
temporal en el diseo de los sistemas complejos (permite referir su actividad funcional a
unidades de tiempo discretas y numerables), simplifica los clculos relativos a los
tiempos de propagacin y tiempos funcionales de los biestables (el anlisis de tiempos) y,
a la vez, proporciona una gran seguridad de funcionamiento.
[En tal sentido, se invita, a quienes no lo hayan hecho, a estudiar el captulo 15
(segundo volumen) dedicado al "significado, requisitos y utilidad del sincronismo".
Por no aumentar el nmero de pginas, dicho captulo no ha sido repetido en este libro;
pero hubiera sido muy apropiado hacerlo.]
En los prximos apartados consideraremos en detalle otros dos casos genricos de
divisin estructural que presentan particular inters y, adems, son muy frecuentes:
- Sistemas con mucha transferencia de informacin, en los que resulta sumamente
til la divisin procesador/memoria y, dentro de sta, la numeracin de los diversos
registros que permite el tratamiento individualizado de grupos de registros (y, en su
caso, de perifricos conectados a tales registros).
- Sistemas con esquema de clculo complejo, para los cuales es apropiada la divisin
parte operativa/parte de control, que, a su vez, permite tratar por separado cada uno
de los recursos de clculo.
En ambos casos, la divisin conceptual en dos partes diferenciadas
(procesador/memoria, operaciones/control) se refleja sobre una de las partes en una
particin de mltiples elementos cuyo diseo se puede abordar por separado: los diversos
elementos de la memoria (diversos bloques de memoria o diferentes perifricos) y los
varios recursos de clculo (operadores y registros activos) pueden individualizarse en
cuanto a su definicin y diseo.
Ni qu decir tiene que muchos sistemas digitales presentan, a la vez, las dos
situaciones anteriormente descritas (mucha transferencia de informacin y esquema de
actuacin complejo) y, en consecuencia, les son de aplicacin las dos particiones antes
indicadas.
Por otra parte, las citadas no son las nicas formas de dividir un diseo digital en
partes, sino que la estrategia de divisin es una metodologa de tipo conceptual que puede
ser aplicada en forma diversa y resulta de particular inters plantearse cal es el tipo de
divisin estructural que resulta ms adecuado a cada caso.
24. Di seo de si st emas compl ej os 101
El esquema de fraccionar sin perder la globalidad puede (y debe) ser aplicado
sucesivamente en forma jerrquica (iterativamente), es decir, a partir de un primer
esquema de bloques, los bloques complejos pueden ser divididos en subbloques, dando
lugar a un segundo nivel de esquemas de bloques y as sucesivamente hasta hacer
manejable la complejidad.
En los casos citados en la pgina anterior, la divisin se refleja sobre una de las
partes en forma mltiple:
- en los sistemas con mucha transferencia de informacin, la memoria se subdivide
naturalmente en bloques y en perifricos (y, respecto al procesador, suele interesar
la divisin en parte de control y parte operativa);
- en los sistemas con esquema de clculo complejo, la parte operativa se
descompone en los diversos operadores y registros necesarios (y la mquina de
estado relativa a la parte de control puede segmentarse, caso de resultar
compleja, en varias mquinas de estado comunicadas entre s).
Conceptualmente, la idea de particionar se opone a la prctica chapucera de
incorporar parches y hacer aadidos al paso; por ejemplo, incluyendo al socaire del
diseo nuevas condiciones mediante biestables adicionales. Toda especificacin o
variable de diseo debe estar integrada en el conjunto y quedar reflejada en el diagrama
de bloques y, en su caso, en el correspondiente grafo de estado; no es buena tcnica
desarrollar mquinas de estado dejando biestables de control fuera de las mismas.
Por ello, de vez en cuando, en el desarrollo de prototipos, conviene volver atrs y
reescribirlo todo, replanteando situaciones y estados en esquemas de conjunto, que se
reflejarn en los correspondientes grafos de estado.
Junto con las anteriores reflexiones conceptuales y formulaciones metodolgicas, no
puede dejarse de lado la importancia de la experiencia: Sabe ms el diablo por viejo que
por diablo. La experiencia es un requisito insustituible para el saber hacer (know-how):
difcilmente ser posible abordar con eficacia el diseo de sistemas complejos sin el
bagaje de una experiencia conseguida a travs de la prctica, con la dedicacin personal
y el proceso temporal que ello supone.
24. 2. Si st emas con mucha t ransferenci a de i nformaci n
En el caso de elevada transferencia de informacin (bien porque el sistema necesite
almacenar gran cantidad de datos, bien porque su comunicacin con el exterior sea muy
intensa o diversa) resulta muy eficaz la divisin en dos partes, procesador/memoria,
conectadas por buses y la identificacin de los registros mediante un nmero. La sencilla
idea de numerar los registros y seleccionarlos a travs de su nmero determina una
divisin estructural mltiple, que permite tratar cada registro o grupo de registros por
separado.
102 El ect rni ca Di gi t al
Entendemos aqu por procesador la parte operativa y de control, en contraposicin
con la memoria que almacena y transfiere la informacin; en tal sentido, el trmino es
genrico y no se refiere solamente a los procesadores tpicos que actan bajo programa.
Por otra parte, tngase en cuenta que el nombre de memoria se utiliza aqu en su
sentido amplio, para designar a la parte no procesador que no solamente contiene
elementos de memoria que almacenan la informacin (archivo) sino tambin dispositivos
de entrada y de salida que intercambian informacin con el exterior (comunicacin).
La memoria de un sistema digital complejo engloba a todo tipo de registros de los
que se extrae directamente o a los que se enva directamente informacin digital. En tal
sentido, incluye los registros de trabajo donde se memorizan datos y resultados
(generalmente englobados en bloques de tipo RAM), los registros de informacin fija que
contienen tablas de valores (como pueden ser los bloques ROM) y, tambin, los registros
de adaptacin de entradas y de salidas (adaptadores de perifricos).
La memoria alude a dos unidades diferenciadas por su finalidad funcional:
la unidad de memoria, como lugar de almacenamiento de la informacin disponible,
y la unidad de entradas/salidas, conjunto de perifricos que comunican con el exterior.
La comunicacin del sistema con el exterior se realiza a travs de registros
adaptadores de salida que presentan la informacin hacia un perifrico (optoacoplador,
LED, visualizador, conversor D/A, etc.) o a travs de adaptadores de entrada, asimilables
conceptualmente a registros, que reciben la informacin desde el perifrico (pulsador o
conmutado, comparador, conversor A/D, etc.). Desde su punto de vista, el procesador se
encuentra con un conjunto de registros que, a su vez, se comunican con un perifrico a
travs del cual reciben o transmiten informacin respecto al exterior.
De esta forma, el sistema digital puede dividirse en dos partes conceptuales:
el procesador que controla el proceso y efecta las operaciones pertinentes,
y la memoria, conjunto de registros que almacenan, reciben o envan la informacin:
PRO
CE
SA
DOR
unidad
operativa
unidad
de control
ME
MO
RIA
RAM
ROM
adaptadores
de
perifricos
BUS DE
DATOS
BUS DE
DIRECCIONES
BUS DE CONTROL
fri
cos
peri
Arquitectura de buses con memoria nica
24. Di seo de si st emas compl ej os 103
La utilizacin de buses diferenciados permite organizar tanto el almacenamiento
como la transferencia de informacin en forma simple: todos los registros se numeran
correlativamente accediendo a ellos por las mismas lneas (bus de datos), un segundo
conjunto de lneas seleccionan el registro sobre el que se opera (bus de direcciones) y
unas pocas lneas de control determinan la operacin a realizar y sincronizan la
transferencia de informacin (bus de control).
[En los captulos 19 y 20 (segundo volumen) se describe en detalle la arquitectura de
buses y la configuracin de mapas de memoria, con un amplio nmero de ejemplos de
ubicacin de bloques de memoria o adaptadores de perifricos en ellos.]
La organizacin mediante un mapa de memoria, gestionado a travs de buses, es una
estrategia de tipo genrico que puede ser aplicada de formas muy diversas (memoria
nica, arquitectura Harvard, mdulos especializados, ): lo bsico de esta metodologa
es el acceso a mltiples registros a travs de su nmero. Adems de la divisin en dos
partes, procesador y memoria, esta arquitectura permite abordar por separado el diseo
de cada elemento de la memoria (de los diversos bloques o partes de memoria RAM y
ROM y de los distintos perifricos), una vez establecida la numeracin de sus registros.
A diferencia de la configuracin de memoria nica, la arquitectura Harvard separa
las instrucciones que constituyen el programa de la parte de datos y comunicacin con el
exterior; de esa forma consigue mayor velocidad de procesamiento, a costa de utilizar un
mayor nmero de lneas debido a la duplicacin de los buses.
PRO
CE
SA
DOR
adaptadores
de
perifricos
DATOS
INS
TRUC
CIO
NES
Arquitectura Harvard de procesadores que actan bajo programa
En sistemas complejos de control de potencia, puede resultar til la separacin en
varias partes, comunicadas a travs de buses de reducido nmero de lneas (incluso
algunos de una sola lnea); suele interesar diferenciar entre s los diversos mdulos de
potencia, la comunicacin con el operador y la memoria de datos, controlados a travs de
un mdulo central de control general.
Control
general
DATOS
Comuni-
cacin
con el
operador
mdulos
de potencia
seleccin
estado
rdenes
Direccin
Consigna
Estado
Ejemplo de arquitectura con mdulos especializados para sistema de control de potencia
104 El ect rni ca Di gi t al
24. 3. Si st emas con esquema de cl cul o compl ej o
Un esquema apropiado para este tipo de diseo puede ser el siguiente:
1. Idear el mtodo de operacin (el esquema de clculo), es decir la secuencia
genrica de operaciones a realizar y la forma de efectuarlas.
2. Describir dicho esquema mediante un algoritmo o un grafo de estados.
3. Identificar los recursos operativos necesarios (la parte operativa), a saber:
- los recursos de clculo (operadores) que permiten efectuar todas las operaciones
incorporadas en el algoritmo,
- los registros necesarios para ejecutar las operaciones en comunicacin con los
operadores,
- el conexionado de tales elementos entre s y su comunicacin con el exterior.
4. Expresar la secuencia de control (la parte de control) en forma de mquina de
estados que ejecuta el algoritmo de control, activando secuencialmente, a travs de sus
salidas, los recursos operativos establecidos en el punto anterior. Cada estado
corresponde a un conjunto de acciones que se realizan a la vez (en paralelo), mientras
que acciones que requieren un orden correlativo dan lugar a varios estados sucesivos.
5. Abordar el diseo por separado de la parte operativa delimitada en el punto 3 (y,
dentro de ella, los diversos operadores y registros) y de la parte de control definida
funcionalmente en el punto 4.
La distincin entre parte operativa y parte de control, establecida en los puntos 3 y 4,
simplifica en gran manera el diseo, por cuanto que permite tratar por separado (en
momentos diferentes y con una cierta independencia) las operaciones a realizar y la
secuencia en que tales operaciones se realizan.
PARTE
DE
CONTROL
PARTE
OPERATIVA
seales
de control
resultados
que afectan
al control
De forma que al disear los recursos de clculo no es preciso considerar el orden con
que tales operaciones se ejecutan, ni el nmero de veces que se repite cada operacin, ni
los necesarios sincronismos entre operaciones y en la transferencia de datos. Asimismo,
al disear la parte de control se evita el considerar la configuracin en detalle de los
bloques que efectan las operaciones.
24. Di seo de si st emas compl ej os 105
La parte operativa ser construida, en general, mediante bloques operacionales,
registros (algunos de ellos con capacidad de desplazamiento), contadores y multiplexores
(para estructurar las comunicaciones); tambin suelen requerirse algunos biestables
individuales (que reciben el nombre de indicadores, flags) para resultados parciales (de
un solo bit) necesarios en operaciones posteriores (como el arrastre de suma o resta) o
para informar a la parte de control respecto a posibles saltos condicionados (resultado
nulo de una operacin, resultado negativo, desbordamiento, comparaciones, ).
En muchas ocasiones los bloques operacionales se reducen a uno solo: una ALU que
contenga las operaciones aritmticas y lgicas necesarias.
A L U
OPERANDO
RESULTADO INDICADORES
OPERANDO
Parte de control: mquina algortmica
La parte de control puede ser sintetizada por los mtodos generales de los sistemas
secuenciales, a partir de su mquina de estados.
Ahora bien, los algoritmos de control suelen corresponder a mquinas de estados de
tipo Moore, relativamente particulares:
a) cuyos estados estn presentes una sola unidad de tiempo (salvo los estados de
espera a que se cumpla una condicin, que tambin pueden ser formalizados en
trminos de una sola unidad de tiempo) ,
b) y su estructura es predominantemente lineal (series de estados sucesivos), junto con
bucles, avances y alternativas.
Tales mquinas de estados pueden formularse en trminos de series de estados
sucesivos y de saltos condicionados, los cuales pueden determinar:
- el recorrido de una serie de estados en forma cclica, repetidos varias veces hasta que
se cumple la correspondiente condicin (bucle),
- una modificacin en el recorrido de los siguientes estados, de forma que se produce un
salto hacia adelante sin pasar por los inmediatamente siguientes (avance),
- la existencia de varias posibilidades o caminos que conducen a diferentes series de
estados (alternativa).
106 El ect rni ca Di gi t al
Este tipo de estructura queda muy bien reflejado en los organigramas que se
utilizaban para expresar grficamente la estructura de los programas de computador. En
ellos las cajas rectangulares representan los estados (conjunto de acciones que se
ejecutan en paralelo) y los rombos representan los saltos condicionales, que pueden dar
lugar a bucles (caso de establecer un lazo cclico sobre la serie de estados ya recorridos),
a avances (caso de saltar en la serie de estados sin recorrer los inmediatamente siguientes)
o alternativas (caso de dar paso a dos series diferentes de estados).
bucle avance alternativa
s
no
s
no
s no
La codificacin de los estados con un solo 1 resulta sumamente apropiada, ya que
permite construir la mquina de estados reflejando directamente el organigrama sobre un
conjunto de biestables, cada uno de ellos correspondiente a un estado (caja
rectangular), y un conjunto de demultiplexores de dos lneas, corresponden a los saltos
condicionales (rombos). [Vase figura de la pgina siguiente.]
Comentario importante: Conviene tener en cuenta que las acciones propias de un estado,
si son de tipo sncrono (y lo sern la mayora de ellas), no se ejecutan en la unidad de
tiempo que corresponde a ese estado, sino cuando llega el flanco de reloj y el estado pasa
al siguiente. Por ello, un salto condicional que dependa de acciones sncronas propias del
estado anterior no se encontrar con el valor derivado de la aplicacin de tales acciones,
sino con el valor anterior a las mismas, dando lugar a una transicin errnea. Esto puede
evitarse aadiendo un estado intermedio que permita la ejecucin de tales acciones,
actualizando los valores relativos a las condiciones antes de abordar el salto.
Por ejemplo, sea un estado en el cual se carga un determinado valor en un registro P,
seguido de una transicin condicionada a P = 0; si la carga es sncrona y la condicin (el
rombo que indica el salto) es inmediatamente posterior a dicho estado, la evaluacin de
la condicin se har sobre el anterior valor del registro P y no sobre el nuevo valor.
Puede resolverse este problema con un estado adicional entre el citado y el salto
condicional, de forma que la actualizacin de P se har en la transicin a este estado,
antes de llegar a la evaluacin de la condicin para ejecutar o no el salto.
24. Di seo de si st emas compl ej os 107
bucle alternativa
Q
Q
D
Q
Q
no si
Q
Q
D
Q
Q
si no
Q
Q
Q
Q
Q
Q
Q
no si
avance
Q
D
Q
Q
D
Q
D
Q
D
Q
Q
D
Q
no s
Q
D
Q
Q
D
Q
D
Q
D
Q
Q
D
Q
s no
Q
D
Q
Q
D
Q
Q
D
Q
Q
D
Q
Q
D
Q
Q
D
Q
Q
D
Q
no s
Esta forma de construir la parte de control, configurando el correspondiente sistema
secuencial de forma que refleje directamente la estructura del algoritmo de control, recibe
el nombre de mquina algortmica.
Como ejemplo de descomposicin en parte operativa y de control se desarrolla a
continuacin el diseo (uno de los posibles diseos) de un procesador dedicado
especficamente a calcular el producto de dos nmeros binarios P y Q de 64 dgitos,
cuyo resultado R ser un nmero binario de hasta 128 dgitos.
[Para facilitar su exposicin, este ejemplo se refiere a un clculo numrico
conceptualmente simple y bien conocido; el prximo apartado contiene otros ejemplos de
clculo y un par de ejemplos no aritmticos referidos a control de cronmetros.]
1. El esquema de clculo puede ser el siguiente:
- multiplicar el multiplicando P por cada dgito del multiplicador Q (comenzando por
el menos significativo); dicho producto da como resultado P cuando el bit de Q vale
1 y 0 si dicho bit es nulo,
- efectuar el correspondiente desplazamiento sobre los productos parciales anteriores
para ajustarlos a su valor relativo,
- y sumar los productos parciales una vez desplazados.
Este esquema de actuacin se corresponde con el que se emplea al hacer a mano
una multiplicacin: cada fila de dicha multiplicacin es un producto parcial por uno de
los dgitos del multiplicador, cada fila se desplaza un lugar respecto a la anterior para
tener en cuenta su valor relativo y, una vez desplazadas, se suman todas las filas.
108 El ect rni ca Di gi t al
El esquema de clculo propuesto necesita un sumador de 128 bits (ya que el
resultado puede alcanzar tal longitud); ahora bien, es posible utilizar un sumador de
solamente 64 dgitos si la suma se efecta sobre los bits ms significativos del resultado y
lo que se desplaza, en cada suma parcial, es el propio resultado; es decir:
- hacer 64 veces lo que sigue
- recorrer sucesivamente los dgitos del multiplicador Q desde el bit menos
significativo y, cuando el correspondiente bit de Q valga 1, sumar el multiplicando P
sobre el resultado R; efectuar esta suma sobre la parte ms significativa del
resultado: R'= {65 bits superiores de R} (obsrvese que las sumas parciales se
efectan sobre los 65 bits ms significativos de R, ya que el resultado de una suma
con operandos de 64 bits puede llegar a tener 65 bits)
- desplazar el resultado R hacia la derecha (dividir por 2) para ajustar el valor relativo
de cada suma parcial respecto a la siguiente a efectuar; no hacer este desplazamiento
tras la ltima de las sumas.
Este esquema da lugar a 64 sumas parciales posibles, correspondientes a los 64
dgitos del multiplicador (dichas sumas se producen sobre los bits 127-63 del resultado);
pero slo produce 63 desplazamientos, de forma que el bit menos significativo del
producto, que se forma en la primera de las sumas parciales sobre el bit 63 del resultado,
pasa finalmente al bit 0 (unidades) del mismo.
2. El algoritmo correspondiente al anterior esquema de clculo puede ser el siguiente:
Se introduce un registro C (contador) para expresar el nmero de veces que se ha
realizado el ciclo bsico del algoritmo (sumas y desplazamientos).
Inicio del algoritmo
Leer P y Q;
Borrar R y C;
Repetir
Si bit
0
(unidades) de Q = 1
Sumar P + R' sobre R';
Fin_de_Si;
Si C = 111111 (63 64 ejecuciones de la repeticin;
la primera vez C = 0)
Fin del algoritmo.
Fin_de_Si;
Desplazar Q hacia la derecha;
Desplazar R hacia la derecha;
Incrementar C en una unidad;
Fin_de_Repetir (volver al inicio de la repeticin);
24. Di seo de si st emas compl ej os 109
3. Recursos de clculo necesarios:
Operadores:
- un sumador de 64 bits (salida en 65 bits),
- capacidad de desplazamiento hacia la derecha del resultado R y del multiplicador Q,
- un contador C mdulo 64 con entrada de borrado y deteccin de mximo (111111).
Registros:
- un registro de retencin de 64 bits para el multiplicando P,
- un registro de retencin de 64 bits para el multiplicador Q (con desplazamiento
hacia la derecha segn se ha dicho en los requisitos de operadores),
- un registro de 128 bits para el resultado R, con entrada de borrado (y desplazamiento
hacia la derecha segn tambin se ha dicho), cuyos 65 bits ms significativos R' han
de poderse cargar en paralelo (registro de retencin respecto a dichos 65 bits),
- un contador de 6 bits C, con entrada de borrado (y deteccin de mximo).
R'
R
E
D
B
B
T'
C
mx
E'
P
E
D
Q
0
Multiplicando Multiplicador
Resultado
Contador
Sumador
Q
R
65
127-63
128 bits
6 bits
64 bits 64 bits
65 bits
Las seales expresadas en la figura anterior, correspondientes a seales de control de
los recursos de clculo, son las siguientes:
- E : entrada de habilitacin del correspondiente registro de retencin; cuando E = 1 el
registro recoge la palabra binaria situada en sus entradas (en el caso del registro de
resultados, su habilitacin E' solamente acta sobre los 65 bits ms significativos: R'),
- B : entrada de borrado sncrono del correspondiente registro (incluido el contador);
cuando B = 1 todos los bits del registro pasan a valor 0,
- D : entrada de desplazamiento hacia la derecha (divisin por 2) del correspondiente
registro; cuando D = 1 cada biestable recoge el valor que tena el biestable de su
izquierda y el biestable ms significativo pasa a valor 0,
- T' : entrada de habilitacin de contaje del contador; cuando T' = 1 el contador
incrementa su valor en una unidad (con el reloj del sistema secuencial),
- mx : salida indicadora de que el contador se encuentra en su valor mximo 111111
- Q0 : salida correspondiente al biestable menos significativo (unidades) del registro Q.
110 El ect rni ca Di gi t al
4. La maquina de estados que expresa la secuencia de control puede ser la representada
en el organigrama de la figura siguiente (parte de la izquierda).
si
no
Init = 1
Procesador
Disponible
Leer P y Q
Borrar R y C
Q = 1
0 no
si
Sumar P + R'
sobre R'
C = 63
si
no
Desplazar Q
Desplazar R
0 1
D
Q
D
Q
0 1
Init
Dis
Q
0
D
Q
Pr Rs
Rs Rs
Rs Rs
Rs Rs
D
Q
0 1
max
C
Mquina de Estados Sistema Secuencial
Seales
que corresponden
a los estados
(salidas)
y a las transiciones
(entradas)
Dis
Init
E (P y Q)
B (R y C)
Q
0
E (R)
max
C
D (R y Q)
T' (C)
E (P y Q)
B (R y C)
E (R)
T' (C)
D (R y Q)
D
Q
Rs Rs
estado
intermedio
Incermentar C
5. En esta misma figura (parte de la derecha) se representa el sistema secuencial que
realiza dicha mquina de estados (en una codificacin de estados con un solo 1).
Se ha supuesto que el proceso de clculo se activa con una seal Init (inicio) y que
cuando acaba se vuelve al estado inicial, de forma que la seal Disp (disponible) seala
que se ha completado el ltimo proceso de clculo que ha sido activado. La seal Rs
(reset) de los biestables sirve para inicializar el sistema: borra todos los biestables (Rs)
menos el primero (Pr), que lo pone a 1.
24. Di seo de si st emas compl ej os 111
En la anterior mquina algortmica se ha introducido un estado intermedio para que
las acciones cargar Q e incrementar C (propias, respectivamente, del segundo estado y
del ltimo) se ejecuten antes de llegar a los saltos condicionales que dependen de ellas
(Q0 = 1 y C = 63).
Sin dicho estado intermedio, la primera vez que se evale Q0 = 1 se encontrar con
el registro Q a cero (pendiente de cargar el nuevo valor de Q); asimismo, cuando, desde
el ltimo estado, se pase directamente a la condicin C = 63 (por ser Q0 = 0), el valor de
C estar pendiente del ltimo incremento correspondiente a dicho estado. Un solo estado
adicional, previo a las dos condiciones de salto citadas, facilita, en este caso, la ejecucin
de las dos acciones sealadas (cargar Q e incrementar C).
Conf i guraci n mi croprogramada de l a part e de cont rol
El circuito de la pgina anterior corresponde a la forma microcableada de
construir la parte de control, con codificacin de un solo uno que permite identificar
cada estado (y el conjunto de acciones asociadas al mismo) con un biestable y trasladar
directamente el grafo de estados (especialmente si se dibuja en forma de ordinograma)
a su configuracin circuital.
La parte de control puede ser construida, tambin, en forma microprogramada (ver
apartado 14.3, volumen segundo), recogiendo el estado sobre un registro y utilizando un
codificador para calcular el nuevo estado a partir del estado anterior y del vector de
entradas; no resulta oportuna la codificacin con un solo uno sino que, para reducir el
tamao del codificador, interesa utilizar el menor nmero posible de variables de estado.
REGISTRO ( Estado )
nuevo Estado
E n t r a d a s
C O D I F I C A D O R
C O D I F I C A D O R
E S T A D O
S a l i d a s
En estructura ROM, los codificadores se configuran directamente desde su tabla de
conversin: su Matriz O coincide con la propia tabla funcional; podemos considerar
que los codificadores contienen microinstrucciones en la siguiente forma:
- el primer codificador contiene la tabla relativa al clculo del estado siguiente, a partir
del estado anterior y el vector de entrada;
- el segundo contiene la tabla de los vectores de salida en relacin con los estados.
112 El ect rni ca Di gi t al
La forma microprogramada conserva, en forma de programa, la estructura de la
parte de control, pues el codificador expresa directamente la correspondencia entre la
situacin actual (estado y vector de entrada) y el nuevo estado; por ello, resulta fcil
efectuar modificaciones de esta mquina de estados, cambiando las correspondientes
microinstrucciones (la programacin) del codificador.
En principio, la configuracin microcableada es ms rpida (menores tiempos de
propagacin) y ocupa un rea de integracin ms reducida, pero puede ser muy compleja.
La forma microprogramada es ms directa, ms fcil de modificar (basta cambiar las
correspondientes microinstrucciones en los codificadores), pero puede necesitar
bloques ROM grandes.
En el caso del multiplicador de dos nmeros binarios, el nmero de estados
necesarios es 5, que pueden codificarse con 3 variables de estado; la parte de control
requiere un codificador de 6 entradas (3 para el estado anterior y 3 para el vector de
entradas) y 3 salidas para calcular el nuevo estado y un simple decodificador de 3
entradas para el vector de salida, segn el diagrama de bloques siguiente:
REGISTRO ( Estado )
nuevo Estado
C O D I F I C A D O R
D E C O D I F I C A D O R
E S T A D O
Dis Y1 E Y2
R'
Init Q max
0 C
Y1 : E (P y Q), B (R y C)
Y2 : D (R y Q), T (C)
Sistemas que actan bajo programa
En los sistemas digitales que actan bajo programa (procesadores programables,
computadores, microprocesadores, microcontroladores,...) es clsica la separacin entre
la parte operativa (ALU y registros) y la parte de control; en esta segunda, el estado se
encuentra conformado bsicamente por el contador de programa, la instruccin que se
est ejecutando y un contador de ciclos que desglosa dicha ejecucin.
Dentro de una instruccin, es preciso distinguir dos partes claramente diferenciadas
por su funcionalidad: el cdigo de operacin (que establece cul es la actuacin
especfica de la instruccin) y la direccin (o, en su caso, direcciones) del operando (o de
los diversos operandos).
24. Di seo de si st emas compl ej os 113
El cdigo de operacin de una instruccin constituye la parte ms relevante del
estado del procesador; junto con ella, un contador numera sucesivamente los ciclos de
ejecucin de la instruccin (ya que, en general, cada instruccin emplear varios ciclos
de reloj para su ejecucin):
estado = cdigo de operacin (de la instruccin) + n de ciclo (contador)
La realizacin microprogramada de la mquina de estados que controla la ejecucin
de las instrucciones es de particular inters y el correspondiente codificador coincide con
el denominado decodificador de instrucciones.
Cdigo de operacin
(I N S T R U C C I N)
S A L I D A S
E N T R A D A S
C O D I F I C A D O R
B
estado
C O N T A D O R
D E P R O G R A M A
salto
L T'
siguiente
instruccin
fin de ejecucin
de una instruccin
borrado
del contador
i
n
i
c
i
o
d
e
n
u
e
v
a
i
n
s
t
r
u
c
c
i
n
nueva posicin
C O N T A D O R
(n de ciclo)
El contador de programa seala la ubicacin (en el mapa de memoria) de la
siguiente instruccin a ejecutar y, en tal sentido, es parte del estado del procesador (pues
es relevante en el control de la secuencia de instrucciones), pero el estado del contador
no se realimenta hacia dentro de la parte de control.
El primer ciclo de todas las instrucciones (n de ciclo = 0) consiste en la bsqueda
de la propia instruccin, comenzando por su cdigo de operacin. La lectura de una
instruccin completa requiere, en ocasiones, varios ciclos ya que puede ocupar varias
palabras sucesivas; tras lo cual, el contador de programa avanza una unidad, pasando a
sealar la instruccin siguiente; los saltos se producen modificando el contenido de
contador mediante carga en paralelo de la nueva localizacin.
24. 4. Mqui nas al gor t mi cas: vari os ej empl os
Se detallan, a continuacin, varios ejemplos de sistemas digitales relativos a
clculos numricos: divisin, raz cuadrada, conversin BCD-binario y binario-BCD,
seguidos de un par de ejemplos no aritmticos referidos a control de cronmetros.
Nota: Todas las mquinas algortmicas de este apartado (as como la del multiplicador de 64 bits,
descrita en el apartado anterior) han sido comprobadas, a travs de su descripcin en VHDL y la
posterior simulacin de la misma (utilizando el compilador MAX+plus II de ALTERA).
114 El ect rni ca Di gi t al
24.4.1. Divisor de dos nmeros binarios
Sean P y Q dos nmeros binarios, de 64 y 16 dgitos, respectivamente.
Esquema de clculo
- recorrer el dividendo P dgito a dgito (comenzando por el ms significativo),
restando el divisor Q cuando se pueda;
- en cada desplazamiento, aadir un 1 al resultado R si se efecta la resta y un 0
cuando sta no es posible.
Este esquema se deduce directamente del que se emplea para hacer a mano la
divisin en binario:
- se toman los primeros dgitos del dividendo (los ms significativos), de forma que
correspondan a un nmero mayor o igual que el divisor, se les resta el divisor y se
pone un 1 en el resultado;
- a partir de aqu, se toma el resto resultante y se le aade (se baja) un nuevo dgito
del dividendo y, si es posible, se le resta el divisor y se aade un 1 al resultado y, caso
de que la resta no sea factible, se aade un 0 al resultado;
- y se repite, sucesivamente, el anterior proceso de bajar un nuevo dgito del
dividendo y restar, si es posible, hasta completar el recorrido del mismo.
Algoritmo
Se utilizan dos registros auxiliares: un contador C para expresar el nmero de veces
que se ha realizado el ciclo y un registro S, resto parcial o dividendo actual, que
recoge el nmero binario que, en cada momento, se compara con el divisor; dicho
registro S se conecta con el P, formando un registro de desplazamiento (hacia la
izquierda) S-P.
Inicio del algoritmo
Leer P y Q; Borrar R, S y C;
Repetir
Desplazar hacia la izquierda S-P; Incrementar C en una unidad;
Si S Q Restar S - Q sobre S;
Desplazar R hacia la izquierda con entrada 1;
Si no Desplazar R hacia la izquierda con entrada 0;
Fin_de_Si;
Si bit
6
(ms significativo) de C = 1 (64 ejecuciones de la repeticin)
Fin del algoritmo.
Fin_de_Si;
Fin_de_Repetir (volver al inicio de la repeticin);
24. Di seo de si st emas compl ej os 115
Recursos de clculo
S
P
E
D
E
B
T'
C
C
E'
Q
carry
D
Divisor
Resultado
Resto
Contador
Restador
R
64 bits
64 bits
16 bits
17 bits
7 bits
Dividendo
6
D
El registro S unido al P, como registro de desplazamiento S-P, permite ir aadiendo
al resto parcial o dividendo actual S los dgitos del nmero P uno a uno; la entrada
de control D se refiere a desplazamiento hacia la izquierda (en el caso del multiplicador
se utilizaba D para el desplazamiento hacia la derecha).
La salida de arrastre del restador (acarreo carry) sirve para comparar S (el resto
parcial) con el divisor Q: cuando dicha salida es 0 (S Q) se ejecuta la resta (se habilita
el resistro S) y se carga un 1 (por desplazamiento) en el resultado; cuando es 1 (S < Q) no
se efecta la resta (habilitacin del resistro S a 0) y en el resultado se carga un 0.
Configuracin microprogramada de la mquina de estados
La parte de control requiere 6 estados, segn la correspondiente mquina de estados
representada en la figura de la pgina siguiente:
Y1 : E (P y Q), B (R, S y C)
REGISTRO ( Estado )
C O D I F I C A D O R
D E C O D I F I C A D O R
Dis Y1 Y3 D
R
Init
C
carry
6
Y2 : D (S y P), T (C)
Y2
Y3 : E (S), D (R)
I
116 El ect rni ca Di gi t al
Mquina de estados y su configuracin microcableada
Init
Dis
C
6
E (P y Q)
B (R, S y C)
E (S)
T' (C)
D (S y P)
si
no
Init = 1
Procesador
Disponible
Leer P y Q
Borrar R, S y C
S < Q
si
no
Restar S - Q
sobre S
C = 64
no
si
Desplazar S-P
0 1
D
Q
D
Q
0 1
Init
Dis
D
Q
Pr Rs
Rs Rs
Rs Rs
0 1
Mquina de Estados Sistema Secuencial
carry
Desplazar R Desplazar R
D
Q
Rs Rs
D
Q
Rs Rs
Incrementar C
D (R)
D (R)
C
6
E (P y Q)
B (R, S y C)
E (S)
T' (C)
D (S y P)
carry
D (R)
D (R)
D
Q
Rs Rs
estado
intermedio
Ha sido necesario introducir un estado intermedio antes de la condicin S > Q para
que la accin desplazar S-P se ejecute antes de llegar al salto condicional que depende de
ella (S < Q). Sin dicho estado intermedio, al llegar al salto, el registro S no habra
tomado, por desplazamiento, un nuevo dgito de Q.
24.4.2. Raz cuadrada de un nmero binario
Sea P un nmero binario de 64 dgitos.
Esquema de clculo
- recorrer el nmero P de dos en dos dgitos (comenzando por los ms significativos),
restando, cuando se pueda, el resultado parcial R con el aadido 01 al final;
- en cada desplazamiento, aadir un 1 al resultado R si se efecta la resta y un 0
cuando sta no es posible.
24. Di seo de si st emas compl ej os 117
Este esquema se deriva del que se emplea para hacer a mano la raz cuadrada de
un nmero binario:
- se toman los dos primeros dgitos (los ms significativos; si el nmero de dgitos es
impar se toma solamente el primero de ellos) y, si es posible, se les resta 01 y se pone
un 1 en el resultado (si no es factible, no se hace la resta y el resultado es 0);
- a partir de aqu, se toma el resto resultante y se le aaden (se bajan) dos nuevos
dgitos del nmero de manera que, si resulta un resto mayor o igual que el doble del
resultado parcial con un 1 aadido (que equivale a aadir, simplemente, 01 al
resultado parcial), se resta y se aade un 1 al resultado y, caso de que la resta no sea
factible, se aade un 0 al resultado;
- y se repite, sucesivamente, el anterior proceso de bajar dos nuevos dgitos y restar,
si es posible, hasta completar el recorrido del nmero inicial.
Algoritmo
Se utilizan dos registros auxiliares: un contador C para el nmero de veces que se ha
realizado el ciclo y un registro S, resto parcial, que recoge el nmero binario que, en
cada momento se compara con el R01 (el resultado parcial, seguido de 01).
Al igual que en el caso anterior, el registro S se une como registro de desplazamiento
al P (registro S-P), para ir aadiendo al resto parcial S los dgitos del nmero P de dos
en dos.
Inicio del algoritmo
Leer P; Borrar R, S y C;
Repetir
Desplazar hacia la izquierda S-P; Incrementar C en una unidad;
Desplazar hacia la izquierda S-P;
Si S R&01
Restar S - R&01 sobre S;
Desplazar R hacia la izquierda con entrada 1;
Si no Desplazar R hacia la izquierda con entrada 0;
Fin_de_Si;
Si bit
5
(ms significativo) de C = 1 (32 ejecuciones de la repeticin)
Fin del algoritmo.
Fin_de_Si;
Fin_de_Repetir (volver al inicio de la repeticin);
118 El ect rni ca Di gi t al
Mquina de estados y su configuracin microcableada
El control expresado en el algoritmo anterior requiere 6 estados (ms un estado
intermedio), segn la mquina de estados representada en la figura siguiente.
Init
Dis
C
5
E (P )
B (R, S y C)
E (S)
T' (C)
D (S y P)
si
no
Init = 1
Procesador
Disponible
Leer P
Borrar R, S y C
S < R01
si
no
Restar S - R01
sobre S
C = 32
no
si
Desplazar S-P
0 1
D
Q
D
Q
0 1
Init
Dis
D
Q
Pr Rs
Rs Rs
Rs Rs
0 1
Mquina de Estados Sistema Secuencial
carry
Desplazar R Desplazar R
D
Q
Rs Rs
D
Q
Rs Rs
Incrementar C
D (R)
D (R)
C
5
E (P y Q)
B (R, S y C)
E (S)
T' (C)
D (S y P)
carry
D (R)
D (R)
D (S y P) Desplazar S-P
D
Q
Rs Rs
D (S y P)
D
Q
Rs Rs
estado
intermedio
Ha sido necesario introducir un estado intermedio antes de la condicin S < R01
para que la accin desplazar S-P se ejecute antes de llegar al salto condicional que
depende de ella (S < R01); de otra forma, el registro S no hubiera tomado, por
desplazamiento, dos nuevos dgitos de Q sino solamente uno.
Puede ahorrarse un estado (y el consiguiente biestable) haciendo que el
desplazamiento del registro S-P sea de dos bits en una sola vez; para ello bastar conectar
la salida de cada biestable con la entrada del biestable que est dos lugares ms hacia la
izquierda del mismo (no del inmediatamente siguiente).
24. Di seo de si st emas compl ej os 119
Recursos de clculo
S
P
D
E
B
T'
C
C
E'
carry
D
Resultado
Resto
Contador
Restador
R
32 bits
64 bits 34 bits
6 bits
Nmero
0 1
31 bits
5
R
R
31
30 - 0
D
La entrada de control D controla el desplazamiento hacia la izquierda y la salida de
arrastre del restador sirve para comparar S (el resto parcial) con R01 y para almacenar
en el resultado R un 1 (cuando S Q) o un 0 (cuando S < Q).
Configuracin microprogramada de la mquina de estados
Y1 : E (P), B (R, S y C)
REGISTRO ( Estado )
C O D I F I C A D O R
D E C O D I F I C A D O R
Dis Y1 Y4 D
R
Init carry
Y2 : D (S y P), T (C)
C
5
Y3
Y3 : D (S y P)
Y2
Y4 : E (S), D (R)
120 El ect rni ca Di gi t al
24.4.3. Conversin binario a BCD
Sea P un nmero binario de 64 dgitos.
Esquema de clculo
- recorrer el nmero P de bit en bit (comenzando por el ms significativo) y sumar (en
BCD) dicho bit al resultado;
- en cada desplazamiento, salvo en el ltimo, multiplicar por dos (en BCD) el
resultado.
Este esquema se deriva de la expresin del valor relativo de los dgitos de un nmero
binario; consideremos un nmero ms pequeo n de 16 dgitos, ponml kj i hgfedcba(2:
n = p.2
15
+ o.2
14
+ n.2
13
+ m.2
12
+ l.2
11
+ k.2
10
+ j.2
9
+ i.2
8
+ h.2
7
+ g.2
6
+
+ f.2
5
+ e.2
4
+ d.2
3
+ c.2
2
+ b.2 + a
= ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( p . 2 ) + o ) . 2 + n ) . 2 + m ) . 2 + l ) . 2 + k ) . 2 + j ) . 2 +
+ i ) . 2 + h ) . 2 + g ) . 2 + f ) . 2 + e ) . 2 + d ) . 2 + c ) . 2 + b ) . 2 + a
El producto por 2 puede hacerse sumando R consigo mismo: R + R = 2.R; las
operaciones han de hacerse en BCD para que el resultado quede en tal codificacin.
El esquema de clculo puede ser reordenado de la siguiente manera:
- recorrer el nmero P de bit en bit (comenzando por el ms significativo) haciendo lo
siguiente: (multiplicar R por 2) sumar en BCD el resultado consigo mismo (R + R);
y sumar tambin el correspondiente bit del nmero P; dicho bit puede sumarse (en la
misma operacin (R + R) a travs del arrastre inicial.
Algoritmo
Inicio del algoritmo
Leer P; Borrar R y C;
Repetir Sumar (en BCD) R + R + primer bit de P en R;
Desplazar hacia la izquierda P;
Incrementar C en una unidad;
Si C = 111111 (64 ejecuciones de la repeticin; la primera vez C = 0)
Fin del algoritmo. Fin_de_Si;
Fin_de_Repetir (volver al inicio de la repeticin);
24. Di seo de si st emas compl ej os 121
Recursos de clculo
R
P
D
E
B
T'
C
mx
E
C_
Resultado
Contador
Sumador BCD
64 bits
80 bits
6 bits
Nmero
76 bits
C
R
75 - 0
P
63
La conversin de un nmero binario de 64 bits a BCD ocupa un mximo de 20
dgitos BCD (10
20
> 2
64
), que equivalen a 80 bits; el nmero BCD (en R) anterior a la
ltima suma (corresponde a 63 bits) ocupa un mximo de 19 dgitos (10
19
> 2
63
), 76 bits.
Mquina de estados y su configuracin microcableada
Init
Dis
max
C
E (P )
B (R y C)
E (R)
T' (C)
D (P)
si
no
Init = 1
Procesador
Disponible
Leer P
Borrar R y C
C = 63
no
si
D
Q
D
Q
0 1
Init
Dis
Pr Rs
Rs Rs
0 1
Mquina de Estados Sistema Secuencial
D
Q
Rs Rs
Incrementar C
max
C
E (P)
B (R y C)
Desplazar P
Sumar R + R +
+ primer bit P
E (R)
T' (C)
D (P)
No se ha aadido ningn estado intermedio y, por ello, la condicin C = 63 se
verifica cuando el ciclo se ha recorrido 64 veces, ya que la accin incrementar C se
ejecuta en forma sncrona en el mismo flanco de reloj que el salto condicionado (la
primera vez C = 0).
122 El ect rni ca Di gi t al
Configuracin microprogramada de la mquina de estados
Y1 : E (P), B (R y C)
Y2 : E(R), D (P), T (C)
REGISTRO ( Estado )
C O D I F I C A D O R
D E C O D I F I C A D O R
Dis Y1 Y2
Init max
C
Habida cuenta de que, en la configuracin microcableada el tamao de los
codificadores aumenta fuertemente con el nmero de sus variables de entrada (se duplica
cada nueva entrada), puede resultar conveniente utilizar tcnicas de multiplexado de las
entradas: suele suceder que no todas las entradas actan en todos los estados, de forma
que el nmero efectivo de ellas puede reducirse por multiplexado.
En este caso, la entrada Init acta solamente con el primer estado y la entrada maxC
lo hace con el ltimo estado; es posible multiplexarlas mediante la variable de estado ms
significativa y el codificador se reduce a la mitad de tamao.
Y1 : E (P), B (R y C)
Y2 : E(R), D (P), T (C)
REGISTRO ( Estado )
C O D I F I C A D O R
D E C O D I F I C A D O R
Dis Y1 Y2
Init
max
C
24. Di seo de si st emas compl ej os 123
24.4.4. Conversin BCD a binario
Sea P un nmero BCD de 16 dgitos (64 bits).
Esquema de clculo
- recorrer el nmero P de dgito en dgito (es decir, de 4 en 4 bits) comenzando por el
dgito BCD ms significativo y sumar (en binario) dichos cuatro bits al resultado;
- en cada desplazamiento, salvo en el ltimo, multiplicar por diez el resultado.
Este esquema corresponde a la expresin del valor relativo de las cifras de un
nmero BCD; sea n de 16 dgitos, PONMLKJIHGFEDCBA(10, que sern 64 bits:
n = P.10
15
+ O.10
14
+ N.10
13
+ M.10
12
+ L.10
11
+ K.10
10
+ J.10
9
+ I.10
8
+ H.10
7
+
+ G.10
6
+ F.10
5
+ E.10
4
+ D.10
3
+ C.10
2
+ B.10 + A
= ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( P . 10 ) + O ) . 10 + N ) . 10 + M ) . 10 + L ) . 10 + K ) . 10 +
+ J ) . 10 + I ) . 10 + H ) . 10 + G ) . 10 + F ) . 10 + E ) . 10 +
+ D ) . 10 + C ) . 10 + B ) . 10 + A
El producto por 10 puede hacerse de la siguiente forma: R . 8 + R . 2 (se suma R
desplazado 3 dgitos R000 que equivale, en binario, a multiplicar por 8 con R
desplazado 1 dgito, R0 que equivale a multiplicar por 2).
El esquema de clculo anterior puede ser reordenado en la forma siguiente:
- recorrer el nmero P de cuatro en cuatro bits (comenzando por los ms
significativos) haciendo lo siguiente: (multiplicar R por 10) sumar el resultado R
desplazado tres bits (resultado con 3 ceros aadidos al final: R000) con el mismo
resultado desplazado un bit (resultado con 1 cero aadido detrs: R0); y sumar
tambin dichos cuatro dgitos del nmero P.
Algoritmo
Se utiliza el contador C para contar el nmero de veces que se ha realizado el ciclo.
Inicio del algoritmo
Leer P; Borrar R y C;
Repetir
Sumar R&000 + R&0 + 4 primeros bits de P en R;
Si C = 1111 (15 16 ejecuciones de la repeticin; la primera vez C = 0)
Fin del algoritmo.
Fin_de_Si;
Desplazar hacia la izquierda P 4 dgitos;
Incrementar C en una unidad;
Fin_de_Repetir (volver al inicio de la repeticin);
124 El ect rni ca Di gi t al
Mquina de estados y su configuracin microcableada
El control necesita solamente cuatro estados, conforme a la siguiente mquina
algormica:
Init
Dis
mx
C
E (P )
B (R y C)
T' (C)
E (R)
si
no
Init = 1
Procesador
Disponible
Leer P
Borrar R y C
C = 15
si
no
Sumar R000 + R0
+ P
1 0
D
Q
D
Q
0 1
Init
Dis
D
Q
Pr Rs
Rs Rs
Rs Rs
Mquina de Estados Sistema Secuencial
D
Q
Rs Rs
Incrementar C
E (P y Q)
B (R y C)
D4 (P)
D4 (P)
Desplazar P 4 bits
63-60
E (R)
mx
C
T' (C)
El desplazamiento de P cuatro dgitos hacia la izquierda puede efectuarse en un solo
estado, a travs de la conexin serie adecuada de los biestables del registro P; si fuera un
registro de desplazamiento normal, requerira cuatro estados para hacerlo bit a bit. De
esta forma, el clculo es ms rpido, la parte de control requiere menor nmero de
estados y el circuito secuencial menor nmero de biestables.
No ha sido necesario introducir ningn estado intermedio pues la condicin C = 15
no se encuentra inmediatamente detrs de la accin incrementar C, sino que hay un
estado en medio que permite ejecutar el incremento.
24. Di seo de si st emas compl ej os 125
Recursos de clculo
R
B
T'
C
mx
E
Resultado
Contador
Sumador binario de 3 nmeros
54 bits
4 bits
50 bits
R
49 - 0
50 bits
R
49 - 0
50 bits
R
49 - 0
P
D4
E
64 bits
Nmero
P
63
P
62
P
61
P
60
La conversin de un nmero de 16 dgitos BCD a binario ocupa un mximo de 54
bits (2
54
> 10
16
); el nmero binario (en R) anterior a la ltima suma (el correspondiente a
15 dgitos BCD) ocupa un mximo de 50 bits (2
50
> 10
15
).
La entrada D4 controla el desplazamiento cuatro bits hacia la izquierda: para ello es
necesario que las conexiones serie del registro de desplazamiento sean de la salida de
cada biestable con la entrada del situado cuatro lugares ms a la izquierda del mismo.
Configuracin microprogramada de la mquina de estados
Init
max
C
Y1 : E (P), B (R y C)
REGISTRO ( Estado )
C O D I F I C A D O R
D E C O D I F I C A D O R
Dis Y1
Y2 : D4 (P), T (C)
Y2 E
R
126 El ect rni ca Di gi t al
Las cinco mquinas algortmicas descritas anteriormente se refieren a operaciones
aritmticas. A fin de dejar constancia de que este mtodo de divisin parte operativa
parte de control es de tipo general (y no solamente para clculos matemticos) se
incluyen, a continuacin, dos ejemplos de mquinas algortmicas relativas a control de
cronmetros.
24.4.5. Control de un cronmetro mediante pulsadores
Se desea controlar un cronmetro mediante dos pulsadores P y Q tal que el contaje
de tiempo se inicie al activar P y se detenga al pulsar Q y un segundo pulso de Q sirva
para poner a cero el cronmetro; en cambio, una vez detenido el contaje, si se pulsa P se
reanuda el mismo. Si mientras el cronmetro est activo se pulsa P, el contaje prosigue
pero el visualizador queda detenido en el ltimo valor previo a dicho pulso; se vuelve a
la visualizacin normal del contaje pulsando nuevamente P.
Parte operativa
Dado que es un sistema relativamente simple, resulta adecuado comenzar
identificando los recursos operativos necesarios. El cronmetro requiere un contador a
partir de una frecuencia de 10 Hz (perodo de 0,1 s), con entradas de habilitacin T y de
borrado B, un registro para retener el contaje, con entrada de habilitacin E, y un
visualizador apropiado. La siguiente figura muestra el diagrama de bloques para un
cronmetro con capacidad hasta 10 horas (9 h 59 m 59 s 9 dcimas).
Registro Registro
BCD - 7seg. BCD - 7seg.
Registro
BCD - 7seg.
Registro
BCD - 7seg.
E E E E
E
CONTADOR
MOD 6x10
CONTADOR
MOD 6x10
0,1s
1s 1m 1h
CONTADOR
1 DCADA
CONTADOR
1 DCADA
mx mx mx E E E E
10 Hz
T
B B B B
B
Parte de control
El control de este sistema responde al siguiente grafo de estados (se ha dado
prioridad al pulsador P respecto a Q):
borrado en marcha
parado
detencin
contaje
detencin
de la visualizacin
visualizacin
fija
P
P
P
P
P
P
Q.P
Q
Q.P
Q.P
24. Di seo de si st emas compl ej os 127
Mquina de estados y su configuracin microcableada
B
Borrar contador
D
Q
0 1
P
B
Pr Rs
Mquina de Estados Sistema Secuencial
P
no
P = 1
E
T
Habilitar contador
y registro
si
P
no
P = 0
E
T
Habilitar contador
y registro
si
P
no
P = 1
Q
no
Q = 1
si
T
Habilitar contador
P
no
P = 0
T
Habilitar contador
P
no
P = 1
si
si
no
no
Q = 1
si
todo deshabilitado
Q
si
no
P = 1
no
Q = 1
si
no
Q = 0
todo deshabilitado
si
D
Q
1 0
P
E,T
Rs Rs
Q
1 0
P
T
Rs Rs
D
Q
0 1
P
E,T
Rs Rs
0 1
Q
D
D
Q
0 1
P
T
RS Rs
0 1
Q
Q
1 0
Q
Rs Rs
D
Q
0 1
P
Rs Rs
D
0 1
Q
si
Q
Configuracin microprogramada de la mquina de estados
REGISTRO ( Estado )
C O D I F I C A D O R
D E C O D I F I C A D O R
B T,E
P Q
T T,E T
128 El ect rni ca Di gi t al
24.4.5. Control de un cronmetro para medir tiempos de 8 nadadores
Interesa un cronometro manual para carreras de natacin de ocho nadadores, con
capacidad de medida hasta 100 minutos y precisin de una dcima de segundo; un
pulsador R servir para su puesta a cero y otro C para todo el control de medidas y
visualizacin: para iniciar el contaje se pulsa C y, luego, se pulsar sucesivamente ocho
veces ms para registrar el tiempo de cada uno de los nadadores. Una vez finalizada la
medida de los ocho tiempos, aparecer en el visualizador el tiempo del primer nadador y
cada vez que se pulse C el visualizador pasar a representar el tiempo del siguiente
(obviamente, del octavo vuelve a pasar al primero de ellos).
Parte operativa
Al igual que en el caso anterior, el cronmetro requiere un contador con un reloj de
10 Hz (perodo de 0,1 s) y entradas de habilitacin T y de borrado B y un visualizador;
tambin se necesitar un registro para almacenar el tiempo de cada nadador.
Los ocho registros han de tener sus entradas conectadas a las salidas del contador y
sus salidas deben poder conectarse, en forma multiplexada, al visualizador. Para facilitar
el diseo (y el dibujo del mismo) el multiplexado se realiza dotando a los registros de
salida tri-estado, de forma que todos ellos estarn conectados al visualizador y, en cada
momento, se activan las salidas del registro que corresponda. Cada uno de los registros
tendr una entrada de habilitacin de escritura Ei (i variando de 0 a 7), otra de
habilitacin de lectura OEi y una entrada comn de borrado B.
En principio, el grafo de estados de este sistema tendr, al menos, 17 estados, debido
a la necesidad de diferenciar los registros, en las dos situaciones: escritura (ocho estados)
y lectura (otros ocho); para evitar tan amplio nmero de estados se puede utilizar un
contador mdulo 8 (cont), seguido de un decodificador, que seleccione, en cada
momento, el registro al que le corresponde almacenar la salida del contador de tiempo
(situacin de escritura) o representar su valor en el visualizador (lectura).
De igual forma, resulta conveniente utilizar un detector de los flancos de subida del
pulsador C, para evitar tener que detectar cada pulsado a travs de una secuencia C C .
El contador auxiliar mdulo 8 tendr una entrada de habilitacin para el contaje de
registros T y la entrada comn de borrado B; su habilitacin T se producir en ambas
situaciones (escritura y lectura) pero solamente cuando se detecta flanco F de la seal C:
F . lectura) (escritura ' T + = .
De manera que la parte operativa ampliada con el contador-selector de registro y con
el detector de flancos quedar en la forma representada en la figura siguiente:
24. Di seo de si st emas compl ej os 129
8 r e g i s t r o s c o n s a l i d a t r i - e s t a d o
BCD - 7seg. BCD - 7seg. BCD - 7seg.
E
E
CONTADOR
MOD 6x10
CONTADOR
MOD 6x10
0,1s
1s 1m
CONTADOR
1 DCADA
mx mx E E E
10 Hz
T
B B B
B
B
habilitacin de
escritura
i
OE
OE
habilitacin
de lectura
i
cont
mdulo 8
E T
B
decodificador
W
i
000
001
010
011
100
101
110
111
10 Hz
C F D
D
detector de flancos
Parte de control
Un posible grafo de estados para representar el control de este sistema es el
siguiente:
borrado
registro de tiempos:
escritura
visualizacin de tiempos:
lectura
C
(contador = 7) . F
B
La escritura corresponde al registro de tiempos de los ocho nadadores y la lectura a
la posterior visualizacin cclica de los mismos. El contador auxiliar, que recorre los ocho
registros, debe contar tanto en el estado de lectura como en el de escritura cuando se
detecta un flanco del pulsador C.
Configuracin microprogramada de la mquina de estados
REGISTRO ( Estado )
C O D I F I C A D O R
D E C O D I F I C A D O R
B
R max
W F
T
cont
F
escritura
lectura
130 El ect rni ca Di gi t al
Mquina de estados y su configuracin microcableada
B
Borrado general
D
Q
0 1
F
B
Pr Rs
Mquina de Estados Sistema Secuencial
F
no
F = 1
W
escritura
si
mx
no
cont = 7
lectura
si
D
Q
0 1
mx
W
Rs Rs
cont
si
F
no
F = 1
si
R
no
R = 1
D
Q
1 0
P
Rs Rs
0 1
F
cont
F
T
24. 5. Divi di r en part es l os ti empos de ret raso: segment acin
Los bloques o mdulos constitutivos que conforman un sistema sncrono estn
configurados por una parte combinacional situada entre dos registros (o conjuntos de
biestables), segn la figura siguiente (vase el apartado 15.3, segundo volumen, pginas
111-114):
Bloques
anteriores
B
i
e
s
t
a
b
l
e
s
B
i
e
s
t
a
b
l
e
s
Lgica
combinacional
Bloque
24. Di seo de si st emas compl ej os 131
La velocidad de trabajo de uno de estos mdulos queda limitada por el tiempo de
propagacin de los diversos caminos entre biestables, segn la expresin:
TCK > tp
(FF1) + tp
(parte combinacional) + ts
(FF2)
donde tp es el tiempo de propagacin del primer biestable y tp la suma de tiempos de
propagacin en la parte combinacional que atraviesa el camino, y ts el tiempo de
anticipacin que requiere el segundo biestable. Esta desigualdad impone un lmite a la
frecuencia mxima de reloj en que el mdulo puede funcionar correctamente (y, con ello,
limita la frecuencia de reloj del sistema digital).
Si la parte combinacional es amplia (en el sentido de muchas puertas sucesivas), la
suma de retrasos en ella tp es apreciable y requiere un perodo de reloj largo,
limitando fuertemente la velocidad de trabajo del sistema digital. Un recurso de diseo
que permite aumentar dicha velocidad consiste en dividir la parte combinacional en
segmentos (en rodajas) insertando registros intermedios; esta tcnica, conocida con la
denominacin de pipiline o segmentacin, es aplicable solamente a bloques sin
realimentacin.
Consideremos un primer ejemplo de aplicacin de la segmentacin a un bloque muy
simple: se trata de calcular la paridad de nmeros de 16 dgitos binarios, a travs de una
sucesin de puertas "o-exclusiva", segn las figuras siguientes:
CK CK
Supongamos que los tiempos de anticipacin y de propagacin de los biestables son
iguales entre s e iguales, asimismo, al tiempo de propagacin de cada una de las puertas
"o-exclusiva". En la figura de la izquierda, el perodo de reloj deber ser mayor que
tp
+ 4.tp
+ ts
= 6.tp ; fCK
< 1/(6.tp);
en la figura de la derecha, se ha insertado un registro en medio de la parte combinacional,
de forma que el perodo de reloj deber ser, en este caso, mayor que
tp
+ 2.tp
+ ts
= 4.tp ; fCK
< 1/(4.tp);
se ha conseguido una ganancia en la frecuencia de reloj segn un factor 1,5 (4 = 6/1,5).
132 El ect rni ca Di gi t al
Ha de tenerse en cuenta que, para obtener el resultado (la paridad del nmero de 16
bits), el segundo circuito requiere un ciclo ms de reloj. La frecuencia de reloj puede ser
mayor pero el clculo de la paridad del primer nmero que llega al registro inicial tarda
dos ciclos (en lugar de uno solo); en cambio, los resultados de paridad de los nmeros
siguientes (supuesto que cada ciclo el registro inicial reciba un nuevo nmero) se
obtienen en ciclos de reloj sucesivos. Para una serie de 100 nmeros binarios seguidos
son precisos 101 ciclos de reloj: dos para el primer nmero y uno ms para cada uno de
los siguientes.
Este aumento de un ciclo de reloj, debido al registro que se ha aadido al dividir la
parte combinacional en dos segmentos (dos rodajas), ha de ser tenido en cuenta en el
diseo del resto del sistema digital que utilice el clculo de la paridad.
Pueden incluirse tres registros intermedios (en lugar de uno solo), de forma que cada
segmento sea de profundidad igual a una puerta, es decir, est formado por un grupo de
puertas "o-exclusiva" en paralelo y, entonces, el perodo de reloj deber ser mayor que
tp
+ 1.tp
+ ts
= 3.tp ; fCK
< 1/(3.tp);
lo cual supone una ganancia en la frecuencia de reloj segn un factor 2 (3 = 6/2), en
relacin con el circuito inicial (sin ningn registro intermedio). En este caso, se aaden 2
nuevos ciclos de reloj para obtener el resultado: la paridad del primer nmero binario
requiere 4 ciclos de reloj y, luego, cada ciclo de reloj suministra una nueva paridad; para
una serie de 100 nmeros seguidos son precisos 103 ciclos de reloj.
La tcnica de segmentacin se aplica a bloques sncronos cuya parte combinacional
presenta altos tiempos de propagacin y tal aplicacin es efectiva cuando dichos bloques
actan repetitivamente con vectores de entrada sucesivos; en tal caso, la reduccin del
tiempo global es muy significativa. En el ejemplo considerado, para el clculo de paridad
de series de 100 nmeros seguidos, resultan los siguientes tiempos mnimos:
- sin segmentacin: TCK > 6.tp tiempo total: 100.TCK 600.tp
- con un registro intermedio: TCK > 4.tp tiempo total: 101.TCK 404.tp
- con segmentacin total: TCK > 3.tp tiempo total: 103.TCK 309.tp .
Un segundo ejemplo, algo ms complejo, servir para poner de manifiesto la
potencia y, tambin, los requisitos de la segmentacin.
Un multiplicador de nmeros de ocho dgitos, A x B, puede construirse mediante
una mquina algortmica, en la forma descrita en el apartado anterior (pginas 107 a 112),
pero esta configuracin secuencial resulta relativamente lenta: requiere 26 ciclos de reloj.
Como referencia cuantitativa supongamos que los tiempos de anticipacin y de
propagacin de los biestables son iguales entre s y que el tiempo de propagacin de un
sumador de ocho dgitos es unas tres veces mayor (el sumador estar formado por ocho
celdas sumadoras sucesivas, cuyo arrastre ha de propagarse a travs de ellas); en tal caso
el tiempo de ciclo de reloj deber ser mayor que
tp
+ 3.tp
+ ts
= 5.tp ; fCK
< 1/(5.tp);
y el tiempo de clculo de la multiplicacin ser (en el peor de los casos): 26.tCK 130.tp.
24. Di seo de si st emas compl ej os 133
Otra posibilidad es utilizar ocho sumadores (con entrada de habilitacin respecto a la
suma) para efectuar la multiplicacin en la forma siguiente:
b
P
R c'
Q
Sumador con habilitacin:
si b = 0, R = P ; si b = 1, R = P + Q
Sumador con habilitacin
b
A
0
R c'
b
1
R c'
b2
R c'
b3
R c'
b4
R c'
b
5
R c'
b6
R c'
b7
R c'
P14 - P8 P6 P5 P4 P3 P2 P1 P0 P15
B
Multiplicador de A x B (de 8 dgitos)
El tiempo de propagacin de este bloque ser del orden de 8.4.tp y
el perodo de
reloj (de este multiplicador, situado entre sendos registros) deber ser mayor que
tp
+ 8.3.tp
+ ts
= 26.tp ; fCK
< 1/(26.tp)
con un tiempo de clculo (1 ciclo: 26.tp) cinco veces ms pequeo que el correspondiente
al anterior multiplicador (130.tp) configurado como mquina algortmica.
En el caso de segmentar en dos rodajas, es decir, de insertar un registro en mitad
del multiplicador (ver figura siguiente), el perodo de reloj deber ser mayor que
tp
+ 4.3.tp
+ ts
= 14.tp ; fCK
< 1/(14.tp);
una frecuencia de reloj cercana al doble de la anterior.
134 El ect rni ca Di gi t al
b
A
0
R c'
b
1
R c'
b2
R c'
b3
R c'
b4
R c'
b
5
R c'
b6
R c'
b7
R c'
P14 - P8 P6 P5 P4 P3 P2 P1 P0 P15
Biestable
Multiplicador de 8 dgitos segmentado en dos partes
En la figura anterior, adems de los biestables propios de la segmentacin, se han
incluido los registros de entrada de los dos nmeros A y B y de salida P.
Obsrvese que es necesario aadir biestables, tanto en las salidas del cuarto
sumador, como en las salidas P3 P0 de los anteriores para retrasarlas un ciclo,
acompasndolas a las de los sumadores siguientes; tambin, hay que aadirlos en el
nmero A y en los dgitos b7 b4, en cuanto a entradas a dichos sumadores. En total, han
sido precisos 24 biestables para segmentar en dos partes el multiplicador.
De nuevo cabe resaltar que, para obtener el resultado de la multiplicacin en este
circuito segmentado, se requiere un ciclo ms de reloj; la frecuencia puede duplicarse
respecto al circuito anterior pero el clculo del producto de los dos primeros nmeros
tarda dos ciclos; en cambio, los productos de las parejas de nmeros siguientes (supuesto
que en cada ciclo los registros iniciales reciban nuevos operandos) se obtienen en ciclos
de reloj sucesivos. Para una serie de 100 nmeros binarios seguidos se necesitan 101
ciclos de reloj: dos para el primer producto y uno ms para cada uno de los siguientes.
24. Di seo de si st emas compl ej os 135
Una segmentacin total (es decir, cada sumador un segmento o rodaja) requiere
168 biestables de segmentacin (ver figura siguiente) con un perodo de reloj mayor que
tp
+ 1.3.tp
+ ts
= 5.tp ; fCK
< 1/(5.tp);
frecuencia unas tres veces ms rpida que la del circuito anterior y cino veces mayor que
la del circuito sin segmentacin.
b
R c'
b4
R c'
b5
R c'
b6
R c'
b7
R c'
P14 - P8 P6 P5 P4 P3 P2 P1 P0 P15
b
A
0
R c'
b1
R c'
b2
R c'
3
Biestable
B
Multiplicador de 8 dgitos segmentado en 8 partes
En este caso de segmentacin completa, se necesitan ocho ciclos de reloj para
obtener el resultado: el producto de la primera pareja de nmeros binarios requiere tales
ocho ciclos y, luego, en cada ciclo de reloj se obtiene un nuevo producto; para una serie
de 100 nmeros seguidos son precisos 107 ciclos de reloj.
Comparando las cuatro posibilidades descritas de realizar el producto, para series de
parejas de 100 nmeros sucesivos:
- mquina algortmica: TCK > 5.tp 26 ciclos de reloj para cada producto
tiempo total: 100.26.TCK > 13000.tp
- sin segmentacin: TCK > 26.tp tiempo total: 100.TCK > 2600.tp
- con un registro intermedio: TCK > 14.tp tiempo total: 101.14.TCK > 1414.tp
- con segmentacin total: TCK > 5.tp tiempo total: 107.5.TCK > 535.tp.
136 El ect rni ca Di gi t al
Un bloque sncrono (una parte combinacional situada entre dos registros o conjuntos
de biestables), sin realimentacin (sus biestables de salida no se realimentan sobre el
propio bloque), puede segmentarse, es decir, dividirse en varios bloques sncronos
sucesivos, de menor profundidad; lo cual permite aumentar la velocidad de trabajo del
sistema, su frecuencia de reloj, a costa de insertar un amplio nmero de biestables.
Ciertamente el mayor nmero de biestables incrementa en forma importante el rea
de silicio, en el caso de ASICs, o el nmero de celdas necesarias, caso de FPGAs. Pudiera
parecer que tambin aumenta el consumo del circuito, al existir ms biestables
conmutando en cada flanco de reloj; sin embargo, a igualdad de frecuencia, suele
suceder que la segmentacin disminuya el consumo, pues la divisin en segmentos de la
parte combinacional limita la propagacin de los espurios producidos en la conmutacin,
que son responsables de buena parte del consumo cuando hay muchas puertas seguidas.
La segmentacin (pipeline) es un recurso de divisin en partes utilizado para
conseguir mayores velocidades en procesamientos que actan sobre series de datos
sucesivos; en el diseo del sistema global, ha de tenerse en cuenta que cada divisin
(cada nuevo segmento) introduce un registro y un ciclo adicional de reloj.
Lo que hace la segmentacin es aplicar una concurrencia de tareas, poniendo a
operar en paralelo a los diversos segmentos, sin tener que esperar, cada uno de ellos, a
que los anteriores hayan finalizado su clculo.
Esta concurrencia se aplica de formas diversas; por ejemplo, en los procesadores que
actan bajo programa la ejecucin de instrucciones, mediante una segmentacin del tipo
siguiente, permite el tratamiento simultneo de cinco instrucciones de operacin sobre
dos operandos:
bsqueda lectura lectura ejecucin escritura
de instruccin de operando A de operando B de operacin de resultado
instruccin n + 4 instruccin n + 3 instruccin n + 2 instruccin n + 1 instruccin n.
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
25 TEST DE CIRCUITOS INTEGRADOS
25.1. El test como ltima etapa del proceso de fabricacin
25.2. Modelo de fallos para el test
25.3. Anlisis de fallos y simulacin de fallo
25.4 . Test de circuitos secuenciales
25.5 . Test de placas y de sistemas completos
25.6. Test interno
El test es el procedimiento que se aplica a cada circuito integrado, al culminar el
proceso de fabricacin, para comprobar que dicho ejemplar (cada chip individual) se ha
fabricado bien, es decir, para verificar que el resultado de la fabricacin (en ese integrado
particular) es correcto; el resultado del test es binario:
S : el ejemplar es correcto, se encapsula y da lugar a un circuito integrado disponible
para ser utilizado.
No : tal ejemplar ha resultado mal fabricado y se desecha.
En el caso de un circuito integrado muy pequeo, el test puede hacerse probando todas
las situaciones del mismo: todos los vectores de entrada posibles, junto con todos los
estados si el circuito es secuencial. Pero en circuitos de tipo medio o grandes este tipo de
comprobacin no es factible pues se necesitaran aos para ella (un simple sumador de
nmeros de 26 dgitos precisa de ms de un siglo, a una velocidad de 10
6
vectores/seg).
Y, sin embargo, es necesario comprobar que cada una de las celdas (cada puerta, cada
biestable) se ha fabricado bien. Para ello se han desarrollado modelos de test que
permiten identificar los fallos posibles, encontrar los vectores que detectan dichos fallos y
conocer qu fallos detecta cada vector de test.
En el caso de circuitos secuenciales, la extraordinaria complejidad que implica controlar
y observar el estado del circuito se resuelve aadiendo (en cada biestable) circuitera
especfica para el test; creando un camino de exploracin (scan path) que permita
establecer, directamente sobre los biestables, el estado que se desee y observar directamente
el estado anterior.
Esta tcnica de scan path ha resultado tan simple y til que ha sido extendida al test
de placas circuitales (test de conjuntos de circuitos integrados y de las pistas de
interconexin de los mismos) y al test de sistemas digitales completos.
Asimismo, la incorporacin de circuitera aadida para el test permite la realizacin del
mismo en el interior del propio circuito integrado: test interno. Sencillos algoritmos de test de
memorias (BIST), registros realimentados para generacin aleatoria de vectores de test
(LFSR), compactacin en una sola palabra de los resultados del test (FIRMA) y
aprovechamiento conjunto de LFSR y FIRMA para ejecucin del test, son mecanismos de
test interno que requieren aadidos circuitales relativamente pequeos. Ello simplifica el
proceso de comprobacin de la fabricacin y, adems, ofrece la posibilidad de verificar el
integrado posteriormente, en el sistema digital del que forma parte.
138 El ect rni ca Di gi t al
25. 1. El t est como l t i ma et apa del proceso de fabri caci n
El test de un circuito integrado es la comprobacin, posterior a la fabricacin del
mismo, que garantiza que el circuito se ha fabricado bien; tiene que garantizar que todas
las celdas que configuran el circuito han sido integradas correctamente de forma que el
resultado fsico coincide con el esquema circuital resultante del diseo.
El test no puede plantearse desde la funcionalidad del circuito sino desde su
configuracin fsica; no es una simulacin de su comportamiento respecto a las
especificaciones que se pretenden, sino una verificacin de su realidad fsica interna.
Tngase en cuenta que el resultado de la fabricacin para cada circuito integrado
individual (para cada uno de los muchos chips que se fabrican en una sola oblea) es
incierto; basta una microscpica partcula de polvo, una irregularidad en la superficie de
la red cristalina de la oblea, un fallo en el proceso litogrfico de reproduccin de las
mscaras sobre la oblea, etc.,... para que un transistor no se construya y el circuito
resultante sea errneo.
El test se realiza sobre la propia oblea, previamente a la etapa de corte y separacin
de los numerosos chips que contiene, mediante costosas mquinas de test que activan los
terminales (PADs) de entrada del circuito integrado, con un conjunto de vectores de
entrada sucesivos (secuencia de vectores de test), y observan los terminales de salida,
comparando los vectores de salida con la secuencia de resultados correctos. De forma que
cada vector de test ha de incluir ambas partes: entradas y salidas:
Vector de test = { vector de entrada, vector de salida }
Los vectores de test han de permitir controlar, desde las entradas del circuito
integrado, cada uno de los nudos booleanos internos del circuito (para situarlos a valor
0 y a valor 1) y observar, desde las salidas del integrado, el estado booleano de cada
uno de dichos nudos; de esta forma, podremos comprobar que cada celda bsica est en su
sitio y acta correctamente.
El test se ejecuta posicionando automticamente un conjunto de puntas o sondas
de la mquina de test sobre los puntos de soldadura (PADs) terminales del chip que,
posteriormente, se conectarn a los terminales (pines) del encapsulado. Se dispone para el
test solamente de los terminales (entrada/salida) del circuito integrado, sin poder actuar
sobre nudos internos.
El test se aplica globalmente sobre el circuito integrado completo; aun ms, sobre
el circuito encapsulado, es decir, siendo accesibles solamente los terminales (PADs) del
circuito: se dispone nicamente de las entradas fsicas del circuito (PADs de entrada),
para actuar sobre el mismo (vectores de entrada), y de sus salidas fsicas (PADs de salida),
para observarlo.
Adems, es preciso minimizar el tiempo de utilizacin de la mquina de test, debido
al elevado coste de tales equipos.
25. Test de ci rcui t os i nt egrados 139
Por ello, el test presenta los siguientes inconvenientes:
1. Hay que comprobar todos y cada uno de los circuitos integrados: mientras que el
proceso de fabricacin opera sobre mltiples obleas a la vez y cada oblea contiene un
amplio nmero de circuitos (es decir, centenares o miles de chips en cada hornada),
el test ha de aplicarse individualmente a cada uno de ellos.
2. Un circuito integrado tiene muchos componentes (transistores) configurando una red
con muchos nudos: todos ellos han de ser comprobados, pero el nmero de nudos
accesible para el test es muy reducido, se dispone solamente de las entradas y salidas
globales del circuito integrado.
3. La secuencia de vectores de test no puede ser excesivamente larga porque ello
supondra un tiempo de mquina de test muy prolongado y repercutira gravemente en
el coste del circuito.
En suma, muchos circuitos integrados y muchos nudos (en cada uno de ellos) a
comprobar y, en cambio, pocos nudos accesibles y relativamente pocos vectores de test a
utilizar. Como respuesta a estos inconvenientes, hay que desarrollar metodologas de test
y de diseo orientado al test que permitan superarlos.
Cuantifiquemos un poco la magnitud y complejidad del test:
Cmo estar seguros de que un circuito integrado se ha fabricado bien? Una
primera respuesta podra ser: probando todas y cada una de sus posibilidades.
En el caso de un circuito combinacional, el nmero de posibilidades es sencillo: si
cuenta con m entradas, las situaciones posibles son 2
m
(que conforman su tabla de
verdad). Por ejemplo, un sumador de nmeros de 16 bits cuenta con 32 entradas que
suponen 2
32
situaciones posibles, es decir, unos 4.300 millones de vectores de test que
necesitan ms de 1 hora, a una velocidad de un milln de vectores por segundo.
Realmente se consiguen mayores velocidades de test, ~ 10
7
vectores/s, que suponen unos
7 minutos de test, que sigue siendo un tiempo alto para un simple sumador de 16 dgitos;
un sumador de 32 bits, 2
64
posibilidades, necesita cerca de 600 siglos de test (a 10
7
v/s).
En el caso de circuitos secuenciales, la magnitud del problema crece an mucho
ms, por dos razones que se suman recprocramente:
- los estados aaden posibilidades en progresin geomtrica:
m entradas n biestables = 2
n
estados 2
m
x 2
n
posibilidades = 2
m+n
Por ejemplo: con 16 entradas y 32 biestables, 2
48
posibilidades, unos 100 billones, que, a
10
7
vectores/s, suponen ms de 4 meses dedicados al test.
- el orden de los vectores de entrada influye decisivamente:
Para conseguir cada estado en el conjunto de biestables, es necesaria una secuencia
de vectores de entrada adecuada. Para verificar cada posibilidad no basta un solo vector
de entrada sino que hay que conseguir llevar a los biestables al estado deseado, mediante
una secuencia de vectores de entrada; esto no slo aumenta el nmero de vectores de test,
sino que requiere encontrar tal secuencia, lo cual no es obvio.
140 El ect rni ca Di gi t al
La magnitud del problema del test (puesta de manifiesto en los ejemplos anteriores,
que, tambin, ponen en evidencia el mayor grado de complejidad que presentan los
sistemas secuenciales), hace necesaria la utilizacin de modelos de fallos que permitan:
a) determinar con precisin los fallos posibles y contar su nmero,
b) encontrar vectores de test para cada fallo,
c) conocer qu fallos detecta cada vector de test,
y d) calcular la cobertura de fallos, es decir, el conjunto de fallos que pueden ser
detectados por un conjunto dado de vectores de test.
En la prctica, se utiliza el modelo de fallos por bloqueo stuck-at cuya justificacin y
descripcin se detallan en el apartado siguiente.
Ahora bien, en los razonamientos anteriores nos hemos referido solamente a uno de
los aspectos del test de circuitos integrados digitales: el aspecto funcional-booleano:
comprobar que cada celda bsica est en su sitio (es decir, en sus salidas realiza la funcin
booleana correspondiente) y adecuadamente conectada (ya que el resultado de dicha
funcin se detecta en el nudo adecuado, tras haber actuado a travs de los nudos que
corresponden a sus entradas).
Existe un segundo aspecto que tambin debera ser objeto de test: el comportamiento
temporal, referido a los tiempos de propagacin (y de anticipacin y mantenimiento),
comprobando que tales tiempos coinciden con (o no son peores que) los estimados.
En la prctica, el test temporal no se realiza en forma individualizada sobre cada chip
sino que se supone que si un transistor ha sido fabricado en su sitio sus caractersticas
coinciden con las previstas.
Para tener una cierta garanta de ello suele realizarse un test global de fabricacin: en
la oblea se incluyen, aparte de los mltiples circuitos integrados iguales (chips), una serie
de componentes electrnicos de tipo simple (resistencias, capacidades, uniones, PN,
transistores individuales,...) cuyas caractersticas se miden (generalmente en unas pocas
obleas de cada hornada) para comprobar que el proceso de fabricacin ha sido correcto,
es decir, ha construido componentes de las caractersticas elctricas previstas. Es pues un
test de calidad del proceso de fabricacin, anlogo al que se realiza en otros tipos de
procesos de fabricacin, tomando varias muestras al azar y comprobando en detalle sus
caractersticas.
25. Test de ci rcui t os i nt egrados 141
25. 2. Model o de fal l os para el t est
Definir los fallos posibles en un circuito integrado es tarea ardua y compleja; las
posibilidades son enormes:
- en principio los circuitos integrados digitales en tecnologas MOS estn compuestos
por transistores MOS conectados entre s;
- en cuanto a los transistores puede haber fallos por quedar cortocircuitadas dos de sus
cuatro regiones constitutivas: fuente, drenaje, puerta y substrato, o por quedar en
circuito abierto (o no haberse formado, lo cual es lo mismo) la fuente, el drenaje o la
puerta;
- respecto a las conexiones puede darse el caso de pistas rotas, pistas interconectadas
entre s (puenteadas), etc;
- ...
Para poder manejar tan gran nmero de posibilidades es precisa una fuerte
simplificacin, se requiere un modelo simplificado de fallos.
Un modelo de fallos muy simple pero que ha dado excelentes resultados y es el que
se utiliza actualmente en la fabricacin industrial es el modelo de fallos por bloqueo, el
cual admite solamente dos posibilidades de fallo: stuck-at-0 (bloqueo a 0) y stuck-at-1
(bloqueo a 1) y supone las siguientes hiptesis:
1. Se consideran como elementos componentes del circuito las celdas bsicas
(celdas estndar con las que se efecta el diseo: puertas, biestables,...) y se utiliza la
net-list (lista de conexiones del circuito) configurada por dichas celdas bsicas.
2. Se consideran como nudos todas y cada una de las entradas a las celdas bsicas
y, adems, las salidas del circuito.
Por ello, estos nudos a efectos de test no coinciden exactamente con los nudos
topolgicos del circuito, sino que cada nudo elctrico ha de ser desplegado en varios,
tantos como entradas a las que est conectado. De forma que el nmero de nudos a efectos
de test es muy superior al nmero de nudos de la net-list SPICE.
Por ejemplo, el nudo A de la figura siguiente ha de ser contabilizado como tres nudos
(1, 2 y 3), ya que conecta con 3 entradas.
1
2
3
A
142 El ect rni ca Di gi t al
3. Para cada nudo se consideran como fallos posibles solamente dos:
- que el nudo est bloqueado a 0 STUCK-AT-0
- que el nudo est bloqueado a 1 STUCK-AT-1
("stuck" es el participio del verbo "to stick": clavar, pegar, adherir ...).
4. Cada nudo ha de ser comprobado dos veces, para asegurar que no se encuentra
bloqueado a 0 ni a 1.
5. El no-bloqueo (la puesta a 1 y a 0) de cada entrada (nudo interior) ha de ser
detectado pasando a travs de la celda bsica a la que corresponde dicha entrada, es decir,
para cada celda bsica ha de verificarse el paso de un 1 y el de un 0 desde cada una de sus
entradas; adems, ha de verificarse la posibilidad de 1 y de 0 para cada salida del circuito.
6. Se supone que en el circuito no se presentan mltiples fallos que se compensen
entre s: hiptesis de fallo nico en el circuito; en realidad lo que se supone es que si un
vector de test es capaz de detectar un fallo individual, dicho vector detecta siempre dicho
fallo, es decir, no se da el caso de que el fallo quede enmascarado (compensado) por otros
fallos que tengan lugar a la vez.
Las simplificaciones que introduce este modelo (en particular, las hiptesis de solo
dos tipos de fallos y de fallo nico en el circuito) son muy fuertes y es obvio que no
asegura, en principio, la deteccin de todas las posibilidades de fallo. Sin embargo, el
modelo se ha mostrado muy eficaz en su utilizacin prctica y es, hoy por hoy, el nico
que se emplea a nivel industrial; ha demostrado que detecta un porcentaje muy alto
(aunque no todos) de los fallos posibles y se ha comprobado que, efectivamente, sirve
para asegurar que un circuito integrado ha sido fabricado bien.
Habida cuenta que cada nudo se comprueba dos veces (bloqueos a 0 y a 1), que se
consideran como nudos independientes cada una de las entradas a las celdas bsicas y por
cada una de dichas celdas se hace pasar un 0 y un 1 desde cada una de sus entradas
(detectando especficamente dicho paso), es sumamente probable que un test completo
conforme al modelo stuck-at detecte cualquier fallo resultante del proceso de fabricacin.
El modelo stuck-at es capaz de detectar los siguientes fallos:
- un cortocircuito entre dos terminales de un transistor MOS generalmente equivale a un
stuck-at;
- un transistor MOS en circuito abierto en muchas ocasiones ser detectado como stuck-
at; en este caso, el orden de los vectores de test influye en la deteccin del fallo pues
generalmente la salida de la correspondiente puerta lgica depende del anterior valor
de salida (que se conserva capacitivamente) [Se ha desarrollado un modelo de fallos
stuck-open para tratar los correspondientes a circuitos abiertos, basado en detectar las
transiciones (de 0 a 1 y de 1 a 0) pero requiere un nmero de vectores mucho mayor
que el stuck-at porque es preciso detectar cada nudo en valor 0 y de detectar su paso a
1 y viceversa.];
- lo mismo podra decirse de pistas cortadas;
25. Test de ci rcui t os i nt egrados 143
- la interconexin entre pistas (bridging: puentes) no es detectada directamente, pero
habida cuenta que ha de verificarse el no-bloqueo a 0 y a 1 de cada una de ellas (al
menos 4 pruebas) y que dicha verificacin se hace varias veces en el caso de estar
unidas a ms de una entrada es muy probable que tal fallo se detecte (existen tambin
modelos de fallos por puentes);
- algo parecido puede decirse de los fallos mltiples: en principio se encuentran
excluidos del modelo pero es sumamente probable que alguno de ellos sea detectado,
en alguna de las mltiples veces que los vectores de test observan los nudos
afectados por tales fallos (tngase en cuenta que carece de inters conocer si hay ms
de un fallo: basta uno de ellos para que el circuito sea errneo y deba ser desechado).
La deteccin de un fallo presenta dos aspectos complementarios:
a) el CONTROL del correspondiente nudo desde las entradas del circuito integrado
para situarlo en el valor booleano adecuado (el que demuestra que el nudo no est
bloqueado, es decir, el contrario al bloqueo que se investiga)
b) la OBSERVACIN del valor booleano presente en dicho nudo desde las salidas
del circuito, pasando a travs de la celda bsica a la que pertenece el nudo como entrada
de la misma.
En la observacin hay que pasar a travs de las celdas bsicas hacia adelante hasta
llegar a las salidas; en el control hay que pasar tambin a travs de las celdas bsicas pero
hacia atrs (de las salidas hacia las entradas) hasta llegar a las entradas del circuito.
Para realizar este paso a travs de las celdas bsicas se utiliza un modelo de
fallos de cada celda que permite razonar cul debe ser el valor booleano de todas sus
entradas para atravesar la celda y, tambin, qu bloqueos detecta en cada caso:
- denotemos con D el valor booleano que debe atravesar la celda (D ser el valor
presente en el nudo que estamos considerando: D = 1 para investigar bloqueos a 0 y
D = 0 para tratar los bloqueos a 1);
- una puerta "o", para que pase D desde una de sus entradas, ha de tener el resto de
ellas a 0 y la salida ser D; cuando D sea 0, la salida y = 0 detecta no-bloqueo a 1
en todas las entradas, cuando D sea 1, la salida y = 1 detecta solamente no-
bloqueo a 0 en dicha entrada D:
0
0
0
D
* * D
D = 0 y = 0 no-bloqueo a 1 de ninguna entrada
D = 1 y = 1 no-bloqueo a 0 de la entrada **.
144 El ect rni ca Di gi t al
- una puerta "y", para dejar pasar D desde una entrada, requiere que el resto se
encuentre a 1 y la salida ser D; cuando D sea 0, y = 0 detecta solamente no-
bloqueo a 1 de dicha entrada, pero cuando D sea 1, y = 1 detecta no-bloqueo a 0
de todas las entradas:
* *
D
1
D
1
1
D = 0 y = 0 no-bloqueo a 1 de la entrada **
D = 1 y = 1 no-bloqueo a 0 de ninguna entrada.
- el modelo para puertas "o-negada" Nor e "y-negada" Nand es el siguiente:
D
* *
0
0
D
0
D
* *
1
D
1
1
- la puerta "o-exclusiva" presenta dos posibilidades:
D
0
D
D
D
1
25. 3. Anl i si s de fal l os y si mul aci n de fal l os
25.3.1. Generacin de vectores de test: anlisis de fallos
Para detectar un fallo es preciso encontrar un vector de test capaz de:
a) controlar el nudo correspondiente, es decir, actuar sobre dicho nudo desde las
entradas de forma que adquiera el valor booleano deseado;
b) observar dicho nudo, es decir, establecer a partir del mismo un conjunto de
valores sobre los nudos que interaccionan posteriormente con l, de forma que el valor
booleano de una salida sea diferente en el circuito con fallo en relacin con el correcto.
La parte a (control), se consigue llevando hacia atrs los valores booleanos
desde el nudo considerado hacia las entradas, lo cual, en principio, siempre es posible (en
un circuito combinacional). La parte b (observacin) trata de llevar hacia adelante el
valor booleano del nudo hacia las salidas, imponiendo en el resto de los nudos que
influyen sobre este camino hacia adelante el valor booleano que permita distinguir el
valor que est pasando; ello no siempre es posible pues puede haber problemas de
compatibilidad entre los valores booleanos de unos nudos y otros, habida cuenta de que
todos ellos han de ser impuestos desde las entradas del circuito.
La parte b (observacin) ha de aplicarse antes que la a ya que determina valores
booleanos en otros nudos internos del circuito que, posteriormente (parte a: control),
han de ser llevados (todos ellos, adems del correspondiente al nudo objeto de
investigacin) hacia las entradas.
25. Test de ci rcui t os i nt egrados 145
Se demuestra que, en el modelo de fallos por bloqueo STUCK-AT, si el circuito es
combinacional y no contiene redundancias todos los fallos son testeables: para cada
fallo existe un vector de test que, actuando desde la entradas del circuito, diferencia el
comportamiento del circuito con y sin fallo, produciendo salidas distintas en ambos casos.
El empleo de la notacin D (D = 1 para investigar bloqueos a 0, D = 0 para los
bloqueos a 1) permite encontrar, a la vez, los vectores de test para ambos bloqueos de un
nudo dado. El proceso de obtencin de los vectores de test para un determinado nudo se
realiza mediante el siguiente esquema procedimental, denominado D-algoritmo:
1. se asigna el valor D al nudo a testear;
2. a partir de dicho nudo y pasando por la correspondiente celda bsica se lleva D
hacia una salida asignando valores booleanos adecuados a los nudos de las puertas
por las que se pasa;
3. el valor D y el resto de los valores booleanos asignados se llevan hacia las entradas.
Para ejecutar los pasos 2 y 3 (consistentes en atravesar hacia adelante y hacia
atrs, respectivamente, las celdas bsicas) se utilizan los modelos de fallos de las
correspondientes celdas. En todo caso, es preciso tener bien presente la hiptesis de
fallo nico en el circuito: si en el circuito existe un fallo, ste es nico (se desecha la
posibilidad de que se produzca un segundo fallo que compense el primero).
El D-algoritmo resulta fcilmente programable (de hecho, existen varios algoritmos
equivalentes desarrollados en detalle para su programacin), lo cual permite la generacin
automtica de vectores de test (ATPG).
Ej empl o de apl i caci n manual del D-al gori t mo
Consideremos el caso de una simple funcin booleana, la correspondiente a la
activacin del segmento f de un conversor BCD a 7 segmentos, expresada en la siguiente
forma algebraica:
a) (b + a) c.(b + d = a . b + a c. + b c. + d = Y
f segmento
1
2
3
4
5
6
7
8
9 10
Y
segmento f
c
b
a
d
A efectos de test el circuito presenta 10 nudos, tal como han quedado numerados
en la figura; por tanto, el nmero de fallos posibles es de 20: 10 bloqueos a 0 y 10
bloqueos a 1.
146 El ect rni ca Di gi t al
Efectuemos el anlisis de fallos del circuito anterior, respecto al nudo 7:
1
2
3
4
5
6
7
8
9
10
Y
segmento f
c
b
a
d
D
D
1
D
0
0
1
1
0
1
1
D
D
D
1 asignamos D a 7;
2 observacin: nudo 2 a 1; nudo 9 a D, nudos 1 y 8 a 0, 10 a D;
3 control: nudo 1 a 0 (por tanto, entrada D = 0); nudo 2 a 1 ( entrada C = 1);
nudo 7 a D y, para ello, nudo 3 a D y nudo 4 a 1 (entradas B = D y A = 1);
nudo 8 a 0, lo cual es correcto ya que entrada A = nudo 6 = 1.
vectores de test: 01D1 0101 D = 1 : detecta bloqueo a 0 en el nudo 7
0111 D = 0 : detecta bloqueo a 1 en dicho nudo.
Cuando en el circuito hay redundancia, o sea, cuando es posible simplificar la
funcin y eliminar algunas de las puertas que configuran el circuito los nudos afectados
por la redundancia no son testeables, es decir, no es posible encontrar un vector de test
que diferencie el circuito con y sin fallo. Lo cual es consecuencia de que el valor
booleano de tales nudos no determina por s mismo el valor de las salidas, al existir
caminos lgicos redundantes.
Por ejemplo, si en el circuito anterior cambiamos la puerta "o-negada" por una "o":
1
2
3
4
5
6
7
8
9 10
Y
c
b
a
d
1 nudo 7 a D;
2 observacin: nudo 2 a 1; nudo 9 a D, nudos 1 y 8 a 0, nudo 10 a D;
3 control: para que el nudo 8 se site a 0 se requiere que los nudos 5 y 6 estn a 0;
en cambio para que el nudo 7 se site a D es preciso o bien que el nudo 3 est a Dy
el 4 a 1 o sino que el nudo 3 est a 1 y el nudo 4 a Do que ambos nudos 3 y 4 estn
a D;
25. Test de ci rcui t os i nt egrados 147
1
2
3
4
5
6
7
8
9
10
Y
segmento f
c
b
a
d
D
D
1
D
0
0
1
0
0
1
?
D
0
?
Como los nudos 3 y 6 han de tener el mismo valor booleano y lo mismo sucede con
los nudos 4 y 5, para D = 0 tales condiciones (nudos 3 y 4 a 1 y nudos 5 y 6 a 0) son
incompatibles entre s; para D = 0, si existe vector de test, ya que corresponde a los 4
nudos (3, 4, 5 y 6) a 0:
- el vector 0100 detecta el bloqueo a 0 del nudo 7;
- pero, en cambio, ningn vector es capaz de detectar el bloqueo a 1 del nudo 7.
Ello es debido a que la funcin contiene redundancia, como se demuestra al
simplificarla: a + b + c + d = a) + (b + a) c.(b + d = Y' .
1
2
Y
c
b
a
d
3
4
5
6
Las puertas "y-negada" e "y" son redundantes y pueden eliminarse.
Por tanto, en relacin con el test, interesa evitar toda redundancia circuital: en
ocasiones se ha recomendado introducir redundancia en el diseo de circuitos
combinacionales para eliminar espurios (glitches) debidos a la conmutacin de las
puertas (a sus tiempos de propagacin); esto resulta nefasto para el test: los glitches deben
ser evitados a travs de un diseo adecuadamente sncrono.
25.3.2. Cobertura de test: simulacin de fallos
No es preciso utilizar un vector de test para cada uno de los fallos posibles, pues un
mismo vector de test sirve para detectar varios fallos a la vez.
Por eso, una vez obtenido un vector de test conviene averiguar qu fallos es capaz de
detectar. Esta operacin se denomina simulacin de fallos y se realiza yendo desde las
salidas del circuito hacia las entradas y deduciendo, para cada celda bsica a partir de su
modelo de fallos, los fallos que son detectables en las entradas de dicha celda.
148 El ect rni ca Di gi t al
Por ejemplo, recordando el modelo de fallos de las puertas "o" e "y":
- una puerta "o" con salida 0 detecta cualquier bloqueo a 1 en cualquiera de sus
entradas; dicha puerta "o" con salida 1 solamente es capaz de detectar el bloqueo a 0
de una de sus entradas y ello con la condicin de que el resto de ellas est a 0;
- una puerta "y" con salida 1 detecta bloqueo a 0 en cualquier entrada y con salida 0
slo es capaz de detectar el bloqueo a 1 de una de sus entradas y con la condicin de
que el resto de ellas se encuentre a 1;
En el ejemplo anterior (segmento f de un conversor BCD a 7 segmentos):
- el vector de entrada 0101 es capaz de detectar bloqueo a 0 en los nudos 10, 9, 2, 7
y bloqueo a 1 en el nudo 3;
1
2
3
4
5
6
7
8
9
10
Y
segmento f
c
b
a
d
1
1
1
1
0
0
1
1
0
1
1
0
0
0
- el vector de entrada 0111 es capaz de detectar bloqueo a 1 en los nudos 10, 1, 9, 8, 7
y bloqueo a 0 en los nudos 3 y 4.
1
2
3
4
5
6
7
8
9
10
Y
segmento f
c
b
a
d
0
0
1
0
0
0
1
1
0
1
1
1
1
1
Bastan los dos vectores obtenidos para testear el nudo 7 (01D1) para conseguir una
cobertura de test del 60 % (12 fallos/20 posibles).
Siempre sucede que los primeros vectores de test detectan muchos fallos pero, a
medida que se aaden nuevos vectores para aumentar la cobertura de test, stos detectan
muy pocos fallos nuevos.
25. Test de ci rcui t os i nt egrados 149
En este ejemplo (segmento f ), para una cobertura de fallos completa (100 %) son
necesarios los siguientes vectores (en la tabla que sigue se indican, para cada vector de
entrada, los fallos que son detectados por dicho vector; se sealan con # los nuevos
fallos y con
*
los fallos que ya han sido detectados por vectores anteriores):
bloqueos a 0 bloqueos a 1
nudos : 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10
vector 0101
# # # # #
25 %
vector 0111
# # # # # # #
60 %
vector 0000
#
*
# #
75 %
vector 0001
#
*
#
*
*
*
85 %
vector 0010
#
*
*
*
*
*
90 %
vector 0110 *
*
*
*
#
95 %
vector 1010
#
*
100 %
en total se necesitan 7 vectores de test para un test completo del circuito.
ste es el procedimiento comn para generar los vectores de test:
- se escoge un subconjunto inicial de vectores de test: tal subconjunto puede ser el de
los vectores correspondientes a una simulacin funcional del circuito (conjunto de
vectores que habremos utilizado en el proceso de diseo para verificar que el circuito
diseado es correcto) o bien, sencillamente, un conjunto de vectores generados al azar
(mtodo que suele dar muy buenos resultados para el test);
- mediante simulacin de fallos se averigua qu fallos son detectados por dichos
vectores y cules no;
- mediante anlisis de fallos se obtienen nuevos vectores para fallos an no cubiertos;
- se reitera la simulacin de fallos y se repite el proceso hasta que se consigue un grado
de cobertura adecuado (a ser posible el 100 %).
En los ASICs digitales, los vectores de test son la referencia legal entre fabricante
y cliente: el fabricante se compromete a que cada uno de los circuitos integrados que
suministra verifica los vectores de test (la secuencia de vectores de test) aceptados por
ambos (son objeto de firma especfica en el contrato) y el cliente no puede exigirle
legalmente otra cosa sino el cumplimiento de los vectores de test.
Los fabricantes de ASICs suelen exigir, como condicin previa, una cobertura de test
cercana al 100 % (en muchos casos, cobertura total), a fin de poder comprobar con
adecuadas garantas los circuitos integrados resultantes de la fabricacin.
Adems, el fabricante seala un lmite en el nmero de vectores test, a fin de que el
tiempo de utilizacin de la mquina de test para cada chip no sea muy alto (y, en
consecuencia, costoso). Generalmente el nmero mximo de vectores de test suele ser del
orden de 64K o de 256K; el cliente puede solicitar la utilizacin de mayor nmero de
vectores de test, pero ello repercutir en el precio por unidad del circuito integrado.
150 El ect rni ca Di gi t al
Ot ro ej empl o de bsqueda de vect ores de t est
D
C
A
B
1
2
3
5
6
8
7
9
10
11
12
4
El circuito tiene 12 nudos a efectos de test: son posibles 24 fallos: 12 bloqueos a 0
y otros 12 bloqueos a 1.
1. Comenzamos por el nudo 1 y buscamos su vector de test
vector de test para el nudo 1: D000
a) el vector 0000 detecta bloqueo a 1 en los nudos: 1, 2, 9 y 12
b) el vector 1000 detecta bloqueo a 0 en los nudos: 1, 8, 9, 10, 11 y 12
y detecta bloqueo a 1 en los nudos: 3, 4 y 7
La cobertura de test conseguida con ambos vectores superior al 50 %: 13 / 24
2. Tomando un segundo nudo, no cubierto por los anteriores vectores, por ejemplo el
nudo 5, buscamos su vector de test
vector de test para el nudo 5: 01D1
a) el vector 0101 detecta bloqueo a 0 en los nudos: 2, 4 y 7
y detecta bloqueo a 1 en los nudos: 5 y 8
b) el vector 0111 detecta bloqueo a 0 en los nudos: 5 y 6
y detecta bloqueo a 1 en los nudos: 11
La cobertura de test conseguida es cercana al 90 %: 21 / 24. Solamente quedan
por detectar el bloqueo a 0 del nudo 3 y los bloqueos a 1 de los nudos 6 y 25.
3. Buscamos el vector de test que detecta el bloqueo a 0 del nudo 3: 1010
dicho vector 1010 detecta bloqueo a 0 en el nudo: 3
y detecta bloqueo a 1 en el nudo: 10
Con ello, la cobertura de test alcanzada es superior al 95 %: 23 / 24
4. Buscamos el vector de test que detecta el bloqueo a 1 del nudo 6: 1110
dicho vector 1110 completa el 100 % de cobertura de test del circuito.
25. Test de ci rcui t os i nt egrados 151
Los vectores utilizados en la simulacin funcional, a lo largo del proceso de diseo,
suelen proporcionar una cobertura de test entre el 60 % y el 80 %, segn los casos;
adems, gran parte de ellos son redundantes respecto al test, no aumentan la cobertura que
ya realizan los dems: el problema del test no se reduce al de la simulacin funcional.
A lo largo de este apartado (y tambin en el anterior), al hablar de vectores de test
puede parecer que solamente se hace referencia a vectores de entrada para el test; debe
tenerse siempre presente que un vector de test ha de incluir ambas partes:
{vector de entrada, vector de salida}; no slo es preciso activar adecuadamente las
entradas del circuito, sino, tambin, comparar los valores de las salidas con los que
corresponden a un circuito correcto (bien fabricado).
25. 3. 3. Di seo ori ent ado al t est
Aunque la aplicacin efectiva de los vectores de test la realiza el fabricante (la
ejecuta la mquina de test sobre cada uno de los chips obtenidos en el proceso de
integracin), la obtencin de los vectores de test es responsabilidad del diseador y debe
constituir un punto de referencia de todo el proceso de diseo: es necesario disear para el
test.
El diseo condiciona el test y, sobre todo, puede facilitarlo en gran manera. No basta
un diseo funcional sino que hay que efectuar, a la vez, un diseo para el test y, en la
prctica, los aspectos relativos al test pueden resultar ms difciles y complejos que el
propio diseo funcional. Ya hemos comentado que la redundancia da lugar a nudos no
testeables: ha de evitarse toda redundancia, lo cual queda asegurado si los procesos de
simplificacin se realizan bien.
Por otra parte, comprender bien la dinmica del test permite definir estrategias que
facilitan el test: el test se basa en controlar desde las entradas y en observar desde las
salidas los nudos internos del circuito. Por ello interesa aumentar la observabilidad y la
controlabilidad del circuito, facilitar el control y la observacin de los nudos del circuito:
- el aumento del nmero de salidas: conectar nudos internos del circuito a salidas
adicionales del mismo; lo cual se puede conseguir fsicamente, aumentando en
igual medida el nmero de terminales (pines), o por medio de multiplexado,
utilizando los mismos terminales para varios nudos;
- el control de entradas intermedias: hacer que nudos internos adquieran el valor
booleano directamente; lo cual requiere distinguir la situacin de test de la
correspondiente al funcionamiento normal, a travs de un multiplexado apropiado;
- la divisin del circuito en bloques separables: configurar particiones, de forma que
cada bloque sea controlable y observable desde el exterior, bien por multiplexado,
bien mediante un bus interno, etc.,...;
- en general, cualquier medida que permita acercar nudos internos a las entradas
(para controlarlos) o aproximarlos a las salidas (para observarlos) facilitar en
gran manera el test (la obtencin de vectores de test y la reduccin del nmero de
ellos necesario para una cobertura total).
152 El ect rni ca Di gi t al
25. 4. Test de ci rcui t os secuenci al es
Los circuitos combinacionales presentan, en relacin con el test, la ventaja de que el
orden de los vectores no afecta a la comprobacin de los fallos; en cambio, en los
circuitos secuenciales el orden de los vectores de test es transcendental: los valores
booleanos de los nudos del circuito no dependen solamente del vector de entrada, sino
tambin del estado (interno) del circuito, es decir, del conjunto de valores almacenados en
los biestables contenidos en l.
En un circuito secuencial, para imponer un determinado valor en un nudo, no basta
con un vector de entrada, sino que es necesaria una secuencia adecuada de tales vectores.
Ello aumenta, en gran medida, el nmero de vectores de entrada necesarios para el test y,
lo que es mucho peor, aumenta extraordinariamente la complejidad de la obtencin de
dichos vectores de test; no hay una solucin general que permita obtener la secuencia de
vectores de test necesaria para detectar el bloqueo de un determinado nudo.
Por ejemplo, en un contador compuesto por 20 biestables, para analizar el bloqueo a
0 del ms significativo de ellos es preciso realizar el contaje de 2
19
unidades, es decir,
ms de medio milln de ciclos de reloj (el doble en cuanto a vectores de entrada) para
llegar a establecer un 1 en dicho biestable.
Imaginemos la complejidad que presenta un circuito de control con varios
contadores, diversos registros y algunos grafos de estado entrelazados mutuamente:
intentar imponer valores booleanos determinados sobre un conjunto de nudos internos que
dependan de tales bloques (y, adems, hacerlo desde las entradas del circuito que, en
principio, no conectarn directamente con ellos) es, sin duda, una labor ardua y, en
muchos casos, inabordable.
En los circuitos secuenciales el problema del test no puede ser abordado a posteriori,
sino que ha de ser un condicionante bsico del diseo, desde el inicio del mismo: es
indispensable un diseo orientado al test y desde tal perspectiva (disear para el test) no
resulta difcil llevar a cabo un diseo bien estructurado y obtener la correspondiente
secuencia de vectores de test para el mismo.
En general, resulta sumamente conveniente:
1 que el circuito sea completamente sncrono y est bien diseado como tal (y, como es
obvio, con adecuada distribucin del reloj que asegure la simultaneidad del mismo, y
con ausencia de violaciones de los tiempos de set-up y de hold);
2 que el estado inicial de los biestables sea conocido, es decir, que exista un
procedimiento directo de inicializacin (reset) que permita llevar a los biestables a un
estado determinado (0 1).
La condicin de sincronismo suele ser una exigencia de partida en el diseo de
ASICs
con celdas estndar pero, adems, es una situacin deseable desde el punto de vista
de la seguridad funcional. El sincronismo resulta sumamente conveniente, tanto desde el
punto de vista del test, como desde la propia seguridad funcional del circuito: un buen
diseo secuencial es, hoy da, un diseo sncrono.
25. Test de ci rcui t os i nt egrados 153
La posibilidad de inicializacin viene exigida no slo por el test sino tambin por la
propia simulacin funcional: no es simulable un circuito cuyo estado inicial no sea
conocido; todo proceso de simulacin comenzar efectivamente a partir de un estado
inicial, que se establece (se impone) previamente sobre los biestables. Por ello, todo
diseo secuencial debe contar con su entrada de inicializacin (reset) que acte, directa o
indirectamente, sobre todos los biestables forzndoles a adoptar un estado conocido (por
ejemplo, su borrado: puesta a 0).
25.4.1. Reducir el test secuencial al combinacional: SCAN PATH
Supuesto un circuito sncrono, la idea es poder controlar y observar cada uno de sus
biestables, de forma que el test se reduzca al caso combinacional; es decir, manejar
desde fuera el vector de estado del circuito (el estado de todos los biestables del
mismo), convirtindolo en un vector de entrada (control directo sobre el estado anterior) y
en un vector de salida (observacin del estado siguiente), de manera que el circuito deja
de ser secuencial: si el estado anterior es controlable como entrada y el estado siguiente
es observable como salida, la funcin de memoria que da carcter a los circuitos
secuenciales desaparece.
Supongamos que podemos fijar el valor booleano en la salida de cada biestable y,
despus de un solo pulso de reloj, podemos observar las salidas de todos ellos, el test a
formular se referir nicamente a la parte combinacional del circuito. De esta forma y en
lo que se refiere al test, se prescinde de los biestables como tales (como elementos de
memoria interna) y se produce una duplicacin de ellos: por un lado, se convierten en
entradas del circuito (sobre ellos se fija, desde fuera, el estado anterior) y por otro
actan como salidas (se observa el nuevo estado tras el pulso de reloj).
Cmo puede controlarse y observarse, en forma directa, desde el exterior del
circuito integrado, el estado de todos los biestables del mismo? Una forma relativamente
simple de hacerlo es conectando, a efectos de test, todos los biestables en largos registros
de desplazamiento con entrada y salida en terminales especficos del circuito integrado.
Haciendo que, a los efectos de control y de observacin para el test, los biestables se
encuentren, todos ellos, conectados en serie, formando un registro de desplazamiento, con
una entrada (serie) exterior y una salida externa (la del ltimo biestable). Para dar valores
a los biestables bastar almacenarlos sucesivamente, a travs de la entrada, utilizando n
pulsos de reloj (tantos como biestables contengan el registro de desplazamiento); pero, a
la vez, durante tales n pulsos de reloj, la salida del registro presentar sucesivamente los
valores contenidos en los biestables. De forma que, la observacin del estado de los
biestables (adquirido tras el pulso de reloj) y la fijacin de un nuevo estado anterior en
ellos se realiza simultneamente.
Esta forma de organizar el test de los circuitos secuenciales, mediante el control y la
observacin en serie de todos sus biestables, recibe el nombre de scan path (camino de
exploracin): conexin de todos los biestables en cadena, permitiendo acceder a ellos por
desplazamiento con doble finalidad, como entrada para fijar su valor y como salida para
observar su estado.
154 El ect rni ca Di gi t al
Cada biestable ha de tener dos modos de actuacin:
1. el modo funcional, que corresponde al diseo propio del circuito integrado;
2. el modo test, de conexin al registro de desplazamiento, para efectuar el control
(del estado anterior) y la observacin (del nuevo estado) durante el test.
conexin segn
diseo funcional
del biestable anterior del
registro de desplazamiento
configurado para el test
entrada de control
que diferencia
el modo funcional (0)
y el modo de test (1)
0
1
CK: reloj
D
Q
conexin segn
diseo funcional
al biestable siguiente del
registro de desplazamiento
configurado para el test
El circuito integrado ha de disponer de 3 terminales adicionales:
- la entrada serie al registro de desplazamiento test-in
- la salida de dicho registro (del ltimo biestable) test-out
- y una entrada de control del modo de operacin test-control.
REGISTRO DE DESPLAZAMIENTO
[se forma slo en el modo de test: test-control = 1
SCAN PATH test-in test-out
test-control
Obviamente, si el nmero de biestables (del scan path) es muy alto, pueden
organizarse en varios registros de desplazamiento (cada uno de ellos precisar dos nuevos
terminales: su entrada y su salida).
En el test con scan path, el primer paso ser la comprobacin de no bloqueos en el
propio camino de observacin, en los propios biestables del circuito; para ello, se
introduce en el registro de desplazamiento una secuencia de ceros y unos alternados
y se comprueba la salida de dicha secuencia, despus del retraso correspondiente a los n
biestables del registro de desplazamiento.
Una vez comprobado el no bloqueo de los biestables, el anlisis de fallos y la
simulacin de fallos se efectan como si el circuito fuera combinacional, suponiendo que
el estado anterior son entradas externas del circuito y el nuevo estado (tras un pulso de
reloj) se observa en salidas externas del mismo. De esta forma, por mtodos puramente
combinacionales, se generan los vectores de test y se estudia la cobertura de test que
proporcionan, teniendo en cuenta que cada vector de test incluye cuatro componentes:
vector de test = {vector de entrada, estado anterior, vector de salida, estado siguiente}
25. Test de ci rcui t os i nt egrados 155
La aplicacin del test, al final del proceso de fabricacin, ha de efectuarse segn la
siguiente secuencia:
1. modo de test: se carga en serie el estado anterior sobre los biestables, lo cual
requiere tantos pulsos de reloj y tantos vectores de entrada como sea el nmero de
biestables n,
2. modo de funcionamiento: se fija el vector de entrada, se aplica un pulso de reloj y se
observa el vector de salida,
3. modo test: se observa el estado siguiente, extrayndolo en serie de la cadena de
biestables (n pulsos de reloj).
Obviamente, a la vez que se observa el estado siguiente (etapa 3) se efecta
simultneamente la carga del nuevo estado anterior (etapa 1), correspondiente al
siguiente vector de test; de manera que el nmero efectivo de pulsos de reloj que requiere
cada vector de test es n + 1, siendo n el nmero total de biestables que conforman el
registro de desplazamiento (o cada uno de los registros de desplazamiento, caso de
configurarse varios de ellos).
25. 5. Test de pl acas y de si st emas complet os
La extraordinaria complejidad que alcanzan hoy da las placas de circuitos digitales y
los sistemas digitales completos repercute fuertemente sobre su comprobacin (test), que
resulta sumamente difcil.
La filosofa desarrollada en el mtodo scan path para el test de circuitos secuenciales
es aplicable al test de placas de circuitos integrados digitales (y al test de sistemas
digitales completos) en la siguiente forma:
- ha de incluirse un biestable en cada terminal (entrada o salida) de los circuitos
integrados; dicho biestable actuar en modo de test formando parte (junto con los
biestables internos) del registro de desplazamiento que conforma el camino de
exploracin (scan path) para el test del circuito integrado;
- los caminos de exploracin (registros de desplazamiento) de los diversos circuitos
integrados sern conectados en serie para formar un largo camino de exploracin
global para el test de la placa;
- este gran scan path permite controlar en serie todas las entradas de los circuitos
integrados y observar en serie todas las salidas (y, tambin, el estado interno) de los
mismos, de forma que podemos testear cada uno de dichos circuitos utilizando sus
propios vectores de test;
- asimismo este scan path permite fijar valores en las salidas de los circuitos
integrados y observar, luego, las entradas de todos los circuitos, lo cual hace posible
comprobar las pistas de conexin (el circuito impreso), verificando si los valores
fijados en las salidas de los circuitos son recibidos correctamente en las entradas de
los circuitos conectados a tales salidas.
156 El ect rni ca Di gi t al
Esta forma de abordar el test de placas digitales, mediante la inclusin de biestables
en el contorno de todos los circuitos integrados, para formar con ellos (junto con los
biestables internos propios) un camino de exploracin (scan path) de la placa, constituye
un mtodo de comprobacin que recibe el nombre de boundary scan (exploracin de
contorno). Se encuentra en proceso de estandarizacin a travs de un grupo de IEEE, el
JTAG (Joing Test Action Group) encargado de redactar la correspondiente normativa.
El boundary scan requiere disponer de circuitos integrados especiales, preparados
para dicho test de contorno; tales circuitos incorporan biestables perifricos en todos
sus terminales (pines), es decir, en todas sus entradas y salidas, y cuatro terminales
adicionales dedicados especficamente al test:
- dos para la entrada TDI y salida TD0 del registro de desplazamiento (scan path),
- uno como entrada de control para la ejecucin del test TMS (test mode switch)
- y otro como entrada de reloj para el test TCK.
Si el circuito integrado es secuencial, los biestables propios del circuito son
conectados, asimismo, al registro de desplazamiento (scan path) junto con los biestables
perifricos, para poder efectuar el test completo de los circuitos.
El circuito funciona en tres modos, completamente diferentes:
- el modo normal en el cual no actan los biestables perifricos (se encuentran
puenteados) y no existe el scan path: TMS = TDI = 0;
- el modo de desplazamiento TMS = 1, TCK = pulsos de reloj, en que se produce
el desplazamiento del registro que configura el scan path y, por tanto, la entrada y la
salida de los vectores de test;
- el modo de ejecucin de test: TMS = 0, TDI = 1, TCK = un solo pulso de reloj
en que los biestables perifricos actan como entradas de los circuitos integrados
(para realizar su test interno) y como salidas de los mismos (para realizar el test de
las conexiones entre ellos).
Estos tres modos de funcionamiento se diferencian, en los biestables perifricos,
mediante dos multiplexores:
TCK
D
Q
0
1
0
1
SCAN PATH
SCAN PATH
TMS
TMS . TDI
para puentear el biestable perifrico en modo normal
25. Test de ci rcui t os i nt egrados 157
El test de cada circuito integrado se efecta en la forma siguiente:
c vector de entrada para dicho test:
entradas al circuito integrado: se cargan sobre los biestables perifricos de las
entradas del mismo;
estado anterior: se carga sobre los biestables internos propios del circuito.
d un pulso de reloj en modo de ejecucin de test;
e vector resultante de salida del test:
salidas del circuito integrado: se encontrarn en los biestables perifricos de
las salidas del mismo;
nuevo estado: en los mismos biestables internos propios del circuito.
El test de las pistas de la placa de circuito impreso se efecta as:
c valores a comunicar a travs de las pistas: se cargan sobre los biestables
perifricos de las salidas de los diversos circuitos integrados;
d un pulso de reloj en modo de ejecucin de test;
e valores transmitidos a travs de las pistas: se encontrarn en los biestables
perifricos de las entradas de los circuitos integrados.
El test se realiza mediante la ejecucin de las siguientes fases:
fase de desplazamiento: TMS = 1, TCK = n pulsos de reloj (siendo n el nmero de
biestales, la longitud del scan path); se produce el desplazamiento del registro que
configura el camino de exploracin y, por tanto, la entrada del vector, bit a bit, de
test a dicho registro;
fase de ejecucin: TMS = 0, TDI = 1, TCK = un solo pulso de reloj; dicho pulso
de reloj ejecuta el test y los biestables recogen el resultado del mismo: los
biestables propios y los biestables perifricos de las salidas reciben el resultado del
test interno de cada circuito integrado; los biestables perifricos de las entradas
reciben el test de conexiones entre circuitos (pistas del circuito impreso);
de nuevo una fase de desplazamiento: TMS = 1, TCK = n pulsos de reloj; permite
observar el resultado del test y, a la vez, introducir el vector para el siguiente test.
Al igual que cada circuito integrado, la placa circuital dispondr de cuatro terminales
especficos para el test:
- TDI (Test Data In): entrada de vectores de test
- TDO (Test Data Out): salida de resultados del test
- TCK (Test Clock): reloj para la ejecucin del test
- TMS (Test Modo Switch): control modo test
158 El ect rni ca Di gi t al
Dentro de la placa, las entradas TDI y las salidas TDO de test de los circuitos
integrados que contiene han de estar unidas en cascada (TDO TDI'), formando una
larga cadena de registros de desplazamiento (un scan path global). Siendo p el nmero
total de biestables presentes en la placa, el test global de la misma requiere p pulsos de
reloj (con TMS = 1) para la fase de desplazamiento (en la cual, se observan los
resultados del test anterior y se introducen, a la vez, los vectores de entrada para el test
siguiente) y 1 pulso de reloj (con TMS = 0 y TDI = 1) para la la fase de ejecucin.
Los vectores de entrada necesarios son los correspondientes al test de los diversos
circuitos integrados contenidos en la placa, adecuadamente encadenados entre s (segn el
scan path que tales circuitos configuran), intercalados (conforme a los biestables
perifricos de las salidas de los integrados) con los vectores para el test de conexiones
entre circuitos (test de las pistas del circuito impreso), que sern conjuntos aleatorios de
ceros y unos.
Del mismo modo (con la misma filosofa y con los mismos recursos) que se ha
planteado el test de una placa de circuitos digitales, puede desarrollarse el test de un
conjunto de placas o, lo que es lo mismo, el test de un sistema digital completo.
25. 6. Test i nt erno
En circuitos integrados de gran complejidad (en particular, en bloques
correspondientes a estructuras matriciales tales como RAM, ROM, PLA, etc.,) conviene
incluir, en el propio circuito integrado mdulos que permitan realizar internamente el
test; es decir, circuitos complementarios para:
- generar por s mismos un conjunto apropiado de vectores de test (vectores de
entrada)
- y analizar los resultados (vectores de salida) del test.
Tngase en cuenta que un scan path, para ejecutar un slo test, requiere n + 1 ciclos
(siendo n el nmero de biestables presentes en dicho camino de exploracin), ya que es
preciso almacenar, bit a bit, el vector de entrada (y tambin extraer, bit a bit, el resultado
del test); el nmero de ciclos puede reducirse por un factor n + 1 si los vectores de entrada
se generan internamente y los resultados se analizan (o se almacenan en forma compacta)
en el interior del circuito integrado. Tal es el objetivo del test interno.
Consideremos una memoria RAM de gran capacidad: su test implica escribir y leer
en cada uno de sus registros varias veces, lo cual requiere un alto nmero de ciclos. Sin
embargo, la generacin y el anlisis de vectores de test es muy sencilla (como veremos a
continuacin); resulta conveniente incluir tales funciones (generacin y anlisis) dentro
del circuito integrado, lo cual permite prescindir (en buena medida) de las costosas
mquinas de test y realizar el test con un equipo de observacin mucho ms simple.
25. Test de ci rcui t os i nt egrados 159
El test interno permite comprobar los circuitos posteriormente, una vez instalados en
el sistema electrnico concreto en que vayan a ser utilizados, y verificar (en cualquier
momento y de forma sencilla) que dichos circuitos integrados siguen funcionando bien.
Es decir, el test interno no es slo una facilidad para la necesaria verificacin del circuito
en el proceso de fabricacin, sino que configura un recurso permanente (una prestacin de
la cual se dispone siempre) que permite efectuar nuevas verificaciones in situ, a lo largo
del tiempo de utilizacin del circuito integrado; en ambos casos, la ejecucin del test es
muy simple ya que, bsicamente, se realiza en el interior del circuito.
El test interno plantea la realizacin del test, por medio de un circuito auxiliar (por
hardware), dentro del propio circuito integrado; es decir, incluir en su diseo (y,
posteriormente, en su fabricacin) un aadido circuital especfico para la ejecucin del
test. Dicho circuito auxiliar ha de contener, obviamente, dos partes (entradas / salidas):
- un generador de los vectores de test (vectores de entrada)
- y un analizador de los resultados del mismo (vectores de salida).
Una forma sencilla de generar vectores de p bits la constituye un contador de p
biestables, que producir todos los vectores de p bits en orden numrico binario; otra
posibilidad, tan sencilla o ms que la anterior, es generar vectores aleatoriamente
utilizando un registro de desplazamiento. La segunda opcin tiene la ventaja de que los
vectores contiguos presentan menor correlacin (son ms independientes entre s) que los
que proceden de un contador.
En ocasiones (por ejemplo, en el test BIST para memorias RAM que se describe a
continuacin), los resultados del test presentan una gran uniformidad y basta un pequeo
circuito combinacional para detectar si son correctos; una salida del circuito integrado
servir para informar de que los sucesivos resultados del test son vlidos (dicha salida se
mantendr constantemente a 0 durante el test: un simple pulso a 1 indica mal
funcionamiento del circuito).
Este tipo de solucin combinacional para analizar el test no siempre es posible y en
muchas ocasiones hemos de limitarnos a almacenar, en forma compactada, los sucesivos
vectores de salida de test; la firma sobre p bits (una extensin de la paridad a p bits)
permite compactar, sobre una longitud p, cualquier serie de bits por larga que sea,
detectando error en la misma siempre que el nmero de errores no sea superior a p.
En los siguientes subapartados se detallan diversas configuraciones relativas al test
interno de circuitos integrados:
- el test interno de memorias, BIST,
- la generacin aleatoria de vectores de test, LFSR,
- el almacenamiento compacto de vectores resultantes del test, FIRMA
- y el aprovechamiento de un registro como LFSR y como FIRMA, BILBO.
160 El ect rni ca Di gi t al
25.6.1. BIST (Built In Self Test): test interno de memorias
Genricamente el trmino BIST (autotest construido internamente) alude a cualquier
procedimiento de test interno, pero suele emplearse ms especficamente para el test de
memorias, en el cual las direcciones se generan mediante un contador y los contenidos de
los registros corresponden a todo unos, a todo ceros y a un ajedrezado de ceros y unos
alternativos.
El test de las memorias RAM suele realizarse mediante el siguiente algoritmo
(supuesta una memoria de N registros, cuya numeracin ir de 0 a N-1):
1 de 0 a N-1 escribir todos los registros con 111111 ...
2 de 0 a N-1 leer y comprobar cada registro y escribir en el mismo 000000 ...
3 de 0 a N-1 leer y comprobar cada registro y escribir 111111 ...
4 de N-1 a 0 leer y comprobar cada registro y escribir en el mismo 000000 ...
5 de N-1 a 0 leer y comprobar cada registro y escribir 111111 ...
6 de 0 a N-1 escribir sucesivamente registros impares con 101010 ...
y registros pares con 010101 ...
7 de 0 a N-1 leer y comprobar cada registro
8 de 0 a N-1 escribir sucesivamente registros impares con 101010 ...
y registros pares con 010101 ...
9 de 0 a N-1 leer y comprobar cada registro
10 test completo, memoria disponible para ser utilizada.
De esta forma, se observa no slo la escritura y lectura de un 0 y de un 1 sobre cada
biestable de la memoria, sino tambin la influencia de los biestables contiguos: de ah
que, a la vez que progresa la lectura de unos, se escriban ceros antes de leer el
registro contiguo y viceversa y de ah, tambin, la utilizacin de ajedrezados con ceros
y unos intercalados en las dos direcciones y en las dos posibilidades.
Puede comprobarse que, con el algoritmo anterior, cada biestable (i , j, siendo i la fila
del biestable y j la columna del mismo) se prueba en sus dos valores (0 / 1) respecto a
todas las posibilidades de los ocho biestables vecinos que le rodean: los dos biestables
contiguos de la misma fila (i , j-1 ; i , j+1), los tres biestables anlogos de la fila anterior
(i-1 , j-1; i-1 , j ; i-1 , j+1) y los tres de la siguiente (i+1 , j-1; i+1 , j ; i+1 , j+1).
Asimismo, se comprueban las diversas posibilidades de interaccin entre biestables del
mismo registro (que se encontrarn en hojas diferenciadas, vase la estructura de las
memorias RAM en 19.2., segundo volumen).
Este test requiere un contador para generar las direcciones de los registros; un
segundo contador de cuatro bits y un decodificador para distinguir las diez fases de
ejecucin del test; un circuito combinacional muy simple que genera, a la vez, los
vectores de entrada y de salida del test y un comparador entre la lectura de los registros y
los citados vectores de salida.
Los vectores a generar son muy simples:
25. Test de ci rcui t os i nt egrados 161
- dos componentes: Dimpar biestables impares y Dpar biestables pares de los registros;
- en la fase 1, Dimpar,Dpar = 11; en la fase 2 y en la fase 4 11(lectura) y 00 (escritura)
alternativos; en la fase 3 y en la 5 00 (lectura) y 11 (escritura) uno tras otro;
- en la fase 6 y en la 7, Dimpar,Dpar = 10 (registros pares) y 01 (impares) sucesivamente
y en las fases 8 y 9 01 (registros pares) y 10 (impares).
Basta un pequeo circuito combinacional, a partir del decodificador de fases citado,
de un biestable que distinga entre lectura y escritura (en las fases 2, 3, 4 y 5) y de la lnea
de direccionamiento A0 (registros pares e impares), para generar los citados vectores de
test que cubren tanto la entrada (escritura) como la salida (lectura) del mismo.
El comparador entre la lectura de los registros y el vector de referencia generado por
el circuito combinacional ha de habilitarse solamente en los momentos de lectura; de
forma que su salida se encontrar normalmente a 0 y solamente pasa a 1 si la lectura del
registro no coincide con el valor esperado.
Este tipo de test interno (BIST) requiere solamente tres terminales: TMS de control
del modo de test, TCK para enviar un reloj que haga avanzar a los contadores y TDO
el terminal de salida del comparador; el test se realiza haciendo TMS = 1, enviando una
alta frecuencia de reloj por TCK y observando la ausencia de 1 en TDO. No es necesario
contar los pulsos enviados a TCK: basta dedicar suficiente tiempo al test para asegurar
que se ha llegado a la fase 10.
25.6.2. LFSR (Linear Feedback Shift Register): generacin aleatoria de vectores
La ejecucin del test (sobre un bloque combinacional) requiere vectores de entrada
con p componentes (p entradas); tales vectores pueden generarse mediante un contador de
p biestables (mdulo 2
p
) y, en tal caso, aparecern segn el orden numrico binario.
Otra posibilidad consiste en generar vectores de forma aleatoria, que asegura
menor correlacin (nula si realmente fueran aleatorios) entre vectores sucesivos, por lo
cual resultan mucho ms adecuados para el test; en particular, cuando no se utiliza un
conjunto completo (2
p
) de vectores de entrada (se ha comentado antes que los vectores
de entrada aleatorios consiguen coberturas de fallos relativamente altas).
Los registros de desplazamiento (SR: Shift Register) con realimentacin lineal
(LF: Linear Feedback) constituyen sencillos generadores de vectores seudoaleatorios.
Para determinados valores de longitud de un registro de desplazamiento (m biestables,
siendo m el ms significativo), se verifica que, realimentando hacia la entrada, a travs de
una puerta "o-exclusiva", la salida del biestable m y otra de las salidas m',
adecuadamente escogida, el registro genera sucesivamente y en forma seudoaleatoria
todos los vectores de m bits menos el nulo 0000...: 2
m
-1 vectores.
162 El ect rni ca Di gi t al
REGISTRO DE DESPLAZAMIENTO m biestables
Qm ... ... ... ... ... Q1
Din
CK
Qm ... ... ... ... ...
El nmero m' del segundo biestable a realimentar, para conseguir dicha generacin
mxima de vectores seudoaleatorios (2
m
-1), se calcula por tcnicas matemticas de
polinomios generadores; por ejemplo:
m = 10 m' = 7 1.023 vectores;
m = 15 m' = 14 32.767 vectores;
m = 20 m' = 17 1.048.575 vectores;
m = 25 m' = 22 33.554.431;
m = 31 m' = 28 2 mil millones de vectores;
m = 39 m' = 35 0,5 billones.
Si se aade un inversor detrs de la puerta "o-exclusiva" se obtienen todos los
vectores de m bits menos el todo unos 1111..., lo cual permite utilizar el vector nulo
0000 para iniciar la generacin de vectores seudoaleatorios.
Para longitudes habituales (8, 16, 24, 32,...) es preciso realimentar, a travs de
puertas "o-exclusiva" (paridad), ms de 2 biestables hacia la entrada:
para m = 8 hay que realimentar los biestables 8, 6, 5 y 4 (255 vectores),
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
CK
para m = 16: se realimentan 16, 15, 13 y 14 y produce 65.535 vectores distintos,
para m = 24: se realimentan 24, 23, 22 y 17 y genera 16.777.215 vectores.
Los registros de desplazamiento con realimentacin lineal LFSR son los mdulos
utilizados normalmente como generadores internos de vectores de test. Respecto a
contadores de igual longitud tiene la ventaja de que su circuitera es ms simple
(m biestables y una o varias puertas "o-exclusiva", sin tener que constituir las complejas
funciones que corresponden al contaje) y que generan los vectores en forma cuasi
aleatoria y no en orden numrico binario.
25. Test de ci rcui t os i nt egrados 163
25.6.3. FIRMA: almacenamiento compacto de vectores
Al realizar un test con n vectores de entrada obtenemos n vectores de salida, es decir,
una secuencia de n palabras de p bits: n . p bits; la idea es comprimir dichos resultados
de forma que la cantidad de memoria necesaria para almacenarlos sea pequea (en la
prctica una sola palabra de igual longitud que cada vector salida: p bits) y de forma,
tambin, que la obtencin del resultado global del test sea sencilla: bien en cuanto a
nmero de ciclos para leer el registro de resultados, bien en cuanto al circuito de
comparacin que evala si el resultado es o no correcto.
Entendemos por firma sobre p bits (del ingls firm) la reduccin a una sola palabra
de p dgitos de n palabras binarias, cada una de ellas de p bits, con las siguientes
propiedades:
- la firma es una aplicacin unvoca de n palabras de p dgitos sobre una palabra de p
bits,
- dos conjuntos distintos, de n palabras de p dgitos cada uno, que no se diferencien
en ms de p bits, tendrn firmas diferentes entre s,
- es decir, si en un conjunto de n palabras de p dgitos se modifican (se invierten) p
de los n.p bits (o menos), la firma del conjunto modificado ser diferente de la
firma del conjunto inicial.
De manera que la firma sobre p bits permite detectar errores que afectan a p bits o a
menos de p bits, pues el anlisis de firma de dos conjuntos de palabras diferentes
conduce a dos firmas distintas, salvo que dichos conjuntos difieran en ms de p bits (en
cuyo caso sus firmas pueden ser diferentes o iguales).
Sea S el conjunto de n . p dgitos, su firma es una aplicacin sobre p bits
S (n . p bits) F(S) (p bits)
tal que, si dos conjuntos S1 y S2
S1 F(S1) = F1
S2 F(S2) = F2
tienen la misma firma F1 = F2, puede afirmarse que:
- o bien ambos conjuntos son iguales (S1 = S2)
- o bien difieren en ms de p bits (S1 S2 contiene ms de p unos).
Por ello, la firma detecta errores cuando su nmero no es superior a p, ya que la
firma de un conjunto S' errneo ser distinta de la firma del conjunto correcto S:
F' F si S S' y S S' no contiene ms de p unos.
Obviamente, la bien conocida paridad corresponde a la firma sobre 1 bit.
164 El ect rni ca Di gi t al
Para calcular la firma sobre p bits basta modificar un registro de desplazamiento
realimentado linealmente LFSR, aadiendo puertas "o-exclusiva" en las entradas de sus
biestables en la forma que sigue:
- cada palabra de p dgitos es recogida por el registro de desplazamiento a travs de p
entradas paralelo especiales y es mezclada con el estado del registro;
- cada biestable recibe, en su entrada D, la operacin "o-exclusiva" entre la salida del
biestable anterior (conexin serie propia del registro de desplazamiento) y el bit
correspondiente de la palabra recibida (entradas paralelo especiales);
- el registro se encuentra, adems, realimentado linealmente en la forma propia de los
registros de desplazamiento con realimentacin lineal.
Tal registro de desplazamiento, con entrada paralelo en forma de "o-exclusiva" y
realimentacin lineal, realiza la firma sobre p bits siendo p el nmero de sus biestables
y el nmero de dgitos de las palabras que recibe:
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
CK
D7 D6 D5 D4 D3 D2 D1 D0
En el registro de desplazamiento anterior, al recibir uno tras otro los n vectores
de salida de test (supuesto que sean de 8 bits), se realiza la firma del conjunto de dichos
n vectores (n.8 bits) sobre una palabra de 8 dgitos. Puede demostrarse que dos conjuntos
diferentes (de n palabras de 8 dgitos cada uno), cuya firma sea la misma, diferirn en ms
de 8 bits; es decir, permite detectar errores que afecten a 8 bits o menos.
Los circuitos que realizan la firma sobre p bits reciben el nombre de analizadores de
firma.
25. Test de ci rcui t os i nt egrados 165
25.6.4. BILBO (Built In Block Observer): test interno mediante LFSR y FIRMA
Un registro sncrono, de entradas paralelo (o, lo que es lo mismo, un conjunto de
biestables de tipo D), puede ser reconfigurado de forma que, adems de actuar como
registro retencin, pueda hacerlo como generador de vectores (LFSR) y como analizador
de firma o, tambin, pueda borrarse en forma sncrona. Basta, para ello, aadir al registro
la lgica correspondiente al analizador de firmas, junto con dos entradas de control C1 y
C2 que actan a travs de sendas puertas "y" y "o-negada", segn el esquema de la
figura.
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
CK
C1
C2
D0 D1 D2 D3 D4 D5
Q0 Q1 Q2 Q3 Q4
Q5
Cuando ambas entradas tienen valor 1, C1 = C2 = 1, el bloque acta como un simple
registro de entradas paralelo:
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
Q0 Q1 Q2 Q3 Q4
Q5
D0 D1 D2 D3
D4
D5
CK
C1 = C2 = 1
Registro de entradas paralelo
Para ambas entradas a valor 0, C1 = C2 = 0, el bloque queda en forma de registro de
desplazamiento realimentado linealmente LFSR, o sea, un generador de vectores de test:
Generador de vectores de test
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
Q0 Q1 Q2 Q3 Q4 Q5
CK
C1 = C2 = 0
166 El ect rni ca Di gi t al
Para C1 = 0 y C2 = 1, el bloque se configura como analizador de firma:
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
Q0 Q1 Q2 Q3 Q4 Q5
D0 D1 D2 D3 D4 D5
CK
C1 = 0 C2 = 1
Analizador de firma
Y con C1 = 1 y C2 = 0, se produce el borrado sncrono del registro:
C1 = 1 C2 = 0
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
Q0 Q1 Q2 Q3 Q4
Q5
CK
Borrado sncrono
0 0 0 0 0 0
Este tipo de registro, que puede ser empleado bien como registro de retencin (o
biestables individuales) con borrado sncrono, bien como generador de vectores o como
analizador de firmas, recibe el nombre de registro BILBO (Built In Block Observer).
Con esta estructura cualquier registro interno, o cualquier conjunto de biestables, de un
circuito integrado puede ser utilizado, a efectos de test, como generador de vectores de
test y como analizador de firma.
Los registros BILBO dan lugar a una configuracin de test interno que consiste en
un generador de vectores de test (LFSR) y un analizador de firmas; el primero genera
vectores de test sobre las entradas del bloque a testear y el segundo almacena, en forma
comprimida, los vectores de salida resultantes del test.
L
F
S
R
F
I
R
M
A
bloque
a
testear
generador
de vectores de test
analizador
de firmas
Para efectuar el test, esta configuracin requiere tres terminales: TMS para controlar
el modo de test, TCK como reloj y TDI para la salida del analizador de firmas; dicha
salida puede obtenerse en forma de firma global (p bits) que se extrae por
desplazamiento (mediante scan path) bit a bit o en forma unitaria (1 bit), aadiendo un
comparador que confronte la firma obtenida con la esperada en el caso correcto.
25. Test de ci rcui t os i nt egrados 167
Los registros de entrada (generador de vectores) y salida (analizador de firma)
pueden ser registros aadidos a los solos efectos del test, pero tambin pueden ser
registros o conjuntos de biestables propios del diseo, configurados en forma de BILBO.
Segn se coment en el captulo 15 (volumen 2), un circuito secuencial sncrono
puede segmentarse en bloques o mdulos conformados por una parte combinacional y
un registro o conjunto de biestables que recogen las salidas de ella y conectan con el
bloque o bloques siguientes; algunas salidas del propio bloque se realimentarn sobre el
mismo. De manera que cada parte combinacional se encuentra entre dos registros o
conjuntos de biestables, uno de ellos correspondiente al bloque o bloques anteriores
(entradas) y el otro, el propio del bloque (salidas).
Bloques
anteriores
B
i
e
s
t
a
b
l
e
s
B
i
e
s
t
a
b
l
e
s
Lgica
combinacional
Bloque
A partir de la estructura representada en esta figura, para obtener una configuracin
BILBO es necesario duplicar (en el modo de test) los biestables que se realimentan
sobre el propio bloque, de forma que una mitad siga siendo biestables de salida del
bloque para configurar, con el resto de los biestables de salida, un registro BILBO que
acte como analizador de firma y la otra mitad se agregue a los biestables de entrada,
formando otro registro BILBO como generador de vectores de test.
Lgica
combinacional
Bloque
Biestables duplicados
BILBO de salida BILBO de entrada
De manera que un circuito integrado complejo puede dividirse (a efectos de test) en
partes, formadas (cada una de ellas) por un ncleo combinacional entre dos registros
BILBO y, de esta forma, puede realizarse el test interno de cada parte utilizando el
registro anterior, como generador de vectores de test, y el registro siguiente, como
analizador de firmas; para cada una de las firmas, ha de comprobarse su coincidencia (o
diferencia) con las que corresponden al circuito sin fallos.
168 El ect rni ca Di gi t al
La configuracin necesaria para duplicar los registros que se realimentan sobre el
bloque puede ser la siguiente:
Lgica
combinacional
Bloque
Q
D
CK
Q
D
CK
biestable
duplicado
0
1
0: normal
1: test
biestable
que se realimenta
25.6.5. Autotestabilidad, seguridad y tolerancia frente a fallos
La inclusin en el propio circuito integrado de mdulos que permiten realizar su test
internamente introduce un nuevo concepto, la autotestabilidad: la capacidad de verificar
in situ y en cualquier momento la configuracin funcional del circuito integrado. De
esta forma, el circuito puede autocomprobarse repetidamente y avisar cuando tal
comprobacin detecte fallos.
Cada vez son ms los sistemas digitales que se autochequean, antes de comenzar
su actuacin (o, tambin, peridicamente a lo largo de la misma, aprovechando pausas
funcionales), para asegurar que todas sus partes se encuentran en perfecto estado de
funcionamiento.
Un paso ms all en la deteccin de errores consiste en realizar (al menos
parcialmente) el test del circuito en forma simultnea a su funcionamiento como tal, de
manera que el circuito integrado supervise su actuacin continuamente y en paralelo con
la misma y avise de la existencia de fallos lo antes posibles y sin necesidad de efectuar
una solicitud exterior de test. En este caso el circuito presentar una gran seguridad frente
a fallos (permitiendo desechar con inmediatez cualquier funcionamiento errneo).
Una solucin que ya se utiliza es la de duplicar determinados sistemas o partes
digitales y verificar la coincidencia de los clculos realizados por ambos.
Lo ptimo sera que el circuito, adems de avisar en cuanto existe un fallo (seguridad
frente a fallos), fuera capaz de corregir su propio funcionamiento y su respuesta fuera
correcta, aun en presencia de fallos: circuito tolerante a fallos. Al igual que existen
cdigos autocorrectores de errores (que permiten tal correccin cuando el nmero de
errores es limitado) es posible disear circuitos que, para un nmero limitado de fallos, la
presencia de ellos no introdujera errores en la respuesta del circuito.
Al igual que la duplicacin de partes digitales permite que se vigilen
mutuamente, su triplicacin, aadiendo un circuito de decisin mayoritaria, da lugar
a que, si una de las tres partes iguales que funcionan en paralelo falla (si proporciona
una respuesta diferente a la de las otras dos), sus resultados sean desechados y se adopte
como respuesta correcta la comn de las otras dos partes.
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
A6 Apndi ce al cap t ul o 23
Ej empl os de di seo con V H D L
Este apndice ofrece una serie de ejemplos de diseo de circuitos de control descritos
en VHDL. Los seis primeros se refieren a pequeos sistemas, basados en la utilizacin de
contadores, a saber:
- temporizacin de la luz de una escalera,
- control de anchura de pulsos de entrada,
- supervisin de velocidad de un motor,
- comparacin de anchura de pulsos sucesivos,
- generacin de n pulsos, siendo n la medida del pulso de entrada,
- y pulsos de anchura progresivamente creciente/decreciente.
En estos ejemplos, como referencia para el texto VHDL y, tambin, como ejercicio
de diseo modular, se incluye y se comenta el correspondiente diagrama de bloques.
Otros tres diseos se refieren a mquinas algortmicas descritas en el captulo 24:
- producto de dos nmeros de 64 dgitos binarios (apartado 24.3.),
- raz cuadrada de un nmero de 64 dgitos (ejemplo 24.4.2.),
y, por ltimo, se desarrollan dos diseos ms amplios, relativos a un cronmetro
controlado mediante dos pulsadores (ejemplo 24.4.5. del captulo 24) y al control de una
encimera de cocina vitrocermica con cuatro fuegos.
[Los diez diseos de este apndice han sido comprobados, mediante compilacin y
simulacin del texto VHDL con la herramienta MAX+plus II de ALTERA.]
1. Temporizacin de la luz de una escalera
Un conmutador BCD controla las lmparas de iluminacin de la escalera de una
comunidad de vecinos; de forma que, si el nmero fijado en el conmutador BCD es n, las
lamparas deben mantenerse encendidas durante n . 10 segundos cada vez que se pulsa un
interruptor P; durante los 10 segundos siguientes, las lamparas deben apagarse y
encenderse 5 veces sucesivas, con intervalos de 1 segundo. Cuando las lmparas estn
encendidas, si se pulsa P no hace nada, pero al hacerlo durante el intervalo de
intermitencia, o posteriormente al mismo, se reinicia el ciclo de encendido.
q3 q2 q1 q0
16
B
P
q3 q2 q1 q0
10
B
E mx
comparador
E
conmutador BCD
=
<
>
CK 1Hz 1"
encendido
lmparas
n
248 El ect rni ca Di gi t al
A partir de un reloj de 1 Hz (1 segundo de perodo), un contador dcada determina
ciclos de 10" y un segundo contador realiza el contaje de dichos ciclos y la comparacin
con el nmero n fijado en el conmutador BCD. Mientras el segundo contador se
encuentra por debajo de n (n estados, de 0 a n-1) las lmparas se mantienen encendidas;
cuando ambos nmeros son iguales, se produce la intermitencia (10") y, al superar el
contador el valor n se detiene el contaje para evitar que se d la vuelta (vuelva a 0) e
inicie un nuevo ciclo de iluminacin.
Para la intermitencia se aprovecha la primera salida (unidades) del primer contador,
cuyo semiperodo (tiempo en 1 y tiempo en 0) es 1 segundo. El pulsador borra ambos
contadores para comenzar una nueva temporizacin, pero no lo hace cuando las lmparas
se encuentran en encendido fijo.
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;
entity ESCALERA is
port ( CK, RS, P : in std_logic;
conmutador : in std_logic_vector(3 downto 0);
luces : out std_logic);
end ESCALERA;
architecture TEMPORIZADOR of ESCALERA is
signal cont_1, cont_2 : std_logic_vector(3 downto 0);
-- el contador cont_1 divide por 10: pasa del reloj de 1" a 10"
-- cont_2 cuenta intervalos de 10" (cuando cont_1 est en 9)
begin
-- si cont_2 < conmutador BCD, luz fija; cuando son iguales, luz intermitente
-- la intermitencia se hace con cont_1(0): semiperodo 1"
luces <= '1' when (cont_2 < conmutador) or ((cont_2 = conmutador) and (cont_1(0) = '1'))
else '0';
TEMPORIZACION: process
begin wait until CK = '1';
-- inicializacin RS y activacin de la temporizcin P
if (( RS = '1' ) or ((P = '1') and (cont_2 >= conmutador))) then cont_2 <= "0000";
cont_1 <= "0000";
-- contaje mdulo 10 para cont_1 y hasta cont_2 > conmutador BCD para ambos
elsif (cont_2 <= conmutador) then
if (cont_1 = "1001") then cont_2 <= cont_2 + 1; cont_1 <= "0000";
else cont_1 <= cont_1 +1; end if;
end if; end process;
end TEMPORIZADOR;
A6. Ej empl os de di seo 249
2. Control de anchura de pulsos de entrada
Un circuito posee una nica lnea de entrada que recibe pulsos de diferente duracin
y presenta una sola lnea de salida que debe situarse a 1 si la anchura del ltimo pulso
recibido es mayor que 25 s y menor de 60 s, con una precisin de 0,5 s: la salida se
actualiza cuando finaliza cada pulso (flanco de bajada).
Se requiere un reloj de 2 MHz para que la precisin sea de 0,5 s y con dicho reloj:
25 s = 11001 s = 110010 x 0,5 s 60 s = 111100 s = 1111000 x 0,5 s
Contador mdulo 128
q
D
q
D
q
D
CK 2 MHz 0,5 s
CK 2 MHz
E
B
E
CK
25 s
detecta 60
detector de flancos
pulsos
Comparador A > B
A
B
0 1 1 0 0 1 0
Un contador mide la anchura del pulso de entrada con el reloj de 2 MHz (0,5 s) y
la compara con 25 s (comparador) y con 60 s (puerta Nand); cuando llega a 60 el
contador se detiene para que no se d la vuelta (vuelva a 0) e inicie un nuevo contaje.
La comparacin se ejecuta (sobre el biestable de salida) al finalizar el pulso de entrada
(deteccin del flanco de bajada) y, a la vez, se borra el contador para la medida del
siguiente pulso.
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;
entity ANCHURA is port ( CK, RS, P : in std_logic; Y : out std_logic);
end ANCHURA;
architecture MEDIR of ANCHURA is
signal cont :std_logic_vector(6 downto 0);
-- cont mide la anchura del pulso; se detiene si llega a 60 s
-- se borra al detectarse el flanco de bajada
signal detector :std_logic_vector(2 downto 1);
signal flanco :std_logic;
-- detector son dos biestables para detectar el flanco de bajada:
-- cuando detector(2) = 1 y detector(1) = 0, entonces flanco = 1
250 El ect rni ca Di gi t al
signal yy :std_logic;
-- yy es el biestable de salida que se activa cuando flanco = 1 y 25 < contador < 60
begin
Y <= yy; flanco <= detector(2) and not detector(1);
RELOJ: process
begin wait until CK = '1';
detector(1) <= P; detector(2) <= detector(1);
-- medida de la anchura de pulso
if (( RS = '1' ) or (flanco = '1')) then cont <= "0000000";
elsif (cont < "1111000") and (detector(1) = '1') then cont <= cont + 1;
end if;
-- ejecucin de las comparaciones para dar lugar a la salida
if flanco = '1' then
if (cont >= "0110010") and (cont < "1111000") then yy <= '1';
else yy <= '0'; end if;
end if;
end process;
end MEDIR;
3. Supervisin de velocidad de un motor
Un motor debe girar con un mnimo de 480 r.p.m. hasta un mximo de 540 (que no
debe ser alcanzado); el circuito que vigile la velocidad del motor recibir pulsos de un
sensor que detecta las vueltas del motor y debe proporcionar una seal de alarma cuando
se encuentre fuera de dicho intervalo. Se utilizar una frecuencia de reloj de 1 KHz.
Corresponde a un frecuencmetro con una sola salida (de alarma), referida a la
comparacin de la medida de frecuencia con las dos frecuencias extremas; tomando un
tiempo de medida de 10 segundos:
480 r.p.m. = 80 rev. en 10" = 1000 540 r.p.m. = 90 rev. en 10" = 1001
q
D
E
CK
detector de flancos
pulsos
del
sensor
q3 q2 q1 q0
16
B
q3 q2 q1 q0
10
B
E mx
comparador
E
<
CK 1KHz 1ms
10"
1 0 0 0
<8
>9
q
D
q
D
10
mx
4
A6. Ej empl os de di seo 251
El contaje de pulsos se hace en BCD y se compara con 80 y con 90; cuando llega a
90 se detiene para evitar que el contador se d la vuelta. El intervalo de medida (10")
se obtiene dividiendo por 10
4
la frecuencia de reloj (1 KHz); al final de dicho intervalo se
ejecutan las comparaciones (biestable de salida) y se borra el contador para iniciar una
nueva medida.
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;
entity MOTOR is port ( CK, RS, S : in std_logic; Y : out std_logic);
end MOTOR;
architecture FRECUENCIA of MOTOR is
-- divisin de frecuencia por 10; se utiliza 4 veces (por ello se define como funcin)
function mod10 (e :std_logic; qq :std_logic_vector(3 downto 0)) return std_logic_vector is
variable cont:std_logic_vector(3 downto 0);
begin
if e = '1' then
if qq = "1001" then cont := "0000"; else cont := qq + 1; end if;
else cont := qq; end if;
return cont; end;
signal cont1,cont2 :std_logic_vector(3 downto 0);
-- cont1 es el contador mdulo 10 y cont2 es el siguiente (mdulo 16)
signal q4, q3, q2, q1 :std_logic_vector(3 downto 0);
signal max4, max3, max2, max1,diezseg :std_logic;
-- q y max sern las salidas de los cuatro contadores divisores por 10
-- diezseg es la onda de temporizacin de 10" (corresponde a max4)
signal detector :std_logic_vector(2 downto 1);
signal flanco :std_logic;
-- detector son dos biestables para detectar el flanco de bajada:
-- cuando detector(2) = 1 y detector(1) = 0, entonces flanco = 1
signal yy :std_logic;
-- yy es un biestable que se activa cuando diezseg = 1 y contador < 80 o 90)
begin
Y <= yy; flanco <= detector(2) and not detector(1);
max1 <= '1' when q1 = "1001" else '0';
max2 <= '1' when (q2 = "1001") and max1 = '1' else '0';
max3 <= '1' when (q3 = "1001") and max2 = '1' else '0';
max4 <= '1' when (q4 = "1001") and max3 = '1' else '0';
diezseg <= max4;
252 El ect rni ca Di gi t al
RELOJ: process
begin wait until CK = '1';
detector(1) <= S; detector(2) <= detector(1);
-- divisor de frecuencia por 10
4
: 4 contadores mdulo 10
q1 <= mod10('1', q1); q2 <= mod10(max1, q2);
q3 <= mod10(max2, q3); q4 <= mod10(max3, q4);
-- contaje de pulsos del sensor de vueltas del motor
if (( RS = '1' ) or (diezseg = '1')) then cont1 <= "0000"; cont2 <= "0000";
elsif (flanco = '1') and (cont2 < "1001") then
if cont1 = "1001" then cont1 <= "0000"; cont2 <= cont2 +1;
else cont1 <= cont1 +1; end if;
end if;
-- ejecucin de las comparaciones al finalizar el intervalo de medida
if diezseg = '1' then
if (cont2 < "1000") or (cont2 >= "1001") then yy <= '1';
else yy <= '0'; end if;
end if; end process; end FRECUENCIA ;
La solucin anterior tiene un tiempo de respuesta de 10 segundos (lo cual puede ser
adecuado para un operador humano); en caso de que la informacin respecto a la
velocidad del motor fuera comunicada a un microprocesador de control, es posible que
interesase un tiempo de medida menor.
Pueden conseguirse tiempos mnimos midiendo el perodo de los pulsos del sensor;
es decir, contando el tiempo entre dos pulsos sucesivos, en lugar de contar pulsos en una
unidad de tiempo: 1/480 r.p.m. = 60 /480 = 125 ms = 1111101
1/540 r.p.m. = 60 /540 = 111,1 ms ; 112 ms = 1101111.
En este caso, para mejorar la resolucin, se utiliza un reloj de 1 MHz.
q
D
E
CK
detector de flancos
pulsos
del
sensor
CK 1MHz 1s
<112
q
D
q
D
10
mx
3
Contador mdulo 128
B
1 ms
Comparador A < B
A
B
E2 E1
1 1 1 0 0 0 0
>125
CK 1MHz 1s
A6. Ej empl os de di seo 253
Ahora lo que se cuentan son milisegundos (se mide el perodo) y dicho contaje se
hace directamente en binario y se compara con 125 y con 111; cuando se alcanza el 125
se detiene el contador para evitar que se d la vuelta. Las comparaciones se ejecutan al
finalizar cada vuelta (flanco de bajada de los pulsos del sensor) y, a la vez, se borra el
contador para un nuevo contaje.
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;
entity MOTOR2 is port ( CK, RS, S : in std_logic; Y : out std_logic);
end MOTOR2;
architecture PERIODO of MOTOR2 is
function mod10 (e :std_logic; qq :std_logic_vector(3 downto 0)) return std_logic_vector is
variable cont:std_logic_vector(3 downto 0);
begin
if e = '1' then
if qq = "1001" then cont := "0000"; else cont := qq + 1; end if;
else cont := qq; end if;
return cont; end;
signal contador :std_logic_vector(6 downto 0);
signal q3, q2, q1 :std_logic_vector(3 downto 0);
signal max3, max2, max1, miliseg :std_logic;
signal detector :std_logic_vector(2 downto 1);
signal flanco :std_logic;
signal yy :std_logic;
begin
Y <= yy; flanco <= detector(2) and not detector(1);
max1 <= '1' when q1 = "1001" else '0';
max2 <= '1' when (q2 = "1001") and max1 = '1' else '0';
max3 <= '1' when (q3 = "1001") and max2 = '1' else '0'; miliseg <= max3;
RELOJ: process
begin wait until CK = '1';
detector(1) <= S; detector(2) <= detector(1);
q1 <= mod10('1', q1); q2 <= mod10(max1, q2); q3 <= mod10(max2, q3);
-- contaje de milisegundos
if (( RS = '1' ) or (flanco = '1')) then contador <= "0000000";
elsif (miliseg = '1') and (contador < "1111101") then contador <= contador +1;
end if;
254 El ect rni ca Di gi t al
-- ejecucin de las comparaciones al finalizar cada vuelta del motor
if flanco = '1' then
if (contador < "1110000") or (contador >= "1111101") then yy <= '1';
else yy <= '0'; end if;
end if; end process; end PERIODO ;
4. Comparacin de anchura de pulsos sucesivos
Interesa disponer de un circuito con una entrada por la que recibir pulsos de
duracin variable y una salida que debe avisar cuando los dos ltimos pulsos recibidos
sean iguales. El circuito ser sncrono con un reloj de 4 MHz y el aviso (salida a 1) se
producir cuando finalice cada pulso hasta que llegue el nuevo pulso; pulsos de duracin
igual o superior a 50 s no son tenidos en cuenta.
Con un reloj de 4 MHz (0,25 s): 50 s = 110010 s = 11001000 x 0,25 s.
Contador mdulo 256
q
D
q
D
q
D
CK 4 MHz 0,25 s
CK 4 MHz
E
B
CK
detecta 50
detector de flancos
pulsos
Comparador A = B
A
B
Registro
E
E
B
CK
El contador mide la anchura de los pulsos y el registro almacena la medida del
pulso anterior. La comparacin entre contador (pulso de entrada) y registro (pulso
anterior) y el almacenamiento en el registro se ejecutan cuando acaba cada pulso
(deteccin de su flanco de bajada). El contador permanece borrado mientras no hay pulso
de entrada y, en cambio, el biestable de salida se borra cuando existe pulso de entrada.
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;
entity COMPARACION is
port ( CK, RS, P : in std_logic; Y : out std_logic);
end COMPARACION ;
A6. Ej empl os de di seo 255
architecture ANCHURA of COMPARACION is
signal contador, registro :std_logic_vector(7 downto 0);
-- contador y registro son de 8 bits (para abarcar los 50 s, medidos con 4 MHz)
signal detector :std_logic_vector(2 downto 1);
signal flanco :std_logic;
-- detector son dos biestables para detectar el flanco de bajada:
-- cuando detector(2) = 1 y detector(1) = 0, entonces flanco = 1
signal yy :std_logic;
-- yy es el biestable de salida
begin
Y <= yy; flanco <= detector(2) and not detector(1);
RELOJ: process
begin wait until CK = '1';
detector(1) <= P; detector(2) <= detector(1);
-- medida de la anchura de pulso: mximo 50 s
if (( RS = '1' ) or (detector(1) = '0')) then contador <= "00000000";
elsif contador < "11001000" then contador <= contador + 1;
end if;
-- seal de salida: ejecucin de la comparacin al finalizar un pulso
if detector(1) = '1' then yy <= '0';
elsif flanco = '1' then
if (contador < "11001000") and (contador = registro) then yy <= '1';
else yy <= '0'; end if;
end if;
-- paso de la medida del pulso al registro para la comparacin con el siguiente pulso
if flanco = '1' then registro <= contador;
end if;
end process;
end ANCHURA;
256 El ect rni ca Di gi t al
5. Generacin de n pulsos
Un sistema sncrono con un reloj de 1 MHz recibe pulsos de diferente duracin,
separados, al menos, 50 s; el sistema mide la anchura del pulso recibido (n s) y, si n es
inferior a 25 s, genera n pulsos (tantos como la propia duracin del pulso de entrada) de
1 s, separados 1 s cada uno del siguiente.
Contador mdulo 32
q
D
q
D
CK 1 MHz 1 s
CK
B
detector de flancos
pulsos
de
entrada
Comparador
A
B
Contador mdulo 64
Y
CK 1 MHz 1 s
E
B
E
B<A
La primera salida q0 de un contador completo genera pulsos cuyos semiperodos
(tiempo en 1 y en 0) son iguales al perodo del reloj; las salidas siguientes del mismo
contador q5 ... q1 cuentan el nmero de dichos pulsos.
De esta forma, un contador (mdulo 32) mide la anchura de los pulsos de entrada y
otro contador (mdulo 64) genera los pulsos de salida (q0) y los cuenta. Ambos
contadores se borran al inicio de un nuevo pulso de entrada (deteccin de flanco de
subida). La condicin para que se generen los pulsos de salida (habilitacin del segundo
contador) es que haya finalizado el pulso de entrada, que su anchura haya sido inferior a
25 s y que el nmero de pulsos de salida sea an menor que la anchura del pulso de
entrada (comparador).
25 s = 11001 s.
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;
entity PULSOS is
port ( CK, RS,P : in std_logic; Y : out std_logic);
end PULSOS;
architecture GENERAR of PULSOS is
signal cont1 :std_logic_vector(4 downto 0);
-- cont1 mide la anchura del pulso de entrada; se detiene si llega a 25 s
signal cont2 :std_logic_vector(5 downto 0);
-- cont2 genera los pulsos de salida y los cuenta
A6. Ej empl os de di seo 257
signal detector :std_logic_vector(2 downto 1);
signal flanco :std_logic;
-- detector son dos biestables para detectar el flanco de subida:
-- cuando detector(2) = 0 y detector(1) = 1, entonces flanco = 1
begin
Y <= cont2(0); flanco <= not detector(2) and detector(1);
RELOJ: process
begin wait until CK = '1';
detector(1) <= P; detector (2) <= detector(1);
if (RS = '1') or (flanco = '1') then cont1 <= "00000"; cont2 <= "000000";
-- contaje del primer contador: medida de la anchura del pulso de entrada (mximo 25)
elsif detector(2) = '1' then
if (cont1 < "11001") then cont1 <= cont1 + 1; end if;
-- segundo contador: generacin de los pulsos de salida y contaje de los mismos
else if (cont1 < "11001") and (cont2(5 downto 1) < cont1) then cont2 <= cont2 + 1;
end if;
end if;
end process;
end GENERAR ;
6. Pulsos de anchura progresivamente creciente/decreciente
Interesa un circuito digital que proporcione pulsos de amplitud modulada en la forma
siguiente: un pulso cada milisegundo, el primero de ellos de 10 s y los siguientes con
anchura creciente de 20 s, 30 s, (cada uno 10 s ms largo que el anterior), hasta
alcanzar los 800 s; luego los pulsos decrecern (de 10 en 10 s) hasta reducirse a 10 s,
momento en el cual volvern a crecer; y as sucesivamente.
Se trata de configurar un mdulador de anchura de pulso: un contador que produzca
el ciclo on/off y un comparador que compare el estado del contador con una referencia.
Dicha referencia ha de ir creciendo, ciclo a ciclo, desde 10 s hasta 800 s (con un paso
de 10 s), mediante un contador bidireccional cuyo sentido de contaje sea controlado por
un biestable; ste debe ponerse a 0 (borrarse) cuando la referencia llegue a 800 s en el
contaje ascendente y debe pasar a 1 (marcarse) cuando el descontaje llega a 10 s.
Si ambos contadores (el del ciclo y el de la referencia) cuentan en BCD y se refieren
a un intervalo base de 10 s: 10 s = 0000 0001 x 10 s, 800 s = 1000 0000 x 10 s.
Con reloj de 1 MHz har falta otro contador dcada para la temporizacin en 10 s.
El contador del ciclo PWM ser habilitado por esta seal de 10 s y de mdulo 100 para
que el ciclo sea de 1 ms (100 x 10 s); el contador que genera la referencia se habilitar
con la salida de mximo del anterior (que determina el final de cada ciclo).
258 El ect rni ca Di gi t al
comparador
A
=
<
<
CK 1 MHz 1 s
q3 q2 q1 q0
10
mx E
q3 q2 q1 q0
10
E
>
comparador
A
=
<
>
=
<
>
mx
E
10
E
q3 q2 q1 q0
10
q3 q2 q1 q0
mx
E
10
q3 q2 q1 q0
mx
CK 1 MHz 1 s
1
q J
K
CK
q
D
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;
entity PWM is port ( CK, RS : in std_logic; Y : out std_logic);
end PWM;
architecture VARIA of PWM is
-- contaje mdulo 10, que puede ser bidireccional: hay 5 contadores dcada en el diseo
-- rs acta como inicializacin, dir como control arriba/abajo y e como habilitacin
function mod10 (rs, dir, e :std_logic; qq :std_logic_vector(3 downto 0))
return std_logic_vector is
variable contador :std_logic_vector(3 downto 0);
begin
if rs = '1' then contador := "0000";
elsif e = '1' then
if dir = '1' then if qq = "1001" then contador := "0000";
else contador := qq + 1; end if;
else if qq = "0000" then contador := "1001";
else contador := qq - 1; end if; end if;
else contador := qq; end if;
return contador; end;
signal cont1, cont2, cont3, cont4, cont5 :std_logic_vector(3 downto 0);
signal max1, max2, ciclo, m_m4 :std_logic;
-- contadores mdulo 10: 1, 2 y 3 generan el ciclo PWM y 4 y 5 la referencia
signal dir, yy :std_logic;
-- 2 biestables: dir controla el contaje up/down de la referencia; yy sincroniza la salida
signal uno :std_logic;
-- seal para establecer un '1'
A6. Ej empl os de di seo 259
begin
Y <= yy;
uno <= '1';
-- salidas para la interconexin de los 5 contadores
max1 <= '1' when cont1 = "1001" else '0';
max2 <= '1' when (cont2 = "1001") and max1 = '1' else '0';
ciclo <= '1' when (cont3 = "1001") and max2 = '1' else '0';
-- "ciclo" seala el final del ciclo PWM ( corresponde a max3)
m_m4 <= '1' when ciclo = '1' and ( ((cont4 = "1001") and (dir = '1'))
or ((cont4 = "0000") and (dir = '0')) ) else '0';
-- "m_m4" es la seal de mximo/mnimo de cont4, necesaria para habilitar cont5
RELOJ: process
begin
wait until CK = '1';
-- insercin de los 5 contadores
-- cont1, cont2 y cont3 que forman el contador de ciclo son ascendentes
cont1 <= mod10(RS, uno, uno, cont1);
cont2 <= mod10(RS, uno, max1, cont2);
cont3 <= mod10(RS, uno, max2, cont3);
-- cont4 y cont5 que generan la referencia son bidireccionales (dir)
cont4 <= mod10(RS, dir, ciclo, cont4);
cont5 <= mod10(RS, dir, m_m4, cont5);
-- biestable que controla el sentido de variacin de la referencia: contaje/descontaje
if (RS = '1') or (cont5 = "1000") then dir <= '0';
elsif (cont5 = "0000") and (cont4 <= "0001") then dir <= '1';
end if;
-- modulacin de anchura de pulso: comparacin entre contador y referencia
if (cont3 < cont5) or ((cont3 = cont5) and (cont2 < cont4)) then yy <= '1';
else yy <= '0';
end if;
end process;
end VARIA;
260 El ect rni ca Di gi t al
7. Multiplicador de dos nmeros de 64 dgitos
Sea un procesador dedicado especficamente a calcular el producto de dos nmeros
binarios P y Q de 64 dgitos, cuyo resultado R ser un nmero binario de hasta 128
dgitos; corresponde al ejemplo de descomposicin en parte operativa y de control
desarrollado en el captulo 24 (apartado 3, pginas 107 a 112).
El algoritmo aplicado consiste en recorrer sucesivamente los bits del multiplicador Q
desde el menos significativo y, cuando el correspondiente bit de Q vale 1, se suma el
multiplicando P sobre el resultado (esta suma se efecta sobre la parte ms significativa
del resultado); luego, se desplaza el resultado hacia la derecha (dividir por 2) para ajustar
el valor relativo de cada suma parcial respecto a la siguiente a efectuar.
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;
entity MULTIPLICADOR is
port ( CK, RS, Init : in std_logic;
P, Q : in std_logic_vector(63 downto 0);
Dis : out std_logic;
R : out std_logic_vector(127 downto 0));
end MULTIPLICADOR;
architecture ALGORITMICA of MULTIPLICADOR is
subtype mis_estados is std_logic_vector(4 downto 1);
-- codificacin de los estados: cdigo de un solo uno
-- conforme a la mquina de estados de la pgina110
constant reposo : mis_estados :="0000";
constant inicio : mis_estados :="0001";
constant intermedio : mis_estados :="0010";
constant sumar : mis_estados :="0100";
constant desplazar : mis_estados :="1000";
signal estado : mis_estados;
signal pp,qq : std_logic_vector(63 downto 0);
-- registros para los operandos P y Q
signal rr : std_logic_vector(127 downto 0);
-- registro para el resultado R
signal cont : std_logic_vector(5 downto 0);
-- contador del nmero de bit del multiplicador
begin
R <= rr;
A6. Ej empl os de di seo 261
-- PARTE DE CONTROL: mquina algortmica
CONTROL: process
begin wait until CK = '1';
if ( RS = '1' ) then estado <= reposo;
else case estado is
when reposo => if (Init = '1') then estado <= inicio; end if;
when inicio => estado <= intermedio;
when intermedio => if (qq(0) = '1') then estado <= sumar;
elsif (cont = "111111") then estado <= reposo;
else estado <= desplazar; end if;
when sumar => if (cont = "111111") then estado <= reposo;
else estado <= desplazar; end if;
when desplazar => estado <= intermedio;
when others =>
end case;
end if;
end process;
-- PARTE OPERATIVA: operaciones correspondientes a los diversos estados
OPERACION: process
begin wait until CK = '1';
Dis <= '0'; -- valor por defecto
if ( RS = '1' ) then pp <= (others => '0'); qq <= (others => '0'); rr <= (others => '0');
cont <= (others => '0');
else if estado = reposo then Dis <= '1'; end if;
if estado = inicio then pp <= P; cont <= (others => '0');
qq <= Q; rr <= (others => '0'); end if;
if estado = sumar then rr(127 downto 63) <= rr(127 downto 63) + pp;
end if;
if estado = desplazar then rr <= '0' & rr(127 downto 1);
qq <= '0' & qq(63 downto 1);
cont <= cont + 1; end if;
end if;
end process;
end ALGORITMICA ;
262 El ect rni ca Di gi t al
8. Raz cuadrada de un nmero de 64 dgitos
El resultado R ser un nmero binario de hasta 32 dgitos; el algoritmo de clculo y
la correspondiente mquina de estados se encuentran detalladas 24.4 (pginas 116 a 119).
El algoritmo aplicado consiste en recorrer sucesivamente los bits del operando, de
dos en dos (comenzando por los ms significativos), y restando, cuando se pueda, el
resultado parcial R con el aadido 01 al final; en cada desplazamiento, se aade un 1 al
resultado si se efecta la resta y un 0 cuando sta no es posible.
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;
entity RAIZ is
port ( CK, RS, Init : in std_logic;
P : in std_logic_vector(63 downto 0);
Dis : out std_logic;
R : out std_logic_vector(31 downto 0));
end RAIZ ;
architecture CUADRADA of RAIZ is
-- declaracin de estados
type mis_estados is ( reposo, inicio, desplazar1,desplazar2,
intermedio, restar, desplazar);
signal estado :mis_estados;
signal pp : std_logic_vector(63 downto 0);
-- registros para el operando P
signal rr : std_logic_vector(31 downto 0);
-- registro para el resultado R
signal ss : std_logic_vector(33 downto 0);
-- registro para el resto actual
signal cont : std_logic_vector(5 downto 0);
-- contador de nmero de parejas de bits del operando
begin
R <= rr;
-- PARTE DE CONTROL: mquina algortmica
CONTROL: process
begin
wait until CK = '1';
if ( RS = '1' ) then estado <= reposo;
A6. Ej empl os de di seo 263
else case estado is
when reposo => if (Init = '1') then estado <= inicio; end if;
when inicio => estado <= desplazar1;
when desplazar1 => estado <= desplazar2;
when desplazar2 => estado <= intermedio;
when intermedio => if ss < (rr & "01") then estado <= desplazar;
else estado <= restar; end if;
when restar => if cont(5) = '1' then estado <= reposo;
else estado <= desplazar1; end if;
when desplazar => if cont(5) = '1' then estado <= reposo;
else estado <= desplazar1; end if;
when others =>
end case;
end if;
end process;
-- PARTE OPERATIVA: operaciones correspondientes a los diversos estados
OPERACION: process
begin
wait until CK = '1';
Dis <= '0';
if ( RS = '1' ) then pp <= (others => '0'); ss <= (others => '0'); rr <= (others => '0');
cont <= (others => '0');
else if estado = reposo then Dis <= '1'; end if;
if estado = inicio then pp <= P; cont <= (others => '0');
ss <= (others => '0'); rr <= (others => '0');
end if;
if estado = desplazar1 then ss <= ss(32 downto 0) & pp(63);
pp <= pp(62 downto 0) & '0';
cont <= cont +1;
end if;
if estado = desplazar2 then ss <= ss(32 downto 0) & pp(63);
pp <= pp(62 downto 0) & '0';
end if;
if estado = restar then ss <= ss (rr & "01");
rr <= rr(30 downto 0) & '1'; end if;
if estado = desplazar then rr <= rr(30 downto 0) & '0'; end if;
end if;
end process;
end CUADRADA;
264 El ect rni ca Di gi t al
9. Cronmetro controlado por dos pulsadores
Se desea controlar un cronmetro mediante dos pulsadores P y Q de forma que el
contaje de tiempo se inicie al activar P y se detenga al pulsar Q y un segundo pulso de Q
sirva para poner a cero el cronmetro; una vez detenido el contaje, si se pulsa P se
reanuda el mismo. Si mientras el cronmetro est activo se activa P, el contaje prosigue
pero el visualizador queda detenido en el ltimo valor previo a dicho pulso; se vuelve a la
visualizacin normal del contaje pulsando nuevamente P.
Este ejemplo corresponde al desarrollado en el captulo 24 (apartado 4, pginas 126
y 127); el control responde al siguiente grafo de estados:
borrado en marcha
parado
detencin
contaje
detener
la visualizacin
visualizacin
fija
P
P
P
P
P
P
Q.P
Q
Q.P
Q.P
La siguiente figura muestra el diagrama de bloques de la parte operativa:
Registro Registro Registro Registro
E E E E
Eregistro
CONTADOR
MOD 6x10
CONTADOR
MOD 6x10
0,1s
1s 1m 1h
CONTADOR
1 DCADA
CONTADOR
1 DCADA
mx mx mx E E E E
CK
T
Clr Clr Clr Clr
Clr
Econtador
onda de
temporizacin
hab
Como reloj se utilizar un oscilador de precisin con cristal de cuarzo de 1 MHz; por
divisin de esa frecuencia (mediante 5 dcadas) se obtendr la onda de temporizacin de
0,1 segundo (100 Hz) que es la unidad de tiempo para el contador de la figura anterior.
Asimismo, se obtendr la seal de temporizacin para el barrido de los visualizadores
(vase la figura de la pgina siguiente) que ser de 100 Hz.
CONTADOR
1 DCADA
CONTADOR
1 DCADA
1 s
0,1s
1ms
CONTADOR
1 DCADA
CONTADOR
1 DCADA
mx mx mx E E E
1 MHz
OSCILADOR
CONTADOR
1 DCADA
E
SCAN T
A6. Ej empl os de di seo 265
A fin de reducir lneas de conexin (6 cifras BCD requieren 24 lneas, que pasan a
ser 42 despus de los conversores a 7 segmentos), la representacin sobre el visualizador
ser de tipo dinmico, segn el esquema de multiplexado que sigue:
BCD
7
seg.
horas
decenas minutos
minutos
decenas segundos
segundos
decimas
decodificador
fuera del circuito integrado
contador
mdulo 6
onda de temporizacin
para el barrido:
frecuencia
~ 100 Hz
E
CK
SCAN
visualizadores de 7 segmentos de nodo comn
Vcc
El circuito integrado, supuesto el conversor a 7 segmentos fuera del mismo, tendr
los siguientes terminales:
- entradas: reloj CK, inicializacin RS y los dos pulsadores P y Q;
- salidas: 4 comunes para las cifras BCD y 6 para el barrido de los 6 visualizadores.
CK: 1 M Hz
RS
P
Q
BCD(3)
BCD(2)
BCD(1)
BCD(0)
E1
E2
E3
E4
E5
E6
266 El ect rni ca Di gi t al
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;
entity CRONOMETRO is
port ( CK, RS : in std_logic;
P, Q : in std_logic;
BCD : out std_logic_vector(3 downto 0);
E : out std_logic_vector(6 downto 1));
end CRONOMETRO;
architecture PULSADORES of CRONOMETRO is
-- contaje mdulo 10
function mod10 (e1 :std_logic; q1:std_logic_vector) return std_logic_vector is
variable contador1 :std_logic_vector(3 downto 0);
begin
if e1 = '1' then if q1 = "1001" then contador1 := "0000";
else contador1 := q1 + 1; end if;
else contador1 := q1; end if;
return contador1; end;
-- contaje mdulo 6
function mod6 (e2 :std_logic; q2:std_logic_vector) return std_logic_vector is
variable contador2 :std_logic_vector(6 downto 4);
begin
if e2 = '1' then if q2 = "101" then contador2 := "000";
else contador2 := q2 + 1; end if;
else contador2 := q2; end if;
return contador2; end;
signal seg, min : std_logic_vector(6 downto 0);
signal dec, hor : std_logic_vector(3 downto 0);
signal max1, max2, max3, max4,max5 : std_logic;
-- contadores del propio cronmetro (medida de tiempo)
signal regseg, regmin : std_logic_vector(6 downto 0);
signal regdec, reghor : std_logic_vector(3 downto 0);
-- registros del propio cronmetro (conectados a los contadores anteriores)
-- declaracin de estados de la parte de control
type mis_estados is ( borrado, en_marcha, contaje, detencion, parado,
detener_vis, vis_detenida);
signal estado :mis_estados;
signal Clr, Econtador, Eregistro, hab :std_logic;
-- seales de salida de la parte de control que actan sobre el propio cronmetro
A6. Ej empl os de di seo 267
signal div1, div2, div3, div4, div5 : std_logic_vector(3 downto 0);
signal maxdiv1, maxdiv2, maxdiv3, scan, decima : std_logic;
-- contadores del divisor de la frecuencia del reloj
signal contscan : std_logic_vector(6 downto 4);
-- contador para el barrido de la representacin dinmica (mdulo 6)
begin
-- CONTADORES Y REGISTROS DEL PROPIO CRONOMETRO
hab <= decima and Econtador; -- habilitacin global del contador de tiempo
-- seal de mximo para conectar los contadores sucesivamente
max1 <= '1' when dec(3 downto 0) = "1001" and hab = '1' else '0';
max2 <= '1' when seg(3 downto 0) = "1001" and max1 = '1' else '0';
max3 <= '1' when seg(6 downto 4) = "101" and max2 = '1' else '0';
max4 <= '1' when min(3 downto 0) = "1001" and max3 = '1' else '0';
max5 <= '1' when min(6 downto 4) = "101" and max4 = '1' else '0';
-- insercin de los contadores
CONTADORES: process(RS, CK)
begin
if (RS = '1') or (Clr = '1') then dec <= (others => '0'); seg <= (others => '0');
min <= (others => '0'); hor <= (others => '0');
elsif CK'event and CK = '1' then
dec(3 downto 0) <= mod10(hab, dec(3 downto 0));
seg(3 downto 0) <= mod10(max1, seg(3 downto 0));
seg(6 downto 4) <= mod6(max2, seg(6 downto 4));
min(3 downto 0) <= mod10(max3, min(3 downto 0));
min(6 downto 4) <= mod6(max4, min(6 downto 4));
hor(3 downto 0) <= mod10(max5, hor(3 downto 0));
end if;
end process;
-- insercin de los registros
REGISTROS: process(RS, CK)
begin
if RS = '1' then regdec <= (others => '0'); regseg <= (others => '0');
regmin <= (others => '0'); reghor <= (others => '0');
elsif CK'event and CK = '1' then
if Eregistro = '1' then regdec <= dec; regseg <= seg;
regmin <= min; reghor <= hor; end if;
end if;
end process;
268 El ect rni ca Di gi t al
-- CONTROL A TRAVS DE LOS DOS PULSADORES
-- PARTE DE CONTROL: mquina de estados
CONTROL: process
begin wait until CK = '1';
if ( RS = '1' ) then estado <= borrado;
else case estado is
when borrado => if (P = '1') then estado <= en_marcha; end if;
when en_marcha => if (P = '0') then estado <= contaje; end if;
when contaje => if (P = '1') then estado <= detener_vis;
elsif (Q = '1') then estado <= detencion; end if;
when detencion => if (Q = '0') then estado <= parado; end if;
when parado => if (P = '1') then estado <= en_marcha;
elsif (Q = '1') then estado <= borrado; end if;
when detener_vis => if (P = '0') then estado <= vis_detenida; end if;
when vis_detenida => if (P = '1') then estado <= en_marcha;
elsif (Q = '1') then estado <= detencion; end if;
when others => estado <= borrado;
end case;
end if;
end process;
-- PARTE OPERATIVA: seales correspondientes a los diversos estados
SEALES: process
begin
Clr <= '0'; Econtador <= '0'; Eregistro <= '0'; -- valor por defecto
case estado is
when borrado => Clr <= '1'; Eregistro <= '1';
when en_marcha => Econtador <= '1'; Eregistro <= '1';
when contaje => Econtador <= '1'; Eregistro <= '1';
when detencion =>
when parado =>
when detener_vis => Econtador <= '1';
when vis_detenida => Econtador <= '1';
when others =>
end case;
end process;
A6. Ej empl os de di seo 269
-- DIVISIN DE FRECUENCIAS DEL RELOJ
-- seal de mximo para conectar los contadores sucesivamente
maxdiv1 <= '1' when div1(3 downto 0) = "1001" else '0';
maxdiv2 <= '1' when div2(3 downto 0) = "1001" and maxdiv1 = '1' else '0';
maxdiv3 <= '1' when div3(3 downto 0) = "1001" and maxdiv2 = '1' else '0';
scan <= '1' when div4(3 downto 0) = "1001" and maxdiv3 = '1' else '0';
decima <= '1' when div5 (3 downto 0) = "101" and scan = '1' else '0';
-- insercin de los divisores por 10
DECADAS: process(RS, CK) begin
if RS = '1' then div1 <= (others => '0'); div2 <= (others => '0');
div3 <= (others => '0'); div4 <= (others => '0');
div5 <= (others => '0');
elsif CK'event and CK = '1' then
div1 <= mod10('1', div1); div2 <= mod10(maxdiv1, div2);
div3 <= mod10(maxdiv2, div3); div4 <= mod10(maxdiv3, div4);
div5 <= mod10(scan, div5);
end if;
end process;
-- BARRIDO DINAMICO DE LOS VISUALIZADORES
-- contador que realiza el barrido
MODULO6: process(RS, CK) begin
if RS = '1' then contscan <= (others => '0');
elsif CK'event and CK = '1' then contscan <= mod6(scan, contscan);
end if;
end process;
-- multiplexado
MULTIPLEXADO: process(contscan) begin
case contscan is
when "000" => BCD <= regdec; E <= "000001";
when "001" => BCD <= regseg(3 downto 0); E <= "000010";
when "010" => BCD <= '0' & regseg(6 downto 4); E <= "000100";
when "011" => BCD <= regmin(3 downto 0); E <= "001000";
when "100" => BCD <= '0' & regmin(6 downto 4); E <= "010000";
when "101" => BCD <= reghor; E <= "100000";
when others => BCD <= "0000"; E <= "000000";
end case;
end process;
end PULSADORES;
270 El ect rni ca Di gi t al
10. Control on/off para una placa trmica vitrocermica
Consideramos una cocina vitrocermica de cuatro fuegos; para controlar la
potencia suministrada a la resistencia calefactora de cada fuego, se utiliza un ciclo de
aproximadamente 30 segundos dividido en 30 pasos de 1" y, para fijar la potencia a
suministrar, se emplea un mando circular de control con 10 posiciones (de 0 a 9 en
cdigo Gray), que corresponden a las siguientes potencias relativas:
0%
20%
40%
60%
80%
100%
0 : .... Potencia nula
1 : .... 3 %
2 : .... 7 %
3 : .... 12 %
4 : .... 20 %
5 : .... 30 %
6 : .... 42 %
7 : .... 60 %
8 : .... 80 %
9 : .... 100 %
t
on
T = 30 segundos
P = (tiempo de on / perodo) x 100
La anterior distribucin de potencias (relativas) corresponde, en el caso de un ciclo
de 30 unicades, a los siguientes intervalos activos (tiempos de on):
0 : .... 0 1 : .... 1 2 : .... 2 3 : .... 4 4 : .... 6
5 : .... 9 6 : .... 13 7 : .... 18 8 : .... 24 9 : .... 30
y el esquema circuital del control on/off es el representado en la figura siguiente:
32 CONTADOR
COMPARADOR
CODIFICADOR
50 ciclos
seal de Red
A A A A : consigna de potencia
0 - 9
t
on
C<B
C
B
3 2 1 0
30
1 segundo
E
onda de temporizacin
A6. Ej empl os de di seo 271
Los niveles de potencia de los cuatro fuegos, fijados en los mandos rotativos (en
codigo Gray) sern ledos dinmicamente, a travs de 4 lneas comunes; tales niveles
sern representados (en decimal, de 0 a 9) en cuatro visualizadores de siete segmentos,
tambin en forma dinmica, a travs de 4 lneas BCD:
E1 E2 E3 E4
mando
GRAY
E1
mando
GRAY
E2
mando
GRAY
E3
mando
GRAY
E4
G
R
A
Y
BCD
a
7 seg.
B
C
D
El barrido para la lectura y representracin dinmica ser gestionado por el
siguiente selector:
50 ciclos/seg
50
E1
E2
E3
E4
decodi-
ficador
1 s
1 u. de t.
PASO
De manera que el circuito integrado completo tendr los siguientes terminales (se
aprovecha como reloj la propia seal de la red elctrica: 50 Hz, 10 ms):
CK: 50 Hz
RS
mando(3)
mando(2)
mando(1)
mando(0)
visualizador(3)
visualizador(2)
visualizador(1)
visualizador(0)
E1
E2
E3
E4
on/off 1
on/off 2
on/off 3
on/off 4
272 El ect rni ca Di gi t al
La descripcin VHDL se hace mediante un mdulo de control, repetido para los
cuatro fuegos, que ejecuta la modulacin de anchura de pulso, y un mdulo comn
que realiza la temporizacin de 1 segundo, la lectura de los mandos y la visualizacin:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity CONTROL is
port ( CK,RS,HAB,PASO : in std_logic;
CONSIGNA : in std_logic_vector( 3 downto 0);
BCD : out std_logic_vector( 3 downto 0);
ONOFF : out std_logic );
end CONTROL ;
architecture ON_OFF of CONTROL is
signal salida :std_logic;
signal cont, tiempo :std_logic_vector( 4 downto 0);
signal reg1, reg2 :std_logic_vector( 3 downto 0);
begin
ONOFF <= salida; BCD <= reg2;
-- validacin de la CONSIGNA: acta cuando HAB = 1
-- se guarda en reg1 el valor recibido
-- y, si el siguiente valor que se recibe es igual, se almacena en reg2
process(RS, CK) begin
if RS = '1' then reg1 <= "0000"; reg2 <= "0000";
elsif CK'event and CK = '1' then
if HAB = '1' then reg1 <= CONSIGNA; end if;
if HAB = '1' and (reg1 = CONSIGNA) then reg2 <= reg1; end if;
end if;
end process;
-- contador base de tiempos: mdulo 30
-- PASO es una onda de temporizacin de 1 segundo de perodo
process(RS, CK) begin
if RS = '1' then cont <= "00000";
elsif CK'event and CK = '1' then
if PASO = '1' then if cont = "11101" then cont <= "00000";
else cont <= cont + 1; end if;
end if;
end if; end process;
A6. Ej empl os de di seo 273
-- conversin CONSIGNA referencia (tiempo de on)
process(reg2)
begin
case reg2 is when "0000" => tiempo <= "00000";
when "0001" => tiempo <= "00001";
when "0010" => tiempo <= "00011";
when "0011" => tiempo <= "00101";
when "0100" => tiempo <= "00111";
when "0101" => tiempo <= "01010";
when "0110" => tiempo <= "01111";
when "0111" => tiempo <= "10100";
when "1000" => tiempo <= "11000";
when "1001" => tiempo <= "11110";
when others => tiempo <= "00000";
end case;
end process;
-- comparador del contador con el tiempo de on
process(RS, CK) begin
if RS = '1' then salida <= '0' ;
elsif CK'event and CK = '1' then
if tiempo > cont then salida <= '1'; else salida <= '0'; end if;
end if;
end process;
end ON_OFF;
El mdulo comn divide por 50 la frecuencia de reloj, generando una onda de
temporizacin (PASO) de 1 segundo, efecta la lectura multiplexada (E1, E2, E3, E4) de
los cuatro mandos y la escritura multiplexada sobre los cuatro visualizadores.
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all;
entity COMUN is
port ( CK,RS : in std_logic;
mando : in std_logic_vector(3 downto 0);
BCD1,BCD2,BCD3,BCD4 : in std_logic_vector(3 downto 0);
visualizador : out std_logic_vector(3 downto 0);
E1,E2,E3,E4 : out std_logic;
PASO : out std_logic;
CONSIGNA : out std_logic_vector(3 downto 0));
end COMUN;
274 El ect rni ca Di gi t al
architecture OPERATIVA of COMUN is
signal ciclo :std_logic;
signal cont :std_logic_vector(5 downto 0);
signal EEEE :std_logic_vector(1 to 4);
begin
PASO <= ciclo; E1 <= EEEE(1); E2 <= EEEE(2); E3 <= EEEE(3); E4 <= EEEE(4);
-- contador mdulo 50 : generacin de la seal de 1 segundo (PASO)
process(RS,CK) begin
if RS = '1' then cont <= "000000"; ciclo <= '0';
elsif CK'event and CK = '1' then
if cont = "10111" then cont <= "000000"; ciclo <= '1';
else cont <= cont + 1; ciclo <= '0'; end if;
end if; end process;
-- ciclo de habilitacin de los 4 mandos/visualizadores
with cont(1 downto 0) select EEEE <= "1000" when "00",
"0100" when "01",
"0010" when "10",
"0001" when "11",
"0000" when others;
-- representacin dinmica en los 4 visualizadores
with cont(1 downto 0) select visualizador <= BCD1 when "00",
BCD2 when "01",
BCD3 when "10",
BCD4 when "11",
"0000" when others;
-- conversin de la orden (gray) en consigna (BCD)
process(mando) begin
case mando is when "0000" => CONSIGNA <= "0000";
when "0001" => CONSIGNA <= "0001";
when "0011" => CONSIGNA <= "0010";
when "0010" => CONSIGNA <= "0011";
when "0110" => CONSIGNA <= "0100";
when "0111" => CONSIGNA <= "0101";
when "0101" => CONSIGNA <= "0110";
when "0100" => CONSIGNA <= "0111";
when "1100" => CONSIGNA <= "1000";
when "1101" => CONSIGNA <= "1001";
when others => CONSIGNA <= "0000";
end case; end process; end OPERATIVA;
A6. Ej empl os de di seo 275
La siguiente figura representa el esquemtico correspondiente al circuito completo:
conexin de cuatro mdulos de control junto con un mdulo comn.
La descripcin VHDL (descripcin estructural de conexin de mdulos previamente
descritos) del esquema anterior es la siguiente:
library ieee; use ieee.std_logic_1164.ALL;
entity VITRO is
port ( CK,RS : in std_logic;
mando : in std_logic_vector (3 downto 0);
visualizador : out std_logic_vector (3 downto 0);
E1,E2,E3,E4 : out std_logic;
ON_OFF1,ON_OFF2,ON_OFF3,ON_OFF4 : out std_logic);
end VITRO;
architecture CONEXIONES of VITRO is
signal CONSIGNA,BCD1,BCD2,BCD3,BCD4 : std_logic_vector (3 downto 0);
signal PASO : std_logic;
signal E1interior,E2interior,E3interior,E4interior : std_logic;
-- declaracin de componentes: 2 componentes, COMUN y CONTROL
component COMUN
port ( CK,RS : in std_logic;
mando : in std_logic_vector (3 downto 0);
BCD1,BCD2,BCD3,BCD4 : in std_logic_vector (3 downto 0);
E1,E2 ,E3,E4,PASO : out std_logic;
visualizador : out std_logic_vector (3 downto 0);
CONSIGNA : out std_logic_vector(3 downto 0));
end component;
276 El ect rni ca Di gi t al
component CONTROL
port ( CK,RS,HAB,PASO : in std_logic;
CONSIGNA : in std_logic_vector (3 downto 0);
ONOFF : out std_logic;
BCD : out std_logic_vector (3 downto 0));
end component;
begin
E1 <= E1interior; E2 <= E2interior; E3 <= E3interior; E4 <= E4interior;
-- conexin de los mdulos: 1 mdulo COMUN y 4 mdulos CONTROL
U1 : COMUN
port map ( CK=>CK, RS => RS, PASO => PASO, CONSIGNA => CONSIGNA,
BCD1 => BCD1, BCD2 => BCD2, BCD3 => BCD3, BCD4 => BCD4,
E1 => E1interior, E2 => E2interior, E3 => E3interior, E4 => E4interior,
mando => mando, visualizador => visualizador );
U2 : CONTROL
port map ( CK => CK, RS => RS, CONSIGNA => CONSIGNA, PASO=>PASO,
HAB => E1interior, BCD => BCD1, ONOFF => ON_OFF1 );
U3 : CONTROL
port map ( CK => CK, RS => RS, CONSIGNA => CONSIGNA, PASO => PASO,
HAB => E2interior, BCD => BCD2, ONOFF => ON_OFF2 );
U4 : CONTROL
port map ( CK => CK, RS => RS, CONSIGNA => CONSIGNA, PASO => PASO,
HAB => E3interior, BCD => BCD3, ONOFF => ON_OFF3 );
U5 : CONTROL
port map ( CK => CK, RS => RS, CONSIGNA => CONSIGNA, PASO => PASO,
HAB => E4interior, BCD => BCD4, ONOFF => ON_OFF4 );
end CONEXIONES;
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
A7 Apndi ce al cap t ul o T9
Ci rcui t os i nt egrados mi xt os
Necesi dad de et apas anal gi cas
Los sistemas digitales, a no ser los meramente informticos, necesitan, en algunas de
sus entradas y salidas, circuitos electrnicos analgicos para relacionarse con el mundo
fsico, que es, bsicamente, analgico. Conversores digital-analgicos o analgico-
digitales, comparadores, filtros, amplificadores,... son etapas auxiliares que, muy
frecuentemente, acompaan a los sistemas digitales.
Cuando se integra un sistema digital en un ASIC, dejar fuera, en la periferia, estas
etapas analgicas puede suponer una limitacin en cuanto a tamao, velocidad, fiabilidad
y coste. Por ello, cada vez es ms frecuente integrar tambin la parte analgica auxiliar
dentro del mismo circuito integrado, dando lugar a un circuito integrado mixto.
Un ASIC mixto es predominantemente digital (generalmente ms del 90 % en cuanto
a funciones o mdulos), con una parte auxiliar que realiza la interfase de la parte digital
con algunas entradas o salidas analgicas. A pesar de ser minoritaria, el diseo de la parte
analgica suele recurrir un esfuerzo mucho mayor que el de toda la parte digital; no es
extrao que, suponiendo las etapas analgicas menos del 10 % del conjunto del circuito,
su diseo requiera un esfuerzo relativo superior al 90 % del total.
Por qu el diseo analgico es ms costoso y se encuentra menos desarrollado que
el diseo digital? La siguiente tabla presenta un resumen de motivos que confieren a
lo analgico un sello de diversidad y dispersin frente a la uniformidad y regularidad de
lo digital.
lo digital
unos y ceros: valores extremos
puertas y biestables con un solo parmetro:
fan-out
tres tiempos funcionales: tp, ts, y th
se aprovecha la no estabilidad, fuera de la
zona lineal: se utilizan los extremos de la
alimentacin
la precisin se deriva de la utilizacin de
dos estados diferenciados: conduccin y
corte
hay un amplio margen para la precisin,
gracias a los intervalos de cero y uno
buena inmunidad al ruido
lo analgico
valores continuos
diversidad de etapas con gran nmero de
parmetros: alimentaciones, ganancia, Ri,
Ro, ancho de banda, offset, CMRR, ...
necesidad de estudiar su respuesta en
frecuencia: polos y ceros
se trabaja en zona lineal y es preciso
asegurar la estabilidad a travs de: situacin
de polos y ceros, margen de fase, redes de
compensacin
la precisin se consigue mediante tcnicas
de compensacin: apareamiento, realimen-
tacin y componentes adicionales
afectan fuertemente los errores de linealidad
y desplazamiento
alta sensibilidad al ruido y deriva trmica
278 El ect rni ca Di gi t al
A pesar de las dificultades derivadas de los aspectos sealados en la tabla anterior, en
muchas ocasiones merece la pena insertar todo el sistema electrnico, incluidas sus etapas
analgicas, en el mismo circuito integrado; en su caso, quedarn fuera las etapas de
potencia, aunque va siendo viable, cada vez ms, incorporar tambin en un ASIC etapas
de media potencia.
La modulacin de anchura de pulsos
Conviene tener en cuenta que las tcnicas de modulacin en anchura de pulso
permiten reducir, en gran medida, la parte analgica de los diseos, cuando no se
requieren velocidades muy altas. El manejo de la informacin codificada en anchura de
pulso, en lugar de en amplitud, se acomoda bien a las tcnicas digitales, de manera que la
modulacin PWM es una alternativa eficaz a procesos tpicamente analgicos.
En el captulo 18 (segundo volumen) se describen cuatro moduladores de anchura de
pulso y sus aplicaciones:
- control de potencia todo/nada, en lugar de control por tensin o intensidad,
- generacin de referencias de tensin y de formas de onda,
- conversin DC DC,
- control de amplitud de seal, conformando potencimetros digitales divisores de
tensin,
- conversin digital analgica,
- y conversin analgica digital.
Los correspondientes circuitos PWM requieren algunos componentes analgicos,
pero su control tiene una importante parte digital, en base a intervalos temporales
(anchura de pulsos) que pueden ser gestionados por contadores, comparadores y otros
bloques digitales. De esta forma, aunque siguen estando presentes, estas tcnicas reducen
mucho los componentes analgicos que se necesitan: mantener estos componentes fuera
del ASIC no suele suponer una grave limitacin a sus prestaciones y, en todo caso,
pueden integrarse dentro con menor esfuerzo.
Componentes en las etapas analgicas
Los sistemas digitales, en tecnologa CMOS, solamente requieren transistores
NMOS y PMOS; ningn otro componente ms. Las etapas analgicas necesitan, adems,
resistencias, condensadores y transistores bipolares (al menos, transistores NPN).
La integracin de resistencias se hace mediante trozos alargados de regiones
semiconductoras:
- en polisilicio las resistencias son de bajo valor (< 1K) y buena precisin (< 10 %),
- la difusin P
++
permite mayores valores (hasta 10 K) con menor precisin (20 %)
- y la difusin N del pozo ofrece resistencias de valores altos, con malos coeficientes de
variacin respecto a la temperatura o a la tensin aplicada (lo cual es admisible en
muchos de los circuitos que necesitan resistencias grandes).
A7. Ci rcui t os i nt egrados mi xt os 279
En los dos primeros casos (polisilicio y difusin P
+
) puede conseguirse una precisin
del 1 % en la utilizacin de pares de resistencias como divisor de tensin, pues se
compensan las desviaciones de ambas resistencias por estar fabricadas con las mismas
caractersticas tecnolgicas, en el mismo proceso de fabricacin y muy cercanas entre s.
Los condensadores integrados suelen ser de valores pequeos (< 1 nF) ya que, si
fueran mayores, ocuparan enormes reas de silicio. Se aprovecha la capacidad de puerta
de los transistores NMOS (capacidad puerta substrato P) para condensadores conectados
a 0 V y de los transistores PMOS (capacidad puerta pozo N) si estn conectados a VCC.
Para condensadores no conectados a alimentacin o de mayor precisin (del orden
del 10 %) se utilizan tecnologas de dos polisilicios, configurando el condensador entre
ambos con el aislante de xido de silicio que los separa. Al igual que en el caso de las
resistencias, los condensadores apareados presentan precisiones del 1 % en relacin a su
conciente C1/C2.
Interesa disponer, tambin, de transistores bipolares NPN ya que sus prestaciones son
mejores que las de los transistores MOS en lo que se refiere a ganancia, intensidad,
velocidad y apareamiento:
- la ganancia en tensin Vo/Vi puede ser del orden de 20 a 200 en los transistores
MOS, en fuerte dependencia con su anchura W, y mayor de 2000 en los bipolares;
- la intensidad depende, en los transistores MOS, de dicha anchura W y, en cambio,
es relativamente independiente de las dimensiones de los bipolares (ya que en ellos,
la conduccin no se debe a un efecto superficial sino volumtrico);
- la frecuencia de transicin fT, a la cual la ganancia desciende a la unidad,
disminuye en los transistores MOS al aumentar su anchura y, en los bipolares, es
independiente del tamao del transistor;
- de forma que requisitos de alta ganancia o alta intensidad imponen, en los
transistores MOS, una anchura W grande, lo cual reduce su velocidad de trabajo;
- en relacin al apareamiento de transistores fabricados a la vez y en zonas
prximas, las etapas con transistores MOS presentan tensiones de offset del orden
de 10 mV frente a menos de 1 mV con bipolares y, adems, los diversos efectos de
desapareamiento quedan multiplicados por un factor relativo del orden de 500 en
el caso MOS y del orden de 20 en el caso bipolar.
280 El ect rni ca Di gi t al
Precisamente en etapas digitales que requieren, a la vez, altas intensidades de salida y
reducidos tiempos de propagacin ha sido conveniente recurrir a los transistores bipolares
dentro de la propia evolucin de las tecnologas MOS: en su momento (apartados 10.1,
panorama general de las familias lgicas integradas, y 20.4, problemas relativos a los
buses) destacamos la tecnologa BiCMOS (CMOS con transistores bipolares) como muy
apropiada para circuitos interbs (necesitados de intensidades altas y mnimos
tiempos).
De igual forma resultan convenientes los transistores bipolares en las mltiples
configuraciones en que se aprovecha el apareamiento de transistores para compensar la
falta de precisin de algunas de sus caractersticas: espejos de corriente, amplificadores y
comparadores con bajo offset, conversores D/A,...
En tecnologa CMOS pueden obtenerse transistores PNP parsitos verticales
conectados a 0 V (difusin P
++
como emisor, pozo N que acta de base y substrato P de
colector) o laterales (dos difusiones P
++
, emisor y colector, en el pozo N como base),
ambos de baja calidad. Utilizando una mscara ms para formar la base pueden obtenerse
transistores NPN (sobre un pozo N que acta de colector, una difusin adicional P como
base y una difusin N
++
sobre ella), pero presentan una resistencia alta en serie con el
colector que limita mucho su funionalidad.
P colector
N base
P
++
E
N
++
B
P
++
C
PNP vertical
P substrato
N pozo
N
++
B
P
++
E
P
++
C
PNP lateral
base
P substrato
N colector
P
++
B
N
++
E
N
++
C
NPN
P base
Tecnologa BiCMOS
Dadas las malas caractersticas de los transistores bipolares que pueden obtenerse en
tecnologa CMOS, se ha desarrollado una tecnologa ampliada, BiCMOS, que requiere
dos zonas semiconductoras adicionales y un proceso de rectificacin del xido de campo.
En esquema resumido, las etapas del proceso CMOS son las siguientes:
pozos N xido de campo xido de puerta y polisilicio difusiones N
++
difusiones P
++
contactos metales pasivacin
En cambio, el proceso BiCMOS pasa por las siguientes etapas (ver la figura al final
de la descripcin de las mismas):
- dopado superficial N
+
sobre toda la oblea, formando una capa que ser utilizada como
conexin de colector de los transistores bipolares (con baja resisencia ya que su
dopado es alto) y se aprovecha, tambin, para mejorar la separacin de los pozos N
respecto al substrato P que forma la oblea;
A7. Ci rcui t os i nt egrados mi xt os 281
- formacin de pozos P
+
en las zonas en que irn los transistores NMOS (en tales zonas
la anterior capa N
+
es reconvertida en P
+
);
- crecimiento de una capa epitaxial N en toda la superficie de la oblea: esta capa actuar
como colector de los transistores NPN y como pozo para los transistores PMOS y
queda transformada en substrato P en la zona que se forma encima de la anterior capa
P
+
(por deriva de portadores gracias al mayor dopado P
+
);
- oxidacin para separar los transistores: este xido de campo debe ser relativamente
grueso (> 1 m), parte del mismo penetra en el material (su profundidad es algo
superior a la de la capa epitaxial pero sin llegar a cruzar del todo la capa inferior N
+
) y
otra parte sobresale respecto a la superficie de la oblea;
- proceso mecnico de rectificacin del xido de campo que sobresale, a fin de dejar
una superficie lisa para los procesos siguientes (ya que se constat que las
irregularidades superficiales debidas al xido de campo producan defectos
apreciables en las capas que se depositan encima del mismo);
- formacin del xido de puerta y depsito del polisilicio;
- [en tecnologas de dos polisilicios, depsito de xido fino de aislamiento entre ellos y
del segundo polisilicio encima del mismo]
- implantacin P
++
que forma los transistores PMOS y la base de los NPN;
- implantacin N
++
, menos profunda, para los transistores NMOS y el emisor de los
NPN;
- contactos, metales y pasivacin.
La figura siguiente representa la configuracin de los tres tipos de transistores
(bipolar NPN, NMOS y PMOS) en tecnologa BiCMOS; en ella se han omitido las
polarizaciones de los substratos (del pozo P
+
que acta como substrato de los NMOS y de
la capa epitaxial N que lo hace para el PMOS).
P
++
D
P
++
S G
N epitaxial pozo
pozo P
+
N
++
S
N
++
D G
SiO
2
SiO
2
capa N
+
N
++
C
N
++
E
P
++
B
base
N epitaxial colector
conexin de colector
SiO
2
SiO
2
SiO
2
P substrato
transistor bipolar NPN
transistor NMOS
transistor PMOS
capa N
+
282 El ect rni ca Di gi t al
Tipos de etapas y mdulos analgicos
En los ASICs mixtos suelen utilizarse los siguientes tipos de configuraciones
analgicas, de las cuales, las inferiores sirven tambin para conformar las de los niveles
superiores:
Componentes individuales:
-- resistencias
-- condensadores
-- transistores NPN
-- transistores NMOS
-- transistores PMOS
-- uniones PN: diodos
-- ...
Etapas de tipo bsico:
-- referencias de tensin
-- espejos de corriente
-- generadores de intensidad
-- amplificadores diferenciales
-- adaptadores de impedancias
-- puertas de transmisin
-- ...
Bloques operativos:
-- amplificadores operacionales
-- comparadores
-- OTAs
-- ...
Mdulos de alto nivel:
-- filtros
-- conversores D/A
-- conversores A/D
-- osciladores controlados por tensin
-- ...
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
A8 Apndi ce a l os cap t ul os T6, T7, T8 y T9
Si mul adores el ct ri cos: S P I C E
Si mul adores el ct ri cos
Un simulador es una herramienta informtica que permite reproducir sobre el
computador el funcionamiento de los circuitos elctricos y electrnicos, de forma que:
- pueda compararse tal funcionamiento con el deseado hasta comprobar que el diseo
funciona correctamente, que cumple las especificaciones que se desean alcanzar;
- se detecte cualquier defecto o anomala en el funcionamiento del circuito, para
corregirlo o, en su caso, verificar que es admisible;
- se conozca cualquier transitorio o cualquier particularidad funcional del circuito para
evaluar sus efectos y valorar la necesidad o no de evitarlo.
Los simuladores elctricos reproducen el comportamiento fsico real de los circuitos,
es decir, su comportamiento elctrico, a travs de los valores de las tensiones e
intensidades en los diversos nudos y ramas del circuito a la largo del tiempo; lo cual
permite conocer la respuesta real del circuito frente a las seales de entrada que interesan
y, en concreto, los transitorios reales, los tiempos de propagacin efectivos, los posibles
espurios (glitches) u oscilaciones, la violacin, en su caso, de los tiempos de anticipacin
o de mantenimiento de las entradas en las partes secuenciales, etc.
Los simuladores elctricos actan a nivel elctrico: leyes de Kirckoff para el anlisis
de nudos y de mallas y ecuaciones I = f(V) para describir el comportamiento de los
componentes circuitales; han de resolver sistemas de un gran nmero de ecuaciones, con
relaciones I-V no lineales, teniendo que efectuar anlisis transitorios con clculos punto a
punto a lo largo del eje de tiempos, para lo cual requieren prolongados tiempos de clculo
(tiempos de CPU) y amplias capacidades de memoria (memoria RAM).
El anlisis en trminos elctricos del comportamiento real de los circuitos:
- resulta imprescindible en la simulacin de cada una de las celdas o mdulos bsicos de
un circuito integrado (o de un diseo con componentes discretos) para poder calcular su
comportamiento temporal (tiempos de propagacin, anticipacin, mantenimiento, etc.,
en el caso digital, respuesta en frecuencia, slew rate, etc., en el caso lineal) y para
estudiar los efectos de carga, fan-out, transitorios, oscilaciones,...;
- es necesario para analizar el comportamiento de temporizadores, osciladores,
multivibradores,... y, en general, cualquier etapa con realimentacin;
- es muy til en la simulacin de pequeos circuitos multietapa;
- es, en la prctica, la nica herramienta efectiva para circuitos analgicos;
- pero presenta dificultades (por razones de tiempo y de capacidad de memoria) cuando
se trata de circuitos grandes con alto nmero de componentes.
SPICE Simulation Program with Integrated Circuit Emphasis es el simulador
elctrico ms difundido y utilizado; fue desarrollado en los aos 70 por la Universidad de
California (Berkeley) y ha sido mejorado constantemente, existiendo mltiples versiones
comerciales, continuamente actualizadas por los suministradores de aplicaciones
informticas.
284 El ect rni ca Di gi t al
Descri pci n ci rcui t al : net l i st SPICE
La descripcin del circuito se efecta mediante su NET LIST, lista circuital formada
por nudos numerados (siempre debe existir un nudo de referencia global del circuito, que
se numera con 0), componentes conectados a los nudos, valores de los componentes y
modelos de los mismos.
La primera lnea de la net list debe contener el nombre de la misma y es ignorada
(aun cuando sea, por equivocacin, una lnea de descripcin de un componente); el final
de la lista circuital se indica mediante la instruccin .END.
Ejemplos de componentes:
id = identificador, generalmente un nmero
resistencia Rid nudo nudo valor
condensador Cid nudo nudo valor
autoinduccin Lid nudo nudo valor
diodo Did nudo (P) nudo (N) modelo
transistor Qid nudo (C) nudo (B) nudo (E) modelo
MOS Mid nudo (D) nudo (G) nudo (S) nudo (subst) modelo
alimentacin Vid nudo (+) nudo (-) valor
seal Vid nudo nudo descripcin de la seal de tensin
intensidad Iid nudo nudo descripcin del generador de intens.
...
Para los valores se puede utilizar notacin exponencial o las siguientes letras:
K = E3 10
3
MEG = E6 10
6
G = E9 10
9
T = E12 10
12
M = E-3 10
-3
U = E-6 10
-6
N = E-9 10
-9
P = E-12 10
-12
F 10
-15
Los valores pueden incluir la correspondiente unidad (VOLTS, AMPS, HERZ) o
abreviaturas de la misma (V, A, H), sin espacio de separacin, pero tal indicacin es
ignorada por el simulador (por lo cual, puede ser errnea o sin sentido).
Los modelos pueden estar definidos en una librera: existen libreras tpicas de
diodos, transistores bipolares, FETs, MOSFETs, amplificadores operacionales, etc., que
incluyen grandes series de tales dispositivos con su nombre comercial; en este caso, es
necesario indicar la librera o libreras en las cuales deben buscarse los modelos mediante
la instruccin:
.LIB nombre de librera.
A8. S P I C E 285
Un modelo puede definirse tambin expresando los valores de los parmetros fsicos
del dispositivo mediante la instruccin:
.MODEL nombre_del_modelo tipo_de_dispositivo parmetros
Ejemplos: .MODEL 1N4148 D IS=100F BV=500
.MODEL tipoN NMOS LEVEL=1 VTO=1 K =40U TOX=5E-8
+ L=0.2E-6 LAMBDA=0.01 L=6U W=2U
El signo + al comienzo de una lnea quiere decir que dicha lnea es continuacin
directa de la anterior, es decir, son datos relativos al componente o modelo a que se
refiere la lnea anterior.
Pueden aadirse lneas de comentarios, comenzando los comentarios con el signo *;
al reconocer dicho smbolo, SPICE ignora lo que sigue hasta final de la lnea.
Generadores de seal
Un generador de tensin continua o una tensin de alimentacin se expresa en la
forma:
Vid nudo nudo valor_de_dicha_tensin
donde en valor_de_dicha_tensin se indicar la magnitud de la tensin en voltios.
Un generador o seal en onda cuadrada se describe en la forma siguiente:
Vid nudo nudo PULSE( V1
V2
tD
tr
tf
tw
T )
Este tipo de seal genera una onda rectangular, cuyos niveles son V1
V2, que se
repite con perodo T; tw es la anchura del pulso (en nivel V2), tD
es el tiempo previo
anterior al comienzo del primer pulso durante el cual la tensin es continua (en nivel V1)
y tr
y tf son los tiempos de subida (paso de V1 a V2) y de bajada (paso de V2 a V1),
respectivamente.
t
T
D
t
r
t
W
t
f
V
1
V
2
286 El ect rni ca Di gi t al
Un pulso o conjunto de pulsos tambin se puede definir por puntos, expresando las
coordenadas (tiempo y tensin) de los puntos de conmutacin:
Vid nudo nudo PWL( T1
V1
T2
V2
T3
V3
T4
V4
... )
siendo Ti
y Vi
el tiempo y la tensin, respectivamente de cada punto i de conmutacin; es
una forma de descripcin lineal a trozos, que corresponde a una seal compuesta
exclusivamente por segmentos rectilneos, de forma que en el intervalo que va de Ti
a
Ti+1 la tensin vara linealmente de Vi
a Vi+1.
Una tensin senoidal se describe en la forma:
Vid nudo nudo SIN( VDC amplitud frecuencia tD )
siendo VDC
la tensin de continua de la senoide y tD
el tiempo previo anterior al
comienzo de la senoide durante el cual la tensin es continua segn el valor VDC.
La seal senoidal admite tambin amortiguamiento exponencial
Vid nudo nudo SIN( VDC amplitud frecuencia tD
)
que corresponde a la siguiente descripcin:
Vid = VDC para t < tD
Vid = VDC + amplitud . e
-t'
. sen (2 . . frecuencia . t')
para t > tD (t' = t - tD ).
Asimismo, la senoide admite desfase:
Vid nudo nudo SIN( VD amplitud frecuencia tD
)
Vid = VDC + amplitud . e
-t'
. sen [ 2 . . frecuencia . t' - ].
Otra posibilidad es una entrada senoidal modulada en frecuencia:
Vid nudo nudo SFFM( VDC amplitud frec_portadora mod frec_seal )
donde mod es el ndice de modulacin con el cual acta la seal sobre la portadora:
Vid = VDC + amplitud . sen [2..frec_portadora.t' + mod.sen(2..frec_seal.t')]
Obviamente pueden definirse, tambin, generadores de intensidad:
Iid nudo nudo parmetros_de_la_intensidad
con iguales tipos y la misma forma de descripcin que los expresados anteriormente para
las tensiones.
A8. S P I C E 287
El circuito puede contener generadores de tensin o de intensidad dependientes:
Eid nudo nudo nudoA nudoB factor_de_ganancia
generador de tensin controlado por una tensin (la existente entre los nudos A y B)
Gid nudo nudo nudoA nudoB factor_de_ganancia
generador de intensidad controlado por tensin (la existente entre los nudos A y B)
Hid nudo nudo Vid factor_de_ganancia
generador de tensin controlado por una corriente: Vid es un generador de tensin auxiliar
(con valor de tensin nula) que se coloca en la rama por la que circula dicha corriente para
detectarla.
Fid nudo nudo Vid factor_de_ganancia
generador de intensidad controlado por una corriente (la que circula por Vid).
Ti pos de anl i si s
Al efectuar la simulacin de un circuito, SPICE puede realizar, entre otros, los
siguientes tipos de anlisis:
RESPUESTA TEMPORAL: Clculo de tensiones e intensidades en el dominio
del tiempo; para ello se utiliza la instruccin:
.TRAN intervalo tiempo_de_simulacin
Con esta instruccin, SPICE realiza la simulacin temporal del circuito durante el
tiempo indicado en el segundo parmetro (tiempo_de_simulacin) y almacena los
resultados cada intervalo (primer parmetro). Ello no quiere decir que los clculos los
efecte con t = intervalo; la variacin del tiempo, a efectos del clculo, es sumamente
fina y el simulador ajusta automticamente el paso de simulacin t a los valores
necesarios para seguir las variaciones de tensin e intensidad con suma precisin.
RESPUESTA FRECUENCIAL: Clculo de tensiones e intensidades en el
dominio de la frecuencia, mediante las instrucciones:
.AC LIN n_de_puntos frec_inicial frec_final
.AC OCT n_de_puntos frec_inicial frec_final
.AC DEC n_de_puntos frec_inicial frec_final
La primera de ellas utiliza el eje de frecuencias en forma lineal y las otras dos lo
usan en forma logartmica: por octavas y por dcadas, respectivamente: n_de_puntos
indica el nmero de puntos, con igual espaciado entre ellos, para los cuales se efecta el
anlisis; en el primer caso (LIN) es el nmero total de puntos entre la frecuencia inicial y
la final, mientras que en los otros dos casos se refiere a nmero de puntos por octava o
por dcada.
288 El ect rni ca Di gi t al
El anlisis frecuencial requiere una seal de entrada de tipo AC
Vid nudo nudo AC amplitud
en donde el tipo AC indica que se utiliza una seal senoidal de frecuencia variable, cuya
amplitud viene fijada por el parmetro siguiente. Este tipo de anlisis permite representar
diagramas de Bode (20*log(Vo/Vi)) y, tambin, la variacin de la fase en relacin con la
seal de entrada (para lo cual se utiliza el indicativo VP(nudo)).
BARRIDO: Respuesta en continua frente a la variacin de una variable:
.DC Va valor_inicial valor_final valor
donde Va, seal que realiza el barrido, debe ser definida mediante asignacin de nudos:
Va nudo(+) nudo(-)
y el barrido se realiza entre el valor_inicial y el valor_final con un paso de variacin
igual a valor.
Por ejemplo, para representar la funcin de transferencia (Vo repecto a Vi):
Vi nudo(+) nudo(-)
.DC Vi valor_inicial valor_final valor
Puede utilizarse, tambin, para obtener las curvas caractersticas de un componemte;
por ejemplo, las de un transistor MOS, ID-VDS para diversos valores de VGS:
VDS nudo nudo
VGS nudo nudo
.DC VDS valor_inicial valor_final valor
+ VGS valor_inicial valor_final valor
Se representarn en la misma grfica varias curvas, una para cada valor de VGS.
Otras posibilidades de anlisis se refieren a:
- anlisis de Fourier .FOUR frecuencia
calcula los coeficientes de Fourier para la frecuencia indicada
y ocho armnicos superiores
- cuadrupolos .TF Vsalida Ventrada
realiza el clculo de los parmetros del circuito
considerado como un cuadrupolo
- anlisis de sensibilidad .SENS variable
calcula el efecto porcentual que tiene sobre la variable indicada
la variacin del valor de cada uno de los componentes del circuito.
- anlisis de ruido .NOISE V(nudo, nudo) fuente_de_ruido
-
A8. S P I C E 289
El simulador SPICE realiza sus anlisis a la temperatura ambiente tpica, 27 C
(300K ) pero puede indicarse que los realice a otra o a varias temperaturas:
.TEMP temp1 temp2 temp3 (en grados centgrados).
Asimismo se puede ordenar que repita un anlisis para varios valores de una variable:
.STEP variable valor_inicial valor_final valor
en este caso, los resultados para los diversos valores de la variable se representarn
conjuntamente, es decir, se representarn varias curvas en la misma grfica, una para cada
valor de la variable.
La instruccin .NODESET V(nudo)=valor permite fijar las tensiones iniciales (en
continua) de los nudos; tales tensiones permanecen fijas en dicho valor en el clculo del
estado inicial, pero evolucionan adecuadamente al calcular la respuesta transitoria a lo
largo del tiempo.
Una instruccin anloga .IC V(nudo)=valor permite ayudar en los clculos del punto
inicial, indicando un valor para uno o varios nudos, a partir del cual se efectan los
clculos del estado inicial; a diferencia de .NODESET, .IC no fija la tensin de los
nudos, tan slo seala el primer valor a utilizar en el correspondiente clculo iterativo de
resolucin de las ecuaciones (lo cual ayuda a resolver muchos casos de falta de
convergencia).
La instruccin .PROBE determina el paso de los resultados de la simulacin a un
escenario grfico interactivo que permite representar en pantalla cualquier combinacin
de las entradas y de las salidas y efectuar todo tipo de ampliaciones y medidas con
cursores. Y las instrucciones .PRINT y .PLOT sirven para imprimir los resultados a
travs de impresora y de plotter, respectivamente.
Forma de act uar
El simulador SPICE, en el caso de un anlisis temporal (que es el ms habitual),
acta de la siguiente forma:
anlisis sintctico errores de texto en la edicin del fichero
anlisis topolgico errores de conexin o en los componentes
anlisis en continua estado inicial estable
anlisis transitorio evolucin del circuito
290 El ect rni ca Di gi t al
El circuito queda organizado en nudos (puntos de conexin de dos o ms
componentes) y ramas (cada una de las conexiones existentes entre dos nudos: en cada
rama hay un componente y slo uno) y las ecuaciones circuitales se construyen segn el
siguiente proceso:
1. Ecuaciones de conservacin de la corriente en los nudos: n ecuaciones
2. Sustitucin en ellas de las corrientes en funcin de las tensiones de rama,
a partir de las ecuaciones I = f(V) de los componentes.
3. Sustitucin de las tensiones de rama por diferencias de tensin de nudo.
4. Se aaden las ecuaciones de rama en aquellos casos en que las intensidades de
rama no han podido ser sustitudas (por ejemplo, para un generador de tensin Va
no puede expresarse la intensidad en funcin de la tensin y su ecuacin de rama
es simplemente V(n) =Va ) a ecuaciones
De esta forma resultan n+a ecuaciones (n nudos + a ramas aadidas) con n+a
incgnitas, que se resuelven por tcnicas de clculo numrico.
Ahora bien, los dispositivos electrnicos son componentes no lineales; la relacin
I = f(V) no es lineal y, por tanto, el sistema de ecuaciones tampoco lo es. Para resolverlo,
se utilizan mtodos numricos de aproximacin lineal mediante iteraciones sucesivas:
Fijado un punto V0 se aproxima la funcin I = f(V) por su primer trmino segn el
desarrollo en serie de Taylor:
V b. a ) V - V .(
dV
dI(V)
) V ( I ) V ( I
0
V
0
0
+ = + =
lo cual permite calcular un nuevo valor V1 y volver a iterar hasta que Vi+1 se diferencia
mnimamente de Vi; lo que en realidad se hace es sustituir la curva I-V por su tangente en
un punto e ir aproximando punto a punto la solucin de las ecuaciones.
X
0
X
1
G(X)
Por ejemplo, sea la funcin G(X) = 0;
para hallar una solucin de la misma, se
toma el punto X0, se sustituye la curva,
propia de la funcin, por su tangente en
dicho punto y se calcula un segundo punto
X1, repitindose con este nuevo valor el
proceso anterior y as sucesivamente
hasta que Xi y Xi+a estn muy prximos.
Este tipo de mtodos de aproximacin lineal de ecuaciones no lineales resulta muy
eficaz, pero presenta problemas de convergencia por desbordamiento (valores muy altos)
o por mnimos locales (en los cuales la iteracin puede centrarse recursivamente sobre l
y no salir del intervalo en torno al mnimo local).
A8. S P I C E 291
En caso de no convergencia pueden intentarse las siguientes soluciones:
1. Respecto a valores altos de las impedancias:
a) evitar que algn nudo quede elctricamente aislado, incluyendo, cuando exista dicha
posibilidad, una pequea capacidad (por ejemplo 1 fF) entre dicho nudo y el nudo de
referencia (nudo 0); tambin puede incluirse, en lugar de la capacidad, una resistencia
de valor muy alto (pero, en circuitos digitales, da mejor resultado la inclusin de
pequeos efectos capacitivos y esto se aproxima ms a la situacin real).
b) limitar el valor mximo de la impedancia que puede presentar una rama, o lo que es lo
mismo, limitar el valor mnimo de la admitancia de cualquier rama, para lo cual se
emplea la instruccin .OPTIONS GMIN=valor (puede darse a la admitancia mnima
el valor 1E-7 que corresponde a una impedancia mxima de 10 M).
2. Respecto a la posibilidad de mnimos locales:
a) mejorar los modelos de los componentes de forma que no presenten mnimos locales,
b) definir valores iniciales para clcular la tensin de los nudos mediante la instruccin
.IC V(nudo)=valor.
Resolviendo el sistema de ecuaciones, por iteraciones sucesivas, se obtiene un
estado inicial estable: la solucin estacionaria (de partida); a partir de ese punto ha de
calcularse la evolucin temporal V(t), I(t), es decir, el anlisis transitorio.
El sistema se transforma en diferencial y dependiente del tiempo:
0
dt
dX
, X , t f
j
=
para J = 1, 2, 3, ..., n+a, y para resolverlo se define un paso o
intervalo de tiempo t, que permite sustituir las derivadas por incrementos:
t
X - X
dt
dX
anterior
= .
De esta forma, las ecuaciones vuelven a ser de primer orden (aunque no lineales) y
se resuelven por los mismos mtodos numricos de aproximacin lineal, a travs de
iteraciones sucesivas.
De nuevo pueden producirse problemas de convergencia y, adems, el tamao del
paso influye en tal posibilidad. Por otra parte, el tamao del paso de simulacin t
introduce los correspondientes errores de aproximacin, al sustituir una derivada puntual
por un incremento que corresponde a un intervalo finito.
Para minimizar tales errores de aproximacin y evitar, en lo posible, los problemas
de convergencia, el simulador SPICE utiliza tamaos de paso variable (disminuyendo el
tamao en los puntos de fuerte variacin de tensiones o intensidades y aumentndolo
cuando su variacin es lenta). Por ejemplo, en la simulacin de un circuito digital, el
tamao del paso se hace sumamente pequeo en el entorno de los flancos de las seales
de entrada y pasa a ser grande en las situaciones estables: estados booleanos 0 y 1.
292 El ect rni ca Di gi t al
Subci rcui t os
El simulador SPICE admite la utilizacin de subcircuitos como mdulos para la
construccin de circuitos ms complejos, sin necesidad de detallar su contenido ms que
una sola vez. La declaracin de subcircuito se realiza con las siguientes instrucciones (de
cabecera y de final de subcircuito):
.SUBCKT nombre_del_subcircuito nudo nudo nudo nudo .....
descripcin ( net list ) del subcircuito
.ENDS
Los nudos declarados en la cabecera sern los necesarios para la conexin externa
del subcircuito en su utilizacin como tal y su numeracin ha de corresponderse con de la
lista circuital que describe el subcircuito. El nudo 0 es siempre un nudo global para
todo el circuito, es decir, no puede utilizarse el 0 para numerar un nudo de un subcircuito
que no vaya a coincidir con el nudo 0 de referencia del circuito global.
Para insertar un mdulo o subcircuito en un circuito mayor se utiliza la instruccin:
Xid nudo nudo nudo nudo ...... nombre_del_subcircuito
El orden de los nudos ha de corresponderse con el indicado en la cabecera de la
declaracin del subcircuito, pero su numeracin (al utilizarlo como tal) ser la propia del
circuito global en el que se incluye.
Un mismo nmero de nudo (por ejemplo, el 2) puede ser utilizado dentro de la
descripcin de uno o de varios subcircuitos y, tambin, en el circuito global; pero, en cada
caso, se refiere a un nudo diferente, es decir, los nudos dentro de los subcircuitos y los de
fuera de ellos no quedan conectados por asignacin del mismo nmero. La nica
excepcin a esto es el nudo 0, que es comn, con tal nmero a todos los subcircuito y al
circuito global, pues es el nudo de referencia para todos ellos.
Un mismo mdulo o subcircuito puede ser utilizado con valores distintos para alguno
o algunos de los valores de sus componentes (por ejemplo, un inversor MOS puede ser
utilizado con diferentes valores de la anchura de sus transistores). Es decir, la declaracin
de un subcircuito admite la parametrizacin (expresar en funcin de un parmetro) de
alguna de sus caractersticas, para lo cual se utiliza la declaracin:
.SUBCKT nombre_del_subcircuito nudo nudo ....
+ PARAMS: parmetro = valor_por_defecto
descripcin ( net list ) del subcircuito y dentro de ella: variable = {parmetro}
.ENDS
parmetro representa el nombre del parmetro que se va a utilizar.
A8. S P I C E 293
Al utilizar el subcircuito se indica el valor a dar al parmetro:
Xid nudo nudo nudo ...... nombre_del_subcircuito
+ PARAMS: parmetro = valor_actual
Si al incluir un subcircuito se asigna un valor al parmetro utilizado (como sucede en
la instruccin anterior) el subcircuito se construye dando tal valor a la variable
parametrizada; en caso contrario (si no se asigna valor al parmetro), se construye con el
valor por defecto expresado en la declaracin del subcircuito.
Ejemplo: Cuatro inversores seguidos en escalera (con la anchura de sus
transistores progresivamente creciente).
Circuito de cuatro inversores en escalera
*Subcircuito inversor 1 entrada y 1 salida
.SUBCKT inver 1 2 PARAMS: a = 1.5U
M1 2 1 3 3 mipmos L=1U W ={a}
M2 2 1 0 0 minmos L=1U W ={a}
VCC 3 0 5
.model mipmos PMOS level=1 KP = 15U VTO = -1 TOX = 50E-9
.model minmos NMOS level=1 KP = 40U VTO = 1 TOX = 50E-9
.ENDS
* Conexin de los 4 inversores
X1 1 2 inver
X2 2 3 inver PARAMS: a = 15U
X3 3 4 inver PARAMS: a = 150U
X4 4 5 inver PARAMS: a = 1500U
* Carga capacitiva de la salida
C4 5 0 50P
* Tensin de entrada: onda cuadrada de 40 ns de perodo
Vi 1 0 PULSE( 0 5 10N 0 0 20N 40N )
* Anlisis temporal
.TRAN 0.01N 50N
.PROBE
.END
En la pgina siguiente se muestra el resultado de la simulacin de este circuito de 4
inversores en escalera (el primero de W = 1,5 m y creciendo W diez veces en cada uno
de los siguientes) y, a efectos comparativos, se muestra el resultado de la simulacin con
los cuatro inversores iguales (todos ellos de W = 1,5 m).
294 El ect rni ca Di gi t al
Time
0s 5ns 10ns 15ns 20ns 25ns 30ns 35ns 40ns 45ns 50ns
V(1) V(5)
0V
2.0V
4.0V
5.1V
Respuesta del circuito de 4 inversores en escalera a un pulso de tensin
(el eje X, eje de tiempos, se presenta con 5 ns/divisin)
Respuesta a un pulso de tensin de un circuito de 4 inversores iguales, de tamao mnimo
(tngase en cuenta que, en esta segunda grfica, el eje de tiempos est en 500 ns/divisin,
es decir, sus divisiones son 100 veces mayores, en tiempo, que en la grfica anterior).
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
T6 MODELO FUNCIONAL DEL TRANSISTOR MOS
T6.1. Funcionamiento del transistor NMOS
T6.2. Etapa en fuente comn
T6.3. El transistor MOS real: efectos de segundo orden
T6.4. Modelos SPICE
El estudio de la microelectrnica digital, adems de abarcar el proceso de diseo del
circuito electrnico y las posibilidades de programacin o fabricacin del mismo, debe
atender, tambin, a la tecnologa, al soporte material sobre el cual se va a configurar el
circuito diseado.
Se trata de insertar el circuito digital resultante de un diseo especfico en el interior de
un circuito integrado, bien por configuracin de un circuito integrado programable, bien por
fabricacin del circuito integrado segn el diseo propio.
Es necesario conocer el soporte material que permite tal programacin o fabricacin,
estudiar con un poco de detalle la tecnologa que permite materializar nuestro diseo
particular. Disponer de un modelo bsico conceptual y operativo de dicha tecnologa
permitir conocer sus posibilidades, sus prestaciones, sus limitaciones y sus exigencias (los
requisitos que la tecnologa impone sobre el diseo).
Tal es el objeto de estudio de los captulos T6, T7, T8 y T9. En ste, primero de ellos,
se presenta un modelo funcional del comportamiento de los transistores MOS, empleando
los diagramas de Memelink como herramienta grfica muy til para representar la
distribucin de carga en el canal de los transistores y para efectuar clculos relativos a
tensiones e intensidades (y, tambin, a tiempos de propagacin y consumos).
El comportamiento de los transistores MOS ya fue descrito, con cierto detalle, en el
captulo T1 (volumen 1). En los apartados que siguen se repetir, amplindola, tal
descripcin; se ha procurado resumir en lo posible lo ya dicho en T1.3., de manera que la
consulta a dicho apartado puede ser til para razonar y comprender aquellas cuestiones
que, por resumidas, no hayan quedado claras al estudiar el presente captulo. Asimismo,
se recomienda la lectura de todo el captulo T1 como introduccin previa.
Junto con el modelo funcional (grfico) del comportamiento MOS, se detallan
aquellos aspectos de segundo orden que separan a los transistores reales de dicho modelo y
que permiten comprender mejor y simular ms fielmente su funcionamiento.
Respecto a este captulo y a los siguientes, debe apreciarse que el estudio de la
tecnologa con la cual pueden fabricarse nuestros diseos (y con la cual se fabrican,
tambin, los dispositivos en los que pueden programarse) no es una mera opcin cultural
no es una simple oportunidad de conocer cmo son por dentro los circuitos integrados
reales. Sino que, de dicho estudio, se derivan muchas cuestiones prcticas, muchas
limitaciones, condiciones o requisitos que han de tenerse en cuenta para hacer efectiva la
integracin de un sistema digital.
170 El ect rni ca Di gi t al
T6. 1. Funci onami ent o del t ransi st or NMOS
La idea bsica del transistor MOS fue anterior a la del bipolar (1947); la estructura
MOS presenta una gran sencillez conceptual, por su analoga directa con un interruptor:
N N
Polisilicio
xido
Semiconductor
Substrato P
SiO aislante
2
G
Puerta
canal
Una tensin positiva suficientemente alta sobre el terminal de puerta VG da lugar,
por atraccin sobre los portadores minoritarios del substrato, a un canal continuo entre las
dos zonas de difusin N, que permite el flujo de corriente entre ellas:
VG
< VTO no existe canal => el transistor no conduce
VG
> VTO se forma canal => el transistor conduce
Siendo VTO la tensin umbral de conduccin.
La fabricacin efectiva de transistores MOS se retras hasta los aos 60 por
problemas tcnicos: el transistor es un efecto superficial, no volumtrico (caso de los
transistores bipolares) y se requieren tcnicas de extraordinaria limpieza en la superficie.
En el proceso de integracin se forma primero la banda de xido de puerta y
polisilicio (cuya anchura determina la longitud del transistor) y, luego, en sentido
perpendicular, la banda de difusin que forma la fuente y el substrato; de esta forma, la
puerta y las dos zonas de difusin N quedan autoalineadas (la difusin se realiza sobre
todo el transistor pero no penetra debajo del polisilicio).
El transistor se forma fsicamente por el cruce de dos regiones: polisilicio y difusin.
Debajo del polisilicio la difusin se encuentra interrumpida, pero puede inducirse, por
medio de la tensin de puerta, su continuidad dando lugar a la formacin de un canal.
Abstrayendo las dimensiones superficiales, el transistor puede representarse en un
diagrama lineal como un cruce entre dos lneas: difusin - polisilicio.
DIFUSIN
verde
POLISILICIO
rojo
DIFUSIN
verde
POLISILICIO
rojo
[Al dibujar las correspondientes mscaras, suele utilizarse color rojo para la de
polisilicio y color verde para la difusin.]
T6. Model o f unci onal del t ransi st or MOS 171
a) Capa vaca
El substrato de los transistores NMOS es de tipo P, dopado con tomos de Boro con
slo 3 electrones de valencia, que dejan un hueco en la estructura cristalina. Cuando se
aplica una tensin positiva a la puerta, VG > 0, se forma una capa de vaciamiento,
desprovista de portadores, debida a la repulsin de la tensin de puerta sobre los huecos
del substrato; los tomos de boro quedan cargados negativamente.
V
G
+ + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
Substrato P
La densidad superficial de carga (carga por unidad de superficie) Q ser:
QV = q . NA . eV q = carga del electrn,
NA = dopado del substrato = n de huecos por cm
3
,
eV = profundidad de la capa de vaciamiento.
Distribucin de carga Distribucin de tensin
Q = carga en el polisilicio
Q<0 Q>0
Q
carga en la
capa de vaciamiento
V
- q.N
A
V(z)
Z
V = tensin en la superficie
e
V
Z
Integrando la ecuacin de Poisson para la tensin, resulta:
d
2
V
dz
2
=
(z)
=
q.N
A
2.
Si
.e
V
2
siendo V la tensin en la superficie del semiconductor; sustituyendo eV en QV se obtiene
la relacin entre la carga de la capa de vaciamiento y la tensin en la superficie:
= = V K V N q 2 Q
1 A Si V
. . . , donde
A Si 1
N q 2 K . . . = .
172 El ect rni ca Di gi t al
b) Capa de inversin: canal conductor
Cuando la tensin de puerta es suficientemente positiva, se forma una capa
superficial de electrones libres, arrastrados por el gradiente de tensin de la capa de
vaciamiento: capa de inversin o canal; tales electrones libres proceden de los pares
electrn-hueco del propio silicio semiconductor y su nmero es reducido.
Substrato P
V
G
- - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
INVERSIN
VACA
- - - - - - - - -
- - - - - - - - -
Para formar una capa de inversin o canal conductor se necesita una tensin en la
superficie del semiconductor B capaz de mantener una concentracin de electrones
equivalente al dopado (concentracin de huecos) del substrato, es decir, el substrato P se
vuelve N en la zona superficial; el valor de la tensin superficial necesaria para un
dopado inverso equivalente al del substrato NA, condicin de fuerte inversin, es:
B
= 2
KT
q
ln
N
A
N
i
siendo K la constante de Boltzman, T la temperatura absoluta
y Ni la concentracin de pares electrn-hueco del silicio a esa
temperatura.
Distribucin de carga Distribucin de tensin
Q = carga en el polisilicio
= carga total
Q<0 Q>0
Q
V
V(z)
Z
V = tensin en la superficie
e
V
Z
Q
I
La carga almacenada en el condensador puerta-substrato tiene dos componentes:
carga correspondiente a la capa vaca + carga debida al canal o capa de inversin,
Q = QV + QI; la carga total Q ser proporcional a la diferencia de potencial existente entre
puerta y substrato y el factor de proporcionalidad corresponder a la capacidad de dicho
condensador cox. En las siguientes expresiones las diversas cargas estn expresadas por
unidad de superficie y lo mismo sucede con la capacidad de puerta cox.
( )
superficie de unidad por capacidad c
superficie de unidad por carga Q
V K Q
V c Q
Q Q Q
ox
1 V
B G ox
V I
=
=
=
=
+ =
T6. Model o f unci onal del t ransi st or MOS 173
Q
I
= Q Q
V
= c
ox
V
G
B
( ) K
1
B
= c
ox
V
G
B
+
B
( ) | |
Q
I
= Cox (VG - VTO) donde
B B TO
V + =
y
ox
A
c
N . q . .
c
K
Si
ox
1
2
= =
VTO es la tensin umbral de conduccin del MOS (tensin de puerta necesaria para
que se forme la capa de inversin, en condiciones de fuerte inversin) y es el parmetro
de efecto substrato (expresa el efecto de la capa de vaciamiento sobre V).
Comentario: sobre VTO inciden otros efectos de segundo orden (ver apartado 3); en la
prctica, dicho valor lo fija el fabricante, mediante un proceso de implantacin inica en
la superficie del substrato.
Valores de los diversos parmetros (tecnologa ):
Para tener una idea ms concreta y una referencia cuantitativa de los resultados, en
este captulo y en los siguientes se incluyen valores de los diversos parmetros y se
efectan los clculos correspondientes, en relacin a una tecnologa hipottica pero
realista a la que denominaremos tecnologa .
La tecnologa es de 1 micra; sus transistores tendrn las siguientes dimensiones:
1 m de longitud mnima y 1,5 m de anchura mnima y el espesor del xido de puerta tox
ser de 0,05 m.
La dimensin mnima de una tecnologa de integracin CMOS viene dada por la
anchura mnima del polisilicio, que corresponde a la longitud del transistor: L
mn
.
En general, la anchura de la difusin (que coincide con la del transistor W) no puede ser
tan reducida como la del polisilicio; lo habitual en la mayora de las tecnologas es que
W
mn
= 1,5 . L
mn
y, por ello, los transistores de tamao mnimo no sern cuadrados sino
quesu factor de forma ser ff = W / L = 1,5.
A temperatura ambiente (27C = 300K):
N (densidad tomos de Si) ~ 10
22
tomos Si/cm
3
= 10
10
ats/m
3
Ni (pares e-h Si puro) ~ 10
10
pares e-h/cm
3
1 par e-h intrnseco por cada billn de tomos de Si
NA (dopado substrato) ~ 10
15
ats B/cm
3
= 10
3
ats/m
3
1 tomo de Boro por cada 10 millones de tomos de Si
1 hueco extrnseco por cada 10 millones de tomos de Si
100.000 veces ms portadores extrnsecos que intrnsecos
174 El ect rni ca Di gi t al
La capacidad de puerta, por unidad de superficie, ser:
m 0,05 xido) (espesor t
pF/m m; fF/ 0,035 3,97.
t
c
ox
0 0 SiO
ox
SiO
ox
2 2
2
ox
m fF/ 0,7 c
= =
=
85 , 8
Un condensador MOS de 1 mm
2
presentar una capacidad ~ 1 nF; dicho efecto
capacitivo se refiere al cociente QI / (VG
- VTO): es una capacidad de tipo incremental
C = Q/VG.
Un transistor MOS de tamao mnimo (1 m x 1,5 m) tendr una capacidad ~ 1 fF
en su zona de puerta.
Respecto a la capa de inversin o canal conductor:
V 1 V
V 0,25 =
V 0,6
TO
B
2
1
+ =
=
=
B B TO
20
0 Si
ox
A Si
i
A
B
V
C 10 16 = electrn) (carga q
m fF/ 0,1 11,7.
c
.q.N 2.
=
C) 25 (a V 0,026
q
KT
;
N
N
ln
q
KT
2
.
Tambin puede calcularse la profundidad de la capa de vaciamiento:
. m 1 .
N . q
. 2
e e .
. 2
N . q
B
A
Si
V
2
V
Si
A
B
= =
c) Tensin de referencia (en el canal) 0
Si sobre el substrato en su zona superficial se induce, por algn medio, una tensin
V', dicha tensin acta como referencia o nivel 0 de tensiones, de forma que la tensin
efectiva sobre el condensador MOS ser VG - V':
QI = cox . ( VG - V' - VTO
).
Esto ocurre al polarizar la fuente y el drenaje para que circule una corriente: las
tensiones VD y VS establecen una distribucin de tensiones en la zona superficial del
substrato, de VS (en el extremo de la fuente) hasta VD (en el del drenaje). Orientando el
eje X en la direccin del canal, la concentracin de portadores de carga en el canal ser:
QI = cox . (VG - VTO - V(x)) donde V(x) vara entre VS y VD.
T6. Model o f unci onal del t ransi st or MOS 175
d) Intensidad de corriente a travs del canal
La diferencia de tensin VDS da lugar a una intensidad de corriente que corresponde
a la carga que atraviesa una superficie perpendicular al eje X por unidad de tiempo.
N N
Substrato P
V
canal
G
V
D
V
S
fuente
drenaje
capa vaca
x
longitud del transistor: L
anchura: W
eje X
La distribucin de portadores libres en la capa de inversin variar a lo largo del
canal: ser mayor al lado de la fuente que en el del drenaje (VDS > 0, VG-VS > VG-VD).
En un elemento diferencial x la cantidad de carga que corresponde a los portadores
libres, a todo lo ancho W del transistor ser:
QI = [densidad de carga] x volumen = QI . W. x = cox . (VG - VTO - V(x)) . W. x.
v .
x
Q
t
x
x
Q
dt
dQ
I I I
= = . I
x
Q
I
= =
=
v
Integrando la anterior ecuacin diferencial a lo largo del canal resulta
( )
( ) ( ) A . . . .
. .
= + =
=
D
S
D
S
V
V
TO G ox
V
V
TO G ox
L
0
dV V(x) V V
L
W
c I
dV V(x) V V W. c Idx
donde ( ) ( )
+ =
D
S
V
V
TO G
dV V(x) V V A expresa el efecto de las tensiones aplicadas sobre
el transistor y = .cox.W/L incluye parmetros tecnolgicos y geomtricos:
Kp = coeficiente de transconductancia = .cox
(parmetros tecnolgicos)
ff = factor de forma = W / L, cociente entre anchura W y longitud L del transistor.
Ambos influyen en proporcionalidad directa sobre la intensidad que conduce el transistor.
Para los transistores NMOS de la tecnologa :
e ~ 600 cm
2
/V.s, cox ~ 0,7 fF/
2
= 0,07 F/cm
2
, p ~ 600 . 0,7 40 A/V
2
.
176 El ect rni ca Di gi t al
Di agramas de Memel i nk
La integral A puede resolverse en forma grfica mediante los denominados
diagramas de Memelink que representan, en el eje horizontal X, las tensiones aplicadas a
fuente y drenaje (y por tanto la distribucin de tensiones a lo largo del canal) y, en el eje
vertical Y, la tensin aplicada a la puerta y la tensin umbral efectiva VTO+V (de modo
que su diferencia VG - (VTO+V) expresa la tensin efectiva generadora del canal):
V
G
V
TO
V
S V
D
eje X : tensiones que afectan
"horizontalmente" al transistor
: tensiones a lo largo del canal
eje Y : tensiones que afectan
"verticalmente" al transistor
: tensiones de puerta
V + V
TO
45
( ) ( )
( ) ( )
( )
( ) ( )
DS
DS
TO GS DS
DS TO GS TO GS
S D
D TO G S TO G
V
V
TO G
.V
2
V
V V .V
2
V V V V V
=
V V .
2
V V V V V V
=
trapecio del rea dV V(x) V V
D
S
|
.
|
\
|
= |
.
|
\
| +
|
.
|
\
| +
= + =
A
En un diagrama de Memelink el rea limitada por las cuatro rectas x = VS, x = VD, y
= VG
e y = VTO + V representa la distribucin de carga a lo largo del canal; es, por tanto,
una imagen del propio canal. Tngase en cuenta que el eje de abscisas no es espacial, sino
un eje de tensiones; por ello, el diagrama representa la distribucin de carga en el canal,
en funcin de la distribucin de tensiones a lo largo el mismo.
Integrando dicho rea y multiplicndola por = .cox.W/L (que expresa los efectos
tecnolgicos y geomtricos) se obtiene la ecuacin de la corriente en un transistor MOS
(canal no saturado):
DS
DS
TO GS p
V
2
V
V V
L
W
K = I . . . |
.
|
\
|
T6. Model o f unci onal del t ransi st or MOS 177
e) Diferencia de tensin drenaje-fuente pequea
Para VDS muy pequeo: VDS << VGS,
S D
V V , la expresin ( ) V(x) V V
TO G
es prcticamente constante,
TO GS
V V ; la tensin aplicada es la misma a lo largo de todo
el canal, que resulta plano, con una distribucin de carga uniforme:
( )
DS
V . . .
TO GS p D
V V
L
W
K = I
expresin que muestra una proporcionalidad directa entre la intensidad que pasa por el
transistor y la tensin aplicada sobre el mismo. El transistor se comporta como una
simple resistencia cuyo valor disminuye al aumentar la tensin de puerta VGS:
( )
TO GS p
eq
V V
L
W
K
1
R
= =
DS
D
V
I
Esta regin de funcionamiento del transistor se denomina zona lineal o zona hmica
y es la situacin booleana que corresponde a un transistor MOS en conduccin: equivale
a una resistencia cuyo valor puede hacerse adecuadamente pequeo, a travs del factor de
forma W/L (la resistencia es inversamente proporcional a su anchura W).
f) Canal saturado
Al aumentar VDS el canal se hace ms estrecho (presenta menor nmero de
portadores) en el lado del drenaje (VGD < VGS) y llega un momento en que se satura, es
decir, la diferencia de tensiones VG
V(x) no supera la tensin umbral VG
- V(x) < VTO:
en tal zona no hay capa de inversin que contribuya a la conduccin: si VGx VTO se
cierra el canal.
V
G
V
TO
V
S VD
V + V
TO
45
( ) ( ) ( )
2
TO GS S TO G
V V
2
1
V V V
2
1
issceles rectngulo triangulo del rea
= + =
=
2
A
La situacin de canal saturado se da si VG < VTO + VD , VD > VG
- VTO, en cuyo
caso la integral A se extiende solamente a la zona en que VG
VTO
V(x) es positiva y
viene dada por el rea del tringulo formado por las rectas x = VS
, y = VG e y = VTO+V:
( )
2
TO GS
p
sat D,
V V
L
W
2
K
I =
expresin que representa la intensidad mxima que el transistor puede conducir para una
tensin de puerta VGS determinada; esta intensidad no depende de la tensin de drenaje y
aumenta fuertemente con la tensin de puerta.
178 El ect rni ca Di gi t al
Transi st ores PMOS
En el transistor MOS de canal P son los huecos (en lugar de los electrones) los
portadores que forman el canal; por ello, requiere tensiones de alimentacin VDD y de
puerta VG negativas respecto al substrato y a la fuente, siendo tambin negativa su tensin
umbral VTO. Por ello, su diagrama de Memelink se sita en el tercer cuadrante:
V + V
TO
45
V
TO
V
S
V
D
V
G
Adems, la movilidad de los huecos es unas tres veces inferior a la de los electrones:
- Los huecos no se mueven por s mismos sino como resultado de que un electrn
ligado, que se encontraba en un enlace, pasa a cubrir el hueco y deja un nuevo
hueco en su enlace anterior; de manera que el hueco se mueve en sentido contrario
a como lo hacen los electrones ligados que lo rellenan.
- Siempre es ms costoso movilizar un electrn ligado (que forma parte de un enlace)
que un electrn libre (que se encuentra ya suelto en la banda de conduccin).
- A igualdad de dimensiones (a igualdad de factor de forma W/L) la intensidad
conducida por un transistor PMOS ser muy inferior a la de un transistor NMOS.
Para los transistores PMOS de la tecnologa :
h ~ 200 cm
2
/V.s, cox ~ 0,7 fF/
2
= 0,07 F/cm
2
, p ~ 200 . 0,7 15 A/V
2
.
T6. 2. Et apa en fuent e comn
R
D
V
DD
S
V = 0
V
G
D
I
V
o
= V
D
( )
2
TO G p
2
) V V (
L
W
K
1
0
TO G
p
sat D,
eq
S
V V
L
W
K
I saturado canal
= R lineal zona
V
=
=
Para canal no saturado:
D
2 L
V
V
V V
W
K = I
D
TO G p D
|
.
|
\
|
T6. Model o f unci onal del t ransi st or MOS 179
Representando la intensidad que circula por el transistor (drenaje-fuente) ID en
funcin de la tensin entre sus terminales VD, se obtiene la curva caracterstica de la
conduccin del transistor:
V
D
m = 1/Req
I (canal saturado)
D
I cuando V o cuando ff
D G
R cuando V o cuando ff eq
G
I
D
Para pequeos valores de VD ,
TO G D
V V V << , zona lineal, el transistor se
comporta como una resistencia cuyo valor disminuye al aumentar la tensin de puerta y,
tambin, si aumenta el factor de forma (ff = W/L):
) V V (
L
W
K
1
TO G p
= R
eq
.
Para canal saturado ( )
2
,
TO G
p
D
V V
L
W
2
K
I = >
TO G D
V V V
la intensidad que atraviesa el transistor no depende de la tensin de drenaje y aumenta
fuertemente con la tensin de puerta y linealmente con el factor de forma.
Actuando sobre las dimensiones geomtricas del transistor (ff = W/L), se modifica su
resistencia en zona lineal y, en sentido contrario, la intensidad con canal saturado.
W L ( en ambos casos ff ) Req ; I
D
(canal saturado) ;
la magnitud de ambas variaciones es proporcional a la modificacin del factor de forma.
Valores de los diversos parmetros (tecnologa ):
Para un transistor cuadrado (W=L; ff=1) con tensin umbral de 1 V y tensin de
puerta de 5 V los valores de la resistencia equivalente en zona lineal y de la intensidad de
canal saturado sern:
NMOS PMOS
p 40 A/V
2
p 15 A/V
2
Req = 1 / (40.10
-6
.(5-1)) 6 k Req = 1 / (15.10
-6
.(5-1)) 17 k
I
D
= (40/2)(5-1)
2
0,3 mA I
D
= (15/2)(5-1)
2
0,1 mA .
Para un transistor de tamao mnimo (ff=1,5):
Req = 1 / (40.10
-6
.1,5.(5-1)) 4 k Req = 1 / (15.10
-6
.1,5.(5-1)) 11 k
I
D
= (40/2).1,5.(5-1)
2
0,5 mA I
D
= (15/2).1,5.(5-1)
2
0,2 mA .
180 El ect rni ca Di gi t al
Las grficas siguientes muestran las curvas caractersticas de los transistores MOS de
tamao mnimo (ff = 1,5) de la tecnologa para diversos valores de la tensin de puerta;
han sido obtenidas mediante simulacin SPICE para L = 1 m, W = 1,5 m,
VTO,NMOS = 1 V, VTO,PMOS = 1 V, p,NMOS = 40 A/V
2
y p,NMOS = 15 A/V
2
.
VDS
0V 0.5V 1.0V 1.5V 2.0V 2.5V 3.0V 3.5V 4.0V 4.5V 5.0V
ID(m)
0A
100uA
200uA
300uA
400uA
500uA
VG = 2 V
VG = 3 V
VG = 4 V
VG = 5 V
Curvas caractersticas ID VDS del transistor NMOS para varios valores de VGS
VDS
-5.0V -4.5V -4.0V -3.5V -3.0V -2.5V -2.0V -1.5V -1.0V -0.5V 0V
ID(m)
-200uA
-150uA
-100uA
-50uA
0A
VG = -2 V
VG = -3 V
VG = -4 V
VG = -5 V
Curvas caractersticas ID VDS del transistor PMOS para varios valores de VGS
Comport ami ent o bool eano
Las situaciones booleanas de un transistor MOS corresponden a:
- transistor en corte VGS < VTO I = 0
- transistor en zona lineal VGS > VTO VDS = 0
( )
TO G p
eq
V V
L
W
K
1
R
= .
T6. Model o f unci onal del t ransi st or MOS 181
En la conmutacin, en la puesta en conduccin del transistor, ste recorre la curva
caracterstica correspondiente a VGS = V(1) desde la situacin de canal saturado hasta
alcanzar la zona lineal con VDS = 0 V.
corte
V
D
I
D
conmutacin
V
CC
conduccin
zona lineal
I
D,sat
corte
V
D
I
D
conmutacin
V
CC
conduccin
zona lineal
C
L
V
CC
D
I
D
R
La ID,sat seala la mxima intensidad
disponible por el transistor, con ella se inicia el
proceso de conmutacin, para descargar las
capacidades equivalentes conectadas a su salida
(debidas a otras puertas o dispositivos a los que el
transistor comunica el valor booleano 0).
En condiciones funcionales la salida de una etapa se encontrar conectada a una o
ms etapas siguientes (o a otro tipo de carga), de forma que deber cargar y descargar la
capacidad equivalente que suponen las puertas de dichas etapas: CL.
VG
V
DD
V
TO
Vo
Al pasar la tensin de puerta VG de 0 V
a un valor V(1) el transistor conduce y
descarga la capacidad CL que pasa de Vo= VCC (situacin anterior, para VG = 0 V) a
Vo= 0 V: la intensidad, al principio, corresponde a la de canal saturado (rea triangular en
el diagrama de Memelink) y se reduce a medida que Vo disminuye (rea trapezoidal), de
forma que la intensidad decrece fuertemente al realizarse la descarga.
En la etapa representada en la figura, al pasar VG de V(1) a 0 V la capacidad CL
se carga a travs de la resistencia RD: proceso exponencial con constante de tiempo
RD.CL; resulta una situacin sin inters respecto a las puertas lgicas CMOS, ya que tales
puertas no se construyen con resistencias de carga.
182 El ect rni ca Di gi t al
T6. 3. El t ransi st or MOS real : efect os de segundo orden
Las principales diferencias de un transistor MOS real con el modelo desarrollado en
los apartados anteriores son las siguientes:
1 La placa superior del condensador puerta-canal no es metlica, sino
semiconductora, construida con silicio policristalino fuertemente dopado N
+
; ello motiva
que la distribucin de carga en dicha placa no sea puramente superficial sino volumtrica:
se distribuye en la zona superficial del polisilicio abarcando una cierta profundidad no
nula. Tal distribucin volumtrica de carga introduce un pequeo efecto resistivo, dando
lugar a la correspondiente cada de tensin.
El alto dopado del polisilicio (~ 10
20
ats/cm
3
, cien mil veces superior al substrato,
10
15
) reduce tal efecto volumtrico, permitiendo despreciarlo respecto al funcionamiento
del transistor MOS. En cambio, deber tenerse en cuenta que la resistividad de las
conexiones realizadas en polisilicio es relativamente alta (unas 300 veces la de un metal)
y su espesor es inferior al de las lneas de metal (0,2 frente a 0,5 m); por ello, la
resistencia que presenta una lnea de polisilicio es bastante superior (resistencia por
cuadro: 30/ el polisilicio, frente a 50 m/ en las conexiones metlicas).
2 La tensin umbral VTO se encuentra afectada por los siguientes efectos, todos ellos
superficiales:
- la terminacin abrupta de la red cristalina del substrato,
- la existencia de iones positivos, principalmente de sodio, atrapados en el xido
de silicio durante los procesos de oxidacin,
- la aparicin de cargas fijas en las superficies de contacto entre el silicio y el
xido, que provienen, principalmente, de una oxidacin incompleta del silicio.
Estos tres efectos se suman y pueden ser contabilizados conjuntamente en forma de
una distribucin de carga positiva Qox = q.Nox que induce sobre el substrato una carga
negativa, es decir, crea una pequea capa vaca inicial en ausencia de tensin exterior
aplicada, reduciendo la tensin umbral VTO (en el caso de un transistor de canal N;
aumentndola, si es de canal P):
VTO = - Qox / Cox = - q . Nox / Cox
La concentracin equivalente de iones Nox suele ser del orden de:
Nox 5 x 10
10
iones / cm
2
= 500 iones / m
2
Qox ~ 0,08 fC / m
2
VTO ~ - 0,08 / 0,7 -0.1 V.
Un cuarto efecto superficial se debe a las interfases o potenciales de contacto
polisilicio-xido y xido-substrato y es consecuencia del diferente potencial o energa de
extraccin de los electrones en las capas en contacto. Tal potencial de contacto origina,
asimismo, un desplazamiento de la tensin umbral
VTO = substrato
- polisilicio ~ 0,8 V.
con signo + para el substrato N, canal P y con signo - para el substrato P, canal N.
T6. Model o f unci onal del t ransi st or MOS 183
La suma de ambos desplazamientos (- 0,9 canal N y + 0,7 canal P) se traduce en la
prctica cancelacin de la tensin umbral VTO en el caso del transistor N, mientras que
para el transistor P dicha tensin umbral se reduce en forma importante (a 0,3 V).
Ahora bien, estos efectos que desplazan la tensin umbral VTO expresan tambin la
posibilidad de controlar tecnolgicamente dicha tensin (en el proceso de fabricacin de
los transistores) mediante la implantacin de iones en la superficie del substrato.
La implantacin de iones, a travs del xido de puerta en la zona semiconductora
contigua al mismo, modifica la carga equivalente Qox y permite ajustar la tensin umbral
de los transistores, situndola en valores adecuados que suelen estar en el entorno de 1 V
en los transistores NMOS y en valores un poco inferiores (para compensar la menor
movilidad de sus portadores) en los transistores PMOS.
Mediante la implantacin de iones negativos (Boro
-
) se aumenta la tensin umbral
del transistor N, acercndola a 1 V y, recprocamente, la implantacin de iones positivos
(Fsforo
+
o Arsenio
+
) permite situar la tensin umbral del transistor P en valores
absolutos ligeramente superiores a 0,6 voltios. De esta forma, se utiliza la desigualdad
VTO (PMOS) < VTO (NMOS) para compensar un poco la asimetra entre ambos
transistores, causada por la menor movilidad de los huecos.
Todos estos efectos superficiales inciden en el valor de la tensin umbral VTO pero
no afectan al modelo de transistor desarrollado anteriormente.
3 La reduccin de las dimensiones del transistor MOS (longitud L o anchura W)
afecta tambin a la tensin umbral VTO, en forma de desplazamiento de la misma.
En las proximidades de las zonas de difusin (fuente o drenaje, ricas en portadores)
el potencial de extraccin de portadores es inferior al correspondiente al semiconductor
que forma el substrato. Por ello, cuando la longitud del canal es corta (L ~ 1 m) la
tensin umbral resulta afectada por la presencia de las difusiones (cercanas a todo el
canal) y disminuye en forma apreciable, tanto ms cuanto menor es la longitud del canal.
Por otra parte, la distribucin de carga espacial de la zona vaca se extiende (en el
sentido de la anchura del transistor) ms all de la longitud transversal definida por el
xido de puerta (ms all de la zona de puerta determinada por el polisilicio al cruzar a la
difusin). El efecto de esta ampliacin de la capa vaca es apreciable cuando el transistor
es muy estrecho (W < 1 m) y puede contabilizarse como una distribucin de carga de
vaciamiento QV superior a la considerada; como dicho trmino acta en trminos de resta,
respecto a la tensin de puerta, se produce un aumento de la tensin umbral.
Estos dos efectos son de signo contrario y se compensan parcialmente entre s,
supuesto que ambas dimensiones L y W sean del mismo orden de tamao. Sin embargo,
en tecnologas submicrnicas (< 1m) el comportamiento real de los transistores difiere
en gran medida del terico (de las ecuaciones funcionales desarrolladas anteriormente),
debido a este tipo de efectos relacionados con las dimensiones del transistor (influencia
relativa de los bordes del transistor sobre su globalidad).
184 El ect rni ca Di gi t al
4 La longitud del transistor MOS no corresponde exactamente al tamao transversal
(anchura) del polisilicio que le cruza ya que la difusin penetra ligeramente debajo de la
zona de puerta, por sus bordes, ocupando una franja de anchura LD (difusin lateral); de
forma que la longitud efectiva del canal ser L - 2LD.
Adems, cuando el canal se encuentra saturado, se cierra antes de alcanzar al drenaje
y su longitud efectiva es menor que la separacin entre las dos difusiones (fuente y
drenaje). Este efecto aumenta al hacerlo la tensin de drenaje y da lugar a que las curvas
ID - VDS no sean planas en la zona de canal saturado, sino que presenten una ligera
pendiente; se conoce con el nombre de modulacin de la longitud del canal y se
contabiliza mediante un parmetro :
L
efectiva
= ( L - 2LD ) / ( 1 + VDS ).
En ocasiones, por analoga con los transistores bipolares, se utiliza como parmetro
para expresar este efecto de aumento de ID con VD en la zona de canal saturado la
denominada tensin early que corresponde a la tensin en que la prolongacin de la recta
ID correspondiente a canal saturado corta al eje de tensiones.
5 La movilidad de los portadores e
h y, por consiguiente, el parmetro de
transconductancia Kp, depende fuertemente de la temperatura y de los campos elctricos.
La temperatura disminuye la movilidad de los portadores y en el mismo sentido acta
el campo vertical producido por la tensin de puerta VG ya que tiende a impulsar a los
portadores hacia la superficie (interfase xido-substrato). En ambos casos aumenta el
efecto de dispersin (los choques) que produce la red cristalina sobre los portadores
(colisiones portadores - ncleos de la red); es el mismo efecto que sufren los materiales
conductores al aumentar la temperatura y que da lugar a un aumento de su resistencia.
Tambin afecta negativamente a la movilidad de los portadores el aumento del
campo elctrico horizontal producido por la diferencia de tensin entre fuente y drenaje;
para valores de campo suficientemente intensas (E > Ecrtico) se produce una saturacin de
la velocidad de los portadores: existe una velocidad mxima por encima de la cual la
aceleracin producida por el campo elctrico no tiene efecto.
Por otra parte, el parmetro (movilidad de los portadores), adems de ser
sumamente sensible a todo tipo de magnitudes fsicas, resulta de muy difcil medida; por
ello, en muchas ocasiones, se utiliza directamente el parmetro de transconductancia
Kp = .cox, cuya dependencia de la temperatura y de los campos elctricos se establece
mediante coeficientes de tipo experimental.
6 La distribucin de tensin V(x) a lo largo del canal (debida a las tensiones de
fuente y drenaje) no solo acta reduciendo la tensin efectiva de cada elemento x del
condensador puerta-canal, VG -VTO
-V(x); tambin incrementa la carga de la capa vaca
QV, reduciendo en igual cantidad la carga de la capa de inversin QI y su contribucin a
la corriente que circula por ella. Se denomina efecto substrato al que producen las
tensiones aplicadas horizontalmente (VS ,VD) sobre la carga de la capa de vaciamiento.
T6. Model o f unci onal del t ransi st or MOS 185
Debido a la distribucin de tensin que inducen VS
y VD, la tensin en la superficie
de un elemento (x) ser
B
+ V' >
B
y como la carga de la capa de vaciamiento es
Q
V
= K
1
B
+ V' (apartado T6.1.a), la carga de la capa de inversin ser:
( )
( ) ( ) ( ) V' V' V c V' V' V c
V' K V' V c Q Q Q
B B G ox B B G ox
B 1 B G ox V I
+ + + = + =
+ = =
Como
B B TO
V + = ,
B TO B
V = , podemos escribir
( ) ( )
( ) ( )
( ) ( )
B B G ox
B
I
V' V' V c
Q
+ + + =
+ + + =
+ + + =
TO
TO
V
V V' V' V c
V' V' V c
B G ox
B B G ox
y, con ello, la recta V V
TO
+ del diagrama de Memelink se transforma en un curva de
mayor pendiente:
B B TO
V V V + + + .
Resulta til emplear una aproximacin lineal de esta curva; para ello, en la expresin
( ) V' V' V c Q
B B G ox I
+ = , el trmino de efecto substrato V'
B
+
puede aproximarse mediante su desarrollo en serie de Taylor (primer trmino de la serie):
' aV + = +
B B
V' ; ( )
B
B
V'
= + =
=
2 ' dV
d
a
0 ' V
.
' aV - = +
B B
V'
( ) ( ) ( ) 1,15 a 1 K con V' K V V c ' aV V' V ( V c Q
TO G ox TO G ox I
+ = + = + + =
( ) ( )
+ =
D
S
V
V
TO G ox
.dV V(x) V V
L
W
c I . K . . . : la recta VTO + V del diagrama de
Memelink pasa a VTO + K.V (K ~ 1,15 > 1), es decir, aumenta su pendiente:
V
G
V
TO
V
S V
D
V + V
TO
45
V + KV
TO
V + V
TO S
V + KV
TO S
tensin umbral
de conduccin mayor
tensin de saturacin del canal menor
V + KV = V
TO D G
V + V = V
TO D G
186 El ect rni ca Di gi t al
Habida cuenta de que la recta VTO + V acta substractivamente, las consecuencias
de su mayor pendiente son las siguientes:
la intensidad que conduce el transistor es menor:
( )
=
|
.
|
\
| +
=
saturado canal V V V
L
W
2
K
I
saturado no canal V
2
V V
V V
L
W
K I
2
S TO G
p
D
DS
D S
TO G p D
K
K
K
.
cuando la tensin de fuente VS es mayor que 0 V la tensin umbral aumenta:
para VS > 0 V el transistor no conducir hasta que
VG VTO + K.VS = VTO + VS + a.VS ; VGS VT = VTO + a.VS;
siendo la nueva tensin umbral VT = VTO + a.VS (a ~ 0,15).
Este efecto tiene importancia cuando la fuente del transistor no se encuentra unida al
terminal de polarizacin (por ejemplo, en cuando los transistores se encuentran en serie) y
reduce en forma apreciable la conductividad del transistor.
la saturacin del canal se produce para tensiones de drenaje inferiores:
la saturacin se produce cuando VTO + K.VD
= VG
o sea, para una tensin de drenaje VD = (VG - VTO)/ K
VD ~ 3.5 V para VG = 5 V y VTO = 1 V
y dicho valor limita la tensin mxima de salida de un transistor de paso
(como se ver en su momento).
7 Al analizar el comportamiento del transistor MOS se han detallado dos situaciones
excluyentes: ausencia/presencia de canal (capa de inversin). Las condiciones
establecidas para que exista canal (VG > VT) corresponden a una inversin fuerte:
concentracin de portadores en el canal anloga al dopado del substrato (n ~ NA).
Existen otras dos situaciones posibles: inversin dbil n << NA e inversin moderada
n < NA que es preciso tener en cuenta cuando interesa el comportamiento del transistor
para tensiones de puerta en el entorno de la tensin umbral VT; en principio, tales
situaciones no afectan al caso digital pero han de ser tenidas en cuenta en etapas de tipo
analgico.
T6. Model o f unci onal del t ransi st or MOS 187
T6. 4. Model os SPICE
El modelo de nivel 1 (modelo de Shichman Hodges) corresponde a las funciones
desarrolladas en el apartado T6.1:
( )
=
|
.
|
\
|
=
saturado canal V V
2
K
I
saturado no l c
2
V
V V
L
W
K I
2
TO GS
p
D
DS
TO GS p D
ana V
DS
En este modelo, la descripcin de un transistor MOS requiere tres parmetros:
KP Kp parmetro de transconductancia
VTO VTO tensin umbral del transistor
TOX tox espesor del xido de puerta
TOX es necesario para tener en cuenta la capacidad de puerta; caso de no utilizarlo,
se supone capacidad de puerta nula.
En lugar de KP puede utilizarse como parmetro la movilidad de los portadores ,
calculndose KP a partir del valor de dicha movilidad UO:
UO K
p
= c
ox
=
SiO
2
t
ox
; = UO
En todo caso, es necesario indicar la dimensin de los transistores L, W, bien dentro
del modelo o en la declaracin de cada transistor; por defecto se asigna a L y W el valor
de 1 metro, con lo cual se configuran transistores enormes, de 1 m
2
(que son tan grandes
que dan lugar a resultados de simulacin errneos).
El modelo de nivel 1 admite los siguientes efectos de segundo orden:
- disminucin de la longitud del canal debida a la difusin lateral LD: L' = L- 2LD
- modulacin de la longitud de canal saturado LAMBDA: Lefectiva
= L / (1 + VDS)
- efecto substrato: la recta V V
TO
+ pasa a ser
B B TO
V V V + + +
que requiere dos parmetros
GAMMA coeficiente de efecto substrato
PHI
B
potencial superficial para inversin fuerte,
o, en su defecto: NSUB N
A
dopado del substrato:
B
= 2
KT
q
ln
N
A
N
i
.
188 El ect rni ca Di gi t al
Ejemplo de modelo de transistores MOS (nivel 1):
a) MODEL "nombre" NMOS LEVEL =1
+ KP = 40U VTO = 1 TOX = 50E-9 L = 1U W = 1.5U
+ LD = 0.05E-6 LAMBDA = 0.01 GAMMA = 0.25 NSUB = 1E15
b) MODEL "nombre" PMOS LEVEL = 1
+ KP = 15U VTO = -1 TOX = 50E-9 L = 1U W = 1.5U
+ LD = 0.05E-6 LAMBDA = 0.01 GAMMA = 0.25 NSUB = 5E15
Adems, pueden incluirse los efectos resistivos y capacitivos de las regiones fsicas
que componen el transistor mediante los correspondientes parmetros: RSH (R
resistencia por cuadro cuadrado de la difusin), CJ (capacidad de la difusin respecto
al substrato), CJSW (capacidad perimetral de la difusin respecto al substrato), CGSO y
CGDO (capacidades de solapamiento puerta-fuente y puerta-drenaje), RS, RD y RG
(resistencias hmicas de los contactos con fuente, substrato y drenaje), etc.
El modelo de nivel 2 permite incluir todos los efectos de segundo orden comentados
en el apartado T6.3 y, en particular, los relativos a los transistores submicrnicos; utiliza,
en principio, los mismos parmetros que el de nivel 1, a los que aade parmetros
complementarios para contabilizar los efectos sobre la movilidad de los portadores (y,
por tanto, sobre Kp), sobre la tensin umbral VT, etc. y para incluir situaciones de
inversin dbil. Los diversos efectos de segundo orden se tienen en cuenta o no segn se
asignen o no valores a los correspondientes parmetros.
El modelo de nivel 3 corresponde a un ajuste semiemprico de coeficientes a travs
de aproximaciones de las caractersticas del transistor obtenidas a travs de la medida de
las mismas. Ha sido desarrollado principalmente para aproximar los resultados de la
simulacin a los valores experimentales en los transistores de canal ultracorto.
Adems de los anteriores, existen otros modelos SPICE de los transistores MOS:
versiones avanzadas de SPICE suelen incluir una docena de tales modelos. Sin embargo,
en muchas ocasiones, en particular en la simulacin de circuitos digitales con transistores
no muy pequeos (L 1m), basta el modelo de nivel 1 para conseguir resultados muy
aceptables.
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
T7 ESTUDIO EN DETALLE DEL INVERSOR CMOS
T7.1. El inversor CMOS
T7.2. Tiempo de propagacin y mejora del mismo
T7.3. Disipacin de potencia
T7.4. Puertas CMOS
Interesa estudiar en detalle el comportamiento de las puertas CMOS y ese detalle se
refiere a tensiones, intensidades, tiempos y consumos: su funcin de transferencia (tensin
de salida en relacin con la tensin de entrada), la intensidad suministrable por la salida,
los tiempos de conmutacin, la disipacin de potencia, El inversor, como puerta ms
simple, de una sola entrada, resulta sumamente adecuado para desarrollar este estudio.
En el captulo anterior, se introdujeron los diagramas de Memelink como forma de
representar grficamente la distribucin de los portadores de carga en el canal de los
transistores MOS y de facilitar los clculos relativos a tensiones e intensidades. En el caso
de un inversor, los diagramas de Memelink de los dos transistores que lo forman pueden
representarse conjuntamente (en un mismo diagrama), de manera tal que puede calcularse
la tensin de salida y la intensidad a travs del inversor, para cualquier valor de su tensin
de entrada.
De esta forma, en el presente captulo se calcula la tensin de conmutacin del inversor
y la intensidad que consume en tal situacin y se obtienen, tambin, las expresiones
algebraicas que corresponden a los diversos tramos de la funcin de transferencia y, a
partir de ella, los mrgenes de ruido.
Asimismo es de gran inters comprender los factores que afectan a los tiempos de
propagacin y cmo dichos tiempos pueden mejorarse mucho, si la carga capacitiva es alta,
utilizando una serie de inversores suplementarios, en escalera (cada uno de ellos de
anchura superior al anterior).
La disipacin de potencia en una puerta lgica, su consumo, tiene importancia en dos
aspectos complementarios: la fuente de alimentacin que ha de proporcionar suficiente
intensidad y el calentamiento del circuito que aumenta sus tiempos de propagacin y, en
ocasiones, necesita adecuada refrigeracin.
Por ltimo, se recuerdan las caractersticas funcionales de las puertas CMOS y se
destaca la limitacin del nmero de entradas de las mismas, para evitar que un alto
nmero de transistores en serie empeore en gran medida esas caractersticas.
190 El ect rni ca Di gi t al
T7. 1. Inversor CMOS
El inversor CMOS utiliza un transistor de canal N y otro de canal P:
Vi
V
CC
Vo
1
2
T canal N
T canal P
Supuestos V = 5 V y V = 1 V y V = -1 V
Para Vi < 1 V T conduce y T no : Vo = V = V(1)
Para Vi > 4V T no conduce y T s : Vo = 0 V = V(0)
CC
1
CC
2
2
1
TO,NMOS TO,PMOS
Las propias tensiones umbrales de los transistores aseguran las tensiones de salida
booleanas V(0) y V(1) al mantener uno de los dos transistores en corte; en ambas
situaciones booleanas, el consumo es nulo pues el transistor cortado impide el paso de
corriente a travs de ambos (que se encuentran en serie).
En la figura se ha representado tambin la polarizacin de los substratos: en el diseo
fsico han de configurarse las conexiones del substrato P (del transistor NMOS) a 0 V y
del substrato N (pozo) a VCC. Tales conexiones de polarizacin aseguran que todas las
uniones PN que forman los transistores con el substrato se encuentran polarizadas
inversamente, aislando a cada transistor respecto de su substrato.
El transistor NMOS tiene su terminal de fuente a 0 V y las tensiones de entrada VGS
y de salida VDS son positivas y su referencia es 0 V. En cambio, el transistor PMOS tiene
su terminal de fuente a VCC (se encuentra colocado boca abajo) y las tensiones de
entrada VGS y de salida VDS son negativas, ambas con referencia a VCC.
Para analizar la funcin de transferencia del inversor (Vo Vi) puede utilizarse un
diagrama de Memelink conjunto de ambos transistores. En dicho diagrama el origen de
coordenadas del transistor NMOS (punto 0,0) no coincide con el del transistor PMOS
(punto VCC,VCC) ya que la tensin de referencia, tensin de fuente, de ambos transistores
es diferente. En cambio la tensin de entrada Vi (tensin de puerta) de ambos es comn y
acta sobre el eje Y y tambin lo es su tensin de salida Vo (tensin de drenaje) que acta
sobre el eje X.
En una situacin esttica, la intensidad que circula por ambos transistores es la
misma IT1 = IT2 (IP = IN) ya que ambos estn en serie; para lo cual tiene que cumplirse
que P.AP
= N.AN, siendo = .cox.W/L el parmetro que incluye los aspectos
tecnolgicos (.c
ox
= Kp) y geomtricos (W/L=ff) y A el efecto de las tensiones aplicadas
sobre el transistor, que viene dado (en el diagrama de Memelink) por el rea limitada por
las cuatro rectas x = VS, x = VD = Vo, y = VG = Vi
e y = VTO+V.
T7. El i nversor CMOS 191
0
V
CC
V
CC
tensin
de puerta
de ambos
transistores
i
V : tensin de drenaje de ambos transistores
o
T canal N
2
T canal P
1
V
terminal de fuente
del PMOS: T1
terminal de fuente
del NMOS: T2
;
3
1
ff
ff
3
1
3
1
L W
L W
N
P
1
2
electrones
huecos
N N
P P
electrones
huecos
N
P
P
N
= = =
A
A
A
A
= (W1/L1) / (W2/L2) = ff1
/ ff2 es la relacin de geometras entre ambos transistores.
Para cualquier tensin de entrada Vi la tensin de salida Vo es la que corresponde a
la siguiente relacin entre reas en el diagrama de Memelink: AN = (/3).AP.
Tensi n de conmut aci n
Supongamos ambos transistores iguales en dimensiones ffP/ffN = = 1, por ejemplo,
ambos de tamao mnimo, cul ser la tensin de conmutacin del inversor?:
Para tensin de alimentacin 5 V y tensin umbral de ambos transistores igual a 1 V:
0
+5 V
i
Vo
canal N
canal P
V
+5 V
Se aprecia en la figura que para la tensin de entrada Vi la tensin de salida Vo no es
un valor nico, sino un amplio intervalo de tensiones; dicho intervalo corresponde,
precisamente, a la conmutacin de la salida.
192 El ect rni ca Di gi t al
La tensin de entrada Vi a la cual se produce la conmutacin es aquella para la cual
las reas de los dos tringulos rectngulos e isosceles (formados por Vi con VTO + V)
cumplen la relacin anterior, ya que para dicha tensin de entrada existe todo un intervalo
de tensiones de salida posibles, intervalo que corresponde al salto brusco de la
conmutacin.
( )
( )
( ) ( ) V 2.1 V V 4 1 V 3
3
1 V
2
1
V 4
2
1
i i i
P
P N
2
i N
2
i P
3
n conmutaci ,
=
= =
=
=
A
A A
A
A
La funcin de transferencia no es simtrica (Vi,conmutacin 2,5 V) sino que la
conmutacin est desplazada hacia valores inferiores de Vi, debido a la menor movilidad
de los huecos que repercute en una menor conductividad del transistor PMOS.
En la conmutacin, la salida puede adoptar cualquier tensin dentro del intervalo
sealado en la figura que viene delimitado por los vrtices de ambos tringulos. Teniendo
en cuenta que la recta VTO + V tiene una pendiente de 45, los dos catetos de dichos
tringulos son iguales y su valor es respectivamente:
NMOS: Vconmutacin VTO,NMOS = 1,1 V; Vo(vrtice del tringulo) = 1,1 V
PMOS: VCC |VTO,PMOS| - Vconmutacin = 1,9 V; Vo(vrtice del tringulo) = 51,9 = 3,1V
Es decir, la conmutacin se produce con una variacin vertical de la tensin de salida
entre 1,1 y 3,1 V: Vo = [1,1 3,1] V.
La intensidad que circula por el inversor en dicha situacin de conmutacin,
supuestos transistores de tamao mnimo (ff = W/L = 1,5), ser:
( ) ( )
2
n conmutaci i,
p 2
i p p
1 V
4
3K
1 V
2
1
. K
L
W
K = I = = . 5 , 1 . .
N
A .
Para la tecnologa :
p (NMOS) ~ 40 A/V
2
; ( ) A 6 3 1 , .
V
A 120
2
=
2
1 2
4
= I
Es posible conseguir una funcin de transferencia simtrica, compensando, a travs
de , la relacin entre las movilidades: si = 3, resulta AP
= AN
y Vi = 2,5 V; para ello es
necesario hacer el transistor PMOS de anchura triple, de manera que ocupar mayor
superficie de integracin y, adems, aumentarn los tiempos de propagacin de la puerta
anterior: los transistores PMOS dejan de ser mnimos y aumentan sus dimensiones y su
capacidad de puerta. No es, por ello, una buena solucin y, en la prctica, no suele hacerse
este equilibrado de los transistores PMOS.
T7. El i nversor CMOS 193
Habida cuenta de que la precisin del proceso de fabricacin es limitada, cabe
preguntarse en qu medida una desviacin en las dimensiones de los transistores afecta a
la tensin de conmutacin. Supongamos que, por alguna razn, se modifican las
dimensiones de los transistores y no resultan exactamente iguales; expresando la tensin
de conmutacin Vi en funcin de la relacin de geometras :
( ) ( ) ( ) ( )
1
3
4
1
1 4
V ; V 4 1 V V 4
2
1
3
1 V
2
1
i i i
2
i
2
i
+
=
+
+
= = =
/3 /3
/3
/3 ;
Si en lugar de 1 pasa a valor 2 (modificacin muy amplia, del 100 %, que equivale
a un factor de forma del transistor PMOS doble) entonces Vi = 2,35 V (desviacin en la
tensin de conmutacin de 0,25 V < 12 %) y, en cambio, si pasa a 0,5 (factor de forma
del transistor NMOS doble) entonces Vi = 1,87 (desviacin 0,23 V < 11 %).
Es decir, el efecto de una desviacin en las dimensiones de los transistores sobre la
tensin de conmutacin del inversor es muy pequeo.
Funci n de t ransf erenci a
El diagrama de Memelink del inversor (dos pgina atrs) permite obtener la curva de
transferencia (Vo - Vi) punto a punto: dado un valor de Vi, calcular el correspondiente de
Vo; puede efectuarse un anlisis por tramos, obteniendo las expresiones algebraicas que
relacionan Vo con Vi en cada tramo. Los tramos diferenciados son los siguientes:
I Vi < VTO,NMOS el transistor N no conduce y Vo = VCC
II Vi < Vconmutacin el rea de conduccin del transistor N es triangular
y, en cambio, el rea correspondiente al P es trapezoidal
III Vi = Vconmutacin el rea de conduccin del transistor N es triangular
y el rea correspondiente al P tambin es triangular
IV Vi > Vconmutacin el rea de conduccin del transistor N es trapezoidal
y, en cambio, el rea correspondiente al P es triangular
V Vi > VCC - |VTO,PMOS| el transistor P no conduce y Vo = 0
Supuesto un factor de forma 1 (ambos transistores iguales), con tensiones umbrales
VTO = 1 V y tensin de alimentacin VCC = 5 V, la tensin de conmutacin ser de 2,1 V
(segn los clculos anteriores) y la de salida en los cuatro tramos antedichos se ajustar a
las siguientes expresiones:
I Vi < 1 V V
o
= 5 V
II 1 V < Vi < 2,1 V V
o
= V
i
+ 1 + 13 - 2V
i
- 2V
i
2
III Vi = 2,1 V V
o
= [1,1 ; 3,1]
IV 2,1 V > Vi < 4 V V
o
= V
i
- 1 - (2V
i
2
+ 2V
i
-13) / 3
V Vi > 4 V V
o
= 0 V
194 El ect rni ca Di gi t al
Para la tensin de conmutacin Vconmutacin = 2,1 V, las expresiones de los tramos II
y IV proporcionan, respectivamente, los valores de 3,1 V y 1,1 V entre los cuales conmuta
el inversor en dicha tensin:
Vi =Vconmutacin V
o
= [3,1 ; 1,1] V
Tambin puede obtenerse la funcin de transferencia mediante simulacin SPICE:
las siguientes grficas muestran, respectivamente, la funcin de transferencia Vo - Vi y el
consumo de intensidad de un inversor CMOS de la tecnologa :
L = 1 m, W = 1,5 m, |VTO, = 1 V, p,NMOS = 40 A/V
2
y p,PMOS = 15 A/V
2
.
0V 1V 2V 3V 4V 5V
V(2)
0V
2.0V
4.0V
5.0V
0V 1V 2V 3V 4V 5V
I(VCC)
-40uA
-30uA
-20uA
-10uA
0A
Funcin de transferencia Vo Vi CMOS Consumo de intensidad ICC del inversor
En la funcin de transferencia se aprecia que, en relacin con el ruido, es
razonable extender la tensin de entrada correspondiente al 0 hasta 1,5 V (para dicho
intervalo, Vo(1) > 4,8 V) y la tensin de entrada para valor 1 puede tomarse desde 2,5 V
(intervalo para el cual Vo(0) < 0,3 V):
para Vi < 1,5 V, Vo > 4,8 V y para Vi > 2,5 V, Vo < 0,3 V.
Vo
2,5 V
1,5 V
0,3 V
4,8 V
5 V
Vi
0 V
2,3
1,2
Mrgenes de ruido en tensin:
V(0) = Vi,mx(0) V
o,mx(0) = 1,5 - 0,3 = 1,2 V
V(1) = V
o,mn
(1) V
i,mn
(1) = 4,8 2,5 = 2,3 V
Es mayor el margen correspondiente al 1 a causa del
desplazamiento de la funcin de transferencia hacia tensiones
bajas, debido a la menor movilidad de los huecos.
Margen de ruido en potencia: P =
(V)
2
/ Ro. El margen de ruido en potencia (o
sea, en energa por unidad de tiempo) es ms significativo que el margen en tensin, ya
que el ruido acta como energa perturbativa sobre el circuito digital.
T7. El i nversor CMOS 195
Resi st enci a de sal i da
La resistencia de salida es un parmetro indicativo del comportamiento de las puertas
lgicas (una referencia de calidad de las mismas), en cuanto a intensidad disponible en la
salida, inmunidad frente al ruido y tiempos de propagacin, pues afecta fuertemente a
estos tres aspectos: en principio, cuanto menor sea la resistencia de salida mayores sern
la intensidad suministrable por la misma, el margen frente al ruido y la velocidad de
trabajo. Tambin interesa resistencia de salida baja en relacin con el acoplo en tensin,
pero dicho acoplo ya viene garantizado por el altsimo valor de la resistencia de entrada
(que es cuasi-infinita).
Las situaciones booleanas corresponden a un transistor en zona lineal: para salida 0
el transistor NMOS se encontrar conduciendo en su zona lineal, mientras que para salida
1 ser el transistor PMOS el que se encuentre en zona hmica; de forma que Ro(0) y
Ro(1) corresponden, respectivamente, a las resistencias que presentan los transistores
NMOS y PMOS en zona lineal.
Valores de las resistencias de salida (tecnologa ):
Para transistores de tamao mnimo (W=1,5L; ff=1,5) con tensin umbral de 1 V y
tensin de puerta de 5 V los valores de la resistencia equivalente en zona lineal sern:
NMOS PMOS
p 40 A/V
2
p 15 A/V
2
Req = 1 / (40.10
-6
.1,5.(5-1)) 4 k Req = 1 / (15.10
-6
.1,5.(5-1)) 11 k
De manera que las resistencias de salida en situacin booleana sern:
Ro(0) ~ 4 K Ro(1) ~ 11 K
Los valores de las resistencias de salida de los inversores de tamao mnimo son del
orden de varios K, 10
3
ohmios; no son valores pequeos, pero son adecuados para el
comportamiento de las puertas booleanas en el interior del circuito integrado. Tngase en
cuenta que las capacidades de entrada de dichas puertas son pequeas (del orden del
fentofaradio, 10
-15
F) y, por ello, tambin lo son las intensidades que se requieren y las
constantes de tiempo que se generan (10
3
.10
-15
ps); asimismo, habida cuenta de que las
dimensiones de las conexiones son muy reducidas, el efecto del ruido es muy pequeo.
En los terminales de salida de un circuito integrado interesan resistencias de salida
inferiores a 100 ohmios (pues en este caso, se requieren intensidades del orden de 10 mA,
las capacidades de carga son del orden de 10 pF y las longitudes de las conexiones van en
centmetros); en cambio, en las puertas interiores son adecuadas resistencias del orden de
10 K (por las razones antedichas: intensidades del orden de 0,1 mA, capacidades de 1 fF y
longitud de las conexiones en micras).
196 El ect rni ca Di gi t al
En todo caso, puede disminuirse el valor de la resistencia de salida aumentando en
igual medida la anchura W del correspondiente transistor, el PMOS para Ro(1) y el
NMOS para Ro(0); esto es lo que se hace, precisamente, en los adaptadores de las salidas
del circuito integrado.
La intensidad suministrable por el inversor, en cada uno de sus dos estados, depende
de la cada de tensin que admitamos en la salida: Io = Vo / Ro. Esta intensidad es
relativamente pequea y, en ocasiones, no es suficiente; por ejemplo, en los citados
adaptadores de las salidas, que precisan de una capacidad de intensidad (hacia el exterior
del circuito integrado) del orden de 10 mA. En tales casos, basta aumentar
adecuadamente el factor de forma de los transistores (ff = W / L), es decir, es necesario
hacer W >> L.
Para la tecnologa :
NMOS PMOS
Ro(0) ~ 4 K Ro(1) ~ 11 K
Intensidad suministrable por el inversor: Io = Vo / Ro
Admitiendo V(0) = 0,2 V y V(1) = 0,6 V que son valores aceptables (cuya
diferencia va en relacin a la asimetra de la funcin de transferencia y a la diferencia de
mrgenes de ruido): Io(0) ~ 0,2 / 4K 50 A Io(1) ~ 0,6 / 11K 50 A.
Haciendo W > L se consiguen mayores intensidades de salida:
para W = 15L Io 0,5 mA
para W = 50L Io 1,5 mA
para W = 300L Io 10 mA.
Margen de ruido en potencia del inversor mnimo:
P (0) ~ 1,2
2
/ 4 K 0,36 mW P (1) ~ 2,3
2
/ 11 K 0,48 mW.
El ruido acta efectivamente como potencia: energa perturbativa por unidad de
tiempo. En los terminales de un circuito integrado se requieren mrgenes de ruido
superiores de 20 mW para ambientes normales (viviendas o lugares pblicos) y a
100 mW en ambientes industriales; en el interior de los circuitos integrados (en donde
la captacin y efecto del ruido es muy inferior, ya que las conexiones son milimtricas),
son suficientes mrgenes del orden de 0,1 mW.
T7. El i nversor CMOS 197
T7. 2. Ti empo de propagaci n y mej ora del mi smo
T7.2.1. Tiempo de conmutacin de una puerta CMOS
La salida de una puerta booleana se encontrar conectada a la entrada de otra u otras
puertas (u otros componentes del circuito global), cuyo efecto equivalente es el de una
capacidad que ha de cargarse y descargarse en la conmutacin, originando unos tiempos
de retraso hasta que el proceso de carga o descarga alcanza los valores de tensin
apropiados para el 0 y 1 booleanos.
+5 V
V
V
V -1
A = - 1/2 (V -1) A
canal saturado
2
V = 0
o
o
o
G
o
Proceso de carga a travs de un transmisor PMOS
Estudiemos el proceso de carga, expresando los tiempos de retraso en funcin de su
intensidad con canal saturado ISAT = I y de la capacidad de carga CL = C que soporta:
- I = ISAT = . Acanal saturado, siendo A el rea del tringulo de conduccin en el
diagrama de Memelink;
- supuestos VCC = 5 V y VTO = 1 V: I = .4
2
/ 2; = I / 8
En el proceso de carga, existen dos tiempos diferenciados:
t
1
: Vo de 0 a 1 V canal saturado I
1
= I, Q = I. t = C.V, t = C.V/I, t
1
= C/I.
t
2
: Vo de 1 a 5 V canal no saturado I2 < I y decrece al aumentar Vo, I(t) dt = C dV:
I(t) = I - . (V - 1)
2
/ 2 = I - (I/16) (V - 1)
2
= (I/16)(16 - (V - 1)
2
)
(I / 16) (16 - (V - 1)
2
) dt = C dV ;
2 2
1) (V 4
1) d(V
dt
16
=
C
I
Integrando ambos miembros de la ecuacin diferencial anterior:
1) (V 4
1) (V 4
4 . 2
1
t
16
+
= ln
C
I
;
t
C 2
I
e =
+
1) (V 4
1) (V 4
198 El ect rni ca Di gi t al
t
4
tgh 4 1
1 e
1 e
4 1 V(t)
t
2
t
2
C
I
C
I
C
I
+ =
+
+ =
La funcin tangente hiperblica tgh(x) es fuertemente creciente (del tipo 1 - e
-x
, con
pendiente an mayor), de forma que tiende a 1 asintticamente y alcanza el valor 0.76
(>75 %) para x = 1.
La conmutacin de la salida hacia 5 V alcanzar 4 V en un tiempo aproximado al
que corresponde a x = 1:
(I / 4C) t2
= 1 t2 = 4C / I t
= t1 + t2 = 5C / I
donde I es la intensidad de canal saturado del transistor PMOS.
La determinacin del tiempo de descarga a travs del transistor NMOS, hasta
disminuir a 1 V, es anloga y conduce a la misma expresin t
= t1 + t2 = 5C / I:
t
= 5C / I(P) t
= 5C / I(N)
Para la tecnologa : Lmn = 1 m, W = 1,5 m, Ci ~ 2 fF
y para VCC = 5 V y VTO = 1 V: I(P) = Isat (canal P) 0,2 mA
I(N) = Isat (canal N) 0,5 mA
para fan-out = 1 (una sola entrada conectada a la salida de un inversor mnimo):
t
10 fF / 0,2 mA ~ 0,05 ns t
10 fF / 0,5 mA ~ 0,02 ns
El tiempo de subida es superior al de bajada como consecuencia de la menor
movilidad de los huecos que conforman el canal del transistor PMOS; ello podra evitarse
dimensionando adecuadamente dicho transistor pero implicara mayor rea de integracin
y, a la vez, mayor capacidad de carga de cada entrada lo cual redundara en empeorar los
tiempos de conmutacin de la puerta anterior. Por ello, no interesa dimensionar las
puertas lgicas para conseguir su simetra funcional.
Nos encontramos con tiempos de conmutacin inferiores a un nanosegundo, que
dependen linealmente de la capacidad de carga y, por ello, del fan-out y de las
dimensiones de los transistores:
- al aumentar el fan-out, los tiempos de conmutacin crecen en la misma proporcin
- al disminuir las dimensiones de la tecnologa los tiempos de conmutacin se reducen
cuadrticamente (Ci disminuye con L y con W).
Para una tecnologa de 0,5 micras: Lmn = 0,5 m, W = 0,75 m, Ci ~ 0,5 fF
para fan-out = 1 (una sola entrada conectada a la salida de un inversor mnimo):
t
0,071 ns y t
0,026 ns .
Los tiempos de conmutacin dependen tambin fuertemente de la temperatura, ya
que al aumentar sta disminuye fuertemente la movilidad de los portadores (aumentan sus
choques con los ncleos de la red cristalina) y, en consecuencia, se reduce Kp y la
intensidad de saturacin de los transistores. De ah, el alto inters de evitar el
calentamiento de los circuitos integrados, disipando adecuadamente el calor generado por
la potencia consumida en ellos, si se desea aprovechar la velocidad mxima de trabajo.
El retardo que introduce un inversor es algo superior al tiempo de conmutacin
calculado en este apartado: dicho tiempo de conmutacin ha sido determinado en relacin
con la capacidad de carga CL (fan-out) y, en la prctica, influyen tambin otros efectos
capacitivos internos del propio inversor.
Al conectar varios inversores seguidos, el tiempo de propagacin del conjunto es
mayor que los tiempos de conmutacin individuales pero es inferior a la suma de ellos, ya
que existe solapamiento entre ellos. Es decir, los tiempos de conmutacin no son
linealmente acumulativos ya que cada puerta inicia su conmutacin antes de que la
anterior complete la suya.
200 El ect rni ca Di gi t al
Para facilitar la suma de tiempos, cada tiempo de propagacin suele medirse por el
retraso entre el punto medio de la conmutacin (tensin Vcc/2) de la onda de entrada y el
punto medio de la conmutacin de la seal de salida.
t
pHL
t
pLH
V
i
V
o
Sin ser exactos, las formulas y clculos anteriores ofrecen una buena estimacin del
orden de magnitud y una buena aproximacin al valor real de los tiempos de
propagacin. La simulacin SPICE de los mismos puede proporcionar an mayor
precisin.
Adems, habr que tener en cuenta que cada conexin entre la salida de una puerta y
la entrada de la siguiente introduce una lnea conductora con sendos efectos resistivo y
capacitivo y, con ello, un nuevo sumando al retardo de propagacin de las seales; en
tecnologas submicrnicas no es extrao que el retardo introducido por las lneas de
conexin sea superior al tiempo de propagacin de la propia puerta booleana.
T7.2.2. Mejora de los tiempos de propagacin
En ocasiones las capacidades de carga son altas; por ejemplo, en los adaptadores de
las salidas de los circuitos integrados (que han de ser capaces de soportar su conexin a
cargas equivalentes de decenas de picofaradios) o, tambin, en puertas que deban soportar
a su salida un fan-out alto (por ejemplo, las que transmiten a los diversos biestables la
seal de reloj) o largas longitudes de polisilicio. En tales casos, los tiempos de
conmutacin se elevan en demasa y es preciso reducirlos mediante adaptadores de
intensidad:
Para la tecnologa :
Para una capacidad de carga de 10 pF (5.000 veces superior a Ci -fan-out 1-):
t
= 5C / I(P) 10 pF / 0,2 mA 50 ns
t
= 5C / I(N) 10 pF / 0,5 mA 20 ns
Aadiendo un par de inversores cuya anchura de transistores sea, en cada uno de
ellos, 10 veces la del anterior:
2 pF
inversor
"mnimo"
Isat = I
Ci = 2 fF
inversor
con transistores
10 veces
ms anchos
Isat = 10 I
Ci = 20 fF
inversor
con transistores
100 veces
ms anchos
Isat = 100 I
Ci = 200 fF
C = 2000 fF
L
Como puede apreciarse en la figura, en cada inversor se produce un salto entre su
capacidad de carga y su capacidad de entrada de 10; en total, un salto de 1000 que es la
relacin existente entre los 2 pF y Ci (capacidad de entrada del inversor mnimo).
t1 = 5 x 20 / 0,2 0,5 ns t2 = 5 x 200 / 2 0,5 ns t3 = 5 x 2000 / 200 0,5 ns
t1
5 x 20 / 0,5 0,2 ns t2 5 x 200 / 5 0,2 ns t3 5 x 2000 / 500 0,2 ns
t t1 + t2 + t3 1,2 ns t t1 + t2 + t3 0,9 ns
Ambos tiempos son muy inferiores a los que presenta el primer inversor en solitario:
50 ns y 20 ns, respectivamente.
Este esquema (en que se incluyen parejas de inversores en escalera, es decir, con
anchura de transistores creciente) resulta sumamente til para configurar adaptadores de
intensidad (buffers), tanto para los terminales de salida del circuito integrado como para
aquellas conexiones internas que han de soportar un alto fan-out o alta carga capacitiva y,
por tanto, han de proporcionar alta intensidad.
202 El ect rni ca Di gi t al
Un adaptador de intensidad puede incluir ms de una pareja de inversores en
escalera (siempre un nmero par para que no se produzca una inversin suplementaria),
de forma que la relacin de intensidad entre el ltimo de ellos y la puerta mnima inicial
se distribuya en mltiples saltos pequeos.
C
Isat = I
L
L
puerta previa
de tamao
"mnimo"
Isat = I
Ci
1
n inversores
siendo n un n par
Se puede calcular el nmero ptimo de inversores para conseguir el menor tiempo de
propagacin global:
- sea K el cociente entre la capacidad de carga que debe soportar el conjunto y la
correspondiente a una entrada mnima (primera puerta del conjunto): K = CL / Ci
- si el necesario aumento del fan-out se distribuye de forma homognea siendo el
coeficiente incremental Ci+1 = .Ci, ser necesario que las anchuras W de transistores
de dos inversores sucesivos se incrementen en dicho factor : Wi+1 = .Wi
- la relacin de anchuras repercute en proporcin directa en la relacin entre
capacidades de entrada Ci y entre intensidades de saturacin Isat; se verificar que
Wi+1 / Wi = Ci+1 / Ci = Isat,i+1 / Isat,i =
- el factor incremental global K corresponde a n+1 incrementos sucesivos:
K = CL / Cin
=
n+1
, = K
n+1
y el incremento en intensidad ser: IL / I1
=
n
Los tiempos de propagacin de los inversores sern iguales, ya que la relacin entre
intensidad de saturacin y capacidad de carga es constante, y dichos tiempos sern
proporcionales a ya que dicho factor representa la carga relativa a su tamao que cada
inversor soporta. Por tanto, el tiempo de propagacin del conjunto ser proporcional a
(n+1). y la situacin de tiempo mnimo de propagacin corresponde a:
| |
1 n
K ; 0
dn
1). (n d
+
= =
+
0
1) (n
1
.lnK. K 1). (n K 0
dn
) K 1) d((n
2
1 n 1 n
1 n
=
(
+
+ + =
+
+ +
+
;
2,7 e K
lnK 1 n
1 n
0
1) (n
1
lnK. 1
= = =
= = + =
+
+
+
; e K ; ;
1 n
T7. El i nversor CMOS 203
La adaptacin ptima de la escalera de inversores, para conseguir tiempos
mnimos de propagacin, se consigue cuando el nmero de inversores es n + 1 = lnK y,
en este caso, el coeficiente incremental coincide con el nmero e:
Wi+1 = 2,7.Wi Ci+1 = 2,7.Ci Isat,i+1 = 2,7. Isat,i
El tiempo de propagacin de cada inversor ser = e = 2,7 veces el correspondiente
a un inversor mnimo conectado a otro inversor anlogo.
En el ejemplo desarrollado con la tecnologa :
CL = 2 pF; Cin = 2 fF: K = 1000; n+1 = ln(1000) 7
El mnimo tiempo de propagacin se obtiene con 6 inversores intermedios, cuya
anchura de transistores sea, en cada uno de ellos, 2,7 veces mayor que en el anterior.
Los tiempos de propagacin de cada uno de los inversores son los siguientes:
t
4t
+ 3t
0,8 ns t
< 4t
+ 3t
0,7ns.
Tales son los tiempos mnimos de propagacin que pueden conseguirse, claramente
inferiores a los que presentara el primer inversor actuando en solitario sobre la capacidad
de carga 2 pF (60 ns y 20 ns, respectivamente) y solamente un poco inferiores a los que
se obtienen con una sola pareja de inversores en escalera (1,5 ns y 1 ns).
Como puede apreciarse aadir una primera pareja de inversores (adecuadamente
dimensionados) tiene un gran efecto tiene respecto a la reduccin de tiempos; cuando se
aaden ms parejas de inversores (ajustando en cada caso su anchura W), la inclusin de
cada una de ellas tiene un efecto sucesivamente menor que la anterior. Por ello, debe
valorarse la reduccin de tiempos que se desea conseguir en relacin con el rea de silicio
que se va a necesitar.
204 El ect rni ca Di gi t al
T7. 3. Di si paci n de pot enci a
La potencia disipada por un inversor CMOS en situacin esttica es prcticamente
nula, pues no existe ninguna lnea de conduccin directa entre alimentaciones (siempre
uno de los dos transistores correspondientes a cada entrada se encuentra en corte). Ahora
bien, en cada transistor existen uniones PN polarizadas inversamente (uniones difusin-
substrato) que conducen una minscula intensidad inversa, cuyo orden de magnitud es del
picoamperio (mA / 10
6
).
Ahora bien, al conmutar el inversor han de cargarse o descargarse las capacidades
propias de sus transistores, en particular, su capacidad de puerta, lo cual determina un
consumo dinmico proporcional a la frecuencia de conmutacin:
- energa necesaria para cargar o descargar un condensador: 1/2 C.V
2
- potencia disipada al cargarlo y descargarlo con una onda de frecuencia f
(en cada perodo hay dos conmutaciones, habr que contabilizar una carga y una
descarga): (1/2 C.V
2
) . 2f = C . V
2
. f
Esta potencia (energa por unidad de tiempo) representa un consumo de intensidad
desde la alimentacin y una disipacin de calor en el propio circuito. Son dos aspectos
complementarios, relativos al consumo de intensidad, que requieren la correspondiente
atencin en el diseo y utilizacin del circuito integrado: una fuente de alimentacin con
suficiente capacidad de suministro de corriente y una disipacin de calor adecuada.
Teniendo en cuenta, adems, que los tiempos de propagacin aumentan con la
temperatura y, en consecuencia, disminuye la velocidad de trabajo.
Conforme a la anterior expresin, la potencia consumida y disipada depende de:
- la tecnologa, cuyas dimensiones determinan la capacidad C; dicha capacidad
equivalente de una puerta a efectos de consumo de intensidad tiene varios
componentes, entre los cuales predomina la capacidad de entrada (las otras
capacidades internas de los transistores son de valores muy inferiores) que es
proporcional a la superficie de las zonas de puerta, es decir, al producto L.W y
disminuye cuadrticamente al disminuir L (W = 1,5L);
- la tensin de alimentacin, que tambin afecta cuadrticamente V
2
; existe, por
ello, una evolucin continuada de la microelectrnica hacia tensiones de
alimentacin ms bajas (el paso de 5 V a 3 V reduce el consumo a la tercera
parte), siendo cada vez ms frecuentes dispositivos de 2,5 V y de 1,8 V;
- la frecuencia de trabajo f, aumentando linealmente con ella (lo cual aconseja no
trabajar a frecuencia ms alta de la estrictamente necesaria para el sistema digital)
Al evaluar el consumo de un circuito integrado, debe tenerse en cuenta que no todas
las puertas del mismo conmutan cada vez, sino que solamente lo hace una pequea parte
de ellas; por ejemplo, la escritura de un dato sobre una memoria de 1 Mega solamente
afecta a uno de sus 1048576 registros (y al decodificador de direcciones y control de
escritura).
T7. El i nversor CMOS 205
Disipacin de potencia (tecnologa ):
Para transistores de tamao mnimo (L = 1 m, W =1,5 m) y espesor de xido de
puerta tox de 50 nm, el valor de la capacidad de puerta ser:
Cox = 0.7 fF / m
2
; CG = Cox
. W . L = 0,7 fF / m
2
. 1,5
m . 1
m 1 fF.
Como la entrada del inversor se encuentra conectada a dos transistores, uno de canal
N y otro de canal P, la capacidad de entrada ser: Ci 2 fF
Para la tensin de alimentacin habitual de 5 V (VCC = 5 V)
P = C.V
2
. f = 2 fF . 25 V
2
. f = 50 . 10
-15
. f = 0,05 . f pW
Para f = 1 MHz = 10
6
: P = 50 nW / MHz; ICC = 10 nA / MHz
Al aumentar la frecuencia aumenta la potencia disipada en cada entrada en igual
proporcin.
Es posible hacer una estimacin de la potencia disipada en 1 mm
2
ocupado por
puertas CMOS, supuesto que todos los transistores conmuten (lo cual no es una situacin
normal pues en cualquier bloque digital slo conmuta una pequea fraccin de las puertas
contenidas en l). El rea activa ocupada por los transistores en cuanto a su zona de
puerta (L.W) suele ser inferior al 5 % (ya que la mayor parte de la superficie es necesaria
para las zonas de fuente y drenaje, conexiones, separaciones,...):
1 mm
2
= 1000000 m
2
; 5 % ( 1 mm
2
) = 50000 m
2
Ctransistores = Cox . superficie activa = 0,7 . 50000 = 35 pF
P = C . V
2
. f = 875 pW. f ~ 1 nW . f
Para f = 1 MHz, P ~ 1 mW / MHz, es decir, supuesto que todos los transistores
contenidos en 1 mm
2
de silicio conmutasen, dicho milmetro cuadrado de silicio debera
disipar en forma de calor una potencia del orden de 1 mW/MHz; esta potencia no depende
de las dimensiones de la tecnologa sino del porcentaje de ocupacin: superficie
activa/superficie total (entendiendo por superficie activa la ocupada por las puertas de los
transistores).
Adems de la disipacin de potencia de tipo capacitivo (principalmente la capacidad
de entrada de los transistores MOS) existe otro efecto dinmico debido a que en la
conmutacin, durante un breve instante de tiempo, conducen ambos transistores PMOS y
NMOS, dando lugar a un estrecho pico de intensidad; tal efecto resulta despreciable
frente al anterior siempre que la conmutacin sea adecuadamente rpida (tiempos de
conmutacin inferiores a 1 ns).
Sin embargo, dichos picos de intensidad deben ser tenidos en cuenta en relacin
con el ruido, ya que al ser variaciones muy rpidas de intensidad generarn picos de
tensin sobre las lneas de alimentacin (por efecto inductivo).
206 El ect rni ca Di gi t al
El orden de magnitud del pico de intensidad en la conmutacin fue calculado en el
apartado anterior, por medio del rea de conduccin en el diagrama de Memelink; en
situacin de conmutacin (Vi = 2,1 V), la intensidad que circula por el inversor,
supuestos transistores de tamao mnimo (ff = W/L = 1,5), ser:
( ) .
2
i
p
1 V
4
3K
I =
Para la tecnologa : ( ) A 6 3 1 , .
V
A 40
2
=
2
1 2
4
3
= I
P = 180 W
Un inversor, cuya entrada se encuentre en situacin de alta independencia
(tri-estado) o con un valor de tensin intermedio (~Vconmutacin) genera una disipacin de
potencia del orden de 0,2 mW y el correspondiente calentamiento del circuito (un valor
unas cuatro mil veces superior al generado en la conmutacin de dicho inversor a 1MHz).
Por otra parte, existe una situacin peligrosa en que este pico de intensidad (debido a
la conduccin momentnea de ambos transistores en la conmutacin) puede ser estable
y originar un fuerte calentamiento (e incluso la destruccin) del circuito integrado: si una
entrada queda en alta impedancia tiende a adoptar un valor de tensin intermedia y
ambos transistores conducen.
Esta situacin puede darse en caso de utilizar buses (o adaptadores tri-estado)
internos que puedan quedar en alta impedancia, posibilidad que puede evitarse
conectando en cada lnea una resistencia de alto valor, que la referencie a 0 V (pull-
down), o bien un pequeo biestable (un par de inversores) que mantenga el ltimo valor
booleano establecido en ella (ver figura).
lnea tri-estado
biestable
que conserva
el ltimo valor recibido
Conjuntos de circuitos auxiliares de este tipo, cuya finalidad es que las lneas de
buses no se queden en estado de alta impedancia, se encuentran tambin disponibles en
los catlogos de circuitos integrados.
T7. El i nversor CMOS 207
T7. 4. Puert as CMOS
Haciendo uso del lgebra de conmutadores, las puertas lgicas CMOS se construyen
mediante dos planos duales de transistores: plano N y plano P; a cada entrada le
corresponden sendos transistores, uno en el plano N y otro en el plano P, conectados de
acuerdo con la dualidad serie-paralelo.
Plano
P
Plano
N
...
a
b
c
m
...
a
b
c
m
V
CC
y
las entradas se activan con valor 0:
paralelo <> operacin "y"
serie <> operacin "o"
+ una inversin global
serie <> operacin "y"
paralelo <> operacin "o"
+ una inversin global
porque transmiten el valor 0
las entradas se activan con valor 1:
a
a
Vc c
b
c
d e
c d
b e
y = (a+b) .c + d.e
- en su plano N, la configuracin de transistores corresponde (de acuerdo con el lgebra
de conmutadores) a la funcin (a + b).c + d.e , a la cual debe aadirse una negacin
global ya que dicho plano N transmite el valor 0; de forma que la funcin conformada
por el plano N de la figura anterior es: y = (a + b).c + d.e
- en cuanto al plano P, transmite el valor 1 pero sus transistores conducen cuando su
entrada es 0, es decir, corresponden a variables negadas (a, b, c, d, e ) y su
configuracin (de acuerdo con el lgebra de conmutadores) conforma la funcin
(a . b + c) . (d + e); de manera que la funcin conformada por el plano P de la
figura es la misma que la del plano N: y = (a . b + c) . (d + e) = (a + b).c + d.e
208 El ect rni ca Di gi t al
Caract er st i cas f si cas de l as puert as compl ement ari as
Permiten una amplia diversidad de puertas
El juego de conexiones serie-paralelo permite configurar funciones complejas y muy
diversas en una misma puerta, con la limitacin de que la expresin algebraica de la
funcin ha de presentar una negacin global sobre el conjunto de operaciones booleanas
(son puertas inversoras) y de que tal negacin sea la nica que aparezca: cada negacin
da lugar a una puerta adicional.
Los transistores P y N presentan diferente resistividad (debida a la menor movilidad
de los huecos): la conexin PMOS en paralelo, y sus correspondientes NMOS en serie,
contribuye a compensar la asimetra, mientras que la conexin de PMOS en serie acenta
dicha asimetra y su efecto resistivo; por ello, son preferibles las puertas "y-negada"
(Nand) a las puertas "o-negada" (Nor).
Las entradas son de tipo capacitivo
Los transistores presentan una capacidad de puerta, que es preciso cargar o descargar
en la conmutacin cuando cambia el valor booleano presente en la correspondiente
entrada; tal transitorio de carga o descarga:
- da lugar a unos tiempos de conmutacin que limitan su velocidad de trabajo;
- limita, asimismo, el fan-out de la puerta anterior, es decir, el nmero de entradas de
otras puertas que pueden conectarse sobre una salida (pues tal nmero condiciona la
velocidad de trabajo);
- requiere un aporte puntual de intensidad durante la conmutacin, que da lugar a un
consumo dinmico proporcional a la frecuencia de conmutaciones;
- genera ruido sobre las lneas de alimentacin como consecuencia del pulso de
intensidad necesario para la conmutacin.
La salida de cada puerta es resistiva
Cada plano de transistores, cuando conduce, presenta una resistencia relativa a la
zona lineal u hmica de sus transistores; tal resistencia depende de las dimensiones de los
transistores (disminuyendo en proporcin inversa a la anchura de estos) y afecta a:
- la intensidad suministrable por la puerta;
- los procesos de conmutacin (carga y descarga de las capacidades de entrada de las
puertas siguientes) y, en consecuencia, los tiempos de propagacin y la velocidad;
- la inmunidad frente al ruido en trminos de potencia.
T7. El i nversor CMOS 209
Se presentan varios transistores en serie
La presencia de transistores en serie supone un aumento de la resistencia de salida de
la puerta, que repercute, en concordancia con el apartado anterior, en la intensidad
suministrable por la puerta, en los tiempos de propagacin y la velocidad de trabajo y en
la inmunidad frente al ruido en trminos de potencia.
En cuanto a intensidades en la salida de puertas con ms de una entrada, ha de
tenerse en cuenta aquella situacin booleana en que conducen varios transistores en serie,
en cuyo caso la intensidad suministrable ha de dividirse, al menos, por el nmero de ellos
(ya que se suman sus resistencias equivalentes) o alternativamente ha de aumentarse en
igual proporcin la anchura de tales transistores.
Tambin el margen de ruido en potencia disminuye por la suma de resistencias de
transistores en serie: P =
(V)
2
/ Ro.
En los tres aspectos considerados (intensidad suministrable, tiempos de propagacin
e inmunidad en potencia) interviene la resistencia de salida: Ro = Ro (transistores en
serie). En una primera aproximacin, para n transistores se multiplica por n la resistencia
de salida correspondiente a uno slo de ellos; pero, adems, se produce un efecto de
desplazamiento de la tensin de fuente que aumenta progresivamente la resistencia de
los diversos transistores.
Consideremos el caso de transistores NMOS en serie, todos ellos con tensin de
entrada VG = V(1), solamente el inferior de ellos tiene su fuente conectada a 0 V y su
tensin VGS = V(1). Mientras que la tensin de salida sea Vo > 0 (lo cual ocurre siempre
que Io 0 y, en particular, durante la conmutacin), la tensin puerta-fuente de los dems
transistores es menor VGS < V(1) pues su terminal de fuente no est conectado a 0 V
directamente, sino a travs de los transistores que se encuentran debajo; por ello, dicha
tensin VGS disminuye al ascender en la serie y la resistencia efectiva que presenta cada
transistor es mayor cuanto ms alejado se encuentra de la conexin a 0 V.
Por ello, puertas con muchas entradas (muchos transistores en serie) presentan malas
caractersticas funcionales: es altamente aconsejable limitar el nmero de entradas de las
puertas CMOS, de forma que no aparezcan ms de 6 transistores en serie.
El consumo esttico es siempre nulo
Para cada valor booleano en una de las entradas, uno de sus transistores se encontrar
en corte y el otro conducir: todo camino de conduccin entre los dos terminales de
alimentacin (VCC y 0 V) incluye siempre un transistor en corte, por lo cual el consumo
en reposo es nulo.
En cambio, s que hay consumo dinmico originado por la carga o descaga de las
diversas capacidades propias de los transistores en la conmutacin y dicho consumo es
proporcional a la frecuencia de conmutacin.
210 El ect rni ca Di gi t al
Tiempos de conmutacin
Al pasar de un inversor a una puerta booleana de dos o ms entradas, los tiempos de
propagacin aumentan en aquellos procesos (carga o descarga) en que la conduccin se
produce a travs de varios transistores en serie; es un efecto de suma de sus resistencias
(se suma la longitud de sus transistores).
Para la tecnologa :
NAND de 2 entradas: t
= = = = =
N
P
P
N
electrones
huecos
N N
P P
electrones
huecos
N
P
P
N
ff
ff
L W
L W
A
A
A
A
donde ' = huecos / electrones, relacin entre las movilidades de huecos (transistor
PMOS) y electrones (NMOS), es del orden de 1/3 y = (W1/L1) / (W2/L2) = ff1
/ ff2 es
la relacin de geometras entre ambos transistores.
Para cualquier tensin de entrada Vi la tensin de salida Vo es la que corresponde a
la siguiente relacin entre reas en el diagrama de Memelink: AN = '..AP.
Tensi n de conmut aci n
La tensin de conmutacin corresponde a aquella tensin de entrada Vi en la que las
reas de conduccin de ambos transistores en el diagrama de Memelink son triangulares:
en tal situacin, segn se aprecia en la figura, la tensin de salida Vo no es un valor nico,
sino un amplio intervalo de tensiones; dicho intervalo corresponde, precisamente, a la
conmutacin de la salida.
0
i
Vo
canal N
canal P
V
CC
V
CC
V
TO,PMOS
V
TO,NMOS
V
192 El ect rni ca Di gi t al
La tensin de entrada Vi a la cual se produce la conmutacin es aquella para la cual las
reas de los dos tringulos rectngulos e isosceles (formados por Vi con VTO + V)
cumplen la relacin anterior, ya que para dicha tensin de entrada existe todo un intervalo
de tensiones de salida posibles, intervalo que corresponde al salto brusco de la
conmutacin.
( )
( )
V V
2
1
V V V
2
1
P N
2
NMOS TO, i N
2
i PMOS TO, CC P
. . ' A A
A
A
=
=
=
Sea VuP = |VTO,PMOS| el valor absoluto de la tensin umbral del transistor PMOS
(dicha tensin es negativa), VuN = VTO,NMOS la tensin umbral del transistor NMOS,
Vconm la tensin de conmutacin del inversor y '. k' = .
( )
( )
( ) ( )
( )
k' 1
'. k
k'.
. . '
+
+
= =
=
=
=
uP CC uN
conm conm uP CC uN conm
P N
2
uN conm N
2
conm uP CC P
V V V
V V V V V V
V V
2
1
V V V
2
1
A A
A
A
La tensin de conmutacin del inversor puede calcularse mediante la expresin
( )
k' 1
'. k
+
+
=
uP CC uN
conm
V V V
V donde '. k' = .
Si las tensiones umbrales son iguales en valor absoluto (VuN = VuP) y los transistores
son iguales en dimensiones (relacin de geometras = 1), la funcin de transferencia no
es simtrica (Vconm VCC/2) sino que la conmutacin est desplazada hacia valores
inferiores de Vi, debido a la menor movilidad de los huecos que repercute en una menor
conductividad del transistor PMOS.
En la conmutacin, la salida puede adoptar cualquier tensin dentro del intervalo
sealado en la figura que viene delimitado por los vrtices de ambos tringulos. Teniendo
en cuenta que la recta VTO + V tiene una pendiente de 45, los dos catetos de dichos
tringulos son iguales y su valor es respectivamente:
NMOS: Vconm VuN; Vo(vrtice del tringulo) = Vconm VuN
PMOS: VCC VuP Vconm;
Vo(vrtice del tringulo) = VCC (VCC VuP Vconm) = Vconm + VuP
Es decir, la conmutacin se produce con una variacin vertical de la tensin de salida
entre Vconm VuN y Vconm + VuP.
T7. El i nversor CMOS 193
La intensidad que circula por el inversor en la situacin de conmutacin ser:
( )
2
uN conm p p conm
V V
2
1
L
W
. K
L
W
K = = I = . . . .
N N
A A .
Para la tecnologa :
VCC = 5 V; VuN = 1 V; VuP = 1 V;
electrones = 600 cm
2
/Vs; huecos = 200 cm
2
/Vs; ' = 1/3;
supuestos ambos transistores iguales en dimensiones,
por ejemplo, ambos de tamao mnimo: ffP/ffN = = 1
0,58 1/3 '. k' = =
la tensin de conmutacin ser:
V ,1 2
) 1 5 .( 58 , 0 1
) V V '.( k V
uP CC uN
=
+
+
=
+
+
0,58 1 k' 1
= V
conm
La tensin de salida conmutar entre los siguientes valores:
NMOS: Vo(vrtice del tringulo) = Vconm VuN = 1,1 V
PMOS: Vo(vrtice del tringulo) = Vconm + VuP = 3,1 V
y la intensidad en dicha situacin es:
p (NMOS) ~ 40 A/V
2
; W / L = 1,5
( ) ( ) A 6 3 V 1 , . 5 , 0 . 5 , 1 .
V
A
4 .
2
2
= =
2 2
uN conm p conm
1 2 0 V V
2
1
L
W
. K = I .
La funcin de transferencia no es simtrica (Vconm = 2,1 V 2,5 V) sino que la
conmutacin est desplazada hacia valores inferiores de Vi, debido a la menor movilidad
de los huecos que repercute en una menor conductividad del transistor PMOS.
Es posible conseguir una funcin de transferencia simtrica, compensando, a travs
de , la relacin entre las movilidades de los dos tansistores: en este caso en que ambas
tensiones umbrales son iguales y ' = 1/3, para = 3 resulta 1 '. k' = = , AP
= AN
y Vi = 2,5 V.
Para ello es necesario hacer el transistor PMOS de anchura triple, de manera que
ocupar mayor superficie de integracin y, adems, aumentarn los tiempos de
propagacin de la puerta anterior: los transistores PMOS dejan de ser mnimos y
aumentan sus dimensiones y su capacidad de puerta. No es, por ello, una buena solucin
y, en la prctica, no suele hacerse este equilibrado de los transistores PMOS.
194 El ect rni ca Di gi t al
Habida cuenta de que la precisin del proceso de fabricacin es limitada, cabe
preguntarse en qu medida una desviacin en las dimensiones de los transistores afecta a
la tensin de conmutacin.
Supongamos que, por alguna razn, se modifican las dimensiones de los transistores y
no resultan exactamente iguales; expresando la tensin de conmutacin Vconm en funcin
de la relacin de geometras :
( ) ( )
+
+
=
+
+
=
'. 1
. '.
k' 1
'. k
uP CC uN uP CC uN
conm
V V V
V V V
V
Para la tecnologa :
( )
+
+
=
+
+
=
+
+
0,58. 1 0,58. 1
V V V
= V
uP CC uN
conm
. . 3 , 2 1
) 1 5 .( . . 58 , 0 1
'. 1
. '.
- si en lugar de 1 pasa a valor 2 (modificacin muy amplia, del 100 %, que equivale a
un factor de forma del transistor PMOS doble) entonces Vi = 2,34 V (desviacin en la
tensin de conmutacin de 0,24 V < 12 %);
- en cambio, si pasa a 0,5 (factor de forma del NMOS doble), Vi = 1,86 (desviacin
anloga a la anterior, 0,24 V < 12 %).
Es decir, el efecto de una desviacin en las dimensiones de los transistores sobre la
tensin de conmutacin del inversor es muy pequeo.
Funci n de t ransf erenci a
El diagrama de Memelink del inversor permite obtener la curva de transferencia
(Vo - Vi) punto a punto: dado un valor de Vi, calcular el correspondiente de Vo;
0
V
CC
V
CC
tensin
de puerta
de ambos
transistores
i
V : tensin de drenaje de ambos transistores
o
T canal N
2
T canal P
1
V
La relacin entre la tensin de salida y la de entrada se obtiene a partir de la igualdad
de intensidades en ambos transistores, AN = '..AP, expresando el rea de conduccin de
cada transistor en funcin de las tensiones de entrada Vi y de salida Vo.
Puede efectuarse un anlisis por tramos, obteniendo las expresiones algebraicas que
relacionan Vo con Vi en cada tramo.
T7. El i nversor CMOS 195
Los tramos diferenciados son los siguientes:
I Vi < VTO,NMOS el transistor N no conduce y Vo = VCC
II Vi < Vconmutacin el rea de conduccin del transistor N es triangular
y, en cambio, el rea correspondiente al P es trapezoidal
III Vi = Vconmutacin el rea de conduccin del transistor N es triangular
y el rea correspondiente al P tambin es triangular
IV Vi > Vconmutacin el rea de conduccin del transistor N es trapezoidal
y, en cambio, el rea correspondiente al P es triangular
V Vi > VCC - |VTO,PMOS| el transistor P no conduce y Vo = 0
Para la tecnologa :
I Vi < 1 V V
o
= 5 V
II 1 V < Vi < 2,1 V V
o
= V
i
+ 1 + 13 - 2V
i
- 2V
i
2
III Vi = 2,1 V V
o
= [1,1 ; 3,1]
IV 2,1 V > Vi < 4 V V
o
= V
i
- 1 - (2V
i
2
+ 2V
i
-13) / 3
V Vi > 4 V V
o
= 0 V
En conmutacin, Vconm = 2,1 V, las expresiones de los tramos II y IV proporcionan
los valores de 3,1 V y 1,1 V entre los cuales conmuta el inversor:
Vi =Vconm V
o
= [3,1 ; 1,1] V
Tambin puede obtenerse la funcin de transferencia mediante simulacin SPICE:
las siguientes grficas muestran, respectivamente, la funcin de transferencia Vo - Vi y el
consumo de intensidad de un inversor CMOS de la tecnologa :
L = 1 m, W = 1,5 m, |VTO, = 1 V, p,NMOS = 40 A/V
2
y p,PMOS = 15 A/V
2
.
0V 1V 2V 3V 4V 5V
V(2)
0V
2.0V
4.0V
5.0V
0V 1V 2V 3V 4V 5V
I(VCC)
-40uA
-30uA
-20uA
-10uA
0A
Funcin de transferencia Vo Vi CMOS Consumo de intensidad ICC del inversor
196 El ect rni ca Di gi t al
En la anterior funcin de transferencia se aprecia que, en relacin con el ruido
(para determinar mayores mrgenes respecto al ruido), es razonable extender la tensin de
entrada correspondiente al 0 hasta 1,5 V (para dicho intervalo, Vo(1) > 4,8 V)
y la tensin de entrada para valor 1 puede tomarse desde 2,5 V (intervalo para el cual
Vo(0) < 0,3 V):
para Vi < 1,5 V, Vo > 4,8 V y para Vi > 2,5 V, Vo < 0,3 V.
Vo
2,5 V
1,5 V
0,3 V
4,8 V
5 V
Vi
0 V
2,3
1,2
Mrgenes de ruido en tensin:
V(0) = Vi,mx(0) V
o,mx(0) = 1,5 - 0,3 = 1,2 V
V(1) = V
o,mn
(1) V
i,mn
(1) = 4,8 2,5 = 2,3 V
Es mayor el margen correspondiente al 1 a causa del
desplazamiento de la funcin de transferencia hacia tensiones
bajas, debido a la menor movilidad de los huecos.
Margen de ruido en potencia: P =
(V)
2
/ Ro. El margen de ruido en potencia (o
sea, en energa por unidad de tiempo) es ms significativo que el margen en tensin, ya
que el ruido acta como energa perturbativa sobre el circuito digital.
Resi st enci a de sal i da
La resistencia de salida es un parmetro indicativo del comportamiento de las puertas
lgicas (una referencia de calidad de las mismas), en cuanto a intensidad disponible en la
salida, inmunidad frente al ruido y tiempos de propagacin, pues afecta fuertemente a
estos tres aspectos: en principio, cuanto menor sea la resistencia de salida mayores sern
la intensidad suministrable por la misma, el margen frente al ruido y la velocidad de
trabajo.
Tambin interesa resistencia de salida baja en relacin con el acoplo en tensin, pero
dicho acoplo ya viene garantizado por el altsimo valor de la resistencia de entrada (que
es cuasi-infinita).
Las situaciones booleanas corresponden a un transistor en zona lineal: para salida 0
el transistor NMOS se encontrar conduciendo en su zona lineal, mientras que para salida
1 ser el transistor PMOS el que se encuentre en zona hmica; de forma que Ro(0) y
Ro(1) corresponden, respectivamente, a las resistencias que presentan los transistores
NMOS y PMOS en zona lineal.
T7. El i nversor CMOS 197
Valores de las resistencias de salida (tecnologa ):
Para transistores de tamao mnimo (W=1,5L; ff=1,5) con tensin umbral de 1 V y
tensin de puerta de 5 V los valores de la resistencia equivalente en zona lineal sern:
NMOS PMOS
p 40 A/V
2
p 15 A/V
2
) V V .( L / W . K
1
TO G p
= R
eq
Req = 1 / (40.10
-6
.1,5.(5-1)) 4 k Req = 1 / (15.10
-6
.1,5.(5-1)) 11 k
De manera que las resistencias de salida en situacin booleana sern:
Ro(0) ~ 4 K Ro(1) ~ 11 K
Los valores de las resistencias de salida de los inversores de tamao mnimo son del
orden de varios K, 10
3
ohmios; no son valores pequeos, pero son adecuados para el
comportamiento de las puertas booleanas en el interior del circuito integrado. Tngase en
cuenta que las capacidades de entrada de dichas puertas son pequeas (del orden del
fentofaradio, 10
-15
F) y, por ello, tambin lo son las intensidades que se requieren y las
constantes de tiempo que se generan (10
3
.10
-15
ps); asimismo, habida cuenta de que las
dimensiones de las conexiones son muy reducidas, el efecto del ruido es muy pequeo.
En los terminales de salida de un circuito integrado interesan resistencias de salida
inferiores a 100 ohmios (pues en este caso, se requieren intensidades del orden de 10 mA,
las capacidades de carga son del orden de 10 pF y las longitudes de las conexiones van en
centmetros); en cambio, en las puertas interiores son adecuadas resistencias del orden de
10 K (por las razones antedichas: intensidades del orden de 0,1 mA, capacidades de 1 fF
y longitud de las conexiones en micras).
En todo caso, puede disminuirse el valor de la resistencia de salida aumentando en
igual medida la anchura W del correspondiente transistor, el PMOS para Ro(1) y el
NMOS para Ro(0); esto es lo que se hace, precisamente, en los adaptadores de las salidas
del circuito integrado.
La intensidad suministrable por el inversor, en cada uno de sus dos estados, depende
de la cada de tensin que admitamos en la salida: Io = Vo / Ro. Esta intensidad es
relativamente pequea y, en ocasiones, no es suficiente la correspondiente a transistores
de tamao mnimo. Por ejemplo, en los citados adaptadores de las salidas, que precisan
de una capacidad de intensidad (hacia el exterior del circuito integrado) del orden de 10
mA. En tales casos, basta aumentar adecuadamente el factor de forma de los transistores
(ff = W / L), es decir, es necesario hacer W >> L.
198 El ect rni ca Di gi t al
Para la tecnologa :
NMOS PMOS
Ro(0) ~ 4 K Ro(1) ~ 11 K
Intensidad suministrable por el inversor: Io = Vo / Ro
Admitiendo V(0) = 0,2 V y V(1) = 0,6 V que son valores aceptables (cuya
diferencia va en relacin a la asimetra de la funcin de transferencia y a la diferencia de
mrgenes de ruido):
Io(0) ~ 0,2 / 4K 50 A Io(1) ~ 0,6 / 11K 50 A.
Haciendo W > L se consiguen mayores intensidades de salida:
para W = 15L Io 0,5 mA
para W = 50L Io 1,5 mA
para W = 300L Io 10 mA.
Margen de ruido en potencia del inversor con transistores de tamao mnimo:
P (0) ~ 1,2
2
/ 4 K 0,36 mW P (1) ~ 2,3
2
/ 11 K 0,48 mW.
El ruido acta efectivamente como potencia: energa perturbativa por unidad de
tiempo. En los terminales de un circuito integrado se requieren mrgenes de ruido
superiores de 20 mW para ambientes normales (viviendas o lugares pblicos) y a
100 mW en ambientes industriales; en el interior de los circuitos integrados (en donde
la captacin y efecto del ruido es muy inferior, ya que las conexiones son
milimtricas), son suficientes mrgenes del orden de 0,1 mW.
T7. 2. Ti empo de propagaci n y mej ora del mi smo
T7.2.1. Tiempo de conmutacin de una puerta CMOS
La salida de una puerta booleana se encontrar conectada a la entrada de otra u otras
puertas (u otros componentes del circuito global), cuyo efecto equivalente es el de una
capacidad que ha de cargarse y descargarse en la conmutacin, originando unos tiempos
de retraso hasta que el proceso de carga o descarga alcanza los valores de tensin
apropiados para el 0 y 1 booleanos.
T7. El i nversor CMOS 199
V
V
V -V
V = 0
o
o
o
G
V
CC
uP
Proceso de carga a travs de un transmisor PMOS: conmutacin de la salida de 0 a 1
Estudiemos el proceso de carga, expresando los tiempos de retraso en funcin de la
intensidad con canal saturado ISAT = I y de la capacidad de carga CL = C que soporta:
I = ISAT = . Acanal saturado, siendo A el rea del tringulo de conduccin en el
diagrama de Memelink;
En el proceso de carga, existen dos tiempos diferenciados:
t
1
: Vo de 0 a VuP = |VTO,PMOS| canal saturado intensidad constante I
1
= I,
Q = I. t = C.V V = VuP t
1
= C.VuP/I.
t
2
: Vo de VuP a VCC canal no saturado I2 < I y decrece al aumentar Vo,
dQ = I(t) dt = C dV
el rea de conduccin corresponde ahora a la diferencia entre dos tringulos: el
propio de la saturacin de canal del transistor y el que determina la tensin de salida:
A = Acanal saturado - 1/2 . (V - VuP)
2
I(t) = I - . (V - VuP)
2
/ 2
expresando en funcion de I: I = ISAT = . Acanal saturado = .1/2.(VCC - VuP)
2
;
= 2. / (VCC - VuP)
2
I(t) = I - .(V - VuP)
2
/ (VCC - VuP)
2
I(t) dt = C dV ( I - .(V - VuP)
2
/ (VCC - VuP)
2
) dt = C dV
dV C dt
I.
=
2
uP CC
2
uP
2
uP CC
) V - (V
) V - (V ) V - (V . I
2
uP
2
uP CC
2
uP CC
) V - (V ) V - (V ) V - C.(V
I
dV
dt
=
200 El ect rni ca Di gi t al
Integrando ambos miembros de la ecuacin diferencial anterior:
) V - (V
V
) V - (V
) V - C.(V
I
uP CC
uP
uP CC
2
uP CC
) (V 1
t
= tgh arc
) V - (V
V
) V - C.(V
I
uP CC
uP
uP CC
) (V
t
= tgh arc
t V(t)
C ). V - (V
I
). V - (V V
uP CC
uP CC uP
tgh + =
La funcin tangente hiperblica tgh(x) es fuertemente creciente (del tipo 1 - e
-x
, con
pendiente an mayor): tiende a 1 asintticamente y alcanza el valor 0.76 para x = 1.
Para dicho valor (x = 1), la salida habr recorrido, aproximadamente, el 80% dela tensin
de alimentacin:
CC uP CC uP CC uP 0
V 0,8 0,24.V 0,76.V 76 , 0 ). V - (V V V + = + =
(habida cuenta de que VuP se encontrar, generalmente, entre 0,2.VCC y 0,4.VCC ).
La conmutacin de la salida hacia VCC alcanzar 0,8VCC en un tiempo aproximado:
1
C ). V - (V
I
uP CC
=
2
t
I
C ). V - (V
uP CC
=
2
t
I
C . V
I
C ). V - (V
I
C . V
t t
CC uP CC uP
2 1
= + = + = t t
pLH
= t
1
+ t
2
= VCC.C / I
donde I es la intensidad de canal saturado del transistor PMOS.
La determinacin del tiempo de descarga a travs del transistor NMOS hasta
disminuir a 0,2VCC es anloga y conduce a la misma expresin t
pHL
= VCC.C / I:
t
pLH
= VCC.C / I(PMOS) t
pHL
= VCC.C / I(NMOS).
La intensidad de canal saturado del transistor PMOS I(PMOS) suele ser menor que
la del NMOS I(NMOS) como consecuencia de la menor movilidad de los huecos que
conforman el canal del transistor PMOS y, consiguientemente, t
pLH
> t
pHL
: el tiempo de
subida es superior al de bajada. Esta desigualdad entre ambos tiempos de propagacin
podra evitarse dimensionando adecuadamente el transistor PMOS, pero implicara mayor
rea de integracin y, a la vez, mayor capacidad de carga de cada entrada lo cual
redundara en empeorar los tiempos de conmutacin de la puerta anterior. Por ello, no
interesa dimensionar las puertas lgicas para conseguir su simetra funcional.
Las expresiones de los tiempos de propagacin parecen indicar que dichos tiempos
disminuyen al hacerlo la tensin de alimentacin VCC, pero sucede al revs ya que la
intensidad de canal saturado tambin depende de la tensin de alimentacin y disminuye
fuertemente con ella: ISAT = . Acanal saturado = Kp. W/L . 1/2 . (VCC - VuP)
2
.
T7. El i nversor CMOS 201
Para la tecnologa :
Para transistores de tamao mnimo (L = 1 m, W =1,5 m) el valor de la capacidad
de puerta ser: CG = Cox
. W . L = 0,7 fF / m
2
. 1,5
m . 1
m 1 fF
y como cada entrada se encuentra conectada a dos transistores, NMOS y PMOS, la
capacidad de entrada ser: Ci 2 fF .
Para VCC = 5 V y VTO = 1 V: I(P) = Isat (canal P) 0,2 mA
I(N) = Isat (canal N) 0,5 mA
y con un fan-out = 1 (una sola entrada conectada a la salida de un inversor mnimo):
t
pLH
5 V. 2 fF / 0,2 mA ~ 0,05 ns t
pHL
5 V. 2 fF / 0,5 mA ~ 0,02 ns
Nos encontramos con tiempos de conmutacin por debajo del nanosegundo, que
dependen linealmente de la capacidad de carga y, por ello, del fan-out y de las
dimensiones de los transistores:
- al aumentar el fan-out, los tiempos de conmutacin crecen en la misma proporcin
- al disminuir las dimensiones de la tecnologa los tiempos de conmutacin se reducen
cuadrticamente (Ci disminuye con L y con W).
Para una tecnologa de 0,5 micras: Lmn = 0,5 m, W = 0,75 m, Ci ~ 0,5 fF
con la misma alimentacin VCC = 5 V, tensin umbral VTO = 1 V y fan-out = 1:
t
pLH
5 V . 0,5 fF / 0,2 mA ~ 0,015 ns t
pHL
5 V . 0,5 fF / 0,5 mA ~ 0,005 ns
La siguiente grfica muestra la conmutacin de un inversor con un fan-out de 1, es
decir, a su salida se encuentra conectado otro inversor anlogo; la simulacin SPICE se
ha efectuado con los datos de la tecnologa y transistores de tamao mnimo:
L = 1 m, W = 1,5 m, |VTO, = 1 V, p,NMOS = 40 A/V
2
y p,PMOS = 15 A/V
2
.
Time
0s 50ps 100ps 150ps 200ps 250ps 300ps 350ps 400ps 450ps 500ps
V(2)
0V
1.0V
2.0V
3.0V
4.0V
5.0V
Onda de conmutacin de un inversor: V(2) = Vo
Los tiempos medidos en esta grfica son: t
PLH
0,071 ns y t
pHL
0,026 ns .
202 El ect rni ca Di gi t al
El retardo que introduce un inversor es algo superior al tiempo de conmutacin
calculado en este apartado: dicho tiempo de conmutacin ha sido determinado en relacin
con la capacidad de carga CL (fan-out) y, en la prctica, influyen tambin otros efectos
capacitivos internos del propio inversor.
Sin ser exactos, las formulas y clculos anteriores ofrecen una buena estimacin del
orden de magnitud y una buena aproximacin al valor real de los tiempos de
propagacin. La simulacin SPICE de los mismos puede proporcionar an mayor
precisin.
Adems, habr que tener en cuenta que cada conexin entre la salida de una puerta y
la entrada de la siguiente introduce una lnea conductora con sendos efectos resistivo y
capacitivo y, con ello, un nuevo sumando al retardo de propagacin de las seales; en
tecnologas submicrnicas no es extrao que el retardo introducido por las lneas de
conexin sea superior al tiempo de propagacin de la propia puerta booleana.
Por otra parte, los tiempos de conmutacin dependen fuertemente de la temperatura,
ya que al aumentar sta disminuye fuertemente la movilidad de los portadores (aumentan
sus choques con los ncleos de la red cristalina) y, en consecuencia, se reduce Kp y la
intensidad de saturacin de los transistores. De ah, el alto inters de evitar el
calentamiento de los circuitos integrados, disipando adecuadamente el calor generado por
la potencia consumida en ellos, si se desea aprovechar la velocidad mxima de trabajo.
Equilibrado de transistores (tecnologa ):
Si equilibramos ambos transistores para que su transconductania Kp sea la misma:
WPMOS = 3 . Wmn
las intensidades de canal saturado se igualan: I(P) = I(N) 0,5 mA
la capacidad de entrada se duplica:
Ci = Cox . (WNMOS.LNMOS + WPMOS.LPMOS) = Cox . (4.Wmn.Lmn) 4 fF.
y tambin se igualan los tiempos de propagacin:
t
pLH
5 V. 4 fF / 0,5 mA ~ 0,04 ns t
pHL
5 V. 4 fF / 0,5 mA ~ 0,04 ns.
Pero, calculando el retardo que introducen dos inversores seguidos, resultara:
t
2 inversores
= t
pLH
+ t
pHL
~ 0,08 ns
un tiempo de propagacin superior al que resulta con dos inversores de tamao mnimo:
t
2 inversores mnimos
= t
pLH
+ t
pHL
~ 0,05 + 0,02 ns = 0,07 ns.
O sea que, equilibrando el transistor PMOS de forma que conduzca igual que el
NMOS y sus tiempos de propagacin sean iguales, ocupamos mayor rea de silicio y la
velocidad de trabajo (considerada en conjuntos de puertas sucesivas) resulta inferior: en
principio, no es una buena solucin y, en la prctica, no suele hacerse.
T7. El i nversor CMOS 203
Al conectar varios inversores seguidos, el tiempo de propagacin del conjunto es
mayor que los tiempos de conmutacin individuales pero es inferior a la suma de ellos, ya
que existe solapamiento entre ellos. Es decir, los tiempos de conmutacin no son
linealmente acumulativos ya que cada puerta inicia su conmutacin antes de que la
anterior complete la suya.
Para facilitar la suma de tiempos, cada tiempo de propagacin suele medirse por el
retraso entre el punto medio de la conmutacin (tensin Vcc/2) de la onda de entrada y el
punto medio de la conmutacin de la seal de salida.
t
pHL
t
pLH
V
i
V
o
T7.2.2. Mejora de los tiempos de propagacin
En ocasiones las capacidades de carga son altas; por ejemplo, en los adaptadores de
las salidas de los circuitos integrados (que han de ser capaces de soportar su conexin a
cargas equivalentes de decenas de picofaradios) o en puertas que deban soportar a su
salida un fan-out alto (por ejemplo, las que transmiten a los diversos biestables la seal
de reloj) o largas longitudes de polisilicio. En tales casos, los tiempos de propagacin se
elevan en demasa y es preciso reducirlos mediante adaptadores de intensidad.
Para la tecnologa :
Para una capacidad de carga de 50 pF (25.000 veces superior a Ci -fan-out 1-):
t
pLH
= VCC.C / I(P) 5 V . 50 pF / 0,2 mA 1,5 s
t
pHL
= VCC.C / I(N) 5 V . 50 pF / 0,5 mA 0,5 s
tiempos que resultan relativamente altos y limitan la velocidad por debajo del MHz.
Para disminuir los tiempos de propagacin causados por altas capacidades de carga
o, lo que es lo mismo, por la necesidad de intensidades de salida altas, se utilizan
esquemas de amplificacin en cascada con inversores cuya anchura de transistor es
progresivamente creciente.
Ejemplo desarrollado con la tecnologa :
Supongamos una carga de 2 pF que resulta ser unas 1.000 mayor que Ci (capacidad
de carga que corresponde a fan-out 1):
t
pLH
= VCC.C / I(P) 5 V . 2 pF / 0,2 mA 50 ns
t
pHL
= VCC.C / I(N) 5 V . 2 pF / 0,5 mA 20 ns
204 El ect rni ca Di gi t al
Aadiendo un par de inversores cuya anchura de transistores sea, en cada uno de
ellos, 10 veces la del anterior:
2 pF
inversor
"mnimo"
Isat = I
Ci = 2 fF
inversor
con transistores
10 veces
ms anchos
Isat = 10 I
Ci = 20 fF
inversor
con transistores
100 veces
ms anchos
Isat = 100 I
Ci = 200 fF
C = 2000 fF
L
Como puede apreciarse en la figura, en cada inversor se produce un salto entre su
capacidad de carga y su capacidad de entrada de 10; en total, un salto de 1000 que es la
relacin existente entre los 2 pF y Ci (capacidad de entrada del inversor mnimo).
t1pLH
5 . 20 / 0,2 0,5 ns t2pLH
5 . 200 / 2 0,5 ns t3pLH
5 . 2000 / 20 0,5 ns
t1pHL
5 . 20 / 0,5 0,2 ns t2pHL
5 . 200 / 5 0,2 ns t3pHL
5 . 2000 / 50 0,2 ns
t
pLH
t1pLH
+ t2pHL
+ t3pLH
1,2 ns t
pHL
t1pHL
+ t2pLH
+ t3pHL
0,9 ns
Ambos tiempos son muy inferiores a los que presenta el primer inversor en solitario:
50 ns y 20 ns, respectivamente.
Este esquema (en que se incluyen parejas de inversores en escalera, es decir, con
anchura de transistores creciente) resulta sumamente til para configurar adaptadores de
intensidad (buffers), tanto para los terminales de salida del circuito integrado como para
aquellas conexiones internas que han de soportar un alto fan-out o alta carga capacitiva y,
por tanto, han de proporcionar alta intensidad.
Un adaptador de intensidad puede incluir ms de una pareja de inversores en
escalera (siempre un nmero par para que no se produzca una inversin suplementaria),
de forma que la relacin de intensidad entre el ltimo de ellos y la puerta mnima
inicial se distribuya en mltiples saltos pequeos.
C
Isat = I
L
L
puerta previa
de tamao
"mnimo"
Isat = I
Ci
1
n inversores
siendo n un n par
T7. El i nversor CMOS 205
Se puede calcular el nmero ptimo de inversores para conseguir el menor tiempo de
propagacin global:
- sea K el cociente entre la capacidad de carga que debe soportar el conjunto y la
correspondiente a una entrada mnima (primera puerta del conjunto): K = CL / Ci
- si el necesario aumento del fan-out se distribuye de forma homognea siendo el
coeficiente incremental Ci+1 = .Ci, ser necesario que las anchuras W de transistores
de dos inversores sucesivos se incrementen en dicho factor : Wi+1 = .Wi
- la relacin de anchuras repercute en proporcin directa en la relacin entre
capacidades de entrada Ci y entre intensidades de saturacin Isat; se verificar que
Wi+1 / Wi = Ci+1 / Ci = Isat,i+1 / Isat,i =
- el factor incremental global K corresponde a n+1 incrementos sucesivos:
K = CL / Cin
=
n+1
, = K
n+1
y el incremento en intensidad ser: IL / I1
=
n
Los tiempos de propagacin de los inversores sern iguales, ya que la relacin entre
intensidad de saturacin y capacidad de carga es constante, y dichos tiempos sern
proporcionales a ya que dicho factor representa la carga relativa a su tamao que cada
inversor soporta. Por tanto, el tiempo de propagacin del conjunto ser proporcional a
(n+1). y la situacin de tiempo mnimo de propagacin corresponde a:
| |
1 n
K ; 0
dn
1). (n d
+
= =
+
0
1) (n
1
.lnK. K 1). (n K 0
dn
) K 1) d((n
2
1 n 1 n
1 n
=
(
(
+
+ + =
+
+ +
+
;
2,7 e K
lnK 1 n
1 n
0
1) (n
1
lnK. 1
= = =
= = + =
+
+
+
; e K ; ;
1 n
La adaptacin ptima de la escalera de inversores, para conseguir tiempos
mnimos de propagacin, se consigue cuando el nmero de inversores es n + 1 = lnK y,
en este caso, el coeficiente incremental coincide con el nmero e:
Wi+1 = 2,7.Wi Ci+1 = 2,7.Ci Isat,i+1 = 2,7. Isat,i
El tiempo de propagacin de cada inversor ser = e = 2,7 veces el correspondiente
a un inversor mnimo conectado a otro inversor anlogo.
206 El ect rni ca Di gi t al
En el ejemplo desarrollado con la tecnologa :
CL = 2 pF; Cin = 2 fF: K = 1000; n+1 = ln(1000) 7
El mnimo tiempo de propagacin se obtiene con 6 inversores intermedios, cuya
anchura de transistores sea, en cada uno de ellos, 2,7 veces mayor que en el anterior.
Los tiempos de propagacin de cada uno de los inversores son los siguientes:
t
pLH
= 2,7.5 V.2 fF / 0,2 mA 0,15 ns t
pHL
= 2,7.5 V.2 fF / 0,5 mA 0,05 ns
De forma que, los tiempos de propagacin para el conjunto total sern:
t
pLH
4t
pLH
+ 3t
pHL
0,75 ns t
pHL
4t
pHL
+ 3t
pLH
0,65 ns.
Tales son los tiempos mnimos de propagacin que pueden conseguirse, claramente
inferiores a los que presentara el primer inversor actuando en solitario sobre la capacidad
de carga 2 pF (50 ns y 20 ns, respectivamente) y solamente un poco inferiores a los que
se obtienen con una sola pareja de inversores en escalera (1,2 ns y 0,9 ns).
Como puede apreciarse aadir una primera pareja de inversores (adecuadamente
dimensionados) tiene un gran efecto respecto a la reduccin de tiempos; cuando se
aaden ms parejas (ajustando en cada caso su anchura W), la inclusin de cada una de
ellas tiene un efecto menor que la anterior. Por ello, debe valorarse la reduccin de
tiempos que se desea conseguir en relacin con el rea de silicio que se va a necesitar.
T7. 3. Di si paci n de pot enci a
La potencia disipada por el inversor en situacin esttica es prcticamente nula:
no existe ninguna lnea de conduccin directa entre alimentaciones (uno de los dos
transistores de cada entrada se encuentra en corte). Ahora bien, en cada transistor existen
uniones PN (difusin-substrato) polarizadas inversamente que conducen una minscula
intensidad inversa, de orden de magnitud del picoamperio (mA / 10
6
).
Ahora bien, al conmutar el inversor han de cargarse o descargarse las capacidades
propias de sus transistores, en particular, su capacidad de puerta, lo cual determina un
consumo dinmico proporcional a la frecuencia de conmutacin:
- energa necesaria para cargar o descargar un condensador: 1/2 C.V
2
- potencia disipada al cargarlo y descargarlo con una onda de frecuencia f
(en cada perodo hay dos conmutaciones, habr que contabilizar una carga y una
descarga): (1/2 C.V
2
) . 2f = C . V
2
. f
Esta potencia (energa por unidad de tiempo) representa un consumo de intensidad
desde la alimentacin y una disipacin de calor en el propio circuito. Son dos aspectos
complementarios, relativos al consumo de intensidad, que requieren la correspondiente
atencin en el diseo y utilizacin del circuito integrado: una fuente de alimentacin con
suficiente capacidad de suministro de corriente y una disipacin de calor adecuada.
Teniendo en cuenta, adems, que los tiempos de propagacin aumentan con la
temperatura y, en consecuencia, disminuye la velocidad de trabajo.
T7. El i nversor CMOS 207
Conforme a la anterior expresin, la potencia consumida y disipada depende de:
- la tecnologa, cuyas dimensiones determinan la capacidad C; dicha capacidad
equivalente de una puerta a efectos de consumo de intensidad tiene varios
componentes, entre los cuales predomina la capacidad de entrada (las otras
capacidades internas de los transistores son de valores muy inferiores) que es
proporcional a la superficie de las zonas de puerta, es decir, al producto L.W y
disminuye cuadrticamente al disminuir L (W = 1,5L);
- la tensin de alimentacin, que tambin afecta cuadrticamente V
2
; existe, por
ello, una evolucin continuada de la microelectrnica hacia tensiones de
alimentacin ms bajas (el paso de 5 V a 3 V reduce el consumo a la tercera
parte), siendo cada vez ms frecuentes dispositivos de 2,5 V y de 1,8 V;
- la frecuencia de trabajo f, aumentando linealmente con ella (lo cual aconseja no
trabajar a frecuencia ms alta de la estrictamente necesaria para el sistema digital)
Al evaluar el consumo de un circuito integrado, debe tenerse en cuenta que no todas
sus puertas conmutan cada vez, sino que solamente lo hace una pequea parte de ellas;
por ejemplo, la escritura de un dato sobre una memoria de 1 Mega solamente afecta a uno
de sus 1048576 registros (y al decodificador de direcciones y control de escritura).
Disipacin de potencia (tecnologa ):
Para transistores de tamao mnimo el valor de la capacidad de puerta ser:
Cox = 0.7 fF / m
2
; CG = Cox
. W . L = 0,7 fF / m
2
. 1,5
m . 1
m 1 fF.
y el de la capacidad de entrada: Ci = 2 . CG = 2 fF
Para la tensin de alimentacin habitual de 5 V (VCC = 5 V)
P = C.V
2
. f = 2 fF . 25 V
2
. f = 50 . 10
-15
. f = 0,05 . f pW
Para f = 1 MHz = 10
6
: P = 50 nW / MHz; ICC = 10 nA / MHz
La potencia disipada en cada entrada aumenta linealmente con la frecuencia.
Es posible hacer una estimacin de la potencia disipada en 1 mm
2
ocupado por
puertas CMOS, supuesto que todos los transistores conmuten (situacin no habitual pues
en cualquier bloque digital slo conmuta una pequea fraccin de sus puertas).
El rea activa ocupada por los transistores en cuanto a su zona de puerta (L.W) suele
ser inferior al 5 % (ya que la mayor parte de la superficie es necesaria para las zonas de
fuente y drenaje, conexiones, separaciones,...):
Ctransistores = Cox . superficie activa = 0,7 fF/m
2
. 1 mm
2
. 5% = 35 pF
P = C . V
2
. f = 875 pW. f ~ 1 nW . f
Para f = 1 MHz, P ~ 1 mW / MHz: supuesto que todos los transistores contenidos en
1 mm
2
de silicio conmutasen, disiparan en forma de calor una potencia del orden de
1 mW/MHz; potencia que no depende de las dimensiones de la tecnologa sino del
porcentaje de ocupacin: superficie activa/superficie total.
208 El ect rni ca Di gi t al
Adems de la disipacin de potencia de tipo capacitivo (principalmente la capacidad
de entrada de los transistores MOS) existe otro efecto dinmico debido a que en la
conmutacin, durante un breve instante de tiempo, conducen ambos transistores PMOS y
NMOS, dando lugar a un estrecho pico de intensidad; tal efecto resulta despreciable
frente al anterior siempre que la conmutacin sea adecuadamente rpida (tiempos de
conmutacin inferiores a 1 ns).
Sin embargo, dichos picos de intensidad deben ser tenidos en cuenta en relacin
con el ruido, ya que al ser variaciones muy rpidas de intensidad generarn picos de
tensin sobre las lneas de alimentacin (por efecto inductivo).
El orden de magnitud del pico de intensidad en la conmutacin fue calculado en el
apartado anterior, por medio del rea de conduccin en el diagrama de Memelink; en
situacin de conmutacin (Vi = Vconm), la intensidad que circula por el inversor, ser:
( )
2
uN conm p p conm
V V
2
1
L
W
. K
L
W
K = I = . . .
N
A .
Para la tecnologa : ( ) A 6 3 V 1 , . 5 , 0 . 5 , 1 .
V
A
4
2
2
= =
2
conm
1 2 0 I
P = 180 W
Un inversor, cuya entrada se encuentre en situacin de alta independencia
(tri-estado) o con un valor de tensin intermedio (~Vconmutacin) genera una disipacin de
potencia del orden de 0,2 mW y el correspondiente calentamiento del circuito (un valor
unas cuatro mil veces superior al generado en la conmutacin de dicho inversor a 1MHz).
Por otra parte, existe una situacin peligrosa en que este pico de intensidad (debido a
la conduccin momentnea de ambos transistores en la conmutacin) puede ser estable
y originar un fuerte calentamiento (e incluso la destruccin) del circuito integrado: si una
entrada queda en alta impedancia tiende a adoptar un valor de tensin intermedia y
ambos transistores conducen.
Esta situacin puede darse en caso de utilizar buses (o adaptadores tri-estado)
internos que puedan quedar en alta impedancia, posibilidad que puede evitarse
conectando en cada lnea una resistencia de alto valor, que la referencie a 0 V (pull-
down), o bien un pequeo biestable (un par de inversores) que mantenga el ltimo valor
booleano establecido en ella (ver figura).
lnea tri-estado
biestable
que conserva
el ltimo valor recibido
Conjuntos de circuitos auxiliares de este tipo, cuya finalidad es que las lneas de
buses no se queden en estado de alta impedancia, se encuentran tambin disponibles en
los catlogos de circuitos integrados.
T7. El i nversor CMOS 209
T7. 4. Puert as CMOS
Haciendo uso del lgebra de conmutadores, las puertas lgicas CMOS se construyen
mediante dos planos duales de transistores: plano N y plano P; a cada entrada le
corresponden sendos transistores, uno en el plano N y otro en el plano P, conectados de
acuerdo con la dualidad serie-paralelo.
Plano
P
Plano
N
...
a
b
c
m
...
a
b
c
m
V
CC
y
las entradas se activan con valor 0:
paralelo <> operacin "y"
serie <> operacin "o"
+ una inversin global
serie <> operacin "y"
paralelo <> operacin "o"
+ una inversin global
porque transmiten el valor 0
las entradas se activan con valor 1:
a
a
Vc c
b
c
d e
c d
b e
y = (a+b) .c + d.e
- en su plano N, la configuracin de transistores corresponde (de acuerdo con el lgebra
de conmutadores) a la funcin (a + b).c + d.e , a la cual debe aadirse una negacin
global ya que dicho plano N transmite el valor 0; de forma que la funcin conformada
por el plano N de la figura anterior es: y = (a + b).c + d.e
- en cuanto al plano P, transmite el valor 1 pero sus transistores conducen cuando su
entrada es 0, es decir, corresponden a variables negadas (a, b, c, d, e ) y su
configuracin (de acuerdo con el lgebra de conmutadores) conforma la funcin
(a . b + c) . (d + e); de manera que la funcin conformada por el plano P de la
figura es la misma que la del plano N: y = (a . b + c) . (d + e) = (a + b).c + d.e
210 El ect rni ca Di gi t al
Caract er st i cas f si cas de l as puert as compl ement ari as
Permiten una amplia diversidad de puertas
El juego de conexiones serie-paralelo permite configurar funciones complejas y muy
diversas en una misma puerta, con la limitacin de que la expresin algebraica de la
funcin ha de presentar una negacin global sobre el conjunto de operaciones booleanas
(son puertas inversoras) y de que tal negacin sea la nica que aparezca: cada negacin
da lugar a una puerta adicional.
Los transistores P y N presentan diferente resistividad (debida a la menor movilidad
de los huecos): la conexin PMOS en paralelo, y sus correspondientes NMOS en serie,
contribuye a compensar la asimetra, mientras que la conexin de PMOS en serie acenta
dicha asimetra y su efecto resistivo; por ello, son preferibles las puertas "y-negada"
(Nand) a las puertas "o-negada" (Nor).
Las entradas son de tipo capacitivo
Los transistores presentan una capacidad de puerta, que es preciso cargar o descargar
en la conmutacin cuando cambia el valor booleano presente en la correspondiente
entrada; tal transitorio de carga o descarga:
- da lugar a unos tiempos de conmutacin que limitan su velocidad de trabajo;
- limita, asimismo, el fan-out de la puerta anterior, es decir, el nmero de entradas de
otras puertas que pueden conectarse sobre una salida (pues tal nmero condiciona la
velocidad de trabajo);
- requiere un aporte puntual de intensidad durante la conmutacin, que da lugar a un
consumo dinmico proporcional a la frecuencia de conmutaciones;
- genera ruido sobre las lneas de alimentacin como consecuencia del pulso de
intensidad necesario para la conmutacin.
La salida de cada puerta es resistiva
Cada plano de transistores, cuando conduce, presenta una resistencia relativa a la
zona lineal u hmica de sus transistores; tal resistencia depende de las dimensiones de los
transistores (disminuyendo en proporcin inversa a la anchura de estos) y afecta a:
- la intensidad suministrable por la puerta;
- los procesos de conmutacin (carga y descarga de las capacidades de entrada de las
puertas siguientes) y, en consecuencia, los tiempos de propagacin y la velocidad;
- la inmunidad frente al ruido en trminos de potencia.
T7. El i nversor CMOS 211
Se presentan varios transistores en serie
La presencia de transistores en serie supone un aumento de la resistencia de salida de
la puerta, que repercute, en concordancia con el apartado anterior, en la intensidad
suministrable por la puerta, en los tiempos de propagacin y la velocidad de trabajo y en
la inmunidad frente al ruido en trminos de potencia.
En cuanto a intensidades en la salida de puertas con ms de una entrada, ha de
tenerse en cuenta aquella situacin booleana en que conducen varios transistores en serie,
en cuyo caso la intensidad suministrable ha de dividirse, al menos, por el nmero de ellos
(ya que se suman sus resistencias equivalentes) o alternativamente ha de aumentarse en
igual proporcin la anchura de tales transistores.
Tambin el margen de ruido en potencia disminuye por la suma de resistencias de
transistores en serie: P =
(V)
2
/ Ro.
En los tres aspectos considerados (intensidad suministrable, tiempos de propagacin
e inmunidad en potencia) interviene la resistencia de salida: Ro = Ro (transistores en
serie). En una primera aproximacin, para n transistores se multiplica por n la resistencia
de salida correspondiente a uno slo de ellos; pero, adems, se produce un efecto de
desplazamiento de la tensin de fuente que aumenta progresivamente la resistencia de
los diversos transistores.
Consideremos el caso de transistores NMOS en serie, todos ellos con tensin de
entrada VG = V(1), solamente el inferior de ellos tiene su fuente conectada a 0 V y su
tensin VGS = V(1). Mientras que la tensin de salida sea Vo > 0 (lo cual ocurre siempre
que Io 0 y, en particular, durante la conmutacin), la tensin puerta-fuente de los dems
transistores es menor VGS < V(1) pues su terminal de fuente no est conectado a 0 V
directamente, sino a travs de los transistores que se encuentran debajo; por ello, dicha
tensin VGS disminuye al ascender en la serie y la resistencia efectiva que presenta cada
transistor es mayor cuanto ms alejado se encuentra de la conexin a 0 V.
Por ello, puertas con muchas entradas (muchos transistores en serie) presentan malas
caractersticas funcionales: es altamente aconsejable limitar el nmero de entradas de las
puertas CMOS, de forma que no aparezcan ms de 6 transistores en serie.
El consumo esttico es siempre nulo
Para cada valor booleano en una de las entradas, uno de sus transistores se
encontrar en corte y el otro conducir: todo camino de conduccin entre los dos
terminales de alimentacin (VCC y 0 V) incluye siempre un transistor en corte, por lo cual
el consumo en reposo es nulo. En cambio, s que hay consumo dinmico originado por la
carga o descaga de las diversas capacidades propias de los transistores en la conmutacin
y dicho consumo es proporcional a la frecuencia de conmutacin.
212 El ect rni ca Di gi t al
Tiempos de conmutacin
Al pasar de un inversor a una puerta booleana de dos o ms entradas, los tiempos de
propagacin aumentan en aquellos procesos (carga o descarga) en que la conduccin se
produce a travs de varios transistores en serie; es un efecto de suma de sus resistencias.
Para la tecnologa :
NAND de 2 entradas: t
pLH
= V
CC
.C / I(P) 5 V. 2 fF / 0,2 mA 0,05 ns,
t
pHL
= 2 x V
CC
.C / I(N) 2 . 5 V. 2 fF / 0,5 mA 0,04 ns
NOR de 2 entradas: t
pLH
= 2 x V
CC
.C / I(P) 2 . 5 V. 2 fF / 0,2 mA 0,1 ns,
t
pHL
= V
CC
.C / I(N) 5 V. 2 fF / 0,5 mA 0,02 ns
Debido a la diferente resistividad de los transistores PMOS y NMOS, interesa ms la
utilizacin de puertas "y-negada" (Nand) pues en ellas se equilibran un poco los dos
tiempos de conmutacin (aumenta el menor de ambos), mientras que para las puertas
"o-negada" (Nor) se aumenta an ms el de subida (que es, ya de por s, el mayor).
Ahora bien, cuando se desea obtener estimaciones cuantitativas de los tiempos de
propagacin de una puerta o de un conjunto de puertas booleanas es necesario acudir a la
simulacin elctrica (SPICE u otros). Por un lado, los efectos relativos a transistores en
serie (comentados en la pgina anterior) y, de otro, el solapamiento entre los tiempos de
conmutacin de puertas sucesivas (ya que cada puerta inicia su conmutacin antes de
haber finalizado la conmutacin de la puerta anterior) limita, en gran medida, los
resultados obtenidos a travs de modelos simplificados o de razonamientos cualitativos.
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
T8 PUERTAS SEUDO-NMOS Y PUERTAS DE TRANSMISIN
T8.1. Puertas seudoNMOS
T8.2. Transistor de paso y puerta de transmisin
T8.3. Lgica dinmica
La tecnologa CMOS, adems de las puertas inversoras configuradas con dos planos de
transistores complementarios (puertas complementarias), ofrece otros dos tipos de
puertas que son muy tiles en determinados casos.
Las puertas NOR seudoNMOS, en las cuales el plano P queda reducido a un nico
transistor PMOS que acta como resistencia de polarizacin, permiten un alto nmero de
entradas, sin que ello repercuta en alto nmero de transistores en serie (lo cual limitara
gravemente la respuesta de la puerta en cuanto a intensidad, velocidad y ruido). Estas
puertas seudoNMOS son muy apropiadas para configurar las estructuras reticulares:
decodificadores, multiplexores y demultiplexores, y matriciales: ROM, PAL y PLA;
tambin lo son para los dispositivos programables derivados de tales estructuras, con la
importante ventaja de que solamente es preciso programar el plano N.
Por contra, las puertas seudoNMOS pierden la caracterstica de consumo esttico nulo
y requieren un dimensionamiento adecuado de sus transistores para asegurar la tensin de
salida correspondiente al 0: V(0) 0 V.
Los transistores MOS individuales, utilizados como conmutadores (transistores de
paso), presentan limitaciones a la hora de transmitir uno de los valores booleanos (el
NMOS transmite mal el 1 y el PMOS el 0). Pero el conjunto NMOS - PMOS en paralelo
resuelve esa limitacin y conforma una puerta de transmisin que es til para configurar
multiplexores y biestables; tales bloques, construidos con puertas de transmisin, requieren
muchos menos transistores que si se configuran con puertas inversoras, ocupan menor rea
de integracin y ofrecen menores tiempos de propagacin. Asimismo, la puerta de
transmisin es un adaptador tri-estado, pues, cuando no conduce, su salida se encuentra en
situacin de desconexin (alta impedancia).
Adems, este captulo introduce la lgica dinmica que, utilizando como elementos
de memoria las capacidades de entrada de las propias puertas lgicas, permite reducir
an ms el rea de integracin de los biestables y, con ello, aumentar la densidad de
integracin de los circuitos secuenciales. Este almacenamiento de tensiones booleanas sobre
pequeos condensadores tiene el inconveniente de la descarga de los mismos a lo largo del
tiempo pero resulta til si dichos valores se actualizan o se refrescan con una frecuencia
adecuada (superior a un cierto valor mnimo, ~1 KHz).
Por otra parte, la lgica dinmica aplicada a las puertas seudoNMOS, permite su
funcionamiento con consumo esttico nulo.
212 El ect rni ca Di gi t al
T8. 1. Puert as seudoNMOS
Cuando se necesitan puertas con un amplio nmero de entradas (en particular en las
estructuras matriciales en que tal nmero suele ser muy alto) se utiliza la configuracin
seudoNMOS y se emplean nicamente puertas "o-negada" (Nor):
a) la lgica seudoNMOS conforma solamente el plano N y utiliza un solo transistor
PMOS permanentemente habilitado (conectado a 0 V), que se comportar como
una simple carga resistiva;
b) las puertas "o-negada" (Nor) presentan sus transistores en paralelo en el plano N;
no existe problema de incluir en dicho plano muchos transistores.
El calificativo seudoNMOS proviene de que este tipo de puertas, con un transistor
superior (que conduce siempre) como resistencia de polarizacin, es propio de las
tecnologas NMOS: la lgica seudoNMOS copia directamente el diseo NMOS utilizando
un transistor de polarizacin de canal P.
La configuracin "o-negada" (Nor) seudoNMOS proporciona una alternativa eficaz
para puertas de alto nmero de entradas y, adems, reduce considerablemente el nmero
de transistores, el rea de integracin y la complejidad del diseo fsico; pero, en cambio
presenta dos serios inconvenientes:
- los niveles de tensin de salida no quedan garantizados por la tensin umbral de los
transistores
- y su consumo no es nulo, ya que para Vo = 0 conducen el plano N y el transistor P.
Diseo de un inversor seudoNMOS:
T2
T1
V
o
V
i
V
CC
Sea VCC = 5 V y VTO = 1 V,
Vi < 1V T2 no conduce y T1 s
Vo =VCC = 5 V
Vi >> 1 V T2 conduce y T1 tambin
Vo =VCC.R2/( R1 + R2)
siendo R1 = resistencia PMOS
y R2 = resistencia NMOS:
Interesa Vo pequeo; para ello, R2<<R1.
En un inversor seudoNMOS la salida 1 se produce de igual forma que en un inversor
CMOS: conduce el transistor PMOS y no lo hace el NMOS; pero para salida 0 conducen
ambos transistores y para asegurar una tensin de salida prxima a 0 V se requiere una
relacin de geometras entre ambos transistores adecuada.
T8. Puert as seudoNMOS y de t ransmi si n 213
En el inversor CMOS cada valor booleano est garantizado por la tensin umbral del
transistor que transmite dicho valor; en el seudoNMOS hay un solo transistor activo, el
NMOS, que garantiza solamente su situacin de corte, salida 1, mientras que para salida 0
aparece un divisor de tensin entre las resistencias que presentan ambos transistores y es
preciso conseguir, por diseo geomtrico, que la resistencia que presenta el transistor N
sea muy inferior a la presentada por el P: RNMOS << RPMOS.
Habida cuenta de que la resistencia de paso de un transistor MOS es inversamente
proporcional a su factor de forma ff = W/L, se requiere una relacin adecuada entre los
tamaos de los dos transistores que configuran el inversor, de manera que sus factores de
forma verifiquen la desigualdad: WN/LN >> WP/LP.
El diagrama de Memelink permite un anlisis cuantitativo:
Sea V
CC
= 5 V, V
TO
= 1 V y la relacin entre factores de forma: = WP/LP / WN/LN
En situacin esttica por ambos transistores circula la misma intensidad:
;
3
1
ff
ff
3
1
3
1
L W
L W
N
P
1
2
electrones
huecos
N N
P P
electrones
huecos
N
P
P
N
= = =
A
A
A
A
V =5 V
V
o
i
4
4
AN = (/3).AP
4 Vo
= (/3) 4
2
/2
VoL = (2/3) = 0,66
Para lo cual, interesa pequeo: 1
=
ff
P
ff
N
=
W
P
L
P
W
N
L
N
<< 1
La tensin de salida para el 0 no ser exactamente 0 V sino algo inferior a : 0,66
= 1/4 = 0,25
Vo = 0,17 V
= 1/5 = 0,2
Vo = 0,13 V
= 1/7 = 0,15
Vo = 0,1 V
Interesan valores de bajos; adems, la funcin de transferencia del inversor
seudoNMOS presenta mejores caractersticas de conmutacin (se hace ms abrupta),
cuanto menor es .
Para conseguir << 1, con la menor ocupacin posible de rea de integracin, se
aumenta adecuadamente la longitud del transistor PMOS de polarizacin (habida cuenta
de que en una puerta hay un solo transistor PMOS y muchos NMOS): para = 1/4,
LPMOS = 4 Lmn.
214 El ect rni ca Di gi t al
Al utilizar lgica seudoNMOS se pierde la caracterstica de consumo nulo propia de
la tecnologa CMOS; cuando la salida es 0 conducen ambos transistores y, por tanto,
circula una intensidad no nula:
( ) . . 4 .0,66. 4 . 5 , 1 .V . 5 , 1 . .
o N p p i p p
K . K 1 V . K
L
W
K = I = = = A .
Para la tecnologa :
p (NMOS) ~ 40 A/V
2
; A 160 = I
para = 1/4 = 0,25 A 4 1 0 = 60 = I
Las grficas siguientes presentan la funcin de transferencia Vo - Vi y el consumo de
intensidad de un inversor seudoNMOS de la tecnologa , obtenidas mediante simulacin
SPICE; el transistor NMOS es de tamao mnimo y la relacin de geometras es = 1/4
LNMOS = 1 m, WNMOS = 1,5 m, VTO,NMOS = 1 V, p,NMOS = 40 A/V
2
LPMOS = 4 m, WPMOS = 1,5 m, VTO,PMOS = 1 V, p,PMOS = 15 A/V
2
.
Vi
1V 2V 3V 4V 5V 0V
V(2)
0V
2.0V
4.0V
5.0V
Vi
0V 1V 2V 3V 4V 5V
I(VCC)
-40uA
-20uA
0A
-46uA
Funcin de transferencia VoVi seudoNMOS Consumo de intensidad ICC del inversor
La lgica seudoNMOS evita la necesidad de duplicar el Plano N en una
combinacin dual de transistores PMOS y la necesidad de conectar entre s cada pareja
de transistores; con ello se reduce considerablemente el rea de integracin y la
complejidad del diseo geomtrico. Pero, en cambio, presenta dos inconvenientes
relativos, ambos, a la salida 0:
1. en su diseo ha de tenerse en cuenta la relacin de geometras de los transistores: el
cociente entre factores de forma = WP/LP / WN/LN para asegurar que Vo(0) 0 V;
2. el consumo no es nulo: ICC(0) 0, pues conducen a la vez el plano N y el transistor
P.
T8. Puert as seudoNMOS y de t ransmi si n 215
El primero de los inconvenientes repercute slo en consideraciones geomtricas en la
etapa de diseo y la correspondiente ocupacin de rea.
El segundo, el consumo no nulo, no es grave si el nmero de estas puertas en un
circuito integrado es reducido y su efecto puede disminuirse conectando la puerta del
transistor PMOS a una seal de habilitacin E , normalmente a 1 y que pase a 0
solamente cuando interese la actuacin de la correspondiente puerta lgica (caso de que el
clculo booleano que realiza dicha puerta no se requiera constantemente).
La configuracin seudoNMOS utiliza solamente puertas "o-negada" (Nor), ya que
en ellas los transistores se encuentran en paralelo:
Vcc
Estas puertas "o-negada" (Nor) seudoNMOS resultan muy tiles para construir las
estructuras reticulares de muchas entradas (decodificadores, multiplexores, demux.,
ROM, PLA, PAL,...); tambin son muy apropiadas para dispositivos programables, tipo
PROM, PLA, PAL, PLS o CPLDs. Ello es debido a que:
- permiten configurar trminos producto de un alto nmero de entradas, gracias a la
conexin en paralelo de sus transistores
- y presentan un solo plano activo de forma que, en cuanto a dispositivos programables,
solamente ser necesario efectuar la programacin sobre el plano NMOS y tal
programacin consistir en desconectar transistores que se encuentran en paralelo.
Si se utilizan puertas CMOS, con los dos planos de transistores completos, adems
del problema de tener un alto nmero de transistores en serie, la programacin de ambos
planos sera sumamente compleja, pues, en aquel en que los transistores se encuentren en
serie, su programacin consistir en puentearlos (lo cual es mucho ms difcil que
desconectarlos).
216 El ect rni ca Di gi t al
T8. 2. Transi st or de paso y puert a de t ransmi si n
Otro importante complemento de las puertas booleanas CMOS, conformadas por
sendos planos de transistores P y N, lo constituye el transistor de paso, equivalente a un
simple interruptor:
Vi
C
L
V
G
Vo
V = 5 V
G
V
TO
V
o
=V
S
V '
El transistor conduce cuando VG = VCC = 1 y no lo hace para VG = 0 V = 0.
A) Supongamos VG
= 1 = 5 V, para Vi = 5 V el transistor conduce y configura un camino
de carga hacia la capacidad de entrada de la puerta o puertas a las que est conectado
(CL).
En este proceso de carga el terminal de entrada Vi acta como drenaje y el terminal
de salida Vo como fuente; al ir aumentando Vo
= VS la intensidad se hace ms pequea,
finalizando el proceso de carga cuando Vo
= VS = V' (es decir, cuando VTO + V' alcanza
el valor VG), en cuyo caso ya no existe canal y el transistor no conduce.
La tensin de salida mxima sobre CL es V':
VTO + V' = VG ; V' = VG
- VTO (4 V para VG
= 5 V y VTO
= 1 V)
Este desplazamiento a la baja de la tensin de salida 1 es an mayor debido al
efecto substrato [ver apartado T6.3.6]:
VG = VTO + KVD VD = (VG - VTO)/ K (~ 3,5 V para K
= 1,15).
La salida no llega a alcanzar la tensin correspondiente al 1 booleano V(1) sino que
se queda por debajo. Con ello la puerta siguiente a un transistor de paso no tiene
asegurado el corte del transistor PMOS; se pierde entonces la condicin de consumo nulo
y disminuye en gran medida el margen de ruido de dicha puerta.
Ahora bien, puede evitarse dicha situacin (consumo no nulo de la puerta que sigue a
un transistor de paso) si se integran transistores PMOS cuya tensin umbral VTO sea
mayor que la tensin umbral del transistor NMOS de paso; para VTO,PMOS = -1,8 V, la
tensin de salida 1 del transistor de paso (~ 3,5 V) es suficiente para mantener en corte los
transistores PMOS.
T8. Puert as seudoNMOS y de t ransmi si n 217
El desplazamiento de V(1) no es acumulativo (no es un efecto resistivo sino de cierre
de canal), de forma que si se conectan varios transistores de paso seguidos (en serie), la
tensin de salida 1 del conjunto seguir siendo VD = (VG - VTO)/ K.
B) Para Vi = 0 V, si la capacidad CL se encontraba previamente cargada (tensin de salida
V(1)), se produce su descarga hasta alcanzar 0 V: el paso del 0 booleano se efecta sin
desplazamiento de tensin.
Tngase en cuenta que el transistor MOS es simtrico:
- cuando Vi = 5 V dicho terminal acta como drenaje y Vo como fuente,
- pero para Vi = 0 V los papeles de drenaje y fuente se intercambian ya que la
intensidad en el transistor circula en sentido contrario.
En conclusin, como transistor de paso el NMOS transmite bien el valor booleano 0
pero no el valor 1 (cuya tensin queda reducida al pasar a travs del transistor); por ello,
en las puertas CMOS los transistores NMOS forman el plano inferior que transmite el
valor 0. Por simetra, el transistor PMOS transmite bien el valor 1 pero no el 0 (que se
desplaza hacia tensiones positivas al pasar a travs del transistor); en las puertas CMOS
los PMOS forman el plano superior que transmite el valor 1.
Funciones de transferencia de transistores de paso NMOS y PMOS:
Tecnologa: VTO,NMOS = 1 V, VTO,PMOS = 1 V, GAMMA = 0,25, NSUB = 10
15
.
Vi
0V 1V 2V 3V 4V 5V
V(2)
0V
2.0V
4.0V
5.0V
Vi
0V 1V 2V 3V 4V 5V
V(2)
0V
2.0V
4.0V
5.0V
Transistor de paso NMOS Transistor de paso PMOS
218 El ect rni ca Di gi t al
Aadiendo al transistor de paso canal N un transistor complementario canal P, en
paralelo (y con las puertas de ambos conectadas a travs de un inversor para que se
encuentren en conduccin y en corte a la vez) se obtiene una puerta de transmisin que
evita el desplazamiento en tensin del 1 booleano.
Vo
Vi
V
control
C
L
V
o
En una puerta de transmisin la salida (sobre CL) llega a alcanzar V(1) (caso de
Vi = V(1)) pues el transistor PMOS conduce hasta ese valor y la descarga llega
igualmente a 0 V (cuando Vi = 0) a travs del transistor NMOS. El transistor PMOS
asegura la salida 1 sin desplazamiento de tensin y el transistor NMOS hace lo propio
para la salida 0; por contra, son precisos 4 transistores (dos en la puerta de transmisin y
otros dos del inversor).
El clculo de los tiempos de conmutacin de una puerta de transmisin es anlogo al
desarrollado en el captulo T7 para un inversor, de forma que los tiempos resultantes son
del mismo orden e incluso inferiores a los all obtenidos: la carga se realiza bsicamente
por un transistor PMOS ayudado parcialmente por el NMOS que conlleva en paralelo y
viceversa (y tal colaboracin parcial de ambos transistores reduce los tiempos) .
Mul t i pl exores
La puerta de transmisin tiene el inconveniente de que la variable de control ha de
actuar a travs de dos entradas en forma invertida (con un inversor intermedio), de manera
que a los dos transistores que configuran la puerta han de agregarse otros dos para el
correspondiente inversor. Pero este inconveniente no es tal en aquellas estructuras que
siempre utilizan las entradas en forma afirmada y negada; en tal sentido las puertas de
transmisin resulta tiles para construir multiplexores:
A
A
y
lnea 0
l nea 1
Multiplexor de 2 lneas.
T8. Puert as seudoNMOS y de t ransmi si n 219
Un multiplexor de 2 entradas es directamente ampliable conectando mdulos iguales
en cascada (para n lneas sern necesarios n-1 mdulos conectados en cascada):
l
0
l
1
l
4
l
5
l
2
l
3
l
6
l
7
c b
Y
a
El esquema anterior contiene 14 puertas de transmisin y 3 inversores, en total 34
transistores, mientras que un multiplexor anlogo realizado con puertas "y-negada"
(Nand) necesita 8 puertas de 4 entradas, una de 8 y 3 inversores, es decir, 86 transistores.
De esta forma, la conexin en cascada de puertas de transmisin proporciona una
configuracin muy simple y modular para los multiplexores, el nmero de transistores
necesarios es claramente inferior a los que se requieren en una configuracin tpica
CMOS (con puertas Nand o Nor) y el tiempo de propagacin es algo menor.
La reduccin en el numero de transistores se refleja sobre el rea de integracin
necesaria y, tambin, sobre los tiempos de propagacin: habr menor numero de
transistores en serie, con lo cual las constantes de tiempo que limitan la velocidad del
circuito sern menores. Por ejemplo, en el multiplexor anterior, la tansmisin de un 0
implica a 3 transistores NMOS en serie, mientras que con puertas "y-negada" (Nand)
habra 8 transistores NMOS en serie en la puerta de salida.
Habida cuenta de que las puertas de transmisin son simtricas, un multiplexor
construido con ellas tambin lo es y puede ser utilizado como demultiplexor; en tal caso,
presenta el problema de que las lneas de salida no seleccionadas quedan en alta
impedancia (no en salida 0, como correspondera a un demultiplexor digital), lo cual
puede solventarse aadiendo resistencias que referencien a 0 V dichas lneas.
Incluso, en muchas ocasiones, es til el estado de alta impedancia de las salidas del
demultiplexor pues permite conservar sobre cada lnea el ltimo de los valores
transmitidos a la misma (para lo cual ser necesario que exista una capacidad adecuada
conectada en cada lnea de salida).
220 El ect rni ca Di gi t al
Las puertas de transmisin son, tambin, buenos interruptores analgicos (analog
switches) que controlan el paso de seales en el intervalo [0,VCC] determinado por las
tensiones de control (de puerta) de sus transistores; caso de que la seal de control utilice
como niveles -V1 y +V2, la puerta de transmisin admitir seales analgicas entre tales
valores [-V1 ; +V2].
De esta forma, las puertas de transmisin sirven para muestrear seales analgicas y
para realizar su multiplexado o demultiplexado: un multiplexor construido con puertas de
transmisin puede transmitir cualquier tensin dentro de los limites fijados por sus
tensiones de control [-V1 ; +V2]; de esta forma se dispone de multiplexores analgicos
que permite seleccionar por su nmero una de entre n tensiones de entrada (por ejemplo,
para medir diversas tensiones con un mismo conversor analgico-digital).
El mismo multiplexor, utilizado en sentido inverso (una entrada, n salidas) es un
demultiplexor analgico, cuyas lneas de salida adoptan el estado de alta impedancia
cuando no son seleccionadas (y pueden conservar, sobre capacidades, el ltimo valor de
tensin transmitido a cada lnea).
Bi est abl es
Los biestables en tecnologas CMOS suelen construirse con puertas de transmisin:
D Q
Q
E
Biestable D habilitado por niveles
Esta configuracin requiere 10 transistores, mientras que la configuracin tpica con
puertas "y-negada" (Nand) necesita 18; la reduccin del nmero de transistores implica,
tambin en este caso, una disminucin del tiempo de propagacin del biestable.
D
Ck
Q
Q
Biestable D sncrono: habilitado por flancos
Para construir un biestable D sncrono con puertas de transmisin se utilizan 18
transistores, frente a los 36 necesarios con puertas "y-negada" (Nand). Adems de la
reduccin del nmero de transistores y del rea de integracin, tambin se reducen en
forma importante los tiempos funcionales y, en particular, el tiempo de propagacin.
T8. Puert as seudoNMOS y de t ransmi si n 221
T8. 3. Lgi ca di nmi ca
Bi est abl es di nmi cos
Los registros dinmicos utilizan biestables an ms simples que los representados en
la pgina anterior:
Q
E
En este biestable la informacin se almacena sobre la capacidad de entrada del
inversor (la cual sufre, cuando queda aislada, un proceso de descarga que limita el tiempo
de almacenamiento a unos pocos milisegundos).
En muchas ocasiones, por ejemplo en las memorias dinmicas DRAM, el biestable
se reduce solamente a un transistor y un condensador:
E
lnea
de bit
Q
El ahorro en nmero de transistores (y por tanto, en rea de integracin) es superior a
2/3 respecto a los biestables estticos; tal reduccin de tamao resulta muy atractiva y por
ello, cuando el tiempo de permanencia de la informacin es reducido (inferior a 10
milisegundos) o cuando resulta fcil refrescar la informacin, se utilizan registros
dinmicos configurados con estos biestables.
Particularmente interesante (por la reduccin de tamao) es la utilizacin de
biestables dinmicos en el diseo sncrono (con reloj):
Q
2
D
master slave
1
Este biestable sncono dinmico requiere solamente 8 transistores mientras que su
configuracin esttica (con puertas de transmisin) necesita 18 (y 36 si se configura con
puertas Nand); los biestables dinmicos sncronos necesitan dos fases de reloj no
solapadas:
t t
1
2
Cuando 1 = 1 el master recoge la
informacin de su entrada: fase de captura
y en 2 = 1 el slave la presenta en su salida:
fase de salida.
222 El ect rni ca Di gi t al
La separacin entre ambas fases (entre la captura y la salida de la informacin)
viene exigida porque el ms mnimo solapamiento entre ellas lleva directamente a la
salida Q el valor de la entrada D. Es un requisito de seguridad de funcionamiento (vase
el apartado 15.4, segundo volumen) que evita las restricciones relativas al tiempo de
mantenimiento y a la verticalidad y simultaneidad en la seal de reloj; estas restricciones
son particularmente fuertes en este caso, debido al reducido tiempo de propagacin que
presentan estos biestables tan simples.
La conexin en serie de biestables dinmicos sncronos da lugar a registros de
desplazamiento dinmicos, con una ocupacin de superficie muy reducida, y muy tiles
cuando el desplazamiento se ha de producir con frecuencias de reloj superiores a 1 KHz
(por debajo de esa frecuencia el tiempo de permanencia del dato en las capacidades que
actan como elementos de memoria, ~1 ms, no es suficiente).
En forma anloga es posible construir contadores dinmicos (para frecuencias de
reloj superiores al KHz) sin ms que aadir a las entradas Di la lgica correspondiente al
contaje. Por ejemplo, para un contador dcada con entrada de habilitacin E:
D
0
= q
0
.E + q
0
.E = q
0
E
D
1
= q
1
.q
0
.q
3
.E + q
1
.(q
0
+ E)
D
2
= q
2
.q
1
.q
0
.E + q
2
.(q
1
+ q
0
+ E)
D
3
= q
3
.q
2
.q
1
.q
0
.E + q
3
.(q
0
+ E)
De igual forma, cualquier sistema secuencial sncrono puede disearse con biestables
dinmicos; en general, tales biestables permiten una fuerte reduccin en el rea de
integracin, siempre que el reloj del sistema sncrono acte a frecuencias no bajas.
Tiempo de permanencia de un dato en un registro dinmico
En los registros dinmicos (conformados por una puerta de transmisin y un
inversor) el dato es almacenado en la capacidad de entrada del inversor (capacidad de
puerta de los dos transistores que lo conforman); cuando la puerta de transmisin es
deshabilitada la conservacin de carga en dicha capacidad asegura la permanencia del
valor booleano en el inversor durante un cierto tiempo.
Ahora bien, en la situacin de deshabilitacin las propias uniones difusin-sustrato
de la puerta de transmisin configuran un camino de descarga para la capacidad de puerta
que mantiene el valor booleano; stas uniones se encontrarn en polarizacin inversa, lo
cual supone una intensidad de corriente sumamente pequea pero no nula. Al cabo del
tiempo dicha capacidad se descargar y el valor booleano se perder: precisamente por
ello estos registros son dinmicos, necesitan ser refrescados cada cierto tiempo (presentan
una frecuencia mnima de trabajo).
T8. Puert as seudoNMOS y de t ransmi si n 223
Podemos definir el tiempo de permanencia como aquel en que la variacin de tensin
de la capacidad de puerta es inferior a la tensin umbral de los transistores VTO, ya que a
partir de ese valor de tensin la intensidad esttica por el inversor deja de ser nula (se
pierde la condicin de consumo esttico nulo).
Una estimacin del orden de magnitud puede ser la siguiente:
intensidad de descarga ~ 1 pA
capacidad de puerta ~ 1 fF
V = VTO ~ 1 V t = C . V / I 10
-15
/ 10
-12
= 10
-3
s = 1 ms.
Lgi cas seudoNMOS di nmi cas.
Para evitar el problema del consumo esttico no nulo en las estructuras seudoNMOS,
se utiliza una lgica dinmica con reloj, en la cual se distinguen dos fases en cada
unidad de tiempo (pulso de reloj):
- fase de precarga (de la salida de la puerta) = 0
- fase de evaluacin (de la funcin que realiza) = 1
V
SD
y
a
b
c
m
plano N
PMOS
NMOS
C
.
.
.
L
Se aade a la puerta un transistor auxiliar NMOS y los dos transistores extremos, el
PMOS de polarizacin y el NMOS auxiliar, se conectan al reloj de forma que, en
ninguna de las dos fases de , conducen a la vez ambos transistores: el consumo de la
puerta es nulo.
En cada pulso de reloj, la salida es llevada inicialmente a 1:
precarga = 0, conduce el transistor PMOS, salida y = 1
y, posteriormente, el plano N calcula la funcin:
evaluacin = 1, caso de valor 0 descarga la salida, salida y = f(X).
224 El ect rni ca Di gi t al
Durante la fase de precarga la salida es llevada a valor booleano 1 a travs del
transistor PMOS de carga (que conduce cuando = 0). En la fase de evaluacin, si la
salida (conforme a la funcin que calcula la puerta) debe ser 0, tal valor es comunicado a
travs del plano N y del transistor NMOS auxiliar; pero cuando deba ser 1, dicho valor ha
de conservarse (sobre la capacidad de entrada de la puerta siguiente) a partir de la tensin
almacenada en la precarga.
La duracin de la fase de evaluacin no puede ser indefinida, pues existir un
proceso de descarga que deteriorar el valor booleano almacenado: estas puertas son
dinmicas y han de actuar por encima de una cierta frecuencia de reloj. Sern puertas
de tipo "o-negada" (Nor) para admitir un amplio nmero de entradas (que es la aplicacin
propia de las puertas seudoNMOS).
Adems, este tipo de puertas (seudoNMOS dinmicas) no pueden conectarse
directamente entre s, pues es preciso que los correspondientes valores de sus entradas
(en particular, las entradas cuyo valor sea 0) estn presentes antes de iniciarse la fase de
evaluacin.
m'
b'
V
DD
Y1
a
b
m
V
DD
Y2
plano
N2
plano
N1
.
.
.
.
.
.
t
evaluacin
Y1
precarga
Durante la fase de precarga ambas salidas se ponen a 1; al iniciarse la evaluacin la
salida Y1 tardar un cierto tiempo t en pasar a 0 (supuesto que tal sea su valor), durante
el cual (t) Y1 provoca la descarga de Y2 (puertas Nor, transistores N en paralelo), de
forma que, si t es suficientemente amplio para que Y2 deje de valer 1, ya no podr
adoptar tal valor booleano (t anula el efecto de la precarga).
Por ello, estas puertas seudoNMOS dinmicas son de utilizacin individual. Para
conseguir la conectividad directa entre puertas seudoNMOS dinmicas se han diseado
soluciones sumamente complejas, ingeniosas y variadas: lgicas con 4 fases de reloj,
lgicas domin, C
2
MOS, CSVL,..., pero tales soluciones son ms acadmicas que
efectivas.
T8. Puert as seudoNMOS y de t ransmi si n 225
En las estructuras matriciales tipo ROM, PLA, PAL, ..., que utilizan dos conjuntos
sucesivos de puertas (matriz Y - matriz O), es posible conectar tales puertas mediante el
empleo de dos fases de reloj 1, 2 no solapadas:
1 = 0
evaluacin de la matriz Y
1 = 1 precarga
de la matriz Y
1
2
2 = 0
evaluacin de la matriz O
2 = 1 precarga
de la matriz O
De esta forma, el primer conjunto de puertas (matriz Y) evala sus funciones
booleanas mucho antes de iniciarse la evaluacin del segundo conjunto (matriz 0).
En general, los bloques constitutivos de un sistema digital son del tipo siguiente
Bloques
anteriores
B
i
e
s
t
a
b
l
e
s
B
i
e
s
t
a
b
l
e
s
Lgica
combinacional
Bloque
es decir, la lgica combinacional se encuentra entre biestables.
Las funciones booleanas intermedias (la lgica combinacional) pueden ser
construidas en forma matricial (suma de productos = PAL) y los biestables (los de salida
del propio bloque) pueden ser descompuestos en sus dos partes amo-esclavo e
intercaladas en la lgica:
1
amos
matriz "O"
o puertas O
SUMAS
matriz "Y"
o puertas Y
PRODUCTOS
esclavos
captura 1
precarga 2
evaluacin 2
2
captura 2 precarga 1
evaluacin 1
Cada semibiestable (master/slave) puede ser construido, en configuracin dinmica,
mediante una simple puerta de transmisin: el valor booleano queda almacenado en la
capacidad de entrada de la puerta siguiente (o puertas siguientes).
226 El ect rni ca Di gi t al
Habida cuenta de que tanto la matriz Y como la matriz 0 han de ser realizadas
mediante puertas "o-negada" (Nor), el bloque considerado quedara en la forma siguiente:
Puertas NOR
seudoNMOS
dinmicas
en paralelo
1
2
2 = 1
2 = 0
precarga
evaluacin
1 = 1
1 = 0
2
1
precarga
evaluacin
Puertas NOR
seudoNMOS
dinmicas
en paralelo
secuencia
temporal
evaluacin captura: amos salida: esclavos evaluacin
matriz Y precarga matriz O matriz O matriz Y
1 2
evaluacin
precarga matriz Y
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
T8 PUERTAS SEUDO-NMOS Y PUERTAS DE TRANSMISIN
T8.1. Puertas seudoNMOS
T8.2. Transistor de paso y puerta de transmisin
T8.3. Lgica dinmica
La tecnologa CMOS, adems de las puertas inversoras configuradas con dos planos
de transistores complementarios (puertas complementarias), ofrece otros dos tipos de
puertas que son muy tiles en determinados casos.
Las puertas NOR seudoNMOS, en las cuales el plano P queda reducido a un nico
transistor PMOS que acta como resistencia de polarizacin, permiten un alto nmero de
entradas, sin que ello repercuta en alto nmero de transistores en serie (lo cual limitara
gravemente la respuesta de la puerta en cuanto a intensidad, velocidad y ruido). Estas
puertas seudoNMOS son muy apropiadas para configurar las estructuras reticulares:
decodificadores, multiplexores y demultiplexores, y matriciales: ROM, PAL y PLA;
tambin lo son para los dispositivos programables derivados de tales estructuras, con la
importante ventaja de que solamente es preciso programar el plano N.
Por contra, las puertas seudoNMOS pierden la caracterstica de consumo esttico nulo
y requieren un dimensionamiento adecuado de sus transistores para asegurar la tensin de
salida correspondiente al 0: V(0) 0 V.
Los transistores MOS individuales, utilizados como conmutadores (transistores de
paso), presentan limitaciones a la hora de transmitir uno de los valores booleanos (el
NMOS transmite mal el 1 y el PMOS el 0). Pero el conjunto NMOS - PMOS en paralelo
resuelve esa limitacin y conforma una puerta de transmisin que es til para configurar
multiplexores y biestables; tales bloques, construidos con puertas de transmisin, requieren
muchos menos transistores que si se configuran con puertas inversoras, ocupan menor rea
de integracin y ofrecen menores tiempos de propagacin. Asimismo, la puerta de
transmisin es un adaptador tri-estado, pues, cuando no conduce, su salida se encuentra en
situacin de desconexin (alta impedancia).
Adems, este captulo introduce la lgica dinmica que, utilizando como elementos
de memoria las capacidades de entrada de las propias puertas lgicas, permite reducir
an ms el rea de integracin de los biestables y, con ello, aumentar la densidad de
integracin de los circuitos secuenciales. Este almacenamiento de tensiones booleanas sobre
pequeos condensadores tiene el inconveniente de la descarga de los mismos a lo largo del
tiempo pero resulta til si dichos valores se actualizan o se refrescan con una frecuencia
adecuada (superior a un cierto valor mnimo, ~1 KHz).
Por otra parte, la lgica dinmica aplicada a las puertas seudoNMOS, permite su
funcionamiento con consumo esttico nulo.
214 El ect rni ca Di gi t al
T8. 1. Puert as seudoNMOS
Cuando se necesitan puertas con un amplio nmero de entradas (en particular en las
estructuras matriciales en que tal nmero suele ser muy alto) se utiliza la configuracin
seudoNMOS y se emplean nicamente puertas "o-negada" (Nor):
a) la lgica seudoNMOS conforma solamente el plano N y utiliza un solo transistor
PMOS permanentemente habilitado (conectado a 0 V), que se comportar como
una simple carga resistiva;
b) las puertas "o-negada" (Nor) presentan sus transistores en paralelo en el plano N;
no existe problema de incluir en dicho plano muchos transistores.
El calificativo seudoNMOS proviene de que este tipo de puertas, con un transistor
superior (que conduce siempre) como resistencia de polarizacin, es propio de las
tecnologas NMOS: la lgica seudoNMOS copia directamente el diseo NMOS
utilizando un transistor de polarizacin de canal P.
La configuracin "o-negada" (Nor) seudoNMOS proporciona una alternativa eficaz
para puertas de alto nmero de entradas y, adems, reduce considerablemente el nmero
de transistores, el rea de integracin y la complejidad del diseo fsico; pero, en cambio
presenta dos serios inconvenientes:
- los niveles de tensin de salida no quedan garantizados por la tensin umbral de los
transistores
- y su consumo no es nulo, ya que para Vo = 0 conducen el plano N y el transistor P.
Diseo de un inversor seudoNMOS:
T2
T1
V
o
V
i
V
CC
Sea VCC = 5 V y VTO = 1 V,
Vi < 1V T2 no conduce y T1 s
Vo =VCC = 5 V
Vi >> 1 V T2 conduce y T1 tambin
Vo =VCC.R2/( R1 + R2)
siendo R1 = resistencia PMOS
y R2 = resistencia NMOS:
Interesa Vo pequeo; para ello, R2<<R1.
En un inversor seudoNMOS la salida 1 se produce de igual forma que en un inversor
CMOS: conduce el transistor PMOS y no lo hace el NMOS; pero para salida 0 conducen
ambos transistores y para asegurar una tensin de salida prxima a 0 V se requiere una
relacin de geometras entre ambos transistores adecuada.
T8. Puert as seudoNMOS y de t ransmi si n 215
En el inversor CMOS cada valor booleano est garantizado por la tensin umbral del
transistor que transmite dicho valor; en el seudoNMOS hay un solo transistor activo, el
NMOS, que garantiza solamente su situacin de corte, salida 1, mientras que para salida 0
aparece un divisor de tensin entre las resistencias que presentan ambos transistores y es
preciso conseguir, por diseo geomtrico, que la resistencia que presenta el transistor N
sea muy inferior a la presentada por el P: RNMOS << RPMOS.
Habida cuenta de que la resistencia de paso de un transistor MOS es inversamente
proporcional a su factor de forma ff = W/L, se requiere una relacin adecuada entre los
tamaos de los dos transistores que configuran el inversor, de manera que sus factores de
forma verifiquen la desigualdad: WN/LN >> WP/LP.
El diagrama de Memelink permite un anlisis cuantitativo; para Vo = 0:
V = V
V
oL
i,NMOS
CC
V - V
CC uN
V - V
CC uP
En situacin esttica por ambos transistores circula la misma intensidad
INMOS = IPMOS N . AN
= P.AP electrones.cox.WN/LN.AN = huecos.cox.WP/LP.AP
'. ' ; '
= = = = =
N
P
P
N
electrones
huecos
N N
P P
electrones
huecos
N
P
P
N
ff
ff
L W
L W
A
A
A
A
AN = '..AP ( ) V V
2
1
2
uP CC P
= A
supuesto VoL pequeo ( )
oL uN CC N
V . V V = A
( ) ( )
2
uP CC oL uN CC
V V
2
1
V V V = '.. .
La tensin de salida para el 0 booleano no ser exactamente 0 V sino algo superior:
( )
( )
'.
. 2
uN CC
2
uP CC
oL
V V
V V
V
=
y para que dicha tensin sea prxima a 0 V, interesa pequeo: 1
=
ff
P
ff
N
=
W
P
L
P
W
N
L
N
<< 1
216 El ect rni ca Di gi t al
Para la tecnologa :
VCC = 5 V; VuN = 1 V; VuP = 1 V; ' = 1/3;
la tensin de salida para el 0 ser:
( )
( ) ( )
3
2
3
1
. 2
) 1 5 (
'.
. 2
=
=
1 5 V V
V V
= V
2
uN CC
2
uP CC
oL
que no ser exactamente 0 V, sino algo inferior a : 0,66
= 1/4 = 0,25
Vo = 0,17 V
= 1/5 = 0,2
Vo = 0,13 V
= 1/7 = 0,15
Vo = 0,1 V.
Interesan valores de bajos; adems, la funcin de transferencia del inversor
seudoNMOS presenta mejores caractersticas de conmutacin (se hace ms abrupta),
cuanto menor es .
Para conseguir << 1, con la menor ocupacin posible de rea de integracin, se
aumenta adecuadamente la longitud del transistor PMOS de polarizacin (en una puerta
hay un solo transistor PMOS y muchos NMOS): para = 1/4, LPMOS = 4 Lmn.
Al utilizar lgica seudoNMOS se pierde la caracterstica de consumo nulo propia de
la tecnologa CMOS; cuando la salida es 0 conducen ambos transistores y, por tanto,
circula una intensidad no nula:
( )
( )
( )
( )
'. .
'.
. 2
. . .
2
V V
L
W
. K I
V V
V V
V
V . V V
L
W
. K
L
W
K = I
2
uP CC
p
uN CC
2
uP CC
oL
oL uN CC p p
=
=
N
A
.
Para la tecnologa :
p (NMOS) ~ 40 A/V
2
; W/L = 1,5
( )
A . 160 '. . . =
=
2
V V
L
W
. K I
2
uP CC
p
para = 1/4 = 0,25
Vo = 0,17 V I = 160 = 40 A
= 1/5 = 0,2
Vo = 0,13 V I = 160 = 32 A
= 1/7 = 0,15
Vo = 0,1 V I = 160 = 23 A
Esta intensidad es del mismo orden de magnitud que la que consume el inversor
CMOS en la situacin de conmutacin (36 A).
T8. Puert as seudoNMOS y de t ransmi si n 217
Las grficas siguientes presentan la funcin de transferencia Vo - Vi y el consumo de
intensidad de un inversor seudoNMOS de la tecnologa , obtenidas mediante simulacin
SPICE; el transistor NMOS es de tamao mnimo y la relacin de geometras es = 1/4
LNMOS = 1 m, WNMOS = 1,5 m, VTO,NMOS = 1 V, p,NMOS = 40 A/V
2
LPMOS = 4 m, WPMOS = 1,5 m, VTO,PMOS = 1 V, p,PMOS = 15 A/V
2
.
i
1V 2V 3V 4V 5V 0V
V(2)
0V
2.0V
4.0V
5.0V
i
0V 1V 2V 3V 4V 5V
I(VCC)
-40uA
-20uA
0A
-46uA
Funcin de transferencia VoVi seudoNMOS Consumo de intensidad ICC del inversor
La lgica seudoNMOS evita la necesidad de duplicar el Plano N en una combinacin
dual de transistores PMOS y la necesidad de conectar entre s cada pareja de transistores;
con ello se reduce considerablemente el rea de integracin y la complejidad del diseo
geomtrico. Pero, en cambio, presenta dos inconvenientes relativos, ambos, a la salida 0:
1. en su diseo ha de tenerse en cuenta la relacin de geometras de los transistores: el
cociente entre factores de forma = WP/LP / WN/LN para asegurar que Vo(0) 0 V;
2. el consumo no es nulo: ICC(0) 0, pues conducen a la vez el plano N y el transistor P.
El primero de los inconvenientes repercute slo en consideraciones geomtricas en la
etapa de diseo y la correspondiente ocupacin de rea.
El segundo, el consumo no nulo, no es grave si el nmero de estas puertas en un
circuito integrado es reducido y su efecto puede disminuirse conectando la puerta del
transistor PMOS a una seal de habilitacin E , normalmente a 1 y que pase a 0
solamente cuando interese la actuacin de la correspondiente puerta lgica (caso de que el
clculo booleano que realiza dicha puerta no se requiera constantemente).
218 El ect rni ca Di gi t al
La configuracin seudoNMOS utiliza solamente puertas "o-negada" (Nor), ya que
en ellas los transistores se encuentran en paralelo:
Vcc
Estas puertas "o-negada" (Nor) seudoNMOS resultan muy tiles para construir las
estructuras reticulares de muchas entradas (decodificadores, multiplexores, demux.,
ROM, PLA, PAL,...); tambin son muy apropiadas para dispositivos programables, tipo
PROM, PLA, PAL, PLS o CPLDs. Ello es debido a que:
- permiten configurar trminos producto de un alto nmero de entradas, gracias a la
conexin en paralelo de sus transistores
- y presentan un solo plano activo de forma que, en cuanto a dispositivos programables,
solamente ser necesario efectuar la programacin sobre el plano NMOS y tal
programacin consistir en desconectar transistores que se encuentran en paralelo.
Si se utilizan puertas CMOS, con los dos planos de transistores completos, adems
del problema de tener un alto nmero de transistores en serie, la programacin de ambos
planos sera sumamente compleja, pues, en aquel en que los transistores se encuentren en
serie, su programacin consistir en puentearlos (lo cual es mucho ms difcil que
desconectarlos).
T8. 2. Transi st or de paso y puert a de t ransmi si n
Otro importante complemento de las puertas booleanas CMOS, conformadas por
sendos planos de transistores P y N, lo constituye el transistor de paso, equivalente a un
simple interruptor:
Vi
C
L
V
G
Vo
V = V
G
V
TO
V
o
=V
S
V '
CC
El transistor conduce cuando VG = VCC = 1 y no lo hace para VG = 0 V = 0.
T8. Puert as seudoNMOS y de t ransmi si n 219
A) Supongamos VG
= 1 = VCC, para Vi = VCC el transistor conduce y configura un
camino de carga hacia la capacidad de entrada de la puerta o puertas a las que est
conectado (CL).
En este proceso de carga el terminal de entrada Vi acta como drenaje y el terminal
de salida Vo como fuente; al ir aumentando Vo
= VS la intensidad se hace ms pequea,
finalizando el proceso de carga cuando Vo
= VS = V' (es decir, cuando VTO + V' alcanza
el valor VG), en cuyo caso ya no existe canal y el transistor no conduce.
La tensin de salida mxima sobre CL es V':
VTO + V' = VG ; V' = VG
- VTO (4 V para Vi
= VG
= 5 V y VTO
= 1 V)
Este desplazamiento a la baja de la tensin de salida 1 es an mayor debido al
efecto substrato [ver apartado T6.3.6]:
VG = VTO + K.V' V' = (VG - VTO)/ K (~ 3,5 V para K
= 1,15).
La salida no llega a alcanzar la tensin correspondiente al 1 booleano V(1) sino que
se queda por debajo. Con ello la puerta siguiente a un transistor de paso no tiene
asegurado el corte del transistor PMOS; se pierde entonces la condicin de consumo nulo
y disminuye en gran medida el margen de ruido de dicha puerta.
Ahora bien, puede evitarse dicha situacin (consumo no nulo de la puerta que sigue a
un transistor de paso) si se integran transistores PMOS cuya tensin umbral VTO sea
mayor que la tensin umbral del transistor NMOS de paso (para VTO,PMOS = -1,8 V, la
tensin de salida 1 del transistor de paso, ~ 3,5 V, es suficiente para mantener en corte los
transistores PMOS).
El desplazamiento de V(1) no es acumulativo (no es un efecto resistivo sino de cierre
de canal), de forma que si se conectan varios transistores de paso seguidos (en serie), la
tensin de salida 1 del conjunto seguir siendo V' = (VG - VTO)/ K.
B) Para Vi = 0 V, si la capacidad CL se encontraba previamente cargada (tensin de
salida V(1)), se produce su descarga hasta alcanzar 0 V: el paso del 0 booleano se
efecta sin desplazamiento de tensin.
Tngase en cuenta que el transistor MOS es simtrico:
- cuando Vi = VCC dicho terminal acta como drenaje y Vo como fuente,
- pero para Vi = 0 V los papeles de drenaje y fuente se intercambian ya que la
intensidad en el transistor circula en sentido contrario.
En conclusin, como transistor de paso el NMOS transmite bien el valor booleano 0
pero no el valor 1 (cuya tensin queda reducida al pasar a travs del transistor); por ello,
en las puertas CMOS los transistores NMOS forman el plano inferior que transmite el
valor 0. Por simetra, el transistor PMOS transmite bien el valor 1 pero no el 0 (que se
desplaza hacia tensiones positivas al pasar a travs del transistor); en las puertas CMOS
los PMOS forman el plano superior que transmite el valor 1.
220 El ect rni ca Di gi t al
Funciones de transferencia Vo Vi de transistores de paso NMOS y PMOS:
Tecnologa: VTO,NMOS = 1 V, VTO,PMOS = 1 V, GAMMA = 0,25, NSUB = 10
15
.
i
0V 1V 2V 3V 4V 5V
V(2)
0V
2.0V
4.0V
5.0V
i
0V 1V 2V 3V 4V 5V
V(2)
0V
2.0V
4.0V
5.0V
Transistor de paso NMOS Transistor de paso PMOS
Aadiendo al transistor de paso canal N un transistor complementario canal P, en
paralelo (y con las puertas de ambos conectadas a travs de un inversor para que se
encuentren en la misma situacin de conduccin o de corte), se obtiene una puerta de
transmisin que evita el desplazamiento en tensin del 1 booleano.
Vo
Vi
V
control
C
L
V
o
En una puerta de transmisin la salida (sobre CL) llega a alcanzar V(1) (caso de
Vi = V(1)) pues el transistor PMOS conduce hasta ese valor y la descarga llega
igualmente a 0 V (cuando Vi = 0 V) a travs del transistor NMOS. El transistor PMOS
asegura la salida 1 sin desplazamiento de tensin y el transistor NMOS hace lo propio
para la salida 0; por contra, son precisos 4 transistores (dos en la puerta de transmisin y
otros dos del inversor).
El clculo de los tiempos de conmutacin de una puerta de transmisin es anlogo al
desarrollado en el captulo T7 para un inversor, de forma que los tiempos resultantes son
del mismo orden e incluso inferiores a los all obtenidos: la carga se realiza bsicamente
por un transistor PMOS ayudado parcialmente por el NMOS que conlleva en paralelo y
viceversa (y tal colaboracin parcial de ambos transistores reduce los tiempos) .
T8. Puert as seudoNMOS y de t ransmi si n 221
Mul t i pl exores
La puerta de transmisin tiene el inconveniente de que la variable de control ha de
actuar a travs de dos entradas en forma invertida (con un inversor intermedio), de
manera que a los dos transistores que configuran la puerta han de agregarse otros dos para
el correspondiente inversor. Pero este inconveniente no es tal en aquellas estructuras que
siempre utilizan las entradas en forma afirmada y negada; en tal sentido las puertas de
transmisin resulta tiles para construir multiplexores:
A
A
y
lnea 0
l nea 1
Multiplexor de 2 lneas.
Un multiplexor de 2 entradas es directamente ampliable conectando mdulos iguales
en cascada (para n lneas sern necesarios n-1 mdulos conectados en cascada):
l
0
l
1
l
4
l
5
l
2
l
3
l
6
l
7
c b
Y
a
El esquema anterior contiene 14 puertas de transmisin y 3 inversores, en total 34
transistores, mientras que un multiplexor anlogo realizado con puertas "y-negada"
(Nand) necesita 8 puertas de 4 entradas, una de 8 y 3 inversores, es decir, 86 transistores.
De esta forma, la conexin en cascada de puertas de transmisin proporciona una
configuracin muy simple y modular para los multiplexores, el nmero de transistores
necesarios es claramente inferior a los que se requieren en una configuracin tpica
CMOS (con puertas Nand o Nor) y el tiempo de propagacin es algo menor.
La reduccin en el numero de transistores se refleja sobre el rea de integracin
necesaria y, tambin, sobre los tiempos de propagacin: habr menor numero de
transistores en serie, con lo cual las constantes de tiempo que limitan la velocidad del
circuito sern menores. Por ejemplo, en el multiplexor anterior, la tansmisin de un 0
implica a 3 transistores NMOS en serie, mientras que con puertas "y-negada" (Nand)
habra 8 transistores NMOS en serie en la puerta de salida.
222 El ect rni ca Di gi t al
Habida cuenta de que las puertas de transmisin son simtricas, un multiplexor
construido con ellas tambin lo es y puede ser utilizado como demultiplexor; en tal caso,
presenta el problema de que las lneas de salida no seleccionadas quedan en alta
impedancia (no en salida 0, como correspondera a un demultiplexor digital), lo cual
puede solventarse aadiendo resistencias que referencien a 0 V dichas lneas.
Incluso, en muchas ocasiones, es til el estado de alta impedancia de las salidas del
demultiplexor pues permite conservar sobre cada lnea el ltimo de los valores
transmitidos a la misma (para lo cual ser necesario que exista una capacidad adecuada
conectada en cada lnea de salida).
Las puertas de transmisin son, tambin, buenos interruptores analgicos (analog
switches) que controlan el paso de seales en el intervalo [0,VCC] determinado por las
tensiones de control (de puerta) de sus transistores; caso de que la seal de control utilice
como niveles -V1 y +V2, la puerta de transmisin admitir seales analgicas entre tales
valores [-V1 ; +V2].
De esta forma, las puertas de transmisin sirven para muestrear seales analgicas y
para realizar su multiplexado o demultiplexado: un multiplexor construido con puertas de
transmisin puede transmitir cualquier tensin dentro de los limites fijados por sus
tensiones de control [-V1 ; +V2]; de esta forma se dispone de multiplexores analgicos
que permite seleccionar por su nmero una de entre n tensiones de entrada (por ejemplo,
para medir diversas tensiones con un mismo conversor analgico-digital).
El mismo multiplexor, utilizado en sentido inverso (una entrada, n salidas) es un
demultiplexor analgico, cuyas lneas de salida adoptan el estado de alta impedancia
cuando no son seleccionadas (y pueden conservar, sobre capacidades, el ltimo valor de
tensin transmitido a cada lnea).
Bi est abl es
Los biestables en tecnologas CMOS suelen construirse con puertas de transmisin:
D Q
Q
E
Biestable D habilitado por niveles
Esta configuracin requiere 10 transistores, mientras que la configuracin tpica con
puertas "y-negada" (Nand) necesita 18; la reduccin del nmero de transistores implica,
tambin en este caso, una disminucin del tiempo de propagacin del biestable.
T8. Puert as seudoNMOS y de t ransmi si n 223
D
Ck
Q
Q
Biestable D sncrono: habilitado por flancos
Para construir un biestable D sncrono con puertas de transmisin se utilizan 18
transistores, frente a los 36 necesarios con puertas "y-negada" (Nand). Adems de la
reduccin del nmero de transistores y del rea de integracin, tambin se reducen en
forma importante los tiempos funcionales y, en particular, el tiempo de propagacin.
T8. 3. Lgi ca di nmi ca
Bi est abl es di nmi cos
Los registros dinmicos utilizan biestables an ms simples que los representados en
la pgina anterior:
Q
E
En este biestable la informacin se almacena sobre la capacidad de entrada del
inversor (la cual sufre, cuando queda aislada, un proceso de descarga que limita el tiempo
de almacenamiento a unos pocos milisegundos).
En muchas ocasiones, por ejemplo en las memorias dinmicas DRAM, el biestable
se reduce solamente a un transistor y un condensador:
E
lnea
de bit
Q
El ahorro en nmero de transistores (y por tanto, en rea de integracin) es superior a
2/3 respecto a los biestables estticos; tal reduccin de tamao resulta muy atractiva y por
ello, cuando el tiempo de permanencia de la informacin es reducido (inferior a
10 milisegundos) o cuando resulta fcil refrescar la informacin, se utilizan registros
dinmicos configurados con estos biestables.
224 El ect rni ca Di gi t al
Particularmente interesante (por la reduccin de tamao) es la utilizacin de
biestables dinmicos en el diseo sncrono (con reloj):
Q
2
D
master slave
1
Este biestable sncono dinmico requiere solamente 8 transistores mientras que su
configuracin esttica (con puertas de transmisin) necesita 18 (y 36 si se configura con
puertas Nand); los biestables dinmicos sncronos necesitan dos fases de reloj no
solapadas:
t t
1
2
Cuando 1 = 1 el master recoge la
informacin de su entrada: fase de captura
y en 2 = 1 el slave la presenta en su salida:
fase de salida.
La separacin entre ambas fases (entre la captura y la salida de la informacin)
viene exigida porque el ms mnimo solapamiento entre ellas lleva directamente a la
salida Q el valor de la entrada D. Es un requisito de seguridad de funcionamiento (vase
el apartado 15.4, segundo volumen) que evita las restricciones relativas al tiempo de
mantenimiento y a la verticalidad y simultaneidad en la seal de reloj; estas restricciones
son particularmente fuertes en este caso, debido al reducido tiempo de propagacin que
presentan estos biestables tan simples.
La conexin en serie de biestables dinmicos sncronos da lugar a registros de
desplazamiento dinmicos, con una ocupacin de superficie muy reducida, y muy tiles
cuando el desplazamiento se ha de producir con frecuencias de reloj superiores a 1 KHz
(por debajo de esa frecuencia el tiempo de permanencia del dato en las capacidades que
actan como elementos de memoria, ~1 ms, no es suficiente).
En forma anloga es posible construir contadores dinmicos (para frecuencias de
reloj superiores al KHz) sin ms que aadir a las entradas Di la lgica correspondiente al
contaje. Por ejemplo, para un contador dcada con entrada de habilitacin E:
D
0
= q
0
.E + q
0
.E = q
0
E
D
1
= q
1
.q
0
.q
3
.E + q
1
.(q
0
+ E)
D
2
= q
2
.q
1
.q
0
.E + q
2
.(q
1
+ q
0
+ E)
D
3
= q
3
.q
2
.q
1
.q
0
.E + q
3
.(q
0
+ E)
De igual forma, cualquier sistema secuencial sncrono puede disearse con biestables
dinmicos; en general, tales biestables permiten una fuerte reduccin en el rea de
integracin, siempre que el reloj del sistema sncrono acte a frecuencias no bajas.
T8. Puert as seudoNMOS y de t ransmi si n 225
Tiempo de permanencia de un dato en un registro dinmico
En los registros dinmicos (conformados por una puerta de transmisin y un
inversor) el dato es almacenado en la capacidad de entrada del inversor (capacidad de
puerta de los dos transistores que lo conforman); cuando la puerta de transmisin es
deshabilitada la conservacin de carga en dicha capacidad asegura la permanencia del
valor booleano en el inversor durante un cierto tiempo.
Ahora bien, en la situacin de deshabilitacin las propias uniones difusin-sustrato
de la puerta de transmisin configuran un camino de descarga para la capacidad de puerta
que mantiene el valor booleano; stas uniones se encontrarn en polarizacin inversa, lo
cual supone una intensidad de corriente sumamente pequea pero no nula. Al cabo del
tiempo dicha capacidad se descargar y el valor booleano se perder: precisamente por
ello estos registros son dinmicos, necesitan ser refrescados cada cierto tiempo (presentan
una frecuencia mnima de trabajo).
Podemos definir el tiempo de permanencia como aquel en que la variacin de
tensin de la capacidad de puerta es inferior a la tensin umbral de los transistores VTO,
ya que a partir de ese valor de tensin la intensidad esttica por el inversor deja de ser
nula (se pierde la condicin de consumo esttico nulo).
Una estimacin del orden de magnitud puede ser la siguiente:
intensidad de descarga ~ 1 pA
capacidad de puerta ~ 1 fF
V = VTO ~ 1 V t = C . V / I 10
-15
/ 10
-12
= 10
-3
s = 1 ms.
Lgi cas seudoNMOS di nmi cas.
Para evitar el problema del consumo esttico no nulo en las estructuras seudoNMOS,
se utiliza una lgica dinmica con reloj, en la cual se distinguen dos fases en cada
unidad de tiempo (pulso de reloj):
- fase de precarga (de la salida de la puerta) = 0
- fase de evaluacin (de la funcin que realiza) = 1
V
SD
y
a
b
c
m
plano N
PMOS
NMOS
C
.
.
.
L
226 El ect rni ca Di gi t al
Se aade a la puerta un transistor auxiliar NMOS y los dos transistores extremos, el
PMOS de polarizacin y el NMOS auxiliar, se conectan al reloj de forma que, en
ninguna de las dos fases de , conducen a la vez ambos transistores: el consumo de la
puerta es nulo.
En cada pulso de reloj, la salida es llevada inicialmente a 1:
precarga = 0, conduce el transistor PMOS, salida y = 1
y, posteriormente, el plano N calcula la funcin:
evaluacin = 1, caso de valor 0 descarga la salida, salida y = f(X).
Durante la fase de precarga la salida es llevada a valor booleano 1 a travs del
transistor PMOS de carga (que conduce cuando = 0). En la fase de evaluacin, si la
salida (conforme a la funcin que calcula la puerta) debe ser 0, tal valor es comunicado a
travs del plano N y del transistor NMOS auxiliar; pero cuando deba ser 1, dicho valor ha
de conservarse (sobre la capacidad de entrada de la puerta siguiente) a partir de la tensin
almacenada en la precarga.
La duracin de la fase de evaluacin no puede ser indefinida, pues existir un
proceso de descarga que deteriorar el valor booleano almacenado: estas puertas son
dinmicas y han de actuar por encima de una cierta frecuencia de reloj. Sern puertas
de tipo "o-negada" (Nor) para admitir un amplio nmero de entradas (que es la
aplicacin propia de las puertas seudoNMOS).
Adems, este tipo de puertas (seudoNMOS dinmicas) no pueden conectarse
directamente entre s, pues es preciso que los correspondientes valores de sus entradas
(en particular, las entradas cuyo valor sea 0) estn presentes antes de iniciarse la fase de
evaluacin.
m'
b'
V
DD
Y1
a
b
m
V
DD
Y2
plano
N2
plano
N1
.
.
.
.
.
.
t
evaluacin
Y1
precarga
T8. Puert as seudoNMOS y de t ransmi si n 227
Durante la fase de precarga ambas salidas se ponen a 1; al iniciarse la evaluacin la
salida Y1 tardar un cierto tiempo t en pasar a 0 (supuesto que tal sea su valor), durante
el cual (t) Y1 provoca la descarga de Y2 (puertas Nor, transistores N en paralelo), de
forma que, si t es suficientemente amplio para que Y2 deje de valer 1, ya no podr
adoptar tal valor booleano (t anula el efecto de la precarga).
Por ello, estas puertas seudoNMOS dinmicas son de utilizacin individual. Para
conseguir la conectividad directa entre puertas seudoNMOS dinmicas se han diseado
soluciones sumamente complejas, ingeniosas y variadas: lgicas con 4 fases de reloj,
lgicas domin, C
2
MOS, CSVL,..., pero tales soluciones son ms acadmicas que
efectivas.
En las estructuras matriciales tipo ROM, PLA, PAL, ..., que utilizan dos conjuntos
sucesivos de puertas (matriz Y - matriz O), es posible conectar tales puertas mediante el
empleo de dos fases de reloj 1, 2 no solapadas:
1 = 0
evaluacin de la matriz Y
1 = 1 precarga
de la matriz Y
1
2
2 = 0
evaluacin de la matriz O
2 = 1 precarga
de la matriz O
De esta forma, el primer conjunto de puertas (matriz Y) evala sus funciones
booleanas mucho antes de iniciarse la evaluacin del segundo conjunto (matriz 0).
En general, los bloques constitutivos de un sistema digital son del tipo siguiente
Bloques
anteriores
B
i
e
s
t
a
b
l
e
s
B
i
e
s
t
a
b
l
e
s
Lgica
combinacional
Bloque
es decir, la lgica combinacional se encuentra entre biestables.
228 El ect rni ca Di gi t al
Las funciones booleanas intermedias (la lgica combinacional) pueden ser
construidas en forma matricial (suma de productos = PAL) y los biestables (los de salida
del propio bloque) pueden ser descompuestos en sus dos partes amo-esclavo e
intercaladas en la lgica:
1
amos
matriz "O"
o puertas O
SUMAS
matriz "Y"
o puertas Y
PRODUCTOS
esclavos
captura 1
precarga 2
evaluacin 2
2
captura 2 precarga 1
evaluacin 1
Cada semibiestable (master/slave) puede ser construido, en configuracin dinmica,
mediante una simple puerta de transmisin: el valor booleano queda almacenado en la
capacidad de entrada de la puerta siguiente (o puertas siguientes).
Habida cuenta de que tanto la matriz Y como la matriz 0 han de ser realizadas
mediante puertas "o-negada" (Nor), el bloque considerado quedara en la forma
siguiente:
Puertas NOR
seudoNMOS
dinmicas
en paralelo
1
2
2 = 1
2 = 0
precarga
evaluacin
1 = 1
1 = 0
2
1
precarga
evaluacin
Puertas NOR
seudoNMOS
dinmicas
en paralelo
secuencia
temporal
evaluacin captura: amos salida: esclavos evaluacin
matriz Y precarga matriz O matriz O matriz Y
1 2
evaluacin
precarga matriz Y
Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. [email protected]
T9 EL CIRCUITO INTEGRADO COMPLETO:
CUESTIONES DIVERSAS
T9.1. Terminales del circuito integrado: entradas y salidas
T9.2. Densidad de integracin
T9.3. Consideraciones respecto al diseo fsico: reglas de diseo
Existe una serie de cuestiones a tener en cuenta respecto al circuito integrado completo,
que no han sido consideradas en los captulos anteriores dedicados expresamente a modelar
el comportamiento de los transistores MOS y de las puertas booleanas.
En primer lugar, adems de las funciones booleanas que configuran el circuito, ste
precisa comunicarse con el exterior por medio de entradas, salidas y lneas de alimentacin
(por las cuales recibe la energa necesaria para su funcionamiento). Esta comunicacin se
establece a travs de los terminales (pines o patillas) del encapsulado del circuito
integrado que conectan, mediante pequeos hilos metlicos soldados, con los PADs
(cuadrados de aluminio) del dado de silicio (chip) resultante de la integracin;
internamente, se requieren adaptadores de entrada, de salida o simples lneas metlicas de
conexin (en el caso de las alimentaciones).
Los adaptadores de entradas sirven para proteger, mediante recortadores y filtros, a las
entradas del circuito booleano; en algunos casos es necesario que tales entradas tengan
histresis (entradas Schmitt). Las salidas precisan de adaptadores capaces de suministrar
intensidades relativamente altas y, en ocasiones, capacidad de alta impedancia (tri-estado)
o de bidireccionalidad (posibilidad de actuar como salida y como entrada).
Se estudia, tambin, en este captulo la relaccin entre las dimensiones de la tecnologa y
la densidad de integracin (nmero de puertas o de transistores por mm
2
) y, tambin, con
la velocidad de trabajo (relacin que se establece a travs de la capacidad de puerta de los
transistores). Ambos parmetros, densidad de integracin y velocidad de trabajo, aumentan
cuadrticamente al disminuir la anchura de las lneas de polisilicio (Lmn = longitud
mnima del canal, dimensin que caracteriza el proceso de integracin).
Asimismo se introducen y justifican las reglas de diseo (reglas que se refieren a las
dimensiones fsicas o grficas) que expresan las limitaciones de la tecnologa en cuanto a
anchuras mnimas, separaciones, prolongaciones, solapamientos, Tales reglas han de ser
tenidas en cuenta en el diseo de las puertas a nivel fsico, es decir, en el dibujo de las
regiones semiconductoras y de las conexiones entre ellas, en el layout o mscaras que son
el resultado ltimo del diseo y el molde primigenio de la fabricacin.
Como parte de las reglas de diseo (y como requisito de particular importancia en el
mismo) se reitera la necesidad de polarizar los substratos y el problema del latch-up que
obliga a polarizarlos intensivamente.
228 El ect rni ca Di gi t al
T9. 1. Termi nal es del ci rcui t o i nt egrado: ent radas y sal i das
El xido de pasivacin del circuito integrado recubre todo el circuito (todo el chip)
salvo una serie de cuadrados de metal perifricos (PADs) previstos para realizar la
conexin con las patillas o terminales del circuito integrado encapsulado (pines); la
conexin se realiza a travs de finos hilos soldados por un extremo a las patillas y por el
otro a dichos cuadrados de metal (PADs), que conectan internamente con las entradas y
salidas del circuito integrado.
Ent radas
Las entradas exteriores son recibidas en el circuito integrado a travs de un circuito
de proteccin frente a posibles picos de tensin, transitorios bruscos o carga esttica;
dicho circuito suele estar formado por una resistencia de entrada, dos diodos en
polarizacin inversa (conectados a las dos lneas de polarizacin VCC y 0 V) y dos
pequeos condensadores en paralelo con los diodos. Los diodos recortan los picos de
tensin que desbordan la alimentacin y la componente capacitiva RC realiza un ligero
filtrado frente a transitorios bruscos.
PAD
V
CC
PAD
lnea de Polisilicio
V
CC
La resistencia se construye mediante una larga pista de polisilicio que habitualmente
rodea al PAD.
Los diodos se forman aprovechando la unin PN entre drenaje y substrato de dos
transistores NMOS y PMOS (con sus terminales de puerta y fuente en cortocircuito).
Tales transistores se construyen relativamente gruesos (rea de drenaje amplia), pues su
unin drenaje-substrato pasa a polarizacin directa cuando la tensin de entrada se
encuentra fuera del intervalo de alimentacin [0 V ; VCC] y, en tal situacin, deben
soportar intensidades relativamente altas; asimismo, se rodean de un anillo de guarda
para asegurar la polarizacin del substrato y, tambin, para evitar fenmenos de latch-up
(descritos en T2.1., primer volumen).
La componente capacitiva es aportada por las propias uniones PN de ambos diodos,
polarizadas en inverso, y por la capacidad drenaje-puerta de los transistores.
La intensidad mxima que soportan las uniones drenaje-substrato, actuando como
diodos de proteccin, se indica en los catlogos como IK (input clamp current, intensidad
de enclavamiento).
T9. El ci rcui t o i nt egrado compl et o 229
Ot ros t i pos de ent radas
En muchas ocasiones resultan de inters las entradas con histresis, entrada
Schmitt, que presentan dos tensiones de conmutacin Va y Vb; tales entradas son tiles
para aumentar la verticalidad de los flancos de la seal de entrada y para evitar rebotes
cuando la entrada se encuentra en el entorno de la tensin de conmutacin.
La histresis siempre requiere realimentacin positiva; en tecnologa CMOS se
consigue una entrada inversora con histresis mediante tres parejas de transistores, segn
la figura siguiente: sendos transistores duplicados en serie, que reciben la entrada, y una
tercera pareja de transistores que realimentan la salida del inversor.
V
CC
V
CC
V
i
V
o
Los transistores horizontales, conectados a la tensin de salida, introducen la
realimentacin que da lugar a la histresis: con salida 1 los dos NMOS inferiores forman
un divisor de tensin cuyo efecto es desplazar hacia arriba la tensin de conmutacin,
mientras que para salida 1 el divisor de tensin de los dos PMOS superiores desplaza
hacia abajo la otra tensin de conmutacin.
Funcin de transferencia de un inversor con histresis (entrada Schmitt):
Tecnologa , con transistores de tamao mnimo:
L = 1 m, W = 1,5 m, |VTO| = 1 V, p,NMOS = 40 A/V
2
y p,PMOS = 15 A/V
2
.
Vi
0V 0.5V 1.0V 1.5V 2.0V 2.5V 3.0V 3.5V 4.0V 4.5V 5.0V
V(2)
0V
2.0V
4.0V
5.1V
V(2)
Transicin de 0 a 5 V: Va = 1,45 V Transicin de 5 a 0 V: Vb = 3,05 V
230 El ect rni ca Di gi t al
La integracin de un simple inversor conectado a sendos terminales exteriores y con
una resistencia de polarizacin que lo site en la zona de conmutacin (Vi = Vo)
configura un amplificador inversor; realimentndolo externamente con un cristal de
cuarzo o resonador piezoelctrico se obtiene un oscilador en onda cuadrada, que puede ser
utilizado como reloj del sistema digital o como frecuencia fija de referencia (vase el
apartado dedicado a osciladores con cristal de cuarzo, T4.5., segundo volumen).
CK
interior CI
exterior CI
Ali mentaciones
Las lneas de alimentacin (VCC y 0 V) han de ser conectadas al circuito integrado a
travs de entradas especiales que pasan directamente del correspondiente cuadrado
metalizado de conexin (PAD) a lneas de aluminio. La alimentacin se distribuye a las
diversas puertas y biestables a travs de lneas de metal, relativamente gruesas, a fin de
que su resistencia sea mnima (y, con ella, las prdidas de tensin); dichas lneas se hacen
de la menor longitud posible para reducir tanto la resistencia como la autoinduccin que
presentan, la cual afecta a la produccin de ruido en las conmutaciones.
En la conexin de la alimentacin con las puertas y biestables, resulta til una
distribucin alternada de ambas lneas VCC y 0 V, en forma de peine:
PAD V
PAD
CC
La anterior configuracin de las lneas de alimentacin en peine hace que las
puertas deban alternarse en orientacin invertida (cabeza arriba / cabeza abajo, es
decir, con la tensin VCC arriba / abajo).
T9. El ci rcui t o i nt egrado compl et o 231
En circuitos integrados complejos se incluyen varias entradas de alimentacin, a fin
de reducir el ruido debido a la conmutacin simultnea de mltiples salidas (que ser
comentado un poco ms adelante al tratar de los adaptadores de salida).
Sal idas
Las salidas del circuito integrado se comunican al exterior a travs de inversores con
transistores muy anchos (W grande) para que puedan proporcionar intensidades de varios
miliamperios (un centenar de veces ms altas que las utilizadas en el interior del CI).
Asimismo debe tenerse en cuenta que el metal que conduzca tales intensidades (desde la
alimentacin a los transistores y de stos a las salidas) ha de ser convenientemente ancho:
~ 1m / 1mA para el aluminio en tecnologas actuales.
Para evitar los correspondientes retrasos en la propagacin de las seales (debidos a
capacidades de carga CL muy altas, tanto las capacidades exteriores como las propias de
la entrada CG de los gruesos transistores de salida) ha de aadirse una serie de inversores
en adecuada progresin de anchura W: parejas de inversores en escalera (ver T7.3.).
Resulta conveniente rodear los transistores de salida con sendos anillos de guarda que
eviten los fenmenos de latch-up, habida cuenta de que tales transistores pueden conducir
intensidades altas.
V
CC
PAD
Intensidad disponible en la salida para la tecnologa :
NMOS PMOS
Ro(0) ~ 4 K Ro(1) ~ 11 K
Intensidad suministrable por el inversor: Io = Vo / Ro
Admitiendo V(0) = 0,2 V y V(1) = 0,6 V
Io(0) ~ 0,2 / 4K 50 A Io(1) ~ 0,6 / 11K 50 A.
Para obtener Io ~ 10 mA es necesario aumentar el factor de forma 10 / 0,05 = 200
veces y, para ello, hacer los transistores 200 veces ms anchos: W = 200 Wmn.
Con W = 300 m y L = 1 m, ff = 300
Ro(0) ~ 20 Ro(1) ~ 60
Io(0) ~ 0,2 / 20 10 mA Io(1) ~ 0,6 / 60 10 mA.
232 El ect rni ca Di gi t al
Si la salida debe contar con la posibilidad de alta impedancia (tri-estado) se configura
mediante la siguiente lgica:
V
CC
PAD
D
: dato
C
: control
triestado
C = 0 PMOS no conduce NMOS tampoco
C = 1 D = 1 PMOS conduce NMOS no
habilitacin PMOS = D . C
C = 1 D = 0 PMOS no conduce NMOS si
habilitacin NMOS = D C D . C + =
Para configurar un terminal bidireccional se incluyen sendos adaptadores, uno de
entrada y otro de salida tri-estado.
En ocasiones, se aade a la salida (sea sta de tipo normal o tri-estado) una
resistencia de valor alto conectada a 0 V (resistencia de push-up) o a VCC (pull-down)
para asegurar que en la inicializacin (o en situaciones de alta impedancia) tales salidas
quedan referenciadas a 0 o a 1, respectivamente.
Asimismo, puede interesar prescindir del transistor PMOS en la salida, integrando
solamente el NMOS: salidas de drenaje abierto, anlogas a las de colector abierto,
que requieren una resistencia exterior para conectar con la alimentacin VCC y poder
formar el valor booleano 1 de salida; dimensionando adecuadamente el transistor NMOS,
estas salidas admiten tensiones e intensidades superiores a las de las salidas normales.
Las salidas de drenaje abierto permiten lgica "y" cableada: la conexin de varias
salidas de este tipo sobre una misma resistencia conectada a la alimentacin VCC da lugar
a una operacin "y" entre dichas salidas.
T9. El ci rcui t o i nt egrado compl et o 233
Rui do debi do a l a conmut aci n de l as sal i das
En la conmutacin de las puertas booleanas se producen variaciones en la intensidad,
las cuales son considerablemente grandes en los adaptadores de intensidad (buffers)
correspondientes a las salidas del circuito integrado. Tales variaciones no slo se deben a
los cambios de intensidad en las salidas sino tambin a los efectos capacitivos y
transitorios de conmutacin (conduccin simultnea de PMOS y NMOS). Los cambios de
valor de la intensidad relativos a tales adaptadores son importantes, habida cuenta de que
la anchura de sus transistores W es grande y, adems, son sumamente rpidos.
Estos cambios de intensidad originan picos de tensin (ruido) sobre las lneas de
alimentacin, que pueden producir errores en el funcionamiento del circuito; tales
variaciones de tensin se producen por efecto inductivo en relacin con la autoinduccin
L que toda lnea de conexin presenta. Las tensiones inducidas dependen del valor de la
autoinduccin y de la magnitud de la variacin de intensidad; ms en concreto, de la
pendiente que presenta el cambio de intensidad: V = - L dI/dt.
La autoinduccin en las lneas de alimentacin es particularmente significativa en el
hilo de conexin entre los terminales del encapsulado (pines) y el propio circuito
integrado y su efecto inductivo es importante porque las variaciones de intensidad en la
conmutacin de las salidas, adems de ser relativamente altas, presentan pendientes
fuertes (t 1 ns = 10
-9
s, que supone multiplicar por 10
9
la variacin I de intensidad).
Resulta necesario prestar atencin a las salidas que conmutan o que pueden hacerlo a
la vez, pues sus efectos inductivos se suman: conmutacin simultnea de mltiples
salidas. En tal caso conviene establecer varios terminales de alimentacin (varios pines)
en el circuito integrado y distribuir adecuadamente la alimentacin, de forma que salidas
que conmuten a la vez reciban su alimentacin desde terminales diferentes.
T9. 2. Densi dad de i nt egraci n
Densi dad de i nt egraci n en el ncl eo bool eano (core)
La ocupacin de la superficie del silicio viene determinada por
- las dimensiones de los transistores MOS en su zona de puerta (L, W)
- las dimensiones de las zonas de difusin (fuente y drenaje)
- las conexiones entre transistores y de stos con la alimentacin
- las separaciones obligadas entre ellos y entre sus conexiones.
Adems, los transistores PMOS requieren un substrato N (pozo) que impone
mayores separaciones: separacin entre el lmite del pozo y difusiones P (de los
transistores PMOS) internas al mismo y separacin entre pozo y difusiones N (de los
NMOS) fuera del pozo.
234 El ect rni ca Di gi t al
Las reglas de diseo (ver apartado siguiente) establecen un puente entre la
tecnologa y el diseo, sintetizando en forma resumida y parametrizada las posibilidades y
las limitaciones de la tecnologa. Tales reglas sealan las anchuras, separaciones y
solapamientos mnimos que aseguran una correcta fabricacin con una tecnologa
concreta, expresando tales dimensiones mnimas en nmeros enteros a partir de un
parmetro tomado como unidad de medida.
La dimensin mnima de una tecnologa corresponde a la anchura del polisilicio, o lo
que es lo mismo a la longitud mnima de los transistores Lmn, y la anchura mnima de las
difusiones, o sea, la anchura mnima de los transistores Wmn, suele ser vez y media la
longitud mnima Lmn : Wmn / Lmn = 3/2.
L = anchura del polisilicio = longitud del transistor
Lmn = dimensin mnima del proceso
(por ello Lmn identifica a la tecnologa)
W = anchura de la difusin = anchura del transistor
Para utilizar nmeros enteros en las medidas se adopta como unidad el parmetro
equivalente a la mitad de la longitud mnima: = Lmn / 2 y, de esta forma, todas las
dimensiones resultan mltiplos enteros de :
en transistores mnimos, L = 2 W = 3.
Tecnologa de 1: L = 1m W = 1,5 m = 0,5 m
El rea de la zona activa de un transistor mnimo (zona de puerta) ser: W . L = 6
2
;
su capacidad de puerta ser Cox. L . W = C
ox
. 6
2
. Para Cox = 0,7 fF/m
2
(que
corresponde a un espesor de xido de puerta tox = 50 nm):
Cox
. W . L = 0,7 . 6
2
4
2
fF
y como cada entrada se encuentra conectada a dos transistores, uno de canal N y otro de
canal P, la capacidad de entrada ser:
Ci 8
2
fF.
Para la tecnologa : Lmn = 1 m, Wmn = 1,5 m
= 0,5 m, Cox = 0,7 fF/m
2
para transistores mnimos: CG = 6
2
.Cox
1 fF
Ci = 2
CG 2 fF.
Dicha capacidad de entrada es un buen indicador de la velocidad de trabajo de las
puertas booleanas, pues los tiempos de conmutacin son proporcionales a la capacidad de
carga: t
p
5C/I
sat
; C depende cuadrticamente de las dimensiones de la tecnologa (L, W)
mientras que I
sat
depende del factor de forma (ff = L/W = 1,5) y no de las dimensiones.
T9. El ci rcui t o i nt egrado compl et o 235
La siguiente tabla expresa el rea de los transistores mnimos (en cuanto a su zona de
puerta) y la capacidad de una entrada (con dichos transistores mnimos), en funcin de las
dimensiones de la tecnologa:
Tecnologa rea T mn. Ci
2 m 1 6 m
2
8 fF
1m 0,5 1,5 m
2
2 fF
0,8 m 0,4 1 m
2
1,5 fF
0,5 m 0,25 0,4 m
2
0,5 fF
0,2 m 0,1 0,06 m
2
0,1fF
Al disminuir la dimensin lineal de los transistores, su rea y su capacidad
disminuyen cuadrticamente y, en igual medida, aumenta la densidad de integracin y
aumenta su velocidad de trabajo (disminuyen los tiempos de propagacin).
De ah el gran inters en disminuir la longitud mnima de la tecnologa: una pequea
disminucin de un d % en Lmn se traduce en un aumento cercano al 2d % en la densidad
de integracin y en la velocidad de trabajo alcanzable:
[.(1 - d/100)]
2
=
2
.(1 2d/100 +d
2
/10000)
2
.(1 2d/100) .
Para estimar la ocupacin de rea efectiva, teniendo en cuenta las conexiones y
separaciones as como la estructura de las puertas booleanas (que implican existencia del
pozo, substrato N de los transistores P, y de las zonas de fuente y drenaje), consideremos
la densidad de integracin en trminos de puertas y-negada (Nand) de 2 entradas:
- a partir de reglas de diseo tpicas (ver siguiente apartado) puede estimarse que
una puerta Nand de 2 entradas ocupa, al menos, un rectngulo cuyos lados son del
orden de 30 a 40 y cuya rea ser, por tanto, de unas 1000
2
, mientras que sus
cuatro transistores, en cuanto a zona de puerta (cruce de polisilicio-difusin que
conforma la zona activa del transistor), ocupan solamente 4 x 6
2
= 24
2
;
- existe, pues, un factor del orden de 40 entre la superficie ocupada por los
transistores (en sus zonas de puertas) y la superficie total necesaria para configurar
el circuito (es decir, ms del 95 % de la superficie se destina a conexiones,
separaciones y conformacin del circuito, ocupando los transistores, en cuanto a su
zona activa, poco ms del 2 %);
- en tal supuesto, la densidad de integracin en trminos de puertas Nand de 2
entradas ser: (1 mm
2
) / (1000
2
m
2
) = 10
6
/ 10
3
2
= 1000 /
2
;
- en trmino de transistores la densidad ser cuatro veces superior.
236 El ect rni ca Di gi t al
La tabla siguiente expresa la densidad de integracin en trminos de puertas Nand
(puertas por mm
2
) y en nmero de transistores por mm
2
, en funcin de las dimensiones
de la tecnologa:
Tecnologa d
I
(puertas Nand 2) d
I
(Transistores)
puertas / mm
2
transistores / mm
2
2 m 1 1000 4000 = 4.10
3
1 m 0,5 4000 16000 = 16.10
3
0,8 m 0,4 6000 24000 = 24.10
3
0,5 m 0,25 16000 64000 = 64.10
3
0,2 m 0,1 100000 400000 = 0,4.10
6
Tecnologas de mltiples metales y de varios polisilicios permiten aumentar an ms
la densidad de integracin, al reducir el rea necesaria para las conexiones.
Quede claro que estas densidades de integracin se refieren al interior del circuito
integrado o zona booleanamente activa, en la que se configuran las funciones y los
subsistemas booleanos: ncleo booleano o core; los transistores de dicha zona suelen ser
de tamao mnimo.
rea necesari a para l os el ement os de cont orno
Adems de la superficie booleanamente activa (core), todo circuito integrado
requiere una amplia superficie perifrica (contorno) para los adaptadores de entrada y
salida que permiten conectar el circuito con el exterior, as como para poder separar el
circuito de los adyacentes en la oblea de integracin.
A partir del borde extremo del circuito integrado (chip) es preciso reservar una franja
todo alrededor para poder cortar e individualizar los diversos circuitos formados en la
misma oblea: lnea de corte (scribe line). Junto a esta lnea de corte, rodeando tambin a
todo el circuito, se incluye en la integracin un anillo de metal (rectangular o cuadrado
segn la forma del chip) muy ancho, que proporciona un apantallamiento lateral al
circuito: anillo de guarda.
Dentro del anillo de guarda y distribuidos a lo largo de su contorno han de ir los
puntos de conexin externa, terminales del circuito integrado (PADs: entradas, salidas y
alimentacin), que permitan conectarlo, a travs de hilos unidos por soldaduras, a los
terminales (pines) de la carcasa que conforma la pastilla integrada definitiva; dichos
puntos de soldadura (PADs) suelen ser cuadrados de unos 100 m de lado y han de tener
una mnima separacin, tanto del anillo de guarda como de la superficie activa del silicio.
Adems, las entradas y salidas deben llevar unos circuitos de adaptacin (buffers):
- en las entradas tales adaptadores se reducen a una simple red Resistencia-Diodos (lnea
prolongada de polisilicio y transistores utilizados como diodos en polarizacin inversa),
T9. El ci rcui t o i nt egrado compl et o 237
- pero en el caso de las salidas son precisos amplificadores de intensidad con amplios
transistores que proporcionen intensidades de varios miliamperios e inversores en
escalera para evitar altos tiempos de propagacin; los adaptadores de salida se
complican, an ms, en los casos de terminales bidireccionales (entrada-salida) y tri-
estado (tercer estado de desconexin por alta impedancia).
Para apreciar la ocupacin de rea debida a todos estos elementos perifricos,
podemos utilizar los siguientes valores estimativos de la anchura de los diversos
elementos de contorno:
- lnea de corte [ ~ 200 m = 0,2 mm ]
que al ser compartida con los circuitos contiguos, solamente la mitad repercute
en cada circuito: ~ 100 m
- anillo de guarda ~ 50 m = 0,05 mm
- PADs: la anchura de la zona metlica para soldar el hilo de conexin a los pines
suele ser [ ~ 100 x 100 m ]
pero, adems, ha de haber varias separaciones:
-- separacin anillo de guarda / PAD ~ 50 m
-- anchura del PAD ~ 100 m
-- separacin de la zona activa ~ 50 m
- adaptadores (buffers): el peor caso corresponde a los adaptadores tri-estado y
bidireccionales ~ 150 m
Anchura total : ~ 100 + 50 + 50 + 100 + 50 + 150 m 0,5 mm
Los elementos de contorno ocupan una franja de aproximadamente medio milmetro
a lo largo de todo el contorno del circuito integrado.
0,5 mm
0,5 mm
L = lado ; rea del chip = L
2
lnea de corte
anillo de guarda
PAD
buffer
238 El ect rni ca Di gi t al
El rea de este contorno ser la correspondiente a 4 trapecios cuyas bases difieren en
1 mm y cuya altura es de 0,5 mm:
2
mm 1 - 2L 5 , 0 .
2
1 - L L
. 4 rea =
+
=
siendo L la medida (en mm) del lado del circuito integrado (chip); el aprovechamiento
de la superficie de silicio, en cuanto a zona booleana (core) ser:
2 2 2
1) - (L 1 2L - L 1) - (2L - L til superficie = + = =
%
L
1
- 1 . 100 .100
L
1) - (L
100 .
total superficie
til superficie
2
2
2
= =
con L expresado en milmetros.
La tabla siguiente expresa el rea de contorno y el aprovechamiento en cuanto rea
til a efectos booleanos (core) para diversos circuitos integrados cuadrados segn la
longitud L del lado de los mismos:
rea total L rea de contorno rea til aprovechamiento
10 mm
2
3,16 mm 5,2 mm
2
4,8 mm
2 48 %
25 mm
2
5 mm 9 mm
2
16 mm
2 64 %
1 cm
2
10 mm 19 mm
2
81 mm
2 81 %
10 cm
2
3,16 cm 62 mm
2
938 mm
2 94 %
Obviamente el aprovechamiento de la superficie del circuito integrado aumenta al
hacerlo la superficie del mismo, dado que la anchura ocupada por los elementos de
contorno es prcticamente constante.
Nmero de PADs en el cont orno
Una estimacin del nmero de PADs (o sea, del nmero de entradas y salidas) que
pueden situarse en el contorno de un circuito integrado puede ser la siguiente:
- anchura del PAD ~ 100 m
- separacin entre PADs ~ 100 m
- separacin entre el primer (y el ltimo) PAD y el borde del chip
~ 400 m.
0,4 mm
0,1 mm
0,1 mm
T9. El ci rcui t o i nt egrado compl et o 239
Obviamente las anteriores dimensiones dependen de la tecnologa de integracin
pero no pueden ser muy inferiores a las indicadas ya que los PADs son puntos de
soldadura, en los que han de fijarse los hilos que conectan con los terminales del
encapsulado y requieren unas dimensiones y una separacin mnimas para que la
soldadura sea posible.
En un lado L del cristal de silicio caben n PADs; expresando L en milmetros:
0,4 1).0,1 - (n n.0,1 ,4 0 L + + + ; [ ] 0,7) - 5.(L Entero
0,2
7 , 0 L
Entero n =
= .
La siguiente tabla indica el nmero de PADs en cada lado y el nmero total de los
mismos para circuitos integrados cuadrados segn su longitud L de lado:
rea total L PADs en cada lado n total de terminales (pines)
10 mm
2
3,16 mm 12 48
25 mm
2
5 mm 21 84
1 cm
2
10 mm 46 184
10 cm
2
3,16 cm 154 616
Obviamente, si es necesario un mayor nmero de entradas/salidas, pueden aadirse
ms PADs (con sus correspondientes adaptadores) en la zona interior del circuito
integrado (lo que normalmente es zona booleana, core).
T9. 3. Consi deraci ones respect o al di seo f si co: regl as de di seo
La relacin entre el proceso de diseo y el de fabricacin de un circuito integrado se
establece a travs de las mscaras del circuito; las mscaras son el resultado final del
diseo y el molde con el cual se efecta la fabricacin.
En un diseo fsico completo, el diseador ha de recorrer diversos niveles en la
descripcin del circuito, desde sus requisitos funcionales iniciales (especificaciones) hasta
el diseo fsico de las regiones que lo configuran, pasando por:
- definir la arquitectura (diagrama de bloques) que puede dar respuesta adecuada a
las especificaciones,
- desglosar los bloques en celdas bsicas (funciones booleanas y biestables),
- disear cada celda en trminos de los transistores que la configuran,
- dimensionar tales transistores y las conexiones entre ellos realizando el dibujo
fsico de cada celda
- y, finalmente, ubicar adecuadamente cada celda en relacin con las dems y
establecer las conexiones entre ellas (convenientemente dimensionadas).
El ltimo paso de dicho proceso, el paso de la configuracin electrnica del
circuito en trminos de transistores a su conformacin fsica en zonas superficiales
diferenciadas, es una ardua labor de dibujo lineal, para la que se cuenta con eficaces
ayudas informticas CAD.
240 El ect rni ca Di gi t al
En caso de diseo con librera de celdas (standard cell o gate array), el diseador del
circuito digital no llega al nivel geomtrico pero, previamente, quien ha diseado las
celdas (estndar) ha tenido que hacerlo a dicho nivel.
Al abordar el dibujo de los transistores (de sus zonas de fuente, drenaje y puerta) y de
las conexiones entre ellos (y de las polarizaciones de los substratos) es necesario:
- dotar a cada zona y a cada lnea de conexin de dimensiones adecuadas,
- establecer unas separaciones mnimas entre zonas,
- aadir prolongaciones (extensiones ms all del borde) entre las zonas que se
cruzan (en particular, el polisilicio y la difusin al formar un transistor),
- asegurar un recubrimiento mnimo de los contactos y de las vas por las zonas entre
las que establecen la conexin (y del pozo sobre las difusiones que contiene).
Aparte del adecuado dimensionamiento de los transistores (en conformidad con el
diseo), los requisitos referentes a tamaos mnimos, separaciones, prolongaciones y
recubrimientos vienen exigidos por las limitaciones de la tecnologa de integracin, para
asegurar la correcta formacin de las zonas activas. El conjunto de dimensiones mnimas
que han de respetarse se denomina reglas de diseo y suelen expresarse en unidades
enteras referidas al parmetro de la tecnologa: = Lmnima/2.
Para facilitar la ejecucin del dibujo fsico (layout) del circuito integrado se
dispone de potentes herramientas de CAD que incorporan verificadores de las reglas de
diseo (DRC: design rule check).
Algunos ejemplos de reglas de diseo y su relacin con el proceso de fabricacin
pueden ser los siguientes:
a) Anchuras mnimas por debajo de las cuales la tecnologa disponible no asegura la
continuidad o la fabricacin correcta de la correspondiente regin, sea sta una
difusin, una lnea de metal o la zona de puerta,
b) Separaciones entre zonas del mismo tipo (por ejemplo, difusiones o lneas de
metal), que, si estuvieran ms cercanas, corren el peligro de que se establezca
continuidad entre ellas y queden conectadas;
c) El polisilicio al cruzarse con la correspondiente difusin forma un transistor y debe
rebasar a dicha difusin en una longitud mnima, ya que, de no hacerlo as,
pequeas desviaciones de las mscaras en el proceso de integracin pueden dar
lugar a que el polisilicio no cruce por completo a la difusin y sta mantenga
continuidad en un extremo de manera que el transistor conduce siempre:
difusin
polisilicio
el polisilicio se prolonga
un poco ms all de la difusin
difusin
polisilicio
el polisilicio justo hasta el borde
de la difusin
difusin
polisilicio
posibilidad de un ligero desplazamiento
de las mscaras
BIEN MAL
no hay transistor
T9. El ci rcui t o i nt egrado compl et o 241
A continuacin, se incluye un ejemplo completo de reglas de diseo :
Pozo
Difusin N
Difusin P
Polisilicio
Aluminio
Pozos
Anchura mnima de pozo: 12
Separacin entre pozos: 12
12 12
Pozo N Pozo N
Difusiones
Pozo N
Difusin P
6
4
6
4
Difusin N
Anchura mnima de difusin: 4
Separacin entre difusiones: 4
Recubrimiento de pozo sobre difusin: 6
Separacin entre pozo y difusin: 6
242 El ect rni ca Di gi t al
Polisilicio
secuencia
temporal
evaluacin captura: amos salida: esclavos evaluacin
matriz Y precarga matriz O matriz O matriz Y
1 2
evaluacin
precarga matriz Y
2
2
Difusin N
4
3
2
2
4
2
Difusin P
Polisilicio
Polisilicio
Anchura del polisilicio: 2
Anchura de puerta: 2
Prolongacin de polisilicio sobre difusin: 2
Prolongacin de difusin sobre polisilicio: 4
Separacin entre dos polisilicios: 3
Separacin entre polisilicio y difusin: 2
T9. El ci rcui t o i nt egrado compl et o 243
Metal
3
3
Metal
Anchura mnima del metal: 3
Separacin entre metales: 3
Contactos
Anchura del contacto: 2
Separacin entre contactos: 3
Recubrimiento de metal: 2
Recubrimiento de polisilicio: 2
Recubrimiento de difusin : 2
Polisilicio
2
2
2
3
Contacto
Metal
Difusin
2
244 El ect rni ca Di gi t al
Metal2
Anchura del metal2: 5
Separacin entre metales2: 5
5
5
Metal 2
Vas
Anchura de la va: 3
Separacin entre vas: 3
Separacin entre va y contacto: 3
Recubrimiento de metal: 2
Recubrimiento de metal2: 2
Va
3
3
Contacto
3
2
Polarizacin de los substratos
para aislar los transistores y para evitar el problema del latch-up
Los transistores NMOS estn formados por regiones N
+
(fuente - canal - drenaje) en
el seno de un substrato de tipo P; para aislar los transistores del substrato y los diversos
transistores entre s se requiere polarizar el substrato P con la tensin de alimentacin ms
negativa, de forma que todas las uniones NP con el substrato se encuentren polarizadas
inversamente.
T9. El ci rcui t o i nt egrado compl et o 245
De igual forma, para aislar los transistores PMOS, formados por regiones P
+
en un
substrato de tipo N (pozo), se requiere polarizar el substrato N (todos los pozos presentes
en el integrado) con la tensin de alimentacin ms positiva, para que todas las uniones
PN se encuentren polarizadas en inverso.
En sistemas digitales se utiliza, generalmente, una sola fuente de alimentacin con
dos terminales 0 V y VCC:
- habr que conectar el substrato P general que forma la oblea a 0 V, mediante
contactos de polarizacin de tipo P
+
(que se forman a la vez que las difusiones de
los transistores PMOS)
- y, asimismo, habr que conectar los pozos N (que son el substrato para los
transistores PMOS) a VCC, mediante contactos de polarizacin de tipo N
+
(formados a la vez que las difusiones de los transistores NMOS).
Este requisito de polarizacin de los substratos (para aislar los transistores) se
encuentra reforzado por el hecho de que las regiones N y P propias de las estructuras
CMOS se encuentran intercaladas entre s y permiten la configuracin de estructuras
parsitas tipo tiristor (PNPN), con caractersticas destructivas al ser posible el disparo de
una conduccin de intensidad incontrolada. Este fenmeno autodestructivo debido al
autodisparo de las estructuras PNPN se conoce como latch-up (enganche).
+V
N
+
P
+
P
+
N
N
+
P
P
+
N
+
+ V
R1
P P
N
N N
P
R2
Si la cada de tensin en alguna de las resistencias transversales R1 y R2 consigue
acercarse a 0,5 V, ambos transistores conducen sin limitacin de intensidad (de hecho se
encuentran realimentados positivamente: el aumento de la IC de uno de ellos provoca el
de la IB del otro, con el consiguiente aumento de su IC y, por tanto, de la IB del primero),
configurando un tiristor en situacin de disparo y sin limitacin de intensidad.
Ambas resistencias se forman a travs de los substratos, de manera que interesa que
la resistividad de ambos substratos (el P de la oblea y el N de los pozos) no sea muy alta y
que la tensin de polarizacin alcance eficazmente a toda la masa del substrato (para que
las diferencias de tensin entre dos puntos del substrato sean mnimas).
En tal sentido, es fundamental asegurar una polarizacin intensiva de toda la
superficie de los substratos: para evitar la posibilidad de latch-up es preciso polarizar cada
246 El ect rni ca Di gi t al
substrato con mltiples contactos, de manera que cualquier punto de su superficie se
encuentre cercano a un contacto de polarizacin.
El latch-up impone la exigencia de que la polarizacin de los substratos (necesaria
para aislar los transistores) se haga en forma mltiple e intensiva; este requisito
constituye, tambin, una regla de diseo:
distancia mxima entre contactos de polarizacin de los substratos: 50 m.
ELECTRNICA DIGITAL [ 1Q 1 ] Preliminares
1.- Calcular las potencias de 2 desde 2
0
hasta 2
20
y aprender las 12 primeras de ellas.
2.- a) Hallar el equivalente thevenin del circuito de la figura 1.
b) Cul ser la tensin de salida V
o
de este circuito?
c) Cunto deber valer una resistencia de carga R
L
para que, al conectarla a la salida del circuito,
dicha tensin de salida apenas se modifique (es decir, que su variacin sea despreciable)? (figura 2).
10 V
1K
Vo
10 V
1K
1K5 R
L
figura 2 figura 1
1K5
3.- a) Dibujar el equivalente thevenin del circuito A en las dos situaciones posibles:
i) interruptor abierto; ii) interruptor cerrado.
b) Hacer lo mismo con el circuito B.
5 V 5 V
500
500
circuito A
circuito B
4.- Calcular las tensiones en los 4 nudos del circuito de la siguiente figura.
1K
2K
1K
2K
1K
2K
1K
2K 2K
10 V
5.- a) Al aplicar la ley de Ohm, en que unidades resulta la intensidad cuando la tensin se toma en
voltios y la resistencia en kilo-ohmios?.
b) Al calcular la constante de tiempo de un circuito RC, en que unidades se obtiene si la
resistencia se aplica en kilo-ohmios y el condensador en nanofaradios?.
ELECTRNICA DIGITAL [ 1Q 2 ] lgebras booleanas
1. Demostrar los teoremas de absorcin.
2. Demostrar en trminos booleanos que si b a , sucede tambin que a b .
3. Demostrar que la operacin Nand ( b . a = b a ) no es asociativa.
4. a) Pasar a binarios los nmeros siguientes: 9675, 2
12
, 1024, 500.
b) Pasar a decimal los ns binarios: 100101110011, 100000, 111111, 10101010.
5. Cuantos millares de registros adquirimos al comprar una memoria de 64 Megas?.
6. Sean dos nmeros A y B y las siguientes proposiciones (lgica proposicional):
p primera cifra mayor en A que en B; q segunda cifra mayor en A que en B;
r primera cifra mayor en B que en A; s segunda cifra mayor en B que en A;
Utilizando dichas proposiciones p, q, r y s, escribir en lgica proposicional cuando
a) A es igual a B; b) A es mayor que B; c) A no es menor que B.
7. En un consejo de administracin participan su presidente con dos votos el secretario tambin con
dos votos y tres vocales con un voto cada uno; ahora bien, cuando los tres vocales votan en contra el
acuerdo queda vetado. Razonando en lgica proposicional (sin utilizar tabla de verdad), expresar
booleanamente cuando se aprueba un acuerdo.
8. Ampliar a tres los interruptores conmutados para encender/apagar una lmpara.
9. Cual ser la onda de salida de:
a) una puerta "o"; b) una puerta "y"; c) una puerta "o-exclusiva";
si sus dos ondas de entrada son las siguientes:
10. Escribir la tabla de la funcin booleana: c . b + a = y .
11. Un circuito digital con dos entradas A y C recibe por A una onda cuadrada.
a)Qu combinacin de puertas booleanas permite que cuando C = 1 dicha onda pase a la salida y no
pase ( y = 0 ) cuando C = 0?.
b) Qu combinacin de puertas booleanas permite que la salida sea igual a la entrada A cuando C = 0
y sea la onda A invertida cuando C = 1?.
ELECTRNICA DIGITAL [ 1Q 3 ] Puertas unitarias
1.- Escribir con puertas Nand de 2 entradas e inversores las siguientes funciones:
a) b + a = y
b) b.c + a = y
c) c.d.e + a.b = y
d) .b.a c + a c. + .c d + d.b = y
e) a . b + b.a + b . c + a d. + c d. = y
2.- Escribir con slo puertas Nor de 2 entradas (sin inversores ni equivalentes):
a) b.c + a = y
b) b.a + c.b + d.a + d.c = y
3.- Demostrar que la puerta representada en la figura, a la que denominaremos puerta "ono" es de tipo
universal, es decir, con ella puede realizarse todo el lgebra booleana. Qu inconveniente tiene esta
puerta?.
puerta "ono"
a
b
y = a + b
4.- La funcin ser numero primo para nmeros de 4 dgitos puede escribirse en las dos formas
siguientes:
)] b + c b).( + (c + d [ . .b) c . d + (a = y ) b c. + .b c a.( + .b) c + .(a d = y
a) Cul de estas dos expresiones resulta ms adecuada para puertas Nand?. Escribir su expresin
algebraica utilizando dichas puertas.
b) Cul de estas dos expresiones resulta ms adecuada para puertas Nor?. Escribirla.
5.- Consideremos una puerta Nand y una puerta Nor de 4 entradas:
Cmo pueden construirse ambas puertas? (dibujar el circuito resultante)
1) utilizando solamente puertas Nand de 2 entradas e inversores
2) utilizando solamente puertas Nor de 2 entradas e inversores.
ELECTRONICA DIGITAL [ 1Q 5] Funciones boolenas
1.- La figura representa un bloque digital "multiplexor", cuya salida es y = a si c = 0 e y = b cuando
c = 1. Escribir las formas cannica y cannica dual de esta funcin y simplificarlas. Construir la
funcin con slo puertas "Nand" y con slo puertas "Nor".
a
b
c
y
2.- Un circuito digital proporciona nmeros aleatorios del 1 al 6 en binario y con ellos se desea
controlar 7 diodos luminiscentes LEDs para que simulen el comportamiento de un dado. Deducir las
funciones necesarias.
3.- Construir, simplificar y expresar en trminos de puertas "Nand" las 7 funciones necesarias para
activar un visualizador de 7 segmentos de forma que represente las 10 cifras decimales a partir de su
valor en binario (BCD).
a
b
c
d
e
f
g
4.- Simplificar el siguiente diagrama de Karnaugh de 6 variables:
1 0 0 1 1 1 0 1
0 0 1 1 1 1 0 0
0 0 1 1 1 1 0 0
1 0 0 1 1 1 0 1
1 1 0 1 1 1 1 1
1 0 1 1 1 1 0 0
1 0 1 1 1 1 0 0
1 1 0 1 1 0 1 1
5.- Disear un "codificador de prioridad" que recibe 7 lneas de entrada, numeradas de 1 a 7, y
proporciona como "salida" el nmero de la lnea de entrada que se encuentra activada; caso de que
haya varias lneas activadas indica la de mayor nmero y si ninguna lnea est activada la salida es 0.
1
2
3
4
5
6
7
codificador
de
prioridad
6.- Considrense los 12 meses del ao numerados del 0 al 11 (en binario) y la funcin que detecta si
uno de los meses tiene 31 das o no. Escribir la forma algebraica simplificada de dicha funcin en
forma de suma de productos y, tambin en forma de producto de sumas.
ELECTRNICA DIGITAL [ 1Q 6] Mapas de Karnaugh
1.- Expresar como suma de trminos producto, en la forma ms simplificada posible, la funcin:
) a b c ).( a c ).( a c d ).( a b d ( y + + + + + + + =
b) Construir dicha funcin con puertas Nand e inversores.
2.- Sea la funcin booleana
a .b. d + a .c. d + a . b . d . e + .d.a e + a . b . c e. + .b c e.d. + .a b e.d.c. = y
a) Expresar la funcin como producto de trminos suma en la forma ms simple (sacar luego
sumandos comunes para abreviar la expresin).
b) Escribir la expresin algebraica de dicha funcin con operaciones Nand, utilizando el menor
nmero posible de ellas.
3.- Configurar con puertas Nor, en la forma ms reducida posible, la funcin booleana representada en
la figura siguiente.
y
a
b
c
d
e
4.- Escribir la funcin como suma de productos en forma ms reducida posible:
a) + +b c + d + +e f a).( + c + d + .(e
). b + c + ).(d b + e + a).(f + c + +a).(d b + d + f a).( + b + d + (f = y
1
b) Escribir igualmente como suma de productos la funcin inversa:
1 2
y = y .
5.- Sea el conjunto de nmeros binarios enteros de 6 cifras fedcba; de dicho conjunto se eliminan los
siguientes nmeros: 1, 3, 5, 8, 9, 17, 19, 21, 24, 25, 28, 29; 35; 41; 44; 45; 51; 57; 60; con los
nmeros restantes se forma el subconjunto A. Construir la funcin booleana que informa sobre la
pertenencia o no al subconjunto A: expresar dicha funcin como suma de productos y como producto
de sumas.
6.- Sea a .b. d + b . c . d + a . b d.c. + a . b .e.d. f + a f.b. + .b d f. = y
obtener la expresin simplificada de la funcin inversa y como suma de productos.
ELECTRNICA DIGITAL [ 1Q 6] Mapas de Karnaugh II
1.- Simplificar el siguiente diagrama de Karnaugh de 6 variables:
1 0 0 1 1 1 0 1
0 0 1 1 1 1 0 0
0 0 1 1 1 1 0 0
1 0 0 1 1 1 0 1
1 1 0 1 1 1 1 1
1 0 1 1 1 1 0 0
1 0 1 1 1 1 0 0
1 1 0 1 1 0 1 1
2.- Sea el conjunto de nmeros binarios enteros de 6 cifras fedcba; de dicho conjunto se eliminan los
siguientes nmeros: 1, 3, 5, 8, 9, 17, 19, 21, 24, 25, 28, 29; 35; 41; 44; 45; 51; 57; 60; con los nmeros
restantes se forma el subconjunto A. Construir la funcin booleana que informa sobre la pertenencia o no al
subconjunto A: expresar dicha funcin como suma de productos y como producto de sumas.
3.- Escribir la funcin como suma de productos en forma ms reducida posible:
a) + +b c + d + +e f a).( + c + d + .(e
). b + c + ).(d b + e + a).(f + c + +a).(d b + d + f a).( + b + d + (f = y
1
4.- Una apuesta de la lotera primitiva consiste en seleccionar 6 nmeros del 1 al 49.
Un apostante ha marcado los siguientes: 4, 11, 20, 27, 36 y 43.
a) Cul es la funcin booleana que expresa dicha apuesta?. Escribir dicha funcin,
en forma simplificada, como suma de productos y como producto de sumas.
b) Cul de estas formas puede construirse con menos transistores NMOS?
5.- Cul de las siguientes funciones corresponde al mapa de Karnaugh expresado abajo?. Razonar
adecuadamente la respuesta.
b) c .a.( d ) b c .( a e. ) a e .( b d. y + + + + + = ) b . e a d ( . ) b d. a (c . ) a e. c (d y + + + + + + =
X X 1 X
1 1 0 0
1 0 0 X
0 1 X X
X X 0 0
X 0 1 1
1 0 X 1
1 X 0 X
c b a
e d
Cuntos transistores son necesarios para construir, en tecnologa NMOS, cada funcin (tal como estn
expresadas en el apartado anterior)?. Razonar la respuesta.
ELECTRNICA DIGITAL [ 1Q 7] Bloques operacionales
1.- Sea un restador de nmeros de 6 dgitos especial: tiene una entrada de control x, tal que si x = 0
efecta la resta A-B y para x = 1 la operacin que realiza es B-A; se desea realizar su diseo
modularmente, utilizando 6 celdas restadoras de 1 bit.
a) Dibujar la conexin de dichas 6 celdas para configurar el restador, e indicar cmo puede utilizarse
este restador para calcular |A-B| (valor absoluto).
b) Escribir las ecuaciones booleanas necesarias para construir una de las celdas, en forma de suma de
productos.
2.- Escribir la funcin booleana que calcula A>B , siendo A y B nmeros de 2 bits. Simplificar dicha
funcin, sacar factores comunes y generalizarla para ns de 6 bits. Cuntos trminos producto tiene
esta funcin?.
3.- Utilizando puertas "y" y sumadores de 4 bits, construir un multiplicador de 4 bits?. Cuantas
puertas "y" y cuantos sumadores de 4 bits seran necesarios para construir en la misma forma un
multiplicador de 8 bits?.
4.- Con multiplicadores y sumadores de 4 bits, construir un multiplicador de 8 bits.
5.- Interesa disponer de una unidad lgica capaz de realizar las operaciones:
S2 S1 S0 S2 S1 S0 S2 S1 S0 :
0 0 0 b . a 1 0 0 b a entradas
0 0 1 b + a 1 0 1 b a de seleccin
0 1 0 b . a 1 1 0 b + a de operacin
0 1 1 b a 1 1 1 b a
Disear dicha unidad lgica en las dos formas siguientes:
i) utilizando un multiplexor de 4 lneas y puertas booleanas de 2 entradas
(se admite tambin la puerta o-exclusiva);
ii) utilizando solamente puertas booleanas de 2 entradas (incluida la o-exclusiva).
6.- Sea una palabra de 8 dgitos; se nos pide disear un circuito capaz de contar el nmero de unos
que contiene dicha palabra y para ello disponemos de celdas sumadoras de 1 bit (entradas a, b y c).
Dibujar el diagrama de bloques del circuito. Cuntas celdas sumadorasseran necesarias si la palabra
fuera de 15 bits?.
7.- Demostrar que una celda sumadora puede ser utilizada como puerta o de dos entradas y, tambin,
puede ser utilizada como puerta y de 2 entradas; qu otras puertas de 2 entradas pueden ser
reemplazadas por una celda sumadora y cmo?.
ELECTRNICA DIGITAL [ 1Q 9] Decodificadores y mux.
1.- Disponemos de una fila de 30 diodos LED, numerados del 1 al 30, y se desea controlarlos por su
nmero en binario, de forma que, en cada momento, podamos encender uno de los diodos poniendo su
nmero en las entradas del circuito de control; disear dicho circuito, utilizando solamente
decodificadores de 3 entradas y puertas booleanas bsicas.
2.- Utilizando solamente un multiplexor de 2 lneas de entrada (1 entrada de control), construir las
siguientes operaciones: +b a .b; a a.b; b; + a . Cmo podra construirse la operacin o-
exclusiva aadiendo slo un inversor?.
3.- Mediante un multiplexor de 8 lneas de entrada (3 entradas de control) construir la siguiente
funcin: a) + b b).( c c).( + d ( = y + .
4.- Encontrar las funciones booleanas Y1 e Y2 (A es un n de 4 dgitos):
1
0
0
1
0
1
1
0
1
Y1
b a
d c
mux
1111
0000
Y2
A
decodificador
0
5.- Los 4 diagramas siguientes son claramente simplificables en cuanto a la funcin que realizan; a
qu equivale cada uno de estos diagramas?. Dibuja el resultado.
L0
L1
L2
L3
L4
L5
L6
L7
L8
L9
L10
L11
L12
L13
L14
L15
q Decodificador
p
d
c
b
a
00
b
b a
a
q
p
q
p
b
a b
a
q
p
Diagrama n 1 Diagrama n 2 Diagrama n 3
Diagrama n 4
b
b a
a
6.- Un decodificador tiene entrada BCD y 10 lneas de salida. Dibujar el esquema circuital
correspondiente a su configuracin interna, construido con puertas NOR.
ELECTRNICA DIGITAL [ 1Q 10] Bloques combinacionales
1.- Con decodificadores de 4 lneas (sin entradas de habilitacin) y puertas bsicas (o, y), construir un
decodificador, un multiplexor y un demultiplexor de 16 lneas.
2.- Qu funcin realiza cada uno de los dos sistemas digitales representados en la siguiente figura,
siendo A y B nmeros de 4 bits y C un nmero de 8 bits?.
restador
mux
C'
A
B
A B
Y
0
1
A B y nmeros de 4 bits; nmero de 8 bits C
A B
C
comparador
= > <
t
3.- Representar dos cifras BCD sobre sendos visualizadores de 7 segmentos de ctodo comn,
utilizando solamente un conversor de BCD a 7 segmentos; dibujar el diagrama de bloques
combinacionales necesario.
4.- Disear con bloques combinacionales un sistema que acepte como entradas dos nmeros de 4 bits y
presente el mayor de ellos en su salida. Aadir una entrada c que permita seleccionar el mayor (c =
1) o el menor (c = 0) de dichos nmeros.
5.- Los circuitos integrados 7485 (comparador) y 74157 (multiplexor de 2 buses) han sido utilizados
en prcticas de laboratorio; dibujar con ellos el diagrama de bloques completo de un sistema digital
que recibe 3 nmeros binarios de 4 dgitos y selecciona (deja pasar) el menor de ellos.
6.- a) Un circuito recibe 3 nmeros enteros de 8 bits (en complemento a 2); dibujar el esquema de
bloques de un circuito que deje pasar el mayor de ellos.
b) Repetir el diseo anterior utilizando 3 adaptadores triestado.
c) Dibujar el diagrama de bloques para dejar pasar el nmero intermedio de los tres (el que no es
el mayor ni el menor).
7.- Sea una palabra binaria de 4 bits qu combinacin de puertas booleanas es necesaria para efectuar
cada una de las siguientes tareas?.
a) indicar que todos los bits de la palabra son 0;
b) indicar que los bits son todos 1;
c) indicar que todos los bits de la palabra son iguales;
d) indicar que el nmero de bits a 1 es impar.
ELECTRNICA DIGITAL [ 1Q 11] Bloques programables
1.- Sea un bloque matricial programable de 12 entradas y 8 salidas. Cuantas conexiones fijas y cuantas
programables tendr en cada uno de los siguientes casos:
a) PROM b) PLA, con 40 trm. producto y c) PAL, con 6 trminos en cada salida.
Cuntos transistores de cada tipo son necesarios para construir esos bloques?.
2.- Un circuito dispone de 9 salidas L9 . . L1, conectadas a un visualizador formado por una lnea de diodos
LEDs que representa un "cdigo de barra" de 10 niveles (nivel 0: 000000000; nivel 1: 000000001; ... nivel 8:
011111111;nivel 9: 111111111) Se desea disear un conversor "cdigo de barra" a BCD: el diseo ha de ser
realizado sobre dispositivos programables y si la entrada no corresponde a un nivel del "cdigo de barras" la
respuesta debe ser 0.
a) Para programarlo sobre una PLA, cuales sern los trminos producto a construir y a qu salidas hay que
conectar cada uno ? cuntas conexiones habra que eliminar?.
c) Escribir las funciones necesarias para una PAL. (conexiones a eliminar?)
3.- Alguien ha programado una funcin Y1 en un bloque PAL segn la figura, pero se ha equivocado: la
funcin que necesitaba era precisamente la negada de esta.
f e d c b a
Y1
a) Cual ser la expresin booleana
necesaria para programar Y1?
b) Cmo se programara Y1 en una
PROM de 6 entradas? cales seran las
conexiones ("fusibles") que habra que
eliminar?.
4.- Sean teclado numrico con 10 teclas para las cifras decimales ( j i h g f e d c b a, la lnea a corresponde a la
tecla del 0 y as sucesivamente); se necesita un codificador tal que, cuando se pulsa una sola de dichas teclas, se
genere el numero Gray correspondiente (si se pulsan dos teclas a la vez o, tambin, si no se pulsa ninguna la
salida del codificador es 1111 - numero Gray que corresponde al decimal 10 -).
a) Escribir la tabla funcional resumida de dicho codificador.
b) Disponemos de una PLA de 10 entradas, 4 salidas y 32 trminos producto y disponemos tambin de
inversores, cuales sern los trminos producto a programar?.
c) Modificando el enunciado, de forma que si hay varias teclas pulsadas se obtenga el valor correspondiente a la
menor de ellas (y si no hay ninguna pulsada el valor 1111), obtener las funciones que permiten su programacin
sobre un bloque PAL.
5.- Sea la funcin y = A B con A , B nmeros binarios de 6 bits. Si programamos dicha funcin en el interior
de un circuito integrado programable de tipo PAL de 16 entradas, 8 salidas y con 10 trminos producto para
cada salida; cul ser la expresin booleana correspondiente a tal programacin?.
Ms ejercicios de bloques programables
A.- Sea un bloque matricial programable de 20 entradas y 10 salidas. Cuantas conexiones fijas y cuantas
programables tendr en cada uno de los siguientes casos:
a) PROM b) PLA, con 64 trm. producto y c) PAL, con 16 trminos en cada salida.
B.- Supongamos un codificador de 8 entradas y 8 salidas, muy simple: lo nico que hace es invertir las entradas,
es decir, el cdigo de salida es directamente el negado (bit a bit) del de entrada. Si queremos programar tal
codificador en un bloque programable de 8 entradas y 8 salidas, cul ser el numero de conexiones a eliminar
(el numero de fusibles a fundir) en cada uno de los siguientes casos?
a) al programar el codificador en una PROM de 8 entradas y 8 salidas
b) en una PAL de 8 entradas y 8 salidas con 4 trminos producto para cada una
c) para una PLA de 8 entradas, 8 salidas y 24 trminos producto a compartir.
C.- Sean 10 funciones de 8 entradas, cuya tabla funcional contiene el triple nmero de "unos" que de "ceros" y
cuyas expresiones algebraicas estn formadas, todas ellas, por 7 trminos producto de 5 variables cada uno; se
sabe tambin que en simplificacin multifuncin de las 10 funciones se obtienen 28 trminos producto, todos
ellos de 6 variables, y de los cuales cada funcin utiliza slo 16 trminos. Calcular el nmero de "fusibles" que
es necesario fundir para programar dichas funciones en:
a) una PROM de 8 entradas x 10 salidas;
b) una PLA de 8 entradas x 40 trminos producto x 10 salidas;
c) una PAL de 10 mdulos de 8 entradas x 12 trminos producto.
D.- Un codificador de prioridad recibe 10 entradas procedentes de 10 teclas decimales numeradas de 0 a 9 y
debe expresar en su salida en BCD cual es la tecla de mayor nmero que se encuentra activada; caso de no haber
ninguna tecla pulsada, las salidas del codificador de prioridad se situarn todas ellas a "1".
a) Obtener las funciones booleanas que permiten la programacin de este codificador sobre un bloque PAL;
simplificar en lo posible dichas funciones.
b) Qu trminos producto seria razonable utilizar para programarlo sobre una PLA?.
E.- Sean 2 nmeros de 4 cifras, cmo programar la funcin A >B en una PAL de 10 entradas y 6 trminos
producto en cada uno de sus mdulos?.
Para programar esta funcin en EPROM cuntas conexiones habra que eliminar?.
F.- [ ] [ ] ) e + ).(d c + ).(d e + (f + b . c) + b).(d + d).(e + (f + a = y
a) Caso de que esta funcin vaya a ser programada sobre un integrado PROM de 6 entradas, qu conexiones
programables ("fusibles") sera preciso eliminar?.
b) Si la programacin se realiza sobre un mdulo PAL de 6 entradas y 6 trminos producto cual ser la
expresin a programar?.
ELECTRNICA DIGITAL [ 1Q 11] Codificacin binaria
1.- Con una longitud de palabra de 64 bits, cual ser el rango de nmeros enteros que puede
manejarse con dicha longitud?: a) en sistema binario b) en BCD.
2.- Un sistema digital opera con nmeros enteros codificados sobre 8 bits en complemento a 2;
efectuar en binario y en decimal el resultado de las operaciones:
a) 01110100 + 11010100 ; b) 00111100 + 11011101 ;
c) 10011100 + 11100110 d) 01110100 - 11010100 ;
e) 00111100 - 11011101 ; f) 10011100 - 11100110 .
3.- Un sistema utiliza nmeros con longitud de palabra de 10 bits, coma fija de 3 bits; para las
siguientes operaciones, expresar en binario los operandos y el resultado:
a ) (+42,5) + ( +38,4) = b ) (+42,5) + ( -38,4) =
c ) (33,7) ( +27,625) = d ) (33,7) (-27,625) =
4.- a) Transformar en binario en coma fija (16 bits: 11 parte entera y 5 parte decimal)
A: 12,75 ; B: 23,432 ; C: + 868,85 ; D: -155,16.
b) Cuanto valen exactamente el mayor nmero positivo y el menor nmero positivo (distinto del cero)
que puede escribirse en la mencionada coma fija?.
c ) Idem el mayor nmero negativo y el menor de ellos.
d) Efectuar en binario las siguientes operaciones y, una vez obtenido el resultado, transformar este en
valor decimal (base 10): A + B; A - B; B - A
5.- Entenderemos por BC6 un sistema de numeracin en base 6, cuyas cifras se codifican en binario;
disear el circuito necesario para efectuar la suma en BC6, si se dispone de sumadores binarios de 4
bits.
6.- a) Cul ser la palabra hexadecimal que corresponde al numero 52.483?
b) A qu numero decimal corresponde el hexadecimal DECA?. Cul ser el nmero gray
correspodiente (expresarlo en hexadecimal)?.
c) Cul ser (en hexadecimal) el cdigo Hamming para la palabra CAFE?
d) Cul ser la palabra original si su cdigo Hamming es CAFE?
7.- Sea una palabra binaria de 54 bits, calcular razonadamente cuantos bits se necesitan para
transmitirla en cdigo Hamming de distancia 4. Hacer lo mismo para otra palabra binaria con la mitad
de dgitos, 27 bits.
8.- Un sistema digital enva a otro nmeros binarios (enteros y positivos) de 6 bits en cdigo
Hamming; el segundo sistema, despus de reconocer los nmeros iniciales y corregirlos si es
necesario, los suma y los devuelve codificados en la misma forma: qu nmero remitir si los
recibidos han sido 01101110011 y 01011111100?.
ELECTRNICA DIGITAL [ 1Q 3 ] Puertas con interruptores
1.- En las siguientes funciones y sin necesidad de dibujar las puertas, contar el nmero de interruptores
(o transistores NMOS) necesario para construir directamente cada una de las dos expresiones de ellas.
a) ) c.b.a a).( + b + (c = c.b.a + a . b . c = y
b) e . d . c + b . a = e) + d + (c . b) + (a = y
c) ) a . b ( . c.a) + (d.b = b.a + ) a + c ( . ) b + d ( = y
2.- Construir con interruptores la puerta representada en la figura.
puerta "ono"
a
b
y = a + b
3.- Considrense los circuitos de la figuras siguientes. Qu funcin booleana calcula cada uno de
ellos?. Simplificar el primero de ellos: dibujarlo de nuevo, reduciendo en lo posible el nmero de
interruptores.
a
a
b c
d
c
d
b
Vcc
Rc
Vcc
Rc
y 1 y 2
d
a
b
c
e
4.- Dibujar las siguientes puertas booleanas con transistores NMOS, procurando utilizar el menor
nmero posible de ellos:
a) a) + b + (c . ) a + b + c ( = y
b) .c.b.a d + a d. + c d. = y
c) c.b + ) a + d ).( a + e ( = y
d) a . b + b.a + b . c + a d. + c d. = y
ELECTRNICA DIGITAL [ 1Q 8] Puertas CMOS
1.- Sean las funciones booleanas siguientes; construirlas en configuracin CMOS, procurando utilizar
el menor nmero de transistores posible.
) a + b + c + d + +a).(e b + +c d + e ).( a + c + d +b).( d + e ).( a + (d =
8
y
a .b. c + .a b . d + .c.a d =
7
y
.a b + .a c + b c. + .c d =
6
y
a + b ).( a + b ).( a + c ).( b + c ( =
5
y
a b + a) c.(b =
4
y
b.a + c.b + d.a + d.c =
3
y
.b c + a =
2
y
b + a =
1
y
)
2.- Completar la puerta lgica CMOS cuyo plano P es el representado en la figura 1. Simplificar dicha
puerta, reduciendo en lo posible el nmero de transistores.
3.- El plano PMOS de una puerta lgica CMOS es el representado en la figura 2. Qu funcin
booleana realiza?. Dibjese el correspondiente plano NMOS.
g
f
e
d
c
b
b
d
c
d
c b a
a
a
Vo Vo
Vcc Vcc
F i g u r a 1 F i g u r a 2
ELECTRNICA DIGITAL [ 1Q 12] Caractersticas de CIs
1.- Dos inversores de familias diferentes, cuyos datos de tensin e intensidad son:
inversor A: V
iHmn
= 2 V V
iLmx
= 0,7 V I
i
< 50 A
para I
o
= 1 mA : V
oH
= 3,5 V V
oL
= 0,2 V
para I
o
= 6 mA : V
oH
= 3 V V
oL
= 0,3 V
inversor B: V
a
= 1.5 v. V
b
= 2 V I
i
< 20 A
(es de tipo Schmitt) para I
o
= 0,1 mA : V
oH
= 5 V V
oL
= 0 V
para I
o
= 2 mA : V
oH
= 3 V V
oL
= 1 V
Cual de ellos presenta mayor inmunidad frente al ruido?; qu margen de seguridad frente al ruido
tienen?; qu "fan-out" puede deducirse de los datos anteriores?.
2.- Para medir la resistencia de salida de un inversor CMOS se han obtenido las funciones de transferencia
representadas en la figura siguiente; cul es el valor de dicha resistencia?, cul ser (en la situacin 1) el
margen de ruido en potencia?.
1V
6V
5V
0V
3V
3V
Vcc = +6V
situacin 1
situacin 2
200
200
3V
3.- Los montajes de la figura corresponden a un inversor CMOS, alimentado a 5 V; cunto valdr la
resistencia de salida del inversor en cada caso?, a qu puede deberse el que ambos valores sean
diferentes?, cul de las dos resistencias es ms favorable y por qu?, cul es la intensidad mxima
que podemos obtener de la salida del inversor si queremos que el margen de ruido no sea inferior a
1,5 V?.
+5V
680
470
4, 6 V
0, 3 V
4.- Un hipottico circuito integrado se alimenta a 12 voltios y contiene 4 puertas Nor de 2 entradas, sus
datos de consumo segn catlogo son los siguientes:
I
CCH
= 0, 4 mA; I
CCL
= 0,8 mA; C
pd
= 75 pF;
Si medimos el consumo de dicho integrado, conectando todas sus entradas a 0V menos una de ellas
que se conecta a una seal cuadrada de 20 MHz, cul ser el valor que indique el polmetro al
efectuar esta medida?.
5.- Sea un C.I. de 6 inversores que se alimenta a 10 V; al medir el consumo de los 6 inversores
conmutando con una onda cuadrada resultan los siguientes valores: 24 mA si la onda es de 4 MHz y
36 mA si es de 8 MHz; qu podemos decir de su consumo esttico?, calcular el parmetro C
pd
de
cada inversor.
ELECTRNICA DIGITAL [ 1Q 14]
En los guiones de prcticas se incluyen las hojas de caractersticas de la serie HC;
comprubese que se sabe localizar sobre ellas:
- Tensiones e intensidades de entrada y de salida para ambos estados 1/0:
( V
oH
, I
oH
) , ( V
oL
, I
oL
) ; V
iHmn
, V
iLmx
, I
iH
, I
iL
.
- Mrgenes de ruido en tensin y en potencia.
- Fan-out.
- Consumo en cada estado 1/0. Consumo dinmico.
- Tiempos de propagacin. Velocidad de trabajo estimada para un biestable.
- Intervalo de tensiones de alimentacin.
- Intervalo de temperaturas.
Se sugiere, asimismo, estudiar-repasar la forma de medir estas magnitudes utilizada en
la prctica n 5.
Cuestiones referentes a laboratorio:
- Cmo puede obtenerse, con un polmetro, la funcin de transferencia de una puerta?.
- Cmo se medir, con un polmetro, su resistencia de salida?.
- Cmo puede medirse, con un osciloscopio, la resistencia de salida?.
- Cmo se puede comprobar que el consumo esttico de una puerta es nulo?.
- Cmo se puede comprobar que el consumo dinmico aumenta con la frecuencia y que dicho aumento es
lineal?.
- Si el consumo esttico no fuera nulo, cmo se medira el consumo dinmico?.
- Cmo puede medirse con un polmetro el margen de ruido en tensin?.
- Cmo puede medirse con un polmetro el margen de ruido en potencia?.
- Cmo podemos medir con un polmetro las dos tensiones de conmutacin de una puerta con entrada
Schmitt?.
- Cmo puede medirse con un osciloscopio el tiempo de propagacin de una puerta?.
- Cmo puede medirse el tiempo de propagacin con un polmetro?.
ELECTRNI CA DI GI TAL Prctica n 1: Puertas Booleanas.
Objetivos:
- Tocar y utilizar los circuitos integrados digitales, comenzando por los correspondientes a puertas lgicas.
- Montar en laboratorio y comprobar la operacin de inversores y puertas "o", "y", "nand", "nor" y "o-
exclusiva"
- Comprobar la inversin de ondas por parte del inversor, el "control de paso" por parte de una puerta "y"
y el "control de inversin" por parte de una puerta "o-exclusiva".
- Verificar que las operaciones "nand" y "nor" son de tipo unitario,
construyendo con ellas las operaciones bsicas.
- Comprobar que la operacin "nand" es til para construir sumas de productos
y la operacin "nor" lo es para construir productos de sumas.
Preparacin de la prctica:
1. Tablas de las operaciones "o", "y", "nand", "nor","o-exclusiva"
2. Dibujar el esquema de conexiones necesario para ver en el osciloscopio, a la vez,
la entrada y salida de un inversor que recibe una onda cuadrada;
dibujar, tambin, (una debajo de otra) dichas ondas de entrada y salida.
3. Dibujar las ondas de salida de las puertas "o", "y", "nand", "nor" y "o-exclusiva" de dos entradas,
siendo las seales conectadas a dichas entradas las siguientes:
4. Una representacin de las 4 puertas "nand" en el circuito integrado 7400 es la siguiente
00
1 2
3
4 5
6
9 10
8
1213
11
en esta figura las entradas se han dibujado a un lado y las salidas al otro;
esta representacin no se corresponde con la situacin real de los terminales de dicho circuito integrado,
dibuja el circuito integrado tal como sus terminales se encuentran situados en realidad.
5. Todos los circuitos integrados que utilizamos en esta prctica son de 14 terminles
y se alimentan a 5 V por los terminales 14 (a +5 V) y 7 (referencia o tierra a 0 V;
dibuja el circuito integrado junto con su fuente de alimentacin.
6. Dibujar la forma de obtener con puertas "nand" las operaciones "o", "y", "nor", "o-exclusiva";
cmo se puede obtener esta ltima operacin con solamente 4 puertas "nand"?
7. Dibujar la forma de obtener con puertas "nor" las operaciones "o", "y", "nand", "o-exclusiva"
8. Dibujar la forma de obtener con puertas "nand" la funcin y =a.b +c.d
Escribir la tabla de dicha funcin
9. Dibujar la forma de obtener con puertas "nor" la funcin y =(a +b) . (c +d)
Escribir la tabla de dicha funcin
10. Empleamos diodos LED para observar el estado de las salidas de las puertas,
dichos diodos deben llevar una resistencia en serie para limitar la intensidad que pasa por ellos;
dibuja el circuito: inversor diodo LED a su salida,
cundo debe valer la resistencia si la tensin del diodo LED cuando conduce es de 2 V
y la intensidad que se requiere para verlo bien es de unos 15 mA?.
Desarrollo de la prctica:
1.- Puertas bsicas. I nversor, puerta "o" y puerta "y":
Comprobar la tabla de operacin de un inversor (7404), de una puerta "o" (7432) y de una puerta "y" (7408),
visualizando su salida en uno de los diodos LED.
Nota: Es necesario alimentar a 5 V estos circuitos integrados digitales.
Conectando a la entrada de un inversor una onda cuadrada de 10 kHz, observar en el osciloscopio la inversin de la
onda, comparando la entrada y la salida del inversor.
Conectando una onda cuadrada de 100 kHz a una de las entradas de una puerta "y", observar su comportamiento
como "puerta de paso" controlada por la otra entrada ("1"=pasan los pulsos; "0"=no pasan).
Configurar una puerta o-exclusiva y comprobar su funcionamiento.
Conectando una onda cuadrada de 1 kHz a una de las entradas de dicha puerta o-exclusiva, observar su comporta-
miento como "puerta inversora" controlada por la otra entrada ("1"=se invierten los pulsos; "0"=no se invierten ).
04
08
32
1
2
3
4
5
6
9
8
11
10
13
12
1 2
3
4 5
6
9 10
8
1213
11
1 2
3
4 5
6
9 10
8
1213
11
Terminales de alimentacin: +5V ....... 14 ; 0V ....... 7
2.- Puertas "unitarias". Puerta Nand y puerta Nor:
Comprobar la tabla de operacin de una puerta Nand (7400) y de una puerta Nor (7402), visualizando su salida en
uno de los diodos LED.
Configurar con puertas Nand un inversor, una puerta "o" y una puerta "y" y comprobar su funcionamiento.
Configurar con puertas Nor un inversor, una puerta "o" y una puerta "y" y comprobar su funcionamiento.
Configurar con cuatro puertas Nand una puerta "o-exclusiva" y comprobarla.
Construir con puertas Nand la funcin y =a.b +c.d y comprobar su tabla funcional.
Construir con puertas Nor la funcin y =(a +b) . (c +d) y comprobar su tabla funcional.
00
02
1 2
3
4 5
6
9 10
8
1213
11
2 3
1
5 6
4
8 9
10
1112
13
Terminales de alimentacin: +5V ....... 14 ; 0V ....... 7
ELECTRNI CA DI GI TAL Prctica n 2: Funciones Booleanas.
Objetivos:
- Tocar y utilizar los circuitos integrados digitales para construir funciones booleanas.
- Montar en laboratorio y comprobar diversas funciones booleanas.
- Entrar en contacto con la suma y la comparacin aritmticas, construidas como funciones booleanas.
- Comprobar la posibilidad de construir una funcin booleana con un multiplexor o con un decodificador.
Preparacin de la prctica:
1. Obtener la expresin algebraica de la funcin ser nmero primo para nmeros binarios de 3 dgitos
y pasar dicha expresin a puertas "nand" e inversores
2. Sea el siguiente conjunto de nmeros: {0, 1, 5, 8, 9, 10, 11, 13, 15}
y la funcin que indica si un nmero binario de 4 bits pertenece o no a dicho conjunto;
escribir la tabla de esta funcin y obtener su expresin algebraica con puertas "nor" e inversores
3. Sean dos nmeros binarios de un solo dgito A =a, B =b,
obtener las funciones A >B y B >A y configurarlas con puertas "nand" e inversores;
teniendo en cuenta que la funcin A =B es igual a ) B A ( . ) B A ( < > ,
obtener la funcin A =B aprovechando las puertas de las dos funciones anteriores;
de esta forma, dibujar las tres funciones utilizando solamente las puertas
de dos circuitos integrados: un 7400 y otro 7404
4. Una celda sumadora tiene tres entradas a, b y c (arrastre), y dos salidas s y c (salida de arrastre)
escribir la tabla funcional de la celda sumadora
y obtener las expresiones algebraicas de las dos funciones de salida;
dibujar dichas dos funciones utilizando solamente puertas "o-exclusiva" y puertas "nand"
5. Escribir la tabla de la funcin a) .(c b + b.a = y
y, a partir de dicha tabla, dibujar la forma de configurar esa funcin
con un multiplexor de 3 entradas: c b a
6. Escribir la tabla de la funcin ser nmero primo para nmeros de 4 dgitos
y dibujar la forma de configurar esa funcin con un multiplexor de 3 entradas,
utilizando como entradas del multiplexor c b a
(para ello dividir la tabla en dos mitades, una para d =0 y otra para d =1);
repetir el dibujo utilizando como entradas del multiplexor d c b
(para ello dividir la tabla en dos mitades, una para a =0 y otra para a =1)
7. A partir de la tabla de la funcin a) .(c b + b.a = y ,
dibujar la forma de construirla con un decodificador de 3 entradas: c b a
8. En un mapa de Karnaugh de 4 variables, sitar 4 ceros formando un cuadrado
y, luego, aadir un rectngulo de 2 ceros (que no se solapen, ni formen lnea con los anteriores ceros);
escribir en forma lineal, la tabla de esta funcin de cuatro entradas:
dibujarla con puertas Nand e inversores y, tambin, con puertas Nor e inversores.
NOTAS:
1. El multiplexor 74151 tiene una entrada EN de habilitacin, que ha de estar a 0 para que el multiplexor funcione
(dicha entrada est negada y, por tanto, se activa con valor 0). Tiene, asimismo, una salida suplementaria W, que no
es sino la negada de la salida normal Y (es decir, de Y a W hay simplemente un inversor).
2. El decodificador 74138 presenta sus salidas negadas (normalmente estn a 1 y, cuando una salida se activa, se
pone a 0). Tiene tres entradas de condicionamiento (o habilitacin) G1, G2A y G2B que deben conectarse G1 a 1
y G2, ambas, a 0 (son entradas negadas).
Desarrollo de la prctica:
1.- Discriminador de nmeros primos.
Disear un circuito digital cuya salida sea "1" cuando la entrada sea un nmero binario de tres dgitos y dicho
nmero sea primo; configurar dicho circuito con puertas Nand (74HC00) e inversores (74HC04), montarlo utilizando
como entradas los conmutadores P
6
P
5
P
4
y comprobar su funcionamiento, observando la salida sobre uno de los
diodos luminiscentes LED y la entrada sobre un visualizador de 7 segmentos.
Ampliar el circuito digital anterior a nmeros de 4 dgitos pero de forma que la entrada sea siempre una cifra decimal
(nmero BCD de 0 a 9); entradas, los conmutadores P
7
P
6
P
5
P
4
y observar la salida sobre un LED y la entrada sobre
un visualizador de 7 segmentos.
2.- Otra funcin de 4 variables.
Sea el siguiente conjunto de nmeros: {0, 1, 5, 8, 9, 10, 11, 13, 15} y la funcin que indica si un nmero binario de
4 dgitos pertenece o no a dicho conjunto; construir la funcin, con puertas Nor e inversores. Comprobar su tabla
funcional; entradas, los conmutadores P
7
P
6
P
5
P
4
y salida sobre un LED.
3.- Comparador de un bit.
Construir un comparador de dos nmeros binarios de una sola cifra, generando las tres funciones ( =, >, <) con
puertas Nand (utilizando solamente un circuito integrado 74HC00) e inversores (un circuito integrado 74HC04),
representando sus tres salidas (igual, mayor, menor) en los diodos LED.
4.- Clula sumadora.
Configurar una celda sumadora (con sus tres entradas correspondientes a los digitos de los dos operandos y al
acarreo), utilizando puertas Nand y puertas o-exclusiva; visualizar sus salidas (resultado y arrastre) en los diodos LED
y comprobar su funcionamiento.
5.- Funciones con multiplexores.
Configurar y comprobar con el multiplexor de 8 canales (74151) la funcin: a) .(c b + b.a = y .
Configurar con dicho multiplexor (de 3 entradas) la funcin "ser nmero primo" para nmeros binarios de 4 dgitos y
comprobarla, observando la salida sobre un diodo LED y el vector de entrada sobre un visualizador de 7 segmentos.
6.- Funciones con decodificadores.
Configurar con el decodificador de 8 lneas (74138, cuyas salidas estn negadas) y una puerta Nand de 4 entradas la
funcin: a) .(c b + b.a = y y comprobar su tabla funcional.
7.- Una funcin particular (si da tiempo).
En un mapa de Karnaugh de 4 variables, sitar 4 ceros formando un cuadrado y, luego, aadir un rectngulo de
2 ceros (que no se solapen, ni formen lnea con los anteriores ceros); llenar las casillas restantes de unos.
Escribir, en forma lineal, la tabla de esta funcin de cuatro entradas y construirla con puertas Nand e inversores;
repetir asimismo la construccin con puertas Nor e inversores. Comprobar en ambos casos la tabla de la funcin.
Tensiones de alimentacin: +5 V ....... 16
0 V ....... 8
G1
G2A
G2B
C
B
A
Y7
Y6
Y5
Y4
Y1
Y0
Y3
Y2
138
6
12
11
10
9
7
4
5
3
2
1
15
14
13
EN
7
6
5
4
3
2
1
0
C
B
A
151
W
Y
7
4
3
2
1
15
14
13
12
11
10
9
6
5
alimentacin:
+5V ....... 14
0V ....... 7
2
0
1 9 2
1
0 4
1
2 5
1
3
6 8
ELECTRNI CA DI GI TAL Prctica n 3: Puertas lgicas con diodos y con interruptores.
Objetivos:
- Tocar y utilizar mnimamente diodos y transistores MOS para formar puertas lgicas.
- Montar en laboratorio y comprobar la operacin de puertas "o" e "y" con diodos.
- Montar y comprobar la operacin de inversores y puertas "nand", "nor" y "o-exclusiva" con transistores MOS.
- Comprobar la inversin de ondas por parte del inversor NMOS y estudiar su comportamiento en frecuencia.
- Medir el consumo de un inversor y compararlo con su clculo circuital.
- Observar en la tensin de alimentacin la produccin de ruido causado por la conmutacin.
Preparacin de la prctica:
1. Dibujar sendas puertas "o" e "y" con diodos
2. Dibujar un inversor NMOS e indicar sobre el mismo los terminales del transistor:
fuente, drenaje y puerta. (resistencia de polarizacin de 3K9 y tensin de alimentacin de 10 V);
calcular la intensidad que consume este inversor cuando su salida es 0 y cuando es 1
3. Dibujar (una debajo de otra) la entrada y salida de un inversor que recibe una onda cuadrada
4. Dibujar la onda de salida del circuito de la figura,
si la entrada es una onda cuadrada cuyos niveles son 0 y 10 V
dibujar cmo cambia dicha onda de salida si cambiamos la resistencia por otra 10 veces menor
5. Calcular la intensidad que consume un condensador de 10 pF al cargarse y descargarse a una tensin de 10 V
si lo hace a travs de una resistencia con una onda cuadrada de: 500 KHz, 1 MHz, 1,5 MHz, 2 MHZ
6. Dibujar puertas NMOS de tipo "nand", "nor" y "o-exclusiva"
y escribir al lado de las mismas la tabla de operacin de cada puerta
NOTAS:
1. Comprubese, por favor, el valor de cada componente al cogerlo y al dejarlo en su cajita. Se solicita la
colaboracin de todos para que ningn componente est en una caja que no le corresponda. Aunque ello suponga un
cierto esfuerzo y una mayor dedicacin de tiempo, agradeceremos mucho el esfuerzo por reordenar lo que otros han
dejado en mal lugar: es la nica forma de que el laboratorio pueda ser utilizado con eficacia.
2. Los transistores MOS son muy "frgiles" frente a las cargas elctricas. Procurar no tocarlos con las manos. Es
probable que algunos de ellos se encuentren deteriorados: en caso de no conmutar adecuadamente, prubese el
circuito con otros ejemplares.
3. Montar los transistores MOS insertando sus tres terminales en tres lneas seguidas de la placa de montaje, sin
doblar ni deformar los terminales de los transistores; compltese adecuadamente el circuito con cablecitos cortos.
4. Caso de que las ondas de salida presenten oscilaciones apreciables o ruido, filtrar la alimentacin mediante un
condensador de 470 nF (condensadores de terminales axiales que se insertan fcilmente en las lneas de alimentacin
a ambos lados de la placa de montaje).
5. La medida de intensidades se efecta por una entrada especfica del polmetro (mA); despus de efectuar tal
medida conviene no dejar el terminal del polmetro conectado a dicha entrada, porque la medida de tensiones a
travs de ella puede ser destructiva (intensidad infinita).
Desarrollo de la prctica:
Para la realizacin de esta prctica,
utilcese una tensin de alimentacin de 10 V
y como niveles de tensin booleanos 0 y 10 V.
Las salidas se observarn sobre el osciloscopio.
[No conectar las salidas a los diodos LED] .
Diodos 1N4148
Transistor MOS: BS170 NMOS
Leer nota 1
drenaje D S fuente
G puerta
BS170 vista frontal
ctodo (-) ando (+)
1N4148
1.- Puertas con diodos.
Montar y comprobar el funcionamiento de una puerta "o" y de otra "y", construidas con diodos (resistencia de
polarizacin de 10K).
2.- El transistor MOS como interruptor (inversor). Ver notas 2, 3 y 4
Comprobar el funcionamiento como interruptor de un transistor NMOS en un inversor, con una resistencia de
polarizacin de 3K9. Dibujar el circuito que corresponde a este inversor.
Con una onda binaria de 1 KHz de frecuencia (utilizar la salida TTL del generador de seales, que proporciona una
onda cuadrada entre 0 y 4 V), observar su comportamiento como inversor.
Observar la conmutacin para frecuencias altas: aumentar sucesivamente la frecuencia a 100 KHz, 500 KHz, 1 MHz
y 2 MHz.
Disminuir la resistencia de polarizacin del primer inversor (a 390 ) y observar de nuevo la conmutacin para
frecuencias altas.
Observar (con la resistencia de 390 y una seal de 10 KHz) el ruido producido por la conmutacin del inversor
sobre la tensin de alimentacin; para ello, conectar el osciloscopio sobre la tensin de alimentacin, sin condensador
de filtrado, eliminar la componente continua y ampliar convenientemente. Medir la amplitud de los picos de ruido.
Colocar un condensador de 47 nF (axial) en paralelo con la alimentacin y observar su efecto sobre el ruido.
3.- Consumo del inversor. Ver nota 5
Efectuar estas medidas en el circuito anterior, con la resistencia de polarizacin de 3K9, situando el miliampermetro
entre la alimentacin y la resistencia de polarizacin. [El osciloscopio no debe estar conectado al circuito.].
Colocar un condensador de 470 nF en paralelo con la alimentacin, entre +10 V (despus del miliampermetro, junto
a la resistencia de polarizacin) y 0V (la fuente del transistor).
Medir, con el polmetro, el consumo de este inversor (medir la intensidad que proporciona la fuente de alimentacin)
para cada uno de los dos valores booleanos: 0 y 1. Calcular el consumo de intensidad en el circuito correspondiente
para cada valor booleano y comparar el resultado con el valor medido .
Medir tambin el consumo en la entrada del inversor para cada uno de los dos valores booleanos. Comparar la
medida con el resultado de calcular la intensidad de entrada en el circuito correspondiente.
Medir el consumo dinmico de este inversor para frecuencias altas (500 KHz, 1 MHz, 1,5 MHz y 2 MHz). Para
obtener el consumo dinmico del inversor, es preciso restar al consumo total el consumo esttico promedio (dicho
consumo esttico puede medirse directamente mediante una seal de frecuencia baja, por ejemplo 1 KHz, en cuyo caso
el consumo dinmico es despreciable).
4.- Puertas con interruptores: Lgica NMOS.
Montar con transistores NMOS una puerta Nand de dos entradas (resistencia de polarizacin de 15K) y comprobar
su tabla de operacin.
Hacer lo mismo con una puerta Nor de dos entradas .
Montar la funcin o-exclusiva con 5 transistores y comprobar su "tabla de verdad" (funcin "ser diferentes").
ELECTRNI CA DI GI TAL Prctica n 4: Bloques Combinacionales.
Objetivos:
- Tocar y utilizar los bloques integrados digitales.
- Montar en laboratorio y comprobar el funcionamiento de los bloques integrados ms usuales.
- Montar y comprobar un pequeo sistema digital de dejar pasar el mayor / el menor de dos nmeros.
Preparacin de la prctica:
Siempre es bueno y conveniente y saludable (ms an en caso de dudas)
consultar las hojas de caractersticas del circuito integrado
[un resumen til de las mismas se encuentra al final de este cuadernillo]
1. Escribir la tabla funcional de un decodificador de 4 entradas
entradas d c b a salidas Y0 ... ... ...Y15;
repetir dicha tabla para un decodificador de 10 salidas (BCD) con las salidas negadas:
entradas D C B A salidas Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9
2. Escribir la tabla funcional de un multiplexor de 8 lneas (3 entradas de control)
entradas c b a salida Y
3. Escribir la tabla funcional de un conversor de BCD a 7 segmentos de nodo comn:
entradas D C B A salidas a b c d e f g;
el conversor tiene una entrada de test de lmparas LT (se activa con valor 0),
qu valor tendrn las salidas cuando se activa esa entrada?
4. El conversor BCD a 7 segmentos tiene una entrada RBI y una salida RBO
para anular la iluminacin de ceros no significativos (ambas activas con valor 0);
dibuja 4 conversores seguidos, para representar un nmero de 4 dgitos decimales,
de forma que los ceros no significativos no se enciendan
(no debe representarse 0065 sino 65; tampoco debe representarse 0000 sino 0)
5. Un comparador de 4 dgitos est compuesto por 4 celdas comparadoras como la de la figura siguiente
dibuja la configuracin interna (la conexin de celdas) del comparador de 4 bits;
a qu valores es necesario conectar las entradas = > < de la primera celda y por qu?
celula
comparadora
a b
=
>
<
= > <
celula
sumadora
a b
c
c' s
6. Un sumador de 4 dgitos est compuesto por 4 celdas sumadoras como la de la figura anterior
dibuja la configuracin interna (la conexin de celdas) del sumador de 4 bits;
a qu valor es necesario conectar la entrada de arrastre de la primera celda y por qu?
7. Dibujar un circuito digital que deje pasar el mayor de dos nmeros binarios de cuatro dgitos;
ampliar ese circuito, aadindole una entrada C,
de forma que cuando C = 0 deje pasar el mayor de los dos nmeros
y cuando C = 1 deje pasar el menor de ellos
Desarrollo de la prctica:
1.- Decodificadores.
Verificar el funcionamiento del decodificador de 10 lneas (7442), visualizando sus salidas sobre diodos LED
(adems de los 8 diodos LED disponibles en el entrenador ser necesario montar otros 2, cada uno de ellos con una
resistencia de 180 en serie).
2.- Multiplexores.
Verificar el funcionamiento del multiplexor de 8 canales (74151), representando su salida sobre un diodo LED;
conectar en sus entradas la palabra binaria correspondiente al nmero 210.
3.-Codificadores: Conversor BCD a 7 segmentos.
Comprobar el funcionamiento del conversor BCD a 7 segmentos (7447), conectando sus salidas a un visualizador de
7 segmentos de nodo comn (limitar mediante resistencias la intensidad de cada segmento a un mximo de 12 mA,
sabiendo que la tensin LED es aproximadamente 2 V y la tensin ON de salida del integrado es del orden de 0,5 V).
En el conversor anterior, verificar el funcionamiento de las entradas de test de lamparas.
Verificar, tambin, la anulacin de ceros no significativos (entrada RBI) y observar el funcionamiento de la salida
correspondiente a dicha anulacin (RBO).
A
B
C
D
9
8
7
6
5
4
3
2
1
0
42
EN
7
6
5
4
3
2
1
0
C
B
A
151
W
Y
LT
RBI
A
B
C
D
47
RBO
A
B
C
D
E
F
G
15
14
13
12
1
2
3
4
5
6
7
9
10
11
4
3
2
1
15
14
13
12
11
10
9
7
6
5
7
1
2
6
3
5
4
14
15
9
10
11
12
13
Tensiones de alimentacin: +5 V ....... 16
0 V ....... 8
4.- Bloques aritmticos.
En los siguientes apartados se van a utilizar como entradas dos nmeros de 4 bits; uno de dichos nmeros se fijar con
los conmutadores P
7
P
6
P
5
P
4
y el otro con un conmutador rotativo BCD (dicho conmutador se alimentar a +5 V y
se aadirn 4 resistencias de 1K5 para la referencia a 0 V de sus 4 salidas); las salidas de los bloques se representarn
sobre diodos LED.
Comparador integrado de nmeros de cuatro bits:
Comprobar el funcionamiento del comparador de nmeros binarios de cuatro dgitos (7485).
Sumador integrado de nmeros de cuatro bits:
Verificar el funcionamiento del sumador de nmeros binarios de cuatro dgitos (7483).
B1
B2
B3
B0
A3
A2
A1
A0
A>B
A=B
A<B
85
A>Bin
A=Bin
A<Bin
B1
B2
B3
B0
A3
A2
A1
A0
S3
S2
S1
S0
C
C
83
157
B3
A3
B2
A2
B1
A1
A0
B0
SEL
EN
Y3
Y2
Y1
Y0
10
12
13
15
9
11
14
1
4
7
6
5
3
2
10
8
3
1
11
7
4
16
9
6
2
15
13
14
2
3
5
6
11
10
14
13
1
4
7
9
12
15
Tensiones de alimentacin: 85 y 87: +5 V ....... 16 83: +5 V ....... 5
0 V ....... 8 0 V ....... 12
A B C D +5 V
Conmutador
Rotativo BCD
5.- Multiplexor de dos buses de cuatro lneas:
Comprobar el funcionamiento del multiplexor de buses de cuatro lneas (74157).
Configurar un circuito que deje pasar el mayor de dos nmeros de cuatro bits.
Ampliar este ltimo circuito, aadindole una entrada C de forma que cuando C = 0 deje pasar el mayor de dos
nmeros de cuatro bits y cuando C = 1 deje pasar el menor de los dos nmeros.
ELECTRNICA DIGITAL Prctica n 5: Familia Lgica CMOS.
La primera clase del mes de enero se dedicar a comentar y razonar esta prctica.
Objetivos:
- Experimentar con detenimiento las caractersticas de la familia CMOS 74HC.
- Representar en osciloscopio la funcin de transferencia de un inversor.
- De dicha funcin de transferencia obtener los datos de tensiones y los mrgenes de ruido.
- Medir las resistencias de salida de un inversor
y comparar su valor con el que se obtiene de los datos del fabricante.
- Calcular la intensidad de salida que puede proporcionar y medirla .
- Medir, en forma aproximada, el tiempo de propagacin.
- Medir los consumos estticos y el consumo dinmico
y comparar esos resultados con los tericos.
- Observar las series HCT y SCHMITT.
Preparacin de la prctica:
1. Dibuja la funcin de transferencia de un inversor CMOS,
supuesta que la conmutacin se produce entre los 2,2 y los 2,6 V (alimentacin de 5 V)
2. Dibuja el circuito necesario para representar dicha funcin de transferencia en el osciloscopio
3. De la funcin de transferencia, extraer los valores de VoL, VoH, ViLmx, ViHmn, V(0) y V(1)
4. Dibuja los circuitos necesarios para medir las resistencias de salida;
cul ser el valor de dichas resistencias si para Io = 10 mA las tensiones de salida son 0,4 V y 4,4 V?,
cunto valdr, en ese caso, P(0) y P(1)?
5. Con el valor de las resistencias de salida del apartado anterior,
qu intensidad podr proporcionar la salida a 0 si la tensin de salida debe ser VoL < 1 V?,
qu intensidad podr proporcionar la salida a 1 si la tensin de salida debe ser VoH > 4 V?
6. Dibuja el circuito adecuado para medir el tiempo de propagacin de un inversor (74HC04),
de qu orden de magnitud ser dicho tiempo de propagacin?
7. Dibuja el circuito adecuado para medir los consumos estticos de un inversor (74HC04),
qu valor debe darnos esta medida?
8. Dibuja el circuito adecuado para medir el consumo dinmico de un inversor (74HC04);
supuesto Cpd = 20 pF, qu valor debe darnos la medida del consumo dimico
a las siguientes frecuencias: 500 KHz, 1MHz, 1,5 MHz, 2 MHz?
9. Dibuja la funcin de transferencia de un inversor con entrada SCHMITT
cuyas tensiones de conmutacin sean 2,5 V y 3,5V
Desarrollo de la prctica:
Se adjuntan hojas para representar las funciones de transferencia y anotar los resultados de las medidas.
1.- Funciones de transferencia.
Se utiliza el C. I. 74HC04 que contiene 6 inversores y para eliminar el "ruido" generado en la conmutacin,
se filtra la tensin de alimentacin con un condensador de 47 nF (axial) en paralelo con ella y la entrada con
otro de 10 nF (tambin en paralelo); ambos lo ms prximos posible a los terminales del circuito integrado.
Fijar en el generador de seales una onda triangular de 200 Hz, unipolar (es decir, toda ella positiva) que
recorra el intervalo de tensiones de 0 a 5 V; excitando con dicha onda de entrada uno de los 6 inversores del
circuito integrado 74HC04 y, utilizando la representacin XY del osciloscopio, observar y dibujar la
funcin de transferencia, Vo-Vi.
A partir de la grfica anterior expresar en el diagrama salida-entrada las tensiones VoL, VoH, ViLmx,
ViHmn y calcular los mrgenes de ruido en tensin.
2.- Resistencia de salida y margen de ruido en potencia.
[Quitar los dos condensadores de filtrado la entrada del inversor para desarrollar los apartados 2 al 5].
[A partir de aqu no se utiliza la representacin XY del osciloscopio, ni la seal triangular de entrada].
Medir la resistencia de salida para cada uno de los dos estados booleanos, conectando para ello una
resistencia de 220 en la salida (Ro = Vo / Io), y calcular los mrgenes de ruido en potencia.
Nota: La resistencia de salida no se mide sobre la funcin de transferencia sino conectando la entrada al
correspondiente valor booleano y midiendo con el osciloscopio en la situacin habitual V-t.
3.- Intensidad mxima de salida Io.
Con la entrada del inversor a "0" y conectando como resistencia de carga R
L
un potencimetro de 1K,
observar la variacin de la tensin de salida al variar la resistencia de carga; medir la mxima intensidad que
suministra dicha puerta manteniendo Vo(1) > 4 V (Vo < 1 V).
Con la entrada del inversor a "1" y conectando la resistencia de carga R
L
entre la salida y la tensin de
alimentacin, repetir la observacin anterior y medir la mxima intensidad para Vo(0) < 1 V.
4.- Retardo de propagacin.
Conectando en serie los 6 inversores del circuito integrado (uno detrs de otro), excitando el conjunto con
la seal TTL del generador, a 1 MHz de frecuencia y utilizando la amplificacin x10 de la escala horizontal
del osciloscopio (en la divisin temporal de 0,5 s), observar las ondas de entrada y de salida y (midiendo el
retraso entre puntos medios de dichas ondas) deducir el orden de magnitud de los tiempos de propagacin.
5.- Consumo.
Con los 6 inversores en serie (uno detrs de otro, igual que en el apartado anterior) comprobar que el
consumo esttico es nulo; para ello, medir el consumo (en la alimentacin del integrado) conectando a la
entrada del primer inversor una seal TTL de baja frecuencia (por ejemplo, 100 HZ).
Conectando dicha entrada (del primer inversor, con el resto en serie) a una seal de alta frecuencia, medir
el consumo dinmico de las puertas para frecuencias de 500 KHz, 1MHz y 2 MHz. Cuidar, en este caso, de
que el osciloscopio no est conectado al circuito (ni tampoco ningn otro condensador).
6.- Serie 74HCT (compatible con TTL).
Utilizando de nuevo la representacin XY del osciloscopio, con el circuito integrado 74HCT04, observar
y dibujar la funcin de transferencia, Vo-Vi; expresar en el diagrama salida-entrada las tensiones VoL, VoH,
ViLmx, ViHmn y calcular los mrgenes de ruido en tensin.
5.- Entrada Schmitt.
Representar la funcin de transferencia del inversor con entrada Schmitt 74HC14 y medir las dos
tensiones de conmutacin de dicha entrada; cumplimentar, asimismo, el diagrama salida-entrada.
Famila Lgica: CMOS Serie: 74HC .
Funcin de transferencia.
5 V
4 V
3 V
2 V
1V
1 V 2 V 3 V 4 V 5 V
F u n c i n d e t r a n s f e r e n c i a D i a g r a m a s a l i d a - e n t r a d a
T
e
n
s
i
o
n
e
s
de
s
a
l
i
d
a
T
e
n
s
i
o
n
e
s
de
e
n
t
r
a
d
a
5 V 5 V
0 V 0 V
Mrgenes de ruido.
Mrgenes de ruido en tensin:
VoL = V VoH = V
ViLmx = V ViHmn = V
V(0) = V V(1)= V
Resistencia de salida:
Ro(0) = Ro(1) =
Mrgenes de ruido en potencia:
P(0) = mW P(1)= mW
Intensidad mxima de salida Io.
Iomx (0) = mA Iomx (1)= mA
Retardo de propagacin: de los 6 inversores: tp ns
para 1 inversor tp ns
Consumo.
Consumo esttico (consumo promedio a baja frecuencia: Icc = mA
Consumo dinmico:
Idinmica(500KHz) = mA
Idinmica( 1 MHz) = mA
Idinmica( 2 MHz) = mA
Famila Lgica: CMOS Serie: 74HCT .
Funcin de transferencia.
5 V
4 V
3 V
2 V
1V
1 V 2 V 3 V 4 V 5 V
F u n c i n d e t r a n s f e r e n c i a D i a g r a m a s a l i d a - e n t r a d a
T
e
n
s
i
o
n
e
s
de
s
a
l
i
d
a
T
e
n
s
i
o
n
e
s
de
e
n
t
r
a
d
a
5 V 5 V
0 V 0 V
Mrgenes de ruido.
Mrgenes de ruido en tensin:
VoL = V VoH = V
ViLmx = V ViHmn = V
V(0) = V V(1)= V
Famila Lgica: CMOS Serie: 74HC entrada Schmitt .
Funcin de transferencia.
5 V
4 V
3 V
2 V
1V
1 V 2 V 3 V 4 V 5 V
F u n c i n d e t r a n s f e r e n c i a D i a g r a m a s a l i d a - e n t r a d a
T
e
n
s
i
o
n
e
s
de
s
a
l
i
d
a
T
e
n
s
i
o
n
e
s
de
e
n
t
r
a
d
a
5 V 5 V
0 V 0 V
Mrgenes de ruido.
Mrgenes de ruido en tensin:
VoL = V VoH = V
ViLmx = V ViHmn = V
V(0) = V V(1)= V
ELECTRONICA DIGITAL [ 2Q 1 ] Diseo secuencial
Respecto a los siguientes sistemas secuenciales se pide dibujar el grafo de estados del correspondiente
sistema de control, codificar los estados y escribir las funciones de activacin de las salidas [algunos
de ellos estn en los apuntes; no es cuestin de copiarlos, sino de pensar el grafo que uno mismo
propondra]:
1.- Un montacargas es controlado con tres pulsadores: subida S, bajada B y parada P; para modificar el
sentido de la marcha es preciso activar previamente el pulsador de paro y no responde cuando se
activan simultneamente varios pulsadores. Sendos topes fin de carrera Ti y Ts le impiden continuar
cuando alcanza los extremos del recorrido.
2.- Un motor es controlado mediante dos pulsadores A y B de forma que con A gira hacia la izquierda
y continua girando al ser soltado y con B gira hacia la derecha y lo sigue haciendo despus de soltarlo;
el motor se detiene al pulsar conjuntamente A y B. Si mientras esta girando en un sentido se activa el
pulsador correspondiente al giro en sentido contrario, el motor se para y cambia el sentido del giro al
soltar dicho pulsador.
3.- Una sirena se activa con un pulsador A y se desconecta con el mismo pulsador: al pulsar por
primera vez A, la sirena comienza a sonar cuando se deja de pulsar; en cambio, cuando la sirena esta
sonando basta pulsar sobre A para hacerla callar.
4.- Un sistema electrnico dispone de tres pulsadores a, b y c, tales que si se presiona primero el a,
luego el b y finalmente el c, se enciende una lampara; en cambio si se pulsan dos a la vez, o en orden
diferente al indicado, la lampara no se activa. La lampara permanece encendida hasta que se presionan
a la vez los tres pulsadores.
5.- Un deposito de agua dispone de dos bombas A y B para su llenado y de tres detectores de nivel
MAXimo, MEDio y MINimo. Cuando el nivel cae por debajo del nivel medio entra en
funcionamiento una de las bombas hasta que alcanza el mximo, por debajo del nivel mnimo actan
ambas bombas hasta el nivel medio y luego una sola de ellas hasta el mximo; para equilibrar el
desgaste de las bombas, cuando funciona una sola, lo hacen alternativamente (es decir, que si la vez
pasada lo ha hecho la bomba A, entrar en funcionamiento la B y viceversa).
6.- Un cronmetro utiliza un contador con entradas de HABilitacin y de BORrado. Se desea aadirle
un circuito de control con dos pulsadores P y Q tal que el contaje se inicie al activar P y se detenga al
pulsar Q y un segundo pulso de Q borra el contador; en cambio, una vez detenido el contaje, si se
pulsa P se reanuda el mismo.
7.- Una planta fabrica dos tipos de piezas de longitud L+a y L-a, respectivamente, las cuales pasan por
una cinta transportadora delante de dos clulas fotoelctricas con una separacin L entre ambas; el
circuito que permita distinguir entre los dos tipos de piezas debe tener dos salidas, que se activarn al
detectar una u otra de las piezas.
8.- Cierto mecanismo M se desplaza por un riel circular a partir de la posicin A, en la cual existe un
sensor que detecta la presencia del mismo. Cuando se activa un pulsador P, M inicia su movimiento al
soltar P y da una vuelta en el sentido de las agujas del reloj y otra en sentido contrario, tras lo cual se
detiene en A; si durante el movimiento se pulsa P, M se para y, al soltar, completa la vuelta que esta
dando y se detiene en A.
ELECTRONICA DIGITAL [ 2Q 2 ] Simplificacin de estados
Respecto a los siguientes sistemas secuenciales se pide dibujar el grafo de estados correspondiente
como autmata de Moore (un solo vector de salida en cada estado) y, despus, simplificar en lo
posible los estados y dibujar el grafo de estados como autmata de Mealy (con el menor nmero de
estados posible); escribir, en ambos casos, las funciones de activacin de las salidas:
1.- Un determinado mecanismo se mueve a lo largo de un riel entre dos posiciones A y B que se
detectan mediante sendos sensores a y b; el movimiento se controla mediante un pulsador P de la
siguiente manera:
- cuando el mecanismo se encuentra en A y se activa P, se inicia el movimiento hacia B al soltar el
pulsador P
- de la misma forma, cuando se encuentra en B se inicia el movimiento hacia A al dejar libre el
pulsador P (una vez activado)
- cuando el mecanismo se encuentra entre A y B, si se pulsa P el mvil se detiene y al soltar P
continua su movimiento anterior.
a b
2.- Un polvorn tiene una entrada de seguridad con dos puertas sucesivas a y b de tipo persiana (cada
puerta cuenta con los topes fin de carrera superiores Supa Supb e inferiores Infa Infb y dispone de
un motor que puede ser accionado como subida Sa Sb y como bajada Ba Bb); el vigilante dispone de
dos pulsadores, uno de ellos Ent para la operacin de entrada y el otro Sal para la de salida. En la
entrada la puerta a sube hasta alcanzar el tope superior e inmediatamente baja y, cuando dicha puerta a
llega abajo, se abre la puerta b hasta alcanzar el tope superior y, tambin, baja inmediatamente; en la
salida el ciclo de operacin es anlogo pero primero se abre la puerta b y luego la puerta a.
3.- Un motor puede girar en ambas direcciones y su movimiento ser controlado por dos pulsadores a
y b en la forma siguiente:
- al pulsar a se detiene el motor (si es que estaba en movimiento) y, al soltar dicho pulsador, el
motor se pone a girar en el sentido de las agujas del reloj;
- lo mismo sucede al pulsar b, pero al soltarlo, el motor girar en sentido contrario;
- la forma de detener el movimiento del motor es pulsar a y b a la vez, en cuyo caso el motor se para
y, al soltar los pulsadores continuar parado.
4.- Consideremos 3 mecanismos preparados para realizar un movimiento lineal de ida y vuelta entre
dos extremos, en los cuales existen sendos topes fin de carrera que detectan la presencia del
mecanismo en ellos, segn queda representado en la figura siguiente:
1 b
a
2 d
c
3 f
e
a,b,c,d,e,f : sensores " fin de carrera "
El movimiento de estos mecanismos debe ser el siguiente:
a) al pulsar un interruptor P, el primero se mueve hacia b y , cuando llega al extremo, el segundo de
desplaza hacia d y, luego, el tercero va hacia f
b) al encontrarse todos en el extremo derecho se inicia el movimiento de vuelta, uno a uno; primero
vuelve el tercero, luego el segundo y, por ltimo, el primero
c) si en la ida se pulsa P no sucede nada pero si en la vuelta se pulsa P se pasa al movimiento de ida
(que se realiza en el orden descrito anteriormente); cuando los tres se encuentran en el extremo
derecho, la vuelta no se inicia si est P pulsado.
ELECTRONICA DIGITAL [ 2Q 3 ] Diseo con biestables RS
Se trata de volver a los ejercicios de las dos hojas anteriores para completar su diseo:
Hoja de [2Q 1] Diseo secuencial
1.- Obtener las funciones de marcado y de borrado de los biestables a partir del propio grafo de
estados.
2.- Al igual que en el anterior, obtener las funciones de marcado y de borrado de los biestables a
partir del propio grafo de estados.
3.- Escribir la tabla de evolucin de los estados y, a partir de ella obtener las funciones de evolucin
de las variables de estado sin utilizar biestables y, luego, obtener tambin las funciones de marcado y
de borrado de los biestables a partir de dicha tabla; dibujar los dos circuitos resultantes.
4.- Codificar el grafo de estados en cdigo gray y obtener las funciones de marcado y de borrado de
los biestables a partir del grafo.
5.- Al igual que en el anterior, obtener las funciones de marcado y de borrado de los biestables a
partir del propio grafo de estados.
6.- Escribir la tabla de evolucin de los estados y, a partir de ella obtener las funciones de marcado y
de borrado de los biestables; dibujar el circuito resultante.
7.- Igual que en el anterior, obtener las funciones de marcado y de borrado de los biestables a partir
de la tabla de evolucin de los estados y dibujar el circuito.
8.- Puede resolverse con u grafo de 6 estados (una vez simplificado); obtener las funciones de
marcado y de borrado de los biestables a partir de dicho grafo.
Hoja de [2Q 2] Simplificacin de estados
1, 2, 3 y 4.- Efectuar el diseo de los circuitos secuenciales correspondientes sobre el grafo de Mealy
(con el menor numero de estados posible):
- obtener las funciones de activacin de las salidas
- y las funciones de evolucin del estado (marcado y borrado de los biestables).
ELECTRONICA DIGITAL [ 2Q 4 ] Biestables sncronos
1.- El biestable AB es de tipo sncrono y acta con los flancos de bajada del reloj CK:
- cuando B = "1" se comporta como un biestable D, con entrada de dato por A
- cuando B = "0" equivale a un biestable T (el biestable conmuta cambia de estado- en cada
pulso de reloj cuando A = 1 y no cambia cuando A = 0) ).
Disear este biestable sncrono AB utilizando para ello puertas Nor e inversores.
2.- Un registro sncrono dispone de una entrada de habilitacin E y de una entrada de borrado B (el
borrado tambin es sncrono); disear con puertas Nand los biestables necesarios para construirlo.
3.- La figura muestra un registro de desplazamiento, con carga paralela sncrona, es decir, cuando
Load = 1 el registro carga (en forma sncrona) el dato presente en sus entradas Di y cuando Load = 0
acta como registro de desplazamiento con entrada In. Disear uno de los biestables de este registro en
tecnologa CMOS (utilizando, en todo lo posible, puertas de transmisin).
Di
In
Qi
CK
Load
4.- Un registro de desplazamiento de 5 bits Q4 .. Q0 se encuentra inicialmente a 0 y la entrada de
dicho registro se conecta a la salida de una puerta Nor cuyas entradas son Q4 y Q1; cuantos pulsos de
reloj han de transcurrir para que el registro vuelva a su situacin inicial? cual ser la secuencia
repetitiva de valores booleanos que se obtiene en Q4 al conectar el reloj a una onda cuadrada.
5.- Un registro de desplazamiento est construido con biestables cuyo tiempo de anticipacin t
s
es 50
ns y el de mantenimiento t
h
20 ns cual es el valor mnimo del tiempo de propagacin t
p
que deben
tener?; en caso de que t
p
= 75 ns cual es la mxima frecuencia de reloj que podr alcanzar dicho
registro?.
ELECTRONICA DIGITAL [ 2Q 5 ] Diseo secuencial sncrono I
1.- Un sistema de azar simula el volteo de una moneda que conmuta alternativamente entre cara y cruz
a la velocidad de 10.000 veces por segundo y dispone de dos pulsadores para efectuar apuestas: A cara
y B cruz. Al activar uno de los pulsadores se detiene la moneda y, si su posicin coincide con el
pulsador, seala "premio"; en caso contrario, seala "fallo" y si se activan ambos pulsadores se inhiben
mutuamente.
A) Dibujar el correspondiente grafo de estados, en la forma de autmata de Moore.
B) Simplificar, en lo posible, dicho grafo y disear el sistema, utilizando biestables sncronos tipo D.
2.- Un sistema secuencial recibe nmeros de dos bits y debe activar su nica salida Y cuando ha
recibido la secuencia 1 2 3 (cada paso de ella puede durar varias unidades de tiempo); la salida debe
mantenerse en 1 hasta que se presente el nmero 0 en la entrada. Codificar el grafo de estados en
cdigo gray (exceptuando de la codificacin gray las transiciones que llevan al reposo) y disear el
correspondiente circuito secuencial, utilizando biestables sncronos tipo D.
3.- Sea un circuito sncrono con una sola entrada que recibe valores booleanos sincronizados con el
reloj y con dos salidas; el circuito debe ser capaz de detectar y distinguir dos secuencias distintas 010 y
100, sealando cada secuencia a travs de una de sus salidas; se admite la posibilidad de solape.
Dibujar solamente el grafo de estados y escribir las funciones de activacin de las salidas
4.- Disear un sistema sncrono con dos de sus salidas que proporcionen repetitivamente las dos ondas
de la figura, sincronizadas entre s y con el reloj del sistema; efectuar el diseo de forma que pueda ser
programado en un bloque PLS (PAL + biestables D).
periodo que se repite indefinidamente
5.- Disear, con biestables sncronos tipo D, un contador mdulo 8, con una entrada de seleccin A, tal
que si A = 0 cuenta en binario y si A = 1 cuenta en cdigo Gray.
ELECTRONICA DIGITAL [ 2Q 6 ] Diseo secuencial sncrono II
1.- Una maquina expendedora de refrescos acepta monedas de 0,5, 1 y 2 euros, codificndolas con los
vectores de entrada: 01, 10, 11 y debe cobrar 1,5 euros por el refresco y devolver el cambio
correspondiente. Dibujar el grafo de estados y expresar las funciones de activacin de las salidas (se
supone que la deteccin de moneda se ha ajustado al reloj del sistema y el vector correspondiente a
cada moneda solamente se presenta durante una unidad de tiempo).
2.- Se desea controlar un motor mediante una seal sincronizada con un reloj de
10 KHz; de forma que:
- cuando se reciben 5 unos seguidos (pero solamente 5) debe ponerse en marcha
- cuando se reciben 3 unos seguidos (slo 3 unos) el motor debe pararse.
Disear el circuito de control; deducir las funciones necesarias para programar dicho circuito en un
PLS.
3.- Disear un contador sncrono mdulo 12, que cuente de 1 a 12 (igual que hace el contador de horas
del reloj): hallar las funciones necesarias para construirlo con biestables D
4.- Un amplio sistema de riego funciona con tres bombas elevadoras de agua de gran caudal A, B, C;
en cada momento funciona una sola de las bombas y, para evitar su calentamiento, se turnan cada 90
segundos siguiendo el orden ABC. Las bombas poseen sendos sensores de temperatura a, b, c, de tipo
digital que detectan (valor "1") "temperatura inadecuada": las bombas completan siempre su intervalo
de 90'' en marcha (aunque el correspondiente sensor pase a valor "1"), pero dejan de participar en el
ciclo funcional ABC si su sensor indica temperatura inadecuada (es decir, al finalizar la bomba A, si el
sensor b se encuentra a "1", la bomba B no entra a funcionar, sino que lo hace la bomba C). Caso de
que los tres sensores se encuentren a "1", se detiene el bombeo de agua y cada 90'' intenta volver a
arrancar el ciclo ABC, pero solo lo hace si los tres sensores a, b, c, estn a "0".
Dibujar el grafo correspondiente al sistema de control de estas tres bombas de agua, codificar los
estados segn un cdigo de un solo uno y escribir las funciones de activacin de las salidas
Disear dicho circuito de control, de manera que pueda ser programado en un PLS.
5.- Disear un sistema secuencial, con un reloj de 1 KHz, que genere la siguiente forma de onda, de
manera repetitiva:
secuencia que se repite
ELECTRONICA DIGITAL [ 2Q 6 ] Diseo secuencial sncrono III
1.- Disear el circuito de control necesario para un determinado mecanismo que se mueve a partir de una
situacin de reposo A y entre dos extremos B y C (posiciones A, B y C que se detectan mediante sendos
sensores a, b y c) de la siguiente manera:
c b
a
- cuando el mecanismo se encuentra en A y se activa P, se inicia el movimiento al soltar el pulsador y el
mecanismo avanza hasta B y luego se dirige a C y vuelve a A
- si cuando el mecanismo est en movimiento se pulsa P, se dirige inmediatamente (antes de soltar P) hacia A
por el camino ms corto y se detiene
- puede suceder que llegue a A antes de haber soltado P y, en tal caso, debe evitarse que inicie un nuevo ciclo
normal (A B C A).
2.- Cierto mecanismo M se desplaza por un riel circular desde la posicin A, en la que existe un sensor que
detecta su presencia: cuando se activa un pulsador P, al soltarlo, M da una vuelta completa, pero cada vez da la
vuelta en el sentido contrario a la anterior. Si mientras est dando la vuelta se activa P, se detiene y, al soltar,
completa la vuelta en sentido contrario al que llevaba. Disear el circuito de control.
3.- Un determinado timbre se activa con un pulsador P, pero para evitar llamadas inoportunas, solamente suena
al pulsar P tres veces (la tercera vez suena mientras se mantiene P pulsado). Disear el circuito de activacin de
dicho timbre.
4..- Se desea disear un detector de flancos especial que haga lo siguiente: cada vez que la seal de entrada
presenta un flanco ascendente (subida) proporciona un pulso de 3 unidades de tiempo de reloj (111) y, si el
flanco es descendente (bajada), genera dos pulsos de salida de 1 unidad de tiempo separados por 1 unidad de
tiempo a 0 (101).
Los pulsos de salida (111 y 101) no se deben solapar ni juntar: si antes de completarse se recibe un nuevo
flanco, es ignorado (no se genera la salida que le corresponde).
5.- a) Dibujar el grafo de estados de un registro de desplazamiento de 3 bits (desplazamiento hacia la izquierda).
b) Utilizando dicho registro de desplazamiento en la forma de la figura,
dibujar la onda que se producir en la salida ms significativa del
registro, si la frecuencia de la seal de reloj es de 140 KHz.
CK
6.- Obtener el grafo de estados del circuito representado en la figura. De qu tipo es: Moore o Mealy?. Dibujar
el grafo que resultara al cambiar de tipo de autmata.
D
Q J
K
Q
CK
a
b
q1
q2
y
z
Electrnica Digital tiempos de los biestables
1.- Un registro de desplazamiento est construido con biestables cuyo tiempo de anticipacin es de 50 ns y su
tiempo de mantenimiento de 20 ns cual es el valor mnimo del tiempo de propagacin que deben tener tales
biestables?; en caso de que su tiempo de propagacin sea de 75 ns cual es la mxima frecuencia de reloj que
podr alcanzar dicho registro?. Qu tipo de herramienta detecta violaciones en los tiempos anteriores y cmo
trabaja tal herramienta?.
2.- Los biestables de un registro de desplazamiento cuyos tiempos son: t
s
=55 ns, t
p
=25 ns y t
h
=20 ns,
cual es la mxima frecuencia de trabajo que podra alcanzar dicho registro?; que pasar si cambiamos los
biestables por otros con tiempo de mantenimiento de 35 ns?.
3.- Con biestables D sncronos, con tiempos de respuesta: t
s
=50 ns, t
h
=25 ns y t
p
=15 ns cmo podra
construirse un registro de desplazamiento de 6 bits que funcione correctamente?. Cual ser su velocidad
mxima de trabajo?.
4.- Supongamos que los biestables D de nuestra librera de celdas tienen los siguientes tiempos: t
p
=20 ns, t
s
=
60 ns, t
h
=40 ns.
a) Tales datos imponen una limitacin inicial en la velocidad de trabajo de nuestros diseos secuenciales, cual
ser el tope mximo de velocidad que se deduce de ellos?
b) Qu otro aspecto temporal importante se deduce de estos datos?.
c) En caso de disear circuitos de muy alta velocidad es fcil que al resolver violaciones de permanencia (hold)
se produzcan violaciones de anticipacin (setup), por qu? qu ser necesario hacer en tal caso?.
5.-Sea el circuito de la figura, cuyos componentes presentan los siguientes tiempos:
inversores t
p
=2 ns;
puertas y t
p
=3 ns;
biestables t
p
=5 ns, t
s
=3 ns, t
h
=6 ns.
T
Q
T
Q
T
Q
T
Q
T
Q
T
Q
Pulsos
a) Cul ser la mxima frecuencia de pulsos que puede contar este contador?
b) Utilizando los mismos biestables, cmo debe cambiarse el diseo para que pueda funcionar a mayores
frecuencias?
c) Dos inversores seguidos equivalen a un simple cable; qu papel juegan los inversores en este circuito?qu
pasara si los quitsemos?
d) Cuntos caminos hay en el circuito?.
BIESTABLES: t
s
=55 ns t
h
= 20 ns t
p
= 25 ns
Registro de desplazamiento Calcular fecuencia mxima de reloj.
D
Q
Ck
D
Q
Ck
D
Q
Ck
D
Q
Ck
CK
In
Q0 Q1 Q2 Q3
que pasara con biestables cuyo tiempo de mantenimiento sea 35 ns?.
Contador dcada
tiempos de propagacin: inversor =10 ns nand = 20 ns
o-exclusiva = 25 ns nor = 15 ns
y-inclusiva = 30 ns
Calcular fecuencia mxima de reloj.
D
Q
Ck
D
Q
Ck
D
Q
Ck
D
Q
Ck
CK
Q0
Q3
Q2
Q1
ELECTRONICA DIGITAL [ 2Q 7 ] Contadores
1.- Disear en esquema de bloques un cronometro para un tiempo mximo de 1 hora, con resolucin de dcimas
de segundo y con las siguientes entradas de control: B =pulsador de borrado o puesta a cero; M =pulsador de
puesta en marcha; P =pulsador de parada y D =pulsador de detencin de la visualizacin (mientras se pulsa D
el visualizador retiene la medida pero el cronometro continua su cuenta de tiempos; al dejar de pulsar D el
visualizador representa directamente el contaje).
2.- Un circuito posee una nica lnea de entrada que recibe pulsos de diferente duracin y presenta una sola
lnea de salida que debe situarse a 1 si la anchura del ltimo pulso recibido es igual o mayor que 20 s y menor
de 24 s, con una precisin de 0,5 s: la salida se actualiza cuando finaliza el pulso (flanco de bajada). Disear
dicho circuito.
3.- Disear un cambio de escala que permita multiplicar por 5/12 el nmero de pulsos que se reciben (no utilizar
ningn oscilador adicional).
4.- Una entrada suministra pulsos de 16 MHz y nos interesa disponer, adems, de las frecuencias de 250 KHz y
de 10 KHz. Cmo obtenerlas si se dispone de contadores sncronos mdulo 16 con entradas de habilitacin y
de borrado (sncrono)?.
5.- Utilizando contadores sncronos de 4 bits del tipo indicado en la figura, con entradas de inhibicin de contaje
I y de borrado B (tal entrada de borrado acta en forma sncrona con el reloj) y solamente las 4 salidas de sus
biestables, disear un contador sncrono mdulo 100 en sus dos versiones:
a) que cuente en BCD
b) que cuente en binario.
Q3 Q2 Q1 Q0
CK
I
B
6.- Sea un contador binario mdulo 13 con una entrada de habilitacin del contaje E.
a) Si la seal en la entrada de pulsos es una onda cuadrada de 52 KHz de frecuencia, cual ser la frecuencia de
las ondas que se observan en cada salida?.
b) Con la misma onda cuadrada, qu porcentaje de tiempo est en valor 1 cada una de las salidas del contador?.
c) Caso de utilizar este contador en un sistema digital sncrono cuyo reloj sea de 10 MHz para contar los pulsos
de una seal irregular de baja frecuencia, cual ser la forma de conectar dicha seal al contador?.
ELECTRNICA DIGITAL [ 2Q 9 ] Aplicaciones contadores II
1.- Un sistema digital recibe pulsos de diferente duracin, separados unos de otros, al menos, 0,1 ms y
convierte cada pulso que recibe en otro de duracin fija de 40 s. Disear el circuito necesario, de
forma que sea sncrono, con un reloj de 1 MHz. Los pulsos de salida se producen a la vez que el de
entrada y, para evitar espurios, no se tienen en cuenta los pulsos de entrada cuya duracin sea inferior
a 2 pulsos de reloj.
2.- Interesa disponer de un circuito con una entrada por la que recibir pulsos de duracin variable y
una salida que debe avisar cuando los dos ltimos pulsos recibidos sean iguales. El circuito ser
sncrono con un reloj de 4 MHz y el aviso (salida a 1) se producir cuando finalice cada pulso hasta
que llegue el nuevo pulso; pulsos de duracin igual o superior a 50 s no son tenidos en cuenta.
Dibujar el diagrama de bloques y explicar brevemente su funcionamiento.
3.- Un circuito digital tiene como misin duplicar (multiplicar por 2) la duracin de los pulsos que
recibe, pero solamente cuando la anchura del pulso se encuentra entre 20 y 80 s (pulsos inferiores a
20 s o superiores a 80 s son ignorados). La separacin entre pulsos es siempre superior a 0,5 ms y el
pulso de duracin doble se produce al finalizar el pulso recibido; el circuito ser sncrono con reloj de
2 MHz.
a) Dibujar el esquema de bloques necesario y explicar brevemente su funcionamiento.
c) Cmo habra que modificar el diseo anterior si lo que se desea es que el circuito reduzca a la
mitad (divida por 2) la duracin de los pulsos que recibe? (al igual que antes, solamente de aquellos
pulsos cuya anchura se encuentra entre 20 y 80 s).
4.- Disear un sistema sncrono con un reloj de 100 KHz para una seal se entrada de frecuencia
variable cuyos semiperodos son siempre de duracin superior a 10 ms; en cada flanco de la seal de
entrada la salida del sistema debe producir 10 pulsos de seal cuadrada de 2 KHz, segn la figura.
5.- Un sistema sncrono con un reloj de 1 MHz recibe pulsos de diferente duracin, separados, al
menos, 50 s; el sistema mide la anchura del pulso recibido (n s) y, si n es inferior a 25 s, genera n
pulsos (tantos como la propia duracin del pulso de entrada) de 1 s, separados 1 s cada uno del
siguiente; disear dicho sistema digital, en forma de diagrama de bloques.
ELECTRONICA DIGITAL [ 2Q 10 ] Aplicaciones contadores III
1.- Disear en forma esquemtica un frecuencmetro que actualice su visualizador cada 15 segundos,
representando la frecuencia en pulsos por segundo. Cmo se puede modificar para que el resultado
apareciese en pulsos por minuto?.
2.- Un motor debe girar con un mnimo de 480 r.p.m. hasta un mximo de 540 (que no debe ser
alcanzado); disear un circuito que vigile la velocidad del motor de forma que proporcione una seal
de alarma cuando se encuentre fuera de dicho intervalo.
a) Disearlo para una alarma visual (seal luminosa) con tiempo de medida de 10 s.
b) Repetir el diseo: el circuito debe transmitir la seal de alarma a un microP. y el tiempo de medida
de la velocidad debe ser lo menor posible.
3.- Una placa trmica dispone de un control de potencia on/off: la consigna de potencia es fijada por
un mando circular con 10 niveles codificados en cdigo Gray ( 0: 0000, 1: 0001, ..., 8: 1100 y 9:
1000); el salto de potencia entre niveles debe ser del 10 %, salvo para el nivel 9 que debe proporcionar
el mximo de potencia 100%.
a) Disear el circuito de control de potencia (ciclo on/off de 10 segundos).
b) Sea un sistema anlogo para un horno, cuya temperatura se regula mediante un sensor lineal cuya
salida va de 0 a 10 V y se prefija mediante un mando circular potenciomtrico. El ciclo on/off consta
de 64 unidades de 0,1 s y, al comienzo de cada ciclo, si la temperatura es inferior a la fijada se
aumenta en una unidad el tiempo de "on" y cuando es superior se disminuye en una unidad. Disear
dicho circuito.
6.- Sea un circuito digital que proporcione pulsos de amplitud modulada en la forma siguiente: un
pulso cada milisegundo, el primero de ellos de 10 s y los siguientes con anchura creciente de 20 s,
30 s, (cada uno 10 s ms largo que el anterior), hasta alcanzar los 800 s; luego los pulsos
decrecern (de 10 en 10 s) hasta reducirse a 10 s, momento en el cual volvern a crecer; y as
sucesivamente.
a) Dibujar el diagrama de bloques suponiendo que los clculos internos se efectan en BCD y que cada
bloque maneja, a lo sumo, una cifra BCD (4 bits).
b) Si a la salida de este circuito se conecta un filtro pasa-baja (cuya frecuencia de corte sea del orden
de 100 Hz), cmo ser la forma de la onda en la salida del filtro?
5.- Un amplio saln dispone de un sistema calefactor elctrico y se desea realizar un control del mismo
que permita controlar linealmente 100 niveles de potencia (que se representarn en un visualizador de
2 cifras decimales) con dos pulsadores, uno de subida S y otro de bajada B; al mantener presionado S
la consigna de nivel de potencia debe aumentar a un ritmo de una unidad cada 0,2 s, mientras que el
pulsador B la hace disminuir en la misma forma.
a) Dibujar el esquema de bloques, incluyendo los pulsadores y el visualizador.
b) Cmo puede modificarse el diseo para que el circuito responda, no a los pulsadores S y B, sino a
un termostato el cual dispone de un sensor de temperatura y de un divisor de tensin para fijar (en
trminos de tensin) la temperatura deseada?.
ELECTRONICA DIGITAL [ 2Q 11 ] Mapas de memoria
1.- Qu posiciones de memoria ocupa un circuito integrado RAM de 8K registros cuyas entradas de
control sean las de la figura? qu particularidad tiene respecto a las operaciones de lectura y de
escritura? como deben conectarse los terminales de direccionamiento a
i
del circuito integrado?.
A15
DIRV
CE
A14
A13
A12
A11
A14
A13
A12
A14
A13
A12
A11
R/ W
DATV
A0
WE
OE
2.- Un mapa de memoria de 18 lneas de direccionamiento est ocupado inicialmente por una memoria
RAM de 8K, situada al comienzo del mapa (desde la posicin 0); a continuacin de ella se desea
colocar una segunda memoria RAM de 32K.
a) Cul es el tamao global del mapa de memoria y cuantas posiciones de memoria (registros) caben
efectivamente en el mismo? .
b) Cules sern las direcciones del mapa que corresponden a la memoria de 32K?.
c) Escribir la funcin booleana necesaria para la habilitacin de dicha memoria.
d) Cmo deben conectarse sus lneas de direccionamiento si se desea conservar en el mapa el orden
correlativo de los registros de la memoria? (es decir, el primer registro de la memoria sea el primero en
aparecer en el mapa, el segundo sea el segundo, ... ).
3.- Qu posiciones del mapa de memoria ocupa un integrado RAM de 16K x 8 bits, cuya habilitacin
es la representada en la figura?. Detallar cmo debern conectarse cada uno de los terminales de dicho
circuito integrado. Para aprovechar la velocidad mxima de trabajo qu condicin tiene que cumplir
el circuito de la figura?.
A13
A14
A12
A11
A15
A14
A12
A11
CE
4.- Un bloque integrado RAM de 8K x 8 bits debe ser situado en las posiciones iniciales de un mapa
de memoria correspondiente a un bus de direcciones de 16 lneas; sin embargo, las posiciones de
memoria situadas entre la 0C00 y la 0FFF se encuentran ya ocupadas por diversos dispositivos y
tambin lo estn las que van de la 1400 a la 1FFF, de forma debern "saltarse" (no ocupar) dichos
sectores de memoria. Disear el circuito necesario para colocar el bloque en las zonas libres mas bajas
posibles del mapa de memoria; indicar cmo deben conectarse todos sus terminales.
ELECTRONICA DIGITAL [ 2Q 12 ] Mapas de memoria II
1.- Formando parte del espacio de memoria direccionado por un bus de 14 bits, se desea configurar un
segmento de 12 Kbytes compuesto por 2K RAM bipolar, 2K RAM CMOS y 8K ROM, comenzando
en la direccin 1000 y en el orden indicado. Se dispone para ello de circuitos integrados RAM
bipolares de 1K, RAM CMOS de 2K y ROM de 4K. Especificar el mapa detallado de memoria de las
distintas zonas y el circuito necesario para situar los integrados en dichas direcciones.
2.- Sea un procesador con 20 lneas en su bus de direcciones y una placa de memoria rpida RAM de
16K construida con circuitos integrados de 2K 2018AP-45. Disear la placa de memoria de forma que
ocupe las posiciones A8000 - ABFFF.
3.- El circuito integrado PIA es un adaptador de perifricos para configurar 2 puertos paralelos;
contiene 4 registros que suelen ocupar posiciones de memoria sucesivas. Se precisa utilizar 8 PIAs
cuyo primer registro se encuentre, respectivamente en las siguientes posiciones de un mapa de
memoria de 10 lneas: 030, 070, 0B0, 0F0, 230, 270, 2B0, 2F0; disear el circuito necesario.
4.- Indicar el mapa de memoria que corresponde al circuito de la figura.
000
001
010
011
100
101
110
111
De
co
di
fi
ca
dor
A15
A14
A12
C
B
A
E
DIRV
14
A13 - A0
CE
13
A13, A11 - A0
CE
13
CE
A13, A11 - A0
D7 - D0
D7 - D0
D7 - D0
5.- Un procesador tiene 16 lneas en su bus de direcciones y el correspondiente mapa de memoria esta
ya ocupado en las 2K primeras posiciones y en las 4K ltimas posiciones (debido a memoria RAM y
ROM internas al procesador). Queremos ampliar la memoria disponible por el procesador colocando 2
circuitos RAM adicionales de 4K y uno ROM de 8 K, aadiendo tambin un adaptador de perifricos
que contiene 32 registros. En nuestro diseo no van a ir en el mapa de memoria ms pastillas que las
antes indicadas.
a) Dibujar el circuito necesario para colocar a los citados circuitos dentro del mapa de memoria,
utilizando para posicionarlos un decodificador.
b) Hacer una lista detallada del mapa de memoria indicando las posiciones que estn ocupadas y
quien las ocupa y las posiciones que quedan libres.
ELECTRONICA DIGITAL [ 2Q 7] Temporizadores
1.- En el primer circuito, dibujar las ondas en A y B y calcular sus semiperiodos.
Datos: V
oH
= 4 V; V
iL
= 0 ; V
a
= 1 V; V
b
= 2 V; el diodo puede suponerse ideal.
39 K
10K
A
B
1nF
40 K
27 nF.
i nt er r upt or
10K
8 K
+12 v .
2.- En el segundo de los circuitos anteriores, supuesto que el interruptor se conmuta de forma que la
tensin del condensador vare entre 7 y 9 voltios. Cul ser la frecuencia de la onda que acta sobre
dicho interruptor?.
3.- El circuito de la figura siguiente recibe pulsos de anchura variable, bastante separados entre s.
Qu funcin realiza este circuito? Cul es la separacin mnima entre pulsos necesaria para que el
circuito realice dicha funcin sin errores?.
5K
+5 V
0, 2 F
Datos: V
oH
= 5 V; V
oL
= 0 ; V
i
(conmutacin)
= 2 V.
4.- En el circuito siguiente la seal de entrada Vi es cuadrada de frecuencia 1 KHz; dibjese
correlativamente dicha onda de entrada y las de salida A y B, expresando numricamente los
intervalos de tiempo entre ellas.
Datos: R = 5 K; C = 15 nF; V
oH
= 5 V; V
oL
= 0 ;
las entradas de tipo Schmitt con tensiones de disparo 1 y 2,75 V.
Vi
A
B
5.- Un circuito recibe pulsos rectangulares (niveles +12 y -12 V), relativamente lentos (semiperiodos superiores
a 1 ms). Se pide construir un "detector de flancos", de forma que cada vez que se recibe uno de los flancos
( y ) genere un pulso digital de 35 s. Disear el circuito utilizando puertas CMOS (tensin de conmutacin
Vc = 2,5 V).
ELECTRNI CA DI GI TAL Prctica n 10: Aplicaciones de los contadores
Objetivos:
- Utilizar contadores integrados sncronos en aplicaciones de utilidad.
- Montar en laboratorio y comprobar la operacin de un generador de palabras.
- Montar y comprobar un modulador de anchura de pulso: PWM.
- Utilizar el PWM anterior como selector de nmero de pulsos.
- Montar y comprobar la visualizacin dinmica de dos cifras decimales (base 10).
- Montar y comprobar un detector de flancos para contaje de pulsos diferentes a los del reloj.
Preparacin de la prctica:
1. Dibujar, en forma de esquema de bloques, el circuito de un generador de palabras de 8 bits
2. Dibujar el esquema de conexiones necesario para utilizar DOBLECONTA como contador mdulo 9
3. Dibujar, en forma de esquema de bloques, el circuito de un modulador de anchura de pulsos PWM
con diez niveles (de 0 a 9) y ciclo de 9 unidades
4. Modificar el PWM anterior para convertirlo en un selector de pulsos
que, de cada 10 pulsos que reciba, "deje pasar" m pulsos
siendo m el nmero de consigna (de 0 a 9);
dibujar el nuevo esquema de bloques resultante
5. Dibujar el esquema de conexiones necesario para utilizar DOBLECONTA como contador BCD mdulo 100
6. Dibujar, en forma de esquema de bloques, el circuito necesario para la visualizacin dinmica
de las dos cifras del contador anterior mdulo 100
7. Dibujar el circuito correspondiente a un detector de flancos de bajada
Nota: antes de comenzar esta prctica, es preferible completar primero la prctica n 8
(caso de no haber hecho todos los apartados de ella en la sesin anterior) .
Desarrollo de la prctica:
Toda esta prctica se desarrolla con el control up/down C a 0 (contaje ascendente);
para evitar perturbaciones que pudieran dar lugar a un contaje errneo, filtrar levemente la entrada de pulsos del
contador con un condensador de 100 pf, situado lo ms cerca posible de las entrada de reloj y "tierra" del integrado.
1.- Generador de palabras.
Conectando las salidas de uno de los dos contadores del circuito integrado DOBLECONTA a las entradas de control
del multiplexor 74151, configurar un generador de palabras de 8 bits y comprobar su funcionamiento generando la
siguiente forma de onda:11010010; comprobarlo en primer lugar pulso a pulso sobre un diodo LED y luego con un
reloj de 10 KHz, observando la onda generada sobre el osciloscopio.
2.- Control on/off
Con uno de los contadores del circuito integrado DOBLECONTA configurar directamente un contador mdulo 9 y
comprobar su funcionamiento: Un contador mdulo 9 divide el ciclo en nueve intervalos, numerados de 0 a 8; la
duracin de cada intervalo es 1/9 11% del ciclo.
Aadiendo al contador anterior un comparador 7485 y utilizando como selector de niveles un conmutador rotativo
BCD, montar un control on/off lineal de 10 niveles (es decir, 9 intervalos: a cada intervalo le corresponder un
porcentaje igual a 100/9 11%); utilizar como seal de reloj la salida TTL del generador de seales a 1 KHz.
Comprobar su funcionamiento para cada uno de los niveles y medir en cada uno de ellos el cociente T
on
/T
ciclo
.
Disminuyendo la frecuencia de reloj a 10 Hz y a 1 Hz observar los tiempos on/off sobre un diodo LED de la placa de
montajes; observar el control de la iluminacin del diodo LED utilizando como frecuencia de reloj 100 Hz.
b) Selectores de nmero de pulsos ("rate multipliers")
En el mismo circuito anterior, modificar el contador de forma que sea mdulo 10 y aadir a la salida del circuito una
puerta "y" que controle el paso de los pulsos del propio reloj; comprobar el funcionamiento de este circuito como
selector de nmero de pulsos: de cada 10 pulsos deja pasar" el nmero indicado en el conmutador rotativo BCD. Para
sincronizar la onda de los pulsos de salida, tomar con la otra sonda del osciloscopio la salida mx del contador y
sincronizar con dicha seal.
3.- Visualizacin dinmica.
Unir los dos contadores del circuito integrado DOBLECONTA configurando un contador BCD mdulo 100;
observando sus salidas sobre diodos LED, con pulsos manuales del pulsador P
0
comprobar su funcionamiento.
Utilizando el multiplexor de 2 buses de 4 lneas 74157 y como onda de barrido la seal TTL del generador de seales
a 100 Hz de frecuencia, representar la salida de dicho contador mdulo 100 en los dos visualizadores de 7 segmentos
de la placa de montaje; para controlar el ctodo comn de cada uno de ellos con una intensidad relativamente alta,
utilizar dos inversores TTL de la serie estandar 7404. Comprobar la representacin de los 100 primeros nmeros
decimales de dos cifras.
Disminuyendo la frecuencia hasta 1 Hz observar la conmutacin de las cifras propia de la representacin dinmica.
b) Contaje de pulsos diferentes del reloj
Aadiendo delante de la habilitacin un detector de flancos y utilizando un reloj de 50 Hz (la misma seal de reloj
para los contadores CK y como onda de barrido SCAN), comprobar el contaje de pulsos manuales generados con el
pulsador P
7
.
Con el mismo reloj de 50 Hz, conectar, despus, la entrada de habilitacin directamente al pulsador P
7
(desconectando el detector de flancos) para observar el contaje que se produce cuando se habilita el contador con los
pulsos (P
7
) que se desea contar.
B1
B2
B3
B0
A3
A2
A1
A0
A>B
A=B
A<B
85
A
>
B
I
N
A
=
B
I
N
A
<
B
I
N
157
D1
D0
C1
C0
B1
B0
A0
A1
SEL
EN
QD
QC
QB
QA
10
12
13
15
9
11
14
1
4
7
6
5
3 2
2
3
5
6
11
10
14
13
1
4
7
9
12
15
CLK
CLR
175
QA
QB
QC
QD
A
B
D
C
QA
QB
QC
QD
9
1
4
5
12
13
2
3
7
6
10
11
15
14
EN
7
6
5
4
3
2
1
0
C
B
A
151
W
Y
7
4
3
2
1
15
14
13
12
11
10
9
6
5
ELECTRNI CA DI GI TAL Prctica n 11 (opcional): Aplicaciones de los contadores I I
Est a pr ct i ca opci onal cont i ene ci r cui t os de apl i caci n de l os cont ador es,
en f or ma de si st emas de cont r ol i nt er esant es, t i l es y de una ci er t a ent i dad.
Resul t a sumament e pr ovechoso compr ender , mont ar y compr obar est os ci r cui t os
como cul mi naci n de l a asi gnat ur a de El ect r ni ca Di gi t al .
No queda t i empo par a pr ogr amar l as cor r espondi ent es semanas de pr ct i ca;
por el l o, se est abl ecer n unos d as opci onal es de pr ct i cas
par a qui enes t engan i nt er s y t i empo
( y, t ambi n, se of r ecer l a posi bi l i dad de hacer est a pr ct i ca
en l as pr i mer as semanas de l a asi gnat ur a de Mi cr ol ect r ni ca de t er cer cur so) .
Objetivos:
- Utilizar contadores integrados sncronos en aplicaciones de utilidad y de una cierta entidad.
- Montar en laboratorio y comprobar la operacin de un temporizador de luz de escalera.
- Montar y comprobar un generador de pulsos de anchura progresivamente creciente y decreciente.
- Montar y comprobar un detector-avisador de frecuencia mxima.
- Utilizar las salidas tri-estado para visualizacin dinmica.
Preparacin de la prctica:
1. Estudiar y comprender las especificaciones detalladas en los 4 enunciados del desarrollo de la prctica
2. Estudiar en detalle y comprender el funcionamiento de los circuitos de las figuras
Est disponible en reprografa un pequeo cuadernillo de apuntes de aplicaciones de los contadores,
cuyos ejemplos 1, 3 y 6 se corresponden, respectivamente, con los apartados 1, 2 y 4 de esta prctica.
Desarrollo de la prctica:
Para evitar perturbaciones que pudieran dar lugar a un contaje errneo, filtrar levemente la entrada de pulsos del
contador con un condensador de 100 pf, situado lo ms cerca posible de las entrada de reloj y "tierra" del integrado.
1.- Control de iluminacin de escalera
Un conmutador BCD controla las lmparas de iluminacin de la escalera de una comunidad de vecinos;
de forma que, si el nmero fijado en el conmutador BCD es n, deben mantenerse encendidas durante n . 10 segundos
cada vez que se pulsa un interruptor P; durante los 10 segundos siguientes, deben apagarse y encenderse 5 veces
sucesivas, con intervalos de 1 segundo. Cuando las lmparas estn encendidas, si se pulsa P no hace nada, pero al
hacerlo durante el intervalo de intermitencia, o posteriormente al mismo, se reinicia el ciclo de encendido.
A partir de un reloj de 1 Hz (1 segundo de perodo), un contador dcada determina ciclos de 10" y un segundo
contador realiza el contaje de dichos ciclos y la comparacin con el nmero n fijado en el conmutador BCD.
Mientras este segundo se encuentra por debajo de n (n estados, de 0 a n-1) las lmparas se mantienen encendidas;
cuando ambos nmeros son iguales, se produce la intermitencia (10") y, al superar el contador el valor n se detiene el
contaje para evitar que se d la vuelta (vuelva a 0) e inicie un nuevo ciclo de iluminacin.
Para la intermitencia se aprovecha la primera salida (unidades) del primer contador, cuyo semiperodo (tiempo en
1) es 1 segundo. El pulsador borra los dos contadores para comenzar una nueva temporizacin, pero no lo hace si las
lmparas se encuentran en encendido fijo.
Con el circuito integrado DOBLECONTA, configurar, en primer lugar, los dos contadores de la figura (simplemente
los dos contadores mdulos 10 y 16 seguidos) y comprobar el contaje mediante una seal de reloj de 5 Hz (salida TTL
del generador de seales), visualizando las salidas de los contadores en los diodos LED.
Montar, luego, el circuito completo; a fin de no tener que utilizar ms de 3 circuitos integrados, utilizar puertas Nand
para los inversores (un circuito integrado 74HC00 para las 2 puertas Nand y los 2 inversores). Usar como pulsador P el
conmutador P
7
ponindolo sucesivamente a 1 y a 0 y ver el contaje del segundo contador (mdulo 16) en un
visualizador de 7 segmentos.
Comprobar el funcionamiento del circuito completo; el reloj debera ser de 1 Hz, pero para no tener que esperar
decenas de segundos, puede aumentarse la frecuencia a 5 Hz.
q3 q2 q1 q0
16
B
P
q3 q2 q1 q0
10
E mx
comparador
E
conmutador BCD
=
<
>
CK 1Hz 1"
encendido
lmparas
n
puerta interna del contador
0
0
1 4 9
1
2
2 5
1
0
1
3
3 6 8 1
1
B
1
B
2
B
3
B
0
A
3
A
2
A
1
A
0
A
>
B
A
=
B
A
<
B
8
5
A
>
B
i
n
A
<
B
i
n
A
=
B
i
n
1
0
1
2
1
3
1
5
9
1
1
1
4
1 2 3 4
7 6 5
2.- Generacin de pulsos de anchura progresivamente creciente.
Modificando ligeramente el montaje anterior, segn la figura, puede obtenerse un sencillo circuito cuya salida son
pulsos de anchura creciente en la proporcin de 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ,0, 1, 2, 3, ...
q3 q2 q1 q0
10
q3 q2 q1 q0
16
E mx
comparador
E
<
CK 50 KHz
1
salida
de pulsos
El contador mdulo 16 genera el ciclo de modulacin de anchura de pulso (ciclo on/off) y el otro contador
(mdulo 16) establece la referencia (numero de unidades de reloj en que la salida est en valor 1, en cada ciclo).
El segundo contador aumenta una unidad al final de cada ciclo, de forma que la anchura de los pulsos aumenta
sucesivamente desde 0: 1, 2, ..., hasta llegar a 9, despus del valor 9, el segundo contador pasa nuevamente a 0 y se
repite la sucesin de pulsos de anchura creciente.
Montar y comprobar el funcionamiento de este circuito, utilizando como seal de reloj la salida TTL del generador
de seales a 50 KHz; observar los pulsos de salida en el osciloscopio y tomar en la otra sonda la salida mx del
segundo contador, para poder sincronizar bien los pulsos de salida, cuya amplitud es variable.
3.- Visualizacin dinmica mediante adaptadores tri-estado: "dados de backgammon".
En otro circuito integrado programable 22V10 se ha programado el esquema de la figura que corresponde a un par
de contadores sucesivos que cuentan de 1 a 6 cuando se activa el pulsador P (cuando P = 0):
- sus salidas pasan por adaptadores triestado (habilitados alternativamente con 0 y 1 del reloj) para facilitar su
representacin dinmica;
- otras dos salidas adicionales E0 E1 sirven para activar adecuadamente el ctodo comn de los visualizadores.
Montar y comprobar el funcionamiento de este circuito programado en el dispositivo 22V10, utilizando el pulsador
P
1
y un reloj de 1 KHz.
B2 B1 B0
contador B
( 1 a 6 )
CK
Clr
E
A2 A1 A0
contador B
( 1 a 6 )
CK
Clr
E max
CK
CLR
P
activa con P =0
activa con P =1
E1 E0
CK
P
CLR
GND
Vcc
E1
E0
B2
B1
B0
A2
A1
A0
2
2
V
1
0
"dados"
4.- Deteccin de frecuencia mxima.
Un circuito debe indicar si la frecuencia de una seal de entrada (por ejemplo la proveniente de un sensor de la
velocidad de un motor tacmetro ) est por debajo o por encima de 1500 r.p.m(25 Hz); para ello se mide el
periodo entre dos pulsos consecutivos de la seal de entrada.
1/1500 r.p.m. =60 /1500 =40 ms ; 40 =10100 (reloj de 1 KHz, perodo: 1 ms)
El circuito corresponde a contar milisegundos entre dos pulsos sucesivos de la seal de entrada: un detector de
flancos de subida borra el contaje cada vez que llega un pulso de entrada. Se detecta cuando el contador de
milisegundos llega a 40 ms, en cuyo caso se detiene el contaje. El LED que visualiza la salida se enciende cuando el
contaje llega o supera los 40 ms, es decir cuando la frecuencia se encuentra por debajo de las 1500 r.p.m.
Con el circuito integrado DOBLECONTA, configurar y comprobar el contaje de los dos contadores de la figura.
Montar y comprobar el funcionamiento de los dos biestables que conforman el detector de flancos, utilizando dos
generadores de seal (salida TTL del generador para el reloj a 1 KHz y el generador de funciones del propio
entrenador como onda de entrada a 200 Hz); comprobar que la salida del segundo biestable se encuentra retrasada
un perodo de reloj respecto de la del primer biestable.
Montar y comprobar el funcionamiento del circuito completo, utilizando dos generadores de seal: la salida TTL del
generador de seales para el reloj a 1 KHz y la onda cuadrada del generador de funciones del propio entrenador como
onda de entrada (probando frecuencias superiores e inferiores a 25 Hz).
q3 q2 q1 q0
16
B
q3 q2 q1 q0
16
E mx E
CK 1KHz 1ms
encendido
LED
detector de flancos
seal
de entrada
q
D
q
D
CK 1KHz 1ms
q
> 40 ms
1 1 0 = 40
puerta interna
de los contadores
0 0 0 < 1500 r.p.m.
B
0
0
1 4 9
1
2 2 5
1
0
1
3
3 6 8 1
1
C
L
K
C
L
R
1
7
5
Q
A
Q
B
Q
C
Q
D
A B D C
Q
A
Q
B
Q
C
Q
D
9
1
4 5
1
2
1
3
2 3 7 6 1
0
1
1
1
5
1
4
ELECTRNI CA DI GI TAL Prctica n 6: Biestables y circuitos secuenciales asncronos
Objetivos:
- Tocar y utilizar biestables RS, biestables D y registros de retencin.
- Montar y comprobar la operacin de los biestables RS con los dos tipos de puertas, "nand" y "nor".
- Montar y comprobar la operacin de biestables D y su agrupacin para formar un registro de retencin.
- Configurar sistemas secuenciales a partir de su grafo de estados.
- Montar y comprobar el funcionamiento de sendos sistemas secuenciales,
uno de tipo MOORE y el otro de tipo MEALY.
Preparacin de la prctica:
1. Dibuja un biestable RS con puertas "nand" y escribe al lado su tabla de operacin;
repite dibujo y tabla, debajo, para un biestable RS con puertas "nor"
2. Dibuja un biestable D construido con un RS y puertas booleanas;
escribe la tabla funcional del biestable D
3. Dibuja un registro de retencin (latch-memory) construido con 4 biestables D;
describe cmo acta dicho registro
4. Dibujar el grafo de estados y disear el siguiente circuito secuencial:
Semforo de aviso en un cruce de va nica bidireccional con un camino: a ambos lados del cruce y a una distancia adecuada hay
sendos detectores de paso de tren a y b; los trenes circulan en ambas direcciones y el semforo debe sealar presencia de tren
desde que este alcanza el primer sensor en su direccin de marcha hasta que pasa por el segundo sensor tras abandonar el cruce
Comparar las funciones obtenidas con las indicadas en el desarrollo de la prctica;
dibujar el circuito resultante utilizando puertas "nand" de 2 entradas para los biestables,
una "nand" de 4 entradas e inversores para su marcado y borrado y la otra "nand" de 4 entr. para la salida;
indicar en cada entrada y salida de las puertas el nmero del "pin" que se va a utilizar
5. Indicar la secuencia de vectores de entrada que permite comprobar el funcionamiento del circuito anterior,
expresando en cada caso, cual debe ser el estado siguiente y el correspondiente vector de salida
6. Dibujar el grafo de estados como autmata de Mealy y disear el siguiente circuito secuencial:
Deposito para mezcla de tres lquidos: dispone de 3 electrovlvulas A, B, C que controlan la salida de los lquidos y 4 detectores de
nivel, siendo n
1
el inferior y n
4
el de llenado mximo; cuando el nivel del deposito desciende por debajo del mnimo n
1
se produce un
ciclo de llenado: primero con el liquido A hasta el nivel n
2
, luego B hasta el nivel n
3
y, finalmente, C hasta completar el deposito
Dibujar el circuito resultante utilizando puertas "nor" de 2 entradas para los biestables
y puertas "y" de 2 entradas e inversores para las funciones;
indicar en cada entrada y salida de las puertas el nmero del "pin" que se va a utilizar
7. Indicar la secuencia de vectores de entrada que permite comprobar el funcionamiento del circuito anterior,
expresando en cada caso, cual debe ser el estado siguiente y el correspondiente vector de salida
8. Repetir el diseo del apartado 6., con el grafo de estados en forma de autmata de Moore;
dibujar el circuito resultante utilizando solamente puertas "nor" de 2 entradas e inversores;
indicar en cada entrada y salida de las puertas el nmero del "pin" que se va a .
NOTA:
1. La finalidad de los apartados 4 a 8 de esta pgina, que corresponden a los apartados 3, 4 y opcional del desarrollo
de la prctica es disear, montar y comprobar circuitos secuenciales de tipos Moore y Mealy; los enunciados de los
mismos pueden ser cambiados por otros, caso de que algn grupo de prcticas desee disear y montar circuitos
secuenciales diferentes de los aqu propuestos.
Desarrollo de la prctica:
1.- Biestable R-S.
Configurar un biestable RS con puertas Nor (7402) y otro con puertas Nand (7400); comprobar su funcionamiento,
utilizando como entradas los conmutadores P
4
-P
5
, P
6
-P
7
y visualizando sus salidas en diodos LED. Verificar las
diferencias entre estas dos configuraciones del biestable RS.
+5 V ....... 14 75 : +5 V ....... 5
0 V ....... 7 0 V ....... 12
Tensiones de alimentacin: 00 y 02 :
0
0
1 4 9
1
2 2 5
1
0
1
3
3 6 8 1
1
0
2
2 5 8
1
1 3 6 9
1
2
1 4 1
0
1
3
D
3
Q
2
7
5
Q
1
Q
0
Q
3
2
3
E
N
D
2
D
1
D
0
Q
2
Q
1
Q
0
Q
3
0
1
E
N
2 3 6 7
1
3 4
1
6
1
5
1
0
9
1 1
4
1
1
8
2.- Biestable D y registro de retencin ("latch memory").
Comprobar el funcionamiento de uno de los biestables D contenidos en el circuito integrado 7475, comprobando la
adquisicin de dato cuando E =1 y la retencin del mismo cuando E =0.
Utilizando dicho circuito integrado 7475 como registro de retencin de 4 bits (las dos entradas de habilitacin
juntas), comprobar el proceso de transferencia de datos de las entradas D a las correspondientes salidas Q y la
retencin de los mismos durante el intervalo en que la habilitacin se encuentra anulada; puede emplearse como pulso
de habilitacin el proporcionado por el pulsador P
1
(tngase en cuenta que es un pulsador "normalmente en 1") y los
conmutadores P
7
- P
4
para los datos de entrada, visualizando las salidas en diodos LEDs.
Observar lo que sucede modificando los datos de las entradas con la entrada de habilitacin a "0" y con ella a "1".
3.- Diseo secuencial: grafo de estados. (Quien desee montar otro sistema secuencial diferente puede hacerlo).
Semforo de aviso de paso de tren en un cruce de va nica bidireccional con un camino: la va posee, a ambos
lados del cruce y a una distancia adecuadamente grande, sendos detectores de paso de tren a y b; los trenes
circulan por ella en ambas direcciones y se desea que el semforo seale presencia de tren desde que este alcanza
el primer sensor en su direccin de marcha hasta que pasa por el segundo sensor tras abandonar el cruce.
Supondremos, para simplificar el diseo, que ambos sensores a y b no se activan nunca a la vez, lo cual se
corresponde bien con la situacin real; en tal caso, el grafo de estados y las funciones de "marcado" y "borrado" de
las variables de estado y de activacin de la salida pueden ser las siguientes:
a
b
b
a
reposo
tren
entrando
a . b
tren
entrando
tren
alejandose
00
10 01
11
1 2 1
1 1
q . q . b . a = R
a = S : q
1 2 2
2 2
q . q . b . a = R
b = S : q
1 2
q + q = emforo s
Para construir el circuito electrnico correspondiente a este sistema secuencial realizaremos los siguientes pasos:
- montar y comprobar dos biestables RS con puertas Nand (uno con las dos puertas de la parte inferior del circuito
integrado y el otro con las dos puertas de la parte superior)
- con dichos biestables, configurar el circuito correspondiente a este grafo de estados, utilizando para las funciones de
marcado y borrado solamente dos circuitos integrados: 7420 (puertas Nand de 4 entradas) y 7404 (inversores)
- configurar la funcin de salida (semforo), aprovechando las puertas sobrantes de los anteriores circuitos integrados.
Comprobar que el funcionamiento del circuito secuencial resultante se ajusta al enunciado y al grafo, visualizando,
tanto la salida del circuito, como las variables de estado, sobre diodos LED.
Tensiones de alimentacin:
+5V ....... 14
0V ....... 7
0
0
1 4 9
1
2 2 5
1
0
1
3
3 6 8 1
1
0
4
1 3 5 9
1
1
1
3
2 4 6 8 1
0
1
2
2
0
1 9 2
1
0 4
1
2 5
1
3
6 8
(contina en la siguiente pgina)
4.- Otro grafo de estados: tipo MEALY (Quien desee montar otro diferente puede hacerlo).
Un deposito se llena con una mezcla de tres lquidos diferentes, para lo cual dispone de tres electrovlvulas A, B, C
que controlan la salida de dichos lquidos y de cuatro detectores de nivel n
1
, n
2
, n
3
, n
4
siendo n
1
el inferior y n
4
el
de llenado mximo. Solamente cuando el nivel del deposito desciende por debajo del mnimo n
1
se produce un ciclo
de llenado: primero con el liquido A hasta el nivel n
2
, luego el liquido B hasta el nivel n
3
y, finalmente, C hasta
completar el deposito n
4
.
Utilizaremos para los detectores de nivel los cuatro conmutadores P
7
- P
4
y para visualizar las electrovlvulas tres
diodos LED; el grafo de estados, como autmata de Mealy, ser el siguiente:
n1
reposo llenado
n4
q=0 q=1
Para construir el circuito electrnico correspondiente a este sistema secuencial realizaremos los siguientes pasos:
- montar y comprobar el biestables RS con puertas Nor
- con dicho biestable, configurar el circuito correspondiente al anterior grafo de estados.
Construir las funciones de salida , utilizando puertas "y" de 2 entradas (7408) e inversores (7404).
Comprobar que el funcionamiento del circuito resultante.
Tensiones de alimentacin:
+5V ....... 14
0V ....... 7
0
4
1 3 5 9
1
1
1
3
2 4 6 8 1
0
1
2
0
8
1 4 9
1
2 2 5
1
0
1
3
3 6 8 1
1
0
2
2 5 8
1
1 3 6 9
1
2
1 4 1
0
1
3
OPCI ONAL: Se incluye una segundo versin del sistema secuencial anterior y se recomienda montarlo, aprovechado
si es preciso parte de la siguiente sesin de prcticas.
El sistema anterior puede configurarse como autmata de Moore, en cuyo caso el grafo de estados ser el siguiente
n1
n2
reposo liquido A
000 001
010
100
liquido B
liquido C
n4
n3
Construir el circuito electrnico correspondiente, utilizando solamente puertas Nor de 2 entradas e inversores.
Llevando las variables de estado (como salidas) a diodos LED, comprobar que su funcionamiento.
Tensiones de alimentacin:
+5V ....... 14
0V ....... 7
0
4
1 3 5 9
1
1
1
3
2 4 6 8 1
0
1
2
0
2
2 5 8
1
1 3 6 9
1
2
1 4 1
0
1
3
ELECTRNI CA DI GI TAL Prctica n 7: Biestables y registros sncronos
Objetivos:
- Tocar y utilizar biestables y registros sncronos.
- Montar y comprobar la operacin de biestables D sncronos y su borrado asncrono.
- Agrupar 4 biestables D como registro sncrono y como registro de desplazamiento .
- Montar y comprobar un "detector de flancos".
- Montar y comprobar el funcionamiento de un registro de desplazamiento bidireccional, con carga paralelo.
- Verificar la capacidad de conversin serie-paralelo y paralelo-serie del registro de desplazamiento.
- Montar y comprobar la operacin de biestables tipo J K y de biestables tipo T.
Preparacin de la prctica:
1. Dibujar un biestable D sncrono construido a partir de biestables D asncronos;
escribir la tabla de operacin del biestable D sncrono
2. Convertir el biestable D en un biestable tipo T y escribir al lado su tabla de operacin
3. Dibujar un registro sncrono construido con 4 biestables D;
dibujar, luego, la forma de convertirlo en un registro de desplazamiento.
4. Con un registro de desplazamiento de 2 bits y una puerta "o-exclusiva, configurar un "detector de flancos";
dibujar la onda de reloj, la onda de entrada (de frecuencia 10 veces inferior) y la onda de salida
de ese "detector de flancos"
5. Describir, grficamente, como se puede utilizar un registro de desplazamiento como conversor serie-paralelo;
idem, paralelo-serie
6. Un contador Thompson o contador de anillo es aquel cuya secuencia de contaje es 0001, 0010, 0100, 1000;
dibujar la forma de utilizar un registro de desplazamiento como contador de anillo
7. Un contador de doble anillo cuenta 0000, 0001, 0011, 0111, 1111, 1110, 1100, 1000 ;
dibujar la forma de utilizar un registro de desplazamiento como contador de doble anillo
8. Con un registro de desplazamiento,
cmo se puede generar una onda cuyo semiperiodo en 1 sea tres veces ms largo que el semiperiodo en 0?
9. Dibujar un biestable J K sncrono construido a partir de un biestable D sncrono
y escribir, al lado, su tabla de operacin
10. Dibujar 4 biestables tipo T conectados en cadena (la salida de cada uno a la entrada de pulsos del siguiente)
y escribir la secuencia de estados por la que pasan al recibir pulsos en la entrada del primer biestable.
Desarrollo de la prctica:
1.- Biestable D y registro.
Comprobar el funcionamiento de un biestable sncrono D (74175), utilizando como reloj el pulso que proporciona el
pulsador P
1
y visualizando su salida en uno de los diodos LED; comprobar asimismo su borrado a travs de la
correspondiente entrada CLR. Determinar cual es el flanco activo de la seal de reloj.
Conectando la salida Qa la entrada del biestable, observar su comportamiento como biestable T; utilizar como reloj,
en este apartado y en los siguientes, el pulsador P
0
(para evitar posibles "rebotes" al pulsar).
Utilizando este circuito integrado como registro sncrono de 4 bits, comprobar el proceso de transferencia de datos de
las entradas D a las correspondientes salidas Q y la retencin de los mismos entre dos flancos del reloj (pulsador P
0
);
pueden emplearse los conmutadores P
7
- P
4
para los datos de entrada, visualizando las salidas en diodos LEDs.
Conectando los 4 biestables de la pastilla en serie, observar su comportamiento como registro de desplazamiento.
Con dos de los biestables y una puerta o-exclusiva, construir un detector de flancos, que proporcione un pulso de 1
s de duracin, cada vez que una seal de entrada cambia de "0" a "1" o de "1" a "0"; utilizar como reloj (de 1 MHz)
la salida TTL del generador de seales y como entrada la onda cuadrada de la placa de montajes a una frecuencia
inferior.
Tensiones de alimentacin:
Tensiones de alimentacin: +5 V ....... 14
0 V ....... 7
+5 V ....... 16
0 V ....... 8
0
4
1 3 5 9
1
1
1
3
2 4 6 8 1
0
1
2
CLK
CLR
175
QA
QB
QC
QD
A
B
D
C
QA
QB
QC
QD
9
1
4
5
12
13
2
3
7
6
10
11
15
14
2.- Registro de desplazamiento ("shift register").
En un registro de desplazamiento bidireccional de 4 bits (74194), comprobar su actuacin como tal observando el
desplazamiento en ambos sentidos; utilizar el conmutador P
0
como seal de reloj pulso a pulso y los diodos LEDs para
visualizar las salidas. Pueden utilizarse los conmutadores P
2
y P
3
para las entradas de control S
1
y S
2
.
Comprobar el borrado del registro y el proceso de carga paralelo; utilizar los conmutadores P
7
- P
4
para las entradas
de datos en paralelo.
Utilizar el registro como conversor serieparalelo y paraleloserie para la palabra binaria 1101.
Terminales de alimentacin:
+5V ....... 16
0V ....... 8
D C B A
1 11 2 9 10 3 4 5 6 7
15 14 13
C
l
r
C
k
I
R
I
L
S S
1 2
12
194
IR : entrada serie para el desplazamiento hacia la derecha
IL : entrada serie para el desplazamiento hacia la izquierda.
S2 =0 ; S1 =0 :: retencin de la palabra almacenada
S2 =1 ; S1 =0 :: desplazamiento hacia la izquierda
S2 =0 ; S1 =1 :: desplazamiento hacia la derecha
S2 =1 ; S1 =1 :: activacin de la carga paralelo.
Q Q Q Q
D C B A
(contina en la siguiente pgina)
Diversas apliaciones del registro de desplazamiento anterior:
Cargar la palabra 0001 y realimentando la salida del biestable ms significativo a la entrada serie del registro,
verificar su funcionamiento como contador en anillo mdulo 4 (equivale a contar con 4 dedos, sealando cada vez uno
de ellos).
Con el registro inicialmente a 0 y realimentando la salida del biestable ms significativo a la entrada serie a travs de
un inversor, verificar su comportamiento como contador en doble anillo mdulo 8.
Generar y observar en el osciloscopio una onda de 1KHz cuyo tiempo en "1" sea el triple de largo que el de "0";
generar una segunda onda en la que el tiempo de tiempo en "0" sea el triple de largo que en "1".
3.- Biestable J -K.
Comprobar el funcionamiento de un biestable J K(7476), utilizando como reloj el pulso que proporciona el pulsador
P
0
y visualizando su salida en uno de los diodos LED; comprobar asimismo su borrado y su puesta a "1" por las
entradas asncronas de borrado ("clear", CLR) y de marcado ("preset", PR), respectivamente.
Conectando la salida J y K a "1", observar su comportamiento como biestable T.
Tensiones de alimentacin:
+5 V ....... 14
0 V ....... 7
+5 V ....... 5
0 V ....... 13
3
9
3
Q
D
Q
C
Q
B
Q
A
Q
D
Q
C
Q
B
Q
A
C
L
R
C
L
K
C
L
R
C
L
K
1
2
3 4 5 6
1
3
1
2
1
1
1
0
9 8
1
C
L
R
1
K
1
C
L
K
1
J
7
6
1
Q
1
Q
2
C
L
R
2
K
2
C
L
K
2
J
2
Q
2
Q
2
P
R
E
1
P
R
E
1 6 3 8
4 9
1
6
1
2
2 7
1
5
1
4
1
1 1
0
4.- Biestables T y contador binario.
Utilizar solamente uno de los dos contadores de la pastilla 74393, visualizando sus cuatro salidas sobre diodos LED;
comprobar la secuencia de contaje pulso a pulso (pulsador P
0
).
Excitando dicho contador con onda cuadrada de 100 KHz, observar sobre el osciloscopio las formas de onda en sus
salidas. Dibujar en papel cuadriculado las sucesivas seales de las salidas del contador (de manera que en el diagrama
de ondas resultante dichas seales se correspondan verticalmente entre si: para ello, comenzar con la seal de reloj y la
onda de menor frecuencia, iniciando el dibujo en la bajada de dicha onda, y observar siempre en el osciloscopio la
onda anteriormente dibujada y la siguiente de menor frecuencia).
ELECTRNI CA DI GI TAL Prctica n 8: Monostables y Astables
Objetivos:
- Tocar y utilizar los circuitos osciladores en onda cuadrada y temporizadores.
- Montar en laboratorio y comprobar la frecuencia de oscilacin de astables RC.
- Montar en laboratorio y comprobar la frecuencia de oscilacin de astables con cristal de cuarzo.
- Montar y comprobar el funcionamiento de circuitos integrados monostables.
- Comprobar la diferencia entre monostables redisparables y no-redisparables.
Preparacin de la prctica:
1. Dibujar el circuito de un astable RC con un inversor de entrada "Schmitt";
a partir de la formula de intervalos de tiempo de carga o de descarga
fin
ini
V - V
V - V
ln . R.C t