Você está na página 1de 45

ELO211: Sistemas Digitales Toms Arredondo Vidal

Este material est basado en:


textos y material de apoyo:

Borriello and Randy Katz. Prentice Hall, 1994, 2005 material del curso ELO211 del Prof. Leopoldo Silva material en el sitio http://es.wikipedia.org

Contemporary Logic Design 1st / 2nd edition. Gaetano

2: Funciones booleanas

2-Funciones y representaciones booleanas


2.1 Lgica y lgebra de Boole 2.2 Funciones booleanas 2.3 Representaciones de funciones booleanas 2.4 Funciones de varias variables

2: Funciones booleanas

Lgica Booleana
Definiciones bsicas r Una variable booleana (e.g. x, y) es un smbolo que puede ser substituido por un elemento del conjunto B={0,1} r Una constante booleana es un valor perteneciente al conjunto {0,1} r Una expresin (e.g. x+y, xy, x) esta compuesta de variables, constantes y operadores (e.g. +, , ) r Una funcin booleana de n variables f(x1, x2, ..., xn) es un expresin o formula que mapea f a un valor del conjunto booleano B (0 o 1) r Un literal es una variable o su complemento
2: Funciones booleanas 3

lgebra de Boole
Definicin: el lgebra de Boole es un un conjunto de dos elementos {0, 1}, r dos operadores binarios {+, }, r un operador unitario { }.
r

sistema algebraico cerrado que contiene:

2: Funciones booleanas

Lgica y lgebra de Boole


El lgebra de Boole es la fundacin matemtica de

los sistemas digitales. Las operaciones del lgebra de Boole deben regirse por propiedades y reglas lgicas llamados leyes o postulados. Estos postulados se pueden usar para demostrar leyes mas generales sobre expresiones booleanas. Estos postulados tambin se usan para simplificar y optimizar expresiones booleanas y sistemas digitales. r Ejemplo: X AND (Y OR Y) = X (porque?)

2: Funciones booleanas

lgebra de Boole
Una expresin algebraica de Boole consiste de
r r r

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

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

Clausura: Conmutatividad: Asociatividad:

a + b esta en B, a b esta en B a + b = b + a, ab=ba

a + (b + c) = (a + b) + c a (b c) = (a b) c a + 0 = a, a1=a

Identidad: Distributividad:

a + (b c) = (a + b) (a + c) a (b + c) = (a b) + (a c) a + a = 1, a a = 0
2: Funciones booleanas 6

Complementariedad:

lgebra de Boole: Resumen


lgebra de Boole

B = {0, 1} r variables r + es el OR lgico, es el AND lgico r es el NOT lgico 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 evaluacin.
r
2: Funciones booleanas 7

lgebra de Boole: Teoremas


Con la formulacin 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, r postulados, r y teoremas ya demostrados
r

2: Funciones booleanas

lgebra de Boole: Teoremas


Definicin: 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
nulo (elementos nicos):

1D. X 1 = X 2D. X 0 = 0 3D. X X = X

2. X + 1 = 1
idempotencia:

3. X + X = X
involucin:

4. (X) = X
complementariedad:

5. X + X = 1

5D. X X = 0
2: Funciones booleanas 9

lgebra de Boole: Teoremas


conmutatividad: 6. X + Y = Y + X asociatividad: 7. (X + Y) + Z = X + (Y + Z) distributividad: 8. X (Y + Z) = (X Y) + (X Z) unificacin (fusin): 9. X Y + X Y = X absorcin: 10. X + X Y = X

6D. X Y = Y X 7D. (X Y) Z = X (Y Z) 8D. X + (Y Z) = (X + Y) (X + Z) 9D. (X + Y) (X + Y) = X 10D. X (X + Y) = X 11D. (X Y) + Y = X + Y 12D. X Y + X Z = (X + Z) (X + Y) 13D. (X + Y) (Y + Z) (X + Z) = (X + Y) (X + Z)


2: Funciones booleanas 10

11. (X + Y) Y = X Y factorizar: 12. (X + Y) (X + Z) = X Z + X Y consenso: 13. (X Y) + (Y Z) + (X Z) = X Y + X Z

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 +

2: Funciones booleanas

11

lgebra de Boole: Teoremas


Ejemplo: de Morgan:
X 0 0 1 1 Y 0 1 0 1 Y 0 1 0 1 X 1 1 0 0 X 1 1 0 0 Y 1 0 1 0 Y 1 0 1 0 (X + Y) 1 0 0 0 (X Y) 1 1 1 0 (X Y) 1 0 0 0 (X + Y) 1 1 1 0

(X + Y) = (X Y) NOR es equivalente a AND con inputs complementados

X 0 (X Y) = (X + Y) 0 NAND es equivalente a OR 1 con inputs complementados 1

2: Funciones booleanas

12

lgebra de Boole: Teoremas


Dualidad r el dual de una expresin booleana se puede obtener remplazando r por +, + por , 0 por 1, y 1 por 0, y dejando las variables sin cambio r cualquier teorema demostrado tambin esta demostrado para su dual! r 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,,+) r diferente que ley de De Morgans r no es una manera para manipular (cambiar) expresiones sino para generar otros teoremas que tambin son verdaderos r Ej: El dual del teorema X + 0 = X o (X + 0 = X)D es X 1 = X
2: Funciones booleanas

13

lgebra de Boole: Teoremas


Actividad:
r

Demuestre este teorema: X Y + X Y igualdad distributividad (8) complementariedad (5) identidad (1D) X Y + X Y

= X = = = = X X X X Y + X Y (Y + Y) (1)

Demuestre este teorema : igualdad identidad (1D) distributividad (8) nulo (2) identidad (1D)

X+XY X + XY

= X = = = = = X X X X X + XY 1 + XY (1 + Y) (1)

2: Funciones booleanas

14

Actividad: lgebra de Boole


Demuestre lo siguiente usando lgebra booleana: (X Y) + (Y Z) + (X Z) = X Y + X Z
igualdad absorcin (10) conmutatividad (6) conmutatividad (6D) distributividad (8) complementariedad (5) identidad (1D) conmutatividad (6) X Y + X Z = = = = = = = = X Y + X Z (X Y + X Y Z) + (X Z + X Z Y) X Y + X Z + X Y Z + X Z Y X Y + X Z + X Y Z + X Y Z X Y + X Z + (X + X) Y Z X Y + X Z + (1) Y Z X Y + X Z + Y Z X Y + Y Z + X Z

2: Funciones booleanas

15

2-Funciones y representaciones booleanas


2.1 Lgica y lgebra de Boole 2.2 Funciones booleanas 2.3 Representaciones de funciones booleanas 2.4 Funciones de varias variables

2: Funciones booleanas

16

Funciones booleanas
Espacios y funciones booleanas

Si se define un espacio booleano como B={0,1} r Usando el producto cartesiano se puede definir B2 = {0,1} x {0,1} = {(00), (01), (10), (11)} r Para X = (X1, X2) podemos definir una funcin booleana f de dos variables segn: f(X): B2 B, cada punto de B2 se mapea a B r Para n variables booleanas con X = (X1, X2, ... Xn) se puede definir una funcin booleana f de n variables segn: f(X): Bn B, cada punto de Bn se mapea a B r La funcin booleana puede tomar valores de 1 o 0 dependiendo de los valores de sus variables
r
2: Funciones booleanas 17

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} r 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} r Si el conjunto f1 = Bn se dice que f es una tautologa. r Si el conjunto f0 = Bn se dice que f0 es vaco y no es satisfacible.
r
2: Funciones booleanas 18

Funciones booleanas: tautologa


De: http://es.wikipedia.org/wiki/tautologa
En lgica, una tautologa es una formula preposicional

que es verdad bajo cualquier evaluacin de sus variables.

En lingstica, una tautologa es una redundancia

debida a una calificacin superflua o de lgica circular (e.g. "innovacin novedosa", "mundo mundial, "Le voy a entregar un obsequio gratis, "El 100% de nuestros clientes compran nuestros productos). ciencia de hacer tautologas particularmente elaboradas de una forma rigurosa. Un teorema es un ejemplo de tautologa til.
2: Funciones booleanas 19

Las matemticas pueden ser consideradas como la

Funciones booleanas
Espacios y funciones booleanas

Una funcin f es satisfacible cuando existe un elemento en el conjunto de f que es uno. r Dos funciones son equivalentes si para todo X Bn se tiene que: f(X) = g(X)
r

2: Funciones booleanas

20

2-Funciones y representaciones booleanas


2.1 Lgica y lgebra de Boole 2.2 Funciones booleanas 2.3 Representaciones de funciones booleanas 2.4 Funciones de varias variables

2: Funciones booleanas

21

Representaciones
Las funciones booleanas se pueden describir

de variadas formas incluyendo:


r

lgebra booleana r tablas de verdad, r diagramas de compuertas, r diagramas temporales, r diagramas de Venn, r mapas de Karnaugh, r N-cubos, r lenguajes de descripcin de hardware (HDL: Hardware description languages) como Verilog o VHDL
2: Funciones booleanas

22

Por verse!

Representaciones: lgebra booleana


Las funciones booleanas se pueden describir con una

expresin de lgebra booleana. Ejemplo: f(X, Y, Z) = XY + XZ + XZ La funcin puede evaluarse para las diferentes combinaciones de valores que tomen las variables. Existen infinitas representaciones equivalentes de una funcin a travs de expresiones. El problema de sntesis lgica consiste en encontrar la mejor expresin para representar una funcin.

2: Funciones booleanas

23

Representaciones: tabla de verdad


Las funciones booleanas tambin 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 funcin.

2: Funciones booleanas

24

Representaciones
Ejemplos: tablas de verdad

X 0 0 1 1

Y 0 1 0 1

XY 0 0 0 1

X 0 0 1 1

Y 0 1 0 1

X 1 1 0 0

X Y 0 1 0 0

X 0 0 1 1

Y 0 1 0 1

X 1 1 0 0

Y 1 0 1 0

XY 0 0 0 1

X Y 1 0 0 0

( X Y ) + ( X Y ) 1 0 ( X Y ) + ( X Y ) 0 1

X=Y

Expresin booleana que es verdadera cuando X e Y son iguales y falso de otra forma 2: Funciones booleanas 25

Representaciones
Las funciones booleanas tambin se pueden representar por diagramas compuestos de smbolos de compuertas. Existen mltiples diagramas que pueden representar la misma funcin. La ventaja de esta representacin es que esta asociada a la implementacin en un medio visual. Los circuitos combinacionales contienen solo compuertas. Los circuitos secuenciales contienen flip-flops y compuertas.
2: Funciones booleanas 26

Diagramas de compuertas
NOT : X, X, ~X
X Y X 0 1 Y 1 0

AND: XY, XY, XY

X Y

X 0 0 1 1 X 0 0 1 1

Y 0 1 0 1 Y 0 1 0 1

Z 0 0 0 1 Z 0 1 1 1

OR: X+Y, XY

X Y

2: Funciones booleanas

27

Diagramas de compuertas
NAND
X Y Z X 0 0 1 1 X 0 0 1 1 X 0 0 1 1 X 0 0 1 1 Y 0 1 0 1 Y 0 1 0 1 Y 0 1 0 1 Y 0 1 0 1 Z 1 1 1 0 Z 1 0 0 0 Z 0 1 1 0 Z 1 0 0 1

NOR

X Y

XOR

XY

X Y

XNOR

X Y

X=Y

2: Funciones booleanas

28

Diagramas de compuertas
Existe mas de una forma de mapear

expresiones a compuertas
r

e.g., Z = A B (C + D) = (A (B (C + D)))
T2 T1

r
A B C D

Como sera usando compuertas?


Z T1 T2 A B C D Z

2: Funciones booleanas

29

Representaciones: diagrama temporal


Un diagrama temporal es una representacin 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)

2: Funciones booleanas

30

Representaciones: diagrama temporal


Las seales de ondas se pueden apreciar usando

varias herramientas como: un simulador, usando un analizador lgico o un osciloscopio Retardos de propagacin en compuertas pueden causar que las seales de entrada de otras compuertas en cascada tengan carreras Estas carreras pueden causar errores o perturbaciones (glitches) Los tiempos de propagacin son acumulativos para compuertas en cascada

2: Funciones booleanas

31

Representaciones: diagrama temporal


Ejemplo: y = x + x
X X Y Carrera en seales de entrada

Como seria la perturbacin?


X X Y t

perturbacin
2: Funciones booleanas 32

Representaciones: diagramas de Venn


Los diagramas de Venn provienen de la rama de las

matemticas conocida como teora de conjuntos. Estos diagramas son usados para mostrar grficamente la relacin entre diferentes conjuntos Son equivalentes a las tablas de verdad al mostrar todas las relaciones lgicas entre los conjuntos de inters Ejemplos:
A AB B A+B

(A + B)

(A + B)
2: Funciones booleanas 33

2-Funciones y representaciones booleanas


2.1 Lgica y lgebra de Boole 2.2 Funciones booleanas 2.3 Representaciones de funciones booleanas 2.4 Funciones de varias variables

2: Funciones booleanas

34

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 rpidamente, en termino de n es: 22 n = 0 indica una funcin con 0 variables.
X1 X2 Xn F

2: Funciones booleanas

35

Funciones de n variables
Ejemplo: para n=2 se tienen 22 = 16 funciones
X Y X 0 0 1 1 Y 0 1 0 1
0 XY

F f5 0 1 0 1 f6 0 1 1 0 f7 0 1 1 1 f8 1 0 0 0 f9 1 0 0 1 f10 1 0 1 0
X=Y

f0 0 0 0 0

f1 0 0 0 1

f2 0 0 1 0
X

f3 0 0 1 1
Y

f4 0 1 0 0

f11 1 0 1 1
Y

f12 1 1 0 0

f13 1 1 0 1

f14 1 1 1 0

f15 1 1 1 1

X xor Y

1 X X nand Y=(XY)

X + Y X nor Y=(X + Y)

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

B = (AB), f15=1

2: Funciones booleanas

36

Conjuntos funcionalmente completos


Cualquier expresin booleana puede ser

escrita mediante los operadores AND, OR y NOT Estos conjuntos constituyen un conjunto funcionalmente completo

2: Funciones booleanas

37

Conjuntos funcionalmente completos


La funcin NAND tambin es funcionalmente

completa ya que puede implementar AND, OR y NOT:


NAND(A,B) = AB r NAND(A,A) = A r NAND(A, B) = A+B
r

2: Funciones booleanas

38

Conjuntos funcionalmente completos


La funcin NOR tambin es funcionalmente

completa ya que puede implementar AND, OR y NOT:


NOR(A, B) = A + B r NOR(A,A) = A r NOR(A, B) = AB
r

Todas estas funciones se pueden generalizar

a funciones de n variables

2: Funciones booleanas

39

Actividad:
Determine la funcin de lgebra booleana

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

Cout Cin A B S A B S A B S A B S A B S

A B Cin

S Cout

2: Funciones booleanas

40

Actividad:

A B Cin

S Cout

Determine la tabla de verdad y la funcin de lgebra

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

Cout Cin A B S A B S A B S A B S A B S

A 0 0 0 0 1 1 1 1

B 0 0 1 1 0 0 1 1

Cin Cout S 0 0 0 1 0 1 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 1 1 1

S = A B Cin + A B Cin + A B Cin + A B Cin Cout = A B Cin + A B Cin + A B Cin + A B Cin

Como minimizar usando lgebra booleana?


2: Funciones booleanas 41

Minimizar
Usando teoremas para minimizar el sumador

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) sumar terminos para B Cin + A Cin + A B factorizar

Cuales son los criterios de inters al minimizar?


2: Funciones booleanas 42

Minimizar
Algunos criterios de inters al minimizar son:
r

Criterios de reduccin 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 funcin

Siempre van a existir compromisos entre velocidad y tamao. Se

suele denominar compromiso tiempo-espacio.


Diferentes implementaciones de la misma funcin tienen diferentes

comportamientos:
r r r

retardos son diferentes perturbaciones (glitches) pueden ocurrir otras variaciones por diferencias en el numero de compuertas y 2: Funciones booleanas estructura
43

Hay que elegir entre diferentes realizaciones de una funcin


A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 Z 0 1 0 1 0 1 1 0

realizacin de dos niveles

implementacin multinivel compuertas con menos inputs

compuerta XOR (fcil de dibujar pero mas costosa)


2: Funciones booleanas 44

Hay que elegir entre diferentes realizaciones de una funcin


Las tres implementaciones anteriores son funcionalmente

equivalentes pero tienen diferencias en su comportamiento

2: Funciones booleanas

45

Você também pode gostar