You are on page 1of 8

MTODO DE KARNAUGH

Jess Pizarro Pelez


MTODO DE KARNAUGH............................................................................................. 1
1.
2.
3.
4.
5.

INTRODUCCIN ....................................................................................................... 1
MTODO DE KARNAUGH .......................................................................................... 2
EJEMPLO DE APLICACIN (I) ..................................................................................... 4
ESTADOS NO IMPORTA EN LAS FUNCIONES LGICAS .................................................. 6
EJEMPLO DE APLICACIN (II) .................................................................................... 7

1. INTRODUCCIN
En ocasiones, el mtodo algebraico para simplificar funciones lgicas aplicando los teoremas del lgebra de
Boole, puede no ser el mejor medio por varias razones:
o

Cuando aumenta el nmero de variables o de trminos resulta difcil ver la forma de reducir la
expresin.

Se trabaja con grandes cantidades de expresiones muy similares a bcd + a bc d ... por lo que la
probabilidad de equivocarse en algn paso es muy elevada (y aunque no nos equivoquemos, siempre
resulta farragoso).

Podemos llegar a una expresin que no es la ptima, con el consiguiente incremento en puertas y
complejidad del circuito final.

Existe un mtodo grfico para simplificacin de funciones que resuelve todos estos problemas: El mtodo de
Karnaugh. Con este mtodo la simplificacin adquiere las siguientes ventajas con respecto al mtodo algebraico:
o

Para funciones de tres y cuatro variables se aplica de forma muy sencilla. Para cinco variables puede
resultar algo ms difcil, y para ms existen otros mtodos.

No se escriben las expresiones de los productos de las variables, se trabaja directamente sobre un
diagrama, por lo que se gana considerablemente en claridad.

Con un poco de soltura (adquirida mediante un poco de prctica), resulta muy sencillo hallar siempre
la expresin ms ptima de la funcin.

Es por todos estos motivos que el mtodo de Karnaugh sea ampliamente utilizado para sistemas de tres y cuatro
variables. A todo esto hay que aadir otra gran ventaja: Es un mtodo muy sencillo de aprender, como vamos a ver a
continuacin.

2. MTODO DE KARNAUGH
El mtodo de Karnaugh es un mtodo grfico. Se usan unas tablas llamadas tablas o diagramas de Karnaugh.
Dichas tablas tienen una casilla por cada combinacin de variables de la funcin, de forma que para 3 variables
tendremos 23 = 8 casillas, para cuatro variables tendremos 24 = 16 casillas.

ba
dc

00

01

11

10
ba

00
c

00

01

11

01

11

10

10

Diagrama de Karnaugh para 4 variables

Diagrama de Karnaugh para 3 variables

Ntese que el orden de las combinaciones no es binario natural si no que es cdigo Gray (00, 01, 11, 10) esto es
debido a que el funcionamiento del mtodo se basa en combinaciones adyacentes.

Una vez dibujado el diagrama, se trasladan a ste las combinaciones de la tabla de la verdad poniendo un 1 en la
casilla correspondiente. Ejemplo: sea la funcin
combinaciones

f = abc + abc + abc que como se ve, vale 1 para las

{c, b, a} = {1,0,0}, {0,0,1}, {1,0,1} . Pues en el diagrama de Karnaugh pondramos un 1 en cada una

de esas casillas.
ba

00

01

10

0
1

Casillas donde f = 1

Ahora es cuando vamos a simplificar. A partir de las posiciones de los unos en la tabla, intentamos formar
grupos de unos lo ms grandes posibles. Dichos grupos de unos:

Debern estar constituidos por un numero de unos que sea potencia de dos (no valen 3 ni 6 ni 7).

Debern ser un conjunto convexo (o sea, no tener esquinas hacia dentro).

No podrn ir en diagonal.

Intentaremos formar el menor nmero de grupos y stos debern ser lo ms grandes posible.

Un uno puede formar parte de tantos grupos como haga falta.

En los grupos que formemos se eliminan las variables que estn presentes en el cero y en el uno. En nuestro
diagrama anterior, vemos que podemos hacer dos grupos de dos variables: uno con las casillas

{c, b, a} = {1,0,0}, {1,0,1}

y otro con

{c, b, a} = {0,0,1}, {1,0,1}

Vemos que en el primer grupo la variable a

aparece con 1 y con 0, por lo que la eliminamos, quedndonos c=1 y b=0 por lo que el trmino nos queda

bc . En

el segundo grupo aparece la c negada y sin negar, por lo que la eliminamos, quedndonos b=0 y a=1 por lo que el
trmino nos queda

ba . Por lo que la funcin simplificada queda: f = cb +ba = b(a + c) .

A continuacin se ponen unos cuantos ejemplos de grupos posibles para un diagrama de cuatro variables.
ba

ba
dc

00

01

11

10

dc

ba
00

01

11

10

00

00

dc

ba
00

01

11

10

00

dc

00

01

00

01

01

01

11

11

11

11

10

10

10

10

01

No cambia ninguno, por


lo que

f = d cba

ba

ba
dc

Cambian b y d, por lo
que queda f = ac

00

01

11

10

dc

01

11

00

01

01

11

11

Cambia a, por lo que


queda

f = d cb

00

01

11

10

Cambia d, por lo que


queda f = cba

dc

00

00

01

01
11

11

10

10

Cambia b, por lo que


queda

f = d ca

dc

f =d

que queda

01

11

10

01

11

10

Cambian d y b, por lo
que queda

f = ca

dc

00

01

01

11

11

10

10

Cambian a y b, por lo
que queda

dc

f =b

ba
00

f = d c

ba
00

10

Cambian a, c y d, por lo

00

00

ba

ba
dc

10

10

que queda
ba

00

00

10

Cambian a, b y c, por lo

11

01

11

10

Cambian d y c, por lo
que queda

f = ba

ba
00

01

11

10

dc

00

01

11

10

00

01

01

11

11

10

00

10

Cambian d y b, por lo
que queda

f = ca

Cambian b, c y d, por lo
que queda

f =a

Observemos que los cuatro ltimos ejemplos no parecen cumplir con lo que dijimos acerca de los grupos, que
deban ser un conjunto convexo. En realidad si que lo son. Debemos ver los diagramas de Karnaugh como una
superficie continua, algo as como una caja de cartn desmontada que cuando se monta se cierra y se unen los lados.
Se pueden coger estos grupos siempre que queramos, sin ms condicin que ser potencia de 2 y no ir en diagonal.

3. EJEMPLO DE APLICACIN (I)


Vamos a resolver un problema de lgica combinacional aplicando el mtodo de Karnaugh para obtener la
funcin simplificada.
Problema
Disear un circuito combinacional que realice la divisin entre 3 (entera) de un nmero codificado en BCD.

Como ya se sabe, la divisin entera de un nmero tiene dos partes: cociente y resto, ambos enteros. Nuestro
circuito har la divisin de un nmero BCD (o sea, del 0 al 9) entre 3. El cociente ms grande ser el obtenido al
dividir el nmero ms grande, que en BCD es el 9. Como 9:3 = 3 necesitamos 2 bits para representar este nmero
por lo que nuestro circuito deber tener dos salidas. Una para el bit de ms peso y otra para el de menos peso. A
continuacin se muestra la salida del circuito y la tabla de verdad.

Nmero

resultado

D C B A b1 b0

Divisin entre 3 de los nmeros del 0 al 9

0
0
0
0
0
0
0
0
1

0
0
0
0
1
1
1
1
0

0
0
1
1
0
0
1
1
0

0
1
0
1
0
1
0
1
0

0
0
0
0
0
0
1
1
1

0
0
0
1
1
1
0
0
0

Tabla de verdad del circuito

Nos van a quedar dos funciones de 4 variables cada una, lo cual es mucho para poder simplificar por el mtodo
algebraico, por lo que usaremos el mtodo de Karnaugh. Usaremos dos diagramas de Karnaugh; uno para la variable
b1 y otro para b0.
ba
dc

ba
00

01

11

10

dc

00

00

00

01

01

11

11

10

10

b1

01

11

10

b0

En primer lugar rellenamos los diagramas con unos en los lugares donde corresponda. b1 en las posiciones

{(0,1,1,0), (0,1,1,1), (1,0,0,0), (1,0,0,1)} y b0 en las posiciones {(0,0,1,1), (0,1,0.0), (0,1,0,1), (1,0,0,1)}
ba
dc

ba
00

01

11

10

00

00

01

11

01

11

10

00

01

10

dc

11

10

b1

b0

Ahora buscamos grupos de unos lo ms grandes posible. Vemos que para b1 tendremos dos grupos de dos unos:

{(0,1,1,1), (0,1,1,0)} y otro por {(1,0,0,0), (1,0,0,1)} . Mientras que para b0 tendremos un grupo
de dos unos formado por {(0,1,0.0 ), (0,1,0,1)} y dos grupos de un solo uno correspondientes a las combinaciones
{(0,0,1,1)} y {(1,0,0,1)}.

uno formado por

ba
dc

ba
00

01

11

10

00

00

01

11

01

11

10

00

01

10

dc

11

b1

10

b0

A partir de estos diagramas obtenemos directamente las ecuaciones del circuito. Para b1 tendremos dos
trminos: en el primer grupo (el de arriba) cambia la a, mientras que dcb = 011 por lo que nos queda
grupo de abajo cambia la a tambin, por lo que nos queda

d cb . En el

d cb . Para b0 operamos de la misma forma.

Observemos que vamos a tener tres trminos, dos de los cuales tendrn todas las variables. Cuanto menores sean los
grupos, menos variables desaparecen y por tanto ms variables aparecern en la expresin final.

Las ecuaciones de nuestro circuito sern:

b1 = d cb + d cb

b0 = d cba + d cba + d cb

A partir de estas ecuaciones ya podemos implementar nuestro circuito. Ntese que mediante el mtodo de
Karnaugh lo que obtenemos es la expresin mnima de la funcin expresada en forma de suma de productos. Esto no
quiere decir que la funcin no se pueda simplificar ms. En ocasiones podremos, pero ya no ser una expresin en
forma de suma de productos. En este caso, podramos encontrar una expresin ms simple para b0:

b0 = d cba + d cba + d cb = ac(d b + d b) + d cb = ac(b d ) + d cb

4. ESTADOS NO IMPORTA EN LAS FUNCIONES LGICAS


En ocasiones, podemos encontrar combinaciones de entrada para las que no existe definida una salida. No
estamos hablando de que sea 1 o 0, nos referimos a que simplemente, no se va a dar dicha combinacin a la entrada,
o si se da, carece de sentido.

Para entender esto mejor pongamos un ejemplo: Sea un tanque de agua con tres sensores (boyas) que indican el
nivel del agua. Si se activa el sensor 1 (combinacin 001), significa que el agua llega a ese nivel. Si el agua sube, se
activar tambin el segundo sensor (combinacin 011), y as sucesivamente. De forma que la combinacin 000
corresponde al tanque vaco, 111 al tanque lleno, etc.

3
2
1

Pero qu pasa con la combinacin 110, por ejemplo? Qu quiere decir esta combinacin? Pues lo que quiere
decir, es que el agua ha activado los sensores 2 y 3, pero no el sensor 1. Por lo que sabemos de fsica esto es
imposible, ya que el agua no flota en el aire, por lo que es imposible que se activen los sensores 2 y 3 si antes no se
ha activado el sensor 1. Esta combinacin de entrada nunca se va a dar en nuestro sistema. Hay ms combinaciones
que nunca se van a dar como la 100, 101 Qu hacemos con estas combinaciones a la hora de disear nuestro
circuito?

Como son combinaciones que no se van a dar, la funcin para estos valores no estar definida. Esto quiere decir
que la salida para esa combinacin de entrada puede ser cualquier cosa, 1 o 0. Nos da igual que tome un valor u otro,
ya que, repetimos: Esa combinacin de entrada no se va dar.

A estas combinaciones imposible se las denomina estados no importa y se representan en la tabla de verdad
como una x. Al valor x le podemos asignar el valor lgico 0 o 1 segn nos convenga uno u otro.

Se representan a continuacin la tabla de verdad y los diagramas de Karnaugh de este sistema. La entrada son
los tres sensores y la salida el valor binario del nivel del agua entre 0 y 3 (dos bits). Obsrvese como para las
combinaciones imposibles (010, 100, 101 y 110) se ha puesto a la salida el estado lgico no importa representado
por una x. Al trasladar nuestra tabla de la verdad a los diagramas de Karnaugh trasladamos los unos y las x a las
casillas que corresponda.

Ahora hacemos los grupos teniendo en cuenta que podemos usar las x como queramos, o sea, hacer que sean un
1 lgico si con ello conseguimos reducir el nmero de grupos o hacer los grupos mayores.
6

C
0
0
0
0
1
1
1
1

B
0
0
1
1
0
0
1
1

A b1 b0
0 0 0
1 0 1
0 X X
1 1 0
0 X X
1 X X
0 X X
1 1 1

Tabla de Verdad

ba
c

ba
00

01

0
1

11

10

00

01

11

10

1
X

b1

b0

Diagramas de Karnaugh

No es necesario continuar con el problema para darnos cuenta que hemos conseguido reducir considerablemente
el nmero de funciones lgicas necesarias. Siempre que podamos, deberemos observar si en nuestro circuito van a
aparecer estados no importa, ya que usarlos supondr un ahorro considerable de puertas lgicas en la mayora de los
casos.

5. EJEMPLO DE APLICACIN (II)


Para ver la importancia de aplicar los estados no importa al diseo de sistemas digitales, vamos a resolver de
nuevo el problema del apartado 3 aplicando los que hemos aprendido acerca de los no importa.
Problema
Disear un circuito combinacional que realice la divisin entera de un nmero codificado en BCD entre 3.

Esta era la tabla de verdad que obtuvimos anteriormente:


Nmero

resultado

Divisin entre 3 de los nmeros del 0 al 9

D C B A b1 b0
0
0
0
0
0
0
0
0
1

0
0
0
0
1
1
1
1
0

0
0
1
1
0
0
1
1
0

0
1
0
1
0
1
0
1
0

0
0
0
0
0
0
1
1
1

0
0
0
1
1
1
0
0
0

Tabla de verdad del circuito

Si nos fijamos, vemos que la tabla de verdad no est completa. Para 4 bits hay 16 combinaciones de entrada y
nosotros solo hemos puesto 10. Por qu? Porque en BCD no se usan las combinaciones superiores, aquellas
correspondientes a los nmeros decimales 10, 11, 15.

Pero nosotros, sin darnos cuenta, si que las hemos usado, las hemos asignado el valor 0 como se ve en los
diagramas de Karnaugh:
ba
dc

ba
00

01

11

10

00

00

01

11

01

11

10

00

01

10

dc

11

10

b1

b0

Deberamos incluir en nuestros diagramas de Karnaugh dicha combinaciones como x, en lugar de como 0:
ba
dc

ba
00

01

11

10

00

dc

00

01

01

11

10

00

01

11

11

10

10

b1

b0

Ahora, para realizar los grupos usaremos las x que acabamos de aadir como 1 o como 0 lgico en funcin de lo
que ms nos convenga para conseguir el menor nmero de grupos, o bien que stos sean lo ms grandes posible:
ba
dc

ba
00

01

11

10

00

dc

00

01

01

11

10

00

01

11

11

10

10

b1

b0

En esta ocasin nos queda:

b1 = d + cb

b0 = cb + d a + cba

Que como vemos son expresiones bastante menos complejas que las obtenidas en el apartado 3 y adems el
circuito se va a comportar exactamente de la misma manera.

You might also like