elo211: sistemas digitales tomásarredondo vidal 1er...
TRANSCRIPT
6: Simplificación 1
ELO211: Sistemas Digitales
Tomás Arredondo Vidal1er Semestre – 2008
Este material está basado en:
❒ textos y material de apoyo: Contemporary Logic Design 1st / 2nd edition. Gaetano Borriello and Randy Katz. Prentice Hall, 1994, 2005
❒ material del curso ELO211 del Prof. Leopoldo Silva
❒ material en el sitio http://es.wikipedia.org
6: Simplificación 2
6-Simplificación
6.1 Ejemplos en dos niveles
6.2 Simplificación en dos niveles
6.3 Algoritmos de simplificación
6: Simplificación 3
Ejemplo: comparador de dos bits
mapa de Karnaugh de 4-variablespara cada una de las 3 funciones de output
LT
EQ
GT
A B < C D
A B = C D
A B > C D
AB
CD
N1
N2
A B C D LT EQ GT0 0 0 0 0 1 0
0 1 1 0 01 0 1 0 01 1 1 0 0
0 1 0 0 0 0 10 1 0 1 01 0 1 0 01 1 1 0 0
1 0 0 0 0 0 10 1 0 0 11 0 0 1 01 1 1 0 0
1 1 0 0 0 0 10 1 0 0 11 0 0 0 11 1 0 1 0
diagrama de bloquey
tabla verdad
6: Simplificación 4
A' B' D + A' C + B' C D
B C' D' + A C' + A B D'
LT =
EQ =
GT =
K-mapa para EQK-mapa para LT K-mapa para GT
Ejemplo: comparador de dos bits (cont)
0 0
1 0
0 0
0 0D
A
1 1
1 1
0 1
0 0
B
C
1 0
0 1
0 0
0 0D
A
0 0
0 0
1 0
0 1
B
C
0 1
0 0
1 1
1 1D
A
0 0
0 0
0 0
1 0
B
C
= (A xnor C) • (B xnor D)
LT y GT son similares
A' B' C' D' + A' B C' D + A B C D + A B' C D’
6: Simplificación 5
dos implementaciones alternativas deEQ con y sin XOR
XNOR se implementa con al mínimo 3 compuertas simples
A B C D
EQ
EQ
Ejemplo: comparador de dos bits (cont)
6: Simplificación 6
diagrama en bloque y
tabla de verdad
mapa de Karnaugh de 4-variablespara cada una de las 4 funciones de output
A2 A1 B2 B1 P8 P4 P2 P10 0 0 0 0 0 0 0
0 1 0 0 0 01 0 0 0 0 01 1 0 0 0 0
0 1 0 0 0 0 0 00 1 0 0 0 11 0 0 0 1 01 1 0 0 1 1
1 0 0 0 0 0 0 00 1 0 0 1 01 0 0 1 0 01 1 0 1 1 0
1 1 0 0 0 0 0 00 1 0 0 1 11 0 0 1 1 01 1 1 0 0 1
Ejemplo: multiplicador de dos bits
P1
P2
P4
P8
A1
A2
B1
B2
6: Simplificación 7
K-mapa de P8 K-mapa de P4
K-mapa de P2 K-mapa de P1
Ejemplo: multiplicador de dos bits (cont)
0 0
0 0
0 0
0 0B1
A2
0 0
0 0
0 1
1 1
A1
B2
0 0
0 1
0 0
1 0B1
A2
0 1
0 0
1 0
0 0
A1
B2
0 0
0 0
0 0
1 1B1
A2
0 1
0 1
0 1
1 0
A1
B2
0 0
0 0
0 0
0 0B1
A2
0 0
0 0
1 0
0 0
A1
B2 P8 = A2A1B2B1
P4 = A2B2B1'+ A2A1'B2
P2 = A2'A1B2+ A2B2’B1+ A2A1'B1+ A1B2B1’
P1 = A1B1
6: Simplificación 8
I8 I4 I2 I1 O8 O4 O2 O10 0 0 0 0 0 0 10 0 0 1 0 0 1 00 0 1 0 0 0 1 10 0 1 1 0 1 0 00 1 0 0 0 1 0 10 1 0 1 0 1 1 00 1 1 0 0 1 1 10 1 1 1 1 0 0 01 0 0 0 1 0 0 11 0 0 1 0 0 0 01 0 1 0 X X X X1 0 1 1 X X X X1 1 0 0 X X X X1 1 0 1 X X X X1 1 1 0 X X X X1 1 1 1 X X X Xdiagrama en bloque
y tabla de verdad
mapa de Karnaugh de 4-variablespara cada una de las 4 funciones de output
O1
O2
O4
O8
I1
I2
I4
I8
Ejemplo: incrementador en 1 de números BCD de 4 bits
6: Simplificación 9
O8 = I4 I2 I1 + I8 I1'
O4 = I4 I2' + I4 I1' + I4’ I2 I1
O2 = I8’ I2’ I1 + I2 I1'
O1 = I1'
O8 O4
O2 O1
Ejemplo: incrementador en 1 de números BCD de 4 bits (cont)
0 0
0 0
X 1
X 0I1
I8
0 1
0 0
X X
X X
I4
I2
0 0
1 1
X 0
X 0I1
I8
0 0
1 1
X X
X X
I4
I2
0 1
0 1
X 0
X 0I1
I8
1 0
0 1
X X
X X
I4
I2
1 1
0 0
X 1
X 0I1
I8
0 0
1 1
X X
X X
I4
I2
6: Simplificación 10
6-Simplificación
6.1 Ejemplos en dos niveles
6.2 Simplificación en dos niveles
6.3 Algoritmos de simplificación
6: Simplificación 11
Definiciones de términos para simplificación en dos niveles
❒ Implicante❍ Elemento individual del ON-set o del DC-set o algún grupo de estos
elementos que se puede combinar para formar un subcubo
❒ Implicante primo❍ Implicante que no se puede combinar con otro para formar un subcubo mas
grande❍ No contiene literales repetidos❍ No contiene una variable y su complemento ❍ No contiene variables redundantes, si se descarta un literal del implicante
el resto no será un implicante❍ Si x e y son implicantes primos de f, entonces: x no cubre a y; y viceversa
❒ Implicante esencial primo❍ Un implicante primo es esencial si el es el único que cubre un elemento del
ON-set (o mintérmino)❍ Va a participar de todas las posibles coberturas del ON-set❍ DC-set se usa parar formar implicantes primos pero no para hacer un
implicante esencial
6: Simplificación 12
Definiciones de términos para simplificación en dos niveles
❒ Objetivo:❍ Hacer crecer implicantes para convertirlos en implicantes primos (minimizar literales por término)
❍ Cubrir el ON-set con el menor numero de implicantes primos posible (minimizar número de términos)
6: Simplificación 13
0 X
1 1
1 0
1 0D
A
1 0
0 0
1 1
1 1
B
C
5 implicantes primos:
BD, ABC', ACD, A'BC, A'C'D
Ejemplos para ilustrar términos
0 0
1 1
1 0
1 0D
A
0 1
0 1
1 1
0 0
B
C
6 implicantes primos (no se pueden agrupar mas):
A'B'D, BC', AC, A'C'D, AB, B'CD
mínima cobertura: AC + BC' + A'B'D
esencial
cobertura mínima : 4 implicantes esenciales
esenciales
6: Simplificación 14
6-Simplificación
6.1 Ejemplos en dos niveles
6.2 Simplificación en dos niveles
6.3 Algoritmos de simplificación
6: Simplificación 15
Algoritmo para simplificación de dos niveles en un mapa de Karnaugh
❒ Algoritmo: mínima expresión de suma de productos de un mapa de Karnaugh
❍ 1: elegir mintérmino (un elemento del ON-set)
❍ 2: encontrar grupos máximos de 1s y Xs adyacentes a ese elemento
• considerar filas de arriba/abajo, columnas izquierda/derecha y adyacencias de las esquinas
• estos son implicantes primos (número de elementos siempre un poder de 2)
❍ Repetir pasos 1 y 2 hasta encontrar todos los implicantes primos
❍ 3: revisar los 1s en el K-map
• si cubiertos por un solo implicante primo, se considera esencial, y tiene que estar en la cobertura final
• 1s cubiertos por implicantes primos esenciales no tienen que serrevisados
❍ 4: si quedan 1s no cubiertos por implicantes primos esenciales
• elegir el numero mas pequeño de implicantes primos que cubren el resto de los 1s
6: Simplificación 16
Algoritmos para simplificación de dos niveles (ejemplo)
X 1
0 1
0 1
1 1D
A
0 X
0 1
X 0
0 1
B
C
2 primos cubriendo A'BC'D'
X 1
0 1
0 1
1 1D
A
0 X
0 1
X 0
0 1
B
C
2 primos cubriendo ABC'D
X 1
0 1
0 1
1 1D
A
0 X
0 1
X 0
0 1
B
C
cobertura minima (3 primos)
X 1
0 1
0 1
1 1D
A
0 X
0 1
X 0
0 1
B
C
X 1
0 1
0 1
1 1D
A
0 X
0 1
X 0
0 1
B
C
2 primos esenciales
X 1
0 1
0 1
1 1D
A
0 X
0 1
X 0
0 1
B
C
3 primos cubriendo AB'C'D'
X 1
0 1
0 1
1 1D
A
0 X
0 1
X 0
0 1
B
C
6: Simplificación 17
BC BD AB AC’DCD’
BDCD’ AC’D
BDCD’ AC’D
Actividad
X 0
0 1
X 0
X 1D
A
0 X
X 1
X 0
1 1
B
C
X 0
0 1
X 0
X 1D
A
0 X
X 1
X 0
1 1
B
C
❒ Indique todos los implicantes primos para el K-map:
❒ Cuales son implicantes primos esenciales?
❒ Cual es la cobertura mínima?
6: Simplificación 18
Método de Quine ❒ Método sistemático para encontrar la expresión mínima de una función,
no requiere reconocer agrupaciones en un mapa de Karnaugh
❒ Básicamente es la búsqueda exhaustiva de todas las adyacencias entre los mintérminos de la función mediante el uso sistemático del teorema a = ab + ab’
❒ Algoritmo Quine para encontrar implicantes primos:
1. Formar columna con los mintérminos de la función
2. Formar siguiente columna según:
❍ Revisar primer elemento de la columna con todos los siguientes; si se encuentra un termino que difiere en una variable, se lo anota en la nueva columna omitiendo el literal correspondiente; se marcan los términos en la columna actual
❍ Se repite para todos los elementos
3. Repetir el paso 2 hasta no poder formar nuevas columnas
❒ Después se pueden encontrar los implicantes primos esenciales usando la tabla de implicantes primos
6: Simplificación 19
Ejemplo: Método de Quine
❒ Obtener implicantes primos de: f(a, b, c) = ∑m(0,2,5,6,7)
Primera Columna Segunda Columna
m min marcas Grupos Implicantes
0 a’b’c’ x (0,2) a’c’
2 a’bc’ x x (2,6) bc’
5 ab’c x (5,7) ac
6 abc’ x x (6,7) ab
7 abc x x
Como no se pueden formar nuevas columnas los implicantes
primos son a’c’, bc’, ac, ab
6: Simplificación 20
Tabla de implicantes primos
❒ Una vez obtenido los implicantes primos se puede determinar cuales son esenciales con la tabla de implicantes primos:
❍ Crear tabla empleando implicantes primos en las filas y los mintérminos en las columnas
❍ En cada fila marcar con 1 las columnas de los mintérminospertenecientes al implicante considerado
❍ Aquellas columnas con solos una marca son implicantes primos esenciales
❍ Hay que escoger el menor numero de implicantes primos que cubrantodos los mintérminos de la función
6: Simplificación 21
Ejemplo: Tabla de implicantes ❒ Obtener implicantes primos de: f(a, b, c) = ∑m(0,2,5,6,7)
Primera Columna Segunda Columna
m min marcas Grupos Implicantes
0 a’b’c’ x (0,2) a’c’
2 a’bc’ x x (2,6) bc’
5 ab’c x (5,7) ac
6 abc’ x x (6,7) ab
7 abc x x
❒ Usando los implicantes primos se genera la tabla de implicantes primos
0 2 5 6 7
a’c’ 1 1
bc’ 1 1
ac 1 1
ab 1 1
implicantes primos esenciales: a’c’ + ac
solo falta cubrir m6, se puede lograrcon bc’ o con abla forma mínima de la funcion: f = a’c’ + ac + bc’ o f = a’c’ + ac +ab
6: Simplificación 22
Método de Quine-McCluskey❒ Otro método sistemático para encontrar la expresión mínima de una
función, no requiere reconocer agrupaciones en un mapa de Karnaugh
❒ Permite la búsqueda exhaustiva de todas las adyacencias entre los mintérminos de la función mediante el uso sistemático del teorema a = ab + ab’
❒ Es un método tabular adecuado para ser programado en un computador ya que se representan los implicantes primos en forma binaria
❒ Algoritmo QM para encontrar implicantes primos:1. Formar columna con los mintérminos de la función representados en forma
binaria y agrupados de acuerdo al numero de 1s que lo conforman
2. Formar siguiente columna según:❍ Revisar primer elemento de la columna con todos los siguientes; si se encuentra
un termino que difiere en una variable, se lo anota en la nueva columna omitiendo el literal correspondiente; se marcan los términos en la columna actual
❍ Se repite para todos los elementos
3. Repetir el paso 2 hasta no poder formar nuevas columnas
❒ Después se pueden encontrar los implicantes primos esenciales usando la tabla de implicantes primos.
6: Simplificación 23
Ejemplo: Método de Quine-McCluskey❒ Obtener implicantes primos de: f(a, b, c, d) = ∑m(4,5,6,8,9,10,13) + d(0,7,15)
Columna I Columna II Columna III
0000 x 0-00 * 01-- *
-000 *
0100 x -1-1 *
1000 x 010- x
01-0 x
0101 x 100- *
0110 x 10-0 *
1001 x
1010 x 01-1 x
-101 x
0111 x 011- x
1101 x 1-01 *
1111 x -111 x
11-1 x
* indica los implicantes primos (no se pueden combinar mas)
- indica el literal combinado
solo se pueden combinar los implicantes primos que tienen el - en la misma posición
6: Simplificación 24
Ejemplo: Crear tabla de implicantes primos
❒ Una vez obtenido los implicantes primos se puede determinar cuales son esenciales con la tabla de implicantes primos:
❍ Crear tabla empleando implicantes primos en las filas y los mintérminos en las columnas
❍ En cada fila marcar con 1 las columnas de los mintérminospertenecientes al implicante considerado
❍ Aquellas columnas con solos una marca son implicantes primos esenciales
❍ Hay que escoger el menor numero de implicantes primos que cubrantodos los mintérminos de la función
6: Simplificación 25
Ejemplo: Tabla de implicantes primos ❒ Tabla de implicantes primos
4 5 6 8 9 10 13
0,4 (0-00) x
0,8 (-000) x
8,9 (100-) x x
8,10 (10-0) x x
9,13 (1-01) x x
4,5,6,7 (01--) x x x
5,7,13,15 (-1-1) x x
solo falta cubrir m9 y m13, se puede lograr con 1-01 (ac’d) la forma mínima de la funcion: f = ab’d’ + a’b + ac’d
implicantes primos esenciales: ab’d’ + a’b
6: Simplificación 26
Reducción de tabla de implicantes primos ❒ Una vez que se selecciona un implicante para formar la
función se puede reducir la tabla eliminando la fila (o renglón) correspondiente
❒ Cuando se elimina una fila también se eliminan las columnas con marcas en dicha fila
❒ Se comienza eliminando implicantes primos esenciales.
❒ La tabla se puede continuar simplificando eliminando renglones cubiertos por otros y columnas que cubren a otras
❍ Un renglón (R1) cubre a otro (R2) si tiene marcas en todas las columnas marcadas por el otro. El renglón (R1) también puede tener columnas adicionales marcadas.
❍ Una columna (C1) cubre a otra (C2) si tiene marcas en cada renglón que la otra tiene. La columna (C1) podría también tener renglones adicionales marcados.
6: Simplificación 27
❒ La tabla de implicantes primos resulta:
0 4 5 11 13 15
a’c’d’ 1 1
a’bc’ 1 1
bc’d 1 1
abd 1 1
acd 1 1
Ejemplo: Reducción de tabla de implicantes primos
1 1
0 1
0 0
1 0D
A
0 0
0 0
1 1
0 0
B
C
La tabla reducida: 5 13
a’bc’ 1bc’d 1 1abd 1
La función mínima es: f(a,b,c,d)=a’c’d’ + acd + bc’d
6: Simplificación 28
Reducción de tabla de implicantes primos II ❒ Se puede tratar de reducir la tabla se eliminando las filas
cubiertos por otros y columnas que cubren a otras
❒ Esto es como simplificación previa a la elección de implicantes primos
❒ La tabla simplificada tiene que garantizar cobertura de los mintérminos requeridos para implementar la función
6: Simplificación 29
Ejemplo: Reducción de tabla de implicantes primos II❒ La tabla de implicantes primos:
m1 m2 m3
ipa 1 1
ipb 1 1
ipc 1 1
ipd 1
❒ Se puede reducir alguna fila cubierta por otra?
❒ Se puede reducir alguna columna que cubra a otra?
Si se elimina m2 para cubrir m1 debe seleccionarse ipb o ipc lo que considera a m2 en la cobertura
Si se elimina m1 es un error porque si después se eligiera a ipa no se incluiría a m1 en la función
eliminando m2
eliminando m1
m1 m2
11 11 1
Si...la columna m2 cubre a la columna m1; puede eliminarse m2
Si
ipd es cubierto por ipa, ipb esta cubierto por ipcy viceversa
6: Simplificación 30
Tabla reducida cíclica
❒ En algunos casos luego de remover los implicantes primos esenciales, los renglones cubiertos por otros y las columnas cubiertas por otras no puede seguir reduciéndose la tabla
❒ Estas tablas que no pueden ser reducidas se denominan tablas cíclicas
m1 m2 m3 m4
ip1 1 1
ip2 1 1
ip3 1 1
ip4 1 1
No hay ninguna fila o columna que cubra a otra
6: Simplificación 31
Tabla reducida cíclica: Método de Petrick❒ Para generar una función que cubra una tabla cíclica se puede plantear
una expresión booleana P como producto de sumas que garantice la cobertura y que entregue todas las soluciones posibles
m1 m2 m3 m4
ip1 1 1
ip2 1 1
ip3 1 1
ip4 1 1
❒ Para que m1 este presente debe cumplirse que ip1 o ip4 estén presentes; es decir (ip1 + ip4). Usando P: (P1 + P4)
❒ Para que estén presentes todos los mintérminos:
P = (P1 + P4)(P2 + P3)(P1 + P3)(P2 + P4)
❒ Simplificando: P = P1P2 + P3P4
❒ Se tienen dos soluciones. La primera es ip1 e ip2: f = ip1 ip2. La segunda es ip4 e ip3: f = ip4 ip3
❒ Se elige la solución de menor costo
6: Simplificación 32
Actividad: Método de Quine-McCluskey❒ f(a, b, c, d) = ∑m(4,5,8,9,11,13,15) + d(0,3)
Columna I Columna II Columna III
0000 x 0-00 * 1--1 *
-000 *
0100 x
1000 x 010- *
100- *
0011 x
0101 x -011 *
1001 x -101 *
10-1 x
1011 x 1-01 x
1101 x
1-11 x
1111 x 11-1 x
6: Simplificación 33
Actividad: Tabla de implicantes primos ❒ Tabla de implicantes primos
4 5 8 9 11 13 15
0,4 (0-00) x
0,8 (-000) x
4,5 (010-) x x
8,9 (100-) x x
3,11 (-011) x
5,13 (-101) x x
9,11,13,15 (1--1) x x x x
Hay varias soluciones posibles, con 010- y 100- se cubren m4, m5, m8 y m9. Solo falta cubrir m11, m13 y m15 que se puede lograr con 1--1.La forma mínima de la funcion: f = a’bc’ + ab’c’ + ad