Está en la página 1de 6

Arquitectura de Computadoras

Temas de la clase 3

1 - Contenidos
 Funciones lógicas o booleanas: tablas, formas completas y
simplificación.
 Mapas de Karnaugh

Como vimos en MAD una función lógica o booleana de n variables es una función que para cada
combinación de valores (0 ó 1) de sus n variables asigna un valor 0 ó 1 a sus 2n salidas y de esta
forma determina su comportamiento mediante una tabla como la que se da como ejemplo:

Sea la función S = f (x, y, z) = ~y + (x.z) cuya tabla de salida es la siguiente:

dec x y z ~y x.z S=~y+x.z


0 0 0 0 1 0 1
1 0 0 1 1 0 1
2 0 1 0 0 0 0
3 0 1 1 0 0 0
4 1 0 0 1 0 1
5 1 0 1 1 1 1
6 1 1 0 0 0 0
7 1 1 1 0 1 1

La tabla de salida S nos proporciona las formas completas de la función S:

Forma suma de productos completa:


Σ f (x, y, z) = (~ x. ~ y. ~ z) + (~ x. ~ y. z) + (x. ~ y. ~ z) + (x. ~ y. z) + (x. y. z)

Forma producto de suma completa:


Π f (x, y, z) = (x + ~ y + z) . (x + ~ y + ~ z) . (~x + ~ y + z)

En la forma suma de productos completa se pueden determinar las posiciones decimales (dec) de
los 1 (unos) por cada minterm que lo representa, por ejemplo para la posición decimal 0(cero)
donde x=0, y=0 y z=0, que tiene un 1 como salida, la única posibilidad que la salida de ese
producto sea 1 es 1 . 1 .1 = 1 por eso el minterm asociado es (~ x. ~ y. ~ z) = ~0 . ~0 . ~0 = 1 . 1 .1
=1

Entonces en Σ f (x, y, z) las posiciones decimales son:

(~ x. ~ y. ~ z) → x = 0, y = 0, z = 0 posición decimal 0 (cero)


(~ x. ~ y. z) → x = 0, y = 0, z = 1 posición decimal 1 (uno)
(x. ~ y. ~ z) → x = 1, y = 0, z = 0 posición decimal 4 (cuatro)
(x. ~ y. z) → x = 1, y = 0, z = 1 posición decimal 5 (cinco)
(x. y. z) → x = 1, y = 1, z = 1 posición decimal 7 (siete)

En la forma producto de suma completa se pueden determinar las posiciones decimales de los 0
(ceros) por cada maxterm que lo representa, por ejemplo para la posición decimal 2(dos) donde
x=0, y=1 y z=0, que tiene un 0 como salida, la única posibilidad que la salida de esa suma sea 0
es 0 + 0 + 0 = 0 por eso el maxterm asociado es (x + ~ y + z) = 0 + ~1 + 0 = 0 + 0 + 0 = 0
Entonces en Π f (x, y, z) las posiciones decimales son:

(x + ~ y + z) → x = 0, y = 1, z = 0 posición decimal 2 (dos)


(x + ~ y + ~z) → x = 0, y = 1, z = 1 posición decimal 3 (tres)
(~x + ~ y + z) → x = 1, y = 1, z = 0 posición decimal 6 (seis)

Mediante la aplicación de las propiedades, teoremas y leyes del álgebra de Boole podemos
obtener la forma simplificada de la función de salida S como por ejemplo:

Forma suma de productos completa:


Σ f (x, y, z) = (~ x. ~ y. ~ z) + (~ x. ~ y. z) + (x. ~ y. ~ z) + (x. ~ y. z) + (x. y. z)

De los dos primeros minterms podemos sacar factor común ~x . ~y (~z + z) y como ~z + z = 1 por
ley de complemento nos queda ~x . ~y

De los dos últimos minterms podemos sacar factor común x . z (~y + y) y como ~y + y = 1 por ley
de complemento nos queda x . z

Ahora podemos reescribir S como (observar que todas las formas de representación de S son
equivalentes o sea que tienen todas las mismas tablas de salida):

Σ f (x, y, z) = (~ x. ~ y) + (x. ~ y. ~ z) + (x. z)

De los dos primeros sumandos podemos sacar factor común ~y [ ~x + (x .~ z)] y como
~x + (x .~ z) = ~x + ~z por la ley derivada de la ley de absorción nos queda:

Σ f (x, y, z) = (~ x. ~ y) + (~ x. ~ z) + (x. z) y de esta forma parecería que no se puede llegar a


encontrar la forma original dada de S = ~y + (x.z)

Pero ahora si de la forma suma de productos completa tomamos los dos primeros minterms
podemos sacar factor común ~x . ~y (~z + z) y como ~z + z = 1 por ley de complemento nos
queda ~x . ~y luego del tercer y cuarto minterms sacamos factor común x .~y (~z + z ) y como ~z
+ z = 1 por ley de complemento nos queda x . ~y

Ahora podemos reescribir S como:

Σ f (x, y, z) = (~ x. ~ y) + (x. ~ y. ) + (x. y. z)

Ahora del primer y segundo sumando sacamos factor común ~y (~x + x ) y como ~x + x = 1 por ley
de complemento nos queda ~y por lo que podemos reescribir S como:

Σ f (x, y, z) = ~ y + (x. y. z) que es equivalente a la forma original dada ~ y + (x. z)

Por otro lado de la forma producto de suma completa

Π f (x, y, z) = (x + ~ y + z) . (x + ~ y + ~ z) . (~x + ~ y + z) tomamos los dos primeros maxterms


podemos sacar factor común x + ~y + (z . ~ z) y como z . ~ z = 0 por ley de complemento nos
queda x + ~y

Ahora podemos reescribir S como:

Π f (x, y, z) = (x + ~ y ) . (~x + ~ y + z) pero sacando factor común ~y + [ x . (~x + z)] y como

[ x . (~x + z)] = x.z así llegamos a la forma simplificada o mínima original

S = f(x, y, z) = ~y + (x. z)
Maurice Karnaugh inventó una forma de simplificar o minimizar funciones lógicas o booleanas a
través de unas tablas que se llaman mapas de Karnaugh o mapas K, se trata de formar una tabla
como la siguiente para tres variables x, y, z:

z \xy x=0 y=0 00 x=0 y=1 01 x=1 y=1 11 x=1 y=0 10


posición posición posición posición
decimal decimal decimal decimal
0
0 2 6 4
x=0 y=0 z=0 x=0 y=1 z=0 x=1 y=1 z=0 x=1 y=0 z=0
posición posición posición posición
decimal decimal decimal decimal
1
1 3 7 5
x=0 y=0 z=1 x=0 y=1 z=1 x=1 y=1 z=1 x=1 y=0 z=1

Maurice Karnaugh a partir de la leyes, teoremas y propiedades del álgebra de Boole descubrió
que si un 1 (uno) cargado en un mapa K en una posición determinada tenía otro 1 (uno) a su lado
ó arriba o abajo suyo era porque esos 2 (dos) unos representaban minterms donde solo una
variable cambiaba y podía sacarse factor común y reducir los dos minterms a uno solo como se
puede ver en el siguiente mapa K de ejemplo (PDS indica la posición decimal en la tabla de salida
de S):

z \xy 00 01 11 10
PDS = 0 PDS = 2 PDS = 6 PDS = 4

0
1 1

PDS = 1 PDS = 3 PDS = 7 PDS = 5

En este mapa K vemos que las posiciones de los dos 1 (unos) son PDS = 6 (x=1 y=1 z=0) y
PDS = 4 (x=1 y=0 z=0) y acá podemos ver que de una posición a otra sólo cambia el valor de la
variable y mientras que el valor de x y de z permanece igual (x=1 y z=0) entonces de los dos
minterms podemos sacar factor común x . ~z (~y + y) y como ~y + y = 1 por ley de complemento
nos queda x . ~z como único término con solo 2 variables.

De la misma forma Karnaugh descubrió que si un 0 (cero) cargado en un mapa K en una posición
determinada tenía otro 0 (cero) a su lado ó arriba o abajo suyo era porque esos 2 (dos) ceros
representaban maxterms donde solo una variable cambiaba y podía sacarse factor común y
reducir los dos maxterms a uno solo como se puede ver en este otro mapa K de ejemplo:
z \xy 00 01 11 10
PDS = 0 PDS = 2 PDS = 6 PDS = 4

0
0

PDS = 1 PDS = 3 PDS = 7 PDS = 5

1
0

En este mapa K vemos que las posiciones de los dos 0 (ceros) son PDS = 2 (x=0 y=1 z=0) y
PDS = 3 (x=0 y=1 z=1) y acá podemos ver que de una posición a otra sólo cambia el valor de la
variable z mientras que el valor de x y de y permanece igual (x=0 y y=1) entonces de los dos
maxterms podemos sacar factor común x + ~y + (z . ~z) y como z . ~z = 0 por ley de complemento
nos queda x + ~y como único término con solo 2 variables.

En el mapa K también se pueden reducir cuatro minterms a uno solo si 4 unos pueden formar un
grupo en posiciones a su lado uno de otro ó arriba o abajo uno de otro. Como se muestra en el
mapa K dado a continuación:

z \xy 00 01 11 10
PDS = 0 PDS = 2 PDS = 6 PDS = 4

0
1 1

PDS = 1 PDS = 3 PDS = 7 PDS = 5

1
1 1

En este mapa K vemos que las posiciones de los dos 1 (unos) son PDS = 6 (x=1 y=1 z=0),
PDS = 4 (x=1 y=0 z=0), PDS = 7 (x=1 y=1 z=1) y PDS = 5 (x=1 y=0 z=1) y acá podemos ver que de
una posición a otra cambia el valor de la variable y pero también el valor de la variable z, mientras
que el valor de x permanece igual (x=1), entonces de los cuatro minterms podemos sacar factor
común x (y.~z + ~y. ~z + y. z + ~y. z) y esta suma de productos para una función de tres variables
es igual a 1 (puede el alumno solo demostrarlo) y queda reducido a x. Esto puede demostrarse
fácilmente haciendo una tabla de una función cualquiera donde aparezca x + algo ó algo + x que
la salida de esa función será 1 cuando x valga 1 porque será 1 + algo ó algo + 1 que es siempre 1
por la ley de acotación.
La aplicación de los mapas de Karnaugh pueden usarse también para reducir o simplificar
funciones lógicas de 4 variables. En este caso por ser 4 variables las posiciones decimales
posibles serán 16 y el mapa K a continuación es un ejemplo:

CD \ AB 00 01 11 10
PDS = 0 PDS = 4 PDS = 12 PDS = 8

00

PDS = 1 PDS = 5 PDS = 13 PDS = 9

01

PDS = 3 PDS = 7 PDS = 15 PDS = 11

11

PDS = 2 PDS = 6 PDS = 14 PDS = 10

10

En estos mapas K podemos formar grupos de 2, 4 y hasta 8 1(unos) ó 0(ceros) siempre que estén
a uno u otro lado, arriba o abajo uno de otro.

Veamos el mapa siguiente:

CD \ AB 00 01 11 10
PDS = 0 PDS = 4 PDS = 12 PDS = 8

00
1 1

PDS = 1 PDS = 5 PDS = 13 PDS = 9

01
1 1

PDS = 3 PDS = 7 PDS = 15 PDS = 11

11
1 1

PDS = 2 PDS = 6 PDS = 14 PDS = 10

10
1 1

En este mapa K vemos que las posiciones de los ocho 1 (unos) son PDS = 12 (A=1 B=1 C=0 y
D=0), PDS = 8 (A=1 B=0 C=0 y D=0), PDS = 13 (A=1 B=1 C=0 y D=1), PDS = 9 (A=1 B=0 C=0 y D=1),
PDS = 15 (A=1 B=1 C=1 y D=1), PDS = 11 (A=1 B=0 C=1 y D=1), PDS = 14 (A=1 B=1 C=1 y D=0) y
PDS = 10 (A=1 B=0 C=1 y D=0) y acá podemos ver que de entre las ocho posiciones la única
variable que no cambia es A que vale uno (1), entonces de los ocho minterms podemos sacar
factor común A como único término con solo una variable.

Ahora mirando este otro mapa:

CD \ AB 00 01 11 10
PDS = 0 PDS = 4 PDS = 12 PDS = 8

00
0 0 0 0

PDS = 1 PDS = 5 PDS = 13 PDS = 9

01

PDS = 3 PDS = 7 PDS = 15 PDS = 11

11

PDS = 2 PDS = 6 PDS = 14 PDS = 10

10
0 0 0 0

Vemos que las posiciones de los ocho 0 (ceros) son PDS = 0 (A=0 B=0 C=0 y D=0),
PDS = 4 (A=0 B=1 C=0 y D=0), PDS = 12 (A=1 B=1 C=0 y D=0), PDS = 8 (A=1 B=0 C=0 y D=0),
PDS = 2 (A=0 B=0 C=1 y D=0), PDS = 6 (A=0 B=1 C=1 y D=0), PDS = 14 (A=1 B=1 C=1 y D=0) y
PDS = 10 (A=1 B=0 C=1 y D=0) y acá podemos ver que de entre las ocho posiciones la única
variable que no cambia es D que vale cero (0), entonces de los ocho maxterms podemos sacar
factor común D como único término con solo una variable.

También podría gustarte