Marco Teórico.
Algebra Bolee (Booleana)
Se denomina así en honor a George Boole (1815-1864), matemático
inglés autodidacta, que fue el primero en definirla como parte de un
sistema lógico, inicialmente en un pequeño folleto: The Mathematical
Analysis of Logic, publicado en 1847, en respuesta a una controversia en
curso entre Augustus De Morgan y Sir William Hamilton. El álgebra de
Boole fue un intento de utilizar las técnicas algebraicas para tratar
expresiones de la lógica proposicional. Más tarde como un libro más
importante: The Laws of Thought, publicado en 1854. En la actualidad, el
álgebra de Boole se aplica de forma generalizada en el ámbito del
diseño electrónico. Claude Shannon fue el primero en aplicarla en el
diseño de circuitos de conmutación eléctrica biestables, en 1948. Esta
lógica se puede aplicar a dos campos:
*Al análisis, porque es una forma concreta de describir cómo funcionan
los circuitos.
*Al diseño, ya que teniendo una función lógica aplicamos dicha álgebra
para poder desarrollar una implementación de la función.
El uso del álgebra de Boole en la Automática se debe a que buena
parte de los automatismos responden a la lógica binaria. Las variables
binarias de entrada son leídas y producen variaciones en las señales
binarias de salidas.
Programación en VHDL
VHDL es un lenguaje de descripción de circuitos electrónicos digitales que
utiliza distintos niveles de abstracción. El significado de las siglas VHDL es
VHSIC (Very HighSpeed Integrated Circuits) Hardware Description
Language. Esto significa que VHDL permite acelerar el proceso de diseño.
VHDL no es un lenguaje de programación, por ello conocer su sintaxis no
implica necesariamente saber diseñar con él. VHDL es un lenguaje de
descripción de hardware, que permite describir circuitos síncronos y
asíncronos. Para realizar esto debemos:
- Pensar en puertas y biestables, no en variables ni funciones.
- Evitar bucles combinacionales y relojes condicionados.
- Saber qué parte del circuito es combinacional y cuál secuencial.
Codificador.
Comenzaremos simulando el funcionamiento de un codificador de 4
entradas y 2 salidas, donde las entradas las nombraremos W y serán
A,B,C y D, utilizaremos en software Ise Desing Suite, y veremos el
funcionamiento en el cronograma de estados, para colocar las entradas
nos guiaremos en su tabla de verdad, y la programación será en VHDL.
Ilustración 1 Tabla de Verdad
Ilustración 2
En la ilustración 2 podemos ver nuestras salidas cuando los valores de
A,B,C y D son 1000 respectivamente, dando como salida en el codificador
00.
Ilustración 3
En la ilustración 3 notamos que cuando cambiamos los valores de nuestra
entrada por 1000, los valores de salida que nos arroja el codificador es
01.
De igual forma, cuando cambiamos los valores de entrada por 0010, el
valor de salida que arroja el codificador es 10.
Por último, si cambiamos nuestros valores de entrada por 0001, el
codificador nos da una salida de 11.
Decodificador
Vamos a simular ahora lo que es un decodificador, pero esta vez será el
decodificador BCD a 7 segmentos, simulando un Display para obtener los
números del 0 al 9, la simulación se hará en VHDL en el programa Ise
Design Suite y veremos la simulación mediante su cronograma de
estados. Para todos los números que simularemos nos guiaremos de su
tabla de verdad, y apoyándonos en una imagen de un Display para
saberque segmentos deben prender y cuales no.
Para simular el numero 0, vamos a necesitar que prendan todos los
segmentos del Display menos el segmento “g”, y para obtener esto vamos
a mandar en nuestras entradas binarias 0000 para que las salidas
decodificadas nos manden en todas 1 excepto en la “g” (1111110) y así
se obtiene el numero 0.
Para obtener el numero 1 ahora vamos a necesitar solamente que
prendan 2 segmentos del Display, así que mandaremos en nuestras
entradas binarias un 0001, para obtener que en nuestras salidas
decodificadas nos manden 1 solamente en los segmentos “b” y “c”
(0110000).
Para obtener el numero 2 ahora vamos a necesitar que prendan todos los
segmentos del Display excepto el “c” y “f”, así que mandaremos en
nuestras entradas binarias un 0010, para obtener que en nuestras salidas
decodificadas nos manden 1 excepto en los segmentos “c” y “f”
(1101101).
Para obtener el numero 3 ahora vamos a necesitar que prendan todos los
segmentos del Display excepto el “e” y “f”, así que mandaremos en
nuestras entradas binarias un 0011, para obtener que en nuestras salidas
decodificadas nos manden 1 excepto en los segmentos “e” y “f”
(1111001).
Para obtener el numero 4 ahora vamos a necesitar que prendan todos los
segmentos del Display excepto el “a”, “d” y “e”, así que mandaremos en
nuestras entradas binarias un 0100, para obtener que en nuestras salidas
decodificadas nos manden 1 excepto en los segmentos “a”,“d” y “e”
(0110011).
Para obtener el numero 5 ahora vamos a necesitar que prendan todos los
segmentos del Display excepto el “b” y “e”, así que mandaremos en
nuestras entradas binarias un 0101, para obtener que en nuestras salidas
decodificadas nos manden 1 excepto en los segmentos “b” y “e”
(1011011).
Para obtener el numero 6 ahora vamos a necesitar que prendan todos los
segmentos del Display excepto el “b”, así que mandaremos en nuestras
entradas binarias un 0110, para obtener que en nuestras salidas
decodificadas nos manden 1 excepto en los segmentos “b” (1011111).
Para obtener el numero 7 ahora vamos a necesitar que prendan
solamente los segmentos del Display “a”, “b” y “c”, así que mandaremos
en nuestras entradas binarias un 0111, para obtener que en nuestras
salidas decodificadas nos manden 1 en los segmentos “a”, “b” y “c”
(1110000).
Para obtener el numero 8 ahora vamos a necesitar que prendan todos los
segmentos del Display, así que mandaremos en nuestras entradas
binarias un 1000, para obtener que en nuestras salidas decodificadas nos
manden 1 (1111111).
Para obtener el numero 9 ahora vamos a necesitar que prendan todos los
segmentos del Display excepto el “e”, así que mandaremos en nuestras
entradas binarias un 1001, para obtener que en nuestras salidas
decodificadas nos manden 1 excepto en los segmentos “e” (1111011).
Multiplexor
Para realizar un multiplexor vamos a necesitar un diagrama del mismo,
así como su tabla de verdad. Esto lo simularemos en el programa Ise
Design Suite, y la simulación será en VHDL, con ayuda del cronograma
de estados veremos el funcionamiento.
En esta simulación podemos ver que depende donde mandemos el
pulsonos va a dar una salida para alguno de los pines, mientras en un pin
nos manda un pulso, en los demás pines del multiplexor no nos mandara
nada, solo será un 0, o un L.
Demultiplexor.
Para realizar un demultiplexor vamos a necesitar un diagrama del mismo,
así como su tabla de verdad. Esto lo simularemos en el programa Ise
Design Suite, y la simulación será en VHDL, con ayuda del cronograma
de estados veremos el funcionamiento.
En esta simulación podemos ver que depende del pulso que mandemos en las entradas,
nos va a mandar un uno en alguna de las salidas, en solo una salida, podemos basarnos
en la tabla de verdad, donde dice que si mandamos 000 en la entrada, nos va a mandar
un 1 a nuestra salida 0, si mandamos 001, nos va a mandar un 1 en nuestra salida 1, y así
con todas las combinaciones del multiplexor.
Conclusión.
Gracias a este trabajo conocimos el funcionamiento interno de un
codificador, decodificador, multiplexor y demultiplexor, sabemos que
depende de los pulsos o señales que mandemos en nuestras entradas,
cada dispositivo tendrá su funcionamiento, que son las compuertas,
donde viajara la señal a través de todo el dispositivo y dependiendo de
sus compuertas digitales, será la salida que nos mandara nuestro
dispositivo. También aprendimos el funcionamiento de un Display de 7
segmentos, algo que lo podemos ver en nuestra vida cotidiana, y que
ahora al verlo podemos saber como funciona. Durante este trabajo no se
presentaron complicaciones, fueron un poco difíciles de entender y
simular, pero con un buen estudio, buenos maestros y mucha dedicación
y amor por la materia logramos armar estas simulaciones y conocer estos
dispositivos.