Departamento de Electrónica
Electrónica Digital
Facultad de Ingeniería
Bioingeniería
Universidad Nacional de Entre Ríos
Diseño combinacional (Parte #2)
Mapas de Karnaugh
Procedimiento de diseño de un circuito combinacional
Expresión algebraica de una función lógica como la suma de los minitérminos de la
función.
• Considera únicamente las combinaciones de entrada que hacen 1 la función
• Cada variable aparece complementada si su valor es 0 y sin complementar si es 1
Determinación de la función lógica
1. Forma canónica de suma de productos
Expresión algebraica de una función lógica como el producto de los
maxitérminos de la función.
• Considera únicamente las combinaciones de entrada que hacen 0 la
función (salida)
• Cada variable aparece complementada si su valor es 1 y sin complementar
si es 0
2. Forma canónica de producto de sumas
Simplificación
Simplificación por mapas de Karnaugh (mapas K)
 Método gráfico para simplificar funciones
 Es una representación matricial de una tabla de verdad:
• una celda del mapa = una fila de la tabla de verdad
 Muy práctico para funciones de no más de 4 ó 5 variables
Ejemplo de mapa de 2 variables
B
0 2
0 1
1 3
0
1
A
 Cada celda se corresponde con un minitérmino ó maxitérmino de la función
 En cada celda se escribe el valor de la salida de la función lógica para ese
minitérmino/maxitérmino.
 Cada celda difiere de la adyacente en solo una variable.
 La numeración de las filas/columnas es en código Gray
 Las filas/columnas externas son adyacentes entre sí
Principales características del mapa K
Ejemplo de mapa de 4 variables
DC
00 01
00
01
BA
0 4
1 5
12 8
13 9
11 10
3 7
2 6
15 11
14 10
11
10
variables de entrada
numeración en
código continuo
número de minitérmino
celdas adyacentes
celdas adyacentes
1. Agrupar todas las celdas con el mismo valor, en uno o más grupos
de celdas adyacentes
2. La cantidad de celdas en un grupo debe ser potencia de 2 (2, 4, 8)
3. Maximizar la cantidad de celdas en cada grupo
4. Minimizar la cantidad de grupos
5. Superponer grupos siempre que sea posible (una celda puede estar
en uno o más grupos), si eso conduce a cumplir 2, 3 y 4.
Reglas de aplicación
CB
1 1
00 01
0 0
0
1
A
0 1
0 1
11 10
Z1 = A’B’C’ + A’BC’ = A’C’ (B’ + B) = A’C’
Z2 = A’CB’ + ACB’ = CB’ (A’ + A) = CB’
Z = Z1 + Z2 = A’C’ + CB’
Fundamento del método
En celdas adyacentes, sólo cambia el valor de una de las variables entre los dos
términos representado por cada celda  aplicando álgebra de Boole se elimina la
variable que cambia de valor.
C B A Z
0 0 0 1
0 0 1 0
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 0
1 1 1 0
Z =A’C’ + CB’
 Agrupar las celdas de valor 1 (minitérminos)
 Cada grupo representa a un término producto
 Un grupo de 2k celdas elimina k variables del término resultante
 Grupo de 2 celdas: elimina 1 variable
 Grupo de 4 celdas: elimina 2 variables
 Grupo de 8 celdas: elimina 3 variables
B
0 2
1
0 1
1 3
1 1
0
1
A
Z = A + B
BIEN
A = 1,
B = 0/1,
B se elimina
A = 0/1,
B = 1,
A se elimina
B
0 2
1
0 1
1 3
1 1
0
1
A
Z = A + A’ B = A + B
MAL paso adicional
Simplificación por unos lógicos (mapa K de minitérminos)
Ejemplos
CB
1 1
00 01
1 1
0
1
A
1
11 10
CB
0 2
1 1
00 01
1 3
1 1
0
1
A
6 4
0 1
7 5
0 0
11 10 Z = C’ + A’B’C = C’ + A’B’
MAL
Z = C’ + A’B’
CB
1 1
00 01
1 1
1
A 11 10
1
0
BIEN
MAL
MAL
CB
1 1
00 01
1 1
0
1
A 11 10
1
1
CB
1 1
00 01
1 1
0
1
A 11 10
1
1
BIEN
Z = C’ + B
CB
0 2
1 1
00 01
1 3
1 1
0
1
A
6 4
1 0
7 5
1 0
11 10
CB
1 1
00 01
1 1
0
1
A 11 10
1
1
Z = C’ + BC
DC
00 01
00
01
BA
0 4
1 5
12 8
13 9
11 10
3 7
2 6
15 11
1
14 10
11
10
1
1 1
1
1
1
1
• Identificar primero las celdas que
solo tienen una posibilidad de
agrupación (y agruparlas).
• Continuar con el resto de las
celdas.
DC
00 01
00
01
BA
0 4
1 5
12 8
13 9
11 10
3 7
2 6
15 11
1
14 10
11
10
1
1 1
1
1
1
1
MAL BIEN
DC
00 01
00
01
BA
0 4
1 5
12 8
13 9
11 10
3 7
2 6
15 11
1
14 10
11
10
1
1
1
1
1
1
1
DC
00 01
00
01
BA
0 4
1 5
12 8
13 9
11 10
3 7
2 6
15 11
1
14 10
11
10
1
1
1
1
1
1
1
Más ejemplos
DC
00 01
00
01
BA
0 4
1 5
12 8
13 9
11 10
3 7
2 6
15 11
14 10
11
10
1
1
1
1
1
1
1
1
DC
00 01
00
01
BA
0 4
1 5
12 8
13 9
11 10
3 7
2 6
15 11
14 10
11
10
1
1
1
1
1
1
1
1
DC
00 01
00
01
BA
0 4
1 5
12 8
13 9
11 10
3 7
2 6
15 11
14 10
11
10
1
1
1
1
1
1
1
Z = B’D’ + A’B’ + ABC’D Z = A’C’
= A’B’C’D’ + A’B’C’D + A’BC’D’ + A’BC’D
= A’B’C’ + A’BC’ = … = A’C’
DC
00 01
00
01
BA
0 4
1 5
12 8
13 9
11 10
3 7
2 6
15 11
14 10
11
10
1
1 1
1
Caso especial
Simplificación por ceros lógicos (mapa K de maxitérminos)
CB
0 2
1 1
00 01
1 3
1 1
0
1
A
6 4
1 0
7 5
1 0
11 10
A = 0/1, se elimina
B = 0,
C = 1, se complementa
ZM = (C’ + B)
Si se agrupara por minitérminos:
CB
0 2
1 1
00 01
1 3
1 1
0
1
A
6 4
1 0
7 5
1 0
11 10
Zm = C’ + B
 Agrupar las celdas de valor 0 lógico.
 Cada grupo representa un término suma.
 Un grupo de 2k celdas elimina k variables del término resultante.
Ejemplos
DC
00 01
00
01
BA
0 4
1 5
12 8
13 9
11 10
3 7
2 6
15 11
14 10
11
10 0
0
0
0
0
0
0
0
00 01
00
01
0 4
1 5
12 8
13 9
11 10
3 7
2 6
15 11
14 10
11
10
0
0
0
0
0
0
0
0
8
9
11
10
00 01
00
01
0 4
1 5
12
13
11 10
3 7
2 6
15
14
11
10
0
0
0
0
0
0
0
0
Z = (B’ + C’).(D’ + C) Z = C
Funciones con combinaciones indiferentes
(no importa - don’t care)
Combinaciones de entrada para las que no importa el valor de la salida.
– Porque no se ha especificado el comportamiento del circuito
– Porque son imposibles
 En la tabla de verdad y en los mapas K, la salida para estas
combinaciones se indica con una letra X o d.
 En la simplificación por mapas K, estas celdas se toman como si
tuvieran valor 1 ó 0, según conveniencia.
 Usarlas para maximizar el tamaño de los grupos
 No agrupar celdas que solamente contengan X
 Implicancias del uso de X en un diseño.
DC
00 01
00
01
BA
0 4
1 5
12 8
13 9
11 10
3 7
2 6
15 11
14 10
11
10 1
1
x
1
x
x
1
0
0
x
0
0 0 x
x 1
DC
00 01
00
01
BA
0 4
1 5
12 8
13 9
11 10
3 7
2 6
15 11
14 10
11
10 X
X
X
0
0
X
0
0 0 X
X
DC
00 01
00
01
BA
0 4
1 5
12 8
13 9
11 10
3 7
2 6
15 11
14 10
11
10 1
1
X
1
X
X
1
X
X
X 1
BIEN
MAL
DC
00 01
00
01
BA
0 4
1 5
12 8
13 9
11 10
3 7
2 6
15 11
14 10
11
10 1
1
X
1
X
X
1
X
X
X 1
BA 00 01
00
01
0 4
1 5
12 8
13 9
11 10
3 7
2 6
15 11
14 10
11
10 X
X
X
0
0
X
0
0 0 X
X
DC
minitérminos maxitérminos
Ejemplo: detector de números BCD pares
DC
00 01
00
01
BA
0 4
1 5
12 8
13 9
11 10
3 7
2 6
15 11
14 10
11
10 1
1
1
1 1
Z = D/A/ + A/B/C/
Z = [(D+A)/ + (A+B+C)/]// (todo NOR)
#compuertas: 7
#CIs: 3 (1 INV, 1 AND 3i, 1 OR 2i)
#compuertas: 4
#CI: 2 (1 NOR 2i, 1NOR 3i)
Usando las condiciones no importa:
DC
00 01
00
01
BA
0 4
1 5
12 8
13 9
11 10
3 7
2 6
15 11
14 10
11
10 X
X
X
X
1
1
1
1 1 X
X
Z = A’
SW: KarnaughMap
Ejemplo de diseño #1: circuito para encender un display
de 7 segmentos
a
b
c
d
e
f g
Circuito
combinacional
Circuito
combinacional
4 (BCD) 7
¿Qué código de entrada usaría el circuito?
¿Cuántas E y S tendría el circuito?
¿Qué código de entrada usaría el circuito?
¿Cuántas E y S tendría el circuito?
Diseño
Diseño
1. Número de entradas y salidas
3. Obtención de las funciones
2. Tabla de verdad
Entradas: 4 - código BCD (ALSB, B, C, D)
Salidas: 7 (a, b, ...,g)
Función de múltiples salidas
7 funciones  7 mapas de 4 variables
Criterio de diseño:
¿Qué desventaja tiene usar X en
este caso?
¿Qué valor le daría a las X?
Criterio de diseño:
¿Qué desventaja tiene usar X en
este caso?
¿Qué valor le daría a las X?
Diseño
Diseño
Ejemplo de diseño #2: conversión electrónica de binario a Gray
Entradas: 4 (binario natural)
Salidas: 4 (Gray)
00 01
00
01
B1B0
0 4
1 5
12 8
13 9
11 10
3 7
2 6
15 11
14 10
11
10 1
1
1
1
1
1
1
1
B3B2
G3 = B3
00 01
00
01
B1B0
0 4
1 5
12 8
13 9
11 10
3 7
2 6
15 11
14 10
11
10 1
1
1
1
1
1
1
1
B3B2
G2 = B3B2/+ B3/B2
= B3  B2
Diseño
Diseño
B1
B2
B3
G1
G2
G3
Generalizando para n bits:
Gn = Bn
Gi = Bi xor Bi+1 para i entre 1 y n-1
Conversor binario-Gray de 3 bits
Diseño
Diseño
30/04/2013
Mapas K de 5 y 6 variables
Tips finales acerca del diseño combinacional
 Más de 6 variables de entrada: no se puede usar mapas K
 La minimización es importante… pero más lo es el diseño correcto!
Algoritmo de Quine-McCluskey
• Funciones de hasta 8-12 variables
Programas heurísticos (p.e., Espresso, Minilog)
• Usados en casos de problemas grandes
 Programas para manipular las expresiones y minimizar
o PALASM, ABEL, CUPL (para PLDs Programmable Logic Devices)
o VHDL, Verilog, para ASICs Application-Specific IC)
FIN
FIN

karnaugh.pdf

  • 1.
    Departamento de Electrónica ElectrónicaDigital Facultad de Ingeniería Bioingeniería Universidad Nacional de Entre Ríos Diseño combinacional (Parte #2) Mapas de Karnaugh
  • 2.
    Procedimiento de diseñode un circuito combinacional
  • 3.
    Expresión algebraica deuna función lógica como la suma de los minitérminos de la función. • Considera únicamente las combinaciones de entrada que hacen 1 la función • Cada variable aparece complementada si su valor es 0 y sin complementar si es 1 Determinación de la función lógica 1. Forma canónica de suma de productos
  • 4.
    Expresión algebraica deuna función lógica como el producto de los maxitérminos de la función. • Considera únicamente las combinaciones de entrada que hacen 0 la función (salida) • Cada variable aparece complementada si su valor es 1 y sin complementar si es 0 2. Forma canónica de producto de sumas
  • 5.
  • 6.
    Simplificación por mapasde Karnaugh (mapas K)  Método gráfico para simplificar funciones  Es una representación matricial de una tabla de verdad: • una celda del mapa = una fila de la tabla de verdad  Muy práctico para funciones de no más de 4 ó 5 variables Ejemplo de mapa de 2 variables B 0 2 0 1 1 3 0 1 A
  • 7.
     Cada celdase corresponde con un minitérmino ó maxitérmino de la función  En cada celda se escribe el valor de la salida de la función lógica para ese minitérmino/maxitérmino.  Cada celda difiere de la adyacente en solo una variable.  La numeración de las filas/columnas es en código Gray  Las filas/columnas externas son adyacentes entre sí Principales características del mapa K
  • 8.
    Ejemplo de mapade 4 variables DC 00 01 00 01 BA 0 4 1 5 12 8 13 9 11 10 3 7 2 6 15 11 14 10 11 10 variables de entrada numeración en código continuo número de minitérmino celdas adyacentes celdas adyacentes
  • 9.
    1. Agrupar todaslas celdas con el mismo valor, en uno o más grupos de celdas adyacentes 2. La cantidad de celdas en un grupo debe ser potencia de 2 (2, 4, 8) 3. Maximizar la cantidad de celdas en cada grupo 4. Minimizar la cantidad de grupos 5. Superponer grupos siempre que sea posible (una celda puede estar en uno o más grupos), si eso conduce a cumplir 2, 3 y 4. Reglas de aplicación
  • 10.
    CB 1 1 00 01 00 0 1 A 0 1 0 1 11 10 Z1 = A’B’C’ + A’BC’ = A’C’ (B’ + B) = A’C’ Z2 = A’CB’ + ACB’ = CB’ (A’ + A) = CB’ Z = Z1 + Z2 = A’C’ + CB’ Fundamento del método En celdas adyacentes, sólo cambia el valor de una de las variables entre los dos términos representado por cada celda  aplicando álgebra de Boole se elimina la variable que cambia de valor. C B A Z 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 Z =A’C’ + CB’
  • 11.
     Agrupar lasceldas de valor 1 (minitérminos)  Cada grupo representa a un término producto  Un grupo de 2k celdas elimina k variables del término resultante  Grupo de 2 celdas: elimina 1 variable  Grupo de 4 celdas: elimina 2 variables  Grupo de 8 celdas: elimina 3 variables B 0 2 1 0 1 1 3 1 1 0 1 A Z = A + B BIEN A = 1, B = 0/1, B se elimina A = 0/1, B = 1, A se elimina B 0 2 1 0 1 1 3 1 1 0 1 A Z = A + A’ B = A + B MAL paso adicional Simplificación por unos lógicos (mapa K de minitérminos)
  • 12.
    Ejemplos CB 1 1 00 01 11 0 1 A 1 11 10 CB 0 2 1 1 00 01 1 3 1 1 0 1 A 6 4 0 1 7 5 0 0 11 10 Z = C’ + A’B’C = C’ + A’B’ MAL Z = C’ + A’B’ CB 1 1 00 01 1 1 1 A 11 10 1 0 BIEN
  • 13.
    MAL MAL CB 1 1 00 01 11 0 1 A 11 10 1 1 CB 1 1 00 01 1 1 0 1 A 11 10 1 1 BIEN Z = C’ + B CB 0 2 1 1 00 01 1 3 1 1 0 1 A 6 4 1 0 7 5 1 0 11 10 CB 1 1 00 01 1 1 0 1 A 11 10 1 1 Z = C’ + BC
  • 14.
    DC 00 01 00 01 BA 0 4 15 12 8 13 9 11 10 3 7 2 6 15 11 1 14 10 11 10 1 1 1 1 1 1 1 • Identificar primero las celdas que solo tienen una posibilidad de agrupación (y agruparlas). • Continuar con el resto de las celdas. DC 00 01 00 01 BA 0 4 1 5 12 8 13 9 11 10 3 7 2 6 15 11 1 14 10 11 10 1 1 1 1 1 1 1 MAL BIEN DC 00 01 00 01 BA 0 4 1 5 12 8 13 9 11 10 3 7 2 6 15 11 1 14 10 11 10 1 1 1 1 1 1 1 DC 00 01 00 01 BA 0 4 1 5 12 8 13 9 11 10 3 7 2 6 15 11 1 14 10 11 10 1 1 1 1 1 1 1
  • 15.
    Más ejemplos DC 00 01 00 01 BA 04 1 5 12 8 13 9 11 10 3 7 2 6 15 11 14 10 11 10 1 1 1 1 1 1 1 1 DC 00 01 00 01 BA 0 4 1 5 12 8 13 9 11 10 3 7 2 6 15 11 14 10 11 10 1 1 1 1 1 1 1 1 DC 00 01 00 01 BA 0 4 1 5 12 8 13 9 11 10 3 7 2 6 15 11 14 10 11 10 1 1 1 1 1 1 1 Z = B’D’ + A’B’ + ABC’D Z = A’C’ = A’B’C’D’ + A’B’C’D + A’BC’D’ + A’BC’D = A’B’C’ + A’BC’ = … = A’C’ DC 00 01 00 01 BA 0 4 1 5 12 8 13 9 11 10 3 7 2 6 15 11 14 10 11 10 1 1 1 1 Caso especial
  • 16.
    Simplificación por ceroslógicos (mapa K de maxitérminos) CB 0 2 1 1 00 01 1 3 1 1 0 1 A 6 4 1 0 7 5 1 0 11 10 A = 0/1, se elimina B = 0, C = 1, se complementa ZM = (C’ + B) Si se agrupara por minitérminos: CB 0 2 1 1 00 01 1 3 1 1 0 1 A 6 4 1 0 7 5 1 0 11 10 Zm = C’ + B  Agrupar las celdas de valor 0 lógico.  Cada grupo representa un término suma.  Un grupo de 2k celdas elimina k variables del término resultante.
  • 17.
    Ejemplos DC 00 01 00 01 BA 0 4 15 12 8 13 9 11 10 3 7 2 6 15 11 14 10 11 10 0 0 0 0 0 0 0 0 00 01 00 01 0 4 1 5 12 8 13 9 11 10 3 7 2 6 15 11 14 10 11 10 0 0 0 0 0 0 0 0 8 9 11 10 00 01 00 01 0 4 1 5 12 13 11 10 3 7 2 6 15 14 11 10 0 0 0 0 0 0 0 0 Z = (B’ + C’).(D’ + C) Z = C
  • 18.
    Funciones con combinacionesindiferentes (no importa - don’t care) Combinaciones de entrada para las que no importa el valor de la salida. – Porque no se ha especificado el comportamiento del circuito – Porque son imposibles  En la tabla de verdad y en los mapas K, la salida para estas combinaciones se indica con una letra X o d.  En la simplificación por mapas K, estas celdas se toman como si tuvieran valor 1 ó 0, según conveniencia.  Usarlas para maximizar el tamaño de los grupos  No agrupar celdas que solamente contengan X  Implicancias del uso de X en un diseño.
  • 19.
    DC 00 01 00 01 BA 0 4 15 12 8 13 9 11 10 3 7 2 6 15 11 14 10 11 10 1 1 x 1 x x 1 0 0 x 0 0 0 x x 1 DC 00 01 00 01 BA 0 4 1 5 12 8 13 9 11 10 3 7 2 6 15 11 14 10 11 10 X X X 0 0 X 0 0 0 X X DC 00 01 00 01 BA 0 4 1 5 12 8 13 9 11 10 3 7 2 6 15 11 14 10 11 10 1 1 X 1 X X 1 X X X 1 BIEN MAL DC 00 01 00 01 BA 0 4 1 5 12 8 13 9 11 10 3 7 2 6 15 11 14 10 11 10 1 1 X 1 X X 1 X X X 1 BA 00 01 00 01 0 4 1 5 12 8 13 9 11 10 3 7 2 6 15 11 14 10 11 10 X X X 0 0 X 0 0 0 X X DC minitérminos maxitérminos
  • 20.
    Ejemplo: detector denúmeros BCD pares DC 00 01 00 01 BA 0 4 1 5 12 8 13 9 11 10 3 7 2 6 15 11 14 10 11 10 1 1 1 1 1 Z = D/A/ + A/B/C/ Z = [(D+A)/ + (A+B+C)/]// (todo NOR) #compuertas: 7 #CIs: 3 (1 INV, 1 AND 3i, 1 OR 2i) #compuertas: 4 #CI: 2 (1 NOR 2i, 1NOR 3i)
  • 21.
    Usando las condicionesno importa: DC 00 01 00 01 BA 0 4 1 5 12 8 13 9 11 10 3 7 2 6 15 11 14 10 11 10 X X X X 1 1 1 1 1 X X Z = A’
  • 22.
  • 23.
    Ejemplo de diseño#1: circuito para encender un display de 7 segmentos a b c d e f g Circuito combinacional Circuito combinacional 4 (BCD) 7 ¿Qué código de entrada usaría el circuito? ¿Cuántas E y S tendría el circuito? ¿Qué código de entrada usaría el circuito? ¿Cuántas E y S tendría el circuito? Diseño Diseño
  • 24.
    1. Número deentradas y salidas 3. Obtención de las funciones 2. Tabla de verdad Entradas: 4 - código BCD (ALSB, B, C, D) Salidas: 7 (a, b, ...,g) Función de múltiples salidas 7 funciones  7 mapas de 4 variables Criterio de diseño: ¿Qué desventaja tiene usar X en este caso? ¿Qué valor le daría a las X? Criterio de diseño: ¿Qué desventaja tiene usar X en este caso? ¿Qué valor le daría a las X? Diseño Diseño
  • 25.
    Ejemplo de diseño#2: conversión electrónica de binario a Gray Entradas: 4 (binario natural) Salidas: 4 (Gray) 00 01 00 01 B1B0 0 4 1 5 12 8 13 9 11 10 3 7 2 6 15 11 14 10 11 10 1 1 1 1 1 1 1 1 B3B2 G3 = B3 00 01 00 01 B1B0 0 4 1 5 12 8 13 9 11 10 3 7 2 6 15 11 14 10 11 10 1 1 1 1 1 1 1 1 B3B2 G2 = B3B2/+ B3/B2 = B3  B2 Diseño Diseño
  • 26.
    B1 B2 B3 G1 G2 G3 Generalizando para nbits: Gn = Bn Gi = Bi xor Bi+1 para i entre 1 y n-1 Conversor binario-Gray de 3 bits Diseño Diseño
  • 27.
    30/04/2013 Mapas K de5 y 6 variables
  • 28.
    Tips finales acercadel diseño combinacional  Más de 6 variables de entrada: no se puede usar mapas K  La minimización es importante… pero más lo es el diseño correcto! Algoritmo de Quine-McCluskey • Funciones de hasta 8-12 variables Programas heurísticos (p.e., Espresso, Minilog) • Usados en casos de problemas grandes  Programas para manipular las expresiones y minimizar o PALASM, ABEL, CUPL (para PLDs Programmable Logic Devices) o VHDL, Verilog, para ASICs Application-Specific IC)
  • 29.