miércoles, 8 de septiembre de 2010
Funcionamiento de los displays de siete segmentos
Implementar un sumador, decodificador y multiplexor.
En el lenguaje VHDL para poder programar en la tarjeta Spartan3 necesitaremos asignar las diferentes entradas, proponemos (A, B, C, D, W, X, Y, ), y salidadas (S1,S2,S3,S4). Posteriormente comenzaremos la sumatoria de los bits, primeramente (D xor Z) y se realizará después de 10ns, si existiese un carry agregaremos una variable adicional que irá acumulando los distintos carry´s. para sumar S2 se agrega (C xor Y xor variable del primer carry) después de 10ns, para el segundo carry se agregará la variable igualada a ((C and Y) or (C and variable 1er. carry) or (Y and varible 1er. carry)) después de 10 segundos. Y con esta metodología se relizarán las siguientes sumatorias (B xor X) y (A xor W). De esta manera se podrán obtener los resultados a la suma, recomendamos que se muestren en los led´s de la tarjeta y que la entrada de datos sea por medio de los switches.
Un decodificador es un circuito lógico que acepta un conjunto de entradas que representan números binarios y que activan solamente la salida que corresponde a dicho dato de entrada. En otras palabras, un decodificador mira a sus entradas, determina qué número binario está presente y activa la salida correspondiente a dicho número. Todas las otras salidas permanecerán inactivas. Un decodificador modelo tiene N entradas y M salidas. Debido a que cada una de las N entradas puede ser 0 o 1, hay 2N posibles combinaciones o códigos de entrada. Para cada una de estas combinaciones de entrada sólo una de las M salidas estará activa, y todas las otras estarán inactivas.
En este caso aplicaremos uno de 3x8 declarando tres entradas y 8 salidas, se realizará un "process" en el código y dentro de este un "case". Con un "when" pondremos la entrada y con signos de igualación, menor y mayor que mostraremos el número binario que saldrá del decodificador. Como se muestra en el siguiente ejemplo:
case entrada is
when "000" => salida <= "10000000";
(siguen los diferentes casos)...
end case;
end process;
Finalmente los datos de entrada se entregarán por medio de los switches y las salidas se observaran en los leds de la tarjeta Spartan 3.
Un multiplexor tiene de 4 a 1 tiene cuatro entradas y dos entradas de selección que son las que eligen cual de los cuatros bits de entrada salen en la única salida. Utiliza una estructura muy similar en código a la del decodificador, a base de "case". El valor de la variable tomaba un caso específico y la salida el valor de bit de entrada en esa posición, por ejemplo:
case selec is
when "00" => salida <= a;
(se sigue en los diferentes casos)....
Los datos se entregarán por medio de los switches y la salida por led.