Practica0_VHDL

23
INSTITUTO POLITÉCNICO NACIONAL Unidad Profesional Interdisciplinaria en Ingeniería y Tecnologías Avanzadas Ingeniería Mecatrónica Circuitos Lógicos Práctica 0. Introducción al entorno VHDL Alumnos: Bello Ramírez Oscar Iván Medina Torres Jael Sebastián Toral Robles Adrián Grupo: 2MV12 Profesor: Trejo Salazar David Benjamín Fecha de Entrega: 15 de Septiembre de 2013

description

Ptractica Prototipo

Transcript of Practica0_VHDL

  • INSTITUTO POLITCNICO NACIONAL

    Unidad Profesional Interdisciplinaria en Ingeniera y

    Tecnologas Avanzadas

    Ingeniera Mecatrnica

    Circuitos Lgicos

    Prctica 0. Introduccin al entorno VHDL

    Alumnos:

    Bello Ramrez Oscar Ivn

    Medina Torres Jael Sebastin

    Toral Robles Adrin

    Grupo:

    2MV12

    Profesor:

    Trejo Salazar David Benjamn

    Fecha de Entrega:

    15 de Septiembre de 2013

    DavidSticky Note

    DavidTypewritten textXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    DavidTypewritten textXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • OBJETIVO. Sentar las bases que constituyen el entorno de Programacin en el lenguaje VHDL, para as poder cargarlos dentro de un dispositivo PLD y poder verificar su funcionamiento. As mismo, se busca reafirmar los conocimientos del lgebra de Boole y de los teoremas utilizados en clase para la reduccin de expresiones Booleanas. INTRODUCCIN El lenguaje VHDL fue creado con el propsito de especificar y documentar circuitos y sistemas digitales utilizando un lenguaje formal. En la prctica se ha convertido, en un gran nmero de entornos de CAD, en el HDL de referencia para realizar modelos sintetizables automticamente. Las principales caractersticas del lenguaje VHDL se explican en los siguientes puntos: Descripcin textual normalizada: El lenguaje VHDL es un lenguaje de descripcin que especifica los circuitos electrnicos en un formato adecuado para ser interpretado tanto por mquinas como por personas. Se trata adems de un lenguaje formal, es decir, no resulta ambiguo a la hora de expresar el comportamiento o representar la estructura de un circuito. Es, por ltimo, un lenguaje ejecutable, lo que permite que la descripcin textual del hardware se materialice en una representacin del mismo utilizable por herramientas auxiliares tales como simuladores y sintetizadores lgicos, compiladores de silicio, simuladores de tiempo, de cobertura de fallos, herramientas de diseo fsico, etc. Amplio rango de capacidad descriptiva: El lenguaje VHDL posibilita la descripcin del hardware con distintos niveles de abstraccin, pudiendo adaptarse a distintos propsitos y utilizarse en las sucesivas fases que se dan en el desarrollo de los diseos. Adems es un lenguaje adaptable a distintas metodologas de diseo y facilita la actualizacin y adaptacin de los diseos a los avances de la tecnologa en cada momento. Otras ventajas: Adems de las ventajas ya reseadas tambin es destacable la capacidad del lenguaje para el manejo de proyectos de grandes dimensiones, las garantas 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 documentacin de los sistemas.

  • PROCEDIMIENTO Y DESARROLLO. Ejercicio 1. Realizar la reduccin de la siguiente expresin Booleana con las propiedades del lgebra de Boole, dibujar la solucin con simbologa y una vez que se tenga la solucin comprobar con tablas de verdad y con un PLD las ecuaciones resultantes.

    Paso 1. Mediante las propiedades del lgebra de Boole, se reduce la ecuacin hasta su mnima expresin.

    (+B+D+ )+ A (B+C) + B+ CD

    (1+B+ )+ A (B+C) + B+ CD

    + B+ + A (B+C) + B+ CD

    + + A (B+C) + B+ CD

    + AB+AC + B+ CD

    +B + AC + B + CD

    +B + AC + CD

    +B + C (A + D)

    +B + C (A + D)

    + C +B + CD

    + B + C Paso 2. Se plantea la solucin mediante el uso de simbologa.

    A

    B

    C Y

  • Paso 3. Se analiza la respuesta de la ecuacin dada mediante una tabla de verdad.

    ABCD AB B B C A

    D CD Y

    0000 0 1 0 0 0 0 0 1 1

    0001 0 0 0 0 0 1 0 1 1

    0010 0 1 0 0 0 0 0 0 1

    0011 0 0 0 0 0 1 1 0 1

    0100 0 1 1 1 0 0 0 0 1

    0101 0 0 0 1 0 1 0 0 1

    0110 0 1 1 1 0 0 0 0 1

    0111 0 0 0 1 0 1 1 0 1

    1000 0 0 0 0 0 0 0 0 0

    1001 0 0 0 0 0 0 0 0 0

    1010 0 0 0 0 1 0 0 0 1

    1011 0 0 0 0 0 0 1 0 1

    1100 1 0 1 0 0 0 0 0 1

    1101 1 0 0 0 0 0 0 0 1

    1110 1 0 1 0 1 0 0 0 1

    1111 1 0 0 0 0 0 1 0 1

    Paso 4. Se comprueba la solucin planteada (reducida) mediante el uso de tablas de verdad.

    ABCD Y= + B + C 0000 1

    0001 1

    0010 1

    0011 1

    0100 1

    0101 1

    0110 1

    0111 1

    1000 0

    1001 0

    1010 1

    1011 1

    1100 1

    1101 1

    1110 1

    1111 1

  • Paso 5. Para comprobar la solucin mediante un PLD, se recurre a la apertura de la herramienta ISE Design para la programacin en VHDL.

    Fig. 1 Acceso a la herramienta ISE Design Suite 14.2

    Paso 6.Una vez que abrimos el software de programacin en VHDL, generamos un nuevo proyecto mediante la ruta File/ New Project y asignamos un nombre para este como se muestra en la Fig. 2; posteriormente seleccionamos los parmetros adecuados de nuestra tarjeta a utilizar mediante el cuadro de dilogo de la Fig. 3.

    Fig. 2 Asignacin de un nombre de Proyecto.

  • Fig. 3 Ventana de dilogo de asignacin de parmetros de la tarjeta a utilizar.

    Paso 7. Posteriormente, procedemos a generar nuestro archivo syntetisize (.vhd) mediante la ruta Project/ New Source/ VHDL Module asignando un nombre para el mismo.

    Fig. 4 Ventana de dilogo para generar el archivo .vhd.

  • Paso 8. A continuacin se indican las variables de entrada y salida para la utilizacin dentro del cdigo de programacin.

    Fig. 5 Ventana de asignacin de variables.

    Paso 9. Finalmente escribimos nuestro cdigo en la parte de la entidad o entity (interfaz del dispositivo con el exterior).

    Fig. 6 Generacin del cdigo VHDL.

  • Paso 10. Procedemos a sintetizar nuestro cdigo en busca de algn error de sintaxis.

    Fig. 7 Verificacin del cdigo.

    Paso 11. Una vez verificado nuestro cdigo, deberemos implementar los pines a utilizar en nuestra FPGA, dando click derecho sobre el nombre de nuestro programa, eligiendo la opcin de new source y seleccionando BMM File; damos un nombre al archivo y asignamos cada una de las variables a las entradas y salidas de nuestra tarjeta.

    Fig. 8 Generacin del archivo Implement (.ucf).

  • Fig. 9 Escritura de Cdigo del archivo Implement (.ucf).

    Paso 12. Posteriormente Implementamos nuestro archivo dando doble click en Implement Design.

    Fig. 10 Implementacin del archivo .ucf.

    Paso 13. Una vez implementado el cdigo, se genera el programa dando click en la parte de Generate Programming File.

    Fig. 11 Generacin del archivo de programa.

  • Paso 14. Ya que todos los parmetros estn configurados de la manera correcta, procedemos a cargar nuestro programa (Generate Programming File .bit) mediante la herramienta Digilent Adept.

    Fig. 12 Carga del archivo .bit mediante la herramienta Digilent Adept.

  • Paso 15. Finalmente visualizamos nuestro programa en la FPGA.

    Fig. 13 Visualizacin de resultados en la tarjeta.

  • Ejercicio 2. Al igual que el ejercicio 1, seguir el mismo procedimiento para las siguientes operaciones.

    Paso 1. Mediante las propiedades del lgebra de Boole, se reducen las ecuaciones hasta su mnima expresin. Ecuacin 1 A (BC+ AC) + BC ABC + AC + BC A (BC + C) + BC AC + BC C (A + B) Ecuacin 2

    +

    ( )

    (XY + ) ( + )

    XY + XY + +

    (XY + + 1)

  • Ecuacin 3

    ( + + )

    (( + ) ( ) )

    ((X + Y) ( + + ))

    + Y + X + X + X

    Y ( + ) + X

    Paso 2. Se plantea la solucin mediante el uso de simbologa. Ecuacin 1 Ecuacin 2

    Ecuacin 3

    A

    B C

    Y

    Z q

    X

    Y q X

    Y

    W

    Y Z

    W

    Y

  • Paso 3. Se analiza la respuesta de cada ecuacin dada mediante una tabla de verdad. Ecuacin 1

    ABC R=BC+AC S=A(R) Y=S+BC

    0000 0 0 0

    0001 0 0 0

    0010 0 0 0

    0011 0 0 1

    1100 0 0 0

    1101 1 1 1

    1110 0 1 1

    1111 1 1 1

    Ecuacin 2

    XYZ R= Z S= R + XZ q= 0000 0 0 1

    0001 1 0 1

    0010 0 0 1

    0011 1 0 1

    1100 0 0 1

    1101 0 1 0

    1110 0 0 1

    1111 0 1 0

    Ecuacin 3

    XYZW X+Y = + B= YZW A+B = + = q=CD 0000 0 1 0 1 0 1 0

    0001 0 1 0 1 0 1 0

    0010 0 1 0 1 0 1 0

    0011 0 1 0 1 0 1 0

    0100 1 0 0 0 1 1 1

    0101 1 0 0 0 1 1 1

    0110 1 0 0 0 1 1 1

    0111 1 0 1 1 0 1 0

    1000 1 0 0 0 1 1 1

    1001 1 0 0 0 1 1 1

    1010 1 0 0 0 1 1 1

    1011 1 0 0 0 1 1 1

    1100 1 0 0 0 1 0 0

    1101 1 0 0 0 1 0 0

    1110 1 0 0 0 1 0 0

    1111 1 0 1 1 0 0 1

  • Paso 4. Se procede a comprobar la solucin arrojada por las tablas de verdad mediante la generacin del cdigo en VHDL.

    Fig. 14 Archivo (.vhd) de la Ecuacin1.

    Fig. 15 Archivo (.vhd) de la Ecuacin2.

  • Fig. 16 Archivo (.vhd) de la Ecuacin 3. Ejercicio 3. Disear en el lenguaje de descripcin de hardware, los siguientes integrados:

    74LS00

    Tabla de Verdad y Ecuacin

    Diagrama

  • Implementacin del Cdigo VHDL

    74LS02

    Tabla de Verdad y Ecuacin

    Diagrama

  • Implementacin del Cdigo VHDL

    74LS04

    Tabla de Verdad y Ecuacin

    Diagrama

  • Implementacin del Cdigo VHDL

    74LS21

    Tabla de Verdad y Ecuacin

    Diagrama

  • Implementacin del Cdigo VHDL

    74LS32

    Tabla de Verdad y Ecuacin

    Diagrama

  • Implementacin del Cdigo VHDL

    74LS86

    Tabla de Verdad y Ecuacin

    Diagrama

  • Implementacin del Cdigo VHDL

    Conclusiones Para la presente prctica, pude darme cuenta de manera sencilla como es que funciona el cdigo VHDL para la implementacin de circuitos digitales dentro de una FPGA; aplicando ciertos programas de baja dificultad y sentando las bases de programacin para trabajar en un futuro con programas mucho ms complejos que los hasta ahora implementados. Dentro del primer ejercicio pude implementar de manera sencilla un cdigo booleano previamente reducido y analizado en tablas de verdad como parte introductoria al software ISE Design Suite 14.2. Para los siguientes ejercicios, ya sentadas las bases de programacin en cdigo VHDL y la utilizacin del software de implementacin, pude experimentar y poner a prueba mis conocimientos adquiridos en ecuaciones de mayor complejidad. Sin duda, esta primer prctica introductoria me ayudar a poder enfrentarme a problemas de mayor complejidad en un futuro.

    Por Jael Sebastian Medina Torres

  • Durante esta prctica se comprendi y se practic el lgebra Bool. Adems de desarrollar la habilidad en el programa de Project Navigator de ISE, para el diseo de circuitos lgicos. Hay que mencionar que tambin nos permiti conocer los diferentes integrados que son tiles en el diseo fsico de un circuito lgico y si estructura interna del mismo.

    Por Oscar Ivn Bello Ramrez

    El desarrollo de sta prctica fue muy importante pues utilizamos por primera vez

    el entorno VHDL y comenzamos a familiarizarnos con programas como ISE y

    Adept. Aprendimos declarar variables, crear proyectos y archivos VHDL, adems

    como crear una funcin y declarar las entradas y salidas con base en al modelo de

    Nexys en la que trabajemos. En general creo que fue una buena prctica para

    establecer conceptos bsicos sobre el uso de dispositivos FPGA y un buen repaso

    para los temas de algebra booleana.

    En lo personal, me gust realizar la prctica, no fue complicado y aunque

    cometimos errores, fue un buen comienzo para entender ms de circuitos lgicos.

    Por Adrian Toral Robles