Archivo de la etiqueta 'IB'

Explicación: Mapas de Karnaugh (II)

Como han sido varias personas las que han acabado en este blog buscando por como se hacen los mapas de Karnaugh debido a una entrada anterior y yo también tenía pensado publicar una, a continuación voy a explicar como se realizan los mismos paso a paso.

El objetivo principal de los mapas de Karnaugh es el de simplificar operaciones en el álgebra de Boole. Para ello necesitamos llevar a cabo, lo que yo separaría, en cuatro pasos claros.

1) Comprender la operación que se te plantea.

Este paso es indispensable, consiste en saber que te va a devolver la operación estudiandola como cualquier otra (paréntesis, negadores, etc), si 1 o 0, para más tarde poder realizar la tabla de verdad correctamente.

Como ejemplo voy a poner una que hice en una práctica de IB que me viene bastante bien. La operación en cuestión te la dan en forma de sumatorio, por lo que después podríais pasarla, si queréis, a SOP (Suma de Productos) con sus minitérminos correspondientes:

f = Σ(0,1,2,5,7,8,10,13,14,15)

En este caso va a ser muy fácil hacer la tabla de verdad, ya que con 4 bits, aquellos que coincidan con los términos entre paréntesis devuelven 1 y el resto 0, pero no siempre es tan fácil, puede suceder que nos den una operación booleana, en la que tendremos, manualmente, que comprobar todos los valores para saber lo que nos devuelven.

2) Realizar una tabla de verdad de la misma.

Como ya he dicho, en este caso es muy fácil hacer la tabla de verdad porque prácticamente ya nos la dan hecha, sería así:

tbdv.jpg

Me he tomado la licencia de hacerla con el EWB que me resulta más fácil para mostrárosla. Si nos dieran directamente la operación booleana, en este caso con 4 bits, tendríamos que asignarle a cada uno el valor correspondiente y ver al final que nos da. El sumatorio que os di en el paso anterior, en forma de SOP sería:

sop.jpg

Como véis abcd tiene los valores de la tabla de verdad (0000, 0001…) y como está en SOP, los 0 están negados y los 1 no. De este modo el número 0(a)0(b)0(c)0(d) en la tabla de verdad habría que comprobarlo unicamente con el minitérmino abcd y así sucesivamente viendo lo que nos devuelve. Ahora a simplificar mediante Karnaugh.

3) Comenzar a formar el mapa de Karnaugh.

A la hora de realizar la tabla, tendremos que tener en cuenta el número de bits, en este caso 4. Para realizar el mapa de Karnaugh tendríamos que hacer una tabla de 4×4 debido a los bits, dejando ab en vertical y cd en horizontal o viceversa, si fueran 3 bits habría que hacer una de 2×4 por ejemplo. También destacar que las combinaciones posibles se ponen en Gray, pero con aprendérselas de memoria sobra. Queda así:

karnaugh.jpg

Como véis, los 1 están colocados en aquellas casillas en las cuales, viendo las combinaciones verticales (00, 01, 11…) y las horizontales (00, 01, 11…) nos dan el número que tiene un 1 en la tabla de verdad, de modo que, por ejemplo el 0000 devuelve 1, por lo tando la combinación 00(vertical) y 00(horizontal) tiene un 1 en su casilla y así respectivamente.

Tras esto tendremos que agrupar los unos en los grupos más grandes posibles siempre que sean múltiplos de 2 (grupos de 2 unos, de 4 unos, de 6 unos…), pudiendo coger, en este caso por ejemplo, los que están en las esquinas como grupo de 4 ya que puedes agrupar los de abajo del todo con los de arriba del todo como si estuvieran seguidos, al igual que de izquierda a derecha y viceversa.

4) Traducir a operación simplificada.

Este paso puede resultar el más complicado, pero una vez sabido está tirao. Ahora tenemos que volver a fijarnos en las combinaciones Gray verticales y horizontales y en los grupos realizados. Vamos a realizar por ejemplo el grupo de 4 que está en el centro del mapa de Karnaugh. Como vemos, verticalmente las combinaciones son 01 y 11 que representan en este caso a ab, pues tenemos que coger aquellas que coincidan, si coinciden en 1 se pone sin negar y si coincide en 0 pues negado, quedando pues B. A continuación nos fijamos en las combinaciones verticales que también son 11 y 01 y representan cd, como coinciden en d (11, 01), resultaria D ya que en c hay 1,0 y es distinto. De este modo ese grupo resultaría BD. Así habría que hacer con todos los grupos hasta obtener la operación simplificada al máximo, que sería f = A’B’C’+ACD’+BD+B’D’.

Así que ya está. Tened en cuenta que este mapa de Karnaugh está realizado en forma de SOP y si lo hacemos en POS habría que hacer los mismos pasos pero con 0. Espero que esto, junto a otras páginas que sirvan de complemento os haga entender como se hacen los mapas de Karnaugh.

Mapas de Karnaugh

Buscando y buscando por internet no he encontrado ningún sitio donde expliquen decentemente como se realizan los mapas de Karnaugh, algo que va a ser básico a partir de ahora en la asignatura de Informática Básica. Lo que si he encontrado es un programilla que hace ese trabajo por ti, permitiendo introducir el número de variables, las salidas de la tabla de verdad y construyendo automáticamente el mapa de Karnaugh además de implementar la función simplificada.

El programa en cuestión se llama “Karnaugh Map Minimizer” y resulta bastante útil, aún así os aconsejo aprender a hacerlas a mano, pues si no vais a ir de culo. Para saber como se hacen, además de las clases teóricas y en menor medida los apuntes de éstas (no sirven para casi nada) os recomiendo el libro de “Fundamentos de Sistemas Digitales” de Thomas L. Floyd donde viene explicado al dedillo como realizarlas y te ponen ejemplos.

Descargar Karnaugh Map Minimizer