ALGEBRA DE BOOLE Ingeniería de Ejecución en Sistemas Computacionales SISTEMAS DIGITALES

Download Report

Transcript ALGEBRA DE BOOLE Ingeniería de Ejecución en Sistemas Computacionales SISTEMAS DIGITALES

Ingeniería de Ejecución en Sistemas Computacionales
ALGEBRA DE BOOLE
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES
1
Ingeniería de Ejecución en Sistemas Computacionales
Introducción
• El álgebra booleana define constantes y funciones
para describir sistemas binarios. Luego describe
cierto número de teoremas que se pueden usar
para manipular expresiones lógicas.
• CONSTANTES BOOLEANAS: consisten en "0" y
"1". El primero representa el estado falso y el
segundo el estado verdadero.
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES
2
Ingeniería de Ejecución en Sistemas Computacionales
• VARIABLES BOOLEANAS: Son magnitudes que
pueden tomar diferentes valores en diferentes
momentos. Pueden representar señales de entrada,
de salida o intermedias y reciben nombres que de
ordinario consisten en caracteres alfabéticos como
"A", "B", "X" o "Y". Las variables sólo pueden
tomar los valores "0" ó "1".
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES
3
Ingeniería de Ejecución en Sistemas Computacionales
• FUNCIONES BOOLEANAS: Cada una de las
funciones
lógicas
elementales
está
representada dentro del álgebra booleana
mediante un símbolo único, como se muestra
en la siguiente tabla:
Función Símbolo
Ejemplo
AND
Punto  C  A  B  AB
Autor: J.LL.A / F.A.R
OR
Más
(+)
C  AB
NOT
Barra

CA
SISTEMAS DIGITALES
4
Ingeniería de Ejecución en Sistemas Computacionales
Postulados Básicos
Los postulados básicos utilizados en el álgebra
booleana son los siguientes:
x 1 si x  0
Postulado 1:
Postulado 2:
Autor: J.LL.A / F.A.R
x 0 si x  1
00  0
11  1
SISTEMAS DIGITALES
5
Ingeniería de Ejecución en Sistemas Computacionales
Postulado 3:
Postulado 4:
11  1
00  0
1 0  0 1  0
0 1  1 0  1
0 1
Postulado 5:
Autor: J.LL.A / F.A.R
1 0
SISTEMAS DIGITALES
6
Ingeniería de Ejecución en Sistemas Computacionales
A
B
A B
AB
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES
7
Ingeniería de Ejecución en Sistemas Computacionales
Teoremas Booleanos
• El álgebra booleana define varios teoremas que
se pueden usar para cambiar la forma de una
expresión.
• Estos teoremas son los siguientes:
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES
8
Ingeniería de Ejecución en Sistemas Computacionales
Teorema 1:
Teorema 2:
0 x  0
1 x  1
Si x  0  0  0  0 Dual:
Si x  0  1  0  1
Si x  1  0  1  0
Si x  1  1  1  1
0 x  0
1 x  x
Si x  0  1  0  0
Dual:
Si x  1  1  1  1
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES
Si x  0  0  0  0
Si x  1  0  1  1
9
Ingeniería de Ejecución en Sistemas Computacionales
Teorema 3:
Teorema 4:
Teorema 5:
Autor: J.LL.A / F.A.R
xx  x
xx  x
Si x  0  0  0  0 Dual:
Si x  0  0  0  0
Si x  1  1  1  1
Si x  1  1  1  1
x x  0
Si x  0  0  1  0 Dual:
Si x  1  1  0  0
x y  y x
Dual:
SISTEMAS DIGITALES
xx  x
Si x  0  0  1  1
Si x  1  1  0  1
x y  yx
10
Ingeniería de Ejecución en Sistemas Computacionales
Teorema 6:
Dual:
x  y  z   y  x z  x  y  z 
x  y  z   y  x z  x  y  z 
x  y  z  x   y  z  x  y  z
Teorema 7:
x  y  ......  z  x  y  ....z
Dual:
x  y  ...  z  x  y  ......  z
Teorema 8:
Autor: J.LL.A / F.A.R
f ( x, y,.....z, , )  x, y,....., z, , 
SISTEMAS DIGITALES
11
Ingeniería de Ejecución en Sistemas Computacionales
Teoremas Simplificatorios
Teorema 9:
xy  xz  x( y  z )
Dual:
 x  y  x  z   x  yz
Teorema 10:
xy  xy  x
Dual:
 x  y x  y  x
Teorema 11:
x  xy  x  y
Dual:
x x  y  xy
Teorema 12:
x  xy  x
Dual:
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES


12
Ingeniería de Ejecución en Sistemas Computacionales
Teorema 13:
Dual:
xy  xz  yz  xy  xz
 x  y x  z y  z   x  y x  z
Ejemplo: Simplificar la siguiente expresión
f  ABC  CE  BCD  D E
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES
13
Ingeniería de Ejecución en Sistemas Computacionales
Desarrollo
f  ( A  B  C )(C  E )( B  C  D)( D  E )
f  ( B  C  AD)(CD  CE  ED  EE )
f  ( BC D  BCE  B ED)  (C CD  C CE  CED)  ( ADC D  ADCEEEAD
 ED
0 )
f  B ED  CD  CE
f  (C  D)(C  E )( B  E  D)
f  (C  E D)( B  E  D)
f  CB  CE  C D  E DB  EED  E D D
f  EC  E D  C D  BC
f  EC  E D  BC
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES
14
Ingeniería de Ejecución en Sistemas Computacionales
Formas Especiales de Expresiones
Booleanas
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES
15
Ingeniería de Ejecución en Sistemas Computacionales
Formas Canónicas
• SUMA EXPANDIDA DE PRODUCTOS: En este caso
para aplicar la expansión se aplica el teorema 10
xy  xy  x
Cada uno de los términos en forma canónica expresado en
suma (OR de AND) se llama Mintérmino y se puede expresar
en forma simplificada. Si en este caso a la variable natural se
le asigna el valor lógico uno y la variable complementada el
valor lógico cero.
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES
16
Ingeniería de Ejecución en Sistemas Computacionales
Ejemplo:
f  AC  A D
AC  ACD  AC D
AD  ADC  ADC
f  ACD 
ACD
 ACD  ACD  ACD
míntér min o
f  ACD  AC D  AC D  ADC
f  111  110  010  000
7
6
2
0
f  min(0,2,6,7)
f ( A, C, D)   (0,2,6,7)
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES
17
Ingeniería de Ejecución en Sistemas Computacionales
Formas Canónicas
• PRODUCTO EXPANDIDO DE SUMAS: Esta forma
de expresar una función booleana se basa en el
dual del teorema 10
 x  y x  y  x
Cada uno de los términos en forma canónica expresado en
producto (AND de OR) se llama Máxtermino y se puede
expresar en forma simplificada. Si en este caso a la variable
natural se le asigna el valor lógico cero y la variable
complementada el valor lógico uno.
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES
18
Ingeniería de Ejecución en Sistemas Computacionales
Ejemplo:
f  ( A  B)( A  C )  f ( A, B, C )
A  B  ( A  B  C )( A  B  C )
A  C  ( A  B  C )( A  B  C )
f  (A  B  C) (A  B  C)(A  B  C)
max tér min o
f  ( A  B  C )( A  B  C )( A  B  C )
f  (000) (001) (011)
0
1
3
f ( A, B, C )  máx( 0, 1, 3)
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES
19
Ingeniería de Ejecución en Sistemas Computacionales
Formas Mínimas
1.
Mínima Suma Productos
2.
Mínima Productos de Sumas
•
En este caso interesa que la función booleana sea lo más
pequeña posible, es decir que si está expresada en la
forma OR de AND el número de sumandos y el tamaño
de cada sumando debe ser mínimo.
•
Si la función está expresada en la forma AND de OR
entonces el tamaño y el número de factores debe ser
mínimo.
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES
20
Ingeniería de Ejecución en Sistemas Computacionales
Métodos de Simplificación de
Expresiones Booleanas
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES
21
Ingeniería de Ejecución en Sistemas Computacionales
Formas Canónicas
• MÉTODO ALGEBRAICO:Corresponde
a los
casos analizados anteriormente.
• MAPAS
Los mapas o
diagramas de Karnaugh representan una técnica
gráfica para simplificar las ecuaciones de
Boole. Es uno de los métodos más usuales para
ecuaciones de hasta 4 ó 5 variables y se basa en
el teorema 10:
DE
KARNAUGH:
xy  x y  x
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES
22
Ingeniería de Ejecución en Sistemas Computacionales
Introducción Mapa de Karnaugh
• Los Mapas de Karnaugh, como se dijo
anteriormente, se utilizan
para simplificar
funciones booleanas. El número de casilleros que
tendrá el mapa dependerá de la cantidad de
variables que tenga la función.
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES
23
Ingeniería de Ejecución en Sistemas Computacionales
f  A B
Ejemplo:
n
Nº de variables: 2
n
Nº Variables
2
2
Nº Casilleros: 2 =2 =4
Variables Binarias
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES
24
Ingeniería de Ejecución en Sistemas Computacionales
A
B
0
1
0
1
• Dentro de cada casillero del mapa se debe poner un uno (1)
o un cero(0) lógico dependiendo si la función está
expresada como OR de AND o AND de OR.
• Para el caso de los mintérminos corresponde un “1” en el
casillero, por el contrario, para cada maxtérmino
corresponde un “0” al casillero
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES
25
Ingeniería de Ejecución en Sistemas Computacionales
Mapa para 3 Variables
B
C
C
B
00
A
01
11
10
A
0
1
Código Gray
0 0
0
0 1
1
1 1
1 0
Código Gray
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES
26
Ingeniería de Ejecución en Sistemas Computacionales
Mapa para 4 Variables
D
C
B
A
00 01 11 10
00
01
11
10
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES
27
Ingeniería de Ejecución en Sistemas Computacionales
Representación de Variables en Mapa de Karnaugh
D
C
B
A
00
01
11
10
Autor: J.LL.A / F.A.R
00 01 11 10
0 4 12 8
1
5
13
9
3
7
15 11
2
6
14 10
SISTEMAS DIGITALES
28
Ingeniería de Ejecución en Sistemas Computacionales
• Hay que hacer notar que antes de realizar la
representación de las variables de una función en
el Mapa de Karnaugh se debe definir las variables
más significativas (MSB) y la menos significativa
(LSB)
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES
29
Ingeniería de Ejecución en Sistemas Computacionales
Ejemplo: Representar en mapa de Karnaugh
f  min 0,3,5,6,7,9,12
D
C
B
A
00
01
11
10
Autor: J.LL.A / F.A.R
f ( A, B, C , D) 
00
1
01
0
11
1
10
0
0
1
0
1
1
1
0
0
0
1
0
0
SISTEMAS DIGITALES
D  MSB
A  LSD
30
Ingeniería de Ejecución en Sistemas Computacionales
• Existen algunos casos en que el valor lógico que
se debe asignar a los casilleros del mapa no está
definido y nosotros podemos asignar el valor
lógico “1” ó “0” según la conveniencia para la
simplificación. Estás condiciones reciben el
nombre de “Superfluas” o “No Importa” y se
designan con los simbolos f o x
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES
31
Ingeniería de Ejecución en Sistemas Computacionales
Ejemplo: Representar en Mapa la siguiente función
f  min 0,2,3  f 4,6
B
Autor: J.LL.A / F.A.R
C  MSB
f ( A, B, C ) 
A  LSD
C
A
0
1
0 0
1
X
0 1
0
0
1 1
1
0
1 0
1
X
SISTEMAS DIGITALES
32
Ingeniería de Ejecución en Sistemas Computacionales
Definición e Interpretación Mapas de
Karnaugh
• Un diagrama de Karnaugh
representa una ecuación
de Boole de una forma
bastante similar a una
tabla de verdad.
• Ejemplo 1:
Autor: J.LL.A / F.A.R
A
0
0
0
0
1
1
1
1
SISTEMAS DIGITALES
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
Z
0
0
0
1
0
1
0
0
33
Ingeniería de Ejecución en Sistemas Computacionales
AC
0 1
B
00 0 0
01 0 1
10 0 0
11 0 1
Z 1  ABC  ABC
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES
34
Ingeniería de Ejecución en Sistemas Computacionales
• Del ejemplo anterior se deduce que para una
función booleana de 3 variables se necesita un mapa
de 8 casilleros. En cada casillero se representa un
"1" lógico para cada mintérmino y un "0" lógico
para cada máxtermino.
• Debe notarse que la asignación de las variables en
los casilleros tanto en el sentido vertical como
horizontal corresponden al código Gray.
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES
35
Ingeniería de Ejecución en Sistemas Computacionales
Método de Simplificación
• Para simplificar una expresión booleana mediante
el Mapa de Karnaugh se deben agrupar los
casilleros que contienen 1 adyacente y en un
número tal que sea potencia de 2 como agrupación
de mintérminos, de lo que resulta un factor
simplificado.
• Es posible representar esquemáticamente la
cantidad de variables eliminadas producto de la
agrupación:
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES
36
Ingeniería de Ejecución en Sistemas Computacionales
• 20 variables eliminadas = 0
• 21 variables eliminadas = 1
• 22 variables eliminadas = 2
• 23 variables eliminadas = 3
• 24 variables eliminadas = 4
• 25 variables eliminadas = 5
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES
37
Ingeniería de Ejecución en Sistemas Computacionales
•
Criterios de Agrupación:
1. La agrupación debe ser lo más grande posible
2.
Se debe tener el mínimo de agrupaciones
3.
Se agrupan los adyacentes en un número que sea potencia
de 2
•
Criterios de Adyacencia:
1.
Casilleros con un lado común
2.
Reflexión de acuerdo al Código Gray
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES
38
Ingeniería de Ejecución en Sistemas Computacionales
Simplificar el mapa:
A
C
B
0
1
Autor: J.LL.A / F.A.R
00
01
11
10
1
1
1
1
0
1
1
1
SISTEMAS DIGITALES
39
Ingeniería de Ejecución en Sistemas Computacionales
Solución 1:
C
B
00
A
01
11
10
0
1
1
1
1
0
1
1
1
1
f 0
f0  C  B  A
f 1 = A + CB + CB + CB
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES
40
Ingeniería de Ejecución en Sistemas Computacionales
Solución 2:
C
B
00
A
01
11
10
0
1
1
1
1
0
1
1
1
1
f 0
f0  C  B  A
f1 = A + B + C
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES
41
Ingeniería de Ejecución en Sistemas Computacionales
• El ejemplo anterior demuestra que al no hacer
agrupaciones lo más grande posible se obtiene una
función correcta pero que no es la forma mínima
Autor: J.LL.A / F.A.R
SISTEMAS DIGITALES
42