Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
TÉCNICAS DIGITALES I
UNIDAD I: FUNDAMENTOS MATEMÁTICOS
Sistemas de Numeración
Sistemas numéricos posicionales:
Los sistemas digitales actúan bajo el control de variables discretas (toman valores finitos), que están
inmersas en diversos sistemas de numeración.
La base de un sistema de numeración es la cantidad de símbolos distintos que se utilizan para la
representación de los números.
En un sistema de base b , un número N puede representarse matemáticamente mediante el polinomio
de numeración, que es:
N = a n .b n + a n −1 .b n −1 + L + a1 .b1 + a 0 .b 0 + a −1 .b −1 + L + a − p .b − p
donde los ai son números pertenecientes al sistema, y por lo tanto 0 ≤ a i < b ; n + 1 es la cantidad de
dígitos enteros del número, p la cantidad de dígitos fraccionarios, y el exponente al que está elevada la
base es la posición de cada ai .
Para identificar el sistema al cual pertenece un número se suele indicar con un subíndice con la base del
sistema.
Sistemas más importantes:
Binario:
Sistema de base 2 donde los símbolos utilizados son el 0 y el 1. Es el más utilizado en los
sistemas digitales por la facilidad eléctrica de obtener dos estados distintos, correspondientes a
los dos números binarios.
La correspondencia de los primeros 16 números decimales con su equivalente binario es:
Binario Decimal
8 4 2 1
0 0 0 0 0
0 0 0 1 1
0 0 1 0 2
0 0 1 1 3
0 1 0 0 4
0 1 0 1 5
0 1 1 0 6
0 1 1 1 7
1 0 0 0 8
1 0 0 1 9
1 0 1 0 10
1 0 1 1 11
1 1 0 0 12
1 1 0 1 13
1 1 1 0 14
1 1 1 1 15
Los números que aparecen debajo de la palabra Binario son los pesos de cada dígito. Para una
memorización práctica del sistema, cada posición i tiene un peso que es igual a 2 i . Sumando el
valor de cada peso que tiene un 1 en su posición se obtiene el número decimal correspondiente.
Este proceso es lo mismo que realizar la representación mediante el polinomio de numeración.
Octal:
Sistema de base 8 representado por los símbolos 0, 1, 2, 3, 4, 5, 6 y 7. Los equivalentes binarios
de cada símbolo son:
Binario Octal
4 2 1
0 0 0 0
0 0 1 1
0 1 0 2
0 1 1 3
1 0 0 4
1 0 1 5
1 1 0 6
1 1 1 7
Decimal:
Es el sistema más utilizado en la matemática. Su base es 10 y sus símbolos van del 0 al 9.
Hexadecimal:
Sistema de base 16 representado por los símbolos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E y F.
Los equivalentes binarios de cada símbolo son:
Binario Hexadecimal
8 4 2 1
0 0 0 0 0
0 0 0 1 1
0 0 1 0 2
0 0 1 1 3
0 1 0 0 4
0 1 0 1 5
0 1 1 0 6
0 1 1 1 7
1 0 0 0 8
1 0 0 1 9
1 0 1 0 A
1 0 1 1 B
1 1 0 0 C
1 1 0 1 D
1 1 1 0 E
1 1 1 1 F
Conversión entre sistemas:
Conversión por divisiones y multiplicaciones:
Si se divide un número entero expresado en un sistema de base b1 > b2 por la base b2 , y el
cociente se vuelve a dividir por b2 y así sucesivamente, el último cociente y los restos obtenidos
forman el número en el sistema de base b2 .
Para la parte fraccionaria, multiplicaremos la misma por la base b2 , conservando la parte entera
de dicho producto, y volviendo a multiplicar por b2 la parte fraccionaria, así sucesivamente
hasta que el producto sea 0. Las partes enteras de los productos formarán la parte fraccionaria del
número en el sistema de base b2 .
Reemplazo de símbolos en decimal:
Cuando el sistema tiene una base que es múltiplo de 2, se puede convertir un número en la base
original a binario simplemente reemplazando los símbolos en cada posición por su equivalente
binario.
Son los códigos BCD que asignan a cada bit un peso determinado. El pasaje de estos códigos al
sistema decimal es muy fácil, pues se realiza sumando los pesos de los bits que tienen un 1.
El código BCD Aiken tiene la propiedad de ser autocomplementario, es decir, a cada par de
dígitos complementarios a 9 en decimal, le corresponde complementariedad entre ceros y unos.
Por ejemplo: el 2 y el 7 son complementarios a 9 y además, en éste código, tienen sus bits
opuestos.
No Ponderados: BCD Exceso 3
0 0 0 1 1
Son los códigos BCD en los cuales cada 1 0 1 0 0
posición binaria no tiene asignado un peso. El 2 0 1 0 1
3 0 1 1 0
más conocido es el BCD Exceso tres, en el que 4 0 1 1 1
cada número decimal se codifica con el 5 1 0 0 0
equivalente al mismo número más tres en el 6 1 0 0 1
BCD Natural. Este código también tiene la 7 1 0 1 0
8 1 0 1 1
propiedad de ser autocomplementario. 9 1 1 0 0
Códigos Continuos:
Un código binario es continuo si las combinaciones correspondientes a números decimales consecutivos
son adyacentes.
Se denominan combinaciones binarias adyacentes a aquellas que difieren solamente en un bit.
Códigos Cíclicos:
Un código binario es cíclico si, además de ser continuo, la última combinación es adyacente a la primera.
Los códigos continuos y cíclicos se utilizan en todas aquellas aplicaciones en las que alguna
imperfección puede hacer que aparezcan combinaciones erróneas debido a que no cambian
simultáneamente todos los bits que deben hacerlo.
Código de Gray:
El Código de Gray (o código reflejado) es Código de Gray
el código binario cíclico de mayor 2 Bits 3 Bits 4 Bits
difusión. Se construye reflejando un 0 0 0 0 0 0 0 0 0 0
código de Gray de 2 bits hacia abajo y 1 0 1 0 0 1 0 0 0 1
2 1 1 0 1 1 0 0 1 1
agregando ceros en la parte superior y 3 1 0 0 1 0 0 0 1 0
unos en la inferior. Para agregar más bits 4 1 1 0 0 1 1 0
se realiza el mismo procedimiento. La 5 1 1 1 0 1 1 1
6 1 0 1 0 1 0 1
cantidad de combinaciones será 2 n 7 1 0 0 0 1 0 0
siendo n la cantidad de bits utilizados. 8 1 1 0 0
9 1 1 0 1
10 1 1 1 1
11 1 1 1 0
12 1 0 1 0
13 1 0 1 1
14 1 0 0 1
15 1 0 0 0
Código Johnson:
Otro ejemplo de código continuo y cíclico es el Código Johnson
progresivo Johnson, que tendrá 2.n 0 0 0 0 0 0
combinaciones, siendo n la cantidad de bits 1 0 0 0 0 1
2 0 0 0 1 1
utilizados. 3 0 0 1 1 1
4 0 1 1 1 1
5 1 1 1 1 1
6 1 1 1 1 0
7 1 1 1 0 0
8 1 1 0 0 0
9 1 0 0 0 0
Distancia mínima:
La distancia entre dos combinaciones binarias es la cantidad de bits distintos que tienen entre sí.
La distancia mínima de un código es la menor de las distancias posibles entre dos
combinaciones cualesquiera pertenecientes a él. En un cubo n es el menor camino posible para
llegar desde un vértice perteneciente al código, a otro de la misma condición.
Códigos detectores de error:
Para que un código pueda detectar errores es necesario que su distancia mínima sea mayor que 1, debido
a que, de lo contrario cualquier error en un bit lo convierte en otra combinación posible perteneciente al
mismo código.
Los códigos detectores de error se clasifican en códigos de peso constante y de paridad constante. Ambos
tienen una distancia mínima de dos, por lo tanto permiten detectar una combinación que no pertenezca al
código, a través del error en un solo bit. Con más de un bit erróneo necesitamos mayor distancia mínima
para la detección.
En general, el número de bits erróneos que se pueden detectar con un código es igual a la distancia
mínima de dicho código menos uno.
nerr.det = d min − 1
Códigos de peso constante:
El peso en una combinación binaria es la cantidad de unos lógicos de la misma.
Los códigos de peso constante mantienen su cantidad de unos lógicos, lo que permite saber si
ocurre un error simplemente contándola. Se muestran dos ejemplos a continuación:
Código 2 entre 5 Código Biquinario
0 0 0 0 1 1 5 0 4 3 2 1 0
1 0 0 1 0 1 0 0 1 0 0 0 0 1
2 0 1 0 0 1 1 0 1 0 0 0 1 0
3 1 0 0 0 1 2 0 1 0 0 1 0 0
4 0 0 1 1 0 3 0 1 0 1 0 0 0
5 0 1 0 1 0 4 0 1 1 0 0 0 0
6 1 0 0 1 0 5 1 0 0 0 0 0 1
7 0 1 1 0 0 6 1 0 0 0 0 1 0
8 1 0 1 0 0 7 1 0 0 0 1 0 0
9 1 1 0 0 0 8 1 0 0 1 0 0 0
9 1 0 1 0 0 0 0
La distancia mínima de éste código es 2.
Es un código ponderado que utiliza 7 bits.
Su distancia mínima es 2.
Paridad par:
Se añade un bit de tal manera que la cantidad de unos de la nueva combinación sea par.
Paridad impar:
Se añade un bit de tal manera que la cantidad de unos de la nueva combinación sea impar.
b4 = b5 ⊕ b6 ⊕ b7
b2 = b3 ⊕ b6 ⊕ b7
b1 = b3 ⊕ b5 ⊕ b7
Con esto, el código de Hamming resultante es el siguiente:
Código de Hamming
b7 b6 b5 b4 b3 b2 b1
0 0 0 0 0 0 0 0
1 0 0 0 0 1 1 1
2 0 0 1 1 0 0 1
3 0 0 1 1 1 1 0
4 0 1 0 1 0 1 0
5 0 1 0 1 1 0 1
6 0 1 1 0 0 1 1
7 0 1 1 0 1 0 0
8 1 0 0 1 0 1 1
9 1 0 0 1 1 0 0
El método consiste en obtener el FCS como el resto que resulta de dividir (en módulo 2) el mensaje
desplazado, por un patrón P de (n + 1) bits. Matemáticamente es:
M R FCS
2n =Q+ =Q+
P P P
Dividir en aritmética de módulo 2 es realizar la operación Or exclusiva combinada con desplazamientos
del divisor.
En el receptor se divide la trama por el patrón:
T 2 n.M + R M R R R R+R
= = 2n + =Q+ + =Q+
P P P P P P P
Si el resto de esa división, que equivale a R + R = FCS + FCS , es igual a cero, quiere decir que el
mensaje probablemente haya llegado sin errores. La probabilidad se presenta ya que puede existir un
error en el mensaje y en la secuencia a la vez, de tal manera que los cálculos den correctos.
Los patrones utilizados definen la capacidad del sistema de detectar distintos tipos de errores: Si hay
error, se recibe T + E (trama original más error), y como T es divisible por P , el resto obtenido se
debe a la componente de error E , por lo tanto, si E es divisible por P el error no se detecta. Por
ejemplo, si el error es de un bit, E es una cadena de igual longitud que T compuesta por todos ceros y
un uno, y si P tiene más de un uno, no puede dividir a E . Por lo tanto, con ese patrón se detectan todos
los errores de un bit.
En general, un polinomio generador de n bits detectará:
• Todos los errores de 1 bit.
• Todos los errores de 2 bits.
• Todos los errores de bit en número impar.
• Todas las ráfagas de errores de longitud menor de n.
• La mayor parte de las ráfagas de errores mayor que n.
La forma de representar el patrón generador consiste en indicar las posiciones de los unos binarios como
potencias de x. Un ejemplo es el llamado CRC-16 que se representa como:
x16 + x15 + x 2 + 1 ≡ 11000000000000101
Extraído de un apunte de la Univ. Politécnica de Cartagena
Códigos Bidimensionales:
Otra manera de obtener un código con una gran distancia mínima es construir un código bidimensional.
Los bits de información se acomodan conceptualmente en un arreglo bidimensional y se proporcionan
bits de paridad para verificar tanto las filas como las columnas. Para las filas se usa un determinado
código con distancia mínima d fil y para las columnas uno para el cual la misma es d col . La distancia
mínima del código bidimensional así formado será el producto d fil .d col . A continuación se muestra un
esquema general y el ejemplo para códigos con un bit de paridad en ambas dimensiones. Se verifica que
la distancia mínima del código del ejemplo es 4 y se puede inferir que se necesita un error de cuatro bits
en un patrón rectangular para hacerse indetectable.
Wakerly 42
Comunicación de Datos
Conceptos y terminología:
A continuación se presenta una lista de términos utilizados en transmisión de datos:
Enlace directo: Camino de transmisión entre el emisor y el receptor sin otro dispositivo intermedio que
no sea un amplificador o un repetidor.
Enlace guiado punto a punto: Enlace directo entre los dos únicos dispositivos que comparten el medio.
Enlace guiado multipunto: El mismo medio es compartido por dos o más dispositivos.
Ancho de banda absoluto: Anchura del espectro en frecuencias completo de una señal.
Ancho de banda efectivo: Para señales de ancho de banda absoluto infinito, se considera efectivo el
ancho de banda donde se concentra la mayor cantidad de la energía.
• Unipolar: Es la más sencilla y primitiva. Uso pulsos de voltaje constante durante la duración del
bit para representar los unos y ceros. Tiene la desventaja de poseer una componente continua y
no poseer sincronía.
• Polar: Usa dos niveles de voltaje para la codificación: uno positivo y otro negativo. Elimina el
problema de la componente continua.
• Bipolar: También usa dos niveles de voltaje para la codificación, pero alternando el significado
de los mismos.
También hay un tipo de codificación denominado diferencial, donde la polaridad de cada elemento es
función de la polaridad de los elementos adyacentes.
Existen diversos códigos para codificación polar y bipolar. El siguiente esquema los muestra:
POLAR BIPOLAR
NRZ-I:
Su nombre significa no retorno a cero, invierte en unos. Es un código diferencial.
RZ:
Su nombre significa retorno a cero.
Manchester:
Manchester Diferencial:
Como su nombre lo indica es un código diferencial.
En éste código la transición a mitad
del intervalo se utiliza sólo para
proporcionar sincronización.
La codificación de un cero se
representa por la presencia de una
transición al principio del intervalo
del bit, y la de un uno por la ausencia
del mismo. En otras palabras, el uno
cambia el sentido de los flancos de
sincronización.
Bipolar AMI:
Su nombre significa inversión de marca alternada.
Formas de transmisión:
Asíncrona:
Es el primer enfoque habitual para resolver el problema de la sincronización. Consiste en enviar
ininterrumpidamente cadenas de bits que no sean muy largas. Los datos se transmiten caracter a
caracter, donde cada uno tiene una longitud determinada (generalmente 8 bits). La sincronización
se debe dar en cada caracter, y el receptor debe poder resincronizarse en el siguiente.
La técnica es:
Síncrona:
En la transmisión síncrona se transmite un bloque de bits de cualquier longitud (variable) sin
utilizar códigos de comienzo o parada. La sincronización se puede realizar de dos maneras: a
través de una señal de reloj independiente de los datos (lo que funciona bien a distancias cortas)
o mediante la inclusión de información relativa a la sincronización en los mismos datos (como la
codificación Manchester y Manchester diferencial).
Además en la transmisión síncrona se requiere un nivel de sincronización adicional para que el
receptor pueda determinar dónde está el comienzo y el final de cada trama.
Para ello se comienza cada bloque con un
patrón de bits denominado preámbulo, y
se finaliza con un patrón de bits final. Se
añaden también otros bits utilizados para
el control del enlace.
Aritmética binaria
Suma:
La suma binaria es similar a la suma en decimal. Cada dígito se Semisuma
suma con el correspondiente a su posición. Si la suma de ambos es Sumandos Suma Acarreo
mayor que el valor de la base, existirá un acarreo al bit de la b a S C
siguiente posición. Como en binario tenemos sólo dos dígitos, la 0 0 0 0
suma se representa como en la tabla. 0 1 1 0
1 0 1 0
1 1 0 1
Decimal Exceso 8
-8 0000
-7 0001
-6 0010
-5 0011
-4 0100
-3 0101
-2 0110
-1 0111
+0 1000
+1 1001
+2 1010
+3 1011
+4 1100
+5 1101
+6 1110
+7 1111
Resta:
La operación de resta, por simplicidad en los sistemas digitales, se hace mediante la complementación
del sustraendo, y realizando una suma ordinaria. Matemáticamente:
X − Y = X + (− Y )
Hay que tener ciertas consideraciones, dependiendo del tipo de representación del número negativo que
usemos. Éstas se pueden resumir como sigue:
• Complemento a 2: Se suma y se ignoran los acarreos más allá del bit más significativo. El
resultado será correcto siempre que no se exceda el rango del sistema numérico.
• Complemento a 1: Se suma de la manera normal, pero si hay un acarreo fuera de la posición del
signo, se suma 1 al resultado y se recalcula la suma (regla de acarreo en redondo).
La siguiente tabla resume lo relacionado con los signos de los operandos y del resultado, en lo que tiene
que ver con la aparición de un acarreo (tenido en cuenta o no, dependiendo del sistema) y con la
representación del resultado.
SIGN. RESULT. Co COMP.
POSITIVO ( X − Y )comp a b = X + (2 n − Y ) = 2 n + ( X − Y )
SI NO
( X >Y ) ( X − Y )comp a b-1 = X + (2 n − 1 − Y ) = 2 n + (X − Y − 1)
=
NEGATIVO ( X − Y )comp a b = X + (2 n − Y ) = 2 n − (Y − X )
NO SI
( X <Y ) ( X − Y )comp a b-1 = X + (2 n − 1 − Y ) = 2 n − 1 − (Y − X )
POSITIVO ( X − Y )comp a b = X + 2 n − (2 n − Y ) = ( X − Y )
( X >0 y NO NO
Y <0) ( X − Y )comp a b-1 = X + 2 n − 1 − (2 n − 1 − Y ) = ( X − Y )
≠
NEGATIVO ( X − Y )comp a b = (2 n − X ) + 2 n − Y = 2 n + 2 n − ( X + Y )
( X <0 y SI SI
Y > 0) ( X − Y )comp a b-1 = (2 n − 1 − X ) + 2 n − 1 − Y = 2 n + 2 n − 1 − (X + Y − 1)
Desborde:
Ocurre cuando la suma de dos números da un resultado que excede el rango del sistema de numeración.
Para ambos tipos de representación (complemento a 2 o a 1), la regla es la misma: Una suma desborda si
los signos de los sumandos son iguales y el signo de la suma es diferente a ellos.
Operaciones BCD:
Los números BCD con signo tienen una posición de dígito extra (4 bits) para el signo. Se usa tanto la
representación de magnitud y signo como la de complemento a la base (complemento a 10).
La suma de números BCD se realiza como una suma ordinaria por dígitos, excepto que debe hacerse una
corrección si el resultado excede a 9 (1001). Ésta corrección implica sumarle 6 (0110) al resultado sin
acarreo para corregir éste dígito, y tomar el acarreo para sumarlo al dígito que sigue, o para informar un
desborde. La suma del factor de corrección también puede producir un acarreo (si no se produjo antes),
que de igual forma deberá sumarse al dígito siguiente.
Multiplicación y división:
La multiplicación de dos números binarios coincide con el producto lógico. El algoritmo de
multiplicación coincide con el usado en el sistema decimal: se multiplica el primer factor por cada bit del
segundo, efectuando un corrimiento en cada uno, y se suman los resultados. Se prefiere ir haciendo
sumas parciales, en vez de sumar todo junto al final, para asemejar más el comportamiento al que tendrá
la realización lógica. En general, cuando multiplicamos un número de n bits por otro de m bits, el
resultado requerirá n + m bits para expresarse.
La multiplicación en complemento a 2 (números positivos y negativos) se realiza de la siguiente manera:
• En cada suma parcial hacemos una extensión del signo, es decir, agregamos un bit más a cada
uno de los sumandos en el lugar más significativo.
• Sumamos e ignoramos cualquier desborde más allá del bit agregado.
• En la última suma debemos complementar el multiplicando desplazado, es decir, el
correspondiente al bit más significativo del segundo factor.
• Descartamos el desborde de la última suma, si ocurriese.
• La suma final será correcta, en representación en complemento a dos.
A continuación se representan ejemplos de la multiplicación de enteros positivos y enteros representados
en complemento a 2:
Producto de enteros positivos Producto de enteros representados en complemento a 2
1011 11 1011 -5
x 1101 x 13 x 1101 x -3
0000 Primer producto parcial 00000 Primer producto parcial
+ 1011 Multiplicando desplazado + 11011 Multiplicando desplazado
01011 Producto parcial 111011 Producto parcial
+ 0000- Multiplicando desplazado + 00000- Multiplicando desplazado
001011 Producto parcial 1111011 Producto parcial
+ 1011-- Multiplicando desplazado + 11011-- Multiplicando desplazado
0110111 Producto parcial 11100111 Producto parcial
+ 1011--- Multiplicando desplazado + 00101--- Multiplicando desplazado (y complem.)
10001111 Producto 00001111 Producto
Para el caso de división, usamos el mismo algoritmo que en decimal: basado en el método de
desplazamiento y resta. Como es binario, la elección del múltiplo del divisor es sencilla: o es cero o es el
divisor mismo. En general, el dividendo tendrá n + m bits, el divisor n bits, el cociente dará un
resultado de m bits, y el resto tendrá n − 1 bits. La división se desborda si el divisor es cero o si el
cociente toma más de m bits para expresarse.
A continuación se presenta un ejemplo:
-19 Divisor 10011 Cociente
11 217 1011 11011001 Dividendo
110 1011 Divisor desplazado
107 0101 Dividendo reducido
99 0000 Divisor desplazado
8 1010 Dividendo reducido
0000 Divisor desplazado
10100 Dividendo reducido
1011 Divisor desplazado
10011 Dividendo reducido
1011 Divisor desplazado
1000 Resto
Cuando hacemos divisiones en complemento a dos, existen métodos similares al de la multiplicación.
Números fraccionarios:
Coma fija:
Para representar los números fraccionarios, éste sistema adopta una posición fija para la coma, de
elección arbitraria para el sistema, pero una vez fijado su lugar no se modifica.
La principal ventaja es que los algoritmos de realización de las diferentes operaciones son los
mismos que los vistos para números enteros, asignando simplemente un lugar a la coma. La
a+a=a
a.a = a
Teorema 4: ABSORCIÓN:
a + a.b = a
a.(a + b ) = a
Teorema 5: PROPIEDAD ASOCIATIVA:
a + (b + c ) = (a + b ) + c = a + b + c
a.(b.c ) = (a.b ).c = a.b.c
Teorema 6: COMPLEMENTACIÓN DOBLE:
a =a
Teorema 7: LEYES DE “De MORGAN”:
a + b + c + d + K = a b c d K (NOR)
a.b.c.d K = a + b + c + d K (NAND)
Álgebra de llaves:
La operación suma se asimila a la conexión en paralelo de contactos y la operación producto a la
conexión en serie. El elemento 0 es un contacto siempre abierto y el elemento 1 un contacto
siempre cerrado. Cuando la función de transmisión tiene al menos un camino cerrado de
circulación de corriente, tenemos el valor 1 en la salida. Si ocurre lo inverso, o sea, que no hay
ningún camino cerrado, el valor de salida es un 0.
La función lógica se representa por la expresión f (K , c, b, a ) , ya que su valor lógico depende del de las
variables K , c, b, a .
Se llama término canónico de una función lógica a todo producto o suma en la cual aparecen todas las
variables en su forma directa o inversa. Al primero de ellos se llama producto canónico (MINTERM) y
al segundo suma canónica (MAXTERM). El número máximo de productos o sumas para n variables es
2n .
También podemos expresar a cada término canónico con un número decimal equivalente al binario
obtenido al sustituir las variables ordenadas con un criterio determinado por un 1 o un 0 según aparezcan
en su forma directa o inversa respectivamente. Así, podemos representar la función como una sumatoria
2 n −1 2 n −1
(f = ∑ ( ) ) o una productoria ( f = ∏ ( ) ) de términos designados con un número decimal.
i =0 i =0
Teorema:
f (K , c, b, a ) = a. f (K , c, b,1) + a . f (K , c, b,0 )
2 n −1 2 n −1
f (K , c, b, a ) = ∑ [( ) ]
f (i ).i = ∏ f 2 n − 1 − i + i
i =0 i =0
/*Estudiar la demostración*/
Esto significa que si se tiene la expresión en forma de suma de productos, la expresión canónica en forma
de producto de sumas se obtiene mediante el complemento a 2 n − 1 de los productos canónicos que no
forman parte de la función. Lo mismo ocurre cuando se tiene la expresión en forma de producto de
sumas.
Mandado Pág.: 29
OR:
Es la suma lógica de dos o más variables. La tabla de la verdad correspondiente a la operación
OR de dos variables, su símbolo lógico tradicional y el normalizado se muestran a continuación.
OR
Entradas Salida
b a b+a
0 0 0
0 1 1
1 0 1
1 1 1
NOT:
Es la inversión lógica de una variable. La tabla de la verdad correspondiente a dicha operación,
su símbolo lógico tradicional y el normalizado se muestran a continuación.
NOT
Entrada Salida
a a
0 1
1 0
%%%
NOR:
Es el inverso de la suma lógica de dos o más variables, o lo que es lo mismo (por consecuencia
del teorema de DeMorgan) el producto lógico de los inversos de dos o más variables. Veremos
que ésta consecuencia también trae aparejado que existan dos símbolos distintos para ésta
función. La tabla de la verdad correspondiente a la operación NOR de dos variables, sus
símbolos lógicos tradicionales y los normalizados se muestran a continuación.
NOR
Entradas Salida
b a b + a = b .a
0 0 1
0 1 0
1 0 0
1 1 0
__
Funciones especiales:
OR exclusiva (XOR):
Es la función lógica de n variables que toma el valor lógico uno si se encuentra un número
impar de ellas en estado uno, y el valor lógico cero si es un número par de ellas el que posee el
valor lógico uno. En particular, para el caso de dos variables, la salida es uno si sólo una de las
entradas está en estado lógico uno. La función se representa con el operador ⊕ . La tabla de la
verdad correspondiente a la operación XOR de dos variables, su símbolo lógico tradicional y el
normalizado se muestran a continuación.
XOR
Entradas Salida
b a b⊕a
0 0 0
0 1 1
1 0 1
1 1 0
De la tabla de verdad se deduce que las expresiones canónicas de la función XOR son:
f XOR (ba ) = b a + ba = (a + b )(a + b )
Ésta función además presenta las siguientes propiedades:
a⊕b = a⊕b = a ⊕b = a ⊕b
XOR como inversor controlado:
Podemos hacer uso de las compuertas XOR para realizar la inversión controlada de una
variable, es decir, invertirla o no a voluntad, mediante una señal de control.
Mayoría:
Una función mayoría es un circuito digital cuya salida es 1 si solamente la mayoría de las
entradas son 1. La salida es 0 en cualquier otra condición.
Para tres variables, por ejemplo, ésta función es la suma de los productos de dos variables
acertadas a la vez, es decir:
f MAYORÍA (cba ) = c.b + b.a + c.a
Funciones incompletas:
Se llama funciones incompletas a aquellas en las que, para una o más combinaciones de entrada, a la
salida se le puede asignar el valor cero o uno indistintamente. Esto puede deberse a distintas causas:
• Es imposible la aparición de esas combinaciones de entrada.
• Para esas combinaciones de entrada la salida es indiferente porque está inhibida.
La forma canónica de una función incompleta se representa indicando en una sumatoria separada, escrita
como ∑X
los términos para los cuales la función no está definida. En la tabla de verdad, dichas salidas
En éstas tablas se indica con un 1 en la celda correspondiente los términos que toman ese valor
para la función. Los ceros no suelen indicarse.
Explicaremos el proceso para sumas de productos, pero es análogo para productos de sumas.
Para realizar la minimización de la función deberán agruparse sólo los unos en cantidades
iguales a una potencia de 2, de tal manera de no abarcar ningún cero, y procurando realizar el
mínimo número de agrupaciones de términos de la máxima cantidad de unos, de modo de
cubrir todos los unos de la tabla. Un procedimiento sistemático es el siguiente:
1. Encerrar en un círculo los unos que no pueden agruparse de a dos.
2. Encerrar en un círculo grupos de dos unos que no pueden agruparse de a cuatro.
3. Encerrar en un círculo grupos de cuatro unos que no pueden agruparse de a ocho.
4. Así sucesivamente hasta que se hayan cubierto todos los unos de la tabla.
El producto lógico resultante de cada agrupación se obtiene eliminando las variables que toman
el valor 0 en la mitad de las celdas agrupadas, y el 1 en la otra mitad, y asignando en forma
directa las variables que toman el valor 1 en todo el grupo, e inversa las que toman el valor 0.
A continuación se muestran ejemplos de agrupaciones:
Con una tabla de n variables es posible representar una función de n + 1 variables asignando a
cada cuadrado dos términos canónicos en lugar de uno sólo. Sería una forma de reducir dos
tablas: una que corresponde a la variable sobrante acertada, y la otra a la negada. De ésta forma
cada cuadrado puede tener un 1 (si hay un 1 en esa posición en ambas tablas), un cero (que no se
coloca), la variable sobrante en forma acertada o negada (si hay un uno en la tabla de la variable
correspondiente y un cero en la otra). Realizamos la minimización agrupando los cuadrados
donde está la variable acertada con otros que tengan uno, de tal manera que el término
correspondiente contenga a dicha variable en ese estado. Realizamos lo mismo con la variable
negada. Por último agrupamos los unos que no se pueden agrupar con la variable.
A continuación se muestra un ejemplo claro:
3. Se arma una tercera tabla agrupando términos pertenecientes a grupos adyacentes cuya
diferencia es igual y que además difieren entre sí en una potencia de 2. Se indican ambas
diferencias: la primera es la diferencia interna de la tabla anterior, y la segunda es la que
existe entre los términos agrupados. La tabla queda como sigue:
Tabla 3
Término Diferencias Utilizado
0-4-8-12 (4,8)
0-8-4-12 (8,4)
- -
3-7-11-15 (4,8)
3-11-7-15 (8,4)
A partir de aquí los términos se repiten, debido a la aparición de otro término con los
mismos números pero en distinto orden, es decir, con las diferencias intercambiadas.
Tachamos uno, y nos quedamos con el otro, generalmente con el que tenga ordenados
sus números. Nuevamente marcamos los términos no primos y resaltamos los primos en
la tabla anterior.
4. El proceso se continua realizando tablas sucesivas hasta que no se puedan realizar más
agrupaciones.
5. Consideramos los términos primos, es decir, los que no se han agrupado con otros para
formar otro mayor. Ahora es necesario elegir la mínima combinación de éstos que cubra
toda la función. Para ello se utiliza una tabla cuyas filas sean los términos primos, y
Términos primos 0 1 3 4 7 8 11 12 13 15
0-1 x x
1-3 x x
12-13 x x
13-15 x x
0-4-8-12 x ⌧ ⌧ x
3-7-11-15 x ⌧ ⌧ x
6. En primer lugar se observa si la tabla contiene alguna columna con un solo término
marcado, y se indica mediante una flecha. El término primo que realice esa “x” es
esencial, es decir, debe formar parte de la función. Se resaltan (recuadran) los términos
esenciales, y los términos canónicos realizados por ellos.
7. El paso siguiente es buscar la combinación más sencilla de los términos primos restantes
que realiza el resto de los términos canónicos. Para ello se hace una tabla reducida, que
contiene los términos primos no esenciales como filas y los términos canónicos no
realizados como columnas. La tabla se arma como sigue:
Términos primos
1 13
no esenciales
0-1 x
1-3 x
12-13 x
13-15 x
Con esto, se elige la combinación de términos que realice de la forma más sencilla todos
los términos canónicos restantes.
En el ejemplo, cualquier combinación entre 0-1 o 1-3 y 12-13 o 13-15 realiza los dos
términos. Hemos elegido la combinación que se ve recuadrada.
Cuando existen términos primos no esenciales que “contengan” a otros, es decir que
realicen los mismos términos que ellos y otros más, se pueden suprimir los “contenidos”,
ya que no forman parte de la solución mínima.
8. Finalmente, debemos obtener las expresiones literales de las representaciones numéricas
de los términos primos esenciales, y de los no esenciales elegidos para completar la
función. Para ello, tomamos la expresión del primer número del término, y eliminamos
de ella las variables cuyo peso sea la diferencia entre este número y el segundo, el
tercero, y así sucesivamente. Por ejemplo, el término 0-4-8-12 se representa como:
0 = dcb a
4 − 0 = 4 = c ⇒ 0 − 4 − 8 − 12 = b a
8 − 0 = 8 = d
En el ejemplo, la función queda:
f (dcba ) = b a + ba + d c b + dcb
Funciones incompletas:
Al aplicar éste método a funciones incompletas, debemos, en un principio considerar las X como
unos, es decir que incluimos los términos “no importa” en la Tabla 1. Seguimos con el
procedimiento hasta obtener los términos primos. Si alguno de éstos está compuesto sólo por
términos canónicos “no importa”, no debe ser incluido en la tabla de términos primos, ya que no
hace a la realización mínima de la función. En las columnas sólo ponemos los términos que
pertenecen a la función, es decir, los que son 1. Terminamos el procedimiento de la misma
manera ya vista.
Multifunciones:
En éste método se agrega una columna más a la Tabla 1, que indica a qué función o funciones
pertenece cada término canónico. La Tabla 2 y las sucesivas se realizan de la manera ya vista,
indicando en cada término agrupado la función o funciones a las cuales pertenece cada uno (se
hace intersección de conjuntos). Los términos que no tengan en común la pertenencia a una
función se descartan. Se marcan como “utilizados” sólo los términos que se usen para armar
otros más complejos, siempre que todas las funciones a las que pertenecen sean las mismas.
En la tabla de términos primos se dibujan en grupos separados las columnas con los términos de
cada función, y además se indica a qué función o funciones pertenece cada término primo. Al
encontrar los términos primos esenciales, se recuadran los términos canónicos realizados sólo de
las funciones a las cuales pertenece dicho término primo esencial. El procedimiento es el mismo
que se acaba de ver para completar la minimización de la función.
Método de “puenteo”:
El método consiste en representar mi función canónica como una función
XOR (cualquiera de sus expresiones) de la misma cantidad de variables
que mi función original, a la que multiplico por otra función que me
permita quitar los unos que tiene la función XOR y que mi función no
tiene, y a éste producto le sumo una función para agregar los unos que la
función XOR no tiene y que mi función si. Es decir, en forma general, mi
función canónica se convertirá en:
f (dcba ) = (d ⊕ c ⊕ b ⊕ a ). ∑ L + ∑ L
4 4
La función XOR tiene su tabla de Karnaugh como se muestra en la
figura.
Como es fácil ver, éste método es más eficiente mientras mayor sea la semejanza de la función con la
función XOR, ya que no tendremos que agregar demasiados términos en las otras dos funciones, y
obtendremos un circuito más sencillo. Las funciones agregadas deben ser minimizadas por los métodos
ya vistos.
A continuación se muestra una especie de plantilla o tabla genérica, que lo que hace es representar la
misma función XOR con éste método:
2. Para poner los ceros que la XOR no tiene, debo reemplazar en la función multiplicada el uno
correspondiente por un cero, y en la función sumada, el “no importa” correspondiente por un
cero ( 1.0 + 0 = 0 )
3. Para poner los unos que la XOR no tiene, debo dejar el “no importa” correspondiente en la
función multiplicada y reemplazar el cero correspondiente por un uno en la función sumada
( 0. X + 1 = 1 )
4. Para poner los “no importa” que la XOR no tiene, debo cambiar el uno correspondiente por un
“no importa” en la función multiplicada, o conservar el “no importa”, y cambiar el cero
correspondiente por un “no importa” en la función sumada, o conservar el “no importa”
( 1. X + X = X y 0. X + X = X )
Si minimizo las funciones multiplicada y sumada, obtengo la siguiente función para el ejemplo:
f (dcba ) = (d ⊕ c ⊕ b ⊕ a )( ( )
. c + d ) + cb
Dispositivos de tercer estado:
Los dispositivos de tercer estado permiten, además de
los estados lógicos alto y bajo, un estado de alta
impedancia (Hi-Z), controlado por una terminal de
desinhibición (EN). Las compuertas más sencillas
son las seguidoras, cuyos símbolos lógicos
tradicional y normalizado se muestran en la figura.
Una aplicación particular es la de un montaje Y por conexión, siempre que las salidas se activen de a una
por vez.
Sistemas Digitales
Estructura y definiciones:
Un sistema digital es aquel que recibe información de tipo discreta, la procesa y luego la entrega
procesada.
Diagrama en bloques:
Es una representación del sistema digital. Se colocan las variables de entrada en el extremo
izquierdo y las variables de salida o funciones del lado derecho.
Variable digital y variable binaria:
Se define como variable digital aquella que toma solamente valores discretos. La variable
binaria, toma sólo dos valores. Las indicamos con letras minúsculas.
Función digital:
Es una relación algebraica entre variables binarias a través de las operaciones del álgebra de
Boole: suma, producto e inversión lógicas.
Vector digital:
Es un conjunto de variables digitales que cumplen con el mismo propósito. Tiene tres
propiedades:
pautas, para determinar exactamente las variables que cumplen con tales
objetivos. El procedimiento se realiza de la siguiente manera:
Proceso de diseño:
El proceso de diseño en VHDL se divide en dos etapas, que a su
vez tienen distintos pasos. OBJETIVO
Etapa de desarrollo:
1) Planteo general del sistema:
Se realiza una representación mediante un PLANTEO GENERAL
diagrama en bloques. Se definen en él los
módulos e interfaces generales del sistema
(partes e interconexión).
2) Codificación:
CODIFICACIÓN
Consiste en escribir el código VHDL para todos
los componentes planteados, módulos
específicos e interfaces.
3) Compilación:
Se transforma el código en un programa objeto,
que contiene toda la información necesaria para
COMPILACIÓN
la simulación del proyecto.
4) Verificación:
Permite establecer si el circuito funciona como
se pretendió en las pautas de diseño. Se verifica
funcional y temporalmente: en la primera se
idealiza a los elementos lógicos en el tiempo, en VERIFICACIÓN
la segunda se plantean retardos estimados.
Simulación:
Sirve para analizar el comportamiento
que tendría el circuito puesto en
funcionamiento, definiendo entradas y
verificando las salidas correspondientes.
SÍNTESIS
Etapa de realización:
1) Síntesis:
Convierte el modelo descrito por el programa
codificado en un conjunto de primitivas o AJUSTE Y
componentes que se articularán en un circuito ENRUTAMIENTO
real en una tecnología adecuada. Las
herramientas de síntesis permiten decidir
restricciones específicas en cuanto al circuito y
su tecnología.
2) Ajuste y enrutamiento:
VERIFICACIÓN
Son herramientas que mapean los componentes TEMPORAL
codificados para adaptarlos a los recursos
disponibles en un dispositivo.
3) Verificación temporal y total del
circuito:
Establece la funcionalidad temporal correcta
basada en todos los parámetros reales puestos en RESULTADO
juego al realizar el circuito lógico.
Programación:
Estructura:
La estructura de un módulo programado en VHDL tiene los siguientes elementos básicos:
• Entidad: Es la declaración de los vectores del módulo, es decir, el identificador vectorial
del sistema considerado. Implica todo lo externo del diagrama en bloques.
• Arquitectura: Es la descripción detallada de la estructura interna o comportamiento del
módulo. Describe el interior del bloque considerado.
Cada circuito realizado con VHDL debe tener estos dos elementos bien definidos.
Descripción general:
La descripción general de cada bloque en VHDL se puede realizar de tres maneras diferentes:
1. Descripción estructural: En la arquitectura se declaran los componentes internos de la
estructura del circuito a realizar, suponiendo que conocemos exactamente dicha
estructura. Se usa la instrucción COMPONENT. En la descripción se especifica cómo es la
estructura de cada salida del circuito, es decir, por qué componentes pasan las entradas
hasta llegar a ésta.
2. Descripción de flujo de datos: En la arquitectura se declaran las señales internas del
circuito y en su descripción se utilizan ecuaciones lógicas de asignación (operador <=) y
mediante el uso de operadores lógicos (como OR o AND) se establece la señal de salida
correspondiente.
3. Descripción de comportamiento: En la arquitectura no se declaran señales internas,
sino que se manipulan instrucciones condicionales como IF, THEN, ELSE, etc., para
establecer la relación lógica entre los valores de las entradas y los de las salidas. Se
utiliza la instrucción PROCESS para indicar que la lectura de esas instrucciones es
secuencial.
Sintaxis general:
Entidad:
La sintaxis general para declarar una entidad es la siguiente:
ENTITY nombre-entidad IS
PORT (
nombre-señales: modo tipo-señal;
nombre-señales: modo tipo-señal;
...
nombre-señales: modo tipo-señal;
);
END nombre-entidad;
donde:
• nombre-entidad es el nombre asignado a ella. No puede ser una palabra
clave o reservada.
• nombre-señales es el nombre asignado a cada una de ellas. Tampoco puede
ser una palabra clave o reservada.
• modo es el modo de interacción de la señal con el exterior de la entidad. Éstos
pueden ser 4 y las palabras clave a usar son:
o IN Señal de entrada a la entidad.
o OUT Señal de salida de la entidad (no puede ser leído dentro de la
arquitectura de la entidad)
o BUFFER Señal de salida de la entidad (si puede ser leído dentro de la
arquitectura de la entidad)
o INOUT Señal de entrada o salida de la entidad.
• tipo-señal indica de qué tipo es la señal declarada. Los tipos pueden
definirse por el usuario, pero los predefinidos son:
o BIT
o CHARACTER
o INTEGER
o REAL
o Std_vector (n downto 0): vector de n bits (librería estándar)
o etc.
Arquitectura:
La sintaxis general para declarar una arquitectura perteneciente a una entidad es:
ARCHITECTURE nombre-arquitectura OF nombre-entidad IS
[declaración de señales]
[declaración de constantes]
[declaración de tipo]
[definición de funciones]
[definición de procedimiento]
[declaración de componentes]
BEGIN
[enunciado concurrente];
[enunciado concurrente];
...
[enunciado concurrente];
END nombre-arquitectura;
donde:
• nombre-arquitectura es el nombre asignado a ella, generalmente
relacionado con la entidad, pudiendo tener el mismo nombre. No puede ser una
palabra clave o reservada.
• nombre-entidad es el nombre exacto de la entidad que queremos describir.
• [declaraciones] éstas pueden ser:
o [declaración de señales] especifica señales internas de la
entidad. No se especifica modo, porque no interactúan con el exterior del
bloque, pero sí un tipo de señal. Sintaxis:
SIGNAL nombre-señal: tipo-señal;
o [declaración de constantes]Sintaxis:
CONSTANT nombre-constante: tipo-constante :=
valor;
o [declaración de tipo] sirve para definir tipos personalizados de
señales, variables o constantes. Sintaxis para tipos y subtipos:
TYPE nombre-tipo IS declaración-del-tipo;
SUBTYPE nombre-subtipo IS nombre-tipo comienzo
TO final;
o [declaración de funciones] Las funciones tienen argumentos
y devuelven resultados, ambos de tipos determinados. Utilizan en su
interior variables. Sintaxis:
FUNCTION nombre-función (
nombre-señal: tipo-señal;
...
)RETURN tipo-retorno IS
[declaraciones];
...
BEGIN
[enunciado-secuencial];
...
END nombre-función;
[declaración de variables] Se declaran como las
señales pero no se corresponden con el circuito. Sintaxis:
BEGIN
[enunciados secuenciales];
END PROCESS;
La lista de sensibilidad es opcional. Cuando existe es una lista de variables que hacen
que, si cambia el valor de alguna de ellas, se comience a ejecutar el proceso hasta su
final, y luego espere a que vuelva a cambiar para volver a ejecutarse. Dentro de un
proceso no está permitida la declaración de señales, sino sólo de variables. Los
procesos se ejecutan un número definido de veces. Si esto no es así, hubo un error en la
programación, y se entra a un ciclo infinito.
Las instrucciones secuenciales se listan a continuación:
1. Asignación de señal secuencial: Misma sintaxis que la concurrente.
2. Asignación de variable secuencial: Es mediante el operador “:=”
3. Instrucciones if-then-else: Sintaxis:
IF exp-booleana THEN enunc-secuencial
ELSIF exp-booleana THEN enunc-secuencial
ELSIF exp-booleana THEN enunc-secuencial
...
ELSE enunc-secuencial
END IF;
4. Instrucción case: Sintaxis:
CASE expresión IS
WHEN alternativas => enunc-secuencial
WHEN alternativas => enunc-secuencial
...
WHEN OTHERS => enunc-secuencial
END CASE;
5. Instrucción loop: Sintaxis:
LOOP
enunc-secuencial
enunc-secuencial
...
EXIT;
...
END LOOP;
6. Instrucción for: Sintaxis:
FOR identificador IN rango LOOP
enunc-secuencial
enunc-secuencial
...
NEXT;
...
EXIT;
...
END LOOP;
7. Instrucción while: Sintaxis:
WHILE exp-booleana LOOP
enunc-secuencial
enunc-secuencial
...
EXIT;
...
END LOOP;
Temporización:
Existen algunas instrucciones que permiten considerar y utilizar el tiempo en nuestros diseños:
t PHL + t PLH
t PM =
2
Margen de ruido:
∆0 = VIL − VOL
El margen de ruido dinámico es un
parámetro que determina la altura
( ∆Vpulso ) de un impulso y su duración
mínima ( ∆t pulso ) para que, aplicado a la
entrada, haga cambiar el estado lógico de
una puerta. Existe una curva para cada
estado lógico. Como se ve en la curva,
después de una duración determinada
( ∆t i ), el margen de ruido permanece
constante. Pulsos de menor duración
tienen mayor margen de ruidos, pues
disminuye su efecto en la compuerta.
Potencia:
La potencia disipada se define para una puerta lógica y con un ciclo de trabajo del 50%.
La disipación potencia estática es la que ocurre cuando los niveles lógicos están estables, es
decir, en alto o en bajo. El consumo en estos casos es el más bajo, porque representa solamente
una potencia de pérdidas en la mayoría de los casos, ya que los dispositivos activos están en
saturación ( V ≅ 0 y I ≅ I SAT ⇒ PDE ≅ 0 ) o en corte ( V ≅ VCORTE y I ≅ 0 ⇒ PDE ≅ 0 ).
La disipación de potencia dinámica es la que ocurre en las transiciones entre niveles lógicos. Es
el consumo más importante. Tiene una dependencia mínima con el tiempo de transición, ya que
en él se pasa por la zona activa de las curvas del elemento activo; pero depende en mayor medida
de la carga capacitiva de la salida ( C L ), ya que en las transiciones se carga y descarga la misma
a través de la resistencia del elemento activo en conducción, disipando potencia. Existe también
una dependencia de la misma con la frecuencia (número de transiciones por segundo). Podemos
escribir entonces una ecuación para ésta potencia:
2
PD = f .C L .VCC
Factor de mérito:
Es el producto del tiempo de propagación por la potencia disipada por una compuerta de una
tecnología dada. Éste factor de mérito permite comparar tecnologías: mientras menor sea éste
producto, mayor será la calidad.
Lógica de diodos:
Se pueden realizar compuertas lógicas con
diodos. Éstas son de carácter pasivo,
porque no son capaces de suministrar
corriente en su salida, sino que sólo un
nivel lógico de tensión. Por eso se hace
imposible su interconexión. En la figura se
muestran las funciones AND y OR
realizadas con diodos.
Las resistencias R L y RB se dimensionan para que cada transistor se sature con un coeficiente de
IB
saturación K S = 1 ( K S = ), y así evitar la sobresaturación, que trae consigo un aumento del
I CS / β
tiempo de propagación y limita la frecuencia máxima de trabajo.
La principal limitación de la interconexión de éstas compuertas es el fan-out, ya que la resistencia R L
limita la corriente de salida en el estado alto, lo que hace que el número de transistores que pueden
saturarse al conectarse a ella sea limitado. Además, el tiempo de subida a la salida aumenta con la
cantidad de compuertas conectadas a ella.
La limitación en el fan-in viene dada por la resistencia de salida en corte de los transistores, ya que al
poner muchos en paralelo, ésta disminuye creando un divisor de tensión con R L , lo que baja el voltaje de
salida en alto.
Lógica diodo-transistor DTL:
La lógica diodo-transistor emplea la estructura de entrada pasiva de la lógica de diodos, combinada con
un inversor RTL. Se logra así una compuerta con alto fan-in y fan-out. En la figura se muestra una
compuerta NAND de éste estilo. Los diodos D B1 y DB 2 proporcionan el umbral de tensión suficiente
para que un cero en alguna de las entradas no haga pasar corriente de base al transistor, creando un
funcionamiento erróneo. El alto fan-in y fan-out se debe a que las entradas consumen muy poca
corriente (corriente inversa del diodo) para que el transistor se sature, por lo que podemos conectar
bastantes entradas a una salida de éstas compuertas. La salida de ésta compuerta en estado alto
proporciona corriente a otras entradas. En estado bajo, en cambio, recibe corriente de las entradas de
otras compuertas. La desventaja de éste circuito es que la descarga de los portadores de la base cuando la
entrada está en bajo es lenta, debido a que el único camino que tiene es a través de RB .
Ésta configuración compone el circuito de entrada de una compuerta TTL. La figura muestra su
funcionamiento para niveles de entrada alto y bajo. Se ve que ésta configuración compone un inversor.
Características notables:
• Cuando la entrada está en alto, la unión base-colector de Q1 está polarizada en directo (juntura
PN), por lo que circula corriente en ese sentido, lo cual satura el transistor Q3 .
• Cuando la entrada está en bajo, el transistor Q1 está encendido (unión base-emisor polarizada en
directo), por lo que hace circular una corriente de colector a emisor alta, lo cual descarga
rápidamente el exceso de portadores en la base de Q3 .
Análisis de la compuerta básica:
La compuerta básica NAND y su funcionamiento descriptivo se muestran en la figura.
A continuación se describen las etapas de ésta compuerta:
1. Etapa de entrada:
• Las entradas se componen de múltiples emisores en el transistor Q1 . Cuando por lo
menos una de ellas esté en cero, se saturará el transistor Q2 , con lo que la salida
estará en estado alto.
• Los diodos en inverso proporcionan una defensa contra ruidos de tensión negativa en
las entradas, limitándolos al valor de la tensión del diodo conduciendo (negativa).
2. Etapa de excitación:
a = BAJO o b = BAJO
Q1 = ENCENDIDO
Q2 = APAGADO
Q3 = APAGADO
Q4 = ENCENDIDO
S = ALTO
Característica de transferencia:
La característica de transferencia (aproximada por segmentos lineales) de una compuerta TTL se
muestra en la figura.
Los segmentos se describen a continuación:
• Segmento A-B: Mientras aumento la
tensión de entrada y Q2 permanece
cortado.
• Segmento B-C: La pendiente se da
debido a que Q2 comienza a conducir.
• Segmento C-D: Q2 está saturado y Q3
empieza a conducir.
• Segmento a partir de D: Q3 está
saturado.
Retardos de conmutación:
Los retardos de conmutación se ven disminuidos en ésta tecnología debido a varios factores:
• Cuando la salida pasa a estar en bajo, el transistor Q1 se enciende y extrae rápidamente
los portadores almacenados en la base de Q2 .
• La salida Tótem-pole combina dos configuraciones rápidas, que en conjunto hacen que
se reduzcan los tiempos de subida y bajada.
Formas de salida:
Tótem-pole:
Es la configuración mostrada anteriormente. Una desventaja es que no permite la
operación AND por conexión, ya que en éste caso se producen flujos de corriente altos y
voltajes de salida anormales.
Colector abierto:
Éste tipo de configuración de salida permite el manejo
de dispositivos externos, como relays o LEDs (aún si
usan una fuente distinta a la de la compuerta). También
permite, mediante la aplicación de una carga resistiva
en referencia al voltaje de la fuente, realizar la función
AND por conexión. La figura muestra ésta
configuración de salida, donde vemos que el transistor
Q4 se ha quitado del circuito, lo que hace a éstas
compuertas más lentas que las convencionales.
Tercer estado:
Agregando algo de circuitería a la
compuerta estándar podemos
proveer a la salida de la misma de la
propiedad del tercer estado (alta
impedancia). Para ello
implementamos el circuito mostrado
en la figura.
El diodo D2 se coloca para evitar
que cuando se sature Q2 se coloque
una tensión de aproximadamente 1V
en el correspondiente emisor
agregado al transistor Q1 , con lo
que se interpretaría una entrada en
cero, y modificaría el
funcionamiento lógico de la
compuerta.
TTL Schottky:
Una fuente de retardo típica de las compuertas
bipolares es la saturación de los transistores. Éste
problema puede eliminarse usando transistores que
no se saturen: los transistores Schottky. Éstos son
transistores que tienen un diodo Schottky en la
juntura base-colector, el cual tiene una tensión de
encendido menor que los diodos comunes (0,25V),
evitando así la saturación. El uso de los mismos
trae la desventaja de disminuir el margen de ruido
en estado bajo, debido a ésta menor caída de
tensión.
El circuito de la figura muestra una configuración
típica.
La resistencia colocada entre la base y el emisor
del transistor común Q4 es para evitar su
saturación, ya que es un transistor común.
Una compuerta ECL comercial típica se muestra en la figura siguiente. Es la llamada ECL de 10K.
Los niveles lógicos manejados son pequeños: 0,1V para el estado BAJO y 0,7V para el estado ALTO.
Esto nos indica que los márgenes de ruido son muy pequeños. Las grandes excursiones de tensión
necesarias en la salida del circuito se logran conectando el colector de salida, mediante una resistencia
adecuada a una fuente de alimentación independiente.
Las operaciones lógicas que permiten armar compuertas prácticas son la inversión,
cuya configuración ya vimos, y la función AND por conexión. La compuerta
básica inversora multicolector se muestra en la figura. Los emisores de todos los
transistores NPN del circuito se conectan juntos, mediante una resistencia, a la
tensión de alimentación, obteniéndose así las fuentes de corriente.
Se puede hacer un intercambio entre disipación de potencia y velocidad
simplemente controlando la corriente que suministra el circuito, es decir variando
esa resistencia.
Como vemos se utiliza como resistencia de carga otro transistor, con su compuerta conectada con su
drenador.
En comparación con los PMOS, los transistores NMOS son más rápidos ya que los electrones tienen más
movilidad que los huecos. La potencia disipada por éstos circuitos es un poco menor que los vistos
anteriormente, pero aún se sigue desperdiciando mucha energía. Una ventaja es que los circuitos que
utilizan transistores MOS casi no consumen corriente de entrada.
Lógica de MOS Complementario CMOS:
La lógica CMOS toma su nombre del hecho de complementar un transistor NMOS y otro PMOS, de tal
manera que cuando uno conduce, el otro no lo hace, y así disminuir notablemente el consumo de
potencia.
Análisis de las compuertas:
La compuerta inversora básica es la que se muestra en la figura:
Características notables:
• El circuito de salida en ambos estados sólo consume una pequeña
corriente de pérdida. Esto se debe a la complementariedad del circuito:
cuando la entrada está en estado BAJO sólo el transistor PMOS conduce,
y el otro presenta una alta resistencia, por lo que la salida está en ALTO;
asimismo, cuando la entrada está en estado ALTO, sólo el transistor
NMOS conduce, y el otro presenta una alta resistencia, por lo que a la
salida hay un estado BAJO.
• El transistor PMOS proporciona una resistencia activa durante las
transiciones de ALTO a BAJO en la salida, lo que las hace más rápidas.
• La compuerta tiene un elevado fan-out, debido al poco consumo de las
entradas.
Características constructivas:
Un inversor CMOS debe diseñarse para que presente un comportamiento simétrico. Esto debe
lograrse modificando las características físicas de los transistores, ya que los PMOS son más
lentos y tienen menos transconductancia que los NMOS de iguales dimensiones. Para lograr éste
objetivo se realizan los transistores PMOS de las compuertas con una capacidad de canal más
grande, de tal manera que el canal que se forme sea más ancho, y puedan pasar más portadores
por él, compensando las diferencias antes dichas.
Compuertas funcionales:
La figura que sigue muestra las compuertas CMOS NAND y NOR.
Siempre se prefiere el uso de una compuerta
NAND frente a una NOR de la misma
cantidad de entradas, porque la conexión en
serie de transistores NMOS tiene menos
resistencia que la de los PMOS, y por lo tanto
es más rápida. El fan-in de éstas compuertas
es grande, pero se ve limitado por el
corrimiento del umbral de conmutación.
Las compuertas de tecnología CMOS
presentan la característica de poder funcionar
en un amplio rango de voltajes de
alimentación (3V a 18V). El incremento de
ésta tensión dentro del intervalo proporciona
una mayor inmunidad al ruido y más rápida
respuesta, a expensas de una disipación de
potencia incrementada.
Característica de transferencia:
La curva de transferencia se muestra en la figura.
En la primera se presenta una característica ideal, es decir que en ella se ha supuesto que el
circuito logra ser simétrico, es por esto que el umbral de conmutación se muestra exactamente a
V DD / 2 . En la realidad los fabricantes especifican un rango de variación de éste umbral, debido a
las diferencias constructivas de los dispositivos. La inmunidad al ruido y los márgenes se
encuentran utilizando el peor caso de la gráfica real.
Retardos de propagación:
En la tecnología CMOS los tiempos de subida y bajada son casi iguales, si se supone simetría en
la salida de la compuerta, y su valor es proporcional a la capacitancia de carga. En la realidad el
tiempo de subida es más largo debido a la transconductancia baja del PMOS en comparación con
la del NMOS.
Disipación de potencia:
La disipación de potencia estática es mínima en CMOS, debido a la complementariedad. El
parámetro influyente en ésta tecnología es la disipación de potencia dinámica ( PD = f .C.V 2 ),
ya que la carga capacitiva es alta. A altas frecuencias, CMOS consume más potencia que TTL.
Formas de salida:
Las compuertas CMOS no permiten la función AND
alambrada. Para lograr usarla se necesita implementar una
salida de tres estados. El circuito de ésta compuerta se
muestra en la figura.