Está en la página 1de 11

44

Electrnica D igital

FUNCIONES BOOLEANAS Y SU SIMPLIFICACION


2.1. Funciones Lgicas 2.2. Simplificacin de funciones booleanas: mapas de Karnaugh 2.3. Ejercicios de sntesis y simplificacin de funciones booleanas 2.4. Decodificadores y multiplexores; otras formas de configurar funciones

2.1. Funciones Lgicas Dentro del lgebra de Boole de 2 elementos, una funcin booleana o funcin lgica es una expresin de operaciones booleanas enlazando variables que solamente pueden adquirir los valores 0 y 1. Una funcin booleana es una aplicacin que a cada conjunto de valores booleanos de sus variables le asigna un y slo un valor booleano. La primera de las dos definiciones anteriores es de tipo descriptivo: describe la forma algebraica de una funcin booleana; mientras que la segunda es de tipo conceptual: identifica la funcin como correspondencia entre el conjunto de valores de las variables y el valor booleano de la variable dependiente. En una funcin f designaremos con el nombre de variables de entrada xi al conjunto de sus variables propias y denominaremos variable de salida y a la variable dependiente o resultado de la propia funcin y = f(xi). De acuerdo con las definiciones anteriores, las funciones lgicas pueden representarse en dos formas diferentes: - por su expresin algebraica o frmula booleana, como expresin de las operaciones que ligan a sus variables; - por su tabla operativa o tabla de verdad, expresando en forma de tabla la correspondencia entre la variable de salida y cada combinacin posible de valores de sus variables de entrada. Tambin puede expresarse una funcin en forma de enunciado o texto que manifiesta las especificaciones o requisitos que dan lugar a dicha funcin y en forma grfica como circuito digital o esquema de puertas lgicas que produce los valores de salida de la funcin al recibir los correspondientes valores en sus entradas. El proceso de sntesis o construccin digital de una funcin parte del enunciado o especificaciones de la misma, para configurar la tabla de verdad de la funcin y obtener, a travs de ella, su expresin algebraica; una vez simplificada, dicha expresin puede ser directamente trasladada a un esquema de puertas como representacin grfica del circuito digital que hace efectiva dicha funcin. enunciado tabla funcional expresin algebraica esquema de puertas Dada una funcin de m variables, cada una de las posibles combinaciones de valores de dichas m variables recibe el nombre de vector de entrada; el nmero total de vectores de entrada ser 2m y tal ser el nmero de filas que ha de tener la tabla funcional completa. Para cada vector de entrada podemos construir un trmino mnimo, formado por el producto booleano (operacin "y") de las m variables de entrada, estando cada una de ellas afirmada si su valor en el vector de entrada es 1 y negada cuando vale 0.

El lgebra de Boole permite expresar, en forma de funciones matemticas, tanto la realizacin de clculos en el sistema binario como la adopcin de decisiones a travs de la combinacin de proposiciones. Cantidades y cualidades pueden ser representadas por conjuntos de ceros y unos, es decir, mediante palabras binarias cuyos dgitos pueden adoptar solamente los valores 0 y 1; cada dgito o bit corresponde a una variable. Una funcin booleana establece una dependencia entre una variable de salida "y" y un conjunto de variables de entrada "a b c": una correspondencia entre el conjunto de valores de las variables de entrada y el valor de la variable de salida. Las funciones booleanas son multiformes, es decir, pueden representarse de muy diversas formas: desde el mero enunciado textual que expresa las especificaciones o requisitos que definen la funcin, hasta su forma algebraica como operaciones entre variables, pasando por su tabla funcional (o tabla de verdad) que detalla, en forma de listado, el valor de la funcin para cada conjunto de valores de las entradas. Precisamente el diseo del circuito digital correspondiente a una funcin booleana consiste en el cambio de forma de la misma, a partir de su enunciado, construyendo su tabla funcional y extrayendo de ella la forma algebraica de la funcin; dicha expresin algebraica puede ser trasladada directamente a un esquema de puertas lgicas que conforma el circuito digital de dicha funcin. En este proceso resulta de mucha importancia la simplificacin de la expresin algebraica de la funcin, de forma que contenga el menor nmero de trminos y el menor nmero de variables posible. Al reducir la expresin algebraica disminuye el tamao, la complejidad y el coste (y, en muchos casos, aumenta la velocidad) del circuito digital que permite obtener tal funcin. Con esta finalidad, los mapas de Karnaugh constituyen una eficaz herramienta grfica de simplificacin a mano, mientras que el mtodo de Quine-McCluskey proporciona las bases algortmicas para programar la simplificacin sobre un computador. Tambin es posible configurar el circuito digital de una funcin booleana sin llegar a su expresin algebraica, directamente desde su tabla funcional. Para ello pueden utilizarse dos bloques digitales de tipo selector: el decodificador y el multiplexor; ambos incluyen todas las posibilidades de valores de sus variables de entrada y permiten activar cada una de dichas posibilidades.

Toms Polln Santamara. Tecnologa Electrnica. E.U.I.T.I.Z. Universidad de Zaragoza. tpollan@posta.unizar.es

2. Funciones booleanas

45

46

Electrnica D igital Ejemplo: funcin "ser nmero primo" para nmeros de 3 dgitos. c 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 a 0 1 0 1 0 1 0 1
ser n primo

Un trmino mnimo da resultado 1 al asignar a sus variables los valores del vector de entrada que le corresponde y, en cambio, para cualquier otro vector de entrada da resultado 0. As pues, tal como estn construidos, los trminos mnimos poseen la propiedad de seleccionar o filtrar a su propio vector de entrada: a cada vector de entrada le corresponde un trmino mnimo y cada termino mnimo es un discriminador o selector del vector de entrada al que corresponde. Ejemplos para 4 variables ( a, b, c, d):

0 1 1 1 0 1 0 1 c.b.a c.b.a c.b.a c.b.a c.b.a

c +b+a

1.0.0.1 = 1 vector de entrada 1001 trmino mnimo a.b.c.d 1.1.0.0 = 1 vector de entrada 1100 trmino mnimo a.b.c.d vector de entrada 0010 trmino mnimo a.b.c.d 0.0.1.0 = 1 vector de entrada 0000 trmino mnimo a.b.c.d 0.0.0.0 = 1 vector de entrada 1111 trmino mnimo a.b.c.d 1.1.1.1 = 1 nmero de vectores de entrada y de trminos mnimos posibles: 24 = 16
Dualmente se construye el trmino mximo correspondiente a un vector de entrada mediante la suma booleana (operacin "o") de sus variables, afirmadas cuando su valor es 0 y negadas cuando valen 1. Un trmino mximo da resultado 0 al asignar a sus variables los valores del vector de entrada que le corresponde y adopta el valor 1 para cualquier otro vector. A cada vector de entrada le corresponden un trmino mximo y cada trmino mximo es, asimismo, un selector o discriminador del vector al que corresponde. Ejemplos para 4 variables ( a, b, c, d) : vector de entrada 1001 vector de entrada 1100 vector de entrada 0010 vector de entrada 0000 vector de entrada 1111 trmino mximo a + b + c + d trmino mximo a + b + c + d trmino mximo a + b + c + d trmino mximo a + b + c + d trmino mximo a + b + c + d

c+b+a c +b+a

Para obtener la forma cannica de esta funcin hemos de tomar los trminos mnimos de los vectores de entrada que dan resultado 1.

y = c.b.a + c.b.a + c.b.a + c.b.a + c.b.a forma cannica simplificando = c.a + c.b + c.a = a + c.b
La forma cannica dual de una funcin booleana corresponde a su expresin como producto (operacin "y") de trminos mximos; para construirla se toman todos aquellos trminos mximos que corresponden a vectores de entrada que hacen la funcin igual a 0 y se realiza el producto de ellos. La propiedad de filtrado o seleccin que tienen los trminos mximos asegura que su producto asigna resultado 0 para aquellos vectores de entrada cuyo trmino mximo est presente y resultado 1 para todos los dems vectores de entrada. En el ejemplo anterior (funcin "ser nmero primo" para nmeros de 3 dgitos), para obtener la forma cannica dual tomamos los trminos mximos de los vectores de entrada que dan resultado 0.

1+ 0 + 0 +1= 0 1+1+ 0 + 0 = 0 0 + 0 +1+ 0 = 0 0+0+0+0=0 1+1+1+1= 0

nmero de vectores de entrada y de trminos mximos posibles: 24 = 16 Se denomina forma cannica de una funcin booleana a su expresin como suma (operacin "o") de trminos mnimos de sus variables; para construirla a partir de su tabla funcional bastar tomar todos aquellos trminos mnimos que corresponden a vectores de entrada que hacen la funcin igual a 1 y sumarlos. Habida cuenta de la propiedad de filtrado o seleccin que tienen los trminos mnimos, dicha suma de trminos mnimos asigna resultado 1 para aquellos vectores de entrada cuyo trmino mnimo se encuentra presente en la misma y resultado 0 para todos los dems vectores de entrada.

y = (c + b + a) . (c. + b + a) . (c + b + a) forma cannica dual simplificando = (b + a) . (c + a)


La forma cannica de una funcin es nica, salvo en lo que se refiere al orden de los trminos y al de las variables en los mismos; igualmente es nica la forma cannica dual. En cambio, una misma funcin puede tener expresiones simplificadas muy diversas.

2. Funciones booleanas

47

48

Electrnica D igital

Dos funciones de m variables diferirn en los trminos mnimos que contenga su forma cannica; el nmero de funciones diferentes de m variables coincide con el de combinaciones posibles de sus 2m trminos mnimos: 2k siendo k = 2m. El nmero de vectores de entrada, y consiguientemente el de funciones posibles, crece fuertemente al hacerlo el nmero de variables de la funcin. Hay 16 funciones de 2 variables, las funciones de 4 variables tendrn 16 vectores de entrada, siendo posibles 216 = 65.536 funciones y para 6 variables existen 64 vectores de entrada con un nmero de funciones posibles 264 superior a 1018 (trillones de ellas).

Los mapas de Karnaugh son el mtodo habitual de simplificacin cuando se hace a mano y el nmero de variables de la funcin es pequeo (no superior a 6). Para mayor nmero de variables se recurre a la ayuda del computador, con programas de simplificacin automtica que suelen estar basados en el algoritmo de QuineMacCluskey. La simplificacin de una funcin por medio de los mapas de Karnaugh se realiza dibujando su tabla de operacin en un diagrama bidimensional segn la estructura siguiente: BA BA 00 0 1 01 11 10 DC 00 01 11 Mapa de Karnaugh para 3 variables 10 Mapa de Karnaugh para 4 variables 00 01 11 10

2.2. Simplificacin de funciones booleanas: mapas de Karnaugh La aplicacin de los teoremas del lgebra permite simplificar las funciones, reduciendo el nmero de puertas necesarias para su configuracin; en concreto, los teoremas ms tiles para la simplificacin son los de idempotencia y absorcin:

a+a = a a.a = a

a+a = 1 a.a = 0

a + a.b = a a.(a + b) = a

a + a.b = a + b a.(a + b) = a.b

y, en ocasiones, el teorema de consenso:

a.b + a.c + b.c = a.b + a.c

Ejemplo: Y = d.c.b.a + d.c.b.a + d.c.b.a + d.c.b.a + d.c.b.a + d.c.b.a + d.c.b.a ( x + x = 1 aplicado a las siguientes parejas de trminos: 1 y 2 x=a; 3 y 4 x=b; 5 y 6 x=a ; 7 y 4 x=c , utilizando, en este ltimo caso, tambin, x=x+x)

Y = d.c.b + d.c.a + d.c.b + d.b.a


( d + d = 1 aplicado a los trminos 1 y 3 y sacando factor comn en los otros dos) CBA ED 00 01 11 10 000 001 011 010 110 111 101 100

Y = c.b + d.a.(c + b)
( aplicando el teorema de Morgan al parntesis del segundo trmino )

Y = c.b + d.a.(c.b)
(y, finalmente, el teorema de absorcin x + x.z = x + z aplicado a ambos trminos)

Y = c.b + d.a .
La aplicacin directa de teoremas booleanos para simplificar las funciones requiere una cierta habilidad, cuyos resultados dependen de la complejidad de la funcin y de la experiencia e intuicin de quien la realiza. Existen mtodos de simplificacin que aportan una formulacin sistemtica del proceso y que aseguran la mxima simplificacin; los ms utilizados de ellos son el mtodo grfico de los mapas de Karnaugh, que se describe a continuacin, y el mtodo algortmico de Quine-McCluskey (cuya descripcin se encuentra en el apndice A1).

Mapa de Karnaugh para 5 variables

2. Funciones booleanas CBA FED 000 001 011 010 000 001 011 010 110 111 101 100

49

50

Electrnica D igital

Una forma sencilla de generar el cdigo Gray para nmeros sucesivos a partir del 0 es la representada en el siguiente esquema: 0 1 11 10 110 111 101 100 1100 1101

Las lneas verticales sealan la necesidad de aadir un nuevo dgito y actan a manera de espejo, de forma que tras cada lnea vertical los nmeros empiezan por un primer dgito adicional 1 y el resto de sus dgitos son iguales a los del nmero que se encuentra en posicin simtrica respecto a dicha lnea vertical, simetra especular, aadiendo, en su caso, los ceros que fueran necesarios. El cdigo Gray aparece con frecuencia en los sistemas digitales por sus prestaciones en relacin con la simplificacin y con la seguridad funcional, derivadas ambas de la propiedad de que dos nmeros sucesivos solamente difieren en el valor de un dgito (son iguales salvo en un bit). Los trminos mnimos correspondientes a dos vectores sucesivos, segn el cdigo Gray, son simplificables entre s pues difieren solamente en el valor de una de sus variables. Por ello, los mapas de Karnaugh tienen la propiedad de que dos cuadros adyacentes se pueden simplificar entre s. Mapa de Karnaugh para 6 variables El proceso de simplificacin en un mapa de 4 variables consiste en agrupar los cuadros para formar rectngulos que contengan un nmero de cuadros potencia de 2: 1, 2, 4, 8; los cuadros contenidos en cada uno de dichos rectngulos son simplificables entre s y conducen a un solo trmino: BA DC 00 01 11 10 1 1 1 1 00 01 11 10 DC 00 01 11 10 BA 00 01 1 1 1 1 11 10

110 111 101 100

La estructura de los mapas de Karnaugh aprovecha las propiedades del cdigo Gray, en el que dos nmeros o vectores sucesivos difieren nicamente en el valor de una variable. Binario 0 1 2 3 4 5 6 7 8 9 15 0 1 10 11 100 101 110 111 1000 1001 1111 Gray 0 1 11 10 110 111 101 100 1100 1101 1000

y = C.A
BA DC 00 01 11 10 1 1 00 01 11 1 10 1 DC 00 01 11 10 1 BA 00 1

y = B.A
01 11 10 1

y = C.B

y = C.A

(tngase en cuenta que el diagrama conecta consigo mismo por sus bordes vertical y horizontal)

2. Funciones booleanas BA DC 00 01 11 10 1 1 00 01 11 10 DC 00 01 11 10 BA 00 01 11 1 1 10

51

52

Electrnica D igital

Si bien en todos los casos anteriores se ha aplicado la simplificacin a cuadros con valor 1, lo cual conduce a trminos en forma de productos, trminos producto, por dualidad el mismo procedimiento de simplificacin puede aplicarse en forma anloga a cuadros con valor 0, dando lugar a trminos suma. Dada una funcin y representada su tabla de verdad en forma de mapa de Karnaugh la expresin ms simple de dicha funcin como suma de trminos producto se obtiene agrupando todos los cuadros de valor 1 en el menor nmero de rectngulos simplificables y expresando la suma de los trminos que corresponden a dichos rectngulos. Dualmente, la forma ms simple de tal funcin como producto de trminos suma se obtiene agrupando los cuadros con valor 0 en el menor nmero de rectngulos y expresando el producto de los trminos duales que les corresponden. Ejemplo: Sea la funcin "ser nmero primo" en el caso de nmeros binarios de 5 dgitos edcba.

y = D.C.B

y = D.B.A

En el caso de 5 variables, el mapa de Karnaugh est conformado por dos hojas de dimensin 4 x 4 y son simplificables entre s aquellos rectngulos que se encuentran en posicin simtrica respecto a la separacin de las dos hojas: CBA ED 00 01 11 10 1 1 1 1 1 1 1 1 000 001 011 010 110 111 101 100

cba ed 00 01 11 10 000 001 011 010 0 0 0 0 1 0 0 1 1 1 0 1 1 0 0 0 110 111 101 100 0 0 0 0 1 0 1 1 1 1 1 0 0 0 0 0

y = D.B
Para 6 variables, el mapa de Karnaugh consta de 4 hojas de dimensin 4 x 4 e igualmente la simplificacin entre hojas acta por simetra especular: CBA FED 000 001 011 010 110 111 101 100 1 1 1 1 1 1 1 1 000 001 011 010 110 111 101 100

Recorriendo los cuadros con valor 1 para formar rectngulos simplificables desde la izquierda hacia la derecha y de arriba hacia abajo :

y = e.d.a + e.d.c.b + e.c.b.a + d.c.a + d.c.b.a + e.c.b.a


Simplificando en forma de producto de sumas, para lo cual han de recorrerse los cuadros con valor 0 formando rectngulos simplificables:

y = (b + a).(d + c + b).(d + a).(e + d + c).(e + a).(c + a).(e + d + c + b).(e + d + c + b)


Aunque esta segunda (producto de sumas) parece ms extensa que la anterior (suma de productos), ambas contienen el mismo nmero de variables (22 variables). En aquellos casos en que algn vector de entrada no puede presentarse nunca o bien cuando no importa (da igual) el valor que adquiera la funcin booleana para algn vector de entrada, se anota con X el valor que corresponde a tales vectores de entrada. El smbolo X (dont care) expresa que es indiferente el valor que la funcin pueda tener y, posteriormente, se utiliza en lugar de X el valor 0 o el valor 1 segn interese en el proceso de simplificacin.

y = D.B.A

2. Funciones booleanas

53

54

Electrnica D igital

Consideremos las nueve cifras decimales codificadas en binario (cdigo BCD) y la misma funcin booleana "ser nmero primo" aplicada a ellas. El nmero binario para representar las cifras decimales, 0 - 9, ha de disponer de 4 dgitos dcba; son nmeros primos las siguientes cifras: 1, 2, 3, 5 y 7. El mapa de Karnaugh correspondiente a la funcin que determina si una cifra decimal BCD es nmero primo o no ser el siguiente: BA DC 00 01 11 10 00 0 0 X 0 01 1 1 X 0 11 1 1 X X 10 1 0 X X

Se indica con la notacin c+ el acarreo resultante de la suma y con c- el acarreo anterior, que participa como sumando; la tabla funcional ser la siguiente: c0 0 0 0 1 1 1 1 suma: b 0 0 1 1 0 0 1 1 a 0 1 0 1 0 1 0 1 suma: s 0 1 1 0 1 0 0 1 acarreo: c+ 0 0 0 1 0 1 1 1

s = c - .(b.a + b.a) + c - .(b.a + b.a) = c- .(b a) + c - .(b a) = = c - .(b a) + c- .(b a) = c - (b a)


c + = c- .b.a + c- .(b.a + b.a + b.a) = b.a + c- .(b.a + b.a) = = b.a + c - .(b a) = (b a) [c - (b a)]

El smbolo X en un cuadro indica que resulta indiferente el valor booleano que adopte la funcin para el correspondiente vector de entrada; en este caso ello es debido a que no van a presentarse entradas con valor decimal superior a 9. Los cuadros con valor X son tomados como 1 o como 0 segn interese a efectos simplificativos. De esta forma podemos agrupar los cuadros con valor 1 en dos cuadrados (asignando valor 1 a los dos cuadros con valor X de la ltima fila), cuyos trminos producto son, respectivamente:

arrastre:

Para configurar estas funciones se requieren 3 puertas "y-negada" y 2 puertas "o-exclusiva" conectadas segn la figura siguiente:
a b s

y = d.a + c.b

= d.a + c.b = (d.a) . (c.b) = (d a) (c b)

2.3. Ejercicios de sntesis y simplificacin de funciones booleanas 2.3.1. Expresar en forma de funciones booleanas la suma aritmtica de dos nmeros binarios de varios dgitos La suma aritmtica de dos bits requiere dos funciones booleanas, una para expresar el dgito resultante y la otra para el posible dgito de acarreo o arrastre (carry): 1+1 = 10 ; resultado 0 y me llevo 1. Para configurar un sumador de nmeros de varios dgitos, podemos proceder modularmente, empleando una celda para cada dgito: dicha celda ha de tener, adems de las entradas correspondientes a los dos dgitos de ambos nmeros, una entrada adicional de acarreo que reciba el arrastre (me llevo) resultante de la suma de los dgitos anteriores. a c+
c-

c+

Si se desea utilizar nicamente puertas "y-negada" sern necesarias 11 puertas (ya que una puerta "o-exclusiva" puede configurarse con 4 puertas "y-negada"). Conectando n de estas clulas sumadoras en cadena (salida c+ unida a entrada cde la celda siguiente) se obtendr un sumador de dos nmeros de n dgitos.
S4 S3 S2 S1 S0

C.S.

C.S.

C.S.

C.S.

b Clula Sumadora c-

C.S.

A3 B3

A2 B2

A1 B1

A0 B0

2. Funciones booleanas

55

56

Electrnica D igital

2.3.2. Sean dos nmeros binarios de dos dgitos; deducir las tres funciones que realizan la comparacin entre ambos nmeros (mayor, menor e igual), expresndolas mediante operaciones "y-negada" (Nand) e inversores Sean los dos nmeros: a1a0 y b1b0; la forma sistemtica de sintetizar las funciones de comparacin entre ellos requiere escribir la tabla de verdad de las tres funciones, pero resulta ms sencillo acudir a un razonamiento directo: - para comparar dos nmeros hay que comenzar por la cifra ms significativa y, en el caso de que ambos dgitos sean iguales, irse desplazando hacia la derecha efectuando la comparacin cifra a cifra - dos dgitos son iguales cuando ambos valen 0 o ambos valen 1: a.b + a.b . Los dos nmeros propuestos sern iguales cuando tengan iguales su primer y su segundo dgito: funcin que requiere 7 puertas "y-negada" y 5 inversores. El nmero A ser mayor que el B en caso de que el dgito a1 sea 1 y el b1 sea 0, o tambin en caso de que, siendo ambos dgitos iguales, a0 tenga valor 1 y b0 sea 0:

2.3.3. Sean dos nmeros binarios de tres dgitos; expresar la funcin booleana que corresponde a A B y generalizarla para nmeros de 5 dgitos Sean los dos nmeros: a2a1a0 y b2b1b0; A ser menor o igual que B - si el dgito ms significativo de A a2 es 0 y el de B b2 es 1 - o tambin, si dichos dgitos son iguales y el siguiente dgito de A a1 es 0 y el de B b1 es 1 - o tambin, si son iguales a2 y b2 y, tambin, a1 y b1 y, adems, el dgito de las unidades de A a0 es 0 y el de B b0 es 1 o bien son iguales a0 y b0.

y = a 2 .b 2 + (a 2 .b 2 + a 2 .b 2 ). a 1.b1 + (a 1.b1 + a 1.b1 ).(a 0 .b 0 + a 0 .b 0 + a 0 .b 0 ) =

y1 = (a1.b1 + a1.b1).(a 0 .b 0 + a 0 .b 0 ) = [(a1 b1 ) (a1 b1)] [(a 0 b0 ) (a 0 b0 )]

[ = a 2 .b 2 + (a 2 .b 2 + a 2 .b 2 ).[a 1.b1 + (a 1.b1 + a 1.b1 ).(a 0 + b 0 )]


[

La expresin anterior se puede simplificar, aplicando el teorema de absorcin:

y = a 2 .b 2 + (a 2 + b 2 ). a 1.b1 + (a 1 + b1 ).(a 0 + b 0 )

]
]}}

y 2 = a1.b1 + (a1.b1 + a1.b1).(a 0 .b 0 ) = (a1 b1 )

[((a1 b1 ) (a1 b1)) (a0 b0 )]


A <B

Y su generalizacin para nmeros de cinco dgitos, a4a3a2a1a0 y b4b3b2b1b0, es directa:

funcin que necesita otras 7 puertas "y-negada" y otros 5 inversores, pero 3 de las puertas y 4 inversores coinciden con puertas utilizadas en la funcin anterior.
B1 A1

a 4 .b 4 + (a 4 + b 4 ). a 3 .b 3 + (a 3 + b 3 ). a 2 .b 2 + (a 2 + b 2 ). a 1.b1 + (a 1 + b1 ).(a 0 + b 0 )
De la misma forma esta funcin puede generalizarse para nmeros de ms dgitos.

B0 A0

A = B

2.3.4. El Concejo Municipal de una localidad pequea est formado por un alcalde con dos votos, un secretario con otros dos votos y tres delegados de barrio con un voto cada uno. Los acuerdos se toman por mayora simple, pero el voto en contra simultneo de los tres delegados supone un veto al acuerdo. Sintetizar y simplificar la funcin booleana que expresa el resultado de las votaciones Dada la complejidad de la funcin (32 vectores de entrada) y para obtener su expresin simplificada, se expresa la tabla de verdad directamente en forma de mapa de Karnaugh: d1 d2 d3

A >B

La funcin A < B ha sido construida a partir de las dos anteriores (A=B y A>B): dicha funcin debe adoptar el valor 1 cuando las otras dos valgan 0 (es decir cuando no sea ni A=B ni A>B): y 3 = y1.y 2 = y1 + y2 = y1y2 = y1 y2 Se necesitan en total 12 puertas "y-negada" (Nand) y 8 inversores.

as 00 01 11 10

000 001 011 010 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0

110 111 101 100 0 1 1 1 0 1 1 1 0 1 1 1 0 0 1 0

2. Funciones booleanas

57

58

Electrnica D igital

En el anterior mapa de Karnaugh todos los cuadrados con valor 1 pueden agruparse de 4 en 4 y as resultan los siguientes trminos producto, comenzando de arriba hacia abajo y de izquierda a derecha:

2.3.6. Sea la funcin booleana siguiente, expresada en forma de suma de productos; obtener la expresin algebraica de dicha funcin en forma de producto de sumas

y = d.c.b + d.b.a + d.c.b + d.b.a


Se trata, en primer lugar, de obtener el mapa de Karnaugh de dicha funcin; para ello tomamos cada trmino producto, identificamos las casillas que le corresponden y anotamos en ellas el valor 1: al trmino d.c.b le corresponden las dos casillas en que d = 0, c = 0 y b = 0, es decir, las dos primeras casillas horizontales del mapa; al trmino d.b.a le corresponden las dos casillas en que d =0, b = 0 y a = 0, es decir, las dos primeras casillas verticales; al trmino d.c.b le corresponden las dos casillas en que d = 1, c = 0 y b = 1, es decir, las dos ltimas casillas horizontales del mapa; al trmino d.b.a le corresponden las dos casillas en que d = 1, b = 1 y a = 0, es decir, las dos ltimas casillas verticales del mapa.

y = s.d 2 .d3 + a.s.d1 + a.s.d 2 + a.d 2 .d3 + s.d1.d2 + a.d1.d2 + s.d1.d3 + a.d1 .d3 + a.s.d3
y agrupando trminos anlogos:

y = s.(d 2 .d3 + d1.d2 + d1.d3 ) + a.s.(d1 + d2 + d3 ) + a.(d 2 .d3 + d1.d 2 + d1.d 3) = = a.s.(d1 + d 2 + d 3) + (s + a).(d 2 .d3 + d1.d 2 + d1.d 3 )
Solucin a la que podra haberse llegado por simple razonamiento directo: Se aprobar un acuerdo cuando voten a favor el alcalde y el secretario y uno cualquiera de los delegados, o tambin cuando lo hagan el alcalde o el secretario y dos delegados. Esta frase constituye la lectura en lgica proposicional de la funcin anterior. 2.3.5. En una instalacin se controla la presin, la temperatura y la intensidad elctrica consumida, de forma que debe activarse una alarma cuando alguno de estos parmetros sobrepase un valor lmite detectado por un transductor con salida digital ("1" por encima de dicho valor y "0" por debajo). Se controla tambin la tensin que alimenta la instalacin, de forma que la alarma tambin se active cuando sta sea inferior a un valor mnimo. Construir la funcin booleana que debe accionar la alarma TP VI 00 01 11 10 00 1 1 1 0 01 1 1 1 1 11 1 1 1 1 10 1 1 1 1

Se completa el mapa de Karnaugh con ceros en las casillas vacas, resultando el de la figura siguiente: ba dc 00 01 11 10 00 1 1 0 0 01 1 0 0 0 11 0 0 0 1 10 0 0 1 1

El mapa de Karnaugh de esta funcin est completamente cubierto por el valor 1 salvo en una posicin; por ello, resulta ms apropiada la sntesis de la funcin por trminos mximos, pues solamente es preciso recoger uno de ellos. "alarma" = V + I + T + P es decir, la alarma suena cuando la tensin est por debajo del valor umbral o cuando la intensidad, la temperatura o la presin estn por encima del valor lmite.

Los ceros pueden ser agrupados en 3 cuadrados, que dan lugar a una expresin algebraica en forma de producto de sumas ms reducida que la expresin inicial en suma de productos:

y = (d + b).(d + b).(c + a )

2. Funciones booleanas

59

60

Electrnica D igital

2.3.7. La combinacin ganadora de la primitiva del jueves da 23 de enero de 2003 puede expresarse mediante la funcin booleana siguiente; cules son los nmeros que forman dicha combinacin ganadora escritos en base 10 (decimal)?

2.3.8. Se desea controlar una lmpara mediante tres interruptores conmutados, de forma que actuando sobre cualquiera de ellos se pueda cambiar el estado de la lmpara. Determinar la funcin booleana necesaria Suponemos que con todos los interruptores en la posicin 0 la lmpara est apagada, si pasa uno cualquiera de ellos a la posicin 1 la lmpara se enciende, si son dos los que pasan a posicin 1 la lmpara se apaga y, finalmente, con los tres interruptores en posicin 1 la lmpara se encontrar encendida. C 0 0 0 1 0 1 1 B 0 0 1 0 1 0 1 1 A 0 1 0 0 1 1 0 1 luz 0 1 1 1 0 0 0 1

y = (f + d + c).(f + d + b).(f + d + c).(c + b + a ). .(e + d).(e + b).(d + a ).(b + a )


Recurdese que la lotera primitiva utiliza los nmeros del 1 al 49 y deben seleccionarse 6 de dichos nmeros para formar una combinacin; a estos efectos, el nmero 0 y los nmeros superiores a 49 no interesan (valor X). Se trata de obtener la tabla de dicha funcin para seleccionar sobre ella los vectores de entrada que hacen la funcin igual a 1; la forma ms rpida de obtener dicha tabla funcional consiste en rellenar el correspondiente mapa de Karnaugh, a partir de los trminos suma de la funcin (las casillas que corresponden a estos vectores suma deben tener valor 0, la casilla 0 y las superiores a 49 deben tener valor X y el resto valor 1).

y = c.b.a + c.b.a + c.b.a + c.b.a

= c.(b.a + b.a) + c.(b.a + b.a)

CBA FED 000 001 011 010 110 111 101 100 000 001 011 010 X 0 0 0 0 X 0 0 0 0 0 0 0 X 0 0 0 0 0 1 X X 1 0 0 0 0 0 X X 1 0 110 111 101 100 0 1 1 0 X X 0 0 0 0 0 0 X X 0 0 0 1 0 0 X X 0 0 0 0 0 0 X X 0 0
A

= c (b a)

La funcin anterior puede realizarse con interruptores mecnicos en la forma que se indica en la siguiente figura:
B A C B A B

Los vectores de entrada correspondientes a casillas con valor 1 son los siguientes: 001101 001110

010011

011110

101010

101011

nmeros binarios que, expresados en base 10, corresponden a los siguientes nmeros decimales: 13 14 19 30 42 43

en la que el conmutador C se encuentra en su posicin afirmada y negarlo significa efectuar un giro de 90 sobre su centro. Obsrvese que los interruptores de los extremos A y B son del tipo de interruptores conmutados considerados en el tema anterior (I.3.3 lgebra de Conmutadores), mientras que el interruptor intermedio C realiza una conmutacin del tipo conexin paralela - conexin cruzada: - conecta A - B y A - B en una posicin y A - B y A - B en la otra. Este esquema de interruptores conmutados es ampliable a n interruptores, siendo los de los extremos de tipo simple A, B y los n-2 intermedios del tipo complejo C.

2. Funciones booleanas 2.4. Decodificadores y multiplexores; otras formas de configurar funciones

61

62

Electrnica D igital

Sean tres variables de entrada; podemos construir todos sus trminos mnimos: bastarn para ello 8 puertas "y" de 3 entradas y 3 inversores.
000 001 010 011 100 101 110 111 C B A

En un decodificador estn presentes todos los trminos mnimos de sus entradas; para construir una funcin booleana de tales entradas, segn su forma cannica, bastar reunir sobre una puerta "o" los trminos mnimos que corresponden a valor 1 en la tabla de la funcin, es decir, llevar a una puerta "o" las salidas del decodificador que corresponden a vectores de entrada que activan la funcin (dan resultado 1). Por ejemplo, para construir de esta forma la funcin "ser nmero primo" de 4 dgitos utilizaremos un decodificador de 4 lneas de control seguido de una puerta "o" que recibe aquellas salidas con valor 1 en la tabla de verdad de la funcin: las correspondientes a los nmeros primos 1, 2, 3, 5, 7, 11 y 13.

Tabla funcional dcba 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 101 1 1100 1101 1110 1111 y 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 0 <<<<<D E C O D I F I C A D O R 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 c b a

Este bloque digital, cuyas salidas corresponden a los diversos trminos mnimos de sus entradas, recibe el nombre de decodificador; tal denominacin se debe a que decodifica un nmero binario de m dgitos sobre 2m lneas, de forma que para cada nmero o vector de entrada activa una salida diferente. Un decodificador es un bloque digital con m lneas de entrada y 2m lneas de salida que corresponden a los 2m posibles vectores de entrada (nmeros binarios de m bits): la lnea de salida correspondiente al nmero binario establecido en las entradas se encontrar a 1 y el resto de lneas de salida estar a 0.

<<d

C B A

000 001 010 011 100 101 110 111

As como el decodificador selecciona una de entre sus 2m lneas de salida, un multiplexor es un bloque digital que selecciona una de entre 2m lneas de entrada; para ello dispone de m lneas de control y en cada momento el nmero binario establecido en ellas determina la lnea de entrada que queda conectada a la salida. Para seleccionar cada lnea de entrada por su nmero binario bastar realizar la operacin "y" entre la lnea de entrada y el trmino mnimo que corresponde a dicho nmero binario; una posterior operacin "o" en la salida recoger el resultado de dicha seleccin (recibir las salidas de las citadas puertas "y").

La figura anterior representa un decodificador de 3 lneas de entrada: en cada momento el nmero binario presente en ellas determina cul de las 8 lneas de salida se encuentra activada (valor booleano 1).

2. Funciones booleanas

63

64

Electrnica D igital

La figura siguiente representa un multiplexor de 4 lneas de entrada y 2 de control; en cada momento el nmero binario presente en las entradas de control determina cul de las 4 lneas de entrada se encuentra conectada con la salida.
0 1 Mux. 2 3 B A salida

En el ejemplo de la funcin "ser nmero primo" de 4 dgitos, para construirla con un multiplexor de 4 lneas de control, conectaremos a 1 las lneas de entrada del multiplexor que presentan tal valor en la tabla de verdad de la funcin (las correspondientes a los nmeros primos 1, 2, 3, 5, 7, 11 y 13); el resto de las lneas de entrada se conectarn a 0.

Tabla funcional dcba 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 101 1 1100 1101 1110 1111 y 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 0 <<<<<0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 0

La funcin booleana que corresponde a este multiplexor es la siguiente:

y = L 0 .B.A + L1 .B.A + L 2 .B.A + L 3 .B.A


que puede construirse con puertas "y-negada" (Nand) en la siguiente forma:

mux

y = Nand Nand L 0 , B, A , Nand L1 , B, A , Nand L 2 , B, A , Nand(L 3 , B, A ) .


lnea 0 lnea 1 lnea 2 lnea 3 salida

<<-

d c b a

Para construir una funcin booleana utilizando un multiplexor bastar con fijar en sus lneas de entrada los valores de la tabla de verdad de la misma; de esta forma, las variables de control seleccionan sobre la propia tabla de la funcin el valor booleano que le corresponde al vector de entrada. Esta forma de configurar funciones booleanas mediante multiplexores, cuyas lneas de entrada reciben los valores de la tabla de verdad de la funcin, se denomina look-up-table (LUT): construccin tabular (mirar sobre su tabla).

Decodificadores y multiplexores son selectores de lnea: un decodificador activa una de entre n lneas de salida y un multiplexor selecciona una de entre n lneas de entrada y la pone en comunicacin con su lnea de salida.

Cada uno de ellos proporciona una forma de configurar una funcin de sus variables de control: - la forma cannica a partir de un decodificador (suma de trminos mnimos m) - la forma tabular sobre un multiplexor (look-up-table LUT). Ambas formas de construir una funcin booleana no precisan de la expresin algebraica de la misma; se obtienen directamente de su tabla funcional.