Álgebra de Boole

boole

En matemáticas discretas vimos todo sobre proposiciones, conjunciones, disyunciones, etc., ahora tenemos algo (muy)  parecido .

En esta algebra usamos solamente 2 números el 1 y 0 (en proposiciones es verdadero y falso), y utilizamos una serie de propiedades para dada una expresión a realizar se pueda reducir a una expresión más pequeña.

Hablemos de negaciones.

Una negación es pasar al estado contrario. Así que si tenemos una x=0 y la negamos x’=1.
Y si por el contrario tenemos una y=1 y la negamos y’=0.

16776105_1316408165082524_1668276667_o

La ley de doble complemento

Es sobre que pasa si negamos una variable dos veces, resulta que se elimina la negación. Tiene sentido no? Si tenemos una x=0 y la negamos una vez x’=1 y la negamos una segunda vez (x’)’=0. Nos ahorraremos un par de pasos. ( O incluso puedes usarla para una reducción).

Las leyes de De Morgan

(Si esta bien escrito)

Son las que son menos intuitivas pero siguiendo la formula todo saldrá bien. Digamos que tienes a dos variables sumándose (Operación Or) y niegas la operación completa, el resultado es la multiplicación de las negaciones (Operación And).
Si por el contrario tenemos la negación de la multiplicación de dos variables (And) el resultado será la suma de las negaciones de las variables.

En resumen:  Si tienes una multiplicación negada separa la negación y súmalas. Si tienes una suma negada separa la negación y multiplícalas.

Conmutatividad

Significa que es sumas y multiplicaciones no importa el orden de los factores (Cada uno con su respectiva negación si es el caso).

Asociatividad.

Nos dice que podemos juntar términos en sumas y multiplicaciones (Con sus negaciones en su caso) de la manera más conveniente. Ósea puedes moverlos de la manera que mas te guste como w(xy)z=(xy)(wz).

Distributiva.

Esta habla sobre que pasa ti combinamos una multiplicación con una suma de variables. Como veras arriba se realiza como en el algebra común. Multiplicas por cada termino de la suma y listo. La otra es sobre que pasa si tienes una suma con una multiplicación. Esta se coloca como la multiplicación de la suma de la variable que multiplica por una de la suma y la que multiplica por la otra variable de la suma.

Idempotencia.

Resulta que si multiplicas o sumas una variable consigo misma el resultado es la variable (Ojo si tiene negación alguna la otra también la tiene que tener).

Neutros.

Si a cualquier variable le sumas 0 el resultado es la variable. Si a una variable la multiplicas por 1 el resultado es la variable.

Dominación

Esta tampoco es intuitiva, cualquier cosa que le sumes 1 es 1 y cualquier cosa que multipliques por 0 es 0. ( Aquí 1+1=1   c:     )

boolean.jpg

Inversos

Esta es si a una variable le sumas su inverso el resultado es uno, si le multiplicas su inverso es 0.

Absorción

Nuestra ultima ley habla de que si tenemos una variable y la sumamos con una multiplicación que contiene a la variable (con sus respectivas negaciones) o si la multiplicamos con una suma que contiene la variable, el resultado es la variable  (Con esto podemos minimizar expresiones).

Funciones

Con esta algebra podemos tener funciones las cuales podemos representar con:

Tablas de verdad

Tenemos una representación de funciones que dependen de las variables (A,B,C,D) Y es un conteo del 0 al 15 en binario. Si la función esta definida para todas las combinaciones se llama completa, si no, es incompleta

16910782_1325395694183771_303828262_o

Podemos colocar la cantidad de  variables que necesitemos. Si se colocan más o menos cambia el número de estados.

Otra manera de representación son:

Minitérminos y maxitérminos.

Minitérmino

Es cuando la función esta expresado como el producto de las variables (y/o sus negaciones). Esta función siempre da 0 excepto en una. Ejemplos:

F(x,y)=xy’

F(x,y,z)=x’ y’ |z

F(a,b)=a,b

Maxitérmino.

Es cuando la función esta expresada con la suma de las variables (y/o sus negaciones). Esta función siempre da 1 excepto en una. Ejemplos:

F(x,y)=x+y’

F(x,y,z)=x’+y’+z

F(x,y)=x+y

Suma de Minitérminos

Como dice arriba es la suma de los productos de todas las variables. Podemos representarlo así:

F(x,y,z)=x’yz + xy’z – xyz

O como 16936060_1326507410739266_922449803_odonde a, b y c son las posiciones en que la función nos da 1.

Producto de Maxitérminos

Como seguramente ya adivinaste luce así:

F(x,y,z)=(x’+y’+z)(x+y+z)(x’+y’+z’)

O como16935528_1326520507404623_1419201289_o donde a, b y c son las posiciones donde la función nos da 0.

Simplificación de funciones

A todo el mundo le gustan las cosas simplificadas, como decir 9/27 da mas flojera que un bonito 1/3. Aquí las cosas se pueden poner feas. Como esto:

arquitectura-computadores-guia-uno_image020

Pero mira esa ultima línea … eso se llama esperanza. Resulta que las leyes que están arriba si sirven de algo.

Así que haremos una paso por paso. Será divertido.

Ejemplo:

Resulta que existe un código llamado El Código de Gray es muy parecido al binario solo que tiene de característica, es de cambio mínimo, esto quiere decir que solo cambia un bit por estado.  Además es un código sin valor, las posiciones de los bits en los grupos de código no tienen valor especifico. Comúnmente se ocupa en convertidores analógico a digital.

Realizaremos los cálculos para realizar un convertidor de binario a gray.

Tenemos la siguiente tabla de verdad, de el lado de las entradas tenemos el conteo en binario y del lado de las salidas el conteo en código gray.

En la parte de arriba esta el PDF original con la simplificación.  c:

Tablabinariogray

Primero pasemos la tabla a función canónica:
Como vemos para la primera función los unos se colocan en los últimos 8 números.

Así que se coloca como la suma de Minitérminos.
Recuerda que se deben colocar todas las variables en cada termino para que sean Minitérminos.0

AimplP1

Simplificacion parte2

Para la segunda ecuación

Simplificacion2

Para la tercera ecuación

Simplificacion3

Y finalmente para la cuarta ecuación

simplificacion4

Y tenemos las ecuaciones

finales

Y traduciendo a circuito bebe:     c:

CtoBool

Terminamos c:

Toma un gatito ~*u*~

giphy

Compuertas TTL

Bienvenido a compuertas. Es la parte básica de los circuitos combinatorios.

Una compuerta es un conjunto de transistores encapsulados en un circuito integrado. Y un microprocesador es un conjunto de compuertas en un chip, así que es muy importante.

Y como vimos en Álgebra Booleana tenemos operaciones las cuales físicamente son compuertas en circuitos integrados.

Estos circuitos funcionan dependiendo al voltaje que le proporcionemos.

Nivel Lógico

Nota: Por favor, por favor, por favor no le coloques más de 5 v.

Las compuertas básicas son las siguientes:

BUFFER o YES

La compuerta más básica, esta simplemente toma el valor que le coloques  y lo deja pasar. Esto sirve para ajustar y aislar niveles lógicos ya que no se pueden conectar infinita cantidad de compuertas a una misma señal, ya que el voltaje del nivel 1 empieza a decaer y el sistema falla.

Buffer

NOT

Niega el valor de la entrada.También tiene la utilidad de ajustar niveles pero tomando en cuenta que niega la señal.

NOTTransistorNot

OR

Realiza la función de la suma lógica. Cuando se le aplica un uno a cualquiera de sus entradas el resultado de salida será uno, independiente del valor de la otra entrada. Excepto cuando las dos entradas estén en 0 la salida será 0.

ORTransistorOr

AND

Realiza la función de multiplicación lógica. Es decir toma los valores que le aplicamos a sus entradas y los multiplica.

ANDTransistor AND

NAND

La compuerta NAND también hace la función de multiplicación, pero entrega el valor negado. Esto es muy útil, dado que si estuviéramos usando una AND normal tendremos que usar otro chip con un NOT para negar el resultado.

NAND

NOR

La compuerta XOR realiza la función de suma, pero entrega el resultado invertido, ahorrandonos un NOT. Su salida será 1 solo si las dos entradas son 0.

NOR

XOR

Esta compuerta XOR (or-exclusiva) se comporta de una manera especial. Saldrá 1 si ambas entradas son diferentes.

XOR

XNOR

Esta compuerta XNOR o Nor exclusiva, también se comporta de una manera especial. Saldrá 1 si ambas entradas son iguales.

XNOR

Compuertas Universales

Bajo la premisa de que todas las compuertas pueden estar hechas de una XOR o una NAND veamos como serían:

Con NOR:

Universales 4

Universales5

Con NAND:

Universales1

Universales2

Universal3

 

 

 

 

 

Binario,Octal y Hexadecimal

Cuando hablamos de contar normalmente usamos un sistema numérico, pero, que pasa si en lugar de contar en decenas contamos en pares o de 8 en 8.

Eso Timmy es un sistema numérico de una base n.

Estamos en un curso de Electrónica digital, así que la que se usa aquí es base 2. Osea un 0 y 1 como símbolos para usar.

Y si, en un sistema base n puede representar cualquier número.

Conversiones

¿Y cómo lo conviertes?

Hay varias maneras.

Por Tablas

Para conversión de base 2 a base 10 usamos esta tabla

Base 2

Entonces para usarla solo colocamos nuestro número en binario.

Ejemplo: Convertir el siguiente número a base 10: 11101

 base 2 29

Y sumamos sus respectivos valores:

entonces será 1+0+4+8+16= 29 base 10.

Esta es una de las maneras de convertir. Y si queremos convertir de base 10 a base 2 solamente le vamos restando a nuestro número.

Usa primero el número más grande que encuentres tal que sea menor o igual a tu número a convertir. Se lo restas y vuelves a buscar.

Después todos los demás que queden vacíos coloca un cero.

Por Divisiones.

Otra manera es tomar nuestro número e irlo dividiendo entre la base.

con el 29 a base 2.

Dividimos 29/2=14 con residuo 1

Usamos el resultado y lo volvemos a dividir.

Dividimos 14/2=7 con residuo 0

Dividimos 7/2=3 con residuo 1

Dividimos 3/2=1 con residuo 1

Entonces el resultado es la concatenación de los residuos.

29 en binario es 1011.

Octal y Hexadecimal

Ya que son unos ninjas en binario, vamos a aprender cómo convertir entre diferentes sistemas numéricos. Nos vamos a enfocar en el sistema Octal y en el Hexadecimal.

C-1

¡Vamos con todos los ánimos!

Primero vamos a definir algo, ¿qué demonios son los sistemas numéricos?

Bueno, los números pueden representarse en diversos sistemas. La base de éstos es el número de símbolos distintos utilizados para la representación de cantidades, por ejemplo, el que usamos comúnmente es el decimal, un sistema donde usamos los números del 0 al 9.

Así es, amigos, el sistema decimal no es el único que existe. Existen muchos, muchos más.

Como lo expresé antes, en esta lección vamos a hablar de dos sistemas: el octal y el hexadecimal.

El sistema octal (sistema de base 8), es un sistema numérico que utiliza los dígitos del 0 al 7 (¿Te das cuenta que sólo usa 8 números? ¡Exacto! Por eso tiene ese nombre).

El sistema hexadecimal (sistema de base 16), es un sistema numérico que utiliza los dígitos del 0 al 9 y las letras A, B, C, D, E y F.

Ya vimos en qué consisten estos dos sistemas. Ahora, ¿cómo podemos hacer una conversión de nuestro sistema (decimal) a estos dos y viceversa? Bueno, aquí estoy para ayudarte a saberlo.

C-2

Conversión Entre Diferentes Sistemas

La conversión entre sistemas numéricos es como traducir de un idioma a otro. Para esto podemos utilizar 3 herramientas, pues usar la que más te acomode o se te facilite:

  1. Directa: Aquí las conversiones se hacen usando los valores posicionales de los números (la posición de los dígitos).
  2. Por tablas: Se realiza mediante el uso de tablas establecidas con las que se lleva a cabo la magia de la conversión.
  3. Con una calculadora o una computadora (con el bello internet).

Conversión de decimal a octal.

A ver, chava o chavo. Vas a ver que esto es muy fácil de hacer. Muchos profes o amigos tuyos te lo harán ver como algo imposible, pero yo que soy barrio te voy a echar una mano.

La conversión de decimal a octal se realiza dividiendo sucesivamente el número decimal entre 9, hasta que el cociente sea 0. El número octal se forma con los residuos resultantes.

El dígito más significativo (MSD) es el último residuo y el dígito menos significativo (LSD) es el primero.

C-3

¿No quedó claro? ¡Calma!

Vamos a hacer un ejemplo. Quiero convertir el número 38910 (ese 10 pequeño significa que el número 389 está en sistema decimal) a sistema octal.

Veamos.

octal1

Primero, vamos a dividir 389 entre 8. Como el residuo de la división es 5 (debería de ser 0) vamos a volver a dividir. Ahora vamos a dividir el número 48 entre 8.

Octal2

Después de volverlo a dividir, notamos que el residuo ahora nos da 0 ¿Qué procede entonces?

El primer número que se va a poner va a ser el cociente de la última división, en este caso es el 6. Después, siguen los residuos, del último obtenido, al primero; en este caso el último residuo que obtuvimos fue 0 y el primero fue el 5.

 

Por lo tanto, nuestro número en sistema octal es el 605.

c-4

Veamos un ejemplo más. Quiero convertir 74310 a octal.

octal3

Como podrás ver, el residuo no da 0 todavía. Entonces procedemos a hacer una división más.

octal4

Todavía no es cero. Haremos las divisiones necesarias hasta que el residuo nos dé 0.

octal5

¿Te das cuenta que esto no puede continuar? No podemos dividir 1 entre 8 para que nos de residuo de 0 ¿Qué procede en este caso?

Pues aquí haremos lo mismo que en el ejercicio pasado. Vamos a tomar el cociente de la última división, en este caso es el 1, y finalmente vamos a acomodar los residuos desde el último obtenido, hasta el primero, en este caso será el número 3, 4 y finalmente el número 7

Por lo tanto, nuestro resultado será 1347.

C-5 

Ya quedó mejor, ¿no? Eres un máster convirtiendo de decimal a octal.

Conversión de Octal a Decimal

Ahora, vamos a ver cómo hacer el método contrario. Verás que es mucho más fácil. Yo sé que estas conversiones pueden ser algo tediosas para ti, pero con el tiempo y práctica esto se te hará pan comido.

La conversión se va a realizar con la siguiente, hermosa y bella fórmula:

N = an bn + an-1 bn-1             0 <= ai < b

Chécate este ejemplo.

Quiero convertir el número 3178 a sistema decimal.

Pues esto se hace tan sencillo como usar nuestra bella fórmula:

3(82) + 1(81) + 7 (80) = 192 + 8 + 7 = 20710

¿Viste qué fácil y rápido fue?

Si quieres, hagamos otro ejemplo. Quiero ahora convertir 11328 a decimal.

Usemos la fórmula, de nuevo:

            1(83) + 1(82) + 3(81) + 2(80) = 512 + 64 + 24 + 2 = 602.

c-6

¿Ves como si se hace cada vez más fácil?

Conversión de decimal a hexadecimal.

Ya que vimos todo el choro mareador con el método anterior. Te vas a dar cuenta que es casi lo mismo y, por lo tanto, más fácil. A todos nos encanta lo fácil.

Debido a que el sistema hexadecimal sobrepasa en elementos al sistema decimal, es necesario auxiliarse de los siguientes símbolos con su valor correspondiente.

 

A – 10                B – 11             C – 12             D – 13             E – 14             F – 15

Vamos a ver que el método de conversión es el mismo.

 

Ejemplo. Vamos a convertir 2710 a hexadecimal.

octal6

¿Qué diferencia notas aquí en cuanto a la conversión de decimal a octal? ¡Exacto! Aquí se divide el número a convertir entre 16. Porque recordemos que el sistema hexadecimal es un sistema de base 16. Otra diferencia es que el residuo, en este caso el 11, lo vamos a sustituir con su valor correspondiente en el sistema, la letra B.

octal7

Nos pasó lo mismo que en el ejemplo anterior, el número 16 no puede dividir al número 1. Entonces hemos terminado.

Por lo tanto, el resultado de la conversión es 01B, pero, como el 0 no se anota, el resultado es 1B.

¡Pan comido!

 

Conversión de hexadecimal a decimal.

Estamos ante la última parte de esta lección. Y la más fácil va a ser. Porque, ¡vamos a aplicar el mismo formulazo!

N = an bn + an-1 bn-1            0 <= ai < b

Terminemos esto con un ejemplo. Convertir AF1216 a decimal.

Primero, recordemos que F = 15

Entonces:

10(163) + 15(162) + 1(161) + 2(160) = 40960 + 3840 + 16 + 2 = 4481810

 

Chicas, chicos, puedo decir que terminamos una lección más con éxito. Vayan a relajar un poco los ojos, ya vieron que esto es muy fácil.

C-7