Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cap5-Mapas de Karnaugh PDF
Cap5-Mapas de Karnaugh PDF
Capítulo 5
Mapas de Karnaugh
5.1. Conceptos
Esta representación gráfica de una función booleana ha sido utilizada desde 1953. Permite entender los
principales conceptos sobre minimización de funciones, pero su uso práctico está limitado a un número
relativamente bajo de variables, no más de 5 ó 6.
Existe una relación uno a uno entre un mapa y una tabla de verdad. Una tabla tiene un renglón por cada
mintérmino; y un mapa, como se verá, tiene un casillero o cuadro asociado a cada mintérmino.
El mapa también puede ser considerado una extensión de los diagramas de Venn. Consideremos un diagrama
de Venn para dos variables A y B:
A B
A B’ AB
A’ B
A’ B’
Si el orden de las variables para la asignación del código de mintérminos es AB, se puede rotular el diagrama
con el número decimal asociado al mintérmino, queda:
A B
2 3 1
0
Figura 5.2 Códigos decimales de mintérminos en un diagrama de Venn.
Puede observarse que resultan áreas desiguales para cada mintérmino; y que el gráfico refleja las adyacencias
entre mintérminos, pero no tan claramente como un 2-cubo, el cual se muestra en la Figura 5.3:
0 A
2
1 3
B
C
Figura 5.3 Mintérminos de dos variables en un 2-cubo.
En un mapa de Karnaugh para cada mintérmino se adopta un área de igual tamaño y forma cuadrada; y
además, estos cuadrados se disponen de tal forma que reflejen las adyacencias. En la Figura 5.4, se ha
superpuesto el 2-cubo, con un mapa de dos variables.
A
B 0 1
0 0 2 A
1 1 3
B f(A,B)
C
Figura 5.4 Mintérminos de dos variables en un mapa de Karnaugh.
La identificación de los cuadros con el número del mintérmino, depende de la elección del orden de las
variables que se haya elegido para la representación decimal equivalente. Por ejemplo, para dos variables A y
B:
B 0 1 B 0 1
A A
0 1 0 2
0 0
2 3 1 3
1 1
f(A, B) f(B, A)
La representación de funciones mediante mapas, se logra marcando los mintérminos presentes con un "1"; los
ceros suelen omitirse.
Por ejemplo, las funciones AND y OR, de dos variables, se representan en mapas según:
B B
A 0 1 A 0 1
0 1 0 0 1
0 0 0 1
2 3 2 3
1 0 1 1 1 1
f1(A,B)=A B f2(A,B)=A + B
Para tres variables, en orden: A, B y C, se ilustran los mintérminos en un diagrama de Venn y en un 3-cubo:
B
A B 2 6
4 6 2
0 A
7 4
5 3
3
7
1 0 1 5
C
C
La Figura 5.8, muestra un desarrollo de un 3-cubo. Nótese que al abrir las caras del cubo, los mintérminos
que están a distancia uno, quedan adyacentes (exceptuando los de la cara 0451).
Los códigos de los mintérminos quedan ordenados según código Gray. El 3-cubo muestra también la
propiedad del código Gray de ser reflejado, la cara 0231 y la cara 4675 son 2-cubos con A=0 y A=1
respectivamente.
B B=1
A=0
2 A=1
6
4 A 2 6
0 0
C=0 4
3
7
1 3 7
5 C=1 5
1
0
C
f(A, B, C)
f(A, B, C)
Figura 5.8 Del 3-cubo al mapa de Karnaugh de tres variables.
La Figura 5.9 muestra el desarrollo de un 3-cubo sobre el mapa de Karnaugh de tres variables:
AB
C 00 01 11 10
0 2 6 4
0
1
1 3 7 5
f(A, B, C)
Figura 5.9 Mapa de Karnaugh de tres variables y un 3-cubo.
Nótese que m0 es adyacente a m1 , m2 y m4 . En un mapa de Karnaugh se considera que los bordes de los
rectángulos son coincidentes, debido a la propiedad del código Gray de ser cíclico. Los cuatro mintérminos
de los extremos pueden visualizarse como muestra la Figura 5.10:
El mapa para tres variables puede obtenerse con dos mapas de dos variables.
Resulta práctico colocar en un borde de cada cuadrado el número del mintérmino. De esta forma, resulta
cómodo expresar una forma canónica en un mapa.
A continuación se ilustran mapas, para 3, 4 y 5 variables. Los valores de columnas y renglones se ordenan
empleando código Gray, para reflejar mejor las adyacencias. El orden de las variables, para la representación
decimal equivalente del mintérmino, figura en la base de cada mapa.
AB
CD 00 01 11 10
0 4 12 8
AB 00
C 00 01 11 10
0 2 6 4 1 5 13 9
0 01
1 3 7 5 3 7 15 11
1 11
2 6 14 10
f(A, B, C) 10
B
Figura 5.12 Mapa de Karnaugh para tres variables.
Nótese que el mapa de 5 variables se obtiene a partir de dos mapas de cuatro variables. A uno se le antecede
un cero en la codificación de las columnas y al otro un 1.
ABC
000 001 011 010 110 111 101 100
DE
0 4 12 8 24 28 20 16
00 0
1 5 13 9 25 29 21 17
01
3 7 15 11 27 31 23 19
11
2 6 14 10 26 30 22 18
10
f(A, B, C, D, E)
Sin embargo esta forma de generar mapas, no refleja bien las adyacencias.
En un mapa de cinco variables cada mintérmino tiene cinco adyacentes, pero sólo pueden dibujarse cuatro
cuadrados adyacentes en un lado a un cuadrado. Por ejemplo, en la Figura 5.13, se visualiza bien que el
mintérmino 5 tiene adyacentes los mintérminos: 1, 4, 7 y 13; pero no tan claramente que también es
adyacente al 21.
Otra forma es una representación de mapas apilados en el espacio, como se muestra en la Figura 5.14. De
esta forma puede visualizarse las adyacencias en diferentes planos. En esta representación se visualiza mejor
que el mintérmino 5 es adyacente con el 21.
19 23 31 27
ABC
1 5 13 9
01 f(A, B, C, D, E)
3 7 15 11
11
2 6 14 10
10
Los siguientes mapas ilustran el concepto de agrupaciones de números pares de mintérminos, que forman
subcubos.
AB AB
CD 00 01 11 10 CD 00 01 11 10
0 4 12 8 0 4 12 8
00 0 0 1 1 00 0 0 1 0
1 5 13 9 1 5 13 9
01 0 0 1 1 01 0 0 1 0
3 7 15 11 3 7 15 11
11 0 0 1 1 11 0 0 1 0
2 6 14 10 2 6 14 10
10 0 0 1 1 10 0 0 1 0
AB AB
CD 00 01 11 10 CD 00 01 11 10
0 4 12 8 0 4 12 8
00 0 0 0 0 00 0 0 0 0
1 5 13 9 1 5 13 9
01 0 0 0 0 01 0 0 0 0
3 7 15 11 3 7 15 11
11 0 0 1 0 11 0 0 1 0
2 6 14 10 2 6 14 10
10 0 0 1 0 10 0 0 0 0
Para n = 4:
a) Un mintérmino se expresa como un producto de 4 variables.
b) Una agrupación de 2 mintérminos, que forman un 1-cubo (o que son adyacentes), puede expresarse en tres
variables.
c) Una agrupación de 4 mintérminos, que forman un 2-cubo, se expresa en dos variables.
d) Una agrupación de 23 mintérminos, que forman un 3-cubo, reduce en 3 las variables; es decir, esta
agrupación puede expresarse como una variable.
e) Una agrupación de los 2 4 mintérminos (forman un 4-cubo), puede expresarse como 1. Es decir, en 0
variables.
f) Nótese que bajo el mapa suele escribirse la función que éste representa.
g) La lectura de la expresión asociada a un grupo, se efectúa por la intersección de las zonas asociadas a las
variables.
h) El número de grupos de un literal, en caso de n variables, aplicando la fórmula desarrollada en 4.4, es:
n n!
21 2 2n
1 1!(n 1)!
A, B, C , D, A , B , C , D
n n!
22 22 2n(n 1)
2 2!(n 2)!
22
j) Los grupos de k literales, cuando se tienen n variables, quedan dados por:
Con k n :
n!
2k
k!(n k )!
Cuando k es igual a n, se logra el número de mintérminos.
k) Debido al alto número de subcubos, es importante ejercitarse en ubicarlos en el mapa.
Los menos evidentes son aquellos que se encuentran en los bordes.
Ejemplos de estos casos, para n=4: b’d’, b’c, a’b’d’, a’bd’
La obtención del mapa, a partir de una forma canónica es asunto trivial, si los casilleros han sido rotulados
con los números decimales de los mintérminos.
La obtención del mapa, a partir de una forma “suma de productos” puede obtenerse empleando los conceptos
desarrollados en manejo de mapas en el punto 5.3, para representar los cubos de cada producto.
Aplicando la inducción perfecta los mapas pueden emplearse para demostrar teoremas, y también para
verificar alguna proposición del álgebra de Boole.
La principal aplicación de los mapas es la minimización de funciones, realizada en forma manual, lo que
resulta conveniente para 5 o menos variables.
AB
C 00 01 11 10
0 2 6 4
0 1
1 3 7 5
1 1 1
f ( A, B, C ) m(1, 2,5)
Para tres variables: Un mintérmino tiene 3 literales; una agrupación de dos mintérminos adyacentes tiene una
expresión dependiente de dos variables.
Para aclarar el método, se dibujará un mapa para cada producto. Con un poco de experiencia, todos los
productos pueden dibujarse en el mismo mapa.
AB AB
C 00 01 11 10 C 00 01 11 10
0 2 6 4 0 2 6 4
0 0 1 1
1 3 7 5 1 3 7 5
1 1 1 1
AB AB
C 00 01 11 10 C 00 01 11 10
0 2 6 4 0 2 6 4
0 0 1 1
1 3 7 5 1 3 7 5
1 1 1 1 1
Dadas dos funciones, si se desea probar su equivalencia, la aplicación de los mapas simplifica largas
demostraciones algebraicas. Sólo es preciso obtener un mapa para cada una de las funciones, y luego
comparar la igualdad de sus formas canónicas.
La expresión del lado derecho tiene el mapa que figura a la izquierda en la Figura 5.20. A la derecha de la
Figura 5.20 se tiene el mapa para el OR de las variables.
A A
0 1 B 0 1
0 2 0 2
0 1 0 1
1 3 1 3
1 1 1 1 1
f1(A,B)=A'B' f2(A,B)=A+B
Negando el mapa para la función OR, se obtiene idéntico mapa al de f1. Entonces f1 y f2’ son equivalentes por
tener igual forma canónica, lo cual demuestra por inducción completa la proposición, conocida como teorema
de De Morgan.
Se han desarrollado herramientas de diseño lógico que permiten efectuar minimizaciones para funciones de
una o varias variables. Sin embargo los algoritmos y heurísticas en que están basados no son fáciles de
entender, ya que conceptualizan aspectos de las funciones booleanas que son más adecuadas a un tratamiento
algorítmico, mediante un computador.
A continuación desarrollaremos métodos gráficos, basados en mapas, y que están limitados a un número
reducido de variables (no más de 6), ya que su exposición permitirá entender los métodos automáticos, así
como también permitir diseñar, con papel y lápiz, algunos casos sencillos.
Podemos plantear el problema de minimización diciendo que se desea obtener, a partir de una expresión
booleana, una forma equivalente que contenga un número mínimo de términos, y tal que cada término tenga
el mínimo número de literales posible.
El método consiste en dibujar el mapa a partir de la función, y luego leer desde el mapa agrupando
convenientemente los mintérminos presentes.
Deben respetarse las siguientes reglas:
Deben agruparse tantos bloques como sea posible; ya que mientras mayor sea la agrupación, menor será el
número de literales.
Debe formarse el menor número de agrupaciones de bloques; ya que a menor número de grupos, se tendrá
menor número de términos.
Un bloque puede ser usado muchas veces, en distintas agrupaciones; pero a lo menos una vez.
Una técnica consiste en formar primero los grupos con menor número de adyacencias. Por esta razón, los
primeros mintérminos que deben marcarse son aquellos que no tienen adyacencias.
Ejemplo 5.4. Minimización a partir de los mintérminos
Se tiene:
AB
C 00 01 11 10
0 2 6 4
0 1 1 1
1 3 7 5
1 1 1
Si se considera primero la agrupación de los mintérminos (2, 3, 6, 7) que puede leerse como B, podría inducir,
en caso de mapas complejos, a no agrupar convenientemente al mintérmino A’B’C’, que sólo tiene una
adyacencia.
Considerando formar grupos mayores con los mintérminos que tienen menos adyacencias quedan las
siguientes agrupaciones de mintérminos: (0, 2) y (2, 3, 6, 7).
AB
C 00 01 11 10
A’C’ 0 2 6 4
0 1 1 1 0
1 3 7 5
1 0 1 1 0
B
f(A, B, C)=B+A’C’
Figura 5.22. Agrupaciones en el Mapa de Karnaugh.
Se observa que:
m14 no tiene mintérminos adyacentes. Por esta razón no puede agruparse.
m13 tiene un mintérmino adyacente. Por lo tanto, sólo puede agruparse con m9 .
m0 , m3 , m8 y m11 tienen dos mintérminos a distancia uno.
m1 tiene 3 mintérminos adyacentes.
m9 tiene 4 mintérminos a distancia uno.
Los grupos que forman sub-cubos suelen marcarse en al mapa, encerrando los mintérminos del grupo con una
línea cerrada.
Sólo falta considerar m3 y m11 , que a su vez forman un grupo. Sin embargo, conviene efectuar la
agrupación: ( m1 , m3 , m9 , m11 ), que emplea m1 y m9 , ya considerados, con el objeto de hacer el grupo lo mayor
posible.
f(A,B,C,D)=ABCD’+AC'D+B’D+B’C’
Ejemplo 5.6.
Minimizar: f(A, B, C, D) = m(0, 1, 2, 7, 8, 9, 10, 15)
AB
CD 00 01 11 10
0 4 12 8
00 1 0 0 1
1 5 13 9
01 1 0 0 1
3 7 15 11
11 0 1 1 0
2 6 14 10
10 1 0 0 1
f(A, B, C, D)=BCD+B’D’+B’C’
1 5 13 9 17 21 29 25
01 0 0 1 0 0 0 1 0
3 7 15 11 19 23 31 27
11 0 1 0 0 0 1 0 0
2 6 14 10 18 22 30 26
10 1 0 0 1 1 0 0 1
f(A, B, C, D, E)=B’CDE+A’B’D’E’+BCD’+C’DE’
El método consiste en desarrollar el mapa para f, a partir de la forma canónica. Luego se obtiene el mapa para
f negado, de esta forma, se puede leer el producto de maxtérminos de f, como la suma de mintérminos de f’.
Así se obtiene la forma mínima como suma de productos. Después se obtiene por involución, la función f; y
finalmente se aplica De Morgan.
Para una función dada, siempre deberán obtenerse los dos diseños; es decir la forma suma de productos y
producto de sumas, ya que no es posible obtener una relación que indique cual de las dos formas será
mínima.
Ejemplo 5.8
Para el mapa de la Figura 5.27, se pueden obtener las formas canónicas:
La suma de mintérminos, resulta:
f’ = m(2, 5, 6, 7) = m2 + m5 + m6 + m7
f ’ = A’BD + A’CD’
Ejemplo 5.9.
Minimizar, según producto de sumas: f(A,B,C,D) = (4,5,7,8,10,11,12,13,15)
AB
CD 00 01 11 10
0 4 12 8
00 0 1 1 1
1 5 13 9
01 0 1 1 0
3 7 15 11
11 0 1 1 1
2 6 14 10
10 0 0 0 1
AB
CD 00 01 11 10
0 4 12 8
00 1
1 5 13 9
01 1 1
3 7 15 11
11 1
2 6 14 10
10 1 1 1
f '(A, B, C, D)
Figura 5.29. Mapa con los mintérminos de f’
Formando los siguientes grupos, en el mapa: (0, 1, 3, 2); (6, 14); (1, 9).
Con un poco de práctica, pueden agruparse los ceros en el primer mapa, y leer directamente las sumas,
complementando las variables.
Algunas funciones booleanas son completamente especificadas para todas las combinaciones posibles de sus
variables.
Se denominan funciones incompletamente especificadas cuando se establece que el valor de la función es "1"
para ciertas combinaciones, "0" para otras y un valor cualquiera para el resto.
Los mintérminos pueden agruparse en tres conjuntos: conjunto que activa la función (on set), conjunto que
desactiva la función (off set) y conjunto de mintérminos superfluos (dc set).
Los mintérminos que pueden ser especificados con valor "1" ó "0"; es decir: con cualquier valor, se
denominan “condiciones superfluas”, o que “no importan” (don’t care).
Ejemplo de esta situación, es cuando existe dependencia entre las variables de entrada; ésta puede originar
que nunca se produzcan ciertas combinaciones de valores de las variables de entrada.
Debe tenerse presente que no deben formarse agrupaciones que sólo contengan términos superfluos.
En un mapa:
AB
C 00 01 11 10
0 2 6 4
0 1 d
1 3 7 5
1 d d 1
f(A, B, C)
Sin emplear las condiciones superfluas, se tiene: f = A’B’C’ + AB’C, con 6 literales.
Puede agruparse (0,1) y (5,7). En este caso: f = A’B’ + AC, con 4 literales.
Sin embargo, la agrupación más conveniente es (0, 1, 4, 5), y así se obtiene, con un literal:
f = B’
Nótese que: f(A,B,C) = (2,3,6) D(1,4,7) es decir, los maxtérminos superfluos tienen iguales
números que los mintérminos superfluos.
También se tienen:
f’(A, B, C) = m(2, 3, 6) + d(1, 4, 7)
f’(A, B, C) = M(0, 5) D(1, 4, 7)
Si en el ejemplo anterior, se minimiza la función f, como suma de productos, se logra: f’=B. Obteniendo un
resultado igual al anterior.
AB
C 00 01 11 10
0 2 6 4
0 1 1 d
1 3 7 5
1 d 1 d
f '(A, B, C)
Figura 5.31. Mapa con condiciones superfluas de f’
f = (f ')'
Ejemplo 5.12.
Diseñar traductor de código BCD a exceso-3. El código exceso-3, representa los dígitos decimales mediante
su equivalente binario más tres. Tiene propiedades aritméticas que lo hacen útil en manipulaciones.
Nótese que se tiene un sistema con cuatro entradas y cuatro salidas: Se ha asumido que la cifra BCD se
dispone en paralelo, y se desea lograr la equivalente exceso-3, también en paralelo.
Se tiene:
BCD exceso-3
0 0000 0011
1 0001 0100
2 0010 0101
3 0011 0110
4 0100 0111
5 0101 1000
6 0110 1001
7 0111 1010
8 1000 1011
9 1001 1100
wxyz f 4 f3 f 2 f1
Si se conoce que en la entrada se tendrá una cifra BCD, entonces algunas combinaciones de las variables w,
x, y, z deben tratarse como condiciones superfluas. Es el caso de los mintérminos con equivalentes binarios
1010 hasta 1111. En un mapa, esto puede anotarse:
wx
yz 00 01 11 10
0 4 12 8
00 d
1 5 13 9
01 d
3 7 15 11
11 d d
2 6 14 10
10 d d
f(w, x, y, z)
Figura 5.33. Mapa de las condiciones superfluas del ejemplo 5.13.
f1 = m(0,2,4,6,8) + d(10,11,12,13,14,15)
f2 = m(0,3,4,7,8) + d(10,11,12,13,14,15)
f3 = m(1,2,3,4,9) + d(10,11,12,13,14,15)
f4 = m(5,6,7,8,9) + d(10,11,12,13,14,15)
Minimizando, para cada una de las funciones por separado, se logra para el sistema de múltiples salidas, con
17 entradas:
f1 = z’
f2= y’ z’ + yz
f3= x’y + x’z + xy’z’
f4 = x’w +yw’z’
Puede apreciarse que en un sistema de salidas múltiples existe la posibilidad de ahorrar material: usando
parte o la totalidad de los productos de una función como partes de otra. Ejemplo de esto es el factor y’z' de
f2, que puede usarse en f3.
Si se presenta una cifra BCD inválida en la entrada, la salida también será errónea. Para usar confiablemente
el circuito combinacional, diseñado empleando condiciones superfluas, debe asegurarse que la entrada sea
una cifra BCD válida.
Un diagrama general de las entradas y salidas del módulo combinacional que se diseñará es el siguiente:
N1 A LT AB<CD
B
EQ AB=CD
C
N2
D GT AB>CD
A continuación se especifica el diseño mediante una tabla de verdad. Ésta tiene 16 renglones.
A B C D LT EQ GT
0 0 0 0 0 1 0
0 0 0 1 1 0 0
0 0 1 0 1 0 0
0 0 1 1 1 0 0
0 1 0 0 0 0 1
0 1 0 1 0 1 0
0 1 1 0 1 0 0
0 1 1 1 1 0 0
1 0 0 0 0 0 1
1 0 0 1 0 0 1
1 0 1 0 0 1 0
1 0 1 1 1 0 0
1 1 0 0 0 0 1
1 1 0 1 0 0 1
1 1 1 0 0 0 1
1 1 1 1 0 1 0
Problema 5.2. Multiplicador de dos números binarios de dos cifras cada uno.
A
N1 P3
B P2
C P1
N2 P0
D
A continuación se especifica el diseño mediante una tabla de verdad. Ésta tiene 16 renglones.
A B C D P3 P2 P1 P0
0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 1 0 0 0 0 0
0 0 1 1 0 0 0 0
0 1 0 0 0 0 0 0
0 1 0 1 0 0 0 1
0 1 1 0 0 0 1 0
0 1 1 1 0 0 1 1
1 0 0 0 0 0 0 0
1 0 0 1 0 0 1 0
1 0 1 0 0 1 0 0
1 0 1 1 0 1 1 0
1 1 0 0 0 0 0 0
1 1 0 1 0 0 1 1
1 1 1 0 0 1 1 0
1 1 1 1 1 0 0 1
E3 S3
E2 S2
E1 S1
E0 S0
E3 E2 E1 E0 S3 S2 S1 S0
0 0 0 0 0 0 0 1
0 0 0 1 0 0 1 0
0 0 1 0 0 0 1 1
0 0 1 1 0 1 0 0
0 1 0 0 0 1 0 1
0 1 0 1 0 1 1 0
0 1 1 0 0 1 1 1
0 1 1 1 1 0 0 0
1 0 0 0 1 0 0 1
1 0 0 1 0 0 0 0
1 0 1 0 d d d d
1 0 1 1 d d d d
1 1 0 0 d d d d
1 1 0 1 d d d d
1 1 1 0 d d d d
1 1 1 1 d d d d
Se denomina semi-sumador a un dispositivo que permite sumar, en binario, dos variables de entrada de un bit
(Ai y Bi). El sistema debe generar dos salidas: la suma (Si) y la reserva de salida (Ci carry).
La tabla de verdad resulta:
Ai Bi Ci Si
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0
Ci
Figura P5.8. Implementación semisumador.
Si se desea sumar variables de varios bits se requiere un sumador completo, que tenga una tercera entrada
denominada reserva de entrada (carry-in):
Ai Bi Ci
Ci+1 Si
Figura P5.9. Diagrama funcional sumador completo de un bit.
Ai Bi Ci Ci+1 Si
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1
El esquema de la Figura P5.11, muestra una suma de cuatro bits en base a la conexión de cuatro sumadores
completos:
A3 B3 C3 A2 B2 C2 A1 B1 C1 A0 B0 C0
C4 S3 C3 S2 C2 S1 C1 S0
Figura P5.11. Diagrama funcional sumador completo de cuatro bits.
Ai Ai
Bi Ci
Ci
Si Ci+1
Ci Bi
Ai
Bi
Ai Ai Bi Ai Bi Ci
Bi Si
Ai Bi (Ai Bi )Ci
Ci+1
Ci
En sistemas digitales, determinadas acciones sobre los datos colocan la integridad de éstos en peligro.
Ejemplo de procesos que pueden generar errores son: El almacenar bits en memorias dinámicas o en medios
magnéticos (superficies de discos flexibles o rígidos, que pueden dañarse físicamente o contaminarse por
interferencia en la escritura o lectura); la transmisión de bits mediante conductores de cobre, fibra o en forma
inalámbrica a través de grandes distancias.
La detección de errores emplea los bits adicionales cuando se accesa o recibe información para determinar si
existe corrupción de los datos. En la corrección de errores, la información adicional debe permitir detectar y
corregir los errores, dentro de ciertos límites.
La detección requiere menos bits redundantes, pero si se detecta un error, el receptor solicita que se vuelvan a
enviar los datos, lo cual agrega tiempo de latencia y complejidad.
En la corrección se tiene menor latencia, ya que el proceso de corrección es una parte de la lógica que recibe
los datos; y sólo si los errores sobrepasan los límites de la corrección, debe solicitarse el reenvío.
Existen procedimientos para detectar y corregir errores simples (paridad, Hamming) y múltiples (códigos de
redundancia cíclica).
Detección de un error simple.
Se envían n bits: b0, b1, b2, ..., bn-1. Se desea encontrar el modo de detectar un error de un bit.
Una solución es enviar (n+1) bits, el bit n-avo es uno si existe un número impar de unos en los n bits de
datos. Por esto al bit redundante se lo denomina de paridad (par en este caso), ya que la información más el
bit adicional contienen una cantidad par de unos.
Para dos variables booleanas, el or exclusivo de ellas es cero si el número de unos es par; y uno si es impar.
Para las n variables, la forma de computar (generar) el bit de paridad es mediante la siguiente ecuación
lógica:
bn = b0 b1 b2 ...bn-1
Si los datos se disponen en paralelo (todos al mismo tiempo) puede determinarse la paridad mediante un árbol
combinacional mediante xors. Si los datos se tienen en serie, basta una compuerta xor y un registro(o
memoria) de un bit.
En este caso resulta k = 3, y m = 7. Deben enviarse tres bits adicionales para detectar y corregir un error
simple. Si n es elevado se tendrá que k es aproximadamente igual a log2(n).
Cuatro bits de paridad permiten un máximo de m = 16, con 12 de datos.
Cinco bits de paridad permiten un máximo de m = 32, con 27 de datos.
chequeo = w0 + 2* w1 + 4* w2 + ....
Si el valor de chequeo no es cero, un bit debe ser erróneo. Cada wi = 0 remueve la duda sobre algunos bits.
Cualquier bit puede tener un error (solo un bit), incluso uno de los de paridad puede haberse contaminado en
la transmisión o lectura. Si un bit está errado existe sólo una forma de corregirlo.
Si chequeo es cero, no hay error simple. En caso contrario se complementa el bit cchequeo
c2
c3 w
c1 c6
c3 w c7 1
c
c5 7 0
c4
c5 w
c6
c7 2
La siguiente tabla muestra los valores binarios de los wi posibles, y asumiendo que sólo un bit del
subconjunto puede estar errado si wi es uno; y que si wi es cero, los elementos del subconjunto asociado están
correctos.
Estudiemos el segundo renglón: Con w2 igual a cero, no pueden estar errados: p2, b1, b2, b3; y si además w1
es cero: p1, b0, b2, b3 llegan correctamente; y si w0 es 1 podría existir un error en p0, b0, b1, b3. Pero de las
listas anteriores: b0, b1, b2 y b3 llegaron correctamente; por lo tanto se determina que en este caso p0 llegó
errado.
En la siguiente red, si w0 y w1 son unos y w2 es cero, se tendrá que f0 es b0'; en caso contrario es b0.
w0 w0 w'0
w1
w'2 f0 w'1 f1 w1
f2
w2 w2
c3 c5 c6
w0
w1
w2 f3
c7
b) Se calculan los wi, a partir de los ci , asumiendo que c3 llega errado, según:
w0 = (c1 c3 c5 c7) = (p0 b0 b1 b3) = (0 1 1 1) = 1
w1 = (c2 c3 c6 c7) = (p1 b0 b2 b3) = (1 1 0 1) = 1
w2 = (c 4 c 5 c6
El valor de chequeo resulta: c7) = (p2 b1 b2 b3) = (0 1 0 1) = 0
chequeo = w0 + 2* w1 + 4* w2 = 1 + 2*1 +4 *0 = 3, lo cual implica que debe complementarse c3.
c) Se calculan los wi, a partir de los ci , asumiendo que c5 llega errado, según:
w0 = (c1 c3 c5 c7) = (p0 b0 b1 b3) = (0 0 0 1) = 1
w1 = (c2 c3 c6 c7) = (p1 b0 b2 b3) = (1 0 0 1) = 0
w2 = (c4 c5 c6 c7) = (p2 b1 b2 b3) = (0 0 0 1) = 1
El valor de chequeo resulta:
chequeo = w0 + 2* w1 + 4* w2 = 1 + 2*0 +4 *1 = 5, lo cual implica que debe complementarse c5.
d) Se calculan los wi, a partir de los ci , asumiendo que c1 llega errado, según:
w0 = (c1 c3 c5 c7) = (p0 b0 b1 b3) = (1 0 1 1) = 1
w1 = (c2 c3 c6 c7) = (p1 b0 b2 b3) = (1 0 0 1) = 0
w2 = (c4 c5 c6 c7) = (p2 b1 b2 b3) = (0 1 0 1) = 0
El valor de chequeo resulta:
chequeo = w0 + 2* w1 + 4* w2 = 1 + 2*0 +4 *0 = 1, lo cual implica que debe complementarse c1.
Problema 5.7.
Se tiene un número binario de cuatro bits: A3A2A1A0, donde A3 es la cifra más significativa, sea n el
equivalente decimal de este número.
Diseñar un sistema que acepte a n como entrada y que produzca en la salida el equivalente binario del número
decimal: ( n*4 +1).
Solución.
El mayor n que puede escribirse con cuatro bits es 15, por lo tanto la salida mayor será 61, lo cual requiere 6
cifras binarias para representarla. Sean éstas: S5S4S3S2S1S0.
Problema 5.8.
Se tiene un circuito digital de 4 entradas (A, B, C, D) y cuatro salidas (f1, f2, f3, f4).
a) Determinar como suma de mintérminos, la función f1 que es verdadera cuando exactamente dos de las
entradas sean verdaderas.
b) Determinar como producto de maxtérminos, la función f2 que es verdadera cuando exactamente tres de las
entradas sean verdaderas.
c) Determinar mediante un circuito lógico en base a AND, OR y NOT, la función f3, que es verdadera cuando
exactamente cuatro de las entradas sean verdaderas.
d) Determinar mediante una expresión booleana, la función f4, que es verdadera cuando exactamente cuatro
de las entradas sean falsas.
Solución.
Se tienen las siguientes tablas de verdad.
A B C D f1 f2 f3 f4 Código
0 0 0 0 0 0 0 1 0
0 0 0 1 0 0 0 0 1
0 0 1 0 0 0 0 0 2
0 0 1 1 1 0 0 0 3
0 1 0 0 0 0 0 0 4
0 1 0 1 1 0 0 0 5
0 1 1 0 1 0 0 0 6
0 1 1 1 0 1 0 0 7
1 0 0 0 0 0 0 0 8
1 0 0 1 1 0 0 0 9
1 0 1 0 1 0 0 0 10
1 0 1 1 0 1 0 0 11
1 1 0 0 1 0 0 0 12
1 1 0 1 0 1 0 0 13
1 1 1 0 0 1 0 0 14
1 1 1 1 0 0 1 0 15
Entonces:
a) f1 = m(3, 5, 6, 9, 10, 12)
b) f2 = M(0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15)
c) f3 = m(15) = ABCD
A
B f3
C
D
d) f4 = m(0) = A'B'C'D'
Problema 5.9.
Solución.
a) Para la forma suma de productos se tiene el siguiente mapa de Karnaugh:
ab
cd 00 01 11 10
0 4 12 8
00 d
1 5 13 9
01 d d 1 d
3 7 15 11
11 d 1
2 6 14 10
10 d 1 d
Implicantes 7 13 14
primos
a’b x
c’d
a’d x
acd’ x
bcd’ x
Se tienen 4 diseños alternativos con mínimo costo. Con 10 entradas cada uno.
f(a, b, c, d) = c’d + a’b + acd’
f(a, b, c, d) = c’d + a’b + bcd’
f(a, b, c, d) = c’d + a’d + acd’
f(a, b, c, d) = c’d + a’d + bcd’
ab
cd 00 01 11 10
0 4 12 8
00 1 d 1 1
1 5 13 9
01 d d d
3 7 15 11
11 d 1 1
2 6 14 10
10 1 d d
f ’(a, b, c, d)
La siguiente tabla de implicantes, muestra que c’d’ y acd son implicantes primos esenciales.
Implicantes 0 2 8 11 12 15
primos
b’ x x x x
c’d’ x x
a’c’ x
a’d’ x x
acd x
Problema 5.10.
Se conoce: que el mintérmino a’bcd’ es superfluo, que el maxtérmino (a’ + b + c + d’) es superfluo, y que el
implicante a’b’c’ es superfluo.
a) Determinar el mapa de Karnaugh para f, indicando los unos, ceros y condiciones superfluas.
b) Obtener el diseño mínimo como producto de sumas, indicando en un mapa los implicantes seleccionados.
Solución:
a1) Se ubican los mintérminos superfluos, y se los dibuja en el mapa:
Que el maxtérmino (a’ +b +c +d’) = M9 sea superfluo, indica que m9’ es superfluo.
Esto permite determinar los unos de la función como m(2, 4, 8, 13, 15); y también los ceros de la función
como M(3, 5, 7, 10, 11, 12, 14)
ab
cd 00 01 11 10
0 4 12 8
00 d 1 0 1
1 5 13 9
01 d 0 1 d
3 7 15 11
11 0 0 1 0
2 6 14 10
10 1 d 0 0
El mapa ilustra el diseño de la función mínima, con condiciones superfluas, expresada como suma de
productos:
f(a, b, c, d) = m(2, 4, 8, 13, 15) + d(0, 1, 6, 9) = abd + b’c’ + a’d’
El grupo M(1, 3, 5, 7) debe incluirse ya que es el mayor y único grupo que cubre a 5 y 7.
El grupo M(12, 14) es el mayor y único grupo que cubre a 12, y debe estar presente.
Sólo resta cubrir a M(10, 11), lo cual puede hacerse incluyendo a dicho grupo. La incorporación del grupo
mayor M(1, 3, 9, 11) que cubre al 11, requiere otro grupo para cubrir al 10, ya sea M(10, 14) o M(10, 11).
Para un diseño libre de perturbaciones debería incluirse a los grupos M(10, 14) y M(3, 11)
En la tabla de implicantes se muestran sólo los mintérminos; no se requiere cubrir los superfluos. De la tabla
se advierte que a’d es implicante primo esencial, ya que agrupa al 5 y 7 que sólo él contiene. También abd’ es
implicante primo esencial ya que es el único grupo que contiene al mintérmino 12.
3 5 7 10 11 12 14
a’d x x x
abd’ x x
ab’c x x
acd’ x x
b’d x x
bcd’ x
Figura P5.28. Tabla implicante. Mapa de la Figura P5.27
Para cubrir m10 y m11, la mejor opción es ab’c, lo cual puede deducirse de la tabla reducida.
10 11
ab’c x x
acd’ x
b’d x
Problema 5.11.
Solución:
a) Considerando las condiciones superfluas y los mintérminos, en un mapa rotulado según notación de
conjuntos, resulta:
a
d 1 0 1
0 1 1 1
d
0 d d 0
c
0 1 0 1
b
Figura P5.30. Mapa con condiciones superfluas.
d 1 1
1 1 1
d
d d
c
1 1
b
Figura P5.31. Implicantes de la Figura P5.30.
Resulta: f = a b’ d’ + a d c’ + a’ b
a
c) El mapa para f’ resulta:
d 1
1
d
1 d d 1
c
1 1
b
Figura P5.32. Mapa del complemento de f.
Aplicando De Morgan.
f = ( a’ + b’ + d)(d’ + c’)(a + b)
Problema 5.12.
a) Si se puede escoger un mintérmino cualquiera como superfluo, cuál o cuáles son las funciones mínimas
(todas las que encuentre); indicando, en cada caso, el mintérmino superfluo elegido.
b) Si se pueden escoger dos mintérminos cualesquiera como superfluos, cuál o cuáles son las funciones
mínimas (todas las que encuentre); indicando, en cada caso, los mintérminos superfluos elegidos.
c) Si se pueden escoger tres mintérminos cualesquiera como superfluos, cuál o cuáles son las funciones
mínimas (todas las que encuentre); indicando, en cada caso, los mintérminos superfluos elegidos.
Solución:
a) La Figura P5.33 muestra la elección conveniente de un mintérmino superfluo.
AB
CD 00 01 11 10
0 4 12 8
00
1 5 13 9
01 1 d 1 Se elige m13. Resulta:
f = AC’D + BC’D + ABD
3 7 15 11
11 1
2 6 14 10
10
f(A, B, C, D)
b1)
AB
CD 00 01 11 10
0 4 12 8
00 Se elige m13 y m11.
f = AD + BC’D
1 5 13 9
01 1 d 1
3 7 15 11
11 1 d
2 6 14 10
10
f(A, B, C, D)
1 5 13 9
01 1 d 1
3 7 15 11
11 d 1
2 6 14 10
10
f(A, B, C, D)
b3)
AB
CD 00 01 11 10
0 4 12 8 Se elige m13 y m1.
00 f = ABD + C’D
1 5 13 9
01 d 1 d 1
3 7 15 11
11 1
2 6 14 10
10
f(A, B, C, D)
1 5 13 9
01 1 d 1
3 7 15 11
11 d 1 d
2 6 14 10
10
c2)
AB
CD 00 01 11 10
0 4 12 8 Se elige m13, m11 y m1.
00 f = C’D + AD
1 5 13 9
01 d 1 d 1
3 7 15 11
11 1 d
2 6 14 10
10
1 5 13 9
01 d 1 d 1
3 7 15 11
11 d 1
2 6 14 10
10
Problema 5.13.
Solución.
En un 5-cubo un 3-cubo puede expresarse con dos literales. Las combinaciones de dos letras de un conjunto
de 5 son: AB, AC, AD, AE, BC, BD, BE, CD, CE, DE. Para cada combinación pueden tenerse 4 expresiones;
por ejemplo para AB se tienen: A'B', A'B, AB', AB. En total se tienen cuarenta 3-cubos inscritos en un 5-cubo.
Entonces los 3-cubos pedidos son: AB, AB', AC, AC', AD, AD', AE, AE'.
Problema 5.14.
C'D'E + B'C
Solución:
Los míntérminos asociados a B'C se encuentran en las columnas 001 y 101,
Resulta B'C = m(4, 5, 6, 7, 20, 21, 22, 23) son 8.
Los mintérminos asociados a C'D'E son m(1, 9, 17, 25) son 4, con C=0, D=0 y E=1.
ABC
000 001 011 010 100 101 111 110
DE
0 4 12 8 16 20 28 24
00 1 0 1
1 5 13 9 17 21 29 25
01 1 1 1 1 1 1
3 7 15 11 19 23 31 27
11 1 1
2 6 14 10 18 22 30 26
10 1 1
Problema 5.15.
Solución:
f1=ABABC+ABD'+CABC+CD'+A'B'D' ; P6
=ABC+ABD'+CD' +A'B'D' ; P4, T8
= m(14,15) +m(12,14)+m(2,6,10,14)+m(0,2) ; T14
= m(0, 2, 6, 10, 12, 14, 15); T8
AB
CD 00 01 11 10
0 4 12 8
00 1 1
1 5 13 9
01
3 7 15 11
11 1
2 6 14 10
10 1 1 1 1
f1(A, B, C, D)
Figura P5.41. Mapa de f1.
f2 = A'B'+A'D'+B'B'+B'D'+B'D+DD'; P6, P4
= A'B'+A'D'+B'+B'(D'+D)+0 ;T8, P6, P7
= A'B' +A'D'+B' ; P3,P7, T8
= m(0, 1, 2, 3) + m(0, 2, 4, 6) + m(0, 1, 2 , 3, 8, 9, 10, 11) ; T14
= m(0, 1, 2, 3, 4, 6, 8, 9, 10, 11) ;T8
AB
CD 00 01 11 10
0 4 12 8
00 1 1 1
1 5 13 9
01 1 1
3 7 15 11
11 1 1
2 6 14 10
10 1 1 1
f2(A, B, C, D)
Referencias.
Karnaugh M. “The map method for synthesis of combinatorial logic circuits”, Trans. AIEE Comm.
Electron.,Vol. 72, No. 4, pp. 593–598. 1953.
Índice general.
CAPÍTULO 5 ..................................................................................................................................................................... 1
MAPAS DE KARNAUGH ................................................................................................................................................ 1
5.1. CONCEPTOS ............................................................................................................................................................... 1
5.2. FORMAS DE MAPAS ................................................................................................................................................... 4
5.3. MANEJO DE MAPAS ................................................................................................................................................... 7
5.4. USO DE MAPAS........................................................................................................................................................... 9
Ejemplo 5.1. Mapa a partir de los mintérminos. ........................................................................................................ 9
Ejemplo 5.2. Mapa a partir de expresión. ................................................................................................................ 10
Ejemplo 5.3. Uso de mapas en la demostración de teoremas. .................................................................................. 11
5.5. MINIMIZACIÓN USANDO MAPAS DE KARNAUGH. ..................................................................................................... 12
5.5.1. Minimización como suma de productos. ......................................................................................................... 12
Ejemplo 5.4. Minimización a partir de los mintérminos .......................................................................................................... 12
Ejemplo 5.5. Formación de grupos de mintérminos en minimización basada en mapas.......................................................... 13
Ejemplo 5.6. ............................................................................................................................................................................. 14
Ejemplo 5.7. ............................................................................................................................................................................. 15
5.5.2. Minimización en forma de producto de sumas. ............................................................................................... 15
Ejemplo 5.8.............................................................................................................................................................................. 15
Ejemplo 5.9. ............................................................................................................................................................................. 16
5.5.3. Condiciones superfluas (don't care) ................................................................................................................ 17
Ejemplo 5.10. ........................................................................................................................................................................... 18
Ejemplo 5.11. ........................................................................................................................................................................... 19
Ejemplo 5.12. ........................................................................................................................................................................... 19
PROBLEMAS RESUELTOS. ................................................................................................................................................ 21
Problema 5.1. Comparador binario. ......................................................................................................................... 21
Problema 5.2. Multiplicador de dos números binarios de dos cifras cada uno. ....................................................... 22
Problema 5.3. Incrementador en uno de cifra BCD. ................................................................................................. 22
Problema 5.4. Semisumador binario. ........................................................................................................................ 23
Problema 5.5. Sumador completo. ............................................................................................................................ 24
Problema 5.6. Detección y corrección de errores en bits. Hamming........................................................................ 25
Detección de un error simple. .................................................................................................................................................. 26
Corrección de un error simple.................................................................................................................................................. 26
Ejemplo código Hamming de 7 bits. ........................................................................................................................................ 29
Problema 5.7. ............................................................................................................................................................ 29
Problema 5.8. ............................................................................................................................................................ 30
Problema 5.9. ............................................................................................................................................................ 31
Problema 5.10. .......................................................................................................................................................... 33
Problema 5.11. .......................................................................................................................................................... 36
Problema 5.12. .......................................................................................................................................................... 37
Problema 5.13. .......................................................................................................................................................... 41
Problema 5.14. .......................................................................................................................................................... 41
Problema 5.15. .......................................................................................................................................................... 42
REFERENCIAS. ................................................................................................................................................................ 43
ÍNDICE GENERAL. ........................................................................................................................................................... 44
ÍNDICE DE FIGURAS. ....................................................................................................................................................... 45
Índice de Figuras.