Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
Departamento de ElectrónicaElectró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 complementarsi 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
B0 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
DC00 01
00
01
BA0 4
1 5
12 8
13 9
11 10
3 7
2 6
15 11
14 10
11
10
variables de entradanumeración encó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 estaren uno o más grupos), si eso conduce a cumplir 2, 3 y 4.
Reglas de aplicación
CB
1 100 01
0 00
1
A0 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 Z0 0 0 10 0 1 00 1 0 10 1 1 01 0 0 11 0 1 11 1 0 01 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
B0 2
10 1
1 31 1
0
1
A
Z = A + B
BIEN
A = 1,B = 0/1,B se elimina
A = 0/1,B = 1,A se elimina
B0 2
10 1
1 31 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 100 01
1 1
0
1
A1
11 10
CB
0 21 1
00 01
1 31 1
0
1
A6 4
0 17 5
0 0
11 10 Z = C’ + A’B’C = C’ + A’B’
MAL
Z = C’ + A’B’
CB
1 100 01
1 11
A 11 1010BIEN
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 21 1
00 01
1 31 1
0
1
A6 4
1 07 5
1 0
11 10
CB
1 1
00 01
1 1
0
1
A 11 10
1
1
Z = C’ + BC
DC00 01
00
01
BA0 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
11
• Identificar primero las celdas que solo tienen una posibilidad de agrupación (y agruparlas).
• Continuar con el resto de las celdas.
DC00 01
00
01
BA0 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
11
MAL BIEN
DC00 01
00
01
BA0 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
11
DC00 01
00
01
BA0 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
11
Más ejemplosDC00 01
00
01
BA0 4
1 5
12 8
13 9
11 10
3 7
2 6
15 11
14 10
11
10
1
1
1
1
1
11
1
DC00 01
00
01
BA0 4
1 5
12 8
13 9
11 10
3 7
2 6
15 11
14 10
11
10
1
1
1
11
1
1
1
DC00 01
00
01
BA0 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’
DC00 01
00
01
BA0 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 21 100 01
1 31 1
0
1
A6 4
1 07 5
1 0
11 10
A = 0/1, se eliminaB = 0, C = 1, se complementa
ZM = (C’ + B)
Si se agrupara por minitérminos:CB
0 21 1
00 01
1 31 1
0
1
A6 4
1 07 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
DC00 01
00
01
BA0 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
08
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
00
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.
DC00 01
00
01
BA0 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
DC00 01
00
01
BA0 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
DC00 01
00
01
BA0 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
1X
X
X 1BIEN
MAL
DC00 01
00
01
BA0 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
1X
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
DC00 01
00
01
BA0 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:
DC00 01
00
01
BA0 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
cde
f g
Circuitocombinacional
Circuitocombinacional
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ñoDiseño
1. Número de entradas y salidas
3. Obtención de las funciones
2. Tabla de verdadEntradas: 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ñoDiseñ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
11
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
11
1
B3B2
G2 = B3B2/+ B3/B2
= B3 B2
DiseñoDiseñ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ñoDiseñ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)
FINFIN