PRACTICA_3_2014_1

download PRACTICA_3_2014_1

of 16

Transcript of PRACTICA_3_2014_1

  • Prctica 3

    Introduccin a la tarjeta Spartan 3E Starter y

    al ambiente ISE WebPack

    Versin 1.0

    Clave: 11680

    Diseo Digital

    LABORATORIO

    Profesor

    M.C. Diego Armando Trujillo Toledo

    [email protected]

    Objetivos:

    1. Introducir al alumno a un ambiente de diseo para lenguaje descriptor de hardware (VHDL).

    2. Identificar la estructura bsica de una descripcin en VHDL (entidad / arquitectura). 3. Elaborar algunos ejemplos de descripciones en VHDL y comprobar, a travs de la

    simulacin, su funcionamiento.

    4. Introducir al alumno a un sistema de desarrollo basado en un FPGA. 5. Distinguir la organizacin de un sistema de desarrollo basado en FPGA y los elementos

    que lo componen.

    6. Elaborar algunos ejemplos de descripciones en VHDL, sintetizarlos e implementarlos en la tarjeta de desarrollo

    Investigacin Previa:

    Debe incluir la bibliografa utilizada. Si no tiene bibliografa, sta no ser revisada y por

    consecuencia la prctica tampoco, incluye al menos 2 libros de nivel de ingeniera.

    Definicin de VHDL.

  • Diseo Digital

    FCQI Tijuana M.C. Diego Trujillo / M.C. Jorge Loya

    Definicin de entidad y arquitectura, en el contexto de un circuito digital descrito con VHDL. Palabras reservadas utilizadas para definir la entidad y la arquitectura en VHDL.

    Diferencia entre seal y puerto de entrada/salida, en el contexto de VHDL.

    Diferencia entre los modos IN, OUT, BUFFER e INOUT en VHDL.

    Definicin de sntesis, mapeo y enrutamiento, en el contexto del diseo con VHDL.

    Definicin de FPGA y CPLD.

    Definicin de macrocelda y look-up table (LUT).

    Lectura del documento "Organizacin de la tarjeta Spartan 3E".

    Lectura de la Gua de Usuario de la tarjeta Spartan 3E.

    Revisin del diagrama elctrico de la tarjeta Spartan 3E, seccin "LEDs", "Buttons" y "Switches". Explicacin de la forma de operar de cada "button" y de cada "switch"

    (cundo entregan un nivel lgico '1'? cundo entregan un nivel lgico '0'?

    Realice una lectura general de la prctica ANTES de realizarla.

    Material y Equipo: 1 Computadora con ambiente de desarrollo Xilinx ISE 10.1.

    1 Tarjeta de desarrollo para FPGA Spartan 3E Starter (almacn). Verifique que la tarjeta incluye

    el cable USB y el cable de alimentacin.

    Introduccin:

    Los trminos sistema de desarrollo, kit de desarrollo y tarjeta de desarrollo se refieren al mismo hardware que se utilizar para implementar el circuito digital. De la misma

    forma, los trminos ambiente de desarrollo, plataforma de desarrollo, software de desarrollo se refieren al programa de cmputo que se utiliza para describir, sintetizar y programar la tarjeta Spartan3E.

    VHDL (Very high-speed integrated circuit Hardware Description Language) es un

    lenguaje de descripcin de circuitera (hardware) que se desarroll a mediados de la dcada de

    1980. A travs de l es posible describir casi cualquier tipo de circuito digital, desde un circuito

    combinatorio simple, hasta un microprocesador completo. La ventaja de utilizar VHDL al

    construir un sistema digital es que el diseador puede poner ms nfasis en la funcionalidad del

    circuito y evitar algunos de los problemas que se presentan cuando el circuito digital se

    construye manualmente interconectando circuitos integrados en un protoboard como pueden ser:

    equivocacin en las conexiones, falla en la tablilla o falsos contactos debido a los alambres de

    conexin. Adems, cuando el circuito digital aumenta en su complejidad y el nmero de circuitos

    integrados utilizados para construirlo tambin aumenta, se incrementa la probabilidad de cometer

    algn tipo de equivocacin.

    Durante la descripcin de un circuito digital o sistema digital con VHDL se hace uso de

    una serie de herramientas tanto de software como de hardware que ayudan al proceso de diseo.

    Entre las herramientas de software utilizadas se encuentran ambientes o plataformas que

    incluyen editores de cdigo VHDL, sintetizadores (que traducen y verifican el cdigo VHDL) y

    simuladores. Entre las herramientas de hardware se encuentran los dispositivos programables de

  • Diseo Digital

    FCQI Tijuana M.C. Diego Trujillo / M.C. Jorge Loya

    alta capacidad (alta densidad), las tarjetas de desarrollo y los sistemas programables completos

    en tarjeta.

    En lo que se refiere a las herramientas de software, los editores de cdigo VHDL que

    incluyen los ambientes o plataformas de diseo actualmente cuentan con varias caractersticas

    como resaltado automtico de palabras clave VHDL, sangra automtica de lneas, plantillas

    integradas para fragmentos de cdigo VHDL frecuentemente utilizados, entre otras. El

    sintetizador (o herramienta de sntesis) que se encuentra incluido en el ambiente o plataforma de

    diseo se encarga de analizar la sintaxis, traducir y verificar el cdigo VHDL (o descripcin

    VHDL) para que posteriormente el cdigo sea simulado y la descripcin sea programada en un

    dispositivo programable de alta densidad. El simulador de la plataforma de diseo permite

    definir y aplicar entradas a la descripcin y observar el comportamiento de las salidas, sin tener

    que construir el circuito fsico. La simulacin permite observar el comportamiento de las salidas

    del sistema tanto funcionalmente (es decir, su comportamiento lgico), como temporalmente

    (esto es, que se cumplan los retrasos de tiempo esperados, o que los tiempos de establecimiento,

    retencin y otros sean cumplidos).

    NOTA:

    Cuando se trabaja con VHDL, es comn que se confundan los trminos programa y descripcin. El trmino programa generalmente se utiliza para referirse a un conjunto de instrucciones que realizan una tarea especfica y que son ejecutadas por un microprocesador. El

    trmino descripcin debe ser utilizado para referirse a un cdigo VHDL exclusivamente. Un

    cdigo VHDL no es propiamente un programa, ya que no es ejecutado por un microprocesador,

    sino traducido a una lista de conexiones que ms tarde ser programada en un dispositivo lgico

    programable. En lo sucesivo, se utiliza el trmino descripcin, para referirse al cdigo VHDL.

    Existen diferentes alternativas para implementar descripciones de circuitos digitales

    realizadas con VHDL (o con cualquier otro lenguaje de descripcin). Anteriormente se utilizaban

    circuitos integrados programables con encapsulados DIP que se programaban y despus se

    interconectaban en un protoboard con elementos tales como resistencias, leds, interruptores, etc.

    Actualmente se dispone de tarjetas de desarrollo que contienen varios de estos elementos y otros

    ms, para ayudar al usuario en la etapa de implementacin y prueba de su circuito digital.

    La ventaja de utilizar una tarjeta de desarrollo es que el usuario tiene ms tiempo para

    dedicarlo a la construccin de cdigo VHDL. El tiempo que anteriormente el usuario empleaba

    en probar cada compuerta lgica o circuito integrado, interconectarlo en un protoboard, aadirle

    resistencias, leds e interruptores, ahora lo puede invertir para describir circuitos digitales de

    mediana-alta complejidad. Adems, la probabilidad de que un circuito integrado no funcione

    correctamente disminuye, ya que la tarjeta ha sido probada en forma individual al momento de

    ser fabricada. Tambin disminuye la probabilidad de realizar una conexin incorrecta, pues

    todas y cada una de las conexiones de la tarjeta han sido realizadas desde su fabricacin y

    verificadas. Con esto, se espera entonces que se puedan elaborar circuitos con mayor

    funcionalidad en menor tiempo.

    La mayora de las tarjetas de desarrollo contiene elementos de entrada y de salida, tales

    como LEDs e interruptores. Existen algunos modelos que contienen inclusive una pantalla de

  • Diseo Digital

    FCQI Tijuana M.C. Diego Trujillo / M.C. Jorge Loya

    cristal lquido (LCD), interfaces de comunicacin RS-232, Ethernet, USB, PS/2, osciladores de

    reloj e incluso su propia fuente de alimentacin.

    La forma en la que un circuito digital debe ser implementado no debe ser a travs de la

    prueba y error. Esto significa que ANTES de implementar el circuito en la tarjeta, el usuario

    debe haberlo simulado tantas veces sea necesario para asegurar que el funcionamiento del

    circuito descrito es como se esperaba. No se considera una buena prctica de diseo la

    implementacin del circuito sin haber comprobado su comportamiento a travs de la simulacin.

    Por lo tanto, se espera que cada vez que se utilice la tarjeta de desarrollo, el alumno invierta el

    tiempo necesario en desarrollar la simulacin.

    Todos los fabricantes de tarjetas de desarrollo ofrecen un manual o gua del usuario en el

    que se muestra cada una de las conexiones de la tarjeta y la forma de utilizar cada uno de los

    elementos que sta incluye. Se espera que en caso de duda, el alumno siempre consulte este

    manual de usuario para asegurar el buen uso de la misma.

    Esta prctica de laboratorio introduce al uso de la plataforma o ambiente de diseo Xilinx ISE

    WebPack y al uso de la herramienta de hardware para implementar circuitos digitales de

    mediana alta complejidad y muestra la forma en que se debe interpretar la informacin del manual de usuario de la tarjeta.

    Desarrollo:

    Como ejemplo, se describir el circuito de la figura 1.

    Figura 1

    1. Encienda la computadora y localice el cono del ambiente de desarrollo ISE Xilinx 10.1 en el escritorio o bsquelo dentro de la barra de inicio, en el grupo de programas Xilinx

    ISE Design Suite 10.1 --> ISE --> Project Navigator.

    2. Una vez que Xilinx ISE arranque, el siguiente paso es crear un proyecto. Seleccione dentro de la barra de herramientas File --> New Project, para que aparezca la ventana de

    la figura 2.

  • Diseo Digital

    FCQI Tijuana M.C. Diego Trujillo / M.C. Jorge Loya

    Figura 2

    3. Dentro del cuadro de texto Project name establezca un nombre para su proyecto. Observe que el proyecto se crear y guardar en la carpeta definida por la ruta que se indica en el

    cuadro de texto Project location. Haga click en Next.

    4. Asegrese de que en la ventana New Project Wizard Device Properties (figura 3) se encuentren seleccionadas las siguientes opciones. De ser necesario, modifquelas y haga

    click en Next.

    Family: Spartan3E

    Device: XC3S500E

    Package: FG320

    Speed: -4

    Simulator: ISE Simulator (VHDL / Verilog)

    Preferred Language: VHDL

  • Diseo Digital

    FCQI Tijuana M.C. Diego Trujillo / M.C. Jorge Loya

    Figura 3

    NOTA: Siempre que vaya a trabajar con la tarjeta Spartan3E, ser necesario asegurar que esta

    ventana contiene las opciones sealadas en la figura. En caso contrario, es posible que el sistema

    digital construido no funcione correctamente.

    5. En la siguiente ventana New Project Wizard Create New Source (figura 4), haga click en el botn New Source y en la ventana que aparece New Source Wizard Select Source Type elija del lado derecho VHDL Module y dentro del campo File name que aparece del

    lado izquierdo, escriba un nombre para el archivo .VHD que contendr su descripcin. El

    nombre que indique aqu ser el nombre de la entidad (puede utilizar el mismo nombre

    que us para el proyecto o un nombre diferente). En seguida haga click en Next.

    Figura 4

    6. Dentro de la ventana New Source Wizard Define Module se deben indicar los nombres de las entradas y salidas que contiene la descripcin, as como su direccin (si es entrada

    o salida).

  • Diseo Digital

    FCQI Tijuana M.C. Diego Trujillo / M.C. Jorge Loya

    Consulte la figura 5 y escriba en el campo Port Name el nombre de cada entrada o salida

    del circuito que se va a describir; en el campo Direction elija la direccin (entrada o

    salida) y en el cuadro de texto Architecture name, indique un nombre para la arquitectura.

    En seguida haga click en Next y en la ltima ventana de confirmacin New Source

    Wizard Summary haga click en Finish.

    (Si recibe un mensaje de que el folder donde va a guardar su proyecto no existe, indique

    al sistema que debe de crearlo).

    Figura 5

    7. En las siguientes ventanas que aparecen, simplemente haga click en Finish para terminar con la creacin del proyecto. La plantilla de la derecha que ISE WebPack ha creado el

    proyecto es en donde se debe introducir la descripcin en VHDL. Ubique en esa plantilla

    la seccin de arquitectura y complete lo que haga falta de la siguiente descripcin (figura

    6), que describe al circuito.

    entity circuito_combinacional is

    port ( A : in STD_LOGIC;

    B : in STD_LOGIC;

    C : in STD_LOGIC;

    Y : out STD_LOGIC);

    end circuito_combinacional;

    architecture circuito_combinacional _arch of circuito_combinacional is

    signal signaltemp1,signaltemp2,signaltemp3: STD_LOGIC;

    begin

    signaltemp1

  • Diseo Digital

    FCQI Tijuana M.C. Diego Trujillo / M.C. Jorge Loya

    signaltemp3

  • Diseo Digital

    FCQI Tijuana M.C. Diego Trujillo / M.C. Jorge Loya

    12. Ya que este es un circuito puramente combinacional, no se requiere una seal de reloj, por lo que en la seccin Clock information de la siguiente ventana que aparece (figura 8),

    Initial Timing and Clock Wizard Initialize Timing, , verifique que la opcin Combinatorial (or internal clock) se encuentre seleccionada.

    Asegrese tambin que el campo Initial Length of Test Bench contiene 2000 y haga click

    en Finish.

    Figura 8

    13. El nuevo espacio de trabajo que se abre es donde se especificar la forma en que se espera se comporte el circuito. Al hacer click en cada una de las secciones de color

    turquesa (cyan), se puede cambiar el nivel lgico que se desea aplicar en cada entrada (A,

    B, y C). Observe la figura 9 y configue los valores aplicados en cada entrada como se

    muestra (haga click en cada una de las secciones azules para modificar los valores lgicos

    presentes en cada entrada).

  • Diseo Digital

    FCQI Tijuana M.C. Diego Trujillo / M.C. Jorge Loya

    Figura 9

    14. Grabe el archivo con los estmulos de entrada. Utilice el cuarto botn de izquierda a derecha en la barra de botones.

    15. En la ventana Sources elija, dentro de la lista Sources for la opcin Behavioral Simulation y observe que el archivo con sus estmulos de entrada ha sido

    automticamente agregado al proyecto. Seleccione el archivo con extensin .TBW y en la

    ventana Processes expanda la pestaa Xilinx ISE Simulator para elegir Simulate

    Behavioral Model. Haga doble click en esta opcin para simular el comportamiento de su

    circuito.

    16. Debe aparecer una ventana nueva con los resultados de la simulacin. Observe que el simulador muestra un tiempo menor a 1000 ns. Para cambiar la escala de tiempo, reinicie

    la simulacin con el botn , introduzca 2000 ns en el campo

    y haga click en el botn de correr simulacin . Debe observar la simulacin

    completa (figura 10). Asegrese de verificar que el comportamiento del circuito es el que

    se esperaba, revisando en el diagrama del circuito TODOS los diferentes valores que se

    aplicaron a la entrada y lo que se obtuvo en la salida.

  • Diseo Digital

    FCQI Tijuana M.C. Diego Trujillo / M.C. Jorge Loya

    Figura 10

    En caso de que se hubiera generado un error, deber repetir los pasos anteriores asegurndose

    que haya especificado correctamente los valores de estmulo en cada entrada, e inclusive que

    haya introducido correctamente la descripcin.

    17. Ahora se proceder a realizar la sntesis de la descripcin para implementarla en la tarjeta. Asegrese que el archivo .VHD se encuentra seleccionado y dentro de la ventana

    Sources en el campo de seleccin Sources for elija Implementation. Dentro de la ventana

    Processes, haga doble click en Synthesize. Si el proceso se desarroll correctamente, debe

    aparecer una palomita de color verde, como muestra la figura 11.

    Si se genera algn error durante la sntesis, revise los mensajes que arroja Xilinx ISE y

    procure corregir el error antes de continuar. En caso de duda, pregunte al instructor.

    Figura 11

  • Diseo Digital

    FCQI Tijuana M.C. Diego Trujillo / M.C. Jorge Loya

    18. A continuacin procedemos con la etapa de implementacin. Dentro de la ventana Processes, haga doble click en Implement Design. De nuevo, si la implementacin se

    desarroll correctamente, debe aparecer una palomita de color verde.

    19. Ahora se ligarn las entradas y salidas de la descripcin con los elementos de entrada / salida que contiene la tarjeta. Dentro de la pestaa User Constraints, haga doble click en

    Floorplan Area / IO / Logic Post-Synthesis. Si aparece la ventana de la figura 12, haga click en OK para aceptar el mensaje de confirmacin. Este mensaje indica que se va a

    crear un archivo con las conexiones de las terminales del FPGA a las entradas / salidas

    del circuito.

    Figura 12

    20. Xilinx ISE abre una aplicacin nueva (llamada PACE) para que el usuario asigne los pines de entrada y salida y los interconecte a los elementos de la tarjeta. Localice la ventana

    Design Object List I/O Pins y observar que se enlistan las entradas y salidas de la descripcin. En el campo Loc, se debe introducir el nmero de pin del FPGA que se va a

    conectar a dicha entrada salida. Conecte la entrada A al pin H18 (interruptor SW2), la

    entrada B al pin L14 (interruptor SW1), la entrada C al pin L13 (interruptor SW0) y la

    salida Y al pin F11 (led LD3), como muestra la figura 13.

    Cada vez que realiza una asignacin de un pin, debe observar en la ventana Package pins

    for xc3s500e-4-fg320, con la pestaa Package View activa, que se ilumina el pin

    correspondiente con un crculo de color azul, indicando que ya se ha asignado.

    Figura 13

  • Diseo Digital

    FCQI Tijuana M.C. Diego Trujillo / M.C. Jorge Loya

    21. Con el tercer botn de izquierda a derecha guarde los cambios y cierre la aplicacin PACE para regresar a Xilinx ISE.

    22. Dentro de la ventaja Processes, haga doble click en Generate Programming File para generar el archivo que se programar en el FPGA. Al final, debe aparecer tambin la

    palomita de color verde, como muestra la figura 14. Es probable que Xilinx ISE actualice

    los pasos anteriores (Synthesize y Implement Design) y los vuelva a ejecutar en forma

    automtica.

    Figura 14

    23. Conecte la tarjeta con el cable USB a la computadora y conecte el cable de alimentacin. En caso de que el sistema operativo necesite instalar algn driver, asegrese de que la

    instalacin se haga en forma automtica (todos los drivers que la tarjeta requiere estn

    incluidos en el sistema operativo). Es probable que aparezcan dos o tres solicitudes de

    instalacin de drivers; atindalas todas seleccionado la opcin de instalar el driver en

    forma automtica. En caso de duda, pregunte al instructor.

  • Diseo Digital

    FCQI Tijuana M.C. Diego Trujillo / M.C. Jorge Loya

    24. Antes de programar el dispositivo, verifique que la tarjeta contiene los jumpers en las posiciones correctas (tabla 1):

    Jumper Posicin

    JP6 Cerrado

    JP7 Cerrado

    JP9 Cerrado entre VCCCB0 y 3.3V

    J11 Cerrado entre CS0_B y SEL.

    Cerrado entre ROM_CS y CS0_B

    J30 Cerrado (todos)

    Tabla 1

    Si alguno de los jumpers no est en la posicin indicada, colquelo correctamente.

    25. Como ltimo paso, se encuentra la programacin del dispositivo que se encuentra en la tarjeta. Dentro de la ventana Processes, expanda la pestaa Configure Target Device y

    haga doble click en Manage Configuration Project (iMPACT). Xilinx ISE abre una nueva

    aplicacin (llamada iMPACT) para programar la tarjeta. En la ventana que aparece revise

    que las opciones se encuentren como aparecen en la figura 15. ANTES DE

    CONTINUAR, asegrese que la tarjeta se encuentra conectada a su fuente de

    alimentacin y que el cable USB se ha conectado a la computadora y a la tarjeta. Haga

    click en Finish.

    Figura 15

  • Diseo Digital

    FCQI Tijuana M.C. Diego Trujillo / M.C. Jorge Loya

    26. Observar que aparecen momentneamente dos ventanas de progreso que indican que Xilinx ISE se est conectando con la tarjeta. Si aparece algn mensaje de error, deber

    repetir el paso anterior y asegurarse que la tarjeta se encuentra alimentada y conectada.

    27. En la siguiente ventana que aparece (Assign New Configuration File) elija el archivo con extensin .BIT que aparezca en su folder de trabajo y haga click en Open. En las

    siguientes dos ventanas que aparecen, simplemente haga click en Bypass. (Estas

    opciones indican que solamente se va a programar el FPGA, no las memorias que

    contiene la tarjeta).

    28. En la ventana que aparece, verifique que las opciones indicadas en la figura 16 se encuentran seleccionadas (solamente para Device 1. Los otros dos dispositivos no se

    utilizarn por el momento). Haga click en OK.

    Figura 16

    29. Seleccione el dispositivo marcado como xc3s500e y con el botn derecho, seleccione Program, como muestra la figura 17. Si el dispositivo se program correctamente, debe

    aparecer un mensaje azul con la leyenda Program Suceeded.

    Figura 17

  • Diseo Digital

    FCQI Tijuana M.C. Diego Trujillo / M.C. Jorge Loya

    30. Cierre la aplicacin iMPACT y revise el funcionamiento del circuito, manipulando el estado de los interruptores SW2, SW1 y SW0, observando los cambios en LD3.

    NOTA: Ya que el FPGA contiene celdas de memoria voltil, la informacin que haya

    programado en l nicamente estar disponible mientras la tarjeta se encuentre

    energizada. Cuando la tarjeta se desconecta de la alimentacin, el FPGA pierde la

    informacin guardada anteriormente y se restaura una aplicacin demostrativa que

    contiene una de las memorias de la tarjeta. PARA ENTREGAR

    1. Realice la descripcin en VHDL del circuito combinacional del cual le correspondi obtener su tabla de verdad en la prctica anterior, realice la simulacin correspondiente

    de todas sus entradas, asigne los pines correspondientes a las entradas y salidas, programe

    la tarjeta y compruebe su tabla de verdad con la operacin fsica del circuito.

    (Sugerencia: recuerde asignar los pines de entrada a los interruptores slide-switch y las

    salidas a alguno de los LEDs). nicamente muestre al instructor el circuito funcionando.

    2. Con ayuda de la tarjeta y del manual de usuario, anote los pines del FPGA que se encuentran conectados a cada uno de los siguientes elementos:

    a. Interruptores SW3 a SW0. b. LED7 a LED0. c. Interruptores izquierda / derecha / arriba / abajo. d. Interruptor rotatorio. e. Pantalla de cristal lquido.

    Conclusiones

    Agregar en el reporte los siguientes elementos:

    Tomando como referencia el circuito que describi, cul es la diferencia entre una seal y un puerto de entrada / salida?

    Cules seran las primeras ventajas que logra identificar mediante el uso de VHDL y un FPGA para disear circuitos digitales combinacionales?

    Cules seran las primeras desventajas que logra identificar mediante el uso de VHDL y un FPGA para disear circuitos digitales combinacionales?

    Con base en lo que conoce hasta ahora de un FPGA, cules piensa que podran ser las restricciones / limitaciones al momento de utilizar VHDL y un FPGA para implementar

    un circuito digital?

    De acuerdo con su experiencia de laboratorio, cules podran ser las dificultades para un usuario de estas herramientas (Xilinx ISE y Spartan3E)?