Sunteți pe pagina 1din 139

SISTEMAS NUMRICOS. CONVERSIN ENTRE SISTEMAS NUMRICOS.

OPERACIONES BINARIAS ARITMTICAS: SUMA, RESTA, MULTIPLICACIN Y COMPLEMENTO


Empecemos por mencionar a los "Elementos discretos". Estos no son ms que un grupo de smbolos con un significado. Por ejemplo: Nmeros, letras, signos de puntuacin, etc. Colocar elementos discretos uno al lado del otro representan informacin. De hecho, esta secuencia de elementos forman un "lenguaje" y que obviamente deben conocer para poder saber cul es la informacin que contiene. Los primeros computadores se usaban para realizar clculos numricos y los elementos discretos usados eran los dgitos y es de aqu que surge el trmino computador digital. En los sistemas digitales, los elementos discretos son representados por seales (en nuestro caso seales elctricas) y en el caso particular de los sistemas digitales actuales las seales tienen slo 2 posibles valores discretos y por esa razn se les conoce como binarios. Las seales representan dos estados que acorde a la lgica humana representan verdadero o falso. COMENTARIO: Es probable que en un futuro estos sistemas digitales sean reemplazados por otros que usen "Fuzzy Logic" o "lgica difusa". A este tipo de sistemas, adems de los dos valores verdadero y falso, se le aade otro estado que representara un "quiz" o en el caso de que ese estado pueda contener varios valores un "es verdad pero slo en cierto grado". Es en este tipo de lgica que muchos expertos

consideran podra estar la verdadera esencia de la inteligencia artificial. No todo es blanco o negro ;-). Seales analgicas: Son seales que se representan de forma continua y no por elementos discretos como las seales digitales. Si queremos simular un proceso que es analgico en un sistema digital requeriremos de un "convertidor Analgico Digital". ste se encargar de "transformar" los datos analgicos a una forma que sea representada por elementos discretos y as poder ser procesada por sistemas digitales. Un ejemplo de ello son los CD's de msica. El sonido es una seal analgica. Esto quiere decir que la variacin de la misma es de forma continua pero los CD's son un medio de almacenamiento digital. Es por ello que el sonido debe pasar por un proceso de conversin para poder ser usado en sistemas digitales. Y esto es slo un ejemplo. Otro sera la luz, que es tambin una seal continua (o analgica). La cantidad de aplicaciones que pueden realizarse con los sistemas digitales actuales son muy variadas. Algunos ejemplos son: numricas, procesamiento de texto, aplicaciones de diseo grfico, estudios digitales de audio, etc. El "truco" es saber cmo expresar esa informacin en trminos discretos y en nuestro caso especfico binarios para que dichos sistemas digitales puedan procesarla, por lo que la necesidad de este tipo de sistemas en el mundo moderno es por dems evidente.

NMEROS BINARIOS
Como mencionamos anteriormente, los sistemas digitales actuales slo procesan dos seales (cierto o falso) y es por ello que se aplica el trmino de binario. Nosotros estamos acostumbrados a usar los nmeros en base decimal (o base 10) pero sta es slo una de las formas de representar cantidades. En realidad "2" es slo un smbolo y cuando lo vemos nosotros entendemos que existen dos unidades de algo. Si yo les digo que tengo 2 computadoras ustedes no visualizan

el smbolo 2 sino la cantidad... quiz representada por una computadora al lado de la otra, pero no el smbolo. As que "2" es slo eso: un smbolo. Lo que trato de hacerles entender es que no importa cmo lo expresemos, qu smbolo o smbolos usemos, lo importante es que entendamos ese "lenguaje" y saber qu es lo que representa. Usamos los smbolos como una abstraccin para representar cantidades. Pongamos que tenemos un nmero decimal tal como 123. Eso representa una centena ms dos decenas ms tres unidades. O sea: 1 x 102 + 2 x 101 + 3 x 100 o sea, 123 ;-). Por lo tanto podramos decir que si tenemos un nmero decimal de forma a4a3a2a1a0 entonces a4, a3, a2, a1 y a0 son los coeficientes en la siguiente ecuacin: a4 x 104 + a3 x 103 + a2 x 102 + a1 x 101 + a0 x 100 donde todos los coeficientes deben ser un nmero entre 0 y 9. En este caso en particular estamos usando lo que conocemos: la base 10 o sistema decimal; pero podemos ampliar este concepto a cualquier base. Por lo tanto podemos decir que todo nmero puede ser expresado en un sistema de base "b" por: an.bn + an-1.bn-1 + ... + a2.b2 + a1.b1 + a0.b0 y en el caso que contenga decimales: an.bn + an-1.bn-1 + ... + a2.b2 + a1.b1 + a0.b0 + a-1.b-1 + a-2.b-2 + ... + a-m.b-m donde an es un valor que siempre estar entre 0 y (b-1) siendo n el nmero de dgitos enteros menos uno y m el nmero de dgitos en

la fraccin decimal. En un nmero binario la base es 2. Por lo tanto, un nmero binario slo puede contener dgitos entre 0 y 1 (que en nuestro caso representarn los dos estados que asociamos con falso o cierto). A un solo dgito binario (elemento mnimo de un nmero binario) se le conoce como BIT. A la agrupacin de 8 BITS se le conoce como BYTE. Un ejemplo de un nmero binario es: 1010011. Si quisiramos representar este nmero de 7 bits (donde b=2, n=6 y m =0) de una forma que nos fuese ms familiar, es decir, en decimal, haramos: 1 x 26 + 0 x 25 + 1 x 24 + 0 x 23 + 0 x 22 + 1 x 21 + 1 x 20 = 64 + 0 + 16 + 0 + 0 + 2 + 1 = 83 por lo tanto, el nmero binario de 7 bits 1010011 es igual que el nmero decimal 83. Son dos formas distintas de expresar la misma cantidad. Y que lo haya convertido a decimal no quiere decir que la frmula convierte el nmero a base decimal. En realidad Yo us la base decimal para resolver porque es la forma natural en la que nosotros pensamos. Vi 26, y yo s que representa una cantidad de sesenta y cuatro y la forma en la que Yo s escribir esa cantidad es en decimal y representada por los smbolos 64. Si yo pensase en otra base, como veremos ms adelante, vera otros smbolos pero al final representaran la misma cantidad. Cuando trabajamos con nmeros en distintas bases la forma de expresar en qu base est escrito un nmero es colocndole dentro de parntesis e indicando al lado la base. Por ejemplo: (1010011)2 = (83)10 quiere decir que el nmero 1010011 en base 2 es igual al nmero 83 en base 10. Por supuesto los nmeros binarios, o en base 2, son slo un ejemplo. La base puede ser cualquiera. Supongamos ahora que les digo que

tenemos: (1234,2)5 que es un nmero en base 5 con fraccin decimal y que, como se observa, slo usa dgitos del 0 al 4 que, como ya se ha mencionado, son las nicas posibilidades. Bien, luego les digo que lo conviertan a base 10. Sabiendo que en ese caso n=3, que m=1 y que la base b=5, entonces gracias a la frmula que ya mostramos podremos decir que: (1234,2)5 = 1 x 53 + 2 x 52 + 3 x 51 + 4 x 50 + 2 x 5-1 = 125 + 50 + 15 + 4 + 0,4 = (194,4)10 Perfecto. Por lo tanto ya sabemos entonces qu debemos hacer para convertir nmeros que estn en cualquier base b a, en nuestro caso, base 10. Si el nmero que queremos mostrar est en una base menor o igual a diez pues podremos usar los dgitos conocidos por nosotros (del 0 al 9) como los "smbolos" a usar. Pero qu pasa si el nmero est en una base mayor a 10? pues que deberemos usar otros smbolos. Lo normalmente usado son las letras del alfabeto (regularmente en maysculas) para expresar dichos nmeros. Por ejemplo el sistema en base hexadecimal (mpliamente usado) que est en base 16 usa los smbolos A, B, C, D, E y F para expresar las cantidades que conocemos en decimal como 10, 11, 12, 13, 14 y 15 respectivamente (los cuales son necesarios en la base 16 ya que recuerden que los coeficientes en cualquier base son nmeros entre 0 y base-1). Por lo tanto: (1F)16 = 1 x 161 + 15 x 160 = 16 + 15 = (31)10 y, ms interesante an: (10)16 = 1 x 161 + 0 x 160 = 16 + 0 = (16)10 y es por eso comentaba que no importan los smbolos usados, lo importante es saber la cantidad que representan y para ello es necesario saber el "lenguaje" que se est hablando. Si yo escribo los

smbolos 10... que ven ustedes? Pues lo que ven depender de su sistema base. Ustedes pueden decir que entienden una cantidad de diez. Yo digo que entiendo una cantidad de diecisis. Si ustedes estn trabajando en base 10 y yo en base 16, ambas cantidades son correctas. Hace unos momentos cuando estbamos en el punto de convertir nmeros segn la formula dije: "Si yo pensase en otra base" . Que pasa si probamos el mismo ejemplo, pero esta vez pensando en hexadecimal. Tendramos: (1010011)2 = 1 x 26 + 0 x 25 + 1 x 24 + 0 x 23 + 0 x 22 + 1 x 21 + 1 x 20 = (40)16 + 0 + (10)16 + 0 + 0 + (2 + 1)16 = (53)16 Ahora, cuando yo vi 26 vi la cantidad o el valor de sesenta y cuatro que es representada en hexadecimal por los smbolos 40, 24 por 10, etc.

NMEROS HEXADECIMALES Y OCTALES


Como ya se coment, los nmeros hexadecimales son aquellos que estn en base 16. En el caso de los octales tienen base 8. Estos nmeros son muy usados en los sistemas digitales principalmente porque pueden representar los nmeros binarios de una forma ms compacta (debido a que 23 son 8 y 24 son 16). Realizar esa conversin es extremadamente sencillo. Veamos el siguiente ejemplo: (10100101)2 es un nmero binarios de 8 bits (o un byte). Este puede ser representado en dos partes de 4 bits (conocidas como NIBBLES). Si dividimos el byte del ejemplo en sus Nibbles, tendramos: 1010 y 0101 cada una representando 24 posibilidades, o sea un nmero hexadecimal (un nmero entre 0 y 15). As: (1010)2 = (A)16 , (0101)2 = (5)16 => (10100101)2 = (A5)16.

El caso de octal es semejante. Si tenemos el nmero (101010111)2 podramos dividir ste en tres partes de 3 bits (o sea, con 23 posibilidades cada una) y tendramos: 101, 010 y 111 que representan los nmeros octales 5, 2 y 7 respectivamente. Por lo tanto: (101010111)2 = (527)8 Y por supuesto que hacer lo contrario, o sea, convertir de octal o hexadecimal a binario, es igual de sencillo. Por ejemplo: (7531)8 => 111 101 011 001 => (111101011001)2 (123,A)16 = 0001 0010 0011 , 1010 = (000100100011,1010)2 Pero existen otras conversiones que no son tan obvias como stas. A continuacin profundizaremos en ellas.

CONVERSIONES ENTRE NMEROS DE BASE DIFERENTE


La conversin entre nmeros de distintas bases a un nmero decimal es, como ya vimos, bastante sencilla. Slo debemos usar la frmula que ya se describi. Pero qu pasa si lo que queremos es convertir un nmero decimal a binario? o a hexadecimal? o a octal? Para realizar estas conversiones primero que nada, si el nmero tiene parte decimal, separamos la parte entera de la fraccin decimal. La mejor forma de mostrar la conversin es a travs de ejemplos. Veamos algunos: Convertir a binario el nmero decimal 41: En el caso de querer convertir a nmeros binarios lo que debemos hacer es realizar sucesivas divisiones del nmero a convertir entre dos hasta que lleguemos a un cociente de cero. Los restos de las divisiones representarn los dgitos desde el menos significativo (que ser el primer resto) hasta el ms significativo que ser el resto de la ltima divisin cuando lleguemos al cociente cero. Entonces si el nmero es 41, al realizar la divisin entre dos obtendremos un cociente de 20 y

un resto de 1. Es precisamente el resto quien indicar cul es el valor del bit y en este caso este es el bit menos significativo. Luego haremos la operacin nuevamente con el nuevo cociente que es el 20 y as sucesivamente hasta llegar al momento en que el cociente sea 0. Entonces, desde el principio:

41 / 2 = 20 con resto 1 => El coeficiente el menos significativo ser 1, digamos a0=1. 20/2 = 10 con resto 0 => El coeficiente 1 ser 0 => a1=0. 10/2 = 5 con resto 0 => a2=0. 5/2 = 2 con resto 1 => a3=1. 2/2 = 1 con resto 0 => a4=0. 1/2 = 0 con resto 1 => a5=1.

Por lo tanto: (41)10 = (a5a4a3a2a1a0) = (101001)2 y si quisiramos mostrar el nmero en octal y/ hexadecimal, partiendo de que ya tenemos el nmero binario?, entonces sera: (101001)2 = (51)8 = (29)16 Veamos otro ejemplo. Convertir el nmero decimal 161 a binario. Haramos: 161 1 80 0 40 0 20 0 10 0 5 1 2 0 1 1 0

sabiendo que el primer bit es el menos significativo tendramos: (161)10 = (10100001)2

partiendo del binario, en octal y hexadecimal sera: (10100001)2 = (A1)16 = (241)8 quieren revisar? OK: (A1)16 = 10 x 161 + 1 x 160 = 160 + 1 = (161)10 (241)8 = 2 x 82 + 4 x 81 + 1 x 80 = 128 + 32 + 1 = (161)10 Ok, todo chvere. Pero qu pasa si lo que quiero es convertir el nmero decimal directamente a octal o a hexadecimal? (quiero decir si NO tenemos el nmero binario). Por supuesto, ustedes podran convertirlo a binario y luego a octal o hexadecimal. Soy de la poltica de que no importa cmo se llegue al resultado mientras ste sea el correcto a menos claro est de que se les diga explcitamente que lo hagan de alguna forma en particular. En todo caso, la forma ms rpida de hacerlo sera aplicando el mtodo anlogo a la conversin a binario slo que cambiando el divisor a la base correspondiente. Si en binario es 2, en octal es 8, en hexadecimal es 16 en base 5 sera 5, etc. Procedamos con el mismo ejemplo anterior, con el nmero 161. Convirtmoslo a octal. Sera:

161 20 con resto 1 2 con resto 4 0 con resto 2

por lo tanto: (161)10 = (241)8 ya que el primer resto es el dgito menos significativo. Y qu tal a hexadecimal? Sera:

161

10 con resto 1 0 con resto 10 que en hexadecimal es representado por A

entonces: (161)10 = (A1)16 Ok. Si la base destino es 5, por ejemplo, llevarlo a binario no les servira de nada. En este caso tendramos que proceder obligatriamente con el mtodo explicado, en este caso siendo el divisor el nmero 5. Mismo ejemplo: 161 32 6 1 0 RESTO 1 2 1 1

Por lo tanto: (161)10 = (1121)5 Revisemos: (1121)5 = 1 x 53 + 1 x 52 + 2 x 51 + 1 x 50 = 125 + 25 + 10 + 1 = (161)10 CORRECTO!!! Veamos ahora el caso de que el nmero sea con decimales. Como ya se coment, en estos casos es ms conveniente separar la parte entera de la fraccin decimal. La parte entera ya sabemos cmo resolverla. La fraccin decimal se hace por un procedimiento similar pero la operacin involucrada es la multiplicacin y quien representar el dgito a colocar ser la parte

entera siendo el primer entero quien ser la cifra ms significativa. Por ejemplo si queremos convertir el nmero decimal 0,8125 a binario hacemos:

0,8125 x 2 = 1 + 0,625 0,625 x 2 = 1 + 0,25 0,25 x 2 = 0 + 0,50 0,50 x 2 = 1 + 0

as que (0,812)10 = (0,1101)2 Revisemos: (0,1101)2 = 1 x 2-1 + 1 x 2-2 + 0 x 2-3 + 1 x 2-4 = 0,5 + 0,25 + 0 + 0,0625 = (0,8125)10 Excelente!!! Veamos un ltimo ejemplo. Convertir el nmero decimal 48,407407407407 (407 peridico) al correspondiente en base 3. Para la parte entera:

48 16 con resto 0 5 con resto 1 1 con resto 2 0 con resto 1

y para la fraccin decimal:


0,407407407407 x 3 = 1 + 0,2222222 peridico 0,222222222222 x 3 = 0 + 0,6666666 peridico 0,666666666666 x 3 = 2 + 0

Por lo tanto (48,407407407407...)10 = (1210,102)3 Revsenlo.

NOTA: Dada la confusin presentada por los nmeros en distintas bases y viendo el resultado en algunos alumnos que dio dar ejemplos de series en distintas bases, aqu les anexo una tabla con nmeros en decimal y su correspondiente en otras bases. Observen como varan los smbolos usados en las distintas bases en incrementos de uno.
Decimal Hexadecimal Octal Base 3 Base 7 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 0 1 2 10 11 12 20 21 22 100 101 102 110 111 112 120 121 122 200 0 1 2 3 4 5 6 10 11 12 13 14 15 16 20 21 22 23 24

30 31 32 64 69 70 71

1E 1F 20 40 45 46 47

36 37 40 100 105 106 107

1010 1011 1012 2101 2120 2121 2122

42 43 44 121 126 130 131

Si por ejemplo tienen el nmero (12)3 y se le pide que le sumen 2, el resultado que van a obtener es el nmero en base 3 que est 2 posiciones adelante del (12)3 , en este caso el (21)3. Espero que esta tabla les sirva para comprender mejor los nmeros en bases distintas. (4 + 6)7 = (13)7. Teniendo ya esto en cuenta, veamos como se realizan operaciones aritmticas en distintas bases.

OPERACIONES ARITMTICAS CON NMEROS DE DISTINTAS BASES


En realidad las operaciones aritmticas se realizan igual sin importar cul sea la base. La nica consideracin a tomar es que slo pueden existir dgitos entre 0 y base-1. Veamos algunos ejemplos de suma, resta y multiplicacin. Sume los nmeros binarios 10111101 y 10110: 10111101 + 010110 --------------------------------11010011 Como les dije deben considerar la base que se est usando. En este caso usamos nmeros binarios (base 2) por lo que los dgitos slo pueden ser 0 1. Qu tenemos entonces? Bien, para este caso de

suma (slo dos nmeros binarios) lo que debemos saber es que (0+0)=0, (0+1)=(1+0)=1, (1+1)=10 y (1+1+1)=11. Por lo tanto, empezando por el dgito menos significativo tenemos que: (1+0)=1. Sigamos: (0+1)=1, (1+1)=10 (por lo que colocamos el 0 y sabemos que llevamos 1 de acarreo que para el resto de la explicacin pondr entre []), ([1]+1+0)=10, ([1]+1+1)=11, ([1]+1+0)=10, ([1]+0)=1 y por ltimo (1+0)=1. Revsenlo y practiquen haciendo ejercicios.

Realice la resta entre los mismos nmeros: 10111101 - 0010110 --------------------------------10100111 Ok, sabiendo que (0-0)=0, (1-0)=1, (1-1)=0, (0-1)=-1 y (10-1)=1, entonces, empezando por el menos significativo y continuando, (10)=1, (10-1)=1, (10-1)=1, (0-0)=0, (1-1)=0, (1-0)=1 y (10-0)=10. En realidad no hay ms que explicar aqu. Realicen ejercicios. Por ltimo la multiplicacin: 10111101 x 10110 -------------------------------------------------________00000000 ______10111101 ____10111101 __00000000 10111101

--------------------------------------------------1000000111110

En la multiplicacin de nmeros binarios tenemos que (0 x 0)=(0 x 1)=(1 x 0)=0 y (1 x 1)=1 el cual, como veremos en los prximos captulos, es el comportamiento de una compuerta AND. Ese anlisis nos es familiar ya que cumple exactamente las mismas propiedades a las que estamos acostumbrados. Yo dira ms bien que realizar esta multiplicacin es un buen ejercicio para la suma ya que debe considerar mltiples acarreos. Entienda que en binario (1+1+1)=11, (1+1+1+1)=100, (1+1+1+1+1)=101, (1+1+1+1+1+1+1+1)=1000, etc. Hagamos ahora la suma y resta de los mismos nmeros pero en hexadecimal: BD + 16 = D3 ya que (D+6)16=(13)16 que conlleva 1 de acarreo y luego ([1]+B+1)16=D16. Para la resta: BD - 16 = A7 Lo cual no tiene mucho que analizar. La consideracin ms importante a tomar es qu dgitos se pueden usar lo cual depende de la base. De resto el procedimiento es igual al que estamos familiarizados.

COMPLEMENTOS
Los complementos son muy usados en los sistemas digitales al momento de realizar operaciones de resta. Existen dos tipos de

complemento. El complemento a b y el complemento a b-1 donde b es la base. Es decir, para los nmeros binarios existen los complementos a 2 y a 1. En base octal seran complemento a 8 y a 7, etc. El complemento a b se define de la siguiente forma: Complemento a b Teniendo un nmero N de n dgitos enteros, el complemento a b de N = (bn - N) si N 0 y ser 0 si N=0. Esto se cumple para todos los nmeros N positivos incluso con fraccin decimal. El nico caso especial a considerar es cuando la parte entera es cero. Esto se interpreta como que n = 0. Veamos algunos ejemplos: Cul es el complemento a 10 de (987)10? En este caso N = 987 y n = 3, entonces: 103 - 987 = 1000 - 987 = 13 El complemento a 10 de (0,125)10? Aqu N = 0,125 y n = 0, as que: 100 - 0,125 = 1 - 0,125 = 0,875 El complemento a 10 de (987,125)10? N= 987,125 y n = 3, por lo tanto: 103 - 987,125 = 1000 - 987,125 = 12,875 ATENCIN: Observen que NO es lo mismo que calcular el complemento de la parte entera y de la fraccin decimal por separado y juntar los resultados. OJO con eso. Veamos unos casos en binario. Para el complemento a 2 de (10101100)2 tenemos que n=8, entonces: (28)10 - (10101100)2 = (256)10 - (10101100)2 = (100000000 10101100)2 = (01010100)2

Otro. El complemento a 2 de (1010)2 es (10000 - 1010)2 = (0110)2 Obsrvese que para calcular el complemento a 2 de un nmero binario slo basta con revisar todos los dgitos desde el menos significativo hacia el ms significativo y mientras se consiga un cero, dejarlo igual, al conseguir el primer nmero 1, dejarlo igual para luego cambiar el resto de ellos hasta llegar al ms significativo. As podemos decir rpidamente que el complemento a 2 de (10100000) 2 es (01100000)2, que el complemento a 2 de (111)2 es (001)2, etc. Otra forma muy sencilla de hallar el complemento a 2 de un nmero binario es invirtiendo todos los dgitos (que como veremos a continuacin es lo que se conoce como complemento a 1) y sumndole uno al resultado obtenido. Prubenlo. Complemento a b-1 Por otro lado tenemos tambin el complemento a b-1. En este caso, teniendo un nmero positivo N en base b con n dgitos enteros y m dgitos en la fraccin decimal, se conoce como complemento a b-1 de Na bn - b-m - N Veamos entonces. Para el complemento a 9 de (987)10 tenemos que N = 987, n = 3 y m = 0, por lo tanto 103 - 100 - 987 = 1000 - 1 - 987 = 12 Para el complemento a 9 de (0,125)10 tenemos que N = 0,125 y n = 0 y m = 3, entonces 100 - 10-3 - 0,25 = 1 - 0,001 - 0,125 = 0,999 - 0,125 = 0,874 Y qu hay del complemento a 9 de (987,125) 10? En ese caso N= 987,125 ; n = 3 y m = 3, por lo tanto

103 - 10-3 - 987,125 = 1000 - 0,001 - 987,125 = 999,999 987,125 = 12,874 Observen que en este caso s es lo mismo calcular el complemento de la parte entera y el de la fraccin decimal por separado y juntar sumar los resultados. Algunos ejemplos en binario. Para el complemento a 1 de (10101100)2 sabemos que n=8 y m=0 => (28)10 -1 - (10101100)2 = (256)10 - 1 - (10101100)2 = (100000000 - 1 - 10101100)2 = (01010011)2 y que el complemento a 1 de (1010)2 es (10000 - 1 - 1010)2 = (0101)2 En estos dos ltimos ejemplos se puede observar que para conseguir el complemento a 1 de un nmero binario basta con tan solo invertir todos los dgitos (esto quiere decir cambiar 0 por 1 y viceversa). Es por esto que les coment anteriormente que otra forma de calcular el complemento a 2 de un nmero binario es hallando el complemento a 1 (o sea invertir todos los digitos) y sumarle 1. Resta por complemento Al principio les dije que los complementos se usaban mucho en los sistemas digitales para realizar clculos de resta. Si queremos realizar una resta basndonos en el complemento a b (base) lo que hacemos es sumar al minuendo el complemento a b del sustraendo. Si la suma acarrea 1, ste se descarta. En caso contrario se dice que el nmero es negativo y ser el complemento a b del resultado de la suma. Veamos un ejemplo con nmeros: (123 - 023)10 ; aqu el complemento a 10 de 23 es 977, entonces: 123

+ 977 ------------------------1 100 El primer 1 es el acarreo por lo que la respuesta es 100. OJO: al usar este mtodo debe considerar todos los nmeros con la misma cantidad de dgitos. Qu quiero decir con esto?, que NO, repito: NO! pueden considerar el nmero 23 como un nmero de 2 dgitos. Minuendo y sustraendo deben contener el mismo nmero de dgitos. Por lo tanto deben considerar 023. En caso contrario obtendran un error. Veamos otro ejemplo en el que la suma no arroja complemento: (23 100)10 ; para este caso el complemento a 10 de 100 es 900 => 23 + 900 = 923 ( no lleva acarreo ) => el complemento a 10 de 923 es 77 => Respuesta = -77. Tambin existe un mtodo para realizar la resta pero usando el complemento a b-1. Este caso es muy similar al caso anterior con la diferencia del acarreo. Aqu, en el caso de haber un acarreo, ste no es descartado sino que el mismo es sumado al resultado de la suma para obtener el resultado final. En caso de no tener acarreo, al igual que antes, se procede a realizar el complemento del resultado de la suma y agregarle un signo negativo. OBVIAMENTE todos los clculos de complementos en este mtodo son basados en el complemento a b-1 y no al complemento a b. Veamos algunos ejemplos: (123 - 023)10 ; el complemento a 9 de 23 es 976 , entonces 123 + 976

-------------1 099 +1 -------------100 El primer 1 es el acarreo y como ste debe sumrsele al resultado de la suma tenemos que 99 + 1 es 100. Por supuesto que al usar este mtodo tambin debe considerar todos los nmeros con la misma cantidad de dgitos. El nmero 23 es en realidad 023. Veamos el otro ejemplo en el que la suma no arroja complemento: (23 - 100)10 => el complemento a 9 de 100 es 899 => 23 + 899 = 922 ( no lleva acarreo ) => el complemento a 9 de 922 es 77 => Respuesta = -77 Veamos algunos casos con nmeros binarios. Realizar la resta por complemento a 2 y por complemento a 1 de: (10101110 110010)2 Por el mtodo de complemento a 2 tenemos: El complemento a 2 de 110010 (recordando que debe tener 8 dgitos) es 11001110 entonces 10101110 + 11001110 ------------------1 01111100 de lo que se concluye que (10101110 - 110010)2 = (1111100)2 Vemoslo ahora por el mtodo de complemento a 1. Aqu tendramos que complemento a 1 de 110010 es 11001101, entonces 10101110

+ 11001101 ------------------1 01111011 por lo que tenemos que hacer (01111011 + 1)2 resultando (01111100)2. Excelente. Veamos otro caso. Realizar la resta de (110010 10101110)2. Por complemento a 2 sera: 00110010 + 01010010 ---------------10000100 que como no tiene acarreo le calculamos el complemento a 2 y tenemos que el resultado es -1111100. Con el mtodo de complemento a 1 sera: 00110010 + 01010001 --------------------10000011 y calculando el complemento a 1 (ya que no tiene acarreo) tenemos que el resultado = -01111100. Lo cual es correcto. Por qu haramos una resta con complemento? La suma es mucho ms sencilla de implementar en los sistemas digitales; y por otro lado, aunque en base 10 no tenemos problemas para realizar una

resta, hacer el mismo proceso para otras bases no nos ser tan intuitivo por lo que estos mtodos facilitaran el proceso del clculo. Como comentario final me gustara acotar que las computadoras trabajan los nmeros negativos a travs del complemento a dos. Para ellas, el primer bit del byte indica el signo. Si este es uno (1) querr decir que el nmero es negativo. Por lo tanto, y basndonos en este ltimo ejemplo por el mtodo de complemento a dos, al realizar la resta de 110010 - 10101110 el resultado que almacena el computador en sus registros o variables es en realidad el nmero (10000100)2 o lo que es lo mismo (84)16. Al tener el bit ms significativo activo, representa que es un nmero negativo y que el mismo es su complemento a 2. Pues bien, esto es lo ltimo en este captulo. Para el prximo hablaremos de Cdigos binarios. lgebra de Boole. Funciones lgicas. Compuertas lgicas.

CDIGOS BINARIOS. LGEBRA DE BOOLE. FUNCIONES LGICAS. COMPUERTAS LGICAS.


CDIGOS BINARIOS
Como ya vimos, los sistemas digitales usan seales elctricas para representar dos posibles valores o estados que asociamos con cierto o falso. Como ya vimos tambin, para expresar informacin en estos sistemas hacemos uso de los nmeros binarios ya que con ellos podemos representar los dos estados estables de los sistemas digitales a travs del 0 y el 1 (y que podemos usar una combinacin de stos para representar cualquier cantidad). Muy bien, pero los sistemas digitales electrnicos pueden ser usados para procesar

informacin discreta de cualquier tipo ya sean nmeros decimales, letras, colores, etc y es por sto que en la mayora de los casos se hace conveniente el expresar la informacin que se desea procesar de una forma que sea ms manejable. Es aqu donde entran los cdigos binarios. Como les dije en el tema pasado, al elemento mnimo de un nmero binario se le conoce como bit. Un bit no es ms que un cdigo binario que slo puede representar los dos estados estables. Un bit es por definicin un dgito binario. Si se quieren expresar un nmero de elementos de 2n se requerirn entonces n bits para expresar dicho nmero de elementos. Por ejemplo si se quieren representar 4 posibilidades se requerirn entonces 2 bits ya que 22 = 4 (y de hecho estas combinaciones son 00 01 10 y 11 que, fcilmente verificable, representan los nmeros decimales del 0 al 3). Si se quieren representar 8 elementos entonces se requieren 3 bits ya que 23 = 8 (000, 001, 010, 011, 100, 101, 110 y 111, en decimal del 0 al 7). En resumen, con n bits se pueden representar 2n opciones que irn desde 0 hasta 2n 1. Ahora bien, no siempre se requerir expresar una cantidad exacta de una potencia de 2. Por ejemplo si queremos mostrar las posibilidades en los dgitos decimales requeriremos de 10 combinaciones. Por supuesto, tendremos que usar cuatro bits ya que con tres slo podremos representar 8 de ellas. Con los cuatro bits tenemos un exceso pero lo que se hace es ignorar el resto de las combinaciones. COMENTARIO: Debido a que he recibido esta pregunta les comento de una vez que 1kb (un kilobit) es igual a 1024 bits. Cuando hablamos en trminos de nmeros binarios, hablamos de potencias de 2. As que 1kb = (10000000000) 2 bits = 210 bits = 1024 bits. De forma anloga para 1 Kbyte (1 byte = 8 bits). Otro caso es 1 MB (un megabyte) = (100000000000000000000) 2 = 220 bytes = 1048576 bytes.

CDIGOS DECIMALES Entre los cdigos binarios tenemos algunos que se usan para representar dgitos decimales. Las formas para representar los nmeros decimales con cdigos binarios es muy variada y depende de la lgica que se use. El ms usado de todos estos cdigos es el BCD (por sus siglas en ingls de Binary Coded Decimal o decimal codificado en binario). En este caso se usa una relacin directa para expresar los dgitos decimales. Qu quiero decir con directa? Pues bien, que al convertir el nmero binario a decimal obtendrs el dgito decimal en cuestin. Por ejemplo para expresar el (0) 10 usamos 0000, para el (5)10 0101 y para el (9)10 1001 (ms adelante mostrar una tabla con todas las combinaciones). La forma de calcular el nmero binario para representar el dgito decimal viene dada por la frmula explicada en el tema anterior pero para realizar un clculo rpido recuerden que la carga del primer dgito binario representa 8, la del segundo 4, la del tercero 2 y la del cuarto y ltimo representa 1. Por supuesto que en BCD no existen 1100, 1010, etc ya que stas no muestran ningn dgito decimal. Otro ejemplo: para representar el dgito decimal 6 en cdigo BCD sera: 0110 ya que: 0x8+1x4+1x2+0x1=6 Un cdigo decimal que se ha usado en algunos computadores viejos es el cdigo de exceso a 3. Este ltimo es un cdigo sin carga, cuya asignacin se obtiene del correspondiente valor en BCD una vez se haya sumado 3. Ejemplo (0)10 = 0011, (9)10 = 1100, etc. Tambin es posible asignar cargas negativas a un cdigo decimal, como por ejemplo en el cdigo 8, 4, -2, -1. En este caso la combinacin de bits 0110 se interpreta como el dgito decimal 2, ya que como se ve:

0 x 8 + 1 x 4 + 1 x (-2) + 0 x (-1)=2 Del libro Lgica digital y diseo de computadores de M. Morris Mano: Los nmeros se representan en computadores digitales en binario o decimal a travs de un cdigo binario. Cuando se estn especificando los datos, el usuario gusta dar los datos en forma decimal. dgito Las maneras requiere decimales por lo recibidas cuatro se almacenan de internamente en el computador por medio del cdigo decimal. Cada decimal menos elementos almacenamiento binario. Los nmeros decimales se convierten a binarios cuando las operaciones aritmticas se hacen internamente con nmeros representados en binario. Es posible tambin realizar operaciones aritmticas directamente en decimal con todos los nmeros ya dejados en forma codificada. Por ejemplo, el nmero decimal 395, cuando se convierte a binario es igual a 110001011 y consiste en nueve dgitos binarios. El mismo nmero representado alternamente en cdigo BCD, ocupa cuatro bits para cada dgito decimal para un total de 12 bits: 001110010101 ... esto ltimo por 0011 1001 0101. OJO: No es lo mismo convertir un nmero decimal a binario que convertir un nmero decimal a codificacin binario. Por supuesto en ambos casos obtendremos un nmero en binario, pero no el mismo. Ojo con eso. El cdigo BCD es el ms comn a la hora de trabajar dgitos decimales en cdigo binario, pero los otros casos que coment: exceso a 3 y 8 4 -2 -1 tienen una peculiaridad muy interesante y es que estos nmeros son autocomplementarios. Esto quiere decir que el complemento a 9 del nmero decimal se obtiene con tan slo intercambiar el estado de los bits del cdigo binario. Por ejemplo, el nmero cero tiene un cdigo binario en exceso a 3 de 0011. Si intercambiamos los estados de los bits obtenemos 1100 que es la representacin en exceso a 3 del nmero decimal 9 que es a su vez el

complemento a 9 de cero. Se observa que sto puede ser muy til a la hora de realizar operaciones aritmticas internas de nmeros decimales en cdigo binario en particular en el caso de la resta que puede realizarse por complemento a 9. A continuacin veamos una tabla que resume los modos de presentar informacin en binario en los distintos cdigos decimales vistos DGITO DECIMAL 0 1 2 3 4 5 6 7 8 9 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 0000 0111 0110 0101 0100 1011 1010 1001 1000 1111 BCD EXCESO A 3 84-2-1

Algunos cdigos binarios presentan propiedades de deteccin de error y de ellos hablaremos a continuacin.

CDIGOS DE DETECCIN DE ERROR Los sistemas digitales procesan informacin binaria haciendo uso de seales. Por supuesto que ellas debern ser transmitidas de alguna forma entre los distintos componentes del sistema para poder as transferir la informacin. sto se hace a travs de un medio de

comunicacin. En nuestro caso particular que usamos seales elctricas, la transmisin se realiza, por ejemplo, a travs de cables de cobre pero tambin puede ser hecha por ondas de radio, fibra ptica, etc dependiendo del tipo y del medio en el que deben transmitirse las seales. Es por sto que se hace necesario contar con una forma de deteccin de errores. De no tenerlo, cualquier ruido que se produzca en el transporte podra alterar el dato que est siendo transmitido y por ende no podramos tener la certeza de que la informacin que estamos recibiendo sea la correcta. sto puede no ser importante en algunos casos como por ejemplo en las transmisiones de radio o televisin pero en cambio es vital en un sistema digital. Imagnense en el ms sencillo caso: una calculadora a la que introduzcamos dos nmeros a sumar y que no podamos confiar en el resultado que sta arroje. Pues bien, para poder detectar un posible error pueden usarse cdigos de deteccin de errores. El cdigo como tal no corregira el error pero s indicara su presencia. Esto entonces puede ser tomado en cuenta para tomar las medidas que sean necesarias ya sea un rediseo del sistema en el caso de que el error sea demasiado frecuente , en el caso que sea eventual, la inclusin de una lgica que instruya al sistema a realizar nuevamente la operacin. Uno de los mtodos usados para la deteccin de errores es el bit de paridad. Cuando se quiere generar un cdigo de error basado en el bit de paridad lo que se hace es agregar un bit al dato original. Supongamos que trabajamos con palabras de 4 bits. En este caso, luego de pasar el nmero por un generador de paridad y agregar el bit resultado a la palabra original, obtendramos una palabra de 5 bits. La paridad puede ser tanto par como impar. En el caso de que sea paridad impar, el bit de paridad que se le agregue ser aquel que haga que la nueva palabra contenga un nmero impar de unos. Por ejemplo, si tenemos el nmero: 0010, el bit a agregar para reflejar una paridad impar debe ser 0. Esto debido a que la suma de los bits que son 1 es impar. En otro caso, al nmero 0011, siguiendo con

paridad impar, deber ser agregado el bit 1. De esta forma el nmero de 1 en toda la palabra resultante ser impar. El caso de paridad par es anlogo slo que aqu el bit que se agrega ser para completar un nmero PAR de 1. En paridad par el mismo ejemplo 0010 generara el bit de paridad 1 resultando en total en un nmero par de unos. ste es el caso ms sencillo de bit de paridad y obviamente se nota que este tipo de mtodo es slo til si el nmero de errores en la palabra es 1, 3, en fin, un nmero impar de errores. Existen formas de generar paridad ms complejas que ayudaran en los otros casos pero que no sern cubiertas, al menos no por ahora. En todo caso, ste es slo uno de los cdigos de deteccin de errores.

CDIGO REFLEJADO Tenemos tambin el cdigo reflejado o cdigo gray. Sacado de la Wikipedia (http://es.wikipedia.org/): El Cdigo Gray es un caso particular de cdigo binario. Consiste en una ordenacin de 2n nmeros binarios de tal forma que cada nmero slo tenga un dgito binario distinto a su predecesor. Esta tcnica de codificacin se origin cuando los circuitos lgicos digitales se realizaban con vlvulas de vaco y dispositivos electromecnicos. Los contadores necesitaban potencias muy elevadas a la entrada y generaban picos de ruido cuando varios bits cambiaban simultneamente. El uso de cdigo Gray garantiz que en cualquier transicin variara tan slo un bit. En la actualidad, el cdigo Gray se sigue empleando para el diseo de cualquier circuito electrnico combinacional mediante el uso de un Mapa de Karnaugh, ya que el principio de diseo de buscar transiciones ms simples y rpidas entre estados sigue vigente, a pesar de que los problemas de ruido y potencia se hayan reducido.

En el tema anterior comentamos que los sistemas digitales pueden ser usados slo para procesar datos discretos pero que existen diversas seales que son continuas (como el sonido) y que para llevar esas seales a un medio discreto necesitaramos de un convertidor analgico a digital. El cdigo gray tambin puede ser usado en los casos que requerimos procesar la informacin proveniente de un medio continuo o analgico ya que el cambio que presenta dicha seal ser reflejado de forma continua en el entorno digital alterando tan slo un bit entre los estados. El clculo del cdigo gray de un nmero puede realizarse de forma sencilla haciendo una XOR del nmero a convertir con l mismo pero desplazado un bit hacia la derecha y descartando el bit menos significativo del resultado. La XOR es una operacin lgica y ya hablaremos de ella ms adelante. A continuacin les presento una tabla en la que se muestran los nmeros binarios del 0 al (15)10 y sus respectivos bits de paridad par, paridad impar y cdigo gray. Nmero Nmero Bit decimal binario de Bit par 0 1 1 0 1 0 0 1 1 0 0 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 de Cdigo

paridad paridad gray impar

0 1 2 3 4 5 6 7 8 9 10

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010

1 0 0 1 0 1 1 0 0 1 1

11 12 13 14 15

1011 1100 1101 1110 1111

0 1 0 0 1

1 0 1 1 0

1110 1010 1011 1001 1000

NOTA: Obsrvese que los cambios continuos en cdigo gray son representados con el cambio de un solo bit a la vez.

CDIGOS ALFANUMRICOS Y qu pasa cuando el dato que quiero manejar es una letra? Aqu se hace necesario el expresar este elemento discreto de una forma binaria y para ello usamos algn cdigo binario alfanumrico. As expresamos las letras del alfabeto y algunos smbolos necesarios como la coma, el punto, etc. Yo les hablar en particular del cdigo ASCII (por American Standard Code for Information Interchange) que es un cdigo de 7 bits que se usa para expresar las letras maysculas, minsculas y los smbolos ms usados. Este cdigo es an usado actualmente por las computadoras y es por ello que es ste el que menciono. Por supuesto existen otros como el cdigo interno (de 6 bits) y el cdigo EBCDIC (Extended BCD Interchange Code de 8 bits), slo que el ASCII es, por as decirlo, ms usado. Al ser el cdigo ASCII un cdigo de 7 bits, en implementaciones digitales se suele usar el 8avo bit (que completa 1 byte) como bit de paridad. En las tablas ASCII usadas en las computadoras la letra A es siempre mostrado con el nmero binario correspondiente al decimal 65 (100 0001), la B con el 66 (100 0010) y as sucesivamente hasta llegar a la Z con el 90 (101 1010). Los caracteres que representan smbolos, letras minsculas y nmeros, estos ltimos empezando por el decimal 48 con el caracter 0, tambin tienen su sitio dentro de la tabla ASCII.

Lo importante de resaltar aqu es que la mayora de los elementos discretos a los que estamos acostumbrados tienen una forma de ser expresados en el mundo binario a travs de un Cdigo Binario.

LGEBRA DE BOOLE
El lgebra de Boole de forma anloga a cualquier otro sistema matemtico deductivo puede ser definida por un conjunto de elementos, operadores y postulados. Del libro Lgica Digital y Diseo de Computadores de M. Morris Mano: Un conjunto de elementos es una coleccin de objetos que tienen una propiedad comn. Si ' S' es un conjunto y 'x' y 'y' son objetos ciertos, entonces x S denota que x es un miembro del conjunto S y y S denota que y no es un elemento de S. Aqu existen muchos trminos as que iremos explicando a medida que vayamos avanzando. Antes que nada mencionemos al Operador Binario. OJO, no confunda, este operador NO tiene nada que ver con los nmeros binarios en si. Se conoce como Operador Binario a cualquier operador que es usado para realizar una operacin entre dos elementos. Sabemos que algunos de los postulados ms conocidos del lgebra son: Ley Asociativa. Esta ley dice que siendo * un operador binario, se dice que un conjunto cumple con la ley asociativa si: (x*y)*z = x*(y*z) para todo x, y, z miembros del conjunto.

Ley Conmutativa. Esta ley dice que siendo * un operador binario, se dice que un conjunto cumple con la ley conmutativa si: x*y = y*x para todo x, y miembros del conjunto. Ley Distributiva. Esta ley dice que siendo * y operadores binarios, se dice que un conjunto cumple con la ley distributiva si: z*(xy) = (z*x)(z*y) para todo x, y, z miembros del conjunto. Elemento de identidad. Se dice que un conjunto tiene elemento de identidad con respecto a la operacin binaria * si, siendo e la identidad, se cumple que: e*x = x*e = x para todo 'x' miembro del conjunto. O sea, en el lgebra de los nmeros reales, el nmero 0 es elemento de identidad con respecto al operador binario + (suma) y 1 es el elemento de identidad con respecto al operador binario x (multiplicacin). El lgebra de Boole es una sistema algebraico para el tratamiento de las relaciones lgicas (como la usada en los sistemas digitales). Est definida para un conjunto de elementos junto con sus operadores binarios '+' y '' de tal forma que satisfagan los siguientes postulados: 1. Posee un elemento de identidad con respecto al operador + y ste es el 0 : A + 0 = 0 + A = A. Posee un elemento de identidad con respecto al operador y ste es el 1: A 1 = 1 A = A

2. Es conmutativo con respecto a + ya que: A + B = B + A Es conmutativo con respecto a ya que: A B = B A 3. es distributivo sobre + ya que: A (B + C) = (AB)+(AC) + es distributivo sobre ya que: A + (B C) = (A+B)(A+C)
4. Para cada elemento

x que pertenece a un conjunto, existe

tambin en ese mismo conjunto un elemento x' llamado complemento de x tal que: (a) x + x' = 1 y (b) x x' = 0. Por ltimo tambin debe satisfacer la existencia en el conjunto de al menos dos elementos x, y tal que xy... lo que est claro. Adems, el lgebra de Boole tambin cumple con la ley asociativa pero no es un postulado como tal ya que ste puede ser demostrado a travs de los mencionados. OJO: '+' y '' son los smbolos usados para expresar las operaciones binarias posibles en el lgebra de Boole y, aunque se escogieron porque tienen mucha semejanza con los usados en el lgebra de los nmeros reales para la suma y la multiplicacin, NO son exactamente iguales y sto se hace absolutamente obvio en la segunda propiedad distributiva del postulado 3. LGEBRA DE BOOLE BIVALENTE ste es el caso particular que nos interesa ya que es el usado en los circuitos lgicos. sta se define como un conjunto de dos elementos {0, 1} y que cumplen las reglas para los operadores binarios + y tal como se muestra en la siguiente tabla: X 0 0 Y 0 1 X+Y 0 1 XY 0 0 X' 1 1

1 1

0 1

1 1

0 0

0 0

stas son las reglas de algunas de las operaciones lgicas, en particular de las conocidas como OR (para +), AND (para ) y NOT (para el complemento). stas son las tres operaciones lgicas bsicas pero existen otras tal como el XOR u OR exclusivo pero de stas se hablar luego. Las operaciones lgicas AND y OR tiene analoga en un circuito elctrico. En el caso de la AND, visualicen un circuito con dos interruptores en serie y una carga, digamos un bombillo. Para que el bombillo se prenda, ambos interruptores deben estar cerrados. El circuito de la OR sera con los interruptores en paralelo. Si uno de ellos o ambos estn cerrados, el bombillo se enciende. La tabla anterior en la que se muestra la informacin es una forma ampliada de una tabla de la verdad. En realidad, la tabla de la verdad lo que muestra es el posible resultado que se puede generar de las distintas combinaciones de los valores posibles de las variables involucradas, en este caso, x y y, segn una funcin u operacin. Las tres primeras columnas de la tabla anterior reflejan la tabla de la verdad de la operacin lgica OR. La primera, segunda y cuarta columna reflejan la tabla de la verdad de la operacin lgica AND. Las tablas de la verdad son de gran ayuda sobre todo al momento de querer simplificar o entender funciones lgicas. Ya llegaremos a ello. NOTA: Las tablas de la verdad de las distintas operaciones lgicas son algo que deben aprender perfectamente. En realidad no es difcil ya que solemos pensar de esa forma. Por ejemplo cuando decimos quiero caf Y leche se entiende perfectamente que se quieren las dos cosas. Una AND. Solo se cumple si ambas cosas son ciertas. En el caso del OR en realidad hay una diferencia ya que nosotros gramaticalmente interpretamos un O refirindonos a que se cumple

una cosa o la otra pero no ambas. Quiero una camisa Blanca O Negra. El OR presenta el caso de que si ambos son ciertos entonces el resultado tambin es cierto. Se ve que la ley conmutativa es obvia en la tabla. La ley distributiva puede ser demostrada a partir de la misma. Vemos los elementos identidad. Tambin se puede concluir que x + x' = 1 y x x' = 0. Cumple con los postulados. LEYES Y TEOREMAS BSICOS DEL LGEBRA DE BOOLE A continuacin presento informacin recopilada de la Wikipedia. Por cierto que a los puntos siguientes slo agregara lo que acabo de mencionar al finalizar el punto anterior y las operaciones posibles con la identidad. (que luego se ven en la tabla en dualidad). Cito: Leyes fundamentales 1. El resultado de aplicar cualquiera de las tres operaciones definidas a variables del sistema booleano resulta en otra variable del sistema, y este resultado es nico. 2. Ley de idempotencia: A + A = A y A A = A 3. Ley de involucin: (A')' = A 4. Ley conmutativa: A + B = B + A y A B = B A 5. Ley asociativa: A + (B + C) = (A + B) + C y A (B C) = (A B) C 6. Ley distributiva: A + B C = (A + B) (A + C) y A (B + C) = A B+AC 7. Ley de absorcin: A + A B = A y A (A + B) = A 8. Ley de De Morgan: (A + B)' = A' B' y (A B)' = A' + B' Principio de dualidad

El concepto de dualidad permite formalizar este hecho: a toda relacin o ley lgica le corresponder su dual, formada mediante el intercambio de los operadores unin (NOTA PERSONAL: el + ) con los de interseccin (NOTA PERSONAL: el ), y de los 1 con los 0. Adicin 1 2 3 4 5 6 7 8 9 A + A' = 1 A+0=A A+1=1 A+A=A A+B=B+A A + (B + C) = (A + B) + C A + B C = (A + B) (A + C) A+AB=A (A + B)' = A' B' Producto A A' = 0 A1=A A0=0 AA=A AB=BA A (B C) = (A B) C A (B + C) = A B + A C A (A + B) = A (A B)' = A' + B'

FIN DE LA CITA. Entonces, para resumir y concluir este apartado se podra decir que todos los postulados se resumen en: 1. (a) x + 0 = x ; (b) x 1 = x 2. (a) x + x' = 1 ; (b) x x' = 0 3. (a) x + y = y + x ; (b) xy = yx (conmutativo) 4. (a) x (y + z) = xy + xz ; ( b) x + (y z) = (x + y) (x + z) (distributivo) y que de ellos pueden obtenerse (y probarse a travs de

demostraciones matemticas) los 6 teoremas: 1. (a) x + x = x ; (b) x x = x

2. (a) x + 1 = 1 ; (b) x 0 = 0 3. (x')' = x (involucin) 4. (a) x + (y + z) = (x + y) + z ; (b) x (yz) = (xy) z (asociativo) 5. (a) (x + y)' = x'y' ; (b) (xy)' = x' + y' (de Morgan) 6. (a) x + xy = x ; (b) x(x + y) = x (de absorcin) Entindase que, igualmente a lo que estamos acostumbrados, xy es equivalente a decir xy. Si quieren, tambin pueden comprobar lo anteriormente dicho realizando la tabla de la verdad de los distintos casos. Si por curiosidad desean ver como demostrar los teoremas a travs de los postulados pueden revisar el libro Lgica Digital y Diseo de Computadoras de M. Morris Mano en sus pginas 42 y 43. Prioridad del operador: La prioridad del operador al momento de evaluar una operacin viene dado por: Primero lo que est dentro de parntesis, segundo se realiza el operador NOT ( ' ), tercero el operador AND ( ) y por ltimo el operador OR ( + ). Para ms informacin del lgebra de Boole puede visitar este vnculo o este otro , ambas en la Wikipedia. Puede tambin encontrar informacin interesante de ste y muchos otros temas relacionados aqu.

FUNCIONES LGICAS
Tambin conocidas como funciones Booleanas, no son ms que expresiones formadas por variables binarias (o sea, que slo pueden ser cero o uno), los operadores lgicos OR, AND y NOT como tambin

los parntesis y el signo de igual. El orden en el que se realizan las operaciones viene dada por la prioridad del operador que comentamos al final del apartado anterior. Suponga lo siguiente: usted tiene un bombillo en su casa. ste contiene dos interruptores. Entendiendo que la posicin del interruptor en encendido se interpreta como un cierto o 1 y que el bombillo encendido tambin se entiende por un cierto o 1, si usted quiere que el bombillo se encienda si y slo si ambos interruptores estn en la posicin de encendido, usted podra definir una funcin lgica del problema de la siguiente forma: F = xy donde F es una funcin de Boole cuyo resultado slo puede ser '1' (encendido) '0' (apagado) y que muestra el estado del bombillo para las dos variables binarias 'x' y 'y' que seran los interruptores. Si creamos la tabla de la verdad de esta funcin tenemos que: X 0 0 1 1 Y 0 1 0 1 F 0 0 0 1

y esto es precisamente lo que queramos obtener. El bombillo se encender si ambos interruptores estn encendidos. Veamos otro ejemplo. F1 = xyz' Esto es una funcin de Boole representada por una expresin algebraica. sta la podemos representar tambin por medio de la tabla de la verdad. X Y Z F1

0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

0 0 0 0 0 0 1 0

Se ve que F1 ser 1 si x = 1, y = 1, z = 0 (z' = 1). Las tablas de la verdad de las funciones de Boole contendrn siempre 2n combinaciones de unos y ceros de las n variables incluida en la funcin y una columna que mostrar para que combinacin el resultado es uno o cero. En el caso anterior tenamos 3 variables or lo que necesitamos 8 combinaciones (23). Consideremos ahora los siguientes dos casos: F2 = x + y'z y F3 = x'y'z + x'yz + xy' El la siguiente tabla de la verdad se muestran para que casos las funciones F2 y F3 se hacen uno. X 0 0 0 0 1 1 1 1 Y 0 0 1 1 0 0 1 1 Z 0 1 0 1 0 1 0 1 F2 0 1 0 0 1 1 1 1 F3 0 1 0 1 1 1 0 0

Ok, pero existen varias expresiones algebraicas capaces de obtener el mismo resultado con las mismas variables. Qu quiere decir esto? Que yo puedo tener dos funciones de Boole con las mismas variables pero organizadas de otra forma (incluso puede contener menos variables) tal que el resultado de ambas funciones de Boole sea el mismo. De hecho sta es una de las aplicaciones ms importantes que se pueden obtener del lgebra de Boole y consiste en reducir o simplificar una funcin. De esta forma forma podramos realizar el diseo de nuestro circuito lgico de una forma ms compacto y con el uso de menos compuertas. Fjese en el siguiente ejemplo: F4 = xy' + x'z Si realiza la tabla de la verdad de esta funcin observar que el resultado es el mismo que para la funcin F 3. F4 ser uno o cero para la misma combinacin de X, Y y Z que hacen uno o cero la funcin F3. Como ya se mencion, las funciones lgicas pueden resumirse, hacerse ms sencillas. De esta forma al realizar el circuito se usarn menos compuertas. Ls formas de simplificar dichas funciones es tema de los prximos temas. Una funcin lgica puede ser transformada de una expresin algebraica a un diagrama compuesto por compuertas lgicas AND, OR y NOT. Por ahora veamos algunos conceptos bsicos de las compuertas lgicas (que es el punto a seguir) y al finalizarlo les mostrar como se expresa una funcin lgica en un diagrama de bloque formado por compuertas.

COMPUERTAS LGICAS
Los sistemas digitales electrnicos se llaman circuitos lgicos ya que realizan manipulaciones lgicas. Cualquier informacin deseada en un sistema de control puede ser obtenida a travs de la combinacin de varias operaciones lgicas. Como ya sabemos, las operaciones lgicas

bsicas son AND, OR y NOT y son precisamente stas las que se implementan en los circuitos lgicos, sto gracias al uso de las compuertas lgicas correspondientes. Una compuerta lgica no es ms que un diseo de circuitera electrnico capaz de reproducir el comportamiento de las operaciones lgicas. Existen compuertas lgicas para AND, OR, NOT y otras operaciones lgicas como la XOR u OR Exclusivo. La XOR se diferencia de la OR en que si sus dos entradas son '1' entonces el resultado ser '0' (la cual es la forma ms natural en la que nosotros pensamos gramaticalmente... algo puede ser Blanco o Negro pero no ambos). El smbolo para expresar XOR viene dado por signo + inscrito en un crculo. La tabla de la verdad de funcin XOR es: A B

0 0 1 1

0 1 0 1

0 1 1 0

Tambin existen compuertas para las operaciones lgicas NAND (que es una AND con un inversor (NOT) a la salida), la NOR (una OR con un inversor a la salida) y la XNOR (o NOR exclusivo representado por un punto inscrito en un crculo, que no es ms que una XOR con un inversor a la salida) entre algunas otras pero dira que las ya mencionadas son las ms importantes. A continuacin mostrar los smbolos que representan las compuertas descritas: Nombre Smbolo

AND

OR

NOT

NAND

NOR

XOR

XNOR

ATENCIN: A excepcin de la NOT, el resto de las compuertas pueden tener ms de dos entradas.
Sabiendo sto, veamos ahora como se representaran algunas de las funciones de las que hablamos antes pero diagramadas con las compuertas. En particular veremos las funciones F = xyz' y F4 = xy' + x'z. En ese orden:

y el otro sera:

Esto es todo por este tema. Para el prximo hablaremos de Simplificacin de funciones por algebra de Boole. Tabla de la verdad. Formas cannicas.

SIMPLIFICACIN DE FUNCIONES POR ALGEBRA DE BOOLE. TABLA DE LA VERDAD. FORMAS CANNICAS.


Gracias a los postulados y teoremas vistos en el tema anterior podemos simplificar cualquier funcin Booleana. Entindase por simplificar a que podemos reducir a la misma a otra funcin que use menos compuertas o incluso menos variables que la original y an as obtener los mismos resultados. La utilidad de sto es evidente ya que a la hora de implementar nuestro diseo digital, haremos uso de menos componentes reduciendo as el tamao del circuito y facilitando tambin dicha implementacin. Existen varias formas para reducir una funcin lgica y algunas de ellas sern vistas en los prximos temas pero en ste en particular, haremos las reducciones basndonos slo en reglas del lgebra de Boole, o sea, manipulaciones algebraicas. Para este tipo de simplificacin, no existen reglas preestablecidas. La mejor forma de simplificar una funcin de Boole por manipulacin algebraica es por medio del tanteo por lo que el mejor amigo en este tipo de procedimiento es la prctica. Veamos a continuacin ejemplos de simplificaciones de funciones de Boole. A + A'B

Sabemos, por ley distributiva, que sto es igual a: (A + A')(A + B) como A + A' = 1, entonces: A + A'B = A + B Queda claro que la reduccin es importante ya que la primera usa una compuerta OR, una NOT y una AND, mientras que la segunda slo usa una OR. Excelente. Ahora, haciendo uso de la tabla de la verdad que vimos en el tema anterior, veamos si ambas funciones obtienen el mismo resultado: A 0 0 1 1 B 0 1 0 1 A + A'B 0 1 1 1 A+B 0 1 1 1

En efecto, amblas tablas de la verdad muestran el mismo resultado. Veamos ms ejemplos. A(A' + B) Por ley distributiva, sto es igual a AA' + AB y como por por el postulado 2, AA' = 0, entonces: A(A' + B) = AB COMENTARIO: Debido al principio dualidad que manifiesta el lgebra de Boole, esa conclusin era de esperarse. Este ejemplo es, por dualidad, la contraparte del primero. Veamos las tablas de la verdad: A B A(A' + B) AB

0 0 1 1 Correcto.

0 1 0 1

0 0 0 1

0 0 0 1

ATENCIN: Estos ejemplos son bastante sencillos. Este tipo de reduccin no es tan fcil para funciones ms complejas. Por eso coment que la mejor forma de entender este mtodo es "practicando". A continuacin, ms ejemplos: Simplificar: 1. (x + y)(x + y') 2. xyz + x'y + xyz' 3. (x + y)'(x' + y')' 4. B(DC' + DC) + AB Respuestas: Para el nmero 1: (x + y)(x + y') por distributiva = xx + xy' + yx + yy' Por conmutativa: yx = xy. Por trminos complementarios yy' = 0, por lo tanto: = xx + xy + xy' = por distributiva x(x + y + y') = por asociativa x(x + (y + y')), pero como y + y' = 1, entonces = x(x + 1) = x (1) = x Respuesta: (x + y)(x + y') = x

Este ejemplo es interesante ya que vemos que la funcin no slo redujo los componentes (y de hecho los redujo de dos OR, una AND y un NOT a cero componentes) sino que tambin redujo el nmero de variables requeridas. Aqu se concluye que la variable 'y' no tiene efecto en el resultado lgico de la funcin. Veamos la tabla de la verdad de la funcin de Boole original: X 0 0 1 1 Y 0 1 0 1 (X+Y)(X+Y') 0 0 1 1

Se ve que la funcin tiene el mismo valor que 'x'. Para la 2: xyz + x'y + xyz' por distributiva = xy(z +z') + x'y = xy(1) +x'y = y(x + x') = y Se observa que se reducen el uso de tres variables, 5 AND, 2 OR y 2 NOT a una lnea directa desde una variable (sin compuertas). Veamos la tabla de la verdad de la funcin y veamos si coincide con la variable y X 0 0 0 0 1 1 1 Y 0 0 1 1 0 0 1 Z 0 1 0 1 0 1 0 XYZ+X'Y+XYZ' 0 0 1 1 0 0 1

PERFECTO!!! El tercer caso: (x + y)'(x' + y')' = (x'y')(xy) = xx'yy' = 0 Qu tal? Se us distributivo, teorema de Morgan, asociativo y ley de los complementos (xx' = 0). Veamos la tabla de la verdad de la funcin: X 0 0 1 1 Y (x+y)'(x'+y')' 0 0 1 0 0 0 1 0

Siempre resulta cero. El ltimo: B(DC' + DC) + AB = B(D(C + C')) + AB = BD + AB = B(D+A) reduciendo 4 variables, 4 AND, 2 OR y una NOT a slo 3 Variables, una AND y una OR. Veamos la tabla de la verdad: A 0 0 0 0 0 0 B C D B(DC'+DC)+AB 0 0 0 0 0 1 0 1 1 0 1 0 0 1 0 1 0 1 0 0 0 0 0 1 B(D+A) 0 0 0 0 0 1

0 0 1 1 1 1 1 1 1 1

1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1

0 1 0 1 0 1 0 1 0 1

0 1 0 0 0 0 1 1 1 1

0 1 0 0 0 0 1 1 1 1

Siga haciendo ejercicios. La simplificacin de funciones lgicas o de Boole es una parte importante en el diseo de aplicaciones lgicas. DEFINICIONES: Un literal no se refiere ms que a una variable de la funcin o a su complemento (A, B , x, y', etc). El ejemplo dos anterior, antes de la simplificacin, tiene 8 literales. Un trmino es una operacin que usa slo una compuerta lgica sin importar el nmero de literales que sta tenga. Por ejemplo XYZ' es un trmino de 3 literales. Slo usa una compuerta AND para X, Y y Z'. El ejemplo dos anterior tiene 3 trminos.

Complemento de una funcin Cuando invertimos una funcin lgica F (eso quiere decir que cambiamos los ceros por uno y viceversa) obtenemos la funcin invertida F' lo cual se conoce como el complemento de F. Para calcular el complemento de una funcin Booleana podemos ayudarnos con el teorema de Morgan que vimos en el tema anterior. En aquella oportunidad vimos el teorema con slo dos literales pero es fcilmente demostrable que tambin aplica a casos de 3 o ms literales (de hecho, hganlo como ejercicio: Demostrar que (A+B+C)'

= A'B'C'). El ejemplo ms sencillo sera que si tenemos F = A, el complemento de F sera F' = A'. En el caso de funciones ms complejas, puede usarse el teorema de Morgan tantas veces como sea necesario. Veamos algunos otros ejemplos: Siendo F1 = A'BC' + A'B'C y F2 = A(B'C'+BC), halle los complementos de ambas funciones. Respuestas: F1' = (A'BC'+A'B'C)' que por Morgan es = (A'BC')'(A'B'C)' Por Morgan en ambos trminos negados = (A+B'+C)(A+B+C') F2' = (A(B'C'+BC))' = A' + (B'C'+BC)' = A' + ((B'C')'(BC)') = A' + (B+C)(B'+C') que a su vez puede simplificarse a = A' + (BB'+BC'+B'C+CC') = A' + BC' + B'C El complemento de una funcin tambin puede ser hallado consiguiendo el dual de la funcin y luego invirtiendo todos sus literales.

FORMAS CANNICAS
Trminos mnimos y mximos Sabemos que podemos expresar el complemento de una variable gracias al uso del tilde ( ' ). Para el caso de que una funcin contenga dos variables A y B, con los que se puede formar los cuatro literales A, B , A' y B', existen slo cuatro posibilidades de combinar stas (o sea, 4 trminos) a travs de una AND y stas son: AB, AB', A'B y A'B'. A cada una de estas cuatro combinaciones se les conoce como trmino mnimo ( minterm) y su designacin es mk donde k es un nmero entre 0 y 2n-1.

Se dice que un trmino es normal cuando las variables aparecen slo una vez en dicho trmino ya sea en su forma directa o invertida (A o A'). Un trmino producto es aquel en el que los literales que contiene estn relacionados slo por una operacin AND, por ejemplo (AB), (AB'C), (AD), etc. Por eso a los trminos mnimos tambin se les conoce como trminos mnimos del producto normalizado. Teniendo las mismas variables del caso anterior, existen cuatro trminos posibles de expresar a travs de compuertas OR y estos son: (A+B), (A'+B), (A+B') y (A'+B'). A cada uno de stos se les conoce como trmino mximo ( maxterm) y su designacin es Mk donde k es un nmero entre 0 y 2n-1. Un trmino suma es aquel en el que los literales que contiene estn relacionados slo por una operacin OR, por ejemplo (A+B), (A+C), (A+D+E), etc. Por eso a los trminos mximos tambin se les conoce como trminos mximos de la suma normalizada. Los casos vistos anteriormente son con dos variables pero existen trminos mnimos y mximos para cualquier nmero de ellas. Teniendo n variables posibles, el nmeros de trminos mximos y mnimos ser siempre igual a 2n que sern las representaciones de todos los casos entre 0 y 2n 1. Veamos una tabla que muestra sto para un caso de 3 variables. Variables X 0 0 0 0 1 1 Y 0 0 1 1 0 0 Z 0 1 0 1 0 1 Trminos mnimos Trmino Designacin x'y'z' x'y'z x'yz' x'yz xy'z' xy'z m0 m1 m2 m3 m4 m5 Trminos mximos Trmino x+y+z x+y+z' x+y'+z x+y'+z' x'+y+z x'+y+z' Designacin M0 M1 M2 M3 M4 M5

1 1

1 1

0 1

xyz' xyz

m6 m7

x'+y'+z x'+y'+z'

M6 M7

Vase en la tabla que para cada combinacin binaria posible, el trmino mnimo ser aquella que haga 1 el resultado a travs de la AND y el trmino mximo ser el que haga 0 el resultado de la OR. Ambas son situaciones nicas. Para cada combinacin binaria posible existe uno y slo un trmino mnimo y slo un trmino mximo. Observe tambin que son 3 variables, hay 2n = 23 = 8 combinaciones y que para los mk y Mk, k va entre 0 y 2n 1 que se representa con el nmero decimal correspondiente a la combinacin binaria (Ej: xyz = (101)2 = (5)10, entonces k=5). Dada cualquier tabla de la verdad, es posible expresar algebraicamente una funcin lgica a travs de sus trminos mnimos. sto es creando dicha funcin para que contenga una OR entre todos los trminos mnimos que hacen que dicha funcin sea 1. Por ejemplo, si la funcin se hace uno cuando las variables son 010 entonces dicha funcin contendr el trmino mnimo x'yz' que es el trmino que se hace 1 para esa combinacin. Para profundizar un poco ms, veamos la siguiente tabla de la verdad: X 0 0 0 0 1 1 1 1 Y 0 0 1 1 0 0 1 1 Z 0 1 0 1 0 1 0 1 F1 0 1 1 1 0 0 0 1 F2 1 1 0 0 0 1 1 1

Entonces, F1 = 1 para:

F1 = x'y'z + x'yz' + x'yz + xyz (que es una OR entre m1, m2, m3 y m7) y F2 = 1 para: F2 = x'y'z' + x'y'z + xy'z + xyz' + xyz (que es una OR entre m0, m1, m5, m6 y m7) CONCLUSIN: Cualquier funcin lgica puede ser expresada a travs de una suma (OR) de trminos mnimos. Se puede formar el complemento de una funcin a travs de trminos mnimos haciendo una OR entre todos aquellos que hagan a dicha funcin 0. Por ejemplo, para la tabla de la verdad anterior: F1' = x'y'z' + xy'z' + xy'z + xyz' aplicando Morgan a esta funcin llegamos a que tambin es posible expresar algebraicamente una funcin lgica a travs de sus trminos mximos y sto se hace creando una funcin que contenga una AND entre todos los trminos mximos que hacen que la misma sea 0. Segn la misma tabla de la verdad anterior: F1 = (x+y+z)(x'+y+z)(x'+y+z')(x'+y'+z) = M0M4M5M6 De forma anloga: F2 = M2M3M4 Recuerden sto: LO QUE SIEMPRE BUSCAMOS EN UNA

FUNCIN DE BOOLE ES LA COMBINACIN QUE HAGA QUE DICHA FUNCIN SEA CIERTA O UNO (1). Se ve que si
uno de los trminos suma es cero entonces la funcin se har cero tambin. Por ellos la funcin NO puede contener ninguno de los trminos mximos si queremos que se haga cierta dicha funcin. CONCLUSIN: Cualquier funcin lgica puede ser expresada a travs de un producto (AND) de trminos mximos.

A las funciones de Boole que estn expresadas como un producto de trminos mximos o una suma de trminos mnimos se le conoce como FORMA CANNICA de la funcin. Algunas veces se hace conveniente expresar una funcin lgica en su forma cannica, digamos como una suma de trminos mnimos. Pero hay veces que la funcin no contiene a todos los literales posible para el trmino. En esta caso lo que se hace es aprovechar los postulados de identidad y ley conmutativa para agregar al trmino los literales faltantes. Cmo? Inspeccionamos toda la funcin. Si vemos que en alguno de sus trminos falta una variable, digamos que A, entonces hacemos una AND del trmino con (A+A'). Como (A+A')=1 no alteramos el resultado del trmino. Luego aplicamos propiedad distributiva. Veamos un ejemplo para clarificar este punto: Sea F = BC + AC' + AB, para hallar la forma cannica de esta funcin debemos hacer: = BC(A+A') + AC'(B+B') + AB(C+C') = ABC +A'BC + ABC' + AB'C' + ABC + ABC', que por absorcin es: = ABC + A'BC + ABC' +AB'C' que son m7, m3, m6 y m4 NOTA: Como ejercicio, simplifique la expresin anterior a cuatro literales. Hay ocasiones en las que expresar una funcin de Boole a travs de su tabla de la verdad o de una de sus formas cannicas se hace tedioso debido a lo largo que se hara el trabajo. Es por ello que existe una forma de mostrar la misma funcin pero de manera abreviada. sto se hace expresando las funciones a travs de una sumatoria (matemticamente expresada por el signo Sigma mayscula una productoria (expresada por el signo PI maysculo

) o de

usado

tambin en los factoriales). La forma incluir de un lado el nombre de

la funcin (regularmente F Fn) y las variables que contiene entre parntesis y del otro lado de la igualdad el nmero del trmino mnimo a incluir si es una sumatoria o el nmero de trminos mximos si es una productoria con su respectivo signo sigma o pi. Tomemos como base las funciones F1 y F2 con las que hemos estado trabajando. Entonces: F1(x,y,z) = y F2(x,y,z) =

(1,2,3,7) = (0,4,5,6)

(0,1,5,6,7) = (2,3,4)

Se conoce como Forma normalizada de una funcin a una funcin de Boole ya sea expresada como una suma de productos o un producto de sumas donde en cada trmino aparece uno de los literales ya sea una, dos o cualquier nmero de veces. Las formas cannicas son formas normalizadas de la funcin pero existen otras formas que no contienen todos los literales. Por ejemplo: F = x + x'y + xy'z es una forma normalizada de una funcin lgica ya que est compuesta por una suma de tres trminos productos con uno, dos y tres literales respectivamente. La forma dual de esa funcin: F = x(x'+y)(x+y'+z) tambin es una funcin en su forma normalizada ya que contiene el producto de tres sumas. Son tres trminos sumas con uno, dos y tres literales respectivamente. Por otra parte NO es una forma normalizada: F = (xy + wz)(x'y' + w'z'), pero puede convertirse en una si se aplica la propiedad distributiva, siendo entonces la suma de productos obtenida la siguiente: F = xyw'z' + x'y'wz (atencin: los otros dos trminos resultantes del postulado distributivo son cero y se omitieron) Lo que queda ahora es hacer ejercicios. En la prxima clase virtual se vern algunos.

Si desea ampliar esta informacin, le recomiendo este enlace que est excelente. Refiere varios de los puntos vistos hasta ahora. Si quiere otra perspectiva, le recomiendo que vayan. Para la prxima clase veremos el tema 4: Simplificacin de funciones por el mtodo de los mapas de Karnaugh.

SIMPLIFICACIN DE FUNCIONES POR EL MTODO DE LOS MAPAS DE KARNAUGH


Anteriormente comentamos que haban otras formas de simplificar una funcin aparte de la simplificacin algebraica. Otra manera de simplificar funciones es representndolas en lo que se conoce como mapas de Karnaugh. ste constituye un mtodo sencillo y apropiado para la minimizacin de funciones lgicas. El tamao del mapa depende del nmero de variables, y el mtodo de minimizacin es efectivo para expresiones de hasta 6 variables. Por supuesto que siempre podrn resolverse las simplificaciones por teoremas. Sin embargo, mucha gente considera que resulta ms fcil visualizar las simplificaciones si se presentan grficamente. Como ya se dijo, los mapas de Karnaugh pueden aplicarse a dos, tres, cuatro, cinco y seis variables ya que para ms variables, la simplificacin resulta tan complicada que conviene en ese caso utilizar teoremas mejor. Entonces, el mapa de Karnaugh es un mtodo grfico que se utiliza para simplificar una funcin lgica y as facilitar el diseo del correspondiente circuito lgico, todo en un proceso simple y ordenado. Obtener la funcin de un Mapa de Karnaugh es el procedimiento inverso a la de la realizacin del mapa. Un trmino de la funcin coloca uno o mas "unos" en el mapa de Karnaugh. Tomar esos unos, agrupndolos de la forma adecuada, nos permite obtener los trminos de la funcin. Utilizaremos los Mapas de Karnaugh para obtener una funcin mnima. Una expresin es

mnima si no existe otra expresin equivalente que incluya menos trminos y no hay otra expresin equivalente que conste con el mismo nmero de trminos, pero con un menor nmero de literales. Pueden existir varias expresiones distintas, pero equivalentes, que satisfagan esta definicin y tengan el mismo nmero de trminos y literales. La minimizacin de funciones sobre el mapa de Karnaugh se aprovecha del hecho de que las casillas del mapa estn arregladas de tal forma que entre una casilla y otra, en forma horizontal o vertical existe ADYACENCIA LOGICA. Esto quiere decir que entre una casilla y otra slo cambia una variable. Definimos los trminos mnimos adyacentes desde el punto de vista lgico como dos trminos mnimos que difieren slo en una variable. Agrupando casillas adyacentes obtenemos trminos que eliminan las variables que se complementan, resultando sto en una versin simplificada de la expresin. El procedimiento es el de agrupar "unos" adyacentes en el mapa. Cada grupo corresponder a un trmino producto, y la expresin final dar un OR (suma) de todos los trminos producto. Se busca obtener el menor nmero de trminos productos posible. Veamos ahora algunos ejemplos ya que creo que la mejor forma de entender este concepto es con ellos. 1.- Simplificar la funcin de dos variables F=A'B+AB'+AB Lo primero que hay que hacer es representarlo en un mapa de dos variables. La forma de hacerlo es similar a una tabla. Veamos como sera la tabla de la verdad: A 0 0 1 1 B 0 1 0 1 F 0 1 1 1

Para un mapa de dos variables, el concepto sera algo como: A\B 0 1 0 m0 m2 1 m1 m3

OJO: Puse el signo \ por comodidad pero en realidad es una lnea completa desde la esquina superior izquierda hasta la inferior derecha que divide esa celda en dos tringulos iguales. Las variables con las que se est trabajando se colocan en cada una de esas divisiones. En este caso quiero hacer ver que la A es la columna y la B es la fila. De ahora en adelante lo mostraremos siempre as pero en realidad debera verse as:

Pues bien, mn representa los trminos mnimos. Si tuvisemos la funcin expresada en forma cannica segn sus trminos mnimos ya sabramos exactamente donde colocar todos los unos. Observen tambin que en el mapa se ve 0's y 1's tanto en la columna como en la fila. La columna indicara cuando A=0 (tambin puede colocarse A' en vez del 0) y cuando A=1 (puede colocarse A). Sabiendo sto, y con ayuda de la tabla de la verdad que nos indica cuales son los casos en los que se hace uno la funcin, veamos ahora como sera con un mapa de Karnaugh: A\B 0 1 0 0 1 1 1 1

O incluso podran hacer algo como: B' A' A 0 1 B 1 1

O sea, que para llenar la tabla, pongo un uno en todos los trminos mnimos que contenga la funcin (que para la funcin F=A'B+AB'+AB son m 1, m2 y m3 respectivamente) o sencillamente donde la tabla de la verdad me indique [que son los grupos (A,B) = (0,1), (1,0) y (1,1)]. Dicho sto, creo que ya pueden visualizar bien la forma en la que se hace el mapa. Continuemos. Una vez hecho el mapa, debemos marcar las regiones contiguas que manejen 1's. En el siguiente dibujo vemos cmo se marcan dos regiones. Estas regiones son las simplificaciones. Como la regin azul involucra solamente a la B, eso representa. La regin roja, por su parte, involucra solamente a la A.

Una vez definidas las regiones o

agrupaciones, se escribe la funcin simplificada y en este caso es F=A+B (Que es la respuesta obvia ya que el nico 0 que contiene la funcin es M 0 y dicho trmino mximo es A+B). Viendo la tabla de la verdad, tambin se deduce que la operacin es una OR. Las agrupaciones siempre se hacen en forma de rectngulo. En general, si tenemos una funcin con n variables :

Un rectngulo que ocupa una celda equivale a un trmino con n variables.

Un rectngulo que ocupa dos celdas equivale a un trmino con n-1 variables.

Un rectngulo que ocupa 2n celdas equivale al trmino de valor 1.

Todos los rectngulos o agrupaciones contendrn un nmero par de celdas (en realidad con 2n celdas) con la nica excepcin de cuando

es una celda nica. Por lo tanto, para encontrar expresin ms simplificada se debe:

Minimizar el nmero de rectngulos que se hacen en el mapa de Karnaugh, para minimizar el nmero de trminos resultantes.

Maximizar el tamao de cada rectngulo, para minimizar el nmero de variables de cada trmino resultante.

Veamos otro ejemplo: Simplificar la funcin de tres variables F=A'B+AB'C+C' Lo primero que hay que hacer es representarlo en un mapa de Karnaugh de tres variables. En el caso de 3 variables la forma genrica sera algo como: A \ BC 0 1 00 m0 m4 01 m1 m5 11 m3 m7 10 m2 m6

Ok, ponga muchsima atencin ac. En las tablas para tres variables, colocamos una variable sla (ya sea en la columna o en la fila) y las otras dos variables juntas en el otro extremo. Yo lo coloco as por costumbre pero como usted lo ordene no cambiar el resultado. OBSERVE con especial atencin la forma en la que vara los nmeros en el mapa. En el caso de la fila que contiene a BC, los bits que contienen NO incrementan en forma normal. En vez de ello el cambio se hace de forma tal que los valores adyacentes reflejen nicamente el cambio de un bit (algo as al estilo del cdigo Gray o reflejado que vimos en captulos anteriores). Esto DEBE HACERSE AS. De lo contrario el mapa no servira ya que celdas adyacentes podran contener cambios de ms de una variable lo cual es impermisible. Observen tambin que debido a esta caracterstica los trminos mnimos en las celdas no cambian incrementando naturalmente en decimal. Se ve que en la fila de A' se encuentran m0, m1, m3, y m2 respectivamente y en ese extricto orden. NOTA: Un tip. El trmino mnimo que debe ir en cada celda se puede calcular fcilmente convirtiendo los bits ABC a decimal. Por ejemplo, en la celda en la

que la combinacin de los bits para ABC es 011 (cuyo valor decimal es 3), va rellena con m3. Esta propiedad se cumple siempre y lo veremos en los casos con ms variables. Dicho esto continuemos. Aqu no realizar la tabla de la verdad. En vez de ello colocar los unos directamente sobre el mapa. Si usted quiere puede hacer la tabla de la verdad o llevar la funcin a su forma cannica. Yo sencillamente no lo hago para ahorrar tiempo ya que en este punto, esos temas ya deben ser dominados por ustedes. En todo caso el resultado de la funcin en sus formas cannicas simplificadas es F(A,B,C)=(1,7)=(0,2,3,4,5,6) A \ BC 0 1 00 1 1 01 0 1 11 1 0 10 1 1

Coloqu los unos donde corresponda y ahora debemos buscar las regiones que nos indiquen la funcin simplificada. Lo primero que debemos observar es que las regiones pueden agruparse de los extremos del mapa, como la regin azul que vemos a continuacin:

Esta regin representa a C'. Por qu queda C'? Observe que el rectngulo de 4 celdas son comunes a C=0. (Para facilitar el entendimiento de este punto, coloque A en amarillo en el borde izquierdo para

cuando A=1 y coloqu unas llaves que indican cuando B=1 y C=1). Se ve que el rectngulo rodeado por azul es C' (La llave con C no tiene ningn caso all) y se ve que no importan los valores de A ni de B ya que estn complementados (0 1 en ambas variables). Vemos tambin que queda un bit en A'BC (que est en rojo) y uno en AB'C (en amarillo), pero siempre conviene agruparlo lo ms posible, en regiones cuyas celdas sean potencias de 2. En este caso, los agrupamos con el 1 contiguo, para que la regin quede como A'B (ya que la elipse roja est sobre A' y bajo B -vea la llave) y AB' (analcelo) respectivamente. As, la funcin resultante sera F=A'B+AB'+C'.

Veamos otro caso. Simplificar la funcin de cuatro variables F(A,B,C,D)=(0,2,3,5,7,8,10,13) En los casos de 4 variables podemos organizar de la siguiente forma: AB \ CD 00 01 11 10 00 m0 m4 m12 m8 01 m1 m5 m13 m9 11 m3 m7 m15 m11 10 m2 m6 m14 m10

Note nuevamente la variacin en las filas y columnas. Slo un bit cambia en las adyacencias. FJESE muy bien como quedaron organizados los trminos mnimos. Vea y deduzca que si combina los bits ABCD y convierte a decimal, ver que la celda correspondiente contiene el trmino mnimo que explicamos anteriormente que debera contener. Por ejemplo si AB,CD=10,11, (1011) 2=11 y en dicha celda est m11. Lo primero que hacemos es vaciar la funcin al mapa. Como ya tenemos la forma cannica, el vaciado es directo. Observe como queda el mapa. AB \ CD 00 01 11 10

00 01 11 10

1 0 0 1

0 1 1 0

1 1 0 0

1 0 0 1

Ahora, lo siguiente es agrupar las variables en regiones. La primera regin agrupada son las esquinas (en rojo). Esta agrupacin representa B'D' ya que los valores comunes son B=0 y D=0. A y C tienen ambos valores, o sea, estn complementados. Como ejercicio muestre este mapa con las llaves indicando donde las variables son 1 tal como mostr el caso anterior. No lo hago yo aqu porque me consume mucho tiempo. Sigamos. La siguiente regin la agrupo con los 1's en verde y esta agrupacin representa A'CD. Pude hacer el grupo con el 1 a la derecha, pero hubiera significado agrupar un 1 ya agrupado (que, como vimos, a veces es requerido para simplificar an ms la expresin), y dejar otro 1, an no agrupado, por agrupar. As que se agrupa de esta forma para obtener menos trminos. Los 1's que quedan hasta este momento, en azul, pueden agruparse juntos. Esto representa a BC'D. Por lo tanto la funcin queda: F=B'D'+A'CD+BC'D. Es importante notar que se puede agrupar otra region con un 1 verde y uno azul y representara A'BD. Esta regin es una simplificacin adicional vlida, que pudo haberse manejado e incluso agregado a la funcin. En ocasiones, habr varias formas de agrupar a los 1's. Todas son vlidas, y representan soluciones equivalentes. Sin embargo, hay que cuidar de siempre agrupar las regiones lo ms grandes posibles, y cuidando de agrupar a los 1's de manera que se repitan lo menos posible. Como esos unos ya fueron agrupados no requieren volver a serlo. Entonces los pasos a seguir para simplificar una funcin son: 1. Convertir la expresin a una suma de productos si es necesario. sto se puede realizar de varias maneras:

Llevndola algebraicamente a su forma cannica.

Construyendo una tabla de verdad, trasladando los valores al mapa de Karnaugh.

2. Cubrir todos los unos del mapa mediante rectngulos de 2n elementos. Ninguno de esos rectngulos debe contener ningn cero.

Para minimizar el nmero de trminos resultantes se har el mnimo nmero posible de rectngulos que cubran todos los unos.

Para minimizar el nmero de variables se har cada rectngulo tan grande como sea posible. Ejemplo:

Vase que en este caso se ha unido la columna izquierda con la derecha para formar un nico rectngulo y que el uno en 001 se ha emparejado con el uno de al lado con la idea de reducir ese trmino en un literal. 3. Encontrar la suma de productos mnima. Ojo, como ya se dijo, podemos encontrarnos con que puede haber ms de una suma de productos e incluso casos en que tengamos dos reducciones con el mismo nmero de trminos y literales siendo ambas vlidas.

Cada rectngulo pertenece a un trmino producto. Cada trmino se define encontrando las variables que hay en comn en tal rectngulo.

En nuestro ejemplo tenemos F(X, Y, Z) = Z + XY . Ntese que las variables resultado son las que tienen un valor comn en cada rectngulo.

Cada rectngulo representa un trmino. El tamao del rectngulo y el del trmino resultante son inversamente proporcionales, es decir que, cuanto ms largo sea el rectngulo menor ser el tamao del trmino final. Cuando tenemos distintas posibilidades de agrupar rectngulos hay que seguir ciertos criterios: 1. Localiza todos los rectngulos ms grandes posibles, agrupando todos los unos. Estos se llamarn implicantes primos. 2. Si alguno de los rectngulos anteriores contiene algn uno que no aparece en ningn otro rectngulo entonces es un implicante primo esencial. stos han de aparecer en el resultado final de manera obligatoria. 3. El resto de los implicantes primos se podrn combinar para obtener distintas soluciones. Vase este ejemplo que ilustra lo dicho. Aqu los implicantes primos son cada uno de los diferentes rectngulos obtenidos. Los implicantes primos esenciales son el rectngulo rojo y el verde, por contener unos que no son cubiertos por otros rectngulos. As todas las posibles soluciones han de contener estos dos implicantes.

La mejor solucin, por ser la que usa menos trminos y menos literales es: F( X, Y, Z, T ) = XY + XYT + XZT Ejemplo. Para la funcin: F=A'B'C'D'+A'BC'D'+ABC'D'+AB'C'D'+A'BC'D+ABC'D+AB'C'D+ABCD +AB'CD+A'B'CD'+A'BCD'+ABCD'+AB'CD' el mapa es:

Supongamos por un momento que agrupamos los "unos" del mapa de Karnaugh como se muestra en la siguiente figura:

Segn esto tenemos cuatro trminos que son: trmino I : agrupa 8 unos es A. Este trmino es un trmino II : agrupa 4 unos y es de una variable. sta implicante primo esencial. y es de dos variables.

stas son BC con C negado. Es un implicante primo esencial. trmino III : agrupa 2 unos y es de tres variables. stas son ACD con A y D negados. NO es un implicante primo. trmino IV : agrupa slo un 1 y es de cuatro variables que son ABCD todos negados. ste, NO es un implicante primo. Esa forma de organizar el mapa NO contiene ningn implicante primo que NO sea esencial. Puede verse que a medida que agrupamos mayor cantidad de "unos", el trmino tiene menos literales. El agrupamiento se hace con una cantidad de "unos" que son potencias de 2. As agrupamos 2 minterm's, 4 minterm's y 8

minterm's. Cada vez que aumentamos el rectngulo, el trmino va eliminando una variable. En una funcin de 4 variables, un trmino que tenga un slo "uno" tendr las cuatro variables. De hecho es un trmino cannico. Al agrupar dos minterm's eliminaremos una variable y el trmino quedar de tres variables. Si agrupamos cuatro "unos" eliminaremos dos variable quedando un trmino de dos variables y finalmente si agrupamos ocho "unos" se eliminaran tres variable para quedar un trmino de una nica variable. Todo esto se debe a la adyacencia entre casillas y cada vez que agrupamos, se eliminan las variables que se complementan. En este ejemplo obtenemos F=A'B'C'D'+A'CD'+BC'+A Pero en realidad, sta no es la funcin mnima... cierto? El mismo mapa podemos agruparlo de otra forma y obtener:

sta forma de agruparlos nos da como resultado: F=D'+BC'+A que s es expresin mnima. Es importante que al "tomar" un uno, se agrupe con todos los unos adyacentes, aunque stos ya sean parte de otros grupos. Fjense que el minterm en ABCD=(1100)2 es comn a los tres trminos. Aqu, los tres grupos son implicantes primos esenciales por lo que todos deben ir incluidos en la funcin simplificada. Vamos de nuevo. Recuerden que para simplificar funciones utilizando mapas de Karnaugh hay que tener en cuenta que:

Podemos concluir que cada casilla (minterm) en un mapa de Karnaugh de n variable tiene n casillas adyacentes lgicamente, o sea, que se diferencian en las adyacencias por una sola variable (se complementan). Esta informacin es de gran utilidad en los casos de 5 y 6 variables.

Al combinar las casillas en un mapa de Karnaugh, agruparemos un nmero de minterm's que sea potencia de dos. As, al agrupar dos

casillas eliminamos una variable, al agrupar cuatro casillas eliminamos dos variables, y as sucesivamente. De hecho podemos concluir que al agrupar 2n casillas, eliminamos n variables.

Debemos agrupar tantas casillas como sea posible; cuanto mayor sea el grupo, el trmino producto resultante tendr menos literales. Es importante incluir todos los "unos" adyacentes a un minterm que sea igual a uno.

Para que hayan menos trminos en la funcin simplificada, debemos formar el menor numero de grupos posibles que cubran todas las casillas (minterm's) que sean iguales a uno. Un "uno" puede ser utilizado por varios grupos, no importa si los grupos se solapan. Lo importante es que si un grupo est incluido completamente en otro grupo, o sus "unos" estn cubiertos por otros grupos, no hace falta incluirlo como trmino.

Veamos otro caso en el que repasamos lo que significa trminos implicantes. En el siguiente mapa de Karnaugh:

Los trminos I, II y III son implicantes primos. El trmino IV no es implicante primo. Los trminos I y III son implicantes primos esenciales.

El trmino II no es un implicante primo esenciales. La funcin se obtiene con los trminos I y III

Mapas de Karnaugh con 5 y 6 variables


Los ejemplos anteriores se realizaron con funciones de hasta 4 variables. Para mapas de Karnaugh de 5 y 6 variables el procedimiento es esencialmente el mismo y slo hay que recordar que un trmino mnimo tiene adyacente a otro

minterm, tanto en forma horizontal o vertical, qu muestra diferencia en una sola variable. Veamos a continuacin el caso de 5 variables. Aqu hay 2 5 = 32 posibilidades. Una de las formas de ver el mapa es:

sta ser la forma que nosotros usemos. Se observa que se separan los casos para A=0 y A=1 para hacerlo ms fcil de entender y que en las adyacencias slo una variable cambia. Todos los nmeros en las celdas hacen referencia a los trminos mnimos. Tambin debe saber que, tanto en este

caso como en el de 6 variables, la adyacencia tambin se cumple para las mismas celdas de los cuadros que se encuentren al lado tanto horizontal como verticalmente (Slo horizontal en 5 variables y
ambos sentidos en 6). O sea, el trmino mnimo 31 es adyacente al 15. De la misma forma los trminos mnimos 31 y 30 son adyacentes a los 15 y 14 respectivamente. Se ve tambin que, al igual que en los otros casos, los trminos mnimos que corresponden a cada celda pueden calcularse convirtiendo el nmero binario de la respectiva combinacin ABCDE. Por ejemplo, para ABCDE=(10110)2 =22, el trmino mnimo en la celda es el m22. Supongamos el siguiente caso: Simplificar la funcin F= (0,2,8,11,15,18,20,21,27,28,29,31) Colocando un uno en los trminos mnimos correspondientes, tenemos que:

De forma anloga a lo que

hemos venido haciendo, agrupamos los trminos mnimos. Una forma ideal de agruparlos sera:

Vemos que ningn trmino queda solo y que se hicieron la menor cantidad de grupos posibles. Esta funcin quedara en su forma simplificada: F=A'C'D'E'+BDE+B'C'DE'+ACD' que son los grupos I, II, III y IV respectivamente. Por ltimo, para el caso de 6 variables tenemos 64 combinaciones posibles y la forma para expresar el mapa que nosotros usaremos ser:

Se observa que se separan los casos para A=0, A=1, B=0 y B=1. Por supuesto que, como en el resto de los casos, todos los nmeros en las celdas hacen referencia a los trminos mnimos. Tambin se cumple que los trminos mnimos que corresponden a cada celda pueden calcularse convirtiendo el nmero binario de la respectiva combinacin ABCDEF. Por ejemplo, para ABCDEF=(101101) 2=45, el trmino mnimo en la celda es el m45. Aqu la adyacencia es un poco ms difcil de ver. Por ejemplo, las casillas con los trminos mnimos (63,62) es adyacente,

adems de a todas las adyacencias normales del cuadro, a (47,46) y a (31,30). Otro ejemplo, m0 es adyacente a m1, m4, m2, m8, m16 y m32. (OJO: pero NO a m48 ya que aqu hay dos variables distintas con respecto a m0). Como ejercicio, resuelva el siguiente mapa:

La solucin a este problema est en esta misma carpeta y el nombre de la imagen solucin es el mismo que el de la imagen problema agregndole _Solucion (sin los parntesis) al final.

Para practicar les voy a dar un programa freeware muy intuitivo y fcil de usar, aunque limitado a 4 variables. Llenan la tabla de la verdad y a medida que van colocando los unos, se va llenando el mapa de Karnaugh, a la vez que se van agrupando los trminos y mostrando el resultado abajo. A/B/CD representa AB'C'D. Usan /X para simular la raya sobre la letra que representa el smbolo de negado (al igual que el tilde). Tambin se pueden marcar los unos directamente en el mapa de Karnaugh. Es un archivo pequeo y no se requiere instalacin. Hagan click aqu para bajarlo. ####################################################### NOTA AGREGADA: He conseguido otro programa bastante bueno y gratuito. El programa fue creado por Javier Garca Zuba y su pgina web est en http://paginaspersonales.deusto.es/zubia/. All encontrarn varios links. El programa en cuestin est en BOOLE-DEUSTO: Descarga gratuita (espaol) .

Tambin all encuentran un manual en BOOLE-DEUSTO: Manual (espaol). El programa que me interes ms est dentro del archivo comprimido BOOLE_SP con nombre boole.exe. Si no quieren leer el manual (cosa que deberan), luego de usarlo un rato se entiende como funciona. No es para nada tan fcil de usar como el otro programa que les di, pero si muchsimo ms completo con muchas ms opciones. Muy Interesante. He hecho ejemplos de hasta 12 variables. Tambin tiene varios mtodos para la entrada de los datos. Prubenlo. ####################################################### Hagan el siguiente ejercicio a mano y luego, con la tabla de la verdad o la forma cannica que consiguieron, prueben el programa.

F(x, y, z,w) = xyzw + xyz + xyzw' + xyz + xyz

Si lo desea, puede ver otros puntos de vista de este tema en:


http://azul.bnct.ipn.mx/~pfuentes/ http://www.monografias.com/trabajos14/karnaughmapa/karnau ghmapa.shtml

http://perso.wanadoo.es/luis_ju/edigital/ed06.html http://html.rincondelvago.com/mapa-de-karnaugh.html

Para la prxima clase veremos el tema 5: Condiciones irrelevantes (don't care). Universalidad de las compuertas NAND y NOR.

TEMA 5: CONDICIONES IRRELEVANTES (DON'T CARE).

Hasta ahora siempre hemos visto en nuestras tablas de la verdad los casos para cuando una combinacin cualquiera en las entradas hacen nuestra salida del circuito cierta (un 1), y solamos asumir que el resto de ellas eran falsas (cero). sto no es siempre cierto. Al momento de disear nuestros circuitos se nos pueden presentar casos en los que una combinacin en la entrada no sea de nuestro inters. Estas condiciones que no nos importan se conocen como condiciones irrelevantes o tambin con la frase inglesa don't care. Estas condiciones suelen expresarse en las tablas de la verdad con una 'X' y al momento de realizar la simplificacin de la funcin podemos asumir que este valor es uno o cero segn ms nos convenga (lo que haga la expresin an ms reducida). Incluso podemos sencillamente ignorar este valor si no obtenemos ningn beneficio de l. Pero me imagino que se preguntarn, Cmo es eso de una combinacin en la entrada que no nos importa? Bien, un ejemplo clsico es que al circuito se le entregue para procesar un nmero en BCD. Ya sabemos que el cdigo BCD usa 4 bits para expresar los 10 dgitos decimales pero de esta forma sobran otras seis combinaciones que no se usan (1010, 1011, 1100, 1101, 1110 y 1111). Pues bien, si nuestro circuito procesar este nmero en BCD, en nuestra tabla de la verdad tendramos seis casos que no nos importan ya que sencillamente nunca ocurrirn. Veamos un ejemplo tambin clsico para ejemplificar sto. Supongamos que se pide disear un circuito que debe reconocer cuando un nmero entre 1 y 9 es primo. Para este caso tendramos una tabla de la verdad como la que sigue: A 0 0 0 B 0 0 0 C 0 0 1 D 0 1 0 Out X 0 1

0 0 0 0 0 1 1 1 1 1 1 1 1

0 1 1 1 1 0 0 0 0 1 1 1 1

1 0 0 1 1 0 0 1 1 0 0 1 1

1 0 1 0 1 0 1 0 1 0 1 0 1

1 0 1 0 1 0 0 X X X X X X

Se observa que en la entrada que representara el valor decimal 0 se coloca X ya que este caso no est dentro de los presentados en el enunciado (entre 1 y 9). De forma anloga, los casos del 10 al 15 tienen X por la misma razn. En ciertas bibliografas muestra la expresin: d(A,B,C,D) = (0,10,11,12,13,14,15) para representar los casos que no importan (letra d por don't care). Bien, ahora, veamos como se vera un mapa derivado de esta tabla de la verdad: CD\AB 00 01 11 10 00 X 0 1 1 01 0 1 1 0 11 X X X X 10 0 0 X X

Ok. Vemos que la mejor forma de considerar los casos irrelevantes es haciendo que donde va m0, m12, y m14 haya cero y en el resto un uno. As podremos hacer el menor nmero de grupos y a la vez los hacemos lo ms grandes posibles, tal y como vemos en el siguiente mapa:

As obtendramos la funcin de salida: F = BD + B'C Veamos otro ejemplo. Sabiendo que su circuito recibir una entrada BCD, el mismo debe determinar cuando el nmero de entrada es par. (Aunque segn para algunos lo que dir a continuacin no es cierto, asuma para este ejemplo que que el cero es par). A 0 0 0 0 0 0 0 0 1 1 1 1 1 B 0 0 0 0 1 1 1 1 0 0 0 0 1 C 0 0 1 1 0 0 1 1 0 0 1 1 0 D 0 1 0 1 0 1 0 1 0 1 0 1 0 Par 1 0 1 0 1 0 1 0 1 0 X X X

1 1 1

1 1 1

0 1 1

1 0 1

X X X

De esa tabla de la verdad podemos concluir el siguiente mapa: CD\AB 00 01 11 10 00 1 0 0 1 01 1 0 0 1 11 X X X X 10 1 0 X X

Se hace bastante fcil de ver que la mejor forma de agrupar es:

que se resume como: Par = D', conclusin bastante obvia segn la tabla de la verdad donde se ve que para los casos que importan, la salida es igual al bit menos significativo negado (siempre que D=1 la divisin entre dos dara resto de 1). Si lo desean, para practicar, tome los ejemplos y ejercicios del captulo pasado y reemplacen algunos ceros por X a su antojo y vean los diferentes resultados que pueden obtener.

UNIVERSALIDAD DE LAS COMPUERTAS NAND Y NOR


Las compuertas NAND y NOR son llamadas universales debido a que a travs de la combinacin de stas pueden obtenerse las AND, OR y NOT. sto quiere decir que cualquier circuito puede implementarse (si

bien es cierto que no necesariamente de forma ms eficiente) con slo compuertas de alguno de esos tipos. Una compuerta NAND no es mas que una AND con una NOT a la salida. Anlogamente, una compuerta NOR es una OR con una NOT en la salida. Voy a aprovechar unos grficos que consegu en Internet para mostrar como pueden combinarse las NAND y las NOR para crear los distintos tipos de compuertas que usamos en nuestras funciones booleanas y tambin para mostrar como se expresan grficamente esas compuertas. FORMA NORMAL

NAND

NOR

OJO: Recuerden que colocar una raya sobre la variable indica que sta est negada, como si pusiramos el tilde ('). NOTA: Existen otras compuertas que tienen las mismas funcionalidades que las NAND y las NOR. Para el caso de las NAND tenemos la compuerta OR con todas sus entradas negadas (el smbolo es el mismo de la or pero con un crculo en cada entrada indicando que son negadas). Claro, sabemos por Morgan que A'+B' = (AB)'. De forma anloga, la compuerta NOR puede verse como una

compuerta AND con todas sus entradas negadas (el smbolo es una AND con crculos en todas sus entradas.). Se ve que la nica diferencia entre una NAND y una AND y entre una OR y una NOR es el crculo que se encuentra en el lado de la salida de la compuerta. Los casos ms interesantes son para la construccin de una AND con NOR y de una OR con NAND en los que se ve la aplicacin del teorema de Morgan. En realidad, al menos en los circuitos integrados, los circuitos se construyen con mucha ms frecuencia con compuertas NAND y NOR que con las AND, OR y NOT. Esto es debido a que esas compuertas son mucho ms fciles de construir y requieren de la integracin de menos transistores. Entonces, todo circuito puede ser llevado a formas estructuradas por puras compuertas NOR o puras compuertas NAND. Si se quiere implementar con compuertas NAND se lleva la funcin a una forma de suma de productos y se niega dos veces ya que sabemos, por el principio de involucin, que as obtenemos la misma funcin original. Al momento de negar hacemos uso del Teorema de Morgan . Si en cambio se quiere ver con compuertas NOR debe llevarse a una forma de producto de sumas y negar dos veces. Ejemplos: Implementar F = AB + CD + E con compuertas NAND. F = [(AB+CD+E)']' = [(AB)'.(CD)'.E']' que es una implementacin con 5 compuertas NAND. El grfico se hizo en clase. No lo coloco aqu por falta de tiempo para hacerlo. Veamos que pasa si se pide implementar con NOR. Tenemos F = (A+B)(C+D)E, que se ve que ya est en forma de producto de trminos sumas. De hecho, esta funcin es la dual de la anterior. Al aplicar involucin obtenemos: F = [(A+B)'+(C+D)'+E']'. Ver la clase para el diagrama del mismo.

Estos dos ejemplos tienen slo dos niveles de ejecucin. Las entradas van a una compuerta y las salidas de stas van a su vez a la entrada de otra. Si la salida del segundo nivel fuese a otra compuerta, entonces se dira que tiene tres niveles de ejecucin. NOTA: Esto ya es de clases pasadas, pero recuerden que si les digo que F(A,B,C)=(0,6), F' ser la suma de los trminos mnimos que son cero en la tabla de la verdad o en el mapa de K. Para la prxima clase veremos el tema 6: Simplificacin de funciones por el mtodo de Quine-Mc Cluskey. Dispositivos lgicos programables combinacionales.

TEMA 6: SIMPLIFICACIN DE FUNCIONES POR EL MTODO DE QUINE-MC CLUSKEY. DISPOSITIVOS LGICOS PROGRAMABLES COMBINACIONALES.
Este tema era para ser dado en la semana 6. Quine-McClusley es otro sistema de simplificacin usado en los casos de 6 o ms variables donde usar Mapas de Karnaugh es extremadamente complicado. Como la prxima clase ya ser en la semana 9 (ya que se invirti una hora de clase para el examen y se perdi el lunes de carnaval), este punto no ser dado en clase. En todo caso, les coloco aqu algunos links para que lean si quieren aprender un poco de este asunto.

Quine-McCluskey:

http://delta.cs.cinvestav.mx/~gmorales/LogicaComputacional/alog01/ node31.html Baje aqu un excelente manual que le explicar como funciona este mtodo de simplificacin. En ingls: http://en.wikipedia.org/wiki/Quine-McCluskey_algorithm http://134.193.15.25/vu/course/cs281/lectures/simplification/quineMcCluskey.html

Dispositivos Lgicos Programables:


http://html.rincondelvago.com/dispositivos-logicosprogramables_1.html Vean particularmente las matrices de puertas.

El prximo tema es 7: Familias Lgicas. Caractersticas. Niveles de Integracin.

TEMA 7: FAMILIAS LGICAS. CARACTERSTICAS. NIVELES DE INTEGRACIN.


Este tema ser desarrollado por los alumnos para su trabajo especial. Las familias lgicas ms conocidas son: RTL (Por sus siglas en ingls de lgica de transistor a resistencia).

DTL (Lgica de transistores y diodos). TTL (Lgica de transistor a transistor) ECL (Lgica de emisor acoplado) MOS (Semiconductor de Metal-Oxido) CMOS (Semiconductor de Metal-Oxido complementado Para el trabajo los alumnos se concentrarn en CMOS, ECL y TTL y sus subfamilias. Los trabajos debern explicar tambin las caractersticas de cada familia en materia de tensin de entrada y salida, corriente que pueden manejar, estructuracin, etc. Tambin debern hablar de los distintos niveles de integracin: SSI, MSI, LSI y VLSI. Los trabajos ser asignados a los equipos por mi. NO ES DE ESCOGENCIA LIBRE. Cada equipo tendr un trabajo diferente. Debern indicar las fuentes utilizadas. Artculos de Internet son permitidos. Debern anexar tambin un hoja de caractersticas de cualquier componente que corresponda a la familia de su trabajo y explicar los diferentes parmetros que en ella se muestran. En la prxima clase se ver el TEMA 8: Sumadores y restadores a nivel SSI y MSI. Un ejemplo de aplicacin: El sumador BCD.

TEMA 8: SUMADORES Y RESTADORES A NIVEL SSI Y MSI. UN EJEMPLO DE APLICACIN: EL SUMADOR BCD

BREVE INTRODUCCIN A LOS NIVELES DE INTEGRACIN SSI y MSI son niveles de integracin de compuertas lgicas. Ustedes investigarn acerca de sto en su trabajo especial pero de igual forma aqu les hablar bsicamente qu es eso y con qu se come. Los niveles de integracin son: SSI: (Small-Scale Integration o integracin a pequea escala). Es el nivel de integracin ms bsico y comprende todos aquellos circuitos integrados (desde ahora IC por sus siglas en ingls) que poseen hasta un mximo de diez (10) compuertas. (He ledo documentacin que habla de hasta doce compuertas, pero decid tomar esta descripcin debido a que apareca en ms oportunidades y porque me parece ms lgico debido a las compuertas que integran el resto de los niveles). En este nivel tenemos las compuertas lgicas como las NAND (por ejemplo, el IC 7400 tiene 4 compuertas NAND de dos entradas), las NOT (IC 7404 con 6 compuertas NOT), las AND (IC 7408 de 4x2), las OR (IC 7432 de 4x2), las XOR (IC 7486), memorias de 1 bit, flip-flops, el IC7480 que es un sumador completo de 1 bit, etc. Estas compuertas integran de 10 a 100 transistores. MSI: (Medium-Scale Integration o integracin de mediana escala). Es el nivel de integracin que le sigue al SSI. Comprenden IC de que tienen entre 10 y 100 compuertas (entre 100 y 1000 transistores). En este campo tenemos memorias de palabra (8 bits), multiplexores, decodificadores, sumadores completos -entre ellos el IC7482 que es de 2 bits y el 7483 que es de 4 bits-, registros, contadores, etc.) LSI: (Large-Scale Integration o integracin de alta escala). Comprenden IC's de entre 100 y 1000 compuertas (o entre 1000 y 10000 transistores. Tenemos como ejemplos aqu : memorias ROM y RAM, ALU's (Unidades Lgicas y Aritmticas), microprocesadores de 8 y 16 bits, PLD (Dispositivos Lgicos Programables), etc.

A parte de stos estn los VLSI (Very Large-Scale Integration) que tienen entre 1000 y 10000 compuertas y ahora los ULSI (Ultra Large) que son usados en los procesadores ms modernos como los de 32 bits. Todos los IC comentados hasta ahora son de la serie TTL 74XX que ser los que ms usemos en los prximos meses. La serie CMOS es la 4000. Ms informacin en: http://en.wikipedia.org/wiki/Integrated_circuit

SUMADORES Antes de empezar quisiera recordarles las compuertas XOR (el smbolo de la operacin es un signo de ms circunscrito pero por comodidad usaremos aqu el para no tener que agregar una imagen cada vez que se requiera mostrar el signo. OJO no es una convencin natural, me lo acabo de inventar por comodidad).La XOR u OR exclusivo es parecida a la OR con la nica diferencia que para cuando sus entradas son ambas 1 la salida es cero (por eso lo de exclusivo). La funcin XOR pude por supuesto ser presentado con compuertas AND, OR y NOT. Por ejemplo, la funcin F = A B (Lase A XOR B), es tambin F = A'B+AB'. Existe tambin la compuerta XNOR o NOR exclusivo que es la funcin negada de la XOR. El smbolo de sta es un punto en el centro de un crculo. La funcin F= A XNOR B tiene su equivalencia en F = AB+A'B'. Recuerden que los diagramas de las compuertas XOR y XNOR son:

respectivamente.

Dicho sto, empecemos por hablar del semisumador. El circuito semisumador (o H.A. Por Half Adder) es aquel que realiza la suma de dos bits SIN tomar en cuenta algn posible acarreo previo. Digamos que A y B son los bits a sumar, que S es la suma de ellos y que Co es el bit de acarreo de salida, la tabla de la verdad de este circuito es: A 0 0 1 1 B 0 1 0 1 S 0 1 1 0 Co 0 0 0 1

Vemos entonces que Co(A,B)=(3) y que S(A,B)=(1,2). Resolviendo estas funciones obtenemos que: Co = AB y S = A'B + AB'. Si ven la ltima funcin se dar cuenta de por qu razn les habl antes de la compuerta XOR. O sea, que S=AB. La diagramacin de este circuito es:

Ok. Pero este circuito nos servira como sumador de un slo bit (o para el bit menos significativo de una suma) pero en realidad es de poca utilidad para sumas de varios bits. En los casos que se requiera un sumador de varios bits, se hace uso de un Sumador Completo (F.A. Por Full Adder). Veamos entonces como sera un sumador completo de 1 bit (lo que es el IC 7480 internamente). Digamos que A y B son los bits a sumar, que S es la suma de ellos, que Ci es el acarreo de entrada y que Co es el bit de acarreo de salida, la tabla de la verdad de este circuito es: Ci 0 0 A 0 0 B 0 1 Co 0 0 S 0 1

0 0 1 1 1 1

1 1 0 0 1 1

0 1 0 1 0 1

0 1 0 1 1 1

1 0 1 0 0 1

Analicen la tabla y corrobrenla. De la tabla observamos que: Co(Ci,A,B)=(3,5,6,7) y que S(Ci,A,B)=(1,2,4,7). O sea que Co=A'BCi+AB'Ci+ABCi'+ABCi y S=A'B'Ci+A'BCi'+AB'Ci'+ABCi. Simplificando vemos que: Co=AB+ACi+ BCi y que S=Ci'(A'B+AB')+Ci(A'B'+AB), como (A'B'+AB)=(A'B+AB')'=(AB)' (XOR es una XNOR negada), si cambiamos las variables (para verlo fcil) y hacemos (AB)=T => S=Ci'T+CiT' => S = CiT , entonces S=CiAB Si doble negamos la funcin del acarreo de salida para implementar con compuertas NAND, obtendramos la funcin Co=[(AB)'(ACi)'(BCi)']' y el diagrama del circuito se vera:

Este es un sumador completo de un bit, el mismo implementado en el IC 7480. En forma de bloque veramos algo como:

Estas implementaciones son hechas con puras compuertas y los IC's usados usan menos de 10 de ellas por lo que estos sumadores son a nivel de SSI. Si queremos construir un sumador de, por ejemplo, 4 bits, deberemos poner en cascada cuatro sumadores completos de un bit tal como se muestra a continuacin:

Esto no es ms que el IC 7483 (que es un sumador a escala MSI debido al nmero de compuertas que ste usa). El IC7483 es algo como:

y estos sumadores a su vez tambin pueden ser organizados en cascada para implementar sumadores de 8, 12, 16, ... 4n, bits. El acarreo de entrada del primer sumador (quien incluir el bit menos significativo) debe ir a tierra para indicar el cero. Recuerden, cuando la implementacin se hace con puras compuertas lgicas, el tipo de circuito integrado usado tiene nivel de integracin SSI. Puedo disear un circuito con 30 compuertas lgicas, pero por el slo hecho de usar slo compuertas, estamos realizando la implementacin a nivel SSI. Si en nuestro circuito usamos, adems de las compuertas, tambin IC's como el sumador de 4 bits IC7483, estamos haciendo una implementacin que usa tecnologa a nivel MSI. O sea, que si les digo que diseen un sumador BCD a nivel SSI quiere decir que pueden usar nica y exclusivamente chips de compuertas lgicas como el 7400, 7408, etc pero si les digo que pueden realizar su implementacin a nivel MSI, quiere decir que pueden incluir IC's como por ejemplo el 7483 en su diseo. Otro punto de vista para ver el sumador completo en: http://hyperphysics.phy-astr.gsu.edu/hbase/electronic/fulladd.html

Quisiera comentar algo: cuando se realiza la suma de dos nmeros en paralelo, utilizando sumadores completos, se supone que todos los bits estn disponibles al mismo tiempo para poder realizar la operacin; sin embargo, esto no sucede en forma instantnea, ya que analizando el circuito de la Figura 2a, se observa que para obtener el acarreo de salida se tiene ms de un nivel de ejecucin y el tiempo de propagacin total ser igual al retardo de propagacin de una compuerta tpica multiplicado por el nmero de niveles de ejecucin en el circuito. Por lo tanto, si observamos el circuito de la Figura 3, el tiempo mayor de propagacin ser el tiempo que se tome el bit de acarreo en propagarse por los sumadores completos. Como cada bit de salida de la suma depende del valor del acarreo de entrada, esta salida ocurrir solamente cuando el bit de acarreo se haya propagado. Por ejemplo S3, de la Figura 3, ocurrir solamente cuando C3 se genere, pero a su vez C3 se genera cuando S2 ocurra y S2 ocurre cuando se genera C2, y as sucesivamente. El tiempo de propagacin del acarreo es un factor que limita la rapidez con que se suman dos nmeros en paralelo y si recordamos que las operaciones aritmticas se efectan por medio de sumas sucesivas, el resultado obtenido viene siendo crtico, si no se le da el tiempo necesario para la propagacin del acarreo. Una de las tcnicas ms usadas es haciendo Circuitos Generadores de Acarreo, la cual probablemente ser explicado en el futuro de ser necesario y si nos da tiempo. RESTADORES De la misma forma que pueden implementarse circuitos sumadores, pueden tambin implementarse los restadores. Veamos primero el caso del semi-restador. Para ste, asumiendo que tenemos la resta de A B siendo A y B bits, R el resultado de la resta y Po el bit de prstame, tenemos la siguiente tabla de a verdad:

A 0 0 1 1

B 0 1 0 1

R 0 1 1 0

Po 0 1 0 0

ya que 1-1 = 0-0 = 0, 1-0=1 y, el ms interesante, 0-1 que debe pedir 1 prestado para formar la resta 10-1 = 1 y por esa razn en este caso la resta es 1 y el bit de prstame tambin es 1. Como ya se ha comentado, y veremos con ms calma ms adelante, lo normal en los sistemas lgicos y la forma en que las computadoras procesan los nmeros negativos es a travs del complemento a dos del nmero. Es por ello que en las computadoras el bit ms significativo representa el bit de signo. Si est activo se dice que el nmero es negativo y el valor del mismo es el complemento a dos de dicho nmero. As pues, para el caso de 0-1, tenemos que el resultado es 11, que es negativo y cuyo complemento a dos es 1, por lo que representa el -1... correcto. OJO: El bit ms significativo es el Po . Vemos entonces que R(A,B)=(1,2) y que Po(A,B)=(1). Resolviendo estas funciones obtenemos que: Po= A'B y R = A'B + AB'. Si ven la ltima funcin se darn cuenta de que es igual al resultado en la operacin de la suma, o sea, R=AB. La diagramacin de este circuito, y un diagrama en bloque del mismo, se ve a continuacin:

Para el caso del

restador completo, tenemos la siguiente tabla:

A 0 0 0 0 1 1 1 1

B 0 0 1 1 0 0 1 1

Pi 0 1 0 1 0 1 0 1

Po 0 1 1 1 0 0 0 1

R 0 1 1 0 1 0 0 1

De la tabla observamos que: Po(A,B,Pi)=(1,2,3,7) y que R(A,B,Pi)=(1,2,4,7). O sea que Po=A'B'Pi+A'BPi'+A'BPi+ABPi y R=A'B'Pi+A'BPi'+AB'Pi'+ABPi. Simplificando vemos que: Po=A'B+A'Pi+ BPi

Si lo negamos dos veces para tener su forma con compuertas NAND tendramos que Po=[(A'B)'(A'Pi)'(BPi)']' y que R=Pi'(A'B+AB')+Pi(A'B'+AB), como (A'B'+AB)=(A'B+AB')'=(AB)' , entonces R=PiAB funcin que es igual a la de la suma. El diagrama del circuito restador completo y su respectivo diagrama de bloque lo vemos a continuacin:

Como ya les coment, las

computadoras actuales utilizan complementos a dos (aparte de por lo prctico que resulta trabajar con los resultados, debido a que con el complemento a 1 podra haber ambiguedad con el nmero cero) para efectuar la operacin resta y para la representacin de nmeros negativos. Los complementos se usan en las computadoras para simplificar y hacer ms rpidas las operaciones aritmticas. La forma en que funciona la resta por complemento ya ha sido estudiada por lo que no ser revisada aqu (si lo desea puede volver a ver el tema 1 y releer la parte de resta por complemento). Entonces, de todo sto

podemos inferir que para realizar restas podemos usar tambin nuestros circuitos sumadores tradicionales ya que la representacin de los nmeros negativos vendr dada por un 1 en el bit ms significativo del nmero y el complemento a dos del resto de los bits. Entonces, la forma ms fcil de trabajar con nmeros negativos es asumiendo que en nuestros circuitos todos ellos estarn expresados en la forma de complemento a dos. Veamos un par de ejemplos: Si queremos realizar la resta: 7-3 en binario, tenemos que (7)10=0111 y que (-3)10=1101. Al realizar la suma tenemos que el resultado es 0100 con acarreo 1. Sabemos que en el caso de restas por complemento a dos, este acarreo no tiene efecto, por lo que el resultado es correcto y es (4)10. Pero que pasa si hacemos 3-7. Aqu (3)10=0011 y (-7)10=1001. La suma es 1100 SIN acarreo que es un nmero negativo y representa al (-4)10 lo que es correcto. Cuando trabajamos de esta forma debemos estar consientes de que 1010 NO representa el nmero 10 sino al -6. Con cuatro bits slo podemos trabajar con nmeros comprendidos entre -8 y 7 (Obvio), as que si queremos trabajar con nmeros ms grandes debemos trabajar a su vez con ms bits.

Si en todo caso, queremos convertir los nmeros positivos a complemento a dos en nuestros circuitos (por cualquiera que fuera la razn), podemos sencillamente implementarlo con el uso de inversores y un sumador para sumar el uno necesario para convertir el complemento a uno en complemento a dos, o usando tambin circuitos sumadores en el que una de las entradas tenga una implementacin con compuertas XOR, tal y como se vio en clase y que por razones de tiempo no colocar el diagrama aqu ahora (4 XOR, cada uno de dos entradas siendo una de las mismas comn a las 4 compuertas... en el caso que esta entrada comn sea cero, las otras cuatro entradas pasarn directas o si es uno, negndolas y

llevando ese mismo uno a la pata de acarreo de entrada para sumar el uno necesario para convertir un complemento a uno a un complemento a dos. Este circuitos sirve para sumas, con cero en la entrada comn de las xor, y para restas con un uno. De haber acarreo, ste slo debe ser considerado si se est realizando una suma).

UN EJEMPLO DE APLICACIN: EL SUMADOR BCD Veamos ahora un ejemplo usando los sumadores 7483, en este caso particular el de la suma BCD. Como ya hemos dicho, posiblemente el cdigo ms comnmente empleado sea el CDIGO DECIMAL CODIFICADO EN BINARIO, generalmente llamado cdigo BCD, utilizado en computadoras digitales para representar nmeros decimales. Una caracterstica particular de este cdigo es que por cada dgito decimal se requieren 4 dgitos binarios (bits), esto quiere decir que se tendrn 16 combinaciones, de las cuales slo son vlidas del 0 al 9, quedando como opcionales 6 combinaciones. Fjense, las sumas 1+2=3, 3+4=7, 8+1=9, etc, o sea, todas cuya suma sea menor o igual a nueve no tienen problemas en BCD ya que todas esas sumas son iguales en binario y en BCD. Pero en el caso de 5+5=10, que es 0101+0101 el resultado es 1010 que tiene sentido en binario pero NO en BCD. El resultado en BCD es 1 y 0000, que son los dos cdigos binarios de los nmeros decimales 1 y 0 que juntos representan el 10. Recuerden que los nmeros BCD son una forma de trabajar los nmeros DECIMALES pero expresados con cdigo binario. Entonces, toda suma cuyo resultado est por encima de 9 debe tener un procesamiento especial. Por otro lado, el nmero mximo que puede formarse de la suma de dos nmeros BCD es el 18 (9+9) o en todo caso el 19 si tomamos en cuenta el acarreo de entrada (9+9+1).

La primera etapa de nuestro circuito es elemental, son nuestros dos nmeros binarios de entrada a un circuito sumador. Lo que requerir de procesamiento ser la salida de esta primera etapa. Veamos entonces la siguiente tabla de la verdad: Resultado Resultado de la suma en Binario Resultado de la suma en de la BCD (binario corregido) suma en decimal. C4 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 S3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 S2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 S1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 S0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Cn 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 R3 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 R2 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 R1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 R0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

S es la salida originada por la suma de nuestra primera etapa del circuito y C4 es el acarreo generado en la misma. Vemos que los resultados en AZUL son los generados por nuestra primera etapa. Vemos que para nuestro circuito de salida ninguno de los resultados en VERDE CLARO requieren correccin (El resultado en BCD es el mismo que en binario). En cambio, para todos nuestros resultados en ROJO si requeriremos de una correccin. De aqu podemos concluir que el procesamiento especial al que hice referencia puede resolverse con tan slo sumar 6 (0110) a los resultados de la suma de nuestra primera etapa cuyos valores estn por encima del nueve (ejemplos: 10=1010 que + 0110 es 1 0000, 12=1100 que + 0110 es 1 0010, 19=10011 que + 0110 es 1 1001) y que en todos los casos que se requieren correccin el bit ms significativo de nuestro resultado a obtener es UNO (Cn=1). CONCLUSIN: R=S si S<=9 y R=S+6 si S>9. De la tabla tambin podemos tambin obtener que: Cn(C4,S3,S2,S1,S0)=(10,11,12,13,14,15,16,17,18,19) o lo que es lo mismo: Cn=C4+F(S3,S2,S1,S0) donde F(S3,S2,S1,S0)=(10,11,12,13,14,15). Este es en realidad nuestro circuito corrector ya que ser ste quien indique cuando es que deben sumarse 0110 (como ya coment, la correccin es siempre que Cn=1). Ejerctese con mapas de K. y resuelva las funciones anteriores. Se dar cuenta de que el resultado de la simplificacin es: Cn=C4+S3S2+S3,S1 y que a su vez, llevndolo a compuertas universales en este caso a NAND, ser: Cn=[(C4)'(S3S2)'(S3,S1)']' Veamos entonces nuestro circuito:

Analizando el circuito, se observa que en los resultados del 0 al 9 no se se realiza ninguna correccin. Por ejemplo, si el resultado es 1001 (910), C4=0 y la salida de la compuerta (1) es 1; S3=1 y S2=0, por lo que la salida de la compuerta (2) es 1; para la compuerta (3), las entradas son 1 y 0 y la salida es 1. Las tres entradas de la compuerta (4) son 1, lo que da como resultado que su salida sea 0. En forma similar se analizan los resultados del 10 al 15 y del 16 al 19 (este ltimo el ms fcil de explicar ya que al ser C4=1 la salida de la compuerta (1) es cero por lo que automticamente la salida de la compuerta (4) es 1); en estos casos la salida Cn=1, por lo que se requiere la correccin y el 1 generado en el circuito corrector va a las entradas del segundo sumador para originar el 0110 (610) as como tambin a formar parte del nmero final usndose como el bit ms significativo de nuestro resultado en BCD. Como algunos notarn, en todos los casos en que se usa la correccin el acarreo del segundo sumador es 1. Este bit de acarreo SI puede ser usado como el bit ms significativo del resultado BCD. Lo nico que podra ser una factor importante a tomar en cuenta es el tiempo de propagacin. Obviamente Cn est disponible antes que el acarreo de salida del segundo sumador y es por ello que suele usarse ste sobre todo si se colocarn varios circuitos de este tipo en cascada. Por lo

tanto, si el tiempo no es un factor importante en su circuito, es indiferente usar cualquiera de los dos, as que pueden utilizar el que le resulte ms cmodo de cablear. Espero que les haya quedado claro. Cualquier cosa pregntenme en la clase virtual. Ahora les dejo algunos ejercicios. EJERCICIOS 1. Disee un circuito combinacional para obtener el complemento a 2 y el complemento a 1, a partir del cdigo binario de 4 variables. 2. Obtener el diagrama lgico de un sumador completo de dos variables A y B, usando slo compuertas NAND. 3. Disee un circuito lgico que genere el complemento a NUEVE de un nmero en BCD de 4 bits. Utilice para tal fin el sumador completo de 4 bits 7483. 4. Usando 4 compuertas XOR y un circuito MSI de sumadores completos de 4 bits (7483), construya un sumador-restador paralelo. Use una variable de seleccin de entrada Op, de tal manera que cuando Op=0 el circuito sumar y cuando Op=1 este restar. Ya saben como hacerlo ya que se vio en clases. 5. Disee un multiplicador binario que multiplique un nmero de 4 bits B=b3b2b1b0 por un nmero de 2 bits A=a1a0, para formar el producto C=c5c4c3c2c1c0. Esto puede lograrse mediante compuertas AND y sumadores paralelos de 4 bits. 6. Partiendo del cdigo BCD de 4 bits, disee un circuito que genere el cdigo EXCESO en 3, y el complemento a nueve de este ltimo (por supuesto, tambin en exceso a 3) utilizando tecnologa SSI y MSI. En la prxima clase se ver el TEMA 9: Multiplexores y demultiplexores a nivel SSI y MSI. Aplicaciones.

TEMA 9: MULTIPLEXORES Y DEMULTIPLEXORES A NIVEL SSI Y MSI. APLICACIONES


MULTIPLEXORES En las comunicaciones, y sistemas de computadora se ejecutan muchas operaciones mediante circuitos lgicos combinatorios. Cuando un circuito se ha diseado para efectuar alguna tarea en una aplicacin, a menudo tambin encuentra empleo en otras diferentes aplicaciones. En este tema se tratarn los multiplexores y demultiplexores tanto a nivel SSI como MSI y como podemos aprovechar sus funciones en el desarrollo de circuitos combinacionales.

Un Multiplexor o Selector de datos es un circuito lgico que acepta varias entradas de datos y permite que slo una de ellas pase a un tiempo a la salida. El enrutamiento de la entrada de datos hacia la salida est controlado por las entradas de seleccin (a las que se hace referencia a veces como las entradas de direccin). El multiplexor, tambin conocido como MUX, acta como un conmutador multiposicional controlado digitalmente, donde el cdigo digital aplicado a las entradas de seleccin controla cules entradas de datos sern conmutadas hacia la salida. Por ejemplo, la salida ser igual a la entrada de datos, llammosle D0, para el cdigo de entrada de seleccin que sea cero (ABC=000 en el diagrama de abajo); la salida ser igual D1 para cuando el cdigo de seleccin sea uno y as

sucesivamente. Establecido de otra manera, un multiplexor selecciona 1 de N fuentes de datos y transmite los datos seleccionados a un solo canal de salida. Esto se llama multiplexin o multiplexaje. Los multiplexores son representados en diagramas de bloques como trapezoides issceles. A continuacin muestro el esquemtico de un multiplexor de dos entradas y una salida con su respectivo bit de seleccin:

Un ejemplo de multiplexores (aunque digitales como los que vemos aqu) las lneas telefnicas. stas usan exactamente este principio. Transmiten varias llamadas telefnicas (seales de audio) a travs de un nico par cableado usando la tcnica de multiplexado y cada seal de audio va nicamente al receptor al que est destinado. Una aplicacin comn para los MUX es encontrado en las computadoras, en las cuales la memoria dinmica usa las mismas lneas de direccin para el direccionamiento tanto de las filas como de las columnas. Un grupo de multiplexores es usado para primero seleccionar las direcciones de la columna y luego cambiar para seleccionar la de la fila. Este esquema permite que grandes cantidades de memoria sean incorporadas dentro de una computadora mientras se limita a la vez la cantidad de conexiones de cobre requeridas para conectar la memoria al resto del circuito. Por eso es que tambin se les conoce a veces como selectores de datos. no se ve en

Ya se vio el smbolo esquemtico del multiplexor de 2 entradas y una salida pero los multiplexores no estn limitados a 2 entradas. Si las lneas de seleccin son dos podemos alternar entre 4 datos de entrada, si son 3 entre 8 y as sucesivamente. A continuacin se muestran los smbolos esquemticos de los multiplexores de 4 a 1 (cuatro entradas y una salida), 8 a 1 (ocho entradas y una salida) y 16 a 1 (diecisis entradas y una salida) con sus respectivas lneas de seleccin, respectivamente.

En todos los casos la salida es Z, las entradas de seleccin S y el resto es la entrada que ser multiplexada. A veces pueden verse en forma rectangular asemejando el circuito integrado que representan pero en este caso siempre deben ir bien identificados para poder saber que es. Por ejemplo:

representa (como se ve indicado) un multiplexor a nivel MSI de 8 entradas (que implica las 3 lneas de seleccin) y una salida (F). Las entradas de seleccin, o sea, quienes indicarn cual de las entradas ser reflejada en la salida, vienen dadas por el cdigo binario representado por ABC. ABC son las

entradas de direccionamiento o de direccin o de seleccin, como usted lo quiera llamar, ya que estas sern quienes indican el dato a acceder. Este mismo concepto es el usado en las memorias. Veamos ahora la implementacin de multiplexores a nivel SSI. Para el caso de un multiplexor de 2 entradas y una salida (quien por supuesto requiere slo una lnea de seleccin) el circuito sera:

El uso del inversor dos veces NO es absolutamente necesario. Se observa que cuando la entrada de seleccin A tiene un valor cualquiera, una de las compuertas AND tendr un UNO en una de sus entradas y la otra un CERO. La que tiene el CERO dejar pasar slo el CERO pero el que tenga el valor de UNO dejar pasar la otra entrada de la AND intacta y ser este valor quien se refleje a la salida. Pueden verificar este circuito a travs de su tabla de la verdad. Vemosla a continuacin: A X0 1 1 0 0 0 1 1 1 0 0 X1 1 0 1 0 1 0 1 0 X 1 1 0 0 1 0 1 0

Se ve aqu que cuando que cuando A=0, X=X0 y cuando A=1, X=X1. Esto representa la funcin booleana: X = AX1+A'X0 que es exactamente la implementacin mostrada.

Veamos como se ven las implementaciones de 4 a 1 y de 16 a 1:

Analcenlos y si lo desean hagan sus tablas de la verdad. Se ve que en el diseo de multiplexores de n entradas se requerir siempre lneas de seleccin (que dara un nmero entero si n

es potencia de 2). Claro que, aunque es lo normal, el multiplexor no necesariamente debe tener 2m lneas de entrada con m entero pero en todo caso se requerirn tantas lneas de seleccin que hagan suficientes combinaciones para direccionar todas las entradas. Por ejemplo, para multiplexar 3 4 entradas se requieren 2 lneas de seleccin. Si se requiere multiplexar 5, 6, 7 8, entonces se necesitan 3 lneas de seleccin y as sucesivamente.

El Multiplexor es tpicamente usado para combinar dos o ms seales digitales en una sola lnea pero no es la nica forma. Tambin puede conseguirse de otras caractersticas pero aqu mencionar slo un par de ejemplos de multiplexores:

De dos entradas de 4 bits y una salida de 4 bits. ste selecciona uno de los nibbles de entrada (internamente son 4 multiplexores de 2 a 1 en un solo encapsulado) y lo refleja en la salida.

De dos entradas de 4 bits a una salida de dos bits que representan un bit direccionado en cada nibble reflejado a la salida (internamente son 2 multiplexores de 4 a 1).

Algunas designaciones para multiplexores de la familia TTL son: 74153 que son dos multiplexores 4 a 2, 74157 que son cuatro MUX 2 a 1 y el 74151 que es un MUX 8 a 1. Los circuitos multiplexores pueden incluir tambin una lnea de habilitacin indicado con una E por Enable, pero de eso hablaremos en el prximo tema. Como ltimo comentario de lo multiplexores quiero agregar que estos pueden ser organizados en cascada (tal como los sumadores que vimos en el tema anterior) para implementar multiplexores ms grandes. Por ejemplo podemos usar multiplexores de 2 a 1 para implementar un multiplexor de 4 a 1 (o de 4 a 2 que si lo piensan se darn cuenta de que es elemental) o incluso para implementar multiplexores de ms entradas. Veamos especficamente el ejemplo de implementacin de un multiplexor de 16 a 1 usando slo multiplexores de 4 a 1. El dato de entrada es X formado por los 16 bits x0, x1,...,x14 y x15. Las lneas de seleccin vienen dadas por S. OJO con este ejemplo. Analcelo y entindalo.

En los multiplexores vemos tambin la entrada de enable E (que adems son de lgica negativa que quiere decir que los IC's se activaran con un cero). Ese es el bit de habilitacin que les dije veremos en el prximo tema.

DEMULTIPLEXORES Es lo inverso a un multiplexor. Los demultiplexores o DEMUX tienen una entrada que es transferida a una de las m posibles lneas de salida. La lnea m vendr direccionada por los n bits de seleccin donde lo normal es que 2n=m. Se podra decir que, como profundizaremos en el prximo tema, cada salida del demultiplexor corresponde con el trmino mnimo del nmero binario que se encuentra en las lneas de seleccin. Un uso popular del DEMUX es como decodificador y por eso suele usarse el trmino Demultiplexor/Decodificador indistintamente. Ya hablaremos de l en prximo tema, pero el propsito principal de un decodificador no es tanto transferir una entrada a una de las salidas sino llevar un valor binario (el de la entrada de seleccin) a una representacin de una nica lnea a la salida. Esta funcin es de gran utilidad en la decodificacin de la direccin en los microporcesadores por ejemplo cuando involucra la seleccin de uno de multiples dispositivos (como por ejemplo la memoria). De hecho, la mayora de los decodificadores son de lgica invertida (o negativa) debido a que

la mayora de los dispositivos perifricos de los microprocesadores son activados por una seal baja (como el pin E' que vimos en los multiplexores en cascada hace un par de prrafos). Los DEMUX tambin suelen incluir un bit de entrada de habilitacin. Algunos DEMUX de la familia TTL son: el 74139 que son dos DEMUX de 1 a 4 con salidas invertidas (lgica negada), el 74156 que son dos DEMUX de 1 a 4 con salida de colector abierto (Open Collector), el 74138 que es un DEMUX de 1 a 8 con salida invertida, el 74156 que es un DEMUX de 1 a 16 y el 74159 que es de 1 a 16 con salida a colector abierto. Veamos a continuacin la implementacin de demultiplexores a nivel SSI. Para el caso de un demultiplexor de 1 a 2 sera:

Se observa que el circuito tiene slo una entrada (representada por IN), dos salidas (OUT1 y OUT0) y el bit de direccin (A). El proceso es justo el contrario del multiplexor. Para los casos de DEMUX de 1 a 4 y de 1 a 8 tenemos las siguientes implementaciones.

Si lo

desean hagan sus tablas de la verdad para que les facilite entender el comportamiento de estos circuitos .

APLICACIONES Resulta que algunas veces un circuito diseado para cierto fin suele ser de gran utilidad en la resolucin de problemas que no fueron exactamente para el que fueron diseados. El multiplexor es una de esos ejemplos. Una poderossima utilidad de los multiplexores est en la implementacin de funciones lgicas. Vamos a estudiar algunas posibilidades de implementacin de funciones lgicas mediante multiplexores. Veamos el siguiente ejemplo: F(x2, x1, x0 ) = (2,5,6) Sabemos que esta funcin es uno para los trminos mnimos 2, 5 y 6. Esta funcin tiene 3 variables que pueden formar 8 combinaciones. La forma ms sencilla de implementacin, que es la que veremos a

continuacin, es a travs de un multiplexor de 8 a 1. Veamos la tabla de la verdad de la funcin y la implementacin con el multiplexor:

Dado que se trata de una funcin de tres variables, el mtodo acabado de sugerir implica en principio utilizar un multiplexor de 8 canales (es decir,con 3 entradas de control). Hay que conectar las variables x2, x1 y x0 a las entradas de seleccin e introducir en cada uno de los canales el valor ("0" o "1") que toma la funcin para cada combinacin de dichas variables. Observe la figura y note que el paso de una a otra es inmediato ya que el multiplexor tiene cableada las entradas 2, 5 y 6 a uno y el resto a cero. De esta forma se garantiza que para las combinaciones de las variables X (quien se coloc en las lneas de seleccin) para los que se requiere que la funcin sea uno harn f=1.

Veamos otro ejemplo. F(A,B,C)=(3,5,6,7). Con un multiplexor de 8 entradas se vera:

Es fcil de observar el porque de sto, as que no lo analizaremos ms. Llegados a este punto, una pregunta que podemos hacernos es si es posible implementar funciones de n variables mediante multiplexores con menos de n entradas de control. La respuesta es afirmativa, aunque para ello ser necesario en general aadir algn mdulo o conjunto de puertas. Siempre podremos implementar funciones lgicas de 2n combinaciones con multiplexores de

2n-1 entradas. O lo que es lo mismo, siempre podremos implementar funciones lgicas de n variables con un multiplexor de n-1 lneas de seleccin. Veamos el siguiente ejemplo: F(A,B,C) = (1,3,5,6) Esta funcin tiene 8 (23) posibles combinaciones de variables (3 variables) pero debemos implementarlo con un multiplexor de slo dos (3-1) entradas de seleccin, o sea, un multiplexor de 4 (22) a 1. Llamemos a la entrada del multiplexor I (I3 I2 I1 I0). La tabla de la verdad de la funcin F es: A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F 0 1 0 1 0 1 1 0

Lo primero que debemos hacer es decidir como vamos a trabajar con las variables. En estos casos slo n-1 de las variables de la funcin se usarn en las lneas de seleccin y la otra restante se usar a la entrada del multiplexor. Es este caso particular slo dos de las variables pueden ser usadas en las lneas de seleccin. He decidido que stas sern B y C. Por lo tanto A ser usada a la entrada del multiplexor. Ok, lo primero que haremos ser formar una tabla. sta deber tener todas las posibles entradas del multiplexor como ttulos de las columnas y las dos posibles combinaciones de la variable que decidimos usar en la entrada (en nuestro caso A en sus formas A' [0] y A [1]) como ttulos de las filas.

I0 A' A

I1

I2

I3

A cada celda de la tabla le corresponder un trmino mnimo. Vemos que cuando A=0 (A'), los trminos de la funcin van del 0 al 3 y cuando A=1 (A) van de 4 a 7. O sea que la tabla deber ser llenada con: I0 A' A m0 m4 I1 m1 m5 I2 m2 m6 I3 m3 m7

Aqu usted podra slo encerrar en crculos los trminos mnimos que sean uno en la funcin (en nuestro caso m1, m3, m5 y m7 ) para procesar la tabla. Yo sencillamente voy a encerrarla con parntesis (nicamente por comodidad y no tener que estar haciendo ms grficos). Tambin suele colocarse slo el nmero del trmino en vez del mn. Entonces, colocando los crculos donde corresponde tenemos: I0 A' A 0 4 I1 (1) (5) I2 2 (6) I3 (3) 7

Aqu empezamos el anlisis. Cuando en una columna de la tabla no hay ningn termino en crculo como es el caso de la primera columna, concluimos que en esa entrada del multiplexor debe ir 0 (cero). Cuando en una columna AMBOS trminos aparecen en crculo decimos que en esa entrada del multiplexor debemos colocar un uno. Cuando en una columna slo UNO de los trminos aparece en crculo, decimos que en la entrada correspondiente del multiplexor se colocar la variable escogida (en nuestro caso la A) en la forma que

aparezca con crculo que aqu sera A para la tercera columna y A' para la cuarta columna. Regularmente nuestra tabla, luego del anlisis, quedara: I0 A' A 0 0 0 I1 (1) (5) 1 I2 2 (6) A I3 (3) 7 A'

Por lo tanto, nuestra implementacin de la funcin F de tres variables con un multiplexor de 4 a 1 (con slo dos lneas de seleccin) nos quedara:

La

entrada I1 puede ir directamente conectada a UNO (1 Vcc) y ahorrarnos ese inversor. Yo decid poner B y C en las entradas de seleccin pero podra ir cualquier combinacin de dos variables. Lo nico que hay que tener en cuenta es que la tabla no lleva los trminos mnimos organizados de la misma forma. Supongamos que queremos

poner A y B en las lneas de direccionamiento, entonces nuestra tabla sera: I0 C' C 0 (1) C I1 2 (3) C I2 4 (5) C I3 (6) 7 C'

Ya que C es el bit menos significativo y para las casos donde A y B son cero con C' tenemos el cero y con C el uno, Si A=0 y B=1 entonces en C' tenemos 2 y en C tres, y as sucesivamente. Aqu ya slo nos quedara implementar el circuito que sera colocando A en S1, B en S0, C en I0 e I1 e I2 y por ltimo C' en I3. Haga el esquemtico. Por ltimo con respecto a este mismo ejemplo, demuestre que si quisiramos colocar B en la entrada, la tabla quedara:

I0 B' B 0 2 0

I1 (1) (3) 1

I2 4 (6) B

I3 (5) 7 B'

y dibuje el esquemtico.

Veamos como ltimo ejemplo de sto la funcin F(A,B,C,D)=(0,1,3,4,8,9,15). Suponiendo que queremos cablear A en la entrada, nuestra tabla aqu sera:

I0 A' A (0) (8) 1

I1 (1) (9) 1

I2 2 10 0

I3 (3) 11 A'

I4 (4) 12 A'

I5 5 13 0

I6 6 14 0

I7 7 (15) A

Y el circuito sera:

Aqu tambin

podemos eliminar el uso de uno de los inversores y cablear directo a 0 1 dependiendo del caso. Haga este ejercicio para los casos con B, C D a la entrada del multiplexor.

Diseo combinacional con demultiplexores. Este tema ser visto mejor ms adelante con el uso de decodificadores pero igual ser comentado brevemente aqu. Al presentar los demultiplexores se comentaba el hecho de que cada una de las salidas coincide algebraicamente con un trmino mnimo diferente de las variables de entrada. Por tanto es inmediato sintetizar directamente cualquier funcin de n variables mediante un

demultiplexor con n lneas de seleccin y una puerta OR que agrupe las salidas correspondientes a los trminos mnimos que aparecen en la expresin cannica como suma de productos de la funcin. Veamos por ejemplo la implementacin de un generador de un bit de paridad impar para un cdigo de 3 bits. Su tabla de verdad sera: A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 f 0 1 1 0 1 0 0 1

No hacemos mapa de Karnaugh ya que simplificar la funcin no es requerido en este tipo de ejercicios debido a que la implementacin ser hecha a nivel MSI y lo nico que nos interesa realmente es que trminos mnimos conforman la funcin. De la tabla de la verdad anterior podemos concluir que la implementacin de esa funcin lgica a travs de un demultiplexor sera:

La entrada E' es el bit de habilitacin del IC.

EJERCICIOS

1. Implemente un multiplexor de 8 bits de entrada (dos nibbles indicando dos datos diferentes) y dos de salida (uno de cada nibble) mediante multiplexores de 2 a 1. 2. Implemente un multiplexor con dos nmeros binarios de 3 bits (X2, X1, X0 y Y2, Y1, Y0) como entrada que transmita una u otra a la salida Z (Z2, Z1 y Z0) con la ayuda de una nica lnea de seleccin usando multiplexores de 2 a 1. 3. Implemente la siguiente funcin con multiplexores 8 a 1 y 4 a 1: F(A,B,C)=(0,1,4,7). En el caso de 4 a 1, hgalo de las tres formas posibles (Con A, B C a la entrada del multiplexor). 4. Implemente las siguientes funciones con multiplexores de forma ptima (para funciones N variables use multiplexores de N-1 lneas de seleccin): F(A, B, C, D) = (0,4,6,10,11,13) F(w, x, y, z) = (3,4,5,7,11,12,14,15) F(a, b, c, d) = (3,5,7,11,15) F(A, B, C, D, E) = (0,1,2,8,9,11,15-19,24,25,29-31) F(A, B, C, D, E, F) = (0,2,4,5,7,8,16,18,24,32,36,40,48,56) 5. Un nmero primo es aquel que slo es divisible entre si mismo y la unidad. Disee un circuito lgico que detecte todos los nmeros primos entre 0 y 31. La salida F(A, B, C, D, E), donde A es la variable de mayor peso binario, ser igual a 1, si y slo si, los cinco bits de la entrada representan un nmero primo. Realice el circuito ptimo utilizando un multiplexor. 6. Disee un circuito que convierta de BCD a exceso a 3 con multiplexores. 7. Disee un circuito que convierta de BCD a 84-2-1 con multiplexores. 8. El cerebro humano est hecho de clulas especializadas llamadas neuronas. Cada neurona tiene sinapsis (que son los

puntos de conexin entre ellas) y stas pueden ser de excitacin y de inhibicin (VER NOTA ANEXA *). Una neurona produce una salida f=1 si el nmero de sinapsis de excitacin con pulsos 1 excede el nmero de sinapsis de inhibicin con pulsos 1 por al menos, llammosle, el valor de umbral (o sea, al menos 1) de la neurona. Dicho lo anterior, determine la funcin booleana f(a, b, c, d, e) de emisin de pulsos a travs del canal de salida f (axn) en el modelo de la figura de abajo y realice el circuito ptimo con un multiplexor.

NOTA (*):

La actividad de nuestro cerebro resulta de un balance entre la excitacin y la inhibicin. La excitacin involucra principalmente al Glutamato, que es el neurotransmisor excitatorio por excelencia mientras la inhibicin es causada en su mayora por el neurotransmisor GABA. En la Sinapsis las molculas transmisoras actan sobre receptores situados en la membrana postsinptica, con lo cual se altera la permeabilidad para los

iones de dicha membrana. En el caso del glutamato despolariza (excitacin) la membrana postsinptica por un incremento en la permeabilidad a cationes como el Na+ y Ca2+. Por el contrario, GABA hiperpolariza la membrana postsinptica (inhibicin) producto del incremento en la permeabilidad al Cl-. Al nivel neuronal, la excitacin permite la propagacin de la seal bioelctrica mientras que la inhibicin evita dicha propagacin.

En la prxima clase se ver el TEMA 10: Decodificadores y codificadores nivel SSI y MSI. Aplicaciones.

TEMA 10: DECODIFICADORES Y CODIFICADORES NIVEL SSI Y MSI. APLICACIONES


Los sistemas digitales contienen datos o informacin que est en alguna forma de cdigo binario, los cuales se operan de alguna manera. En este tema se examinan circuitos combinatorios, cuyas aplicaciones incluyen: 1. Cambio de datos de una forma a otra. 2. Tomar datos y enviarlos a uno de varios destinos. Muchos de los circuitos lgicos que cumplen estas funciones estn ahora como circuitos integrados MSI. Por esta razn, no nos concentraremos en el diseo de estos circuitos, sino que investigaremos cmo se usan solos o en combinacin, para cumplir varias operaciones sobre datos digitales. Las operaciones que se discuten son: Decodificacin y codificacin. DECODIFICADORES

Un decodificador es un circuito combinacional que convierte la informacin binaria de n lneas de entradas a un mximo de 2n lneas nicas de salida. Para cada una de las combinaciones de entrada slo una de la salidas estar activada con un 1 (para cuando es lgica positiva) y todas las otras salidas estarn en 0. Muchos decodificadores se disean para producir salidas activas con un 0 (lgica negativa donde la salida seleccionada es 0 mientras que las otras son 1). Esto ltimo se indica siempre por la presencia de pequeos crculos en las lneas de salida del diagrama del decodificador y sto es de gran utilidad a la hora de disear circuitos debido a que los decodificadores son muy usados para direccionamiento de perifricos donde dichos perifricos tienen una lnea de habilitacin (indicada con una E por ENABLE) que regularmente es de lgica negativa (indicada con el crculo en la entrada o con la ralla sobre la E). Si la informacin decodificada tiene condiciones no usadas o irrelevantes, entonces el decodificador tendr menos de 2n salidas como es el caso del decodificador BCD a decimal que tiene 4 bits de entrada (necesarios para expresar los nmeros BCD) y slo 10 lneas de salida. Es interesante comentar que en algunos decodificadores de este tipo cuando se agrega a la entrada un cdigo que no es BCD vlido ninguna de las salidas se activa. Recuerden que en todo caso SLO UNA SALIDA ESTAR ACTIVA. La siguiente figura muestra un decodificador de 3 entradas y 23 = 8 salidas. Observen que la nica diferencia significativa con respecto al demultiplexor es que no tiene la lnea de entrada caractersticas de ellos. Este decodificador se le conoce como Decodificador Binario a Octal (o Convertidor de Binario a Octal o incluso decodificador de 3 a 8).

Este circuito muestra el decodificador con salida positiva. Si lo quisiramos con salida negativa los integrados a la salida deberan ser compuertas NAND. Se observa con facilidad (si lo desea haga la tabla de la verdad) que este decodificador tendr nicamente una salida activa a la vez. OBSERVE que cada una de las salidas corresponde al trmino mnimo de la entrada. Esta caracterstica es muy til a la hora de implementar funciones lgicas con decodificadores. En general, los decodificadores tienen n lneas de entradas y 2n lneas de salida y de estas ltimas slo estar activa aquella que sea el trmino mnimo (y slo ella ya que las salidas son mutuamente exclusivas) representado por la entrada. CODIFICADORES Un codificador, en cambio, tiene un nmero de lneas de entrada, de las cuales slo una es activa (ya sea con lgica positiva o negativa)

en un tiempo dado y produce un cdigo de salida de N bits, dependiendo de cul entrada est activa. O sea, el codificador hace el proceso contrario del decodificador. Se vio que un decodificador binario a octal acepta un cdigo binario de entrada de 3 bits y activa una y slo una de las 8 lneas de salida. Un codificador octal a binario opera de la manera opuesta. Acepta ocho lneas de entrada y produce un cdigo de 3 bits a la salida. Hagamos la tabla de la verdad, concluyamos cuales son las funciones y luego veamos el grfico que nos muestra esta implementacin a nivel SSI de este circuito: Entradas A0 1 0 0 0 0 0 0 0 A1 0 1 0 0 0 0 0 0 A2 0 0 1 0 0 0 0 0 A3 0 0 0 1 0 0 0 0 A4 0 0 0 0 1 0 0 0 A5 0 0 0 0 0 1 0 0 A6 0 0 0 0 0 0 1 0 A7 0 0 0 0 0 0 0 1 Salidas O2 0 0 0 0 1 1 1 1 O1 0 0 1 1 0 0 1 1 O0 0 1 0 1 0 1 0 1

De esta tabla podemos concluir que: O2 = A4 + A5 + A6 + A7 O1 = A2 + A3 + A6 + A7 y O0 = A1 + A3 + A5 + A7 Por lo que el esquemtico queda:

Se supone que una y slo una de las entradas es 1 a la vez, as que slo hay 8 condiciones posible de entrada. El circuito est diseado de tal manera que cuando A0 es 1, se genera a la salida el cdigo binario 000. Cuando A1 es 1, se genera el cdigo binario 001, cuando A2 es 1, se genera el cdigo binario 010 y as sucesivamente. El diseo del circuito es muy simple, puesto que involucra analizar cada bit de salida y determinar para cules casos de entrada ese bit es 1 y luego pasar los resultados por una compuerta OR. Por ejemplo, la tabla funcional muestra que O0 (que es el bit menos significativo del cdigo de salida) debe ser 1 cuando cualesquiera de las entradas A1, A3, A5 o A7 sean 1. Se observa tambin que que la entrada A0 no se usa nunca ya que cuando este bit es uno todas las salidas deben ser cero, pero resulta que si todas las entradas son cero (indicando que no hay un nmero octal a la entrada, por ejemplo) todas las salidas del circuito tambin sern cero. Esto genera una discrepancia que puede ser solventada agregndole otra salida al circuito que se activar nica y exclusivamente cuando todas las entradas sean cero

y de esta forma indicarnos cuando se cumple esa condicin (fcilmente implementable con una OR). Por otro lado est la posibilidad de que haya ms de un uno en la entrada (una situacin invlida pero por 'x' o por 'y' posible). Las implementaciones integradas de codificadores resuelven este problema agregando un circuito de alta prioridad para estos casos. La alta prioridad lo que hace es que si el uno de la posicin cero est activo, asume que el nmero a la salida es el cero sin importar lo que exista en el resto de las entradas. Si el la posicin cero est en cero la la uno en uno entonces a la salida habr un uno sin importar el resto de la entrada y as sucesivamente. Como ejercicio, disee un circuito codificador de 4 a 2. La salida deber ser cero (00) en el caso que no hay ninguna entrada al codificador (cuando la entrada tiene puros ceros), en todos los casos que no sean vlidos (cualquier caso que tenga ms de un uno) y cuando la entrada es propiamente la que corresponde al cero (I0=1) . Para solventar la discrepancia agregue otra salida al circuito que ser uno cuando la entrada si sea vlida. APLICACIONES Veamos algunas aplicaciones con decodificadores. Disee un decodificador de BCD a decimal con compuertas (a nivel SSI). En realidad este circuito ya existe a nivel MSI pero se hace este ejercicio para dar a conocer como se disea y que se debe esperar de l. Este un caso en el que no se tienen para n bits de entrada 2n salidas ya que los casos del 10 al 15 no son vlidos (asumimos que no son posibles y las tomaremos como condiciones irrelevantes). Veamos la tabla de la verdad:
A 0 B C D D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 0 0 0 1 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1

1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

0 0 0 0 0 0 0 0 0

1 0 0 0 0 0 0 0 0

0 1 0 0 0 0 0 0 0

0 0 1 0 0 0 0 0 0

0 0 0 1 0 0 0 0 0

0 0 0 0 1 0 0 0 0

0 0 0 0 0 1 0 0 0

0 0 0 0 0 0 1 0 0

0 0 0 0 0 0 0 1 0

0 0 0 0 0 0 0 0 1

DON'T CARE

De esta tabla se deducen las siguientes funciones: D0=(0)+d(10,11,12,13,14,15) D1=(1)+d(10,11,12,13,14,15) D2=(2)+d(10,11,12,13,14,15) D3=(3)+d(10,11,12,13,14,15) D4=(4)+d(10,11,12,13,14,15) D5=(5)+d(10,11,12,13,14,15) D6=(6)+d(10,11,12,13,14,15) D7=(7)+d(10,11,12,13,14,15) D8=(8)+d(10,11,12,13,14,15) D9=(9)+d(10,11,12,13,14,15)

Estas funciones pueden trabajarse por mapa de Karnaugh igual que hemos hecho hasta ahora, pero en el caso de funciones de conmutacin (donde cada funcin tiene slo una posible salida en uno) puede usarse un slo mapa para todas las funciones. (Si lo desea haga los mapas de las funciones por separado y demuestre que se cumple).

Por lo tanto las funciones quedan: D0(A,B,C,D)=A'B'C'D', D1(A,B,C,D)=A'B'C'D, D2(A,B,C,D)=B'CD', D3(A,B,C,D)=B'CD, D4(A,B,C,D)=BC'D', D5(A,B,C,D)=BC'D, D6(A,B,C,D)=BCD', D7(A,B,C,D)=BCD, D8(A,B,C,D)=AD' y D9(A,B,C,D)=AD por lo que el esquemtico nos quedara:

Este circuito es slo vlido si NO es posible opciones diferentes de BCD a la entrada. Si se quiere que todas las salidas sean cero para casos no vlidos en BCD debe hacerse otro circuito. Hgalo como ejercicio. Otro. Como se coment en el tema anterior, los decodificadores (o demultiplexores) tambin pueden ser usados para el desarrollo de circuitos combinacionales con la ayuda de compuertas OR a la salida para sumar los trminos mnimos que forman la funcin. Si nuestro diseo requiere ms de una funcin de salida, entonces podemos hacer uso de mas de una compuerta OR (una para cada funcin requerida). Veamos un ejemplo: Construir un circuito sumador

completo de dos bits con un decodificador y dos compuertas NAND. (OJO, SI ped implementar con NAND, no con OR) Ya sabemos que nuestras funciones para un sumador completo de 2 bits. Asumiendo que A y B son los bits a sumar y C el acarreo de entrada tenemos que: S(A,B,C)=(1,2,4,7) Co(A,B,C)=(3,5,6,7) Nuestro sumador quedara:

Observe bien este circuito. El decodificador tiene las salidas con lgica negativa por lo que tenemos a la salida NO son los trminos mnimos sino los trminos mximos. Por esta razn nuestra implementacin puede realizarse fcilmente con compuertas NAND (o

incluso AND; hgalo como ejercicio). Recuerden que, por ejemplo la funcin S, puede ser expresada en una suma de productos (con trminos mnimos) o como un producto de sumas (con trminos mximos). As que S=m1+m2+m4+m7=M0M3M5M6=(M1M2M4M7)' (ya que M1M2M4M7 es S') y es exactamente esta ltima forma la que estamos aprovechando. Hacemos el anlisis recproco para Co. Como ejercicio, realice la misma implementacin pero con compuertas OR. El mtodo del decodificador puede usarse para implementar cualquier circuito combinacional pero en realidad debe pensarse bien lo que se va a hacer debido a que pueden existir soluciones ms ptimas. Este mtodo es principalmente til para el desarrollo de circuitos con varias salidas ya que para una sola salida yo dira que es preferible usar la implementacin con multiplexores tal y como se vio en el tema anterior. La mayora de las aplicaciones con codificadores que he visto son de implementacin a nivel SSI. Ya de eso hablamos antes as que no repetir otros casos de ello.

EJERCICIOS 1. Como ya se plante haga el BCD a decimal con puro cero a la salida si la entrada NO es BCD vlido. 2. Como ya se plante, haga el sumador completo de 2 bits con un decodificador y compuertas OR. 3. Disee un decodificador de 2 a 4 con una entrada de habilitacin. La salida es con lgica negada. La entrada de habilitacin (E por Enable) es de lgica positiva. En el caso de que E=1, todas las salidas son uno (recuerde que el circuito tiene salida con lgica negativa as que este es el

comportamiento normal). Si E=0, la salida del decodificador cero cero dependiendo de la entrada. Haga el esquemtico. 4. Disee un decodificador de 4 a 16 con 2 decodificadores 3 a 8. TIP: Recuerde que los decodificadores tienen la entrada ENABLE. 5. Realice las siguientes funciones con decodificadores:

f(A,B,C,D) = (0,4,6,10,11,13) f(w,x,y,z) = (3,4,5,7,11,12,14,15) f(a,b,c,d) = (3,5,7,11,15) f(A,B,C,D,E) = (0,1,2,8,9,11,15-19,24,25,29-31) f(A,B,C,D,E,F) = (0,2,4,5,7,8,16,18,24,32,36,40,48,56)

6. Un circuito tiene 5 entradas A, B, C, D y E. Considere que A es el ms significativo. De las entradas, B, C, D y E representan un nmero BCD. A ser una entrada de control que cumple que:

Cuando el control est en 0 lgico, la salida Z es igual a 0 si el nmero decimal es impar y 1 si es par.

Cuando el control est en 1 lgico, la salida Z es igual a 1 cuando la entrada es mltiplo de 3, en caso contrario es 0.

Disee un circuito utilizando un decodificador y compuertas externas, considerando lgica negativa y que 0 es par. 7. Describa como funciona y como est estructurado un codificador de decimal a BCD con salidas de lgica negativa. Haga la tabla de la verdad.

En la prxima clase se ver el TEMA 11: Display de 7 segmentos, circuito manejador de display.

TEMA 11: DISPLAY DE 7 SEGMENTOS, CIRCUITO MANEJADOR DE DISPLAY


El display de 7 segmentos es un dispositivo usado para presentar informacin de forma visual. Esta informacin es especficamente un dgito decimal del 0 (cero) al 9 (nueve), por lo que se intuye que que el cdigo BCD est involucrado. El caso que nos atae consta de 7 LED's (Light Emisor Diode), uno por cada segmento, que se encendern o apagarn dependiendo de la informacin que se les enve (dije que en este caso ya que existen tambin display 7 segmentos de cristal lquido, incandescentes, etc.). El display 7 segmentos tiene una estructura similar a:

donde los 7 led's vienen indicados por las letras a, b, c, d, e, f y g. Con stos pueden formarse todos los dgitos decimales. Por ejemplo, para formar el nmero tres deben activarse los led's a, b, c, d y g y desactivar los e y f. Para el uno se usan los led's b y c (ojo, esta es la combinacin correcta no e y f). De forma anloga se procede para el resto de los casos. Veamos como queda:

Estos dispositivos pueden ser de tipo nodo Comn

o Ctodo Comn

En el caso de los display de nodo comn todos los nodos (+) de los led's comparten la conexin. Estos display requieren un cero (una tierra) a la entrada de cada segmento para encenderlo. En el caso de los display de ctodo comn todos los ctodos (-) de los led's comparten la conexin. Estos display requieren un uno (Vcc) a la entrada de cada segmento para encenderse. Todas las conexiones deben ser hechas a travs de una resistencia para regular la cantidad de corriente que pasa a travs de los led's.

Existen casos donde aparece un octavo segmento que suele usarse como punto decimal (ver el DP):

En la figura pueden verse tambin una de las configuraciones de pines ms popular que contienen los display 7 segmentos y lo que representan. Los pines 3 y 8 son el nodo comn el ctodo comn (dependiendo de cual sea el caso del 7 segmentos elegido) y aunque regularmente es indiferente cual de ellos conecten existen casos de modelos de displays en los que, por sus especificaciones, se requieren ambos conectados (o tambin quiz porque requieran cumplir alguna condicin de manejo de corriente en su circuito). El encapsulado de este mismo display luce algo como:

para la versin que contiene slo un dgito pero existen algunas para ms dgitos como por ejemplo el de dos dgitos que es bastante usado o los de X dgitos y medio donde el medio viene dado por el hecho de que l slo puede representar el nmero uno (tiene nicamente dos segmentos). Existen circuitos integrados a nivel MSI que pueden realizar la tarea de manejar estos displays. Estos IC's son decodificadores, especficamente los conocidos como decodificadores de BCD a 7

segmentos, como son los casos de los IC 7446, 7447 y 7448 de la familia TTL. El 7446 y 7447 tienen salidas con lgica negativa por lo que enviarn un cero al segmento que se desea encender. Esto quiere decir que manejan Displays 7 segmentos de nodo comn. Ambos son Open Collector (bueno para el manejo de corriente necesario en algunos casos) y se diferencian nicamente en la salida que pueden manejar (30v para el 7446 y 15v para el 7447). Nuestros circuitos generalmente estarn construidos con tecnologa TTL a 5V y por ello lo ms seguro es que empleemos el 7447. En el caso del 7448 las salidas son de lgica positiva por lo que son usados con los dispositivos ctodo comn. Todos comparten una caracterstica: esperan a la entrada un nmero en BCD y es para cada una de ellas que desplegarn el dgito decimal correspondiente. Pero an as, estos IC tienen respuestas para otras combinaciones a la entrada distintas de BCD. En el siguiente dibujo se muestran las salidas reflejadas en los display de 7 segmentos para todas las combinaciones binarias de 4 bits posibles:

Aparte de los dgitos decimales, se ven las salidas para cuando el decodificador tiene entrada de 1010, 1011, 1100, 1101, 1110 y 1111. Este ltimo caso apaga todos los segmentos y por ello no se ve nada. A continuacin se muestra una implementacin tpica usada para la prueba de los dislay de 7 segmentos:

El display mostrar el dgito decimal que corresponda con el nmero binario seleccionado por los interruptores 1, 2, 3 y 4 del dip switch. En esta configuracin se ve que las resistencias delimitadoras de corriente se colocan en el nodo comn (sabemos que son nodo comn por el uso del 7447) pero dependiendo de la implementacin, e incluso a veces del display, en algunos casos pueden requerirse el uso de una resistencia por cada segmento y la conexin directa de los nodos a Vcc.

A continuacin veremos la implementacin de un circuito decodificador de BCD a 7 segmentos usando tecnologa SSI. Hallaremos slo las funciones y no haremos el esquemtico debido a lo grande del mismo. Asumiremos que la entada ser nica y exclusivamente un nmero BCD vlido por lo que el resto de los casos no nos interesan (dont care). Asumiremos tambin que nuestro circuito ser destinado a un display de ctodo comn (por lo que

tendr salida con lgica positiva). Para ello empecemos con la tabla de la verdad. Sabiendo que la entrada ser I (formada por I3I2I1I0) y las salidas sern los siete segmentos posibles a, b, c, d, e, f y g (como ya se ha mostrado), tenemos que:

I3 I2 I1 I0 a
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 X X X X X X

b c d
1 1 1 1 1 0 0 1 1 1 X X X X X X 1 1 0 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 1 0

e
1 0 1 0 0 0 1 0 1 0 X X X X X X

f
1 0 0 0 1 1 1 0 1 1 X X X X X X

g
0 0 1 1 1 1 1 0 1 1 X X X X X X

X X X X X X X X X X X X

Ahora bien. En este caso tenemos 7 funciones de salida que llamaremos a(I), b(I), c(I), d(I), e(I), f(I) y g(I). stas vienen dadas por: a(I)=(0,2,3,5,7,8,9)+d(10,11,12,13,14,15) b(I)=(0,1,2,3,4,7,8,9)+d(10,11,12,13,14,15) c(I)=(0,1,3,4,5,6,7,8,9)+d(10,11,12,13,14,15) d(I)=(0,2,3,5,6,8)+d(10,11,12,13,14,15)

e(I)=(0,2,6,8)+d(10,11,12,13,14,15) f(I)=(0,4,5,6,8,9)+d(10,11,12,13,14,15) g(I)=(2,3,4,5,6,8,9)+d(10,11,12,13,14,15) que luego de hacer las respectivas simplificaciones por mapas de Karnaugh nos queda:

a = I3 + I2I0 + I2'I0' + I2'I1 b = I1I0 + I1'I0' + I2' c = I0 + I2 + I1' d = I1I0' + I2'I1 + I2I1'I0 + I2'I0' e = I1I0' + I2'I0' f = I3 + I2I0' + I2 I1' + I1'I0' g = I3 + I2 I1' + I2I0' + I2'I1
Partiendo de estas funciones simplificadas se realiza la implementacin. Como ejercicio implemente el circuito anterior con un decodificador de salida con lgica negativa y con compuertas AND NAND. Dibuje el esquemtico. Tambin como ejercicio haga la implementacin con tecnologa SSI para cuando la salida es con lgica negativa.

En la prxima clase se ver el TEMA 12: Comparador de magnitud a nivel SSI y MSI.

TEMA 12: COMPARADOR DE MAGNITUD A NIVEL SSI Y MSI


Parte del siguiente material fue extrado del libro: Lgica Digital y Diseo de Computadores de M. Morris Mano. Un comparador de magnitud es un circuito combinacional que compara dos nmeros (llammosles A y B) y determina sus magnitudes relativas. El resultado de la comparacin se especifica por medio de tres variables binarias que indican si A>B, A=B A<B.

Un circuito para comparar dos nmeros de n bits tiene 22n entradas en la tabla de verdad y se vuelve ms complicado an para n=3 (64 combinaciones). Considrense los nmeros A y B cada uno con cuatro dgitos y escrbanse los coeficientes de los nmeros en orden significativo descendente de la siguiente manera: A= A3 A2 A1 A0 y B= B3 B2 B1 B0

Los dos nmeros son iguales si todos los pares significativos son iguales, es decir A3=B3, A2=B2, A1=B1 y A0=B0 Sabemos que cuando los nmeros son binarios los dgitos son 1 o 0. Por lo tanto la relacin de igualdad para cada par de bits puede expresarse lgicamente con una funcin de equivalencia

Xi = Ai Bi + Ai' Bi' para todo i= 0,1,2,3,......., etc. OJO: Xi es en realidad una XNOR entre A y B. Esto es una XOR negada que es lo que vern en el circuito de ms adelante (sto es: [A'B+AB']')

Xi es igual a 1 si y slo si el par de bits en la posicin i son iguales, es decir, si ambos son unos o ceros. (A=B) = X3 X2 X1 X0 La variable binaria ( A=B ) es igual a 1 si todos los pares de dgitos de los dos nmeros son iguales.

Para determinar si A>B se inspeccionan las magnitudes relativas de los pares de dgitos significativos comenzando desde la posicin significativa mas alta. Si los dgitos son iguales, se compara el siguiente par de dgitos menos significativos y esta comparacin continua hasta que se encuentre un par de dgitos diferente. Si el correspondiente dgito de A es 1 y el dgito de B es 0, se concluye que A>B. Si el correspondiente dgito de A es 0 y el de B es 1 se tiene que A<B. La comparacin secuencial puede expresarse lgicamente por las dos funciones de Bool que ha continuacin se listan: (A>B) = A3B3' + X3A2B2' + X3X2A1B1' + X3X2X1A0B0' (A<B) = A3'B3 + X3A2'B2 + X3X2A1'B1 + X3X2X1A0'B0 Los smbolos (A>B) y ( A<B) son variables de salida binaria que son iguales a 1 cuando (A>B) o (A<B) respectivamente.

Analicen las funciones anteriores y entiendan el por qu de esa forma. Por ejemplo: Por qu A3B3' + X3A2B2' + X3X2A1B1' + X3X2X1A0B0' es uno si y slo si A es mayor que B? Por qu estn formados de esa manera los trminos 2, 3 y 4 de esa funcin? Qu quieren decir? Basndonos en lo anterior, veamos a continuacin la implementacin de un circuito comparador pero de slo 3 bits y hecho con compuertas:

Puede conseguir ms informacin en este link de la Wikipedia. Est pendiente por agregar en el futuro algn comentario de los Comparadores de magnitud a nivel MSI como por ejemplo el comparador de magnitud de 4 bits 7485 y alguna implementacin en cascada para comparar ms de 4 bits.

Este fue el ltimo tema de la materia.

S-ar putea să vă placă și