Minimización mediante el mapa de Karnaugh

Transcripción

Minimización mediante el mapa de Karnaugh
Minimización mediante
el mapa de Karnaugh
Mario Medina C.
[email protected]
Minimización lógica
Minimización lógica: conjunto de técnicas
para obtener la representación más simple
de una expresión booleana
Diversos criterios de minimización
Métodos de minimización
Mapas de Karnaugh-Veitch
Método de Quine-McCluskey
Método de Espresso
 Mario Medina
Criterios de minimización
Minimizar
Tamaño de un circuito
Consumo de potencia
Disipación de potencia
Costo
Errores de operación
Número de compuertas
Tipo de compuertas
Complejidad de
compuertas lógicas
Número de niveles de
compuertas en cascada
Reducir
Número de conexiones
entre puertas
Retardo global de un
circuito
Número de literales
Maximizar
Reutilización de
bloques
Sea Z (A,B,C) definida en la
siguiente tabla de verdad y sus
formas equivalentes Z1, Z2, Z3
Z = A’B’C + A’BC + AB’C + ABC’
Z1 = ABC’ + A’C + B’C
Z2 = TC’ + T’C; T = AB
Z3 = (AB) ⊕ C
Otros
Ejemplo
Z: Estructura típica SoP de 2 niveles
Z1: Estructuralmente similar a Z (SoP)
No normalizados
Menos literales y puertas
Z2: Implementación multinivel
Puertas más simples (menor número de entradas)
Mayor retardo de salida
Camino crítico AND-NOT-AND-OR
Z3: Reduce el número total de puertas
Usa una puerta XOR, que puede ser más lenta
© Mario Medina C.
Ejemplo
A
B
C
0
0
0
Z
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
Minimización lógica
No es posible minimizar todos los criterios al
mismo tiempo
Técnicas tradicionales de minimización
Se encargan de minimizar el retardo del circuito
resultante
A expensas de aumentar el número y complejidad de
los productos ó sumas
Minimización en 2 niveles
Suma-de-productos (SoP)
Producto-de-sumas (PoS)
1
Motivación para los métodos
de minimización lógica
Usar reglas del álgebra binaria para reducir
expresiones booleanas
No hay algoritmos que aseguren llegar a una
solución mínima
Resultado depende de la intuición y experiencia del
diseñador
Base para los métodos de
simplificación
Sean las funciones F y G definidas como
F = AB’+ AB, y G = A’B’ + AB’
La simplificación nos lleva a
F = A(B’ + B) = A
G = B’(A’ + A) = B’
Problema puede ser más complicado que el
original
A
B
F
A
B
G
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
Multiplicar una expresión por 1 (X+X’) y reducir
Aumenta probabilidad de error
Proceso tedioso, largo y manual
Base para los métodos de
simplificación
Método básico
Buscar repetidamente subconjuntos de 2
términos que difieran sólo en una variable
Eliminar la redundancia
La variable que aparece en forma negada y no
negada es redundante y se puede eliminar
Mapa de Karnaugh
Representación matricial de la tabla de
verdad de una función
B
Proceso manual es engorroso
Métodos ordenan la tabla de verdad para
reconocer fácilmente patrones a simplificar
Gráficamente (Karnaugh)
En forma tabular (Quine-McCluskey)
Mapa de Karnaugh
El número al interior de cada celda
representación decimal para la combinación de
entradas asociada
Cada celda es un minterm (o maxterm)
La celda almacena la salida asociada al minterm
Los índices se forman mediante un código
adyacente (Gray)
2 celdas adyacentes tienen distancia 1
La última columna (fila) es adyacente con la
primera columna (fila)
© Mario Medina C.
A
0
0
1
1
0
2
1
3
AB
CD
AB
C
0
1
00 01 11 10
0
2
6
4
1
3
7
5
00 01 11 10
00
01
11
10
0
4
12
1
5
13
8
9
3
7
15
11
2
6
14
10
Celdas adyacentes
Adyacencia del mapa permite visualizar
grupos de celdas contiguas a agrupar
En un mapa de n variables, cada celda es
lógicamente adyacente a otras n celdas
Se considera adyacencia horizontal y vertical,
pero no diagonal
A
AB
00
01
11
10
0
000
010
110
100
1
001
011
111
101
C
B
2
Celdas adyacentes en mapa de
Karnaugh
Correspondencia K-map y
minitérminos (3 variables)
Correspondencia K-map y
minitérminos (4 variables)
Mapa de Karnaugh
Mapa de Karnaugh
Mapa de Karnaugh
Expresar en un K-Map la función
F(A, B, C, D) = ∑m(4, 5, 6, 7, 9, 10, 11, 13)
Sea F(X, Y, Z, W) = XY
+ X’WZ + X’YZ’W
XY
AB
CD
00
01
11
10
ZW
00 01 11 10
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
Equivalente a la función
AB
ACD
ABC
00
01
11
10
00 01 11 10
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
X’YZ’W está expresado en
forma canónica y genera
sólo un minterm
X’WZ genera 2 minterms
(X’WYZ + X’WY’Z)
YX genera 4 minterms
(YXW’Z’ + YXWZ’ +
YXW’Z + YXWZ)
F(A, B, C, D) = A’B + AB’C + AC’D
© Mario Medina C.
3
Mapas de Karnaugh
En general, para un función de n variables,
un término producto no normalizado de n - r
variables genera 2r minitérminos
Representación alternativa
mapas de Karnaugh
Indicar sólo las filas y columnas donde las
variables valen 1
Si n = 4,
Término producto de 4 variables da 1 minterm
Término producto de 3 variables da 2 minterms
Término producto de 2 variables da 4 minterms
Término producto de 1 variable da 8 minterms
Mapa de 4 variables como
diagrama de Venn
Un mapa de Karnaugh
puede representarse
también como un
diagrama de Venn
Diagrama de Venn
para función de 4
variables
Círculo y ocho centrales
se traslapan
Ejemplo de simplificación de
funciones
Usando álgebra booleana
A
AB
CD
00
01
11
10
00
0
0
0
0
01
1
1
0
0
11
1
1
0
0
10
0
0
0
0
D
C
B
F(A, B, C, D) = A’B’C’D + A’BC’D +
A’B’CD + A’BCD
F(A, B, C, D) = A’C’D + A’CD
F(A, B, C, D) = A’D
En el mapa, se puede ver la
agrupación óptima de celdas
(minterms)
Subcubos
Subcubo: un conjunto de 2r celdas de valor 1
o 0 (para minterms o maxterms,
respectivamente), en el que cada celda es
lógicamente adyacente a otras r celdas de
valor 1 (o 0)
El término producto (o suma) que se obtiene a
partir de un subcubo de 2r celdas se compone de
(n-r) literales.
Sólo aparecen las variables que no cambian en todas
las celdas
Ejemplo de simplificación de
funciones
Sea el siguiente mapa de
Karnaugh
La agrupación central es
redundante
00
01
11
10
00
0
0
0
0
01
0
0
1
1
11
0
1
1
0
10
0
0
0
0
Celdas ya están cubiertas por
otros términos
Expresión mínima tiene sólo
2 productos
F(A, B, C, D) = AC’D + BCD
A
AB
CD
D
C
B
Demostración gráfica del
teorema del consenso!
© Mario Medina C.
4
Ejemplo de simplificación de
funciones
Ejemplos de simplificación
Sea la función
AB
CD
A
00
01
11
10
00
1
0
0
1
01
0
1
0
0
F(A, B, C, D) = ∑m(0, 2, 3, 5, 6, 7,
8, 10, 11, 14, 15)
La función equivalente es
D
11
1
1
10
1
1
1
1
1
1
C
B
F(A, B, C, D) = C + A’BD + B’D’
Se requiere encontrar el menor
número de subcubos que
cubran todas las salidas 1 (ó 0)
Ejemplos de simplificación
Ejemplos de simplificación
Definiciones
Minimización de funciones
usando el Mapa de Karnaugh
Implicante de una función: elemento o grupo
de elementos que pueden combinarse en un
mapa de Karnaugh y que hacen 1 la función
Implicante primario: implicante que no
puede combinarse con, o no puede ser
cubierto por otro implicante de la función
Implicante primario esencial: implicante
primario que contiene celdas no cubiertas
por ningún otro implicante primario.
© Mario Medina C.
Objetivos de la minimización
Convertir todos los implicantes en implicantes
primarios
Cubrir todos los 1s (o 0s) utilizando el menor
número posible de implicantes primarios
Todos los implicantes primarios esenciales
deben estar en el resultado final
La minimización no es necesariamente única
5
Implicantes primarios y
esenciales
Implicantes primarios y
esenciales
6 implicantes primarios
4 implicantes primarios
A’B’D, BC’, AC, A’C’D, AB, B’CD
2 implicantes esenciales
A
AB
CD
00
01
11
10
00
0
1
1
0
01
1
1
1
0
AC, BC’
BD, CD, AC, B’C
3 implicantes esenciales
Expresión mínima
11
1
0
1
1
10
0
0
1
1
Los implicantes esenciales
bastan para cubrir el mapa
Expresión mínima única
C
BC’ + AC + A’B’D
00
01
11
10
00
0
0
0
0
01
0
1
1
0
11
1
1
1
1
10
1
0
1
1
BD, AC, B’C
D
B
A
AB
CD
D
C
BD + AC + B’C
Implicantes primarios y
esenciales
Simplificación con maxterms
5 implicantes primarios
A’C’D, ABC’, A’BC, ACD, BD
4 implicantes esenciales
Los implicantes esenciales
bastan para cubrir el mapa
Expresión mínima única
Mismo procedimiento pero agrupando
los 0s
A
AB
CD
00
01
11
10
00
0
0
1
0
01
1
1
1
0
11
0
1
1
1
10
0
1
0
0
A’C’D, ABC’, A’BC, ACD
B
D
C
B
A’C’D + ABC’ + A’BC + ACD
La formación de un maxterm a partir de los
valores 0 o 1 de las entradas es inversa a la
del minterm
Equivalente a agrupar los 0s para formar
términos producto de F, y luego aplicar
DeMorgan para obtener la expresión en PoS
Simplificación con maxterms
AB
CD
A
00
01
11
10
00
1
0
0
1
01
0
1
0
0
11
1
1
1
1
10
1
1
1
1
F = (B + C + D) (A + C + D) (B + C + D)
D
C
B
Considerando los 0s como los minterms de F
F = B C’ D’ + A C’D + B’C’D
F = B C’D’ + A C’D + B’C’D
F = (B + C + D) (A + C + D) (B + C + D)
© Mario Medina C.
Condiciones superfluas
En algunos problemas pueden existir
combinaciones de entrada que por
definición no pueden ocurrir
Aunque en la implementación la salida asumirá
un valor lógico, al diseñador no le importa cual
sea ésta y entonces no queda especificada.
Por ejemplo, un sumador con entradas BCD 8421
tendrá sólo 10 combinaciones de entradas válidas de
las 16 posibles.
Esto implica que las salidas asociadas a las entradas
1010 al 1111 pueden tener cualquier valor, pues esas
entradas nunca ocurrirán.
6
Funciones con condiciones
superfluas
Ejercicio: BCD incremento en 1
Sea una función que
recibe como entrada
un dígito en BCD8421
y como salida genera
el dígito de entrada
incrementado en 1 en
forma circular
A
B
C
D
W
X
Y
Z
F
A
B
C
D
W
X
Y
Z
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
X
X
X
X
1
0
1
1
X
X
X
X
1
1
0
0
X
X
X
X
1
1
0
1
X
X
X
X
1
1
1
0
X
X
X
X
1
1
1
1
X
X
X
X
Funciones con condiciones
superfluas
Salidas asumen valor X para las
combinaciones de entrada que no importan.
Condiciones superfluas, opcionales o
indiferentes (don’t care)
Estas funciones se llaman incompletamente
especificadas
Ojo!! Los términos X no corresponden ni a un 1
ni a un 0
Un término superfluo es una X tanto en el mapa
de F como en el mapa de F’
Condiciones superfluas y KMaps
Eventualmente, los valores superfluos toman
un valor lógico definido por el diseñador
Los estados superfluos X pueden ser tratados
individualmente como 0s o 1s con el fin de
ayudar en el proceso de minimización
Generalmente se les asigna un estado inactivo,
pero esto no simplifica el diseño
La asignación adecuada de valores de salida
definidos a las condiciones superfluas
pueden simplificar el diseño.
Por ejemplo, en el ejemplo anterior, la función
de salida Z podría implementarse simplemente
como D’
Formación de subcubos de mayor orden
AB
CD
A
00
01
11
10
00
0
0
X
0
01
1
1
X
1
11
1
1
0
0
10
0
X
0
0
F(A, B, C, D) = ∑m(1,3,5,7,9) + ∑d(6,12,13)
D
C
B
Funciones con condiciones
superfluas (minterms)
AB
CD
Si tratamos esta X como 1, podemos formar
un subcubo de orden 2.
A
Funciones con condiciones
superfluas (maxterms)
AB
CD
A
00
01
11
10
00
0
0
X
0
00
01
11
10
00
0
0
X
0
01
1
1
X
1
01
1
1
X
1
11
1
1
0
0
10
0
X
0
0
Tratar esta X como 1 simplifica el problema
D
D
11
1
1
0
0
10
0
X
0
0
C
B
Tratar esta X como 0
simplifica el problema.
© Mario Medina C.
Si tratamos esta X como 0, podemos formar
un subcubo de orden 3.
C
F(A,B,C,D) = ∑m(1,3,5,7,9) + ∑d(6,12,13)
F = A’D + B’C’D (sin considerar las X)
F = C’D + A’D (considerando las X)
B
Lo mismo ocurre si deseamos la expresión mínima en PoS
(agrupando 0s):
F = D(A’ + C’)
En cada mapa, el término superfluo debe escogerse como 0 ó 1
según convenga para minimizar la función
7
Mapa de Karnaugh de 5
variables
Mapa de Karnaugh de 5 variables
Se usan 2 mapas de 4 variables y se deja una
variable “afuera”
Estos mapas muestran la posición de los
minitérminos si se deja fuera la variable A
BC
DE
BC
DE
00 01 11 10
00
01
11
10
0
4
12
8
1
5
13
9
3
7
15
11
2
6
14
10
Mapa de 5 variables
Dejamos variable A
“afuera”
X = DE’ + B’CE + A’BD’
+ BC’D’E
00 01 11 10
00
01
11
10
16
20
28
24
17
21
29
25
19
23
31
27
18
22
30
26
A=1
A=0
Mapa de Karnaugh de 5
variables
Mapa de Karnaugh de 5
variables
F(A, B, C, D, E) = ∑ m(2,5,7,8,10,13,15,17,19,21,23,24,29,31)
DE
A =0
BC
00
00
01
BC
DE
00
01
11
10
BC
DE
00
01
11
10
00
0
0
0
01
0
1
1
1
00
0
0
0
1
0
01
2
11
1
1
1
0
11
0
1
1
0
1
1
1
0
3
1
11
10
1
0
0
1
10
4
1
A=0
0
0
0
3
0
00
11
10
10
12
8
13
15
14
BC
00
DE
00
A=0
11
00
01
11
16
20
28
1
17
19
18
21
23
22
29
31
1
30
26
00
DE
00
A=1
25
27
1
1
BC
10
24
10
1
1
10
10
11
1
01
9
11
01
1
11
10
1
1
1
01
11
01
1
1
1
10
F(A, B, C, D, E) = ∑ m(2,5,7,8,10,13,15,17,19,21,23,24,29,31)
4
Implicantes esenciales en mapa
de 5 variables
© Mario Medina C.
6
DE
A =1
A=1
2
11
4
BC
F(A, B, C, D, E) = C E + A B E + B C D E + A C D E
1
7
2
01
5
3
01
10
0
F(A, B, C, D, E) = C E + A B E + B C D E + A C D E
Representación espejo de
mapa de 5 variables
8
Representación alternativa
Representación alternativa
Diagrama muestra
celdas adyacentes
a minitérmino 5
Representación
alternativa de un
mapa de 5
variables
Triángulos
superiores son
adyacentes
Mapa de Karnaugh de 6
variables
CD
EF
00
AB =00
01
11
10
00
01
0
5
3
7
2
11
4
1
6
15
14
8
CD
EF
00
00
48
01
11
10
49
51
50
55
54
11
60
61
63
62
01
11
10
EF
59
CD
EF
00 01
11
10
00
AB =10
32
36
44
40
01 33
37
45
41
11
35
39
47
43
10
34
38
46
42
01
11
10
1
01
10
AB =11
1
 2, 8, 10, 18, 24, 


F(A, B, C, D, E, F) = ∑ m 26, 34, 37, 42, 45, 


 50, 53, 58, 61

A=0
01
1
11
00
01
11
10
EF
01
11
10
0
4
12
8
00
16
20
28
24
01
1
5
13
9
01
17
21
29
25
11
3
7
15
11
11
19
23
31
27
10
2
6
14
10
10
18
22
30
26
EF
10
1
00
00
CD
1
CD
EF
00
00
01
57
58
1
11
10
56
1
CD
EF
00
AB =01 00
CD
CD
10
1
11
10
01
00
00
01
11
52
53
EF
AB =00
9
CD
EF
00 01
11
10
AB =01 00 16
20
28
24
01 17
21
29
25
11
19
23
31
27
10
18
22
30
26
AB =11
CD
10
12
13
Mapa de Karnaugh de 6
variables
CD
00
01
11
10
EF
00
01
11
10
00
32
36
44
40
00
48
52
60
56
01
33
37
45
41
01
49
53
61
57
11
35
39
47
43
11
51
55
63
59
10
34
38
46
42
10
50
54
62
58
11
10
AB =10
1
CD
EF
00
00
01
A=1
1
01
1
11
10
1
11
10
1
B=0
1
Mapa de Karnaugh de 6
variables
CD
00
00
EF
AB =00
01
11
10
1
B=1
Mapas de Karnaugh con
variables en el mapa
01
11
10 1
1
CD
EF
00
AB=01 00
 2, 8, 10, 18, 24, 


F(A, B, C, D, E, F) = ∑ m 26, 34, 37, 42, 45, 
 50, 53, 58, 61



11
10
1
01
11
10 1
1
CD
EF
00
01
11
10
00
AB=11
F(A, B, C, D, E, F) = D E F + A D E F + A C D F
01
01
1
Alternativa para representar más variables
aún en un mapa
Celdas no almacenan valores 0 ó 1, sino que
almacenan expresiones con variables que no
están en el mapa
1
11
10
AB=10
1
1
CD
EF
00
00
01
01
1
11
10
1
11
10
© Mario Medina C.
1
1
9
Mapas de Karnaugh con
variables en el mapa
Ejemplo: representar la
función F(A, B, C, D) =
A’B’C + A’BC + A’BC’D +
ABCD + (AB’C) en un
mapa de Karnaugh de 3
variables
Mapas de Karnaugh con
variables en el mapa
Separamos la función anterior
utilizando la variable D
A’B’C y A’BC son 1 independiente del
valor de D
A’BC’D y ABCD son 1 sólo si D es 1
AB’C es redundante
El último término es
redundante
Mapas de Karnaugh con
variables en el mapa
Si D es 0, función se
simplifica a A’C
Si D es 1, función se
simplifica a C + A’B
Entonces, función F es
F = A’C + D(C + A’B)
© Mario Medina C.
10

Documentos relacionados