Cap´ıtulo 1
Representaci´ on digital de los datos
Conceptos b´asicos Dato
Digital
Sistema decimal Sistemas posicionales Sistema Binario
Sistemas Octal y Hexadecimal Conversiones de base
N´umeros con signo N´umeros reales Aritm´etica C´odigos
Representaci´on digital de los datos
Saber Hacer
Representar cantidades enteras en cualquier base, principalmente en binario. Seleccionar la forma de representaci´on de datos num´ericos. Representar en forma digital cualquier tipo de datos (num´ericos y no num´ericos).
1
2 CAP´ITULO 1. REPRESENTACI ´ON DIGITAL DE LOS DATOS El mundo moderno gobernado por la inform´atica, nos dice que la “informaci´on” puede ser procesada, enviada de un sitio a otro o almacenada. Lo que llamamos informaci´on puede consistir simplemente en un texto, es decir, una hilera de caracteres en una p´agina de un directorio telef´onico o puede contener im´agenes y sonido como la novedosa “multimedia”
nos tiene acostumbrados.
Dentro de este conjunto de informaci´on tambi´en se incluyen los datos num´ericos; al fin y al cabo, el computador fue conocido inicialmente por su habilidad de hacer c´alcu- los aritm´eticos. Nuestro interrogante podr´ıa ser: ¿C´omo est´an constituidas todas estas categor´ıas de datos para que sean “manipuladas” por medio de una m´aquina? ¿C´omo est´a constituida la informaci´on que maneja un tel´efono? Alguien seguramente se acordar´a, o hasta lo habr´a visto en los comerciales de los tel´efonos celulares, que algunos son digitales y otros son an´alogos o anal´ogicos. Ya lo entendimos? Seguramente que no.
Examinemos otra de estas famosas m´aquinas: la calculadora; no hay duda de que el asunto es digital puesto que los datos que manipula la calculadora est´an conformados por d´ıgitos. En una calculadora programable, una parte del teclado corresponde a las letras del alfabeto; adem´as, podemos procesar datos num´ericos, almacenar las direcciones y los tel´efonos de todos nuestros amigos.
Es muy probable que nuestra calculadora ya tenga pantalla y pueda mostrar gr´aficas.
Esta pantalla es similar a una hoja de papel cuadriculado s´olo que con los cuadritos m´as diminutos; cada cuadrito se denomina “pixel” y simplemente, el puede estar “encendido” o
“apagado”. Ha notado que cuando hacemos gr´aficas en papel milimetrado, lo que hacemos es ubicar puntos y despu´es los unimos por una l´ınea continua? Pues algo parecido hace la calculadora con las gr´aficas, s´olo que no tiene que unir la l´ınea; de eso se encarga el ojo humano si los puntos son muy peque˜nos y est´an muy cerca unos de otros.
Empezamos a concentrarnos entonces en d´ıgitos m´as peque˜nos; en este caso, los pixeles est´an “encendidos” o “apagados”; o tambi´en en 1 o en 0. A estos d´ıgitos de s´olo dos estados los llamamos “bits”, “bitios”, o d´ıgitos binarios (la palabra d´ıgito impl´ıcitamente contiene el significado de decimal o sea que puede tener 10 valores diferentes (0,1,2. . . 9).
Los bits son muy importantes en el mundo “digital” puesto que son los m´as inmediatos de representar f´ısicamente; un rel´e, por ejemplo, puede estar abierto o cerrado (los primeros computadores fueron construidos con rel´es); un transistor puede estar conduciendo o estar en corte. Queremos examinar entonces c´omo es posible la representaci´on de cualquier tipo de informaci´on a partir de los bits o d´ıgitos binarios.
1.1 DIGITAL VRS. ANAL ´OGICO
Empecemos por definir lo que es un sistema: En primer lugar, entendemos por sistema un conjunto de elementos que en forma coordinada tienen una funci´on espec´ıfica; desde el punto de vista matem´atico, un sistema es una transformaci´on ´unica u operador que relaciona o transforma una condici´on de entrada dada en una salida espec´ıfica. Un sistema cuyas se˜nales de entrada y de salida son continuas, decimos que es un sistema continuo o
1.2. SISTEMAS DE NUMERACI ´ON POSICIONALES 3 anal´ogico. E igualmente, un sistema cuyas se˜nales de entrada y de salida no son continuas, es decir discretas o muestreadas, es un sistema digital.
Estamos en el punto de partida de los sistemas digitales, los cuales se pueden definir como aquellos que manejan toda su informaci´on representada en forma digital, es decir, basada en d´ıgitos generalmente binarios. Esto nos permite ver por qu´e algunos relojes, por ejemplo, son digitales. Pero entonces, c´omo son los relojes an´alogos? Los surtidores de gasolina son digitales. Y los tel´efonos digitales?. La informaci´on procesada por los tel´efonos, es la voz humana, Esta se˜nal, como ya sabemos, es intr´ınsecamente continua (no es escalonada): una se˜nal de sonido variable en el tiempo; el tel´efono lo que hace es convertir esta se˜nal de sonido en una se˜nal de corriente el´ectrica, igualmente continua, que es equivalente o “an´aloga” a la se˜nal original.
Fundamentalmente, esto es lo que ocurre con todas las variables de un sistema f´ısico cuando les aplicamos instrumentos de medida: el instrumento de medida o transductor nos produce una se˜nal generalmente el´ectrica que es an´aloga o equivalente a la original;
esta se˜nal puede variar gradualmente sobre un intervalo continuo de valores.
La se˜nal continua descrita anteriormente se puede “discretizar”, “digitizar”, “digi- talizar” o “muestrear”, lo cual significa tomar valores o “muestras” cada cierto tiempo; algo similar hacemos cuando una se˜nal en lugar de ser representada por una gr´afica continua, es mostrada como una tabla de valores los cuales ya son digitales.
En consecuencia, el tel´efono digital trabaja con la se˜nal que representa la voz en forma digital; algo similar ocurre con los equipos de sonido digitales y con los osciloscopios digitales. El mundo real est´a fundamentalmente compuesto de se˜nales continuas que se procesan en forma digital.
1.2 SISTEMAS DE NUMERACI ´ON POSICIONALES
En un sistema de numeraci´on posicional, un n´umero se representa por una hilera de d´ıgitos, cada uno de los cuales tiene un peso asociado que depende de la posici´on que ocupe. Por ejemplo:
1734 = 1×1000 + 7×100 + 3×10 + 4×1
El peso de cada d´ıgito resulta de una potencia de 10 correspondiente a la posici´on del d´ıgito. En general, si D = d3d2d1d0d−1d−2. Entonces,
D = d3×103+ d2×102+ d1×101+ d0+ d−1×10−1+ d−2×10−2
Este sistema de numeraci´on tiene como base o ra´ız a 10 por lo cual se le denomina decimal. En general, podemos construir otros sistemas de numeraci´on tomando otras bases que deben ser n´umeros enteros.
4 CAP´ITULO 1. REPRESENTACI ´ON DIGITAL DE LOS DATOS En el sistema decimal se utilizan 10 d´ıgitos para representar las cantidades. En el sistema cuaternario, o sea el que tiene como ra´ız 4, los d´ıgitos son 0,1,2,3 (en todos los sistemas posicionales interviene el 0 lo cual contrasta con el sistema de n´umeros romanos que no tiene cero) Si vamos a contar en el sistema cuaternario, tendremos:
DECIMAL CUATERNARIO
0 0
1 1
2 2
3 3
4 10
5 11
6 12
7 13
8 20
9 21
Cuadro 1.1:
Observamos que 134 (13 en base 4) equivale a:
1×41+ 3 = 4 + 3 = 710 Por lo tanto,
312014 = 3×44+ 1×43+ 2×42+ 0×41+ 1×40= 768 + 64 + 32 + 1 = 86510
El sistema binario tiene como base 2 y sus d´ıgitos binarios (bits) son 0 y 1. Observemos como se puede contar en el sistema binario:
DECIMAL BINARIO
0 0
1 1
2 10
3 11
4 100
5 101
6 110
7 111
DECIMAL BINARIO
8 1000
9 1001
10 1010
11 1011
12 1100
13 1101
14 1110
15 1111
Cuadro 1.2:
Si con dos d´ıgitos decimales podemos contar desde 0 hasta 99, tendremos 100 = 102 cantidades diferentes; en forma an´aloga, podemos contar con 4 bits desde 0 hasta 1111, o sea 24= 16 cantidades diferentes.
1.3. REPRESENTACIONES DE CANTIDADES NUM ´ERICAS 5 Si la base es superior a 9, tendremos que usar otros d´ıgitos adicionales para los cuales se usan las letras may´usculas del alfabeto.
Por ejemplo, si la base es 16, los d´ıgitos son 0,1,2,...,9,A,B,C,D,E,F; donde A es el equivalente a 10, B a 11 y as´ı sucesivamente hasta F = 15. Este sistema de numeraci´on se denomina “hexadecimal”. En sistemas digitales el sistema de numeraci´on b´asico es el binario, pero el octal y el hexadecimal son importantes puesto que 8 y 16 son potencias de 2. Esto nos permite convertir f´acilmente de binario a octal o hexadecimal y viceversa en forma muy r´apida y obtener representaciones m´as compactas de cantidades binarias.
1.3 REPRESENTACIONES DE CANTIDADES NUM ´ERICAS
Para representar informaci´on en el computador utilizamos c´odigos, los cuales se forman a partir de un conjunto dado de s´ımbolos utilizados en forma sistem´atica y normalizada.
Un c´odigo muy conocido en nuestra vida diaria es el que se utiliza en el sem´aforo: si la luz verde est´a encendida, significa siga, si la luz roja est´a encendida, debemos detenernos;
y si la luz amarilla est´a encendida, significa precauci´on. El c´odigo Morse es otro ejemplo bien conocido en el cual utilizamos los s´ımbolos punto y raya para representar todos los caracteres del alfabeto. Este c´odigo permiti´o el env´ıo de mensajes por medio del tel´egrafo.
La informaci´on que necesitamos manipular en forma digital generalmente la clasificamos en num´erica y no num´erica. Dentro de la informaci´on num´erica a su vez podemos encontrar clasificaciones num´ericas de punto fijo y de punto flotante.
1.3.1. N´umeros de punto fijo
Los n´umeros de punto fijo se utilizan para representar ya sea enteros con signo o fracciones con signo. En ambos casos se utilizan los sistemas de magnitud y signo, de complemento de dos, o de complemento de uno para representar los valores con signo.
Los enteros de punto fijo tienen un punto binario impl´ıcito a la derecha del bit menos significativo y las fracciones de punto fijo tienen el punto binario impl´ıcito entre el bit del signo y el bit de magnitud m´as significativo. Los n´umeros en el sistema de magnitud y signo constan de una magnitud y adem´as, de un s´ımbolo que indica si la magnitud es positiva o negativa. Cuando los n´umeros son binarios se utiliza un bit adicional para representar el signo; usualmente es el bit m´as significativo.
Por ejemplo:
010101012 = +8510 110101012= −8510
011111112 = +12710 111111112= −12710
000000002 = +010 100000002= −010
En el sistema de complemento de la base, el complemento de un n´umero de n d´ıgitos se obtiene al restarlo de rn, donde r es la base. En el sistema decimal el complemento de la
6 CAP´ITULO 1. REPRESENTACI ´ON DIGITAL DE LOS DATOS base se llama complemento de 10, mientras que en el sistema binario, se llama complemento de 2.
Ejemplo:
10000 ← 104 100000 ← 25
184910→ − 1849 101012→ 10101
8151 Complemento de 10 100000 Complemento de 2 Una forma r´apida de encontrar el complemento de 2 consiste en complementar cada bit (cambiar 1 por 0 y viceversa) y sumarle uno al resultado.
11101110 Entonces, si 1710= 000100012 el complemento de 2 ser´a: +1 111011112
En el sistema de complemento de la base disminuida, el complemento de un n´umero de n d´ıgitos se obtiene al restarlo de rn− 1. En el sistema decimal el complemento de la base se llama complemento de 9; y en el sistema binario se llama complemento de 1 que se calcula r´apidamente complementando cada bit individualmente.
Entonces, si 1710= 000100012 el complemento de 1 de 1710 ser´a: 111011102
1.3.2. N´umeros de punto flotante
Para representar cantidades num´ericas que pudieran tener parte fraccionaria y con magnitud muy grande o muy peque˜na, se invent´o la codificaci´on de n´umeros de punto flotante, bas´andose seguramente en la notaci´on cient´ıfica. En general, la forma de punto flotante de un n´umero N se escribe como:
N = M × rE
En donde M, la mantisa, es un n´umero de punto fijo que contiene los d´ıgitos signi- ficativos de N. El exponente E, es un entero de punto fijo. La mantisa M, usualmente se codifica en magnitud y signo, por lo general como una fracci´on, y se puede escribir como:
M = SMan−1· · · a−m
El exponente E se codifica en el complemento de dos con exceso de -K, el cual se forma sumando un sesgo K al valor entero como complemento de 2 del exponente. Los formatos de punto flotante utilizados por los sistemas de c´omputo de los diversos fabricantes, difieren con frecuencia en la cantidad de bits que se usan para representar la mantisa y el exponente, as´ı como en el m´etodo de codificaci´on de cada uno. El est´andar 754 de 1985 del IEEE define 2 formatos de n´umeros de punto flotante, as´ı:
1.4. REPRESENTACI ´ON DE INFORMACI ´ON NO NUM ´ERICA 7 PRECISION PRECISION
SENCILLA DOBLE
Total de bits 32 64
Bits de la mantisa 23 52
Bits del exponente 8 11
Sesgo del exponente 127 1023 Cuadro 1.3:
1.4 REPRESENTACI ´ON DE INFORMACI ´ON NO NUM´ERICA En esta categor´ıa caben muchas cosas tales como el texto, las im´agenes, el sonido, etc. El tipo m´as com´un de datos no num´ericos es el texto, cadenas de caracteres de alg´un conjunto de datos. Cada car´acter est´a representado en el computador mediante una cadena de bits de acuerdo con una convenci´on establecida. El c´odigo de caracteres m´as com´unmente usado es el ASCII (American Standard Code for Information Interchange). ASCII representa cada car´acter con una cadena de 7 bits, la cual da un total de 128 caracteres diferentes.
El c´odigo BCD (Binary-Coded Decimal) sirve para representar los d´ıgitos decimales del 0 al 9 y es un ejemplo de un c´odigo ponderado, es decir, cada posici´on en el c´odigo tiene un valor o un peso num´erico asociado a ´este. El c´odigo BCD utiliza 4 bits y los pesos son los mismos que en un entero binario de 4 bits. El c´odigo BCD tambi´en es conocido como c´odigo 8-4-2-1 por los pesos utilizados. Un c´odigo c´ıclico se puede definir como un c´odigo en el que un corrimiento circular produce otra cadena del c´odigo para cualquier palabra de c´odigo. El c´odigo Gray es uno de los tipos m´as comunes de c´odigos c´ıclicos y tiene la caracter´ıstica de que las palabras de c´odigo para dos n´umeros consecutivos difieren s´olo en un bit. Es decir, la distancia entre dos palabras de c´odigo es 1. En general, la distancia entre dos palabras de c´odigo binario es igual al n´umero de bits en el que difieren las dos palabras. El c´odigo Gray es ´util donde se necesite medir u observar la posici´on de un eje circular. En la figura 1.1 observamos esta aplicaci´on en forma esquem´atica.
1.5 PROCESAMIENTO ELECTR ´ONICO DE LOS DATOS
Hasta este punto ya tenemos un panorama general de la forma como los datos pueden representarse. El t´ermino procesamiento es muy amplio e incluye actividades tales como la comunicaci´on (muy utilizada cuando enviamos un correo electr´onico), el almacenamiento, la ejecuci´on de c´alculos num´ericos, etc.
En la Figura 1.2 se muestran los elementos que intervienen en el procesamiento de los datos.
El procesador es el agente ejecutor de la actividad; puede ser una persona (en cuyo caso el proceso es manual) o puede ser un computador. Este modelo lo podemos aplicar
8 CAP´ITULO 1. REPRESENTACI ´ON DIGITAL DE LOS DATOS
Figura 1.1: Disco con c´odigo Gray.
ENTRADA DE DATOS
→
PROCESADOR→
SALIDA DE RESULTADOSFigura 1.2: Procesamiento de datos.
al computador personal, en el cual la entrada de datos se realiza mediante dispositivos como el teclado, el rat´on, etc.; y la salida de resultados se realiza por dispositivos como la pantalla y la impresora. El procesamiento lo hace la Unidad Central de Procesamiento o CPU.
Podemos pensar tambi´en, en utilizar el computador como elemento de control en un sistema. Muy seguramente la variable que se va a controlar ser´a de tipo anal´ogico, por lo cual la entrada de datos la realizar´a un dispositivo convertidor an´alogo/digital. La labor de procesamiento en este caso consistir´a en comparar la variable controlada contra el valor de referencia y emitir la se˜nal de control, obviamente digital. El m´odulo de salida ser´a entonces un convertidor digital/an´alogo.
Cap´ıtulo 2
Compuertas L´ ogicas y ´ Algebra Digital
Conceptos b´asicos Variables l´ogicas o binarias Algebra de Boole´
Leyes Booleanas
Postulados del ´Algebra Booleana Tablas de Verdad
Compuerta AND Compuerta OR Compuerta NOT Compuerta NAND Compuerta NOR Compuerta EXOR Compuerta NEXOR Tabla de Verdad
Saber Hacer
Reconocer los s´ımbolos de las operaciones l´ogicas.
Manipular ecuaciones l´ogicas usando conceptos de ´algebra booleana.
9
10 CAP´ITULO 2. COMPUERTAS L ´OGICAS Y ´ALGEBRA DIGITAL 2.1 ALGEBRA DE BOOLE
En 1854 el matem´atico ingl´es George Boole escribi´o el libro “An Investigation of the Laws of thought on which to found the Mathematical Theories of Logic and Probabilities”
, en el cual se hizo un an´alisis matem´atico de la l´ogica, que dio como resultado un nuevo campo denominado ” ´Algebra de la L´ogica”, o “ ´Algebra Booleana”.
En 1938, Claude E. Shannon, asistente de investigaci´on del Departamento de Ingenier´ıa El´ectrica del MIT (Massachussets Institute of Technology), sugiri´o la posibilidad de utilizar el ´algebra booleana en el dise˜no de circuitos de conmutaci´on basados en rel´es, con lo cual se sentaron las bases matem´aticas de los circuitos de conmutaci´on utilizados en los computadores digitales. Los estados l´ogicos y los estados de un circuito de conmutaci´on se caracterizan por las siguientes propiedades:
Existen dos estados; usualmente, “verdadero” y “falso” o “1” y ”0”.
Cualquier variable debe existir en uno de los dos estados; no se permiten otros estados.
Cualquier variable l´ogica s´olo puede tener un valor. Ninguna cantidad puede ser simult´aneamente ”verdadera” y ”falsa”.
Toda cantidad tiene un opuesto. Si la cantidad es “verdadera”, el opuesto es el inverso.
Una cantidad l´ogica puede ser una constante o una variable.
Las cantidades l´ogicas se pueden representar f´ısicamente de muchas maneras, tales como:
• El´ectricamente, con dos voltajes diferentes.
• Mec´anicamente, por la posici´on de un conmutador.
• ´Optimamente, por la presencia o ausencia de luz.
Tomando como entradas las cantidades l´ogicas, el ´algebra booleana define tres opera- ciones b´asicas que son el producto booleano, la suma booleana y el complemento. Ya en el terreno de los sistemas digitales, estas operaciones se convierten en compuertas, las cuales definimos a continuaci´on, junto con otras compuertas adicionales que son de utilidad.
2.1.1. La compuerta AND
Esta compuerta implementa el producto booleano. La compuerta AND produce una salida verdadera s´olo cuando cada una de las entradas es verdadera, tal como se muestra en la siguiente tabla de verdad:
2.1. ALGEBRA DE BOOLE 11
A B F
0 0 0
0 1 0
1 0 0
1 1 1
En ´algebra booleana, la funci´on AND se indica por medio de un punto entre las entradas (multiplicaci´on l´ogica) o por multiplicaci´on impl´ıcita como en ´algebra
F = A.B F = AB F = (A)(B)
2.1.2. La compuerta OR
Esta compuerta corresponde a la suma booleana. La Compuerta OR produce una salida verdadera cuando cualquiera de sus entradas es verdadera.
A B F
0 0 0
0 1 1
1 0 1
1 1 1
F = AorB F = A + B
2.1.3. La compuerta NOT o INVERSOR
Esta compuerta corresponde al complemento booleano. La salida de un inversor es simplemente el complemento de la entrada.
A F
0 1
1 0
F = notA F = A F = A0
2.1.4. La compuerta NAND
La salida de la compuerta NAND es el complemento de la salida de la compuerta AND
12 CAP´ITULO 2. COMPUERTAS L ´OGICAS Y ´ALGEBRA DIGITAL
A B F
0 0 1
0 1 1
1 0 1
1 1 0
F = A.B
2.1.5. La compuerta NOR
La salida de la compuerta NOR es el complemento de la salida de la compuerta OR.
A B F
0 0 1
0 1 0
1 0 0
1 1 0
F = A + B
2.1.6. Leyes Booleanas
El ´algebra Booleana satisface las siguientes leyes o axiomas:
N Algebra Ley
1 a + a = a Ley de Idempotencia
2 a×a = a
3 a + (b + c) = (a + b) + c Ley asociativa 4 a×(b×c) = (a×b)×c
5 a + b = b + a Ley conmutativa
6 a×b = b×a
7 a + (a×b) = a Ley de Absorci´on 8 a×(a + b) = a
9 a×(b + c) = (a×b) + (a×c) Ley distributiva 10 a + (b×c) = (a + b)×(a + c)
11 a + 0 = a
12 a×1 = a
13 a×a0= 0
14 a + a0 = 1
2.2. FUNCIONES DIGITALES O BOOLEANAS 13 En ´este punto conviene mencionar que ´estas leyes cumplen con el principio de du- alidad del ´algebra booleana, mediante el cual si intercambiamos suma por producto y 0 por 1, obtenemos otra ley igualmente v´alida. Obs´ervese que 1 y 2 son duales, al igual que 3 y 4, y as´ı sucesivamente.
2.1.7. Postulados del ´algebra booleana
Los siguientes postulados son de bastante utilidad en la manipulaci´on de expresiones algebraicas.
A + A = 1 A,0 = 0 A + AB = A + B
A.A = 0 A,1 = A (A + B).(A + C) = A + B.C
A.A = A A + 0 = A (A + B).B = B
A + A = A A + 1 = 1 A.B + A.C = A.(B + C)
A + B = B + A A + A = A A.B = B.A
A = A A + AB = A
Teorema de DeMorgan:
(A.B) = A + B (A + B) = A.B
2.2 FUNCIONES DIGITALES O BOOLEANAS
Las expresiones booleanas est´an conformadas por variables, constantes y operaciones booleanas. Si agregamos los par´entesis como ayuda para significar agrupaci´on, obtenemos la idea m´as general de expresi´on, por el estilo de las que utilizamos en los lenguajes de programaci´on. Por ejemplo,
a.x1.(b + (x1.x2))
Es una expresi´on booleana, siempre y cuando a, b, x1, x2 sean variables booleanas.
Las expresiones boolenas tambi´en se denominan funciones booleanas. Para n variables
booleanas, y utilizando la notaci´on matem´atica de funci´on, tendr´ıamos que f (x1, x1, x3, x4, · · · , xn) representar´ıa una funci´on booleana que contendr´a en su definici´on las n variables booleanas
y tambi´en los operadores booleanos.
Tomemos como ejemplo un sumador de 4 bits, representado como se muestra a contin- uaci´on:
Las se˜nales de entrada son dos n´umeros binarios de 4 bits cada uno, y la respuesta es un n´umero binario de 5 bits.
Para definir la funci´on digital se puede utilizar una tabla que contiene todas las com- binaciones posibles de las variables de entrada y define para cada posible combinaci´on el
14 CAP´ITULO 2. COMPUERTAS L ´OGICAS Y ´ALGEBRA DIGITAL
Figura 2.1: Sumador de 4 bits
valor de la funci´on. Para ´este caso la tabla tendr´ıa 28 filas, dado que son 8 variables de entrada, cada una de las cuales puede tener 2 valores diferentes. Estas tablas se denominan tablas de la verdad.
Cap´ıtulo 3
Circuitos B´ asicos de 2 Niveles
Conceptos b´asicos Tabla de verdad
Especificaci´on de un circuito Forma can´onica de una ecuaci´on Notaci´on POS
Notaci´on SOP
Implementaci´on de un circuito usando compuertas b´asicas
Saber Hacer
Saber expresar en forma de tabla de verdad una especificaci´on en lenguaje natural de un circuito l´ogico.
Obtener de la tabla de verdad la ecuaci´on can´onica del circuito.
15
16 CAP´ITULO 3. CIRCUITOS B ´ASICOS DE 2 NIVELES 3.1 FORMA “SUMA DE PRODUCTOS”
Supongamos que existe una red digital cuya operaci´on es definida por la tabla siguiente:
A B C F
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 0
1 1 1 1
Cuadro 3.1:
Asumiendo que el estado verdadero de una variable es 1 y el estado complementario es 0, directamente podemos escribir la siguiente expresi´on booleana:
F = ABC + ABC + AB C + ABC (3.1)
Esta forma de ecuaci´on, una serie de productos (AND) conectado por la suma (OR), la llamamos suma de productos (SOP).
3.1.1. Implementaci´on de un Circuito SOP
Una expresi´on en forma SOP puede convertirse f´acilmente en un diagrama l´ogico. El diagrama l´ogico que implementa la ecuaci´on anterior es:
N´otese la naturaleza de dos niveles del diagrama l´ogico. Cuando se asume que tanto la variable como su complemento est´an disponibles (como es casi siempre el caso), llamamos a ´estas de doble riel.
3.1.2. Forma Normal
Una ecuaci´on SOP en la que cada producto contiene todas las variables de entra- da ya sea en forma verdadera o en forma complementada, est´a en forma NORMAL o CAN ´ONICA.
Una ecuaci´on en forma normal no necesariamente es la m´as simple o la ´unica ecuaci´on para evaluar una funci´on booleana en particular. Por ejemplo, la siguiente ecuaci´on es equivalente a la dada anteriormente.
F = AB + AB C + BC (3.2)
3.1. FORMA “SUMA DE PRODUCTOS” 17
Figura 3.1: Diagrama l´ogico de un SOP
Observe que esta ecuaci´on no est´a en forma normal. Aun cuando puedan existir varias ecuaciones para una funci´on dada, s´olo existir´a una forma normal. Para convertir una ecuaci´on a forma normal, debemos “multiplicar” los t´erminos a los que les falte una variable por la variable faltante, as´ı:
F = AB(1) + AB C + (1)BC (3.3)
Se sabe que X + X = 1. Por lo tanto,
F = AB(C + C) + AB C + (A + A)BC (3.4)
de donde,
F = ABC + ABC + AB C + ABC + ABC (3.5)
F = ABC + AB C + ABC + ABC (3.6)
18 CAP´ITULO 3. CIRCUITOS B ´ASICOS DE 2 NIVELES 3.1.3. Mint´erminos
Observando la tabla 3.1 vemos que cada combinaci´on de variables de entrada forma un valor binario entre 0 y 2N− 1 en donde N es el n´umero de variables de entrada.
Puesto que cada combinaci´on posible de variables de entrada forma un valor binario
´
unico, una combinaci´on de entrada puede representarse por el valor decimal equivalente al valor binario formado por las entradas. A este valor lo llamamos n´umero mint´ermino.
Por ejemplo, cu´al combinaci´on de entrada representa el mint´ermino 5 (m5)?
Asumiendo las tres variables de entrada usadas anteriormente:
5 decimal = 101 binario ABC
Cu´al combinaci´on representa el mint´ermino 2?
2 decimal = 010 binario ABC Cu´al mint´ermino corresponde a ABC?
ABC 110 binario = 6 decimal
Usando mint´erminos, la ecuaci´on 3.1 la podemos escribir como:
F = m2+ m3+ m4+ m7 (3.7)
Esta ecuaci´on tambi´en la podemos representar simplificadamente como:
F =X
m(2, 3, 4, 7) (3.8)
3.2 FORMA “PRODUCTO DE SUMAS”
Mientras que la ecuaci´on SOP es una serie de productos conectados por suma, la ecuaci´on POS (Productos de sumas) es una serie de sumas (OR) conectadas por la mul- tiplicaci´on (AND). Para formular una ecuaci´on POS, decimos que la salida de una red digital ser´a 1 solamente cuando no sea 0. En la tabla 3.1, la salida es igual a 0 para los mint´erminos 0,1,5 y 6. Por lo tanto,
F = m0 m1 m5 m6 (3.9)
Veamos qu´e significa un mint´ermino complementado:
m5= ABC de donde
m5= ABC
3.2. FORMA “PRODUCTO DE SUMAS” 19 si aplicamos el teorema de DeMorgan:
m5 = (A + B + C) = (A + B + C) de esta forma podemos escribir:
F = (A + B + C)(A + B + C)(A + B + C)(A + B + C)
El procedimiento lo podemos resumir de la siguiente forma: La ecuaci´on POS ser´a el producto l´ogico de N t´erminos de suma en donde N es el n´umero de entradas en la tabla de verdad para los cuales la salida es 0. Los t´erminos de suma se forman conectando con OR los complementos de cada variable de entrada para aquellas combinaciones cuya funci´on de salida es 0.
3.2.1. Implementaci´on del Circuito POS El proceso es similar al de una ecuaci´on SOP:
Figura 3.2: Diagrama l´ogico de un POS
3.2.2. Maxt´erminos
Cuando derivamos la ecuaci´on POS, usamos los mint´erminos invertidos. Un mint´ermino invertido se llama maxt´ermino.
20 CAP´ITULO 3. CIRCUITOS B ´ASICOS DE 2 NIVELES
F = m0 m1 m5 m6
Esta ecuaci´´ on la podemos escribir en forma simplificada as´ı:
F =Y
m(0, 1, 5, 6) (3.10)
3.3 CONSIDERACIONES DE DISE ˜NO
Aunque las implementaciones SOP se usan m´as frecuentemente, existen aplicaciones para las cuales es m´as conveniente la implementaci´on POS. Por ejemplo, consideremos una red digital con tres entradas para la cual la salida es 1 para seis de las ocho posibles combinaciones de entrada. Expresada en forma SOP, la ecuaci´on resultante tendr´ıa 6 t´erminos y el circuito requerir´ıa seis compuertas AND y una compuerta OR de 6 entradas.
Una implementaci´on POS del mismo circuito tendr´ıa solamente 2 t´erminos y requerir´ıa solo dos compuertas OR y una compuerta AND de dos entradas.
.
Cap´ıtulo 4
Simplificaci´ on de Circuitos
Conceptos b´asicos
Minimizaci´on por m´etodo algebraico Minimizaci´on por tabla de Karnaugh Condiciones No Importa
Compuertas universales
Implementaci´on con compuertas universales
Saber Hacer
Obtener la funci´on minimizada a partir de la ecuaci´on can´onica.
Implementar la ecuaci´on minimizada utilizando compuertas universales
21
22 CAP´ITULO 4. SIMPLIFICACI ´ON DE CIRCUITOS 4.1 T´ECNICAS DE REDUCCI ´ON DE EXPRESIONES
Las t´ecnicas estudiadas en el capitulo 3 redujeron los requerimientos de hardware im- plementando expresiones con solo un tipo de compuerta. Se pueden lograr reducciones adicionales simplificando la ecuaci´on original antes de intentar implementarla. Esta reduc- ci´on se ejecuta t´ıpicamente por manipulaci´on algebraica o con los mapas de Karnaugh.
4.1.1. REDUCCI ´ON ALGEBRAICA
En el cap´ıtulo 3 convertimos una expresi´on a su forma normal multiplicando por las variables faltantes y sus complementos. Si pensamos en forma inversa, es decir, si remove- mos esas combinaciones de la ecuaci´on en forma normal, resultar´a la ecuaci´on original m´as simple. Esta es la base de la reducci´on de expresiones: remover las combinaciones de una variable y su complemento. Considere la siguiente ecuaci´on, la cual ya est´a en forma simplificada:
F = BC + AB (4.1)
La convertimos en forma normal multiplicando por las variables faltantes y sus respec- tivos complementos:
F = (A + A)BC + AB(C + C)
F = ABC + ABC + ABC + AB C (4.2)
Si se diera esta ecuaci´on final en forma normal y se pidiese reducirla a su forma m´as simple, ¿c´omo se har´ıa?
Puesto que nosotros la derivamos de la ecuaci´on original, el proceso es obvio. Los primeros dos t´erminos de la ecuaci´on en forma normal fueron generados por:
ABC + ABC = (A + A)BC (4.3)
y los dos ´ultimos por:
ABC + AB C = AB(C + C) (4.4)
puesto que la uni´on de cualquier variable con su complemento es 1, esta combinaci´on se puede eliminar produciendo la ecuaci´on original:
F = BC + AB (4.5)
4.1. T ´ECNICAS DE REDUCCI ´ON DE EXPRESIONES 23 El proceso empleado aqu´ı es sencillo. Si en dos t´erminos una variable aparece tanto en su forma verdadera como complementada y las variables restantes son iguales, se puede eliminar la variable y su respectivo complemento y el resultado es simplemente un t´ermino compuesto de las variables restantes.
Para ilustrar adicionalmente el proceso, simplifiquemos la siguiente expresi´on:
F = A BC + ABC + ABC + ABC (4.6)
En los dos primeros t´erminos, B est´a presente tanto en su forma normal como com- plementada y las variables restantes son iguales. Por lo tanto, los primeros dos t´erminos pueden reducirse a:
A BC + ABC = A(B + B)C = AC (4.7)
En los dos ´ultimos t´erminos, B nuevamente est´a presente tanto en su forma normal como complementada. Por lo tanto,
ABC + ABC = A(B + B)C = AC (4.8)
Produciendo una expresi´on reducida:
F = AC + AC (4.9)
Si examinamos la ecuaci´on vemos que la podemos simplificar a´un m´as. Puesto que A aparece tanto en su forma verdadera como complementada, podemos reducirla a:
AC = AC = (A + A)C = C (4.10)
F = C (4.11)
Por lo tanto, el hardware necesario para implementar esta funci´on es simplemente un cable que conecta a C con la salida F.
La simplificaci´on posible y la reducci´on resultante en los requerimientos de hardware son obvias. Pero la reducci´on algebraica es a menudo dif´ıcil, especialmente en expresiones complejas. La secuencia apropiada de operaciones que debe ejecutarse no siempre es clara.
Pero as´ı como en el cap´ıtulo 3 se utiliz´o un m´etodo gr´afico para implementar circuitos con un solo tipo de compuerta, de igual modo existe un m´etodo gr´afico para facilitar la reducci´on de expresiones.
24 CAP´ITULO 4. SIMPLIFICACI ´ON DE CIRCUITOS 4.1.2. MAPAS DE KARNAUGH
Los mapas de Karnaugh son un m´etodo gr´afico para reducir expresiones a su forma m´ınima. Un mapa K es una tabla de verdad organizada especialmente de tal modo que las reducciones posibles se puedan ver f´acilmente. En las figuras 4-1, 4-2 y 4-3 se muestra la forma de los mapas K de dos, tres y cuatro entradas. En lugar de enunciar todas las combinaciones de las entradas como en una tabla de verdad normal, los mapas K usan las posiciones de los cuadros en el mapa para representar las diferentes combinaciones de entrada:
0 1
0
3 2
1
0 1
@
@
@ A
B
Figura 4.1: Mapa K de 2 entradas
0 1 3 2
0
4 5 7 6
1
00 01 11 10
@
@
@ A
BC
Figura 4.2: Mapa K de 3 entradas
0 1 3 2
00
4 5 7 6
01
12 13 15 14
11
8 9 11 10
10
00 01 11 10
@
@
@ AB
CD
Figura 4.3: Mapa K de 4 entradas
Para ayudar en la determinaci´on de cu´al combinaci´on de entrada est´a representada en un cuadro, las filas y las columnas est´an marcadas con la combinaci´on parcial de entrada representada por la fila y la columna. Por ejemplo, cu´al combinaci´on de entrada
4.1. T ´ECNICAS DE REDUCCI ´ON DE EXPRESIONES 25 est´a representada por el cuadro en la fila 2, columna 4 del mapa K de 4 entradas? La fila 2 est´a marcada 01; la columna 4 est´a marcada 10. Colocando estos dos valores uno junto al otro en orden fila-columna, se produce 0110, el cual es el mint´ermino 6 o AB CD . El cuadrado en la fila 3 columna 2 representa 1101, el cual es el mint´ermino 13 o ABCD.
Observando m´as profundamente vemos que la etiqueta 00 en la fila 1 indica que A y B son ambos 0 para toda la fila. De igual forma, la etiqueta 10 en la columna 4 indica que C es 1 y D es 0 para toda la columna.
Para representar una funci´on con un mapa K, los unos y los ceros se colocan en los cuadrados apropiados de acuerdo con la combinaci´on de entradas representada por cada cuadro.
El arreglo especial del mapa K asegura que las combinaciones de entrada representadas por dos cuadrados adyacentes son id´enticas excepto que una variable aparece en su forma verdadera en un cuadrado y en su forma complementada en el otro. N´otese que ´este es simplemente el criterio especificado en la secci´on 4.1.1 para la reducci´on de dos t´erminos.
Por lo tanto, dos cuadrados adyacentes pueden ser elegibles para ser reducidos.
Esta relaci´on puede verse mirando dos cuadros adyacentes en un mapa K. Por ejemplo, considere los dos primeros cuadrados de la fila 1 de un mapa K de 4 entradas. El primer cuadrado representa la combinaci´on de entrada 0000, o A B C D . El segundo cuadrado representa la combinaci´on de entrada 0001, o A B CD. Entre estos dos t´erminos, todo es id´entico excepto que D aparece en su forma verdadera en el segundo cuadro y en su forma complementada en el primer cuadro. N´otese que esta relaci´on se mantiene entre dos cuadrados adyacentes cualquiera, tomados ya sea horizontal o verticalmente. Adem´as, la relaci´on se mantiene entre los lados exteriores (es decir, fila 1, cuadro 1 y 4 o columna 1, filas 1 y 4, etc.); por lo tanto, los lados extremos son considerados adyacentes.
Uso de los mapas de KARNAUGH
Para usar un mapa K en la reducci´on, primero llene el mapa K con la salida de la funci´on. La tabla de verdad normal para la ecuaci´on 4.2 se muestra en la figura 4.4, en donde tambi´en se ha diligenciado el mapa K.
A B C F
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 0
1 1 1 1
0
0
0
1
1
3
0
2
0 1
4
1
5
1
7
0
6
1
00 01 11 10
@
@
@ A
BC
Figura 4.4:
26 CAP´ITULO 4. SIMPLIFICACI ´ON DE CIRCUITOS Puesto que los cuadrados adyacentes representan t´erminos que pueden ser reducidos, busque y encierre grupos de los unos adyacentes. Un grupo debe constar de 1,2,4,8 ´o 16 unos, es decir, una potencia de 2.
En general, entre mayor sea el grupo encerrado, m´as sencilla ser´a la expresi´on reducida.
Por lo tanto, primero busque grupos de 16 (no aplicable en este ejemplo, por supuesto) y luego siga buscando grupos de 8, de 4, de 2 y finalmente, los unos aislados, hasta que los haya agrupado a todos. Este proceso se muestra en la figura 4.5
0
0
0
1
1
3
0
2
0 1
4
1
5
1
7
0
6
1
00 01 11 10
@
@
@ A
BC
Figura 4.5:
La expresi´on resultante SOP constar´a de un t´ermino por cada grupo encerrado. Por lo tanto, entre menos grupos encerrados, m´as simple ser´a la expresi´on.
En el mapa K de la figura 4.5, obtuvimos 2 grupos.
El producto resultante para cada grupo estar´a compuesto de aquellas variables que son iguales para todo el grupo. Por ejemplo, para el grupo vertical, tanto B como C son 1 para todo el grupo; por lo tanto, el t´ermino producto resultante es BC. En el grupo horizontal, A es 1 en ambos cuadros y B es 0 en ambos cuadros. Por consiguiente, el producto resultante ser´a AB. Combinando ambos resultados obtendremos:
F = AC + AB (4.12)
Como segundo ejemplo, reduzcamos la ecuaci´on 4.6 usando mapas K. En la figura 4.6 aparece la tabla de verdad normal y el mapa K resultante.
0
0
1
1
1
3
0
2
0 0
4
1
5
1
7
0
6
1
00 01 11 10
@
@
@ A
BC
'
&
$
%
Figura 4.6:
Si se buscan inicialmente grupos de 8, no encontramos ninguno; si se buscan grupos de 4, encontraremos uno de acuerdo con la figura 4.6.
4.1. T ´ECNICAS DE REDUCCI ´ON DE EXPRESIONES 27 Puesto que ya hemos encerrado todos los unos, no es necesario seguir buscando m´as grupos. La ecuaci´on resultante SOP tendr´a solamente un t´ermino, en el cual aparecen s´olo aquellas variables que no cambian para todo el grupo. Vemos que solamente C es igual a 1 para los cuatro cuadros. Por lo tanto, la expresi´on final reducida es:
F = C (4.13)
Como ejemplo final, miremos un caso m´as complejo. En la figura 4.7 tenemos la tabla de verdad y el mapa K para un circuito de 4 entradas.
0
0
1
1
0
3
0
2
00 1
4
0
5
1
7
1
6
01 1
12
0
13
0
15
1
14
11 0
8
1
9
0
11
0
10
10
00 01 11 10
@
@
@ AB
CD
'
&
$
%
Figura 4.7:
La figura 4.7 ilustra c´omo reducir ´esta funci´on. Seg´un se ve, puede formarse un grupo de 4 partiendo del hecho de que los v´ertices extremos son considerados adyacentes. N´otese una segunda aplicaci´on del enrollamiento al formar el grupo de los unos entre las filas superior e inferior. Finalmente, n´otese el grupo de dos unos, uno usando un 1 que ya hab´ıa sido utilizado.
El resultado constar´a de 3 t´erminos puesto que tenemos tres grupos encerrados. Mirando el primer grupo de 4, vemos que B y D permanecen constantes. Para el grupo vertical de 2, B es 0, C es 0 y D es 1. En el grupo final de 2, A es 0, B es 1 y C es 1. Por lo tanto, el resultado es:
F = BD + B CD + ABC (4.14)
Condiciones “No Importa”
Muchas funciones tienen varias combinaciones de entrada para las cuales no se define ninguna salida. Estas se denominan condiciones “no importa”.
En un mapa K, una condici´on “no importa” puede usarse como 0 o como 1, lo cual resulta en una expresi´on m´as simple.
28 CAP´ITULO 4. SIMPLIFICACI ´ON DE CIRCUITOS Tomemos como ejemplo la red definida por la tabla de verdad que se muestra en la tabla 4.1.
Esta red toma un d´ıgito BCD de 4 bits como entrada. La salida es 1 si el d´ıgito es mayor que 5; de otra forma, la salida es 0. Puesto que es BCD, las entradas v´alidas corresponden a los d´ıgitos decimales entre 0 y 9; por lo tanto, los mint´erminos 10 a 15 son considerados como condiciones “no importa” y los marcamos con una X.
A B C D F
0 0 0 0 0
0 0 0 1 0
0 0 1 0 0
0 0 1 1 0
0 1 0 0 0
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 X
1 0 1 1 X
1 1 0 0 X
1 1 0 1 X
1 1 1 0 X
1 1 1 1 X
Cuadro 4.1:
El mapa K para esta tabla lo vemos en la figura 4.8
0
0
0
1
0
3
0
2
00 0
4
0
5
1
7
1
6
01 X
12
X
13
X
15
X
14
11 1
8
1
9
X
11
X
10
10
00 01 11 10
@
@
@ AB
CD
Figura 4.8:
Observemos que en la figura se han encerrado dos grupos, para los cuales la expresi´on resultante es:
4.2. IMPLEMENTACI ´ON CON UN TIPO DE COMPUERTA 29
F = A B C + A B C (4.15)
Puesto que las X las podemos tomar como 0. As´ı como el 1, podemos formar grupos seg´un se muestra en la figura 4.9
0
0
0
1
0
3
0
2
00 0
4
0
5
1
7
1
6
01 X
12
X
13
X
15
X
14
11 1
8
1
9
X
11
X
10
10
00 01 11 10
@
@
@ AB
CD
'
&
$
% '
&
$
%
Figura 4.9:
Ahora tenemos un grupo de 8 y un grupo de 4. La ´unica variable com´un a todos los t´erminos del grupo de 8 es A; las variables comunes al grupo de 4 son B y C.
Por lo tanto, la expresi´on resultante es:
F = A + BC (4.16)
El uso de condiciones “no importa” t´ıpicamente nos permite la reducci´on adicional tal como se ha demostrado.
4.2 IMPLEMENTACI ´ON CON UN TIPO DE COMPUERTA
4.2.1. MOTIVACI ´ON
En la industria, el costo es t´ıpicamente el factor de m´erito en el dise˜no y la produc- ci´on de bienes. En la producci´on de circuitos digitales, aun cuando pueda parecer que el departamento de compras es el responsable de reducir los costos buscando el proveedor m´as barato, los ingenieros que dise˜nan los circuitos digitales tienen varios m´etodos a su disposici´on para reducir el costo del dise˜no.
En general, entre m´as pocas y m´as baratas sean las partes requeridas para construir un circuito, menor ser´a el costo. Por lo tanto, un objetivo importante en el dise˜no de un circuito, es minimizar el n´umero de elementos y su costo asociado.
30 CAP´ITULO 4. SIMPLIFICACI ´ON DE CIRCUITOS Para ilustrar lo anterior, nos remitimos al cap´ıtulo dos en el cual se introdujeron algunas ideas para convertir una expresi´on POS a SOP en un diagrama l´ogico. Por ejemplo, dada la siguiente expresi´on SOP:
F = AB + CD (4.17)
La implementaci´on de este circuito requiere dos compuertas AND y una compuerta OR. Los chips requeridos son el 7408 (cuatro ANDs) y el 7432 (cuatro ORs). La imple- mentaci´on de las expresi´on dada utiliza s´olo dos de los cuatro compuertas AND y s´olo una de las cuatro compuertas OR. En la producci´on, este tipo de ineficiencia ser´ıa muy costosa.
Para obviar la ineficiencia, se acostumbra implementar una expresi´on que use solamente un tipo de compuerta, compuertas NAND o NOR. La compuerta NAND es la funci´on cuya implementaci´on es m´as “natural” a nivel interno del chip. Esta cualidad hace que la com- puerta NAND sea la m´as r´apida y la m´as barata de los chips TTL. Adem´as, las compuertas NAND y NOR pueden actuar como inversores, eliminando la necesidad de chips inversores separados.
¿C´omo puede realizarse una expresi´on en t´erminos de AND y OR utilizando solamente compuertas NAND o NOR? Existen dos m´etodos primarios para realizar esto. Primero, usando el algebra booleana. La expresi´on original puede ser manipulada y convertida en una expresi´on equivalente que utilice el tipo de compuerta deseada. Este m´etodo puede volverse extremadamente complicado, especialmente cuando se trata de expresiones exten- sas. El segundo m´etodo utiliza reglas de equivalencia de compuertas, las cuales permiten que cualquier compuerta desempe˜ne las funciones AND y OR.
4.2.2. MANIPULACI ´ON ALGEBRAICA
Las leyes del ´algebra booleana nos permiten convertir una expresi´on booleana en una ex- presi´on equivalente que sea directamente implementable con el tipo de compuerta deseada.
Por ejemplo, consideremos la implementaci´on de la ecuaci´on 4.17 utilizando solamente compuertas NAND. La funci´on de la compuerta NAND sobre dos entradas, A y B, se representa como:
F = AB (4.18)
Por lo tanto, para implementar una expresi´on usando s´olo compuertas NAND, el ob- jetivo es reducir todas las operaciones l´ogicas a la forma anterior, es decir, a la de una compuesta NAND.
4.2. IMPLEMENTACI ´ON CON UN TIPO DE COMPUERTA 31 De nuestra expresi´on original:
F = AB + CD (4.19)
aplicamos doble inversi´on y el teorema de DeMorgan
F = AB + CD (4.20)
F = (AB).(CD) (4.21)
examinado esta expresi´on encontramos tres formas NAND:
1. (AB) 2. (CD) 3. XY
en donde X y Y corresponden a las expresiones 1 y 2. Por lo tanto, la expresi´on puede realizarse como sigue:
Figura 4.10:
´?C´omo se puede implementar la ecuaci´on 4.17 usando compuertas NOR? Recordemos que la funci´on NOR sobre dos entradas es:
F = A + B (4.22)
si tomamos la ecuaci´on original,
F = AB + CD (4.23)
si invertimos dos veces y aplicamos DeMorgan:
32 CAP´ITULO 4. SIMPLIFICACI ´ON DE CIRCUITOS
F = AB + CD (4.24)
F = (A + B) + (C + D) (4.25)
en esta expresi´on encontramos dos formas NOR:
1. (A + B) 2. (C + D)
Finalmente, la funci´on l´ogica final entre 1 y 2 es la funci´on OR, la cual se puede obtener invirtiendo la salida de la NOR
Figura 4.11:
Como puede observarse, este m´etodo puede llegar s ser muy complejo y en consecuencia, la probabilidad de error es alta.
4.2.3. EQUIVALENCIAS DE COMPUERTAS
El ´algebra booleana se compone solamente de tres operadores: AND, OR y NOT.
Cualquier expresi´on puede implementarse usando las combinaciones de estas tres fun- ciones. Para implementar un circuito con un solo tipo de compuerta se deben ejecutar tres operaciones de alg´un modo.
Ejecutando la funci´on NOT con NAND y NOR
NAND y NOR pueden funcionar como inversores uniendo las entradas
Ejecutando la funci´on AND con NAND y NOR
Por medio de las transformaciones booleanas podemos determinar c´omo ejecutar la funci´on AND con compuertas NAND o NOR.
4.2. IMPLEMENTACI ´ON CON UN TIPO DE COMPUERTA 33
Figura 4.12:
La funci´on AND sobre dos entradas se ilustra en el algebra booleana como:
F = AB (4.26)
La funci´on NAND se expresa como:
G = AB F = G (4.27)
Esta ecuaci´on puede reducirse a la funci´on AND complementando la ecuaci´on para re- mover el NOT. Por lo tanto, la compuerta NAND ejecutar´a la funci´on AND si invertimos la salida.
La funci´on NOR sobre dos entradas es:
F = A + B (4.28)
si aplicamos el teorema de DeMorgan, obtenemos
F = A B A = C B = D (4.29)
En resumen, una compuerta NAND ejecutar´a la funci´on AND si invertimos la salida.
Una compuerta NOR ejecutar´a la funci´on AND si invertimos las entradas.
Ejecutando la funci´on OR con NAND y NOR
La funci´on OR sobre dos entradas la representamos como
F = A + B (4.30)
La funci´on NAND se expresa como
F = CD (4.31)
34 CAP´ITULO 4. SIMPLIFICACI ´ON DE CIRCUITOS si aplicamos el teorema de DeMorgan:
F = C D A = C B = D (4.32)
Por lo tanto, una compuerta NAND ejecuta la funci´on OR si se complementan las variables de entrada.
La funci´on NOR sobre dos entradas es:
G = A + B F = G (4.33)
La cual puede reducirse a la funci´on OR complementando toda la ecuaci´on. Por lo tanto, la compuerta NOR ejecuta la funci´on OR si se complementa la salida.
Definiciones simb´olicas
Para clarificar la doble naturaleza de las compuertas, se puede representar simb´olica- mente, de dos formas. En las figuras 4.13 y 4.14 se muestran dos representaciones de la compuerta NAND y dos representaciones de la compuerta NOR, respectivamente.
Notamos que la presencia de un c´ırculo a la entrada indica que la entrada debe ser invertida para ejecutar apropiadamente la funci´on dictada por la forma del s´ımbolo, es decir, la funci´on AND y OR.
Adem´as, la presencia de un c´ırculo a la salida indica que ´esta debe invertirse para ejecutar apropiadamente la funci´on dictada por la forma del s´ımbolo.
Figura 4.13: Representaciones de la compuerta NAND
Figura 4.14: Representaciones de la compuerta NOR
4.2. IMPLEMENTACI ´ON CON UN TIPO DE COMPUERTA 35 Entradas y Salidas activo alto y activo bajo
Para definir a´un m´as el significado de los c´ırculos en los s´ımbolos de las compuertas, podemos decir que una compuerta con un c´ırculo a la salida tiene una salida ACTIVA BAJA. Una compuerta con c´ırculos en la entrada tiene entradas ACTIVAS BAJAS. De igual manera, una compuerta sin c´ırculo a la salida tiene salida ACTIVA ALTA y una compuerta sin c´ırculos a la entrada tiene entradas ACTIVAS ALTAS.
Por ejemplo, la forma AND de la compuerta NAND se puede pensar como una compuer- ta AND con entradas activas altas y la salida activa baja. La forma OR de la compuerta NAND se puede pensar como una compuerta OR con entradas activas bajas y la salida activa alta.oo
El t´ermino activo alto se refiere a niveles l´ogicos como los que hemos mencionado has- ta ahora: un verdadero se representa por un nivel l´ogico alto. Activo bajo indica que un verdadero es representado por un nivel l´ogico bajo en lugar de un nivel l´ogico alto. Para ilustrar esto, consideremos la ejecuci´on de la funci´on AND con la compuerta NAND. La funci´on AND produce una salida verdadera solamente cuando todas las entradas son ver- daderas. Si miramos la forma AND de la compuerta NAND, vemos que tambi´en ejecuta la funci´on AND pero como tiene una salida activa baja, el valor verdadero ser´a indicado por un nivel l´ogico bajo en lugar de un nivel l´ogico alto. Por lo tanto, para ver una salida activa alta normal, debemos invertir la salida de una compuerta NAND.
4.2.4. DISE ˜NO DE DIAGRAMAS L ´OGICOS QUE UTILIZAN EQUIV- ALENCIAS DE COMPUERTAS
Teniendo en mente el concepto de equivalencias de compuertas, veremos a continuaci´on el dise˜no de diagramas l´ogicos. Seg´un las gu´ıas del cap´ıtulo ??, el diagrama l´ogico para implementar la ecuaci´on 4.17 es como sigue:
Figura 4.15:
36 CAP´ITULO 4. SIMPLIFICACI ´ON DE CIRCUITOS
Dise˜no de diagramas que utilizan compuertas NAND
Este diagrama se convierte s´olo a compuertas NAND reemplazando inicialmente todas las compuertas OR con la forma OR de la compuerta NAND y posteriormente, todas las compuertas AND con la forma AND de la compuerta NAND. No dibujar todav´ıa ninguna conexi´on.
Figura 4.16:
Puesto que tratamos con entradas y salidas activas altas en el mundo real, las entradas iniciales y salidas finales generalmente deben ser activas altas. Si miramos la figura 4.16 vemos que esta condici´on ya est´a satisfecha. La siguiente etapa consiste en conectar los s´ımbolos AND y OR. Puesto que la forma OR de la compuerta NAND requiere entradas activas bajas y que la salida de la forma AND ya es activa baja, no se necesita conversi´on de nivel y puede hacerse la conexi´on directa entre las salidas de las formas AND y las entradas de la forma OR. En general, puede hacerse una conexi´on directa entre una salida y una entrada, ambas activas bajas, o entre una salida y una entrada, ambas activas altas.
Si una es activa baja y la otra es activa alta, debemos utilizar un inversor. Haciendo las conexiones como se ha descrito, el diagrama l´ogico final es como sigue:
Figura 4.17:
N´otese que al usar las formas AND y OR de las compuertas NAND, es mas obvia la funci´on del circuito. Mirando la figura 4.17, vemos r´apidamente que es una implementaci´on SOP, mientras que si vemos el circuito equivalente de la figura 4.10, encontramos que la funci´on real del circuito no es clara.
4.2. IMPLEMENTACI ´ON CON UN TIPO DE COMPUERTA 37
El segundo ejemplo muestra un caso en el que se necesita una conversi´on de nivel.
Tomemos la implementaci´on de una compuerta OR de tres entradas usando solamente compuertas NAND de dos entradas. Si se dispone de compuertas OR de dos entradas, esta funci´on se podr´ıa implementar como sigue:
Figura 4.18:
Para implementar solamente con compuertas NAND de dos entradas, procedemos como antes reemplazando las compuertas OR con la forma OR de la compuerta NAND, as´ı:
Figura 4.19:
Para completar el diagrama debemos asegurarnos que hay entradas y salidas activas altas. Puesto que las entradas de las formas OR son activas bajas, debemos invertir las variables de entrada. Si suponemos entradas de doble riel, no mostramos los inversores de entrada. La salida final del circuito ya es activa alta, por lo cual no necesitamos conversi´on.
La conversi´on final se realiza entre la primera y la segunda formas OR, en donde vemos que es necesario un inversor.
Figura 4.20:
38 CAP´ITULO 4. SIMPLIFICACI ´ON DE CIRCUITOS
DISE ˜NO DE DIAGRAMAS L ´OGICOS QUE UTILIZAN COMPUERTAS NOR Al igual que con las compuertas NAND, el primer paso para implementarlas usando solamente compuertas NOR, es reemplazar todas las compuertas OR con la forma OR de la compuerta NOR y todas las compuertas AND con la forma AND de la compuerta NOR. Con la figura 4.14 obtendremos:
Figura 4.21:
Si hacemos las mismas consideraciones de niveles activos alto y activos bajos, finalmente obtendremos:
Figura 4.22:
.
Cap´ıtulo 5
Aplicaciones Combinacionales
Conceptos b´asicos Multiplexores
Demultiplexores Sumadores Codificadores Comparadores
Convertidores de C´odigo Circuitos MSI
Saber Hacer
Conocer y saber utilizar las aplicaciones m´as importantes de tipo combinacional, tales como mux, demux, sumador, comparador, convertidores de c´odigo.
39
40 CAP´ITULO 5. APLICACIONES COMBINACIONALES 5.1 MULTIPLEXORES Y DEMULTIPLEXORES
5.1.1. Definici´on
Nuestro estudio previo de las bases de la l´ogica digital y de dise˜no de circuitos, nos permiti´o entender y dise˜nar algunos circuitos importantes. En este cap´ıtulo estudiaremos dos de esos circuitos: el multiplexor y el demultiplexor. El multiplexor (mux) efect´ua la funci´on de un conmutador rotatorio, seleccionando una de varias entradas para conectar a una sola salida; por lo general, al multiplexor se le denomina selector. El demultiplexor (demux) realiza la funci´on inversa, es decir, conecta una sola entrada a una de varias salidas. Al demultiplexor frecuentemente se le denomina decodificador. Estas dos funciones se usan intensamente en redes digitales.
La combinaci´on mux-demux se utiliza para la comunicaci´on serial con el fin de reducir el n´umero de cables requeridos para pasar los datos. Esta pareja puede ser usada de manera similar para manejar despliegues de d´ıgitos m´ultiples tales como los que se encuentran en las calculadoras. Los mux se usan frecuentemente en los circuitos digitales para controlar el enrutamiento de los datos y las se˜nales. Por ejemplo, se puede usar un multiplexor para seleccionar la entrada a un registro particular de varias fuentes.
Los decodificadores son usados para efectuar decodificaciones de direcciones de memo- ria. Basados en ciertas l´ıneas de direcci´on, el decodificador puede suministrar las se˜nales de habilitaci´on a los chips de memoria apropiados. Adem´as, tanto los mux como los demux pueden utilizarse para evaluar expresiones booleanas sencillas usando menos hardware que si se usaran compuertas individuales. Existen muchas aplicaciones adicionales; las descritas, simplemente empiezan a ilustrar la flexibilidad de estas dos funciones.
5.1.2. El Multiplexor
Como se mencion´o previamente, un mux act´ua como un conmutador rotatorio conectan- do una de varias entradas a una salida ´unica. La selecci´on de cu´al entrada debe ser conec- tada a la salida, es determinada por medio de entradas adicionales llamadas l´ıneas de control o de selecci´on. La entrada seleccionada es determinada por el equivalente binario del valor colocado en las l´ıneas de selecci´on. Por ejemplo, consideremos un mux que selec- ciona una de cuatro entradas para conectar a la salida. A esto lo llamamos mux de 4 a 1.
Para seleccionar una de cuatro entradas, deben existir cuatro combinaciones ´unicas de las l´ıneas de selecci´on. Para esto se necesitan dos l´ıneas de selecci´on que nos dan las cuatro combinaciones ´unicas 00, 01, 10 y 11.
La combinaci´on 00 seleccionar´a la l´ınea 0, la combinaci´on 01 selecciona la l´ınea 1 y as´ı sucesivamente. Esta funci´on de multiplexor se ilustra en la tabla 5.1. Esta tabla muestra la salida F como una funci´on de las entradas de las l´ıneas de selecci´on.
En lugar de enunciar los posibles estados de la entradas de datos, ´esta forma simplificada de tabla de verdad muestra la salida como funci´on de los datos de la l´ınea de entrada O
5.1. MULTIPLEXORES Y DEMULTIPLEXORES 41 S2 S1 F
0 0 D0
0 1 D1
1 0 D2
1 1 D3
Cuadro 5.1: Tabla de verdad de un mux de 4 a 1
(DO) o l´ınea de entrada 1 (D1) y as´ı sucesivamente. Lo anterior se implementa con la siguiente expresi´on:
F = S2S1 D0+ S2S1 D1+ S2S1 D2+ S2S1 D3 (5.1)
En la figura 5.1 se muestra una implementaci´on con compuertas NAND del multiplexor 4 a 1. Puesto que la funci´on mux es tan ´util, existen muchos chips TTL que efect´uan la operaci´on equivalente del circuito mostrado en la figura 5.1. Por ejemplo, el 74153 contiene dos multiplexores 4 a 1, el 74151 contiene un multiplexor 8 a 1 y el 74157 contiene 4 multiplexores 2 a 1.
Figura 5.1: Circuito l´ogico de un MUX 4 a 1.
El multiplexor generalmente aparece en un circuito como una unidad funcional sencil- la, no como las compuertas que conforman el circuito. La figura 5.2 muestra una repre- sentaci´on t´ıpica.
42 CAP´ITULO 5. APLICACIONES COMBINACIONALES
Figura 5.2: Representaci´on simplificada de un MUX 4 a 1
5.1.3. El Demultiplexor
El demultiplexor conecta una entrada a una de varias salidas. La salida se escoge por medio de las l´ıneas de selecci´on tal como en el mux. El uso m´as com´un del demultiplexor es el de decodificador. De hecho, los demux son conocidos como decodificadores. Un de- codificador coloca en 0 la l´ınea de salida definida por las l´ıneas de selecci´on. Esta funci´on se implementa f´acilmente con el demux conectando la l´ınea de entrada con 0.
Para ilustrar lo anterior, consideremos la operaci´on de un demux que conecta una entrada a una de cuatro salidas, llamado demultiplexor de 1 a 4. El demux es llamado decodificador de 2 a 4 puesto que dos l´ıneas seleccionan una de cuatro salidas. La operaci´on de este demux se ilustra en la tabla 5.2
DI S2 S1 F0 F1 F2 F3
0 0 0 0 1 1 1
0 0 1 1 0 1 1
0 1 0 1 1 0 1
0 1 1 1 1 1 0
1 X X 1 1 1 1
Cuadro 5.2:
N´otese que el valor por omisi´on de las salidas es 1. Por lo tanto, cualquier salida no seleccionada ser´a 1. Entonces, como lo ilustra la tabla 5.2, cuando el dato en DI sea 1, todas las salidas ser´an 1 sin importar la combinaci´on de las l´ıneas de selecci´on.
El decodificador coloca en 0 la l´ınea de salida seleccionada por las l´ıneas de selecci´on.
Seg´un se aprecia en la tabla 5.2, esto se logra conectando a 0 la entrada de datos. Por lo tanto, ´esta puede verse como una habilitaci´on activa baja para el decodificador. Si esta se˜nal de habilitaci´on no es baja, el decodificador no funcionar´a (todas las salidas ser´an 1); a menudo, los decodificadores tienen m´as de una l´ınea de habilitaci´on, haci´endose necesario que todas la l´ıneas de habilitaci´on est´en activadas para que funcione el decodificador.
5.1. MULTIPLEXORES Y DEMULTIPLEXORES 43 Las funciones ilustradas en la tabla 5.2 se pueden expresar algebraicamente como:
F0 = Di S2S1 (5.2)
F1 = Di S2S1 (5.3)
F2 = Di S2S1 (5.4)
F3 = Di S2S1 (5.5)
En la figura 5.3 se muestra una implementaci´on con compuertas NAND del demux 1 a 4 (decodificador 2 a 4)
De igual modo que los multiplexores, el circuito demultiplexor est´a disponible en difer- entes variaciones de chips TTL. Por ejemplo, el 74138 contiene dos demux 1 a 4 (decodi- ficador 3 a 8) y el 74139 contiene dos demux 1 a 4 (decodificadores 2 a 4).
Figura 5.3: Circuito L´ogico del DEMUX 1 a 4.
Tambi´en los demux se colocan en los circuitos como unidades funcionales separadas.
En la figura 5.4 se muestran las representaciones caracter´ısticas:
N´otese la presencia de los indicadores activos bajos en la entrada de habilitaci´on y en cada una de las salidas de la representaci´on como decodificador. Esto indica que el
44 CAP´ITULO 5. APLICACIONES COMBINACIONALES
Figura 5.4: Representaci´on simplificada del DEMUX 1 a 4.
decodificador se habilita con una entrada baja y que la salida adquiere el valor bajo al seleccionarla.
5.1.4. Aplicaciones de los Multiplexores y de los Demultiplexores Ahora que ya entendemos la operaci´on b´asica del mux y el demux, miraremos en detalle las aplicaciones mencionadas en la secci´on 5.1.4.
Comunicaci´on
Consideremos la situaci´on en la cual dos computadores de 16 bits deben comunicarse.
La comunicaci´on podr´ıa efectuarse f´acilmente utilizando la transmisi´on paralela de to- dos los 16 bits. Esto requerir´ıa al menos 18 conductores, uno por cada bit; adem´as, uno para referencia de tierra, y adicionalmente una se˜nal de indicaci´on de que los datos est´an disponibles. Un m´etodo alterno se muestra en la figura 5.5.
Utilizando un multiplexor para seleccionar un bit de la palabra de entrada y un demul- tiplexor para conectar el dato al bit apropiado de la palabra de salida, se puede establecer una comunicaci´on serial usando solamente 6 l´ıneas: una para la l´ınea de datos, cuatro l´ıneas de selecci´on y la l´ınea de tierra. Se puede transmitir una palabra completa variando secuencialmente las l´ıneas de selecci´on desde 0 hasta 15. Esta t´ecnica se conoce con el nombre de MULTIPLEXACI ´ON.
Aunque se requieren menos conductores al usar la multiplexaci´on, el m´etodo de trans- ferencia paralelo es inherentemente capaz de lograr velocidades de transmisi´on mayores.
Pero en muchas aplicaciones, la velocidad que se puede obtener con el multiplexado es suficiente y en consecuencia, constituye es una ventaja la reducci´on de las conexiones.
5.1. MULTIPLEXORES Y DEMULTIPLEXORES 45
Figura 5.5: Comunicaci´on usando MUX-DEMUX.
Enrutamiento de datos
En un computador t´ıpico, el contador de programa (CP ) debe ser cargado desde fuentes diferentes. Por ejemplo, cuando se tiene la ejecuci´on en l´ınea recta, el CP simplemente debe incrementarse despu´es de cada instrucci´on. En este caso, el CP debe ser cargado desde un contador. Si se ejecuta una instrucci´on de salto absoluto, el CP se cargar´a con la direcci´on especificada en la instrucci´on, la cual normalmente estar´a en el registro de instrucci´on RI. Si se ejecuta una instrucci´on de salto relativo, entonces el desplazamiento especificado debe sumarse al valor corriente de CP . En este otro caso el CP se cargar´a con la salida de la unidad aritm´etica l´ogica U AL.
Un mux es ideal para este tipo de situaci´on: seleccionar una de varias entradas. En esta situaci´on, el CP se conecta a la salida del mux y las entradas con el contador, con el registro de instrucci´on y con la U AL, tal como ya se describi´o. Colocando diferentes valores en las l´ıneas de selecci´on, puede escogerse la entrada al CP desde diferentes fuentes. El valor colocado en las l´ıneas de selecci´on proviene de un campo, una microinstrucci´on o de un secuenciador fijo, que controla la ejecuci´on de las instrucciones.
Existe un problema obvio con este enfoque. Suponga que el computador con el cual se est´a trabajando, utiliza direcciones de 16 bits. El mux que se necesita debe tener entradas de 16 bits cada una pero un mux solo tiene una entrada y no 16. La soluci´on es utilizar un mux por cada bit de la palabra como se ilustra en la Figura 5.6 donde CO se refiere al bit 0 del contador, R0 se refiere al bit 0 de la direcci´on en el registro de instrucci´on, U AL0 se refiere al bit 0 de la salida de la U AL y as´ı sucesivamente para los 15 bits restantes. Las mismas l´ıneas de selecci´on van a todos los multiplexores.