6.1 ejemplos en dos niveles 6.2 simplificación en dos...

41
6: Simplificación 1 6-Simplificación 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos niveles 6.3 Algoritmos de simplificación

Upload: others

Post on 21-Apr-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 1

6-Simplificación

6.1 Ejemplos en dos niveles6.2 Simplificación en dos niveles6.3 Algoritmos de simplificación

Page 2: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 2

Ejemplo: comparador de dos bits

mapa de Karnaugh de 4-variablespara cada una de las 3 funciones de output

LTEQGT

A B < C DA B = C DA 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

Page 3: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 3

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’

Page 4: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 4

dos implementaciones alternativas de

EQ 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)

Page 5: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 5

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

P1P2P4P8

A1A2B1B2

Page 6: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 6

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

Page 7: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 7

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 X

diagrama en bloque y

tabla de verdad

mapa de Karnaugh de 4-variablespara cada una de las 4 funciones de output

O1O2O4O8

I1I2I4I8

Ejemplo: incrementador en 1 de números BCD de 4 bits

Page 8: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 8

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

Page 9: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 9

6-Simplificación

6.1 Ejemplos en dos niveles6.2 Simplificación en dos niveles6.3 Algoritmos de simplificación

Page 10: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 10

Definiciones de términos para simplificación en dos niveles

Implicante Elemento individual del ON-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 más 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 primo esencial

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

Page 11: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 11

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 número de implicantes primos posible (minimizar número de términos)

Page 12: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 12

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

Page 13: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 13

6-Simplificación

6.1 Ejemplos en dos niveles6.2 Simplificación en dos niveles6.3 Algoritmos de simplificación

Page 14: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 14

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 potencia 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 ser

revisados 4: si quedan 1s no cubiertos por implicantes primos esenciales

• elegir el número más pequeño de implicantes primos que cubren el resto de los 1s

Page 15: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 15

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 mínima (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

Page 16: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 16

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?

Page 17: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 17

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ón2. Formar siguiente columna según:

Revisar primer elemento de la columna con todos los siguientes; si se encuentra un término 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 elementos3. 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

Page 18: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 18

Ejemplo: Método de Quine

Obtener implicantes primos de: f(a, b, c) = ∑m(0,2,5,6,7)

Primera Columna Segunda Columnam min marcas Grupos Implicantes0 a’b’c’ x (0,2) a’c’2 a’bc’ x x (2,6) bc’5 ab’c x (5,7) ac6 abc’ x x (6,7) ab7 abc x x

Como no se pueden formar nuevas columnas los implicantes primos son a’c’, bc’, ac, ab

Page 19: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 19

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

min términos en las columnas En cada fila marcar con 1 las columnas de los mintérminos

pertenecientes al implicante considerado Aquellas columnas con solos una marca son implicantes

primos esenciales Hay que escoger el menor número de implicantes primos que

cubran todos los mintérminos de la función

Page 20: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 20

Ejemplo: Tabla de implicantes Obtener implicantes primos de: f(a, b, c) = ∑m(0,2,5,6,7)

Primera Columna Segunda Columnam min marcas GruposImplicantes

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) ab7 abc x x

Usando los implicantes primos se genera la tabla de implicantes primos

0 2 5 6 7a’c’ 1 1

bc’ 1 1ac 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

Page 21: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 21

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 número 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 término 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 elementos3. 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.

Page 22: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 22

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

Page 23: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 23

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

min términos en las columnas. En cada fila marcar con 1 las columnas de los mintérminos

pertenecientes al implicante considerado. Aquellas columnas con solo una marca son implicantes primos

esenciales- Hay que escoger el menor número de implicantes primos que

cubran todos los mintérminos de la función.

Page 24: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 24

Ejemplo: Tabla de implicantes primos Tabla de implicantes primos

4 5 6 8 9 10 130,4 (0-00) x0,8 (-000) x8,9 (100-) x x8,10 (10-0) x x9,13 (1-01) x x4,5,6,7 (01--) x x x5,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

Page 25: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 25

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.

Page 26: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 26

La tabla de implicantes primos resulta:0 4 5 11 13 15

a’c’d’ 1 1a’bc’ 1 1bc’d 1 1abd 1 1acd 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

Page 27: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 27

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.

Page 28: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 28

Ejemplo: Reducción de tabla de implicantes primos II La tabla de implicantes primos:

m1 m2 m3ipa 1 1ipb 1 1ipc 1 1ipd 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 coberturaSi 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

Page 29: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 29

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 1ip2 1 1

ip3 1 1

ip4 1 1

No hay ninguna fila o columna que cubra a otra

Page 30: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 30

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 1ip2 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

Page 31: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 31

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

0000x 0-00 * 1--1 *

-000 *

0100x

1000x 010- *

100- *

0011x

0101x -011 *

1001x -101 *

10-1 x

1011x 1-01 x

1101x

1-11 x

1111x 11-1 x

Page 32: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 32

Actividad: Tabla de implicantes primos Tabla de implicantes primos

4 5 8 9 11 13 150,4 (0-00) x0,8 (-000) x4,5 (010-) x x8,9 (100-) x x3,11 (-011) x5,13 (-101) x x9,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 función: f = a’bc’ + ab’c’ + ad

Page 33: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 33

Aplicación Computacional

La minimización de funciones booleanas basada en mapas de Karnaugh se torna impracticable a medida que el número de variables aumenta; no es recomendable usar esta metodología para más de cuatro variables.

El algoritmo de Quine-McCluskey es de complejidad no polinomial, ya que el costo de resolver la cobertura mínima de la tabla de implicantes es de costo exponencial.

Page 34: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 34

Aplicación Computacional

espresso: Programa de minimización de funciones

booleanas fue desarrollado por la Universidad de Berkeley, y puesto a disposición de otras universidades en 1984. Hoy es una aplicación de software abierto.

Abc: Es un programa interactivo para la síntesis y

optimización de circuitos combinacionales, secuenciales sincrónicos.

Page 35: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 35

Aplicación Computacional

espresso Ejemplo de uso, La especificación de la siguiente

función: Z = ∑m(0,3,5,12,13) + d (1, 2,15)# Ejemplo de formato PLA.i 4# número de entradas.o 1# número de salidas.ilb A B C D# nombre de las entradas.ob Z# nombre de la salida# Los mintérminos presentes se especifican con valor 1.# ON-set0000 10011 10101 11100 11101 1# Los mintérminos superfluos se especifican con -. DC-set0001 -0010 -1111 -.e#se termina con end.

Page 36: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 36

Aplicación Computacional

espresso La ejecución del comando: espresso ej1.pla >

ej1.out, produce el siguiente archivo:.i 4

.o 1

.ilb A B C D

.ob Z

.p 3

-101 1

00-- 1

110- 1

.e

El resultado, entrega, en el mismo formato de entrada, los implicantes, productos o cubos queson una cobertura de la función.

Page 37: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 37

Aplicación Computacional

espresso La salida puede generarse en forma simbólica

mediante:espresso -oeqntott -eeat ej1.pla > ej1s.out

La opción –oeqntott genera una salida simbólica. La opción –eeat se come los comentarios, y no los

envía hacia la salida. El comando anterior produce:

Z = (B&!C&D) | (!A&!B) | (A&B&!C);

Page 38: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 38

Aplicación Computacional

Abc Se tiene la siguiente función

Booleana, descrita por sus mintérminos:

f(a, b, c, d) = m(0, 1, 3, 8, 9, 11, 13, 14)

La cual puede describirse por el archivo ej5_5.pla:

# f(a, b, c, d) = Suma de m(0, 1, 3, 8, 9, 11, 13, 14).i 4.o 1.ilb a b c d.ob f.p 80000 10001 10011 11000 11001 11011 11101 11110 1.e

Page 39: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 39

Aplicación Computacional

Abc Dentro de abc, el comando:

read_pla ./ej/ej5_5.pla Ingresa la descripción de la red, asumiendo que el

archivo se encuentra en un subdirectorio,de nombre ej, desde la ubicación desde donde se invoca a abc.

El comando:

print_kmap f

Imprime el mapa de Karnaugh

de la salida f.

Page 40: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 40

Aplicación Computacional

Abc El comando:

sop Convierte las funciones de los nodos, de las

representaciones internas, en suma de productos. El comando:

write_pla ./ej/ej5_5ip.pla

Escribe en el subdirectorio ej,

un archivo con los implicantes

primos, en formato pla.

.i 4

.o 1

.ilb a b c d

.ob f

.p 41110 11-01 1-00- 1-0-1 1.e

Page 41: 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/apuntes-pa… · 6: Simplificación 17 Método de Quine Método

6: Simplificación 41

Aplicación Computacional

Abc El comando:

write_verilog ./ej/ej5_5.verilog Produce un modulo estructural, con las formas

factorizadas de la red lógica.

module unknown ( a, b, c, d, f );

input a, b, c, d;

output f;

assign f = (a & ((~c & d) | (b & c & ~d))) | (~b & (~c | d));

endmodule