fundamentos de lógica digital. sesión07. el mapa de karnaugh
TRANSCRIPT
1
Fundamentos de lógica digital. Sesión07. El mapa de Karnaugh
Antes vimos que el álgebra Booleana es un arma poderosa para el estudio de los circuitos
lógicos.
Sin embargo, el álgebra Booleana tiene sus limitaciones.
Considérese la siguiente expresión:
AB’ + B
Aparentemente, esta expresión ya no se puede simplificar. Sin embargo, podemos
comprobar (construyendo las Tablas de Verdad) que esta expresión cuya simplificación no
es tan obvia pese a todo es equivalente a la siguiente expresión:
A + B
la cual es mucho más sencilla. Se hace evidente que hay casos en los cuales el álgebra
Booleana no es suficiente. Tenemos pues que recurrir a otras técnicas que la
complementen.
Los diagramas de subconjuntos nos proporcionan una manera sencilla de poder visualizar
las relaciones que puede haber entre varias variables. Quizá los diagramas más sencillos de
todos son los que representan al "1" lógico, el cual podemos representar como un cuadro
completamente lleno, y al "0" lógico, el cual podemos representar como un cuadro
completamente vacío:
En este tipo de diagramas, no sólo podemos representar el "uno" y el "cero". También
podemos representar variables. El diagrama más sencillo de todos es el que utilizamos para
representar una sola variable, el cual está dividido en dos partes: una parte "llena" que es la
parte en la cual la variable A toma el valor de "1" (a la izquierda, de color cian), y la parte
"vacía" que es la parte en la cual la variable A toma el valor de "0" (a la derecha, sin color):
2
Pero con estos diagramas no sólo podemos representar a la variable. También podemos
representar el inverso lógico de la variable, el cual será como se muestra a continuación:
Del mismo modo, podemos representar una segunda variable B y el complemento de la
misma de la siguiente manera:
Superimponiendo ambas variables en un mismo diagrama, podemos contestar algunas
preguntas interesantes como la siguiente: ¿en qué parte del diagrama mixto se encontrará la
región en la cual ambas variables A y B se traslapan? La respuesta se da a continuación:
3
A continuación, tenemos la región en donde la variable A se traslapa con el complemento
de la variable B, así como la región en la cual los complementos de ambas variables se
traslapan:
Hagámonos ahora otra pregunta: ¿cuál sería la región en la cual las variables A y B se unen
(en lugar de intersectarse), la porción del diagrama en donde podemos estar ya sea en A ó
en B, o sea la región que representaría la suma Booleana A+B de dichas variables? La
respuesta se da a continuación:
Y el área que representa la suma Booleana de los complementos de ambas variables es la
siguiente:
Por su parte, la expresión Boleana AB’+A’B que representa la salida de un bloque OR-
EXCLUSIVO es la siguiente:
4
Si queremos superimponer en el mismo mapa una tercera variable C, lo podemos hacer de
la siguiente manera:
Y si queremos superimponer en el mismo mapa una cuarta variable D, lo podemos hacer de
la siguiente manera:
El mismo procedimiento constructivo se puede extender hacia una quinta variable e
inclusive hacia una sexta variable, aunque la ventaja de visualización se va perdiendo
rápidamente encima de las cuatro variables.
Para representar en el mapa una expresión elaborada como (A+B)(C+D):
5
primero localizamos en el mapa la región que representa la suma de las regiones A y B, o lo
que es lo mismo, la suma Booleana de las variables A y B:
tras lo cual localizamos en el mapa la región que representa la suma de las regiones C y D,
o lo que es lo mismo, la suma Booleana de las variables C y D:
tras lo cual obtenemos un mapa que represente las regiones que ambos mapas de A+B y
C+D tengan en común, o sea la región común en la que ambos se intersectan, lo cual
equivale a llevar a cabo la operación lógica AND de A+B y de C+D.
Los diagramas de subconjuntos permiten verificar de manera casi inmediata todos los
teoremas Booleanos que fueron demostrados en el capítulo anterior. Por ejemplo, el
teorema que dice:
A + A’ = 1
6
es verificado de la siguiente manera:
Con cambios mínimos, los diagramas de subconjuntos nos sirven de base para
introducirnos a una de las herramientas de simplificación de circuitos lógicos más
populares que hay. Estudiaremos a continuación el siguiente mapa para dos variables
boleanas A y B conocido como el mapa de Karnaugh, inventado en 1952 por Edward W.
Veitch y refinado posteriormente por Maurice Karnaugh, un ingeniero de
telecomunicaciones trabajando para Bell Labs:
El mapa de Karnaugh o mapa-k es un diagrama utilizado para la simplificación de
funciones algebraicas Booleanas, permitiendo de manera gráfica reconocer patrones y así
reduce la necesidad de hacer cálculos extensos para la simplificación de expresiones
booleanas.
El mapa de karnaugh proporciona la misma información en un formato distinto.
Ventajas del mapa de karnaugh
El mapa-k nos permite convertir la tabla de verdad de una ecuación booleana en una
forma SOP (Suma de productos) o POS (Productos de suma) minimizada.
Reglas básicas y sencillas para la simplificación.
La facilidad del método permite que sea más rápido y más eficiente que otras
técnicas de simplificación en el Álgebra de Boole.
Para la construcción de nuestro primer mapa de Karnaugh, utilizaremos el concepto del
minterm. Supóngase que deseamos localizar el minterm AB’ en el mapa de Karnaugh.
Estudiando el mapa detenidamente, vemos que podemos representar dicho minterm en el
mapa como se muestra a continuación:
se trata de localizar la “coordenada” donde coinciden A y B’
7
De la misma manera, si deseamos representar los minterms AB y A’·B’ en el mapa de Karnaugh,
podemos hacerlo de la siguiente manera:
Aquí, AB sería la esquina superior izquierda y A’B’ la esquina inferior derecha.
Ahora bien, también podemos representar variables sencillas en el mapa de Karnaugh.
Supóngase que deseamos representar B’ en el mapa de Karnaugh. Esto lo logramos de la
siguiente manera:
En este caso todo el renglón inferior representa a B’, por eso colocamos dos unos.
Estudiamos ahora un hecho de importancia trascendental. Este último mapa de Karnaugh
nos indica que B’ es igual a la suma de los minterms AB’ y A’·B’, lo cual podemos
comprobar mediante el álgebra Boleana como sigue:
AB’ + A’·B’ = (A + A’)B’ = (1)B’ = B’
Tenemos aquí nuestra primera indicación sobre cómo podemos usar el mapa de Karnaugh
para simplificar circuitos lógicos.
Supóngase que la salida de un circuito está dada por la siguiente expresión:
Salida = A’B + A’·B’
Podemos describir la salida del circuito en un mapa de Karnaugh de la manera siguiente:
8
Vemos de inmediato en el mapa cómo los minterms A’B y A’·B’ forman dos grupos
adyacentes que están cubiertos completamente en el mapa por la variable A’. Concluimos,
pues, que la salida simplificada del circuito está dada por la siguiente expresión:
Salida = A’
La regla general para simplificar un circuito usando el mapa de Karnaugh es examinar el
mapa que le corresponde y determinar los agrupamientos más grandes de grupos
adyacentes que se pueden describir con el menor número de variables booleanas.
Usando el mapa de Karnaugh, tratemos ahora de simplificar la expresión que encontramos
al comienzo de este capítulo:
AB’ + B
Su mapa de Karnaugh con una simplificación posible tendrá el siguiente aspecto (el
"minterm" correspondiente a la variable B está enmarcado dentro de una línea verde
cubriendo todo el renglón representativo de B, mientras que el "minterm" AB’ es puesto
antes de los agrupamientos simplificadores en la esquina inferior izquierda):
Como se puede ver, es posible hacer dos agrupamientos de grupos adyacentes, los cuales
están descritos por la expresión:
9
A + B
que es la expresión simplificada que buscábamos.
Lo cual nos dice en resumen que:
Al agrupar un par de unos adyacentes en un mapa K se elimina la variable que aparece
tanto en forma no complementada como en forma complementada
Asimismo, el mapa de Karnaugh nos indica cuáles son las expresiones que no se pueden
simplificar. Por ejemplo, la siguiente expresión:
AB’ + A’B
está descrita por el siguiente mapa:
Esta expresión, como se puede ver en su mapa de Karnaugh, ya no se puede simplificar.
Existe otro tipo de representación para el mapa de Karnaugh, la cual es completamente
equivalente a la que ya hemos visto. Bajo esta representación, a continuación, tenemos un
mapa de Karnaugh para dos variables A y B:
Aquí la entrada correspondiente a la combinación AB=01 estará situada en el segundo
renglón y en la primera columna. Esta representación es completamente equivalente a la
representación vista al principio. A continuación, se muestran los dos tipos de
representación, lado a lado, para dos variables A y B:
10
REGLAS DEL MAPA DE KARNAUGH
1. Las agrupaciones o el término a considerar únicamente serán del número “1”.
2. Las agrupaciones únicamente se deben hacer en horizontal y vertical.
3. Las agrupaciones a considerar deben contener 2n elementos. Es decir cada
agrupación que contiene cada grupo tendrá 1, 2, 4, 8,…, 2n cantidad de número de
uno o unos.
4. Para una mejor simplificación se debe considerar el grupo más grande posible.
11
5. Se debe considerar todo número “1”.
6. Es posible solapar grupos de “1”.
7. Las formaciones de grupos también se pueden producir con las celdas extremas de
la tabla.
8. Debemos considerar el menor número de agrupaciones o grupos posibles
obedeciendo las reglas anteriores.
Para tres variables de entrada A, B y C, bajo la representación alterna un mapa de
Karnaugh tendrá el siguiente aspecto:
12
Aquí el casillero correspondiente a la entrada ABC= 011 estará situado en el segundo
renglón y en la segunda columna. Y el casillero correspondiente a la entrada ABC=101
estará situado en el segundo renglón y en la cuarta columna.
Y para cuatro variables A, B, C y D, el mapa de Karnaugh para este tipo de representación
será el siguiente:
Las casillas del mapa K se etiquetan de manera que las casillas adyacentes en forma
horizontal difieran sólo por una variable.
Observe que cada casilla en la fila superior se considera como adyacente a una casilla
correspondiente en la fila inferior. Por ejemplo, la casilla A’BC'D' en la fila superior es
adyacente a la casilla A'BCD' en la fila inferior ya que solo difieren por la variable A. Lo
mismo ocurre con las casillas de las columnas derecha e izquierda.
A continuación, se llevará a cabo la simplificación de un circuito lógico de tres variables a,
b y c, mediante un mapa de Karnaugh de este tipo trazado de la siguiente manera:
Dentro de este mapa de Karnaugh, se destacarán las combinaciones de valores tanto de las
entradas como de la salida:
13
El propósito del mapa de Karnaugh es aprovechar al máximo la capacidad humana de poder
"agrupar" visualmente patrones similares para poder descubrir así los agrupamientos de
"unos" (o alternamente, de "ceros") que pueden resultar en una simplificación. En este caso,
podemos llevar a cabo los siguientes agrupamientos:
¿Es posible agruparlos de otra manera válida?
El siguiente esquema nos muestra agrupados todos los pasos agrupados para llevar a cabo
la simplificación de un circuito lógico con dos variables de entrada con este tipo de mapa
de Karnaugh:
Empezamos con el circuito lógico puesto en la esquina inferior izquierda, obteniendo del
mismo la expresión de su salida lógica Out puesta en la esquina superior izquierda:
14
Out = A’B + AB’ + AB
Esta expresión está justo en la forma que requerimos (suma-de-productos) para construir el
mapa de Karnaugh usando minterms. El término A’B nos produce un "1" cuando A=0 y
B=1, y esta es nuestra primera entrada en el mapa de Karnaugh. El término AB’ nos
produce un "1" cuando A=1 y B=0, y esta es nuestra segunda entrada en el mapa de
Karnaugh. Y por último, el término AB nos produce un "1" cuando A=1 y B=1, y esta es
nuestra tercera entrada en el mapa de Karnaugh.
El siguiente paso consiste en llevar a cabo los agrupamientos que nos pueden dar una
simplificación del circuito. Estos son mostrados en el mapa de Karnaugh puesto en la
esquina superior derecha. El primer agrupamiento como "minterm" más sencillo es la
variable A (agrupando los valores de A=1) y el segundo agrupamiento como "minterm"
más sencillo es la variable B (agrupando los valores de B=1). Los "minterms" simplificados
en el mapa de Karnaugh nos dicen que podemos reemplazar la expresión original por la
siguiente expresión (en suma-de-produtos) más simplificada:
Out = A + B
El circuito lógico simplificado se muestra en la esquina inferior derecha del diagrama, el
cual requiere un solo componente lógico, un OR, a diferencia del circuito original que
requería de cuatro componentes, tres AND y un OR.
Considérese ahora un circuito lógico cuya salida Out está dada por la siguiente expresión:
Out = A’·B’·C’ + AB’·C’ + A’BC’ + ABC’
Este circuito lógico con tres variables de entrada tiene una salida dada como suma de
productos, lo cual nos permite localizar los "1" de los minterms que van dentro del mapa de
Karnaugh y lo cual nos permite llevar a cabo la simplificación "enrollando" el mapa
alrededor de un cilindro como se muestra:
15
No resulta difícil ver que la versión simplificada es simplemente:
Out = C’
A continuación, tenemos otro mapa de Karnaugh, ahora para un circuito con cuatro
variables de entrada A, B, C y D, tanto antes como después de haber encontrado un
conjunto de posibles simplificaciones:
Existen muchos casos en los cuales no todas las combinaciones lógicas de "ceros" y "unos"
a la entrada de un circuito son necesarias; un ejemplo de ello es el de un decodificador que
toma un número binario de cuatro bits a su entrada y lo convierte en una combinación de
siete salidas para encender selectivamente los segmentos de un indicador luminoso
numérico hecho a base de diodos emisores de luz LED; en este caso no se utilizará ninguna
de las combinaciones entre "1010" y "1111" puesto que no representan dígito alguno en el
sistema numérico decimal. Cuando tenemos algunas condiciones dentro de un circuito
lógico en las cuales la salida puede ser ya sea un "0" ó un "1" sin consecuencia alguna para
el diseño final (conocidas en la literatura de habla inglesa como condiciones “no importa”
don't care), podemos representar dichas condiciones simplemente con una "X" que se
sobreentiende que puede tener un valor de "0" ó de "1". A continuación tenemos otro mapa
de Karnaugh para un circuito con cuatro variables de entrada A, B, C, D, y cuatro
condiciones "X", tanto antes como después de haber encontrado para dicho circuito un
conjunto de posibles simplificaciones:
16
Como puede verse en una de las simplificaciones, la simplificación encerrada bajo una
línea de color rojo, estamos aprovechando la ventaja de que "X" puede representar ya sea
un "0" ó un "1" para tomarlo como un "1" y juntarlo con los demás "unos" del
agrupamiento. Esto mismo se ha llevado a cabo en la simplificación encerrada bajo una
línea de color azul en donde también hemos agrupado "unos".
De aquí se desprende lo siguiente:
Agrupamiento de grupos de cuatro (cuádruples)
Al agrupar un cuádruple de unos adyacentes se eliminan las dos variables que aparecen
tanto en forma complementada como en forma no complementada.
Agrupamiento de octetos (grupos de ocho)
Al agrupar un octeto de unos adyacentes se eliminan las tres variables que aparecen en su
forma complementada como en su forma no complementada.
Proceso completo de simplificación.
Cuando una variable aparece tanto en su forma complementada como no complementada
dentro de un grupo, esa variable se elimina de la expresión. Las variables que son iguales
para todas las casillas del grupo deben aparecer en la expresión final