introducción al algebra de boole

63
Introducción al Algebra de Boole Principios de Lógica Digital Universidad Tecnológica Nacional Facultad Regional Buenos Aires Departamento Sistemas Arquitectura de Computadores 2011 Elvira Quiroga

Upload: braian-estrada

Post on 24-Jul-2015

203 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Introducción al Algebra de Boole

Introducción al Algebra de BoolePrincipios de Lógica Digital

Universidad Tecnológica NacionalFacultad Regional Buenos Aires

Departamento SistemasArquitectura de Computadores

2011Elvira Quiroga

Page 2: Introducción al Algebra de Boole

Esta presentación es de carácter conceptual y tiene la finalidad de acompañar el desarrollo del tema en el aula.

NO sustituye la bibliografía indicada por la Cátedra.

Page 3: Introducción al Algebra de Boole

Introducción

• En esta Unidad se analizan los principios básicos de la lógica digital que se aplican al diseño de una computadora digital.

• En 1884 George Boole publicó su trabajo sobre un Álgebra para representar la Lógica. Boole estaba interesado en capturar la matemática del pensamiento y desarrolló una representación para las declaraciones como "la puerta está abierta" o "la puerta está no abierta".

• El Álgebra de Boole, en su forma actual fue desarrollada por Shannon.

Page 4: Introducción al Algebra de Boole

Algebra de Boole

• En el Algebra de Boole las variables son binarias y sólo pueden tomar dos valores que son complementarios entre si.

• Estos valores se designan como:• 1 SI / ALTO / VERDADERO /

ON• 0 NO / BAJO/ FALSO / OFF

Recordar que en este símbolo si la porción clara representa un estado o valor A, la porción oscura

representa el estado complementario, “No A”.

Page 5: Introducción al Algebra de Boole

Operadores Fundamentales

• El algebra de Boole reconoce dos operadores fundamentales: – SUMA LOGICA (+; OR):– PRODUCTO LOGICO (; AND).

• Algunos autores también consideran al COMPLEMENTO (NO) entre las operaciones fundamentales.

• Estos operadores y cualquier función booleana quedan definidos mediante sus Tablas de Verdad.

Page 6: Introducción al Algebra de Boole

Esquema Conceptual

Operación Fundamental

Tabla de Verdad

Compuerta Lógica

Operación Especial

definida mediante

realizada por AND

OR

NOT

«es una»

realizada por

definida mediante NAND

NOR

Patrones Repetitivos

Cuestiones Técnicas

XOR

Compuerta Especial

determinada porrequieren

Page 7: Introducción al Algebra de Boole

Compuertas Lógicas

• Los dispositivos físicos que implementan una función booleana simple –es decir un operador booleano, se denominan compuertas lógicas o simplemente compuertas.

• En lenguaje técnico también se las denomina «gates»

Page 8: Introducción al Algebra de Boole

• Realiza la Suma Lógica• La función lógica OR

es Falsa sólo cuando todas las variables de entrada están en “0”

A   B     F

0   0     00   1     11   0     11   1     1

Compuertas Lógicas: OR

Se lee A “o” B (OR)

B

F = A +  B

Page 9: Introducción al Algebra de Boole

• Realiza el Producto Lógico

• La función lógica AND es verdadera sólo cuando todas las variables de entrada están en “1”

A   B     F

0   0     00   1     01   0     01   1     1

Compuertas Lógicas: AND

Se lee A “y” B (AND)

B

F = A  B

Page 10: Introducción al Algebra de Boole

• Realiza la Complementaicón

• Este operador “invierte” el valor lógico de la entrada.

A        F

0        11        0

Compuertas Lógicas: NOT

Se lee “no A” (NOT)

A  F = A

El círculo indica “negación”

Page 11: Introducción al Algebra de Boole

• Esta función lógica especial, OR-Exclusiva es verdadera sólo cuando es IMPAR la cantidad de variables de entrada que están en “1”

A   B     F

0   0     00   1     11   0     11   1     0

Compuertas Lógicas: OR-EX

B

F = A +  B

Se lee A “exclusive-or” B (OR-EX)

Page 12: Introducción al Algebra de Boole

• La función lógica NOR es Verdadera sólo cuando todas las variables de entrada están en “0”

A   B     F

0   0     10   1     01   0     01   1     0

Compuertas Negadas: NOR

Se lee A o B “negado” (NOR)

B

F = A +  B

Page 13: Introducción al Algebra de Boole

• La función lógica NAND es Falsa sólo cuando todas las variables de entrada están en “1”

A   B     F

0   0     10   1     11   0     11   1     0

Compuertas Negadas: NAND

Se lee A y B “negado”(NAND)

B

F = A  B

Page 14: Introducción al Algebra de Boole

Propiedades del Algebra de Boole

• El Algebra de Boole tiene un conjunto de propiedades que se definen en el siguiente conjunto de reglas:

• Postulados– Conmutativa– Distributiva– Regla de Identidad– Regla del Complemento

• Teoremas– Asociativa– Idempotencia– Teorema de De Morgan– Regla de Involución– Reglas del cero y del uno

Nos proporcionan los formalismos que “soportan”

las manipulaciones de las funciones destinadas a optimizarlas –reducir la

cantidad de componentes y de conectores

Page 15: Introducción al Algebra de Boole

Funciones booleanas

• Un conjunto de variables booleanas vinculadas entre sí mediante los operadores de suma lógica, producto lógico y complementación constituye una función booleana. – La Tabla de Verdad es una de las formas de expresar

una función booleana.– También se usan expresiones literales (polinómica y

factorial) y expresiones simbólicas.– La forma canónica de un función booleana es una

expresión cuyos términos contienen la totalidad de las variables del problema.

Page 16: Introducción al Algebra de Boole

Funciones Booleanas: Ejemplo

• El sistema de seguridad contra incendios de un depósito funciona en base a tres sensores S0, S1 y S2. Cuando dos de estos sensores están activados (en “1”) se enciende una alarma luminosa [AL]. Además, si S2 se activa, también se enciende la alarma sonora [AS].

Page 17: Introducción al Algebra de Boole

Ejemplo: Tabla de Verdad

s2 s1 s0 AL AS

0 0 0 0 0

0 0 1 0 0

0 1 0 0 0

0 1 1 1 0

1 0 0 0 1

1 0 1 1 1

1 1 0 1 1

1 1 1 1 1

SistemaContra-Incendios

s2 s1 s0

AL AS

Page 18: Introducción al Algebra de Boole

Ejemplo: Formas Literales

• Expresión Literal Completa –Suma de Productos

• Expresión Literal en Minitérminos

AL = S2.S1.S0 + S2.S1.S0 + S2.S1.S0 + S2.S1.S0

AS = S2.S1.S0 + S2.S1.S0 + S2.S1.S0 + S2.S1.S0

AL = m3 + m5 + m6 + m7

AS = m4 + m5 + m6 + m7 Dado que todos los términos de

esta forma POLINÓMICA contienen todas las variables, esta expresión se denomina

CANÓNICA

Page 19: Introducción al Algebra de Boole

Minitérminos

S2.S1.S0= m7

S2.S1.S0 = m4

S2.S1.S0 = m2

S2.S1.S0 = m1

S2.S1.S0= m3

S2.S1.S0= m5

S2.S1.S0= m6

S2.S1.S0 = m0

La expresión “minitérmino” alude a

que estos términos designan las áreas

mínimas de un diagrama de Euler-

Venn.

Page 20: Introducción al Algebra de Boole

Ejemplo: Minitérminos

# s2 s1 s0 Leído como

0 0 0 0 S2S1S0

1 0 0 1 S2S1S0

2 0 1 0 S2S1S0

3 0 1 1 S2S1S0

4 1 0 0 S2S1S0

5 1 0 1 S2S1S0

6 1 1 0 S2S1S0

7 1 1 1 S2S1S0

Page 21: Introducción al Algebra de Boole

Minitérminos y Mapa de Karnaugh

S2.S1.S0

S2.S1.S0

S2.S1.S0

S2.S1.S0

S2.S1.S0

S2.S1.S0

S2.S1.S0

S2.S1.S0

S2

S2

S1S1

S0S0 S0

m0 m1 m3 m2

m4 m5 m7 m6

Page 22: Introducción al Algebra de Boole

Ejemplo: Mapas de Karnaugh

S2

S2

S1S1

S0S0 S0

m0 m1 m3 m2

m4 m5 m7 m6

1

11 1

AL

S2

S2

S1S1

S0S0 S0

m0 m1 m3 m2

m4 m5 m7 m6

1 11 1

AS

Page 23: Introducción al Algebra de Boole

S0S2 S1

AL

Ejemplo: Circuitos

Page 24: Introducción al Algebra de Boole

S0S2 S1

AS

Ejemplo: Circuitos

Page 25: Introducción al Algebra de Boole

S0S2 S1

Ejemplo: Circuitos Minimización

AL = S2.S1.S0 + S2.S1.S0 + S2.S1.S0 + S2.S1.S0

AL = (S2 + S2).S1.S0 + (S1 + S1).S2.S0 + (S0 + S0).S2.S1

AL

AL = S1.S0 + S2.S0 + S2.S1

Page 26: Introducción al Algebra de Boole

Ejemplo: Circuitos Minimización

AL = S2.S1.S0 + S2.S1.S0 + S2.S1.S0 + S2.S1.S0

AL = S1.S0 + S2.S0 + S2.S1

S2

S2

S1S1

S0S0 S0

m0 m1 m3 m2

m4 m5 m7 m6

1

11 1

AL

Page 27: Introducción al Algebra de Boole

Entender Problema

Especificar Problema

Levantar la función

Diseñar solución (Circuito)

Implementar solución (Componentes estándar)

Page 28: Introducción al Algebra de Boole

Aplicaciones

Page 29: Introducción al Algebra de Boole

Concepto de UAL

• La Unidad Aritmética y Lógica es el componente de la CPU que realiza las operaciones lógicas (AND, OR, XOR, etc.) y aritméticas (en principio suma y resta).

• Podemos pensar entonces en una estructura con dos operadores básicos, uno lógico –UL y uno aritmético –UA, como muestra la figura adjunta

UL

UA

ORDEN OP

OPERANDO A

OPERANDO A

OPERANDO B

ORDEN OP

OPERANDO B

Como se observa en esta figura, los operadores reciben los operandos (datos) y una orden de

operación (para indicar QUE operación deben hacer).

Page 30: Introducción al Algebra de Boole

Operadores Elementales

• Un operador elemental es un artefacto “para un bit” que puede realizar una operación aritmética o lógica– El operador lógico elemental recibirá dos bits “a” y

“b” que pertenecen a los operandos A y B respectivamente y entregará como resultado el valor que resulte de realizar la operación lógica –AND, OR, XOR, NOT, solicitada.

– El operador aritmético elemental recibirá dos bits “a” y “b” pertenecientes a los operandos A y B respectivamente y entregará como resultado el valor que resulte de realizar la operación aritmética –suma o resta, solicitada.

Page 31: Introducción al Algebra de Boole

Operador Lógico Elemental

• Entrada: Los bits “a” y “b” y las señales de control C0 C1;• Mecanismo Interno:

– Realiza simultáneamente todas las operaciones lógicas permitidas.

– Un multiplexor permite seleccionar la operación de interés.– Los bits de control de este MUX son generados por la Unidad de

Control a partir del código de operación.

• Salida: El bit cuyo valor resulta de la operación indicada (AND, OR, XOR, NOT)

Page 32: Introducción al Algebra de Boole

C1 C0 Función

0 0 a b0 1 a + b

1 0 a + b

1 1 b

MUX

ab

C1C0

F

Unidad Lógica Elemental

AND AX, BX

Ordenes de operación Decodificación de una instrucción

ULE

Page 33: Introducción al Algebra de Boole

Ejemplo: Circuito Multiplexor

C0C1

(a.b)

(a+b)

(a + b)

b

F= (a.b) + (a+b) + (a + b) + b

Un MUX tiene 2n entradas de dato y n entradas de control. La salida toma el valor de la entrada de datos

“seleccionada” por las señales de control

Page 34: Introducción al Algebra de Boole

• La conclusión más importante es que aquí vemos cómo se transforma el código de operación dado en la instrucción, en las señales binarias –comandos, a nivel del hardware que está involucrado en el funcionamiento de la máquina.

Unidad Lógica Elemental

Page 35: Introducción al Algebra de Boole

Operador Aritmético Elemental

• Entrada: Los bits “a” y “b” y la señal de control que indica suma o resta [a+b; a-b];

• Mecanismo Interno: – Realiza la operación de suma sin modificar los bits recibidos y

la de resta utilizando el complemento auténtico del sustraendo.– La operación es ejecutada por un sumador elemental – El bit de comando S/R –suma/resta es generado por la Unidad

de Control a partir del código de operación (ADD, SUB).

• Salida: La suma y el acarreo

Page 36: Introducción al Algebra de Boole

Sumador Elemental: Semisumador

• El sumador elemental será capaz de sumar un par de bits “a” y “b”.

• La Tabla de Verdad se deriva a partir de la Tabla de Suma Aritmética.

0 1

a

0

1b

0

101

1

0

00

a b Ssuma

Cacarreo

0 0 0 0

0 1 1 0

1 0 1 0

1 1 0 1

S = a b

C = a b +

Page 37: Introducción al Algebra de Boole

• Para sumar dos cantidades de n bits es necesario disponer de n bloques funcionales como el obtenido.

• Si bien permiten sumar bit a bit, al no tener en cuenta el acarreo no implementan correctamente la suma. Por este motivo este bloque se denomina semisumador o half adder.

ss

ab

S

C

ss

a

b

S

C

Sumador Elemental: Semisumador

Page 38: Introducción al Algebra de Boole

• Para realizar la suma de dos cadenas de bits es necesario tener en cuenta el acarreo que cada “etapa” le pasa a la siguiente. La Tabla de Verdad adjunta tiene en cuenta esta situación.

• Ahora las funciones son

• El bloque funcional que las

implementa se denomina sumador completo o full adder.

a b c-1 S C

0 0 0 0 0

0 0 1 1 0

0 1 0 1 0

0 1 1 0 1

1 0 0 1 0

1 0 1 0 1

1 1 0 0 1

1 1 1 1 1

C = (a b) + (a b) c-1 +

Sumador Elemental: Sumador Completo

++ S = a b c-1

Page 39: Introducción al Algebra de Boole

• Este bloque se denomina sumador completo o full adder.

• Permite sumar bit a bit, y dado que tiene en cuenta el acarreo posibilita la implementación correcta de una suma de n bits. – Justificar la implementación

propuesta para el sumador completo.

Sumador Elemental: Sumador Completo

sc

ab

S

C

c-1

a

b S

C

ss

sc

ssc-1

a + b

a b

Page 40: Introducción al Algebra de Boole

Sumador de 8 bits

c-1= 0

SC6 SC5 SC4 SC3 SC2SC7 SC1 SC0

a7 b7 a6 b6 a5 b5 a4 b4 a3 b3 a2 b2 a1 b1 a0 b0

S1 S0S3 S2S5 S4S7 S6Cc0c6 c5 c4 c3 c2 c1

bits A bits B

bits Sbit C

Page 41: Introducción al Algebra de Boole

La Resta en la UAL

• La resta se implementa utilizando el mismo dispositivo sumador, gracias a la propiedad de la notación posicional de cantidades denominada COMPLEMENTO.

• Para un número N de “p” dígitos expresado en base “b” se definen:

– COMPLEMENTO DIRECTO ( a la base menos uno)

CD(N) = (bp –1) - N

– COMPLEMENTO AUTENTICO ( a la base)

CA(N) = (bp ) - NY de allí

CA(N) = CD(N) + 1• Según se ha visto, la resta puede obtenerse “sumando” al minuendo el

complemento auténtico del sustraendo.• En binario el complemento directo se obtiene invirtiendo todos los bits del

registro. Por lo tanto, es sencillo deducir el esquema del sumador-restador elemental que realice las operaciones (a + b) y (a - b), según se indique.

Page 42: Introducción al Algebra de Boole

Sumador – Restador en Complemento Auténtico

S/R   b     b' 0     0      0 0    1      1 1     0      1 1    1      0

Si S/R es cero (0) el bit “b” se transfiere sin cambios; si es uno (1), el

bit transferido es el complemento directo del recibido

sc

a b

b'

c-1

SC

S/R

Page 43: Introducción al Algebra de Boole

Sumador-Restador de n bits

a0 b0 S/Ra1 b1ai bian-1 bn-1

sc

b'

c-1

S/R0

sc

b'

c0

S/R1

sc

b'

ci-1

S/Ri

sc

b'

cn-1

S/Rn-1C

c1

ci

S/R = 0 SumaS/R = 1 Resta

bits A bits B

bits S/Rbit C

S/R

Page 44: Introducción al Algebra de Boole

Lógica Digital

Page 45: Introducción al Algebra de Boole

Circuitos Combinacionales

• Son dispositivos cuya salida depende exclusivamente de la entrada en un instante dado

• Se implementan mediante compuertas, en forma exclusiva.

Page 46: Introducción al Algebra de Boole

Dispositivos Combinacionales Típicos

• Generador y Verificador de Paridad; • Comparador de magnitud;• Codificadores y Decodificadores• Multiplexores y Demultiplexores;• Bus asociado a un Multiplexor-Demultiplexor; • Circuitos "programables" para multiples funciones;• Memorias sólo de Lectura;• Dispositivos tipo PLD

Page 47: Introducción al Algebra de Boole

Circuitos Secuenciales

• En estos dispositivos el valor de la salida depende de la entrada y del historial, es decir de las entradas y consecuentes salidas previas.

• Se puede decir que un dispositivo secuencial se caracteriza porque a partir de una entrada y un estado (interno) actual, produce una salida y un nuevo estado interno.

• La implementación de estos dispositivos requiere la incorporación de elementos de memoria destinados a retener los estados internos.

Page 48: Introducción al Algebra de Boole

Elementos de Memoria

• Un elemento de memoria es un componente electrónico capaz de almacenar el valor de un bit.

• Vamos a considerar el arreglo de compuertas NOR mostrado en la figura adjunta.

• El funcionamiento del dispositivo queda especificado en la Tablas de Funcionamiento que describen como evolucionan los estados conforme cambian las estradas.

A

B

Y

Y'

Page 49: Introducción al Algebra de Boole

Elementos de Memoria

B = 0

Y = 0

Y'0

1

1

A = 0

A= 0; B= 0; Y=0

Page 50: Introducción al Algebra de Boole

Elementos de Memoria

B = 0

Y = 1

Y'1

0

0

A = 0

A= 0; B= 0; Y=1

Page 51: Introducción al Algebra de Boole

Elementos de Memoria

B = 1

Y = 0

Y'0

0

0

A = 0

A= 0; B= 1; Y=0

Y = 1

1

Page 52: Introducción al Algebra de Boole

Elementos de Memoria

B = 1

Y = 1

Y'1

0

0

A = 0

A= 0; B= 1; Y=1

Page 53: Introducción al Algebra de Boole

Elementos de Memoria

B = 0

Y = 0

Y'0

1

1

A = 1

A= 1; B= 0; Y=0

Page 54: Introducción al Algebra de Boole

Elementos de Memoria

B = 0

Y = 1

Y'1

0

0

A = 1

A= 1; B= 0; Y=1

Y = 0

01

1

Page 55: Introducción al Algebra de Boole

Tablas de Funcionamiento

# A BEstadoActual

(Y)

Próxima Salida(Y+1)

Y'

0 0 0 0 0 1

1 0 0 1 1 0

2 0 1 0 1 0

3 0 1 1 1 0

4 1 0 0 0 1

5 1 0 1 0 1

6 1 1 0 Estados Prohibidos7 1 1 1

# A BEstadoActual

(Y)

Próxima Salida(Y+1)

2 0 1 0 1

3 0 1 1 1

1 0 0 1 1

# A BEstadoActual

(Y)

Próxima Salida(Y+1)

5 1 0 1 0

4 1 0 0 0

0 0 0 0 0

Tabla Nº 1 Tabla Nº 2

Tabla Nº 3

El comportamiento de este artefacto no es determinístico cuando ambas entradas son “1”

Page 56: Introducción al Algebra de Boole

Dispositivos Biestables

• Para comprobar si este circuito se comporta de manera secuencial se toman las instancias de la Tabla Nº 1 en forma encadenada:

• Se puede ver (Tabla Nº 2) que la entrada B hace que la salida tome el valor 1, por lo tanto se la denomina Set;

• Por otra parte (Tabla Nº 3) la entrada A obliga a que la salida tome el valor 0 y se la denomina Reset.

• El arreglo de compuertas obtenido es un biestable, es decir un artefacto que tiene dos estados estables.

• Cuando se alcanza un estado estable la salida se mantiene aunque la entrada que lo ha originado esté inactiva.

• Este circuito biestable o flip-flop recibe el nombre de SetReset o simplemente SR.

Page 57: Introducción al Algebra de Boole

Biestables o flip-flops

«flip flop»

SR

S

R Q

Q

Para impedir que ambas entradas tomen el valor 1 en forma

simultánea se agrega un inversor

«flip flop»

SR

S

R Q

Q

El resultado es un flip flop D, cuya salida repite la entrada.

«flip flop»

D

D

Q

Q

Page 58: Introducción al Algebra de Boole

Diagramas Temporales

• Se puede realizar un diagrama temporal para presentar el comportamiento de la salida de un flip-flop en función de los cambios de sus entradas.

• Para el FF D se obtiene el gráfico de la figura adjunta

t

EntradaInput

t

SalidaOutput

D

Q

Page 59: Introducción al Algebra de Boole

Sincronización

• En un flip-flop D convencional todos los cambios experimentados por la entrada se copian directamente en la salida.

• Por lo tanto se dice que tienen baja inmunidad al ruido.

• Para conseguir un comportamiento menos vulnerable al ruido se implementan dispositivos sincronizables.

• Los FF sincronizables poseen una entrada adicional de control o sincronismo (a veces llamada entrada de reloj).

• La entrada tiene efecto sobre la salida solamente cuando está presente la señal de sincronismo, de lo contrario los cambios quedan bloqueados

t

EntradaInput

SalidaOutput

t

D

Q

Efecto de ruido

Page 60: Introducción al Algebra de Boole

Sincronización

t

EntradaInput

SalidaOutput

t

t

Señal ClockClock Signal

«flip flop»

D

D

Q

Q

clock

La sincronización puede realizarse por nivel (alto-bajo) o por flanco

(ascendente-descendente)

Page 61: Introducción al Algebra de Boole

Otros Biestables

• Biestable R-S sincrónico;• Biestable J-K sincrónico;• Biestable T sincrónico;• Master-Slave

Page 62: Introducción al Algebra de Boole

Registros y Operaciones con Registros

• Registros• Registros contadores• Registro contador progresivo de 8 eventos (una

aplicación con biestables T); Contador regresivo de 8 eventos (con biestables T);

• Registros con facilidad de desplazamiento:– Desplazamientos lógicos;– Desplazamientos circulares;– Desplazamientos aritméticos;– Desplazamientos concatenados.

Page 63: Introducción al Algebra de Boole

FIN