INSTITUTO TECNOLOGICO DE LOS MOCHIS Diseño Digital Con VHDL "Practica 1: Decodificador De Display 7 Segmentos" Integrantes: Ayala Lima Alejandra Castro Garcia Antonio Castro Pérez Juan Carlos Irazoqui Chaparro Viviana
12440285 13440015 13441565 13440013
Prof.: Robles Acosta Juan Carlos
Los Mochis Sinaloa a 25 De Septiembre Del 2015.
Contenido Marco Teórico...................................................................................................... 3
Materiales:........................................................................................................... 5
Código en VHDL................................................................................................... 6
Mapa Chip Report............................................................................................... 7
Fotografías........................................................................................................... 8
Conclusiones...................................................................................................... 10
Marco Teórico Los estudios para la creación del lenguaje VHDL (VHSIC HDL) comenzaron en el año 1981, bajo la cobertura de un programa para el desarrollo de Circuitos Integrados de Muy Alta Velocidad (VHSIC), del Departamento de Defensa de los Estados Unidos. En 1983 las compañías Intermetrics, IBM y Texas Instruments obtuvieron la concesión de un proyecto para la realización del lenguaje y de un conjunto de herramientas auxiliares para su aplicación. Finalmente, en el año 1987, el lenguaje VHDL se convierte en la norma IEEE-1076 –como todas las normas IEEE, se somete a revisión periódica, por lo que en 1993 sufrió algunas leves modificaciones. El lenguaje VHDL fue creado con el propósito de especificar y documentar circuitos y sistemas digitales utilizando un lenguaje formal. En la práctica se ha convertido, en un gran número de entornos de CAD, en el HDL de referencia para realizar modelos sintetizables automáticamente. Las principales características del lenguaje VHDL se explican en los siguientes puntos: • Descripción textual normalizada: El lenguaje VHDL es un lenguaje de descripción que especifica los circuitos electrónicos en un formato adecuado para ser interpretado tanto por máquinas como por personas. Se trata además de un lenguaje formal, es decir, no resulta ambiguo a la hora de expresar el comportamiento o representar la estructura de un circuito. • Amplio rango de capacidad descriptiva: El lenguaje VHDL posibilita la descripción del hardware con distintos niveles de abstracción, pudiendo adaptarse a distintos propósitos y utilizarse en las sucesivas fases que se dan en el desarrollo de los diseños. Además es un lenguaje adaptable a distintas metodologías de diseño y es independiente de la tecnología, lo que permite, en el primer caso, cubrir el tipo de necesidades de los distintos géneros de instituciones, compañías y organizaciones relacionadas con el mundo de la electrónica digital; y, en el segundo, facilita la actualización y adaptación de los diseños a los avances de la tecnología en cada momento. • Otras ventajas: Además de las ventajas ya reseñadas también es destacable la capacidad del lenguaje para el manejo de proyectos de grandes dimensiones, las garantías que comporta su uso cuando, durante el ciclo de mantenimiento del proyecto, hay que sustituir componentes o realizar modificaciones en los circuitos, y el hecho de que, para muchas organizaciones contratantes, sea parte indispensable de la documentación de los sistemas.
A continuación una pequeña definición de que es un Codificador y un decodificador: Codificador, dispositivo para la conversión de datos o señales empleando un determinado →código. Normalmente se usa con cuatro propósitos claramente diferenciados: 1) Eliminar la redundancia o todo aquello que no vaya a ser percibido por el destinatario de la información o bien quede más allá de los objetivos de calidad de la señal recibida, en cuyo caso se habla decodificador de fuente; 2) Aumentar la redundancia de modo que el decodificador pueda eventualmente detectar y corregir errores que se hayan producido en la recepción de señales o símbolos, hablándose en este caso de codificador de canal. 3) Para hacer que los datos codificados sean ilegibles salvo que se conozca el código, mediante encriptado res o cifra dores. 4) Permitir la transmisión de datos sobre un canal con unos determinados recursos y limitaciones, que correspondería en el modelo empleado en la TMC al transmisor-codificador y que (especialmente en telecomunicaciones) es denominado modulador. El decodificador sería el dispositivo que realiza la operación conversa, sea cual sea el propósito del código: el decodificador de fuente trataría de devolver la redundancia eliminada; el de canal retiraría la introducida por el codificador correspondiente, corrigiendo los errores que fuera capaz de detectar; el descifrador haría que los datos resultaran legibles; y el demodulador (o receptor-decodificador) identificaría el símbolo transmitido por el canal –normalmente bajo un criterio de máxima verosimilitud- y re expresando los datos con la forma que tenían antes del modulador.
With-Select-When Es similar a las sentencias CASE o SWITCH de C. La asignación se hace según el contenido de un objeto o resultado de cierta expresión.
WITH
SELECT <= WHEN , WHEN , ... WHEN OTHERS; La cláusula WHEN OTHERS especifica todos los demás valores que no han sido contemplados. También es posible utilizar la opción que se contempló en el caso anterior (UNAFFECTED).
La estructura with-select-when se utiliza para asignar un valor (de varios posibles) a una señal o grupo de señales con base a los diferentes valores de otra señal o grupo de señales previamente seleccionada(o).
Materiales:
1 PROTOBOARD 1 DISPLAY 7 SEGMENTOS CATODO COMUN 10 PUSH BUTTONS NORMALMENTE ABIERTOS 10 RESISTENCIAS DE 220 Ω 1 GAL22V10D PREVIAMENTE PROGRAMADO CON EL CODIGO CABLES PARA PUENTES 1 FUENTE DE 5VCC CODIGO EN VHDL
Código en VHDL library ieee; use ieee.std_logic_1164.all; entity prac1 is port( ent:in std_logic_vector (9 downto 0); sal:out std_logic_vector (6 downto 0)); attribute LOC: string; attribute LOC of sal: signal is "P23 P22 P21 P20 P19 P18 P17"; attribute LOC of ent: signal is "P10 P9 P8 P7 P6 P5 P4 P3 P2 P1"; end prac1; architecture COD of prac1 is begin with ent select sal<= "1111110" when "0000000001", "0110000" when "0000000010", "1101101" when "0000000100", "1111001" when "0000001000", "0110011" when "0000010000", "1011011" when "0000100000", "1011111" when "0001000000", "1110000" when "0010000000", "1111111" when "0100000000", "1110011" when "1000000000", "1001111" when others;
end COD;
Mapa Chip Report
Fotografías
Conclusiones En la práctica realizada se programó una Gal22V10D para que esta funcionara como un decodificador, mediante push buttons, los cuales nosotros utilizamos normalmente abiertos y un display de ánodo común, con esta primera practica comenzamos el camino hacia el dominio del lenguaje de VHDL, en la práctica realizamos un arreglo de resistencias conectadas a la tierra y puenteadas a la GAL, forzando un estado de 0 desde el principio en la GAL y no un estado 1, como por default tiene la GAL y se mostraba en el display desde el comienzo. Programamos el PLD (GAL22V10D) por medio de la generación de un archivo .JED a través del software proporcionado (Superpro 3000U). Para poder realizar esta práctica nos juntamos en equipo solo fue necesario tener el programa instalado en una sola computadora y el apoyo de nuestro equipo, por medio de un programa que nos proporcionó nuestro profesor para trabajar el ISPLever para poder programar, primero analizamos y opinamos de como podíamos realizar el programa como empezar o cual sería un método practico y eficiente de hacerlo. Comenzamos declarando la librería y los elementos básicos del programa después utilizamos, declaramos variables y asignamos valores a las entradas y salidas del programa, para que marcara un error si en caso que si ingresas algún valor no deseado te marque un error. Su función consiste en que al momento que tu presiones un botón se aparezca el número 1 y si presionas el siguiente se muestre el dos y así sucesivamente hasta llegar al número nueve, y si por presionas dos botones ala ves te marque un error. Costo algo de trabajo poder realizar esta práctica de alguna manera porque jamás habíamos hecho una así, aunque ya habíamos programado anteriormente en otros lenguajes, tuvimos un pequeño error en una parte del código pero gracias al profesor y ayuda en equipo encontramos el error y si compilo muy bien en la simulación. Un decodificador es un circuito combinacional el cual actúa de forma tal que puede convertir un código de entrada de la cantidad que queramos de bits siendo la codificación de entrada binaria y va a activar una salida. A las salidas irá el código y las mismas se activaran cuando sea correspondiente el código que se le está enviando. Los PLD facilitan el ruteado de las placas de círculo impreso debido a la libertad de asignación de patillas que proporcionan. Permiten realizar modificaciones posteriores del diseño y en ocasiones hacen posible la
reutilización de circuitos impresos con algunos fallos, mediante una reasignación de los PLD.