Las funciones digitales y las puertas digitales

funcionesHey! ¿Qué tal? Bueno, hace poco te conté como iba eso de los códigos binarios, hoy vamos a hacer las operaciones pertinentes con tanto uno y cero 😉

Cuando digo operaciones hablo de funciones. Las funciones son sumas, multiplicaciones… ¿Para qué coño sirven los números si no son para sumar y multiplicar? Pero bueno, no es un post sobre cómo multiplicar binarios sino más bien de cómo hacer una tabla de verdad con los valores.

Para empezar hay que definir unas bases (aunque odio estas cosas porque son bastante evidentes:

  • Existe la propiedad conmutativa. Esto quiere decir que da igual sumar a +b que b+a. Son lo mismo. Y lo mismo con una multiplicación: a.b=b.a.
  • También tienen la propiedad distributiva. Esto ya no es tan obvio con este nombre tan rimbombante. La idea es que si multiplico a.(b+c) (El punto es multiplicar por estos lares) el resultado será igual a a.b+a.c.
  • Existen el 1 y el 0 de manera que a+0=0 y a.1=a. Esto es muy obvio 🙁
  • Existe el contrario de a, que es a’ (En realidad llevaría un gorrito encima pero para ser más rápidos utilizo la comilla superior). Lo que implica que a+a’=a y que a.a’=0 ya que si a=1 el contrario será 0 y a la inversa, si a=0, a=1.
  • a+a=a y a.a=a ya que sea a 0 o 1, 1*1=1 y si sumamos 1 y 1 debería dar 2 pero es que en binario más de 1 no existe.

Vamos, que esto es algo que debía decirte y dejar aquí constancia para que los más puristas no me den de gorrazos pero… utilidad no demasiada 😉 Así que vamos al jaleo.

Las funciones digitales

Una parte importante, y liosa, son las leyes de Morgan. Digamos que es liosa porque empiezan a aparecer letras y rayas y no hay quién se aclare. Vamos, como la sopa de fideos y letras de mi abuela. De esta manera las leyes de Morgan dicen que:

(a+b)’=a’ . b’

(a.b)’=a’+b’

Estas leyes nos ayudarán a calcular las funciones que definan los sistemas. Esto quiere decir que conociendo los valores de a y b o los valores que sean nos permitirán calcular cuanto vale la salida de un circuito digital. Un circuito digital está formado por puertas NOR, puertas XOR, puertas AND, NAND y cosas que ya conoces (sino, puedes revisitar este post).

Un ejemplo de función puede ser la función F(a,b)=a+b+(a.b)’. Entonces ahora no hay un valor de a y de b fijo. Sino que tendrías que hacer la tabla de verdad que ya te comenté en algún post anterior. Lo que se hace es darle valor a a y b ordenados en binario. Se empezaría con a=b=0 y el resultado sería 1. Luego a=0 y b=1 y el resultado sería 1.

Estos números que yo me he sacado tan fácilmente de la chistera simplemente salen de sumar y multiplicar (y negar) los valores que tenemos. Pero, ¿Por qué todo esto? ¿Para qué son estas funciones? ¿Qué misión tienen? La verdad es que la función esa me la acabo de inventar. Y cuando estudiaba todo eran fórmulas inventadas sin sentido.

El sentido aparece en la vida real. Cuando quieres ver, por ejemplo, el resultado de 5 salidas y sabes que solo una se pondrá a 1 mientras que las demás estarán a cero. Puedes pensar en una función que te avise de cuando una de ellas es un uno para actuar. De esta manera, con una función y las leyes que te he explicado antes podrás saber qué elementos utilizar para conseguir esa función y así con una simple entrada en una interrupción en tu Arduino, tienes resuelta la papeleta.

Las puertas digitales y sus funciones

Ahora es cuando debes de recordar aquello de las puertas lógicas que te he mencionado antes, porque lo vamos a utilizar. En su momento te hablé de que una puerta AND lo que hacía era multiplicar y sonaba a algo extraño. Ahora ya no lo suena. Si una puerta AND tiene las entradas a, b y c (Sí, las hay de 3 entradas y de más también) pues el resultado, la función que describe esto será F(a,b,c)=a.b.c. Lo que pongo entre paréntesis es para decir que la función depende de a, b y c. Los más puristas se sacarían los ojos si no lo pusiese.

Funciones puertas lógicas AND, OR y NOT

Por otra parte tenemos las puertas OR, que lo que hacían era sumar. Pues ahora entiendes que si tengo las entradas a, b y c el resultado tras esta puerta será la función a+b+c. Y, ¿Qué pasa si nuestra puerta tiene 6 entradas pero necesitas tan sólo 4 pines? Dejarlas al aire (sin conectar) no es una opción, ya te aviso.

Lo suyo es pensar un poco. ¿Una suma cómo la dejas igual? Sumando un cero. Pues eso es lo que haces, conectar esas entradas a 0 (o GND). Si fuese una puerta AND la cosa sería que el 1 es el que deja el resultado igual ya que multiplicar algo por uno no hace nada. Conectarías las entradas a 5 Voltios, que es 1.

En la imagen de arriba has podido ver también las puertas NOT. Lo que hacen es negar, que ya has visto antes que es poner un gorrito a la letra, aunque yo, por comodidad, les pongo la comilla superior. La función de a sería F(a)=a’.

Claro, ahora vienen las puertas NOR. Estas puertas lo que hacían era negar una suma por lo que si las entradas son a y b la función sería: F(a,b)=(a+b)’ que ya te he dicho antes que por la ley de Boole es igual a a’.b’ Y más de lo mismo con una puerta NAND, que tendría una función F(a,b)=(a.b)’=a’+b‘.

Funciones puertas lógicas NAND y NOR

Si te acuerdas, también había una puerta rarita: la XOR. Esta es la de la suma exclusiva, lo que hace es detectar cuando dos números son iguales y les da un 0 y si son distintos les da un 1. Es decir 1+1 en una OR sería uno pero en una OR exclusiva suma cero. La función que define las XOR o OR exclusivas es f(a,b)=a’.b+a.b’

Función puerta lógica XOR

Chaíto…

Pues nada, parece que esto es el final. Ya ves que la electrónica digital es un mundo abstracto que poco a poco va cogiendo forma. Al final, a mi me parece más divertido que la electrónica analógica. pero para gustos los colores 😉

¡Hasta la próxima!

[Total:5    Promedio:3.6/5]
Opt In Image

Déjame un comentario que en el fondo soy buen chaval

  1. Sera

    Responder

    • Responder

  2. Responder

  3. Responder

  4. Juan Andrés

    Responder

Deja un comentario