45
2: Funciones booleanas 1 ELO211: Sistemas Digitales Tomás Arredondo Vidal Este material está basado en: textos y material de apoyo: Contemporary Logic Design 1 st / 2 nd 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

2 funciones booleanas

Embed Size (px)

DESCRIPTION

Funciones Booleanas

Citation preview

Page 1: 2 funciones booleanas

2: Funciones booleanas 1

ELO211: Sistemas Digitales

Tomás Arredondo Vidal

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

Page 2: 2 funciones booleanas

2: Funciones booleanas 2

2-Funciones y representaciones booleanas

2.1 Lógica y álgebra de Boole2.2 Funciones booleanas2.3 Representaciones de funciones booleanas2.4 Funciones de varias variables

Page 3: 2 funciones booleanas

2: Funciones booleanas 3

Lógica Booleana

❒ Definiciones básicas❍ Una variable booleana (e.g. x, y) es un símbolo que

puede ser substituido por un elemento del conjunto B={0,1}

❍ Una constante booleana es un valor perteneciente al conjunto {0,1}

❍ Una expresión (e.g. x+y, x·y, x’) esta compuesta de variables, constantes y operadores (e.g. +, ·, ’)

❍ Una función booleana de n variables f(x1, x2, ..., xn) es un expresión o formula que mapea f a un valor del conjunto booleano B (0 o 1)

❍ Un literal es una variable o su complemento

Page 4: 2 funciones booleanas

2: Funciones booleanas 4

Álgebra de Boole

❒ Definición: el álgebra de Boole es un sistema algebraico cerrado que contiene:❍ un conjunto de dos elementos {0, 1}, ❍ dos operadores binarios {+, ·}, ❍ un operador unitario { ‘ }.

Page 5: 2 funciones booleanas

2: Funciones booleanas 5

Lógica y álgebra de Boole❒ El álgebra de Boole es la fundación matemática de

los sistemas digitales.❒ Las operaciones del álgebra de Boole deben regirse

por propiedades y reglas lógicas llamados leyes o postulados.

❒ Estos postulados se pueden usar para demostrar leyes mas generales sobre expresiones booleanas.

❒ Estos postulados también se usan para simplificar y optimizar expresiones booleanas y sistemas digitales.❍ Ejemplo: X AND (Y OR Y’) = X (¿porque?)

Page 6: 2 funciones booleanas

2: Funciones booleanas 6

Álgebra de Boole❒Una expresión algebraica de Boole consiste de

❍ un conjunto de B❍ operaciones binarias { + , • }❍ una operaciones unitaria { ’ }

❒B tiene dos elementos : a, b y los siguientes postulados se cumplen:

Clausura: a + b esta en B, a • b esta en B

Conmutatividad: a + b = b + a, a • b = b • a

Asociatividad: a + (b + c) = (a + b) + ca • (b • c) = (a • b) • c

Identidad: a + 0 = a, a • 1 = a

Distributividad: a + (b • c) = (a + b) • (a + c)a • (b + c) = (a • b) + (a • c)

Complementariedad: a + a’ = 1, a • a’ = 0

Page 7: 2 funciones booleanas

2: Funciones booleanas 7

Álgebra de Boole: Resumen❒Álgebra de Boole

❍ B = {0, 1}❍ variables❍ + es el OR lógico, • es el AND lógico❍ ’ es el NOT lógico

❒Todos los postulados (axiomas) algebraicos se cumplen❒La prioridad de los operadores es ‘, seguido por AND y despues OR. ❒El ‘ tiene la mayor prioridad. ❒Los ( ) pueden cambiar el orden de evaluación.

Page 8: 2 funciones booleanas

2: Funciones booleanas 8

Álgebra de Boole: Teoremas

❒Con la formulación de los postulados del álgebra de Boole se pueden demostrar varias proposiciones o teoremas de álgebra booleana❒Para las demostraciones de teoremas se pueden usar:

❍ tablas de verdad, ❍ postulados,❍ y teoremas ya demostrados

Page 9: 2 funciones booleanas

2: Funciones booleanas 9

Álgebra de Boole: Teoremas

❒ Definición: El álgebra de boole es un sistema algebraico cerrado que contiene un conjunto B de dos elementos {0,1} y tres operadores {·, +, ‘}.

❒ igualdad: Dos expresiones son iguales si una puede ser substituida por otra.

❒ identidad:1. X + 0 = X 1D. X • 1 = X

❒ nulo (elementos únicos):2. X + 1 = 1 2D. X • 0 = 0

❒ idempotencia:3. X + X = X 3D. X • X = X

❒ involución:4. (X’)’ = X

❒ complementariedad:5. X + X’ = 1 5D. X • X’ = 0

Page 10: 2 funciones booleanas

2: Funciones booleanas 10

Álgebra de Boole: Teoremas❒ conmutatividad:

6. X + Y = Y + X 6D. X • Y = Y • X❒ asociatividad:

7. (X + Y) + Z = X + (Y + Z) 7D. (X • Y) • Z = X • (Y • Z)❒ distributividad:

8. X • (Y + Z) = (X • Y) + (X • Z) 8D. X + (Y • Z) = (X + Y) • (X + Z)❒ unificación (fusión):

9. X • Y + X • Y’ = X 9D. (X + Y) • (X + Y’) = X❒ absorción:

10. X + X • Y = X 10D. X • (X + Y) = X

11. (X + Y’) • Y = X • Y 11D. (X • Y’) + Y = X + Y❒ factorizar:

12. (X + Y) • (X’ + Z) = 12D. X • Y + X’ • Z = X • Z + X’ • Y (X + Z) • (X’ + Y)

❒ consenso:13. (X • Y) + (Y • Z) + (X’ • Z) = 13D. (X + Y) • (Y + Z) • (X’ + Z) =

X • Y + X’ • Z (X + Y) • (X’ + Z)

Page 11: 2 funciones booleanas

2: Funciones booleanas 11

Álgebra de Boole: Teoremas

❒ de Morgan:

14. (X + Y + ...)’ = X’ • Y’ • ...14D. (X • Y • ...)’ = X’ + Y’ + ...

❒ de Morgan generalizado:

15. f’(X1,X2,...,Xn,0,1,+,•) = f(X1’,X2’,...,Xn’,1,0,•,+)

establece relaciones entre • y +

Page 12: 2 funciones booleanas

2: Funciones booleanas 12

Álgebra de Boole: Teoremas

❒ Ejemplo: de Morgan:

(X + Y)’ = (X’ • Y’)

NOR es equivalente a AND

con inputs complementados

(X • Y)’ = (X’ + Y’)

NAND es equivalente a OR

con inputs complementados

X Y X’ Y’ (X + Y)’ (X’ • Y’)0 0 1 10 1 1 01 0 0 11 1 0 0

X Y X’ Y’ (X • Y)’ (X’ + Y’)0 0 1 10 1 1 01 0 0 11 1 0 0

1000

1110

1000

1110

Page 13: 2 funciones booleanas

2: Funciones booleanas 13

Álgebra de Boole: Teoremas❒ Dualidad

❍ el dual de una expresión booleana se puede obtener remplazando❍ • por +, + por •, 0 por 1, y 1 por 0, y dejando las variables sin

cambio❍ cualquier teorema demostrado también esta demostrado para su

dual!❍ un meta-teorema (teorema sobre teoremas)

❒ Dualidad:16. X + Y + ... ⇔ X • Y • ...

❒ Dualidad generalizado:17. f (X1,X2,...,Xn,0,1,+,•) ⇔ f(X1,X2,...,Xn,1,0,•,+)❍ diferente que ley de De Morgan’s❍ no es una manera para manipular (cambiar) expresiones sino para

generar otros teoremas que también son verdaderos❍ Ej: El dual del teorema X + 0 = X o (X + 0 = X)D es X • 1 = X

Page 14: 2 funciones booleanas

2: Funciones booleanas 14

Álgebra de Boole: Teoremas❒ Actividad:

❍ Demuestre este teorema: X • Y + X • Y’ = X

❍ Demuestre este teorema : X + X • Y = X

igualdad X • Y + X • Y’ = X • Y + X • Y’distributividad (8) = X • (Y + Y’)complementariedad (5) = X • (1)identidad (1D) = X ➼

igualdad X + X • Y = X + X • Yidentidad (1D) = X • 1 + X • Ydistributividad (8) = X • (1 + Y)nulo (2) = X • (1)identidad (1D) = X ➼

Page 15: 2 funciones booleanas

2: Funciones booleanas 15

Actividad: Álgebra de Boole

� Demuestre lo siguiente usando álgebra booleana:(X • Y) + (Y • Z) + (X’ • Z) = X • Y + X’ • Z

igualdad X Y + X’ Z = X Y + X’ Zabsorción (10) = (X Y + X Y Z) + (X’ Z + X’ Z Y)conmutatividad (6) = X Y + X’ Z + X Y Z + X’ Z Yconmutatividad (6D) = X Y + X’ Z + X Y Z + X’ Y Zdistributividad (8) = X Y + X’ Z + (X + X’) Y Zcomplementariedad (5) = X Y + X’ Z + (1) Y Zidentidad (1D) = X Y + X’ Z + Y Zconmutatividad (6) = X Y + Y Z + X’ Z ➼

Page 16: 2 funciones booleanas

2: Funciones booleanas 16

2-Funciones y representaciones booleanas

2.1 Lógica y álgebra de Boole2.2 Funciones booleanas2.3 Representaciones de funciones booleanas2.4 Funciones de varias variables

Page 17: 2 funciones booleanas

2: Funciones booleanas 17

Funciones booleanas❒ Espacios y funciones booleanas

❍ Si se define un espacio booleano como B={0,1}❍ Usando el producto cartesiano se puede definir B2

= {0,1} x {0,1} = {(00), (01), (10), (11)}❍ Para X = (X1, X2) podemos definir una función

booleana f de dos variables según: f(X): B2 →B, cada punto de B2 se mapea a B

❍ Para n variables booleanas con X = (X1, X2, ... Xn) se puede definir una función booleana f de n variablessegún:f(X): Bn→B, cada punto de Bn se mapea a B

❍ La función booleana puede tomar valores de 1 o 0 dependiendo de los valores de sus variables

Page 18: 2 funciones booleanas

2: Funciones booleanas 18

Funciones booleanas❒ Espacios y funciones booleanas

❍ El conjunto uno (on set) de f, puede definirse como los puntos X de Bn que se mapean a 1.

f1 : {X | f(X) = 1}❍ El conjunto zero (off set) de f puede definirse

como los puntos X de Bn que se mapean a 0.f0 : {X | f(X) = 0}

❍ Si el conjunto f1 = Bn se dice que f es una tautología.

❍ Si el conjunto f0 = Bn se dice que f0 es vacío y no es satisfacible.

Page 19: 2 funciones booleanas

2: Funciones booleanas 19

Funciones booleanas: tautologíaDe: http://es.wikipedia.org/wiki/tautología

❒ En lógica, una tautología es una formula preposicional que es verdad bajo cualquier evaluación de sus variables.

❒ En lingüística, una tautología es una redundanciadebida a una calificación superflua o de lógica circular (e.g. "innovación novedosa", "mundo mundial“, "Le voy a entregar un obsequio gratis“, "El 100% de nuestros clientes compran nuestros productos“).

❒ Las matemáticas pueden ser consideradas como la ciencia de hacer tautologías particularmente elaboradas de una forma rigurosa. Un teorema es un ejemplo de tautología útil.

Page 20: 2 funciones booleanas

2: Funciones booleanas 20

Funciones booleanas❒ Espacios y funciones booleanas

❍ Una función f es satisfacible cuando existe un elemento en el conjunto de f que es uno.

❍ Dos funciones son equivalentes si para todo X є Bn

se tiene que:f(X) = g(X)

Page 21: 2 funciones booleanas

2: Funciones booleanas 21

2-Funciones y representaciones booleanas

2.1 Lógica y álgebra de Boole2.2 Funciones booleanas2.3 Representaciones de funciones booleanas2.4 Funciones de varias variables

Page 22: 2 funciones booleanas

2: Funciones booleanas 22

Representaciones❒ Las funciones booleanas se pueden describir

de variadas formas incluyendo:❍ álgebra booleana❍ tablas de verdad,❍ diagramas de compuertas,❍ diagramas temporales,❍ diagramas de Venn, ❍ mapas de Karnaugh, ❍ N-cubos,❍ lenguajes de descripción de hardware (HDL:

Hardware description languages) como Verilog o VHDL

Por v

erse!

Page 23: 2 funciones booleanas

2: Funciones booleanas 23

Representaciones: álgebra booleana❒ Las funciones booleanas se pueden describir con una

expresión de álgebra booleana.Ejemplo: f(X, Y, Z) = XY + X’Z + XZ’

❒ La función puede evaluarse para las diferentes combinaciones de valores que tomen las variables.

❒ Existen infinitas representaciones equivalentes de una función a través de expresiones.

❒ El problema de síntesis lógica consiste en encontrar la mejor expresión para representar una función.

Page 24: 2 funciones booleanas

2: Funciones booleanas 24

Representaciones: tabla de verdad❒ Las funciones booleanas también se pueden

representar como una tabla de verdad.❒ La tabla de verdad despliega todas las

combinaciones de valores de las variables y el valor asociado de la función.

Page 25: 2 funciones booleanas

2: Funciones booleanas 25

Representaciones❒ Ejemplos: tablas de verdad

X Y X • Y0 0 00 1 01 0 01 1 1

X Y X’ Y’ X • Y X’ • Y’ ( X • Y ) + ( X’ • Y’ )0 0 1 1 0 1 10 1 1 0 0 0 01 0 0 1 0 0 01 1 0 0 1 0 1

( X • Y ) + ( X’ • Y’ ) ≡≡≡≡ X = Y

X Y X’ X’ • Y0 0 1 00 1 1 11 0 0 01 1 0 0

Expresión booleana que es verdadera cuando X e Y son iguales y falso de otraforma

Page 26: 2 funciones booleanas

2: Funciones booleanas 26

Representaciones

• Las funciones booleanas también se pueden representar por diagramas compuestos de símbolos de compuertas.

• Existen múltiples diagramas que pueden representar la misma función.

• La ventaja de esta representación es que esta asociada a la implementación en un medio visual.

• Los circuitos combinacionales contienen solo compuertas.

• Los circuitos secuenciales contienen flip-flops y compuertas.

Page 27: 2 funciones booleanas

2: Funciones booleanas 27

X Y Z0 0 00 1 01 0 01 1 1

X Y0 11 0

X Y Z0 0 00 1 11 0 11 1 1

X Y

X

X

Y

Y

Z

Z

Diagramas de compuertas

❒ NOT: X’, X, ~X

❒ AND: X•Y, XY, X∧Y

❒ OR: X+Y, X∨Y

Page 28: 2 funciones booleanas

2: Funciones booleanas 28

X

YZ

X Y Z0 0 10 1 11 0 11 1 0

X Y Z0 0 10 1 01 0 01 1 0

ZX

Y

X

YZ

X Y Z0 0 10 1 01 0 01 1 1

X Y Z0 0 00 1 11 0 11 1 0

ZX

Y

Diagramas de compuertas

❒ NAND

❒ NOR

❒ XORX ⊕ Y

❒ XNORX = Y

Page 29: 2 funciones booleanas

2: Funciones booleanas 29

T1

T2

A

B

CD T2

T1

Z A

B

CD

Z

Diagramas de compuertas❒ Existe mas de una forma de mapear

expresiones a compuertas

❍ e.g., Z = A’ • B’ • (C + D) = (A’ • (B’ • (C + D)))

❍ Como sería usando compuertas?

Page 30: 2 funciones booleanas

2: Funciones booleanas 30

Representaciones: diagrama temporal❒ Un diagrama temporal es una representación de las

formas de las ondas de entradas y salidas de los circuitos.

❒ Los bordes no se alinean exactamente (toma tiempo para que una compuerta cambie de output)

Page 31: 2 funciones booleanas

2: Funciones booleanas 31

Representaciones: diagrama temporal❒ Las señales de ondas se pueden apreciar usando

varias herramientas como: un simulador, usando un analizador lógico o un osciloscopio

❒ Retardos de propagación en compuertas pueden causar que las señales de entrada de otras compuertas en cascada tengan carreras

❒ Estas carreras pueden causar errores o perturbaciones (glitches)

❒ Los tiempos de propagación son acumulativos para compuertas en cascada

Page 32: 2 funciones booleanas

2: Funciones booleanas 32

Representaciones: diagrama temporal❒ Ejemplo: y = x + x’

Como seria la perturbación?

X

X’

Y

X

X’

Y

t

perturbación

Carrera en señales de entrada

Page 33: 2 funciones booleanas

2: Funciones booleanas 33

Representaciones: diagramas de Venn❒ Los diagramas de Venn provienen de la rama de las

matemáticas conocida como teoría de conjuntos. ❒ Estos diagramas son usados para mostrar gráficamente

la relación entre diferentes conjuntos❒ Son equivalentes a las tablas de verdad al mostrar todas

las relaciones lógicas entre los conjuntos de interés❒ Ejemplos:

A B

A · BA + B

(A + B)’ (A + B)’

Page 34: 2 funciones booleanas

2: Funciones booleanas 34

2-Funciones y representaciones booleanas

2.1 Lógica y álgebra de Boole2.2 Funciones booleanas2.3 Representaciones de funciones booleanas2.4 Funciones de varias variables

Page 35: 2 funciones booleanas

2: Funciones booleanas 35

Funciones de n variables❒ Si hay n variables la tabla de verdad tendrá 2n filas.

Cada fila tiene como resultado un 0 o un 1.❒ El numero de posibles funciones (que resultan en 0 o

1) crece rápidamente, en termino de n es: 22ⁿ

❒ n = 0 indica una función con 0 variables.

X1

X2F

Xn

Page 36: 2 funciones booleanas

2: Funciones booleanas 36

X Y f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f150 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 10 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 11 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 11 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Funciones de n variables❒ Ejemplo: para n=2 se tienen 22ⁿ = 16 funciones

❒ Como son las funciones equivalentes a la tabla?❒ f0=0, f1=XY, f2=XY’, f3=X, f4=X’Y, ..., f14=X’Y’ + X’Y + XY’= A’ +

B’ = (AB)’, f15=1

XY

F

0

XYX Y

X + Y

Y’ X’ 1X xor Y

X nor Y=(X + Y)’

X = Y X nand Y=(XY)’

Page 37: 2 funciones booleanas

2: Funciones booleanas 37

Conjuntos funcionalmente completos❒ Cualquier expresión booleana puede ser

escrita mediante los operadores AND, OR y NOT

❒ Estos conjuntos constituyen un conjunto funcionalmente completo

Page 38: 2 funciones booleanas

2: Funciones booleanas 38

Conjuntos funcionalmente completos❒ La función NAND también es funcionalmente

completa ya que puede implementar AND, OR y NOT:❍ NAND(A,B) = AB❍ NAND(A,A) = A❍ NAND(A, B) = A+B

Page 39: 2 funciones booleanas

2: Funciones booleanas 39

Conjuntos funcionalmente completos❒ La función NOR también es funcionalmente

completa ya que puede implementar AND, OR y NOT:❍ NOR(A, B) = A + B❍ NOR(A,A) = A❍ NOR(A, B) = AB

❒ Todas estas funciones se pueden generalizar a funciones de n variables

Page 40: 2 funciones booleanas

2: Funciones booleanas 40

Actividad: ❒ Determine la función de álgebra booleana

para un sumador de un bit❒ Inputs: A, B, Carry-in❒ Outputs: Sum, Carry-out

A

B

CinCout

S

A A A A A

B B B B B

S S S S S

CinCout

Page 41: 2 funciones booleanas

2: Funciones booleanas 41

Actividad: ❒ Determine la tabla de verdad y la función de álgebra

booleana para un sumador de un bit❒ Inputs: A, B, Carry-in❒ Outputs: Sum, Carry-out

❒ Como minimizar usando álgebra booleana?

A

B

CinCout

S

A A A A A

B B B B B

S S S S S

CinCout

A B Cin Cout S0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1

01101001

00010111

Cout = A’ B Cin + A B’ Cin + A B Cin’ + A B Cin

S = A’ B’ Cin + A’ B Cin’ + A B’ Cin’ + A B Cin

Page 42: 2 funciones booleanas

2: Funciones booleanas 42

Minimizar❒ Usando teoremas para minimizar el sumador

❒ Cuales son los criterios de interés al minimizar?

Cout = A’ B Cin + A B’ Cin + A B Cin’ + A B Cin= A’ B Cin + A B’ Cin + A B Cin’ + A B Cin + A B Cin= A’ B Cin + A B Cin + A B’ Cin + A B Cin’ + A B Cin= (A’ + A) B Cin + A B’ Cin + A B Cin’ + A B Cin= (1) B Cin + A B’ Cin + A B Cin’ + A B Cin= B Cin + A B’ Cin + A B Cin’ + A B Cin + A B Cin= B Cin + A B’ Cin + A B Cin + A B Cin’ + A B Cin= B Cin + A (B’ + B) Cin + A B Cin’ + A B Cin= B Cin + A (1) Cin + A B Cin’ + A B Cin= B Cin + A Cin + A B (Cin’ + Cin)= B Cin + A Cin + A B (1)= B Cin + A Cin + A B sumar terminos para

factorizar

Page 43: 2 funciones booleanas

2: Funciones booleanas 43

Minimizar❒ Algunos criterios de interés al minimizar son:

❍ Criterios de reducción• Minimizar compuertas• Minimizar numero de entradas a las compuertas. Esto

corresponde a minimizar el numero de literales y reduce el numero de transistores en cada compuerta (reduce el costo)

• Disminuir el numero de niveles, esto aumenta la velocidad de respuesta del circuito implementando la función

❒ Siempre van a existir compromisos entre velocidad y tamaño. Se suele denominar compromiso tiempo-espacio.

❒ Diferentes implementaciones de la misma función tienen diferentes comportamientos:

❍ retardos son diferentes❍ perturbaciones (glitches) pueden ocurrir❍ otras variaciones por diferencias en el numero de compuertas y

estructura

Page 44: 2 funciones booleanas

2: Funciones booleanas 44

A B C Z0 0 0 00 0 1 10 1 0 00 1 1 11 0 0 01 0 1 11 1 0 11 1 1 0

Hay que elegir entre diferentes realizaciones de una función

realización de dos niveles

compuerta XOR (fácil de dibujar pero mas costosa)

implementación multinivelcompuertas con menos inputs

Page 45: 2 funciones booleanas

2: Funciones booleanas 45

Hay que elegir entre diferentes realizaciones de una función

❒ Las tres implementaciones anteriores son funcionalmente equivalentes pero tienen diferencias en su comportamiento