Curso VHDL – Configurando una tarjeta Nexys 2

Hace poco conseguí una tarjeta Nexys 2, esta será con la que desarrollaremos los próximos ejemplos del curso :).
Para empezar, en este entrega realizaremos las modificaciones necesarias al proyecto que descargamos a la tarjeta Spartan 3 Starter para poder ahora configurar la tarjeta Nexys.

Muy bien, entonces, abrimos nuestro proyecto en Project Navigator, en la ventana Hierarchy vemos el nombre del proyecto y debajo el modelo del dispositivo “objetivo”, es decir, el dispositivo al que está destinado nuestro diseño

Hacemos clic con el botón derecho sobre el nombre del dispositivo y, en el menú que aparece, seleccionamos la opción Design Properties…:

Aparecerá la ventana de propiedades del diseño, los parámetros a modificar son la familia, el dispositivo y el encapsulado, deben quedar de la siguiente forma:

Una vez hechos los cambios hacemos clic en el botón OK.
Con esto ya indicamos que el diseño está ahora destinado al FPGA de la tarjeta Nexys 2 (Spartan 3E-500), lo siguiente que debemos modificar es el mapeo de pines del FPGA con las entradas/salidas de nuestro diseño. Al igual que hicimos con la tarjeta Starter, usaremos tres interruptores (SW0, SW1 y SW2) como entradas y dos leds (LD0 y LD1), como vemos, en cuanto a la identificación de los elementos, son los mismos en la tarjeta Nexys 2 que en la Starter, lo que cambia son los pines del FPGA que están conectados a dichos elementos, esto se muestra en la siguiente tabla:

E/S Elemento en la tarjeta Pin del FPGA en la tarjeta Starter Pin del FPGA en la tarjeta Nexys2
EntradaA SW0 F12 B18
EntradaB SW1 G12 D18
Cin SW2 H14 J15
Suma LD0 K12 J14
Cout LD1 P14 E18


Nota: los pines del FPGA a los que están conectados cada uno de los elementos de la tarjeta se indican en la misma tarjeta, entre paréntesis al lado del identificador del elemento.

Bien, entonces debemos cambiar los pines para las entradas y salidas de nuestro diseño, pero en esta ocasión no lo haremos con el programa PlanAhead, sino directamente en el archivo UCF, el cual es un archivo de texto con las instrucciones para mapear las señales con los pines correspondientes del FPGA. Para abrir este archivo, en la ventana de diseño, hacemos doble clic sobre él, en el caso de nuestro proyecto el archivo se llama sumador_completo.ucf:

Al hacer doble clic, el archivo se abre en la ventana de edición mostrando lo siguiente:

Podemos ver la sintaxis para indicar la conexión de un puerto (o red) de nuestro diseño con un pin del FPGA, también observamos que los pines indicados corresponden con los de la tarjeta Starter, debemos modificarlos por los que corresponden al FPGA de la tarjeta Nexys 2, deberían quedar así:

Guardamos el archivo y ahora procedemos con la generación del archivo de configuración que se descargará al FPGA, para ello en la ventana de diseño hacemos clic sobre el nombre del proyecto, después en la ventana de procesos hacemos doble clic sobre Generate Programming File, si no hay problemas se muestran marcas de aprobación a la izquierda de cada proceso ejecutado:

Con esto, ya estamos listos para descargar el archivo de configuración al FPGA, para ello, nuevamente usaremos el programa Adept de Digilent, con la diferencia de que en esta ocasión usaremos el cable USBA-miniUSB incluido con la tarjeta. Conectamos la tarjeta mediante el cable USB a la PC (esta tarjeta recibe su alimentación a través del puerto USB, no necesita fuente de alimentación extra) e iniciamos el programa Adept, este revisará los dispositivos disponibles para configurar y los mostrará en la ventana principal:

Nos muestra un FPGA XC3S500E y una PROM XCF04S, además, podemos notar que en este caso, Adept también ha identificado la tarjeta Nexys 2.
Ahora, hacemos clic en el botón Browse… ubicado a la derecha del cuadro que representa al FPGA XC3S500E, se muestra un diálogo de exploración en el que debemos indicar el archivo .bit con el que se configurará el FPGA, en nuestro caso sumador_completo.bit, después de ello hacemos clic en el botón Program que se encuentra a la derecha, iniciará el proceso de programación:

Si la programación se efectuó sin problemas, aparecerá el mensaje Programming Successful. en la parte inferior de la ventana de Adept:

Ahora solo nos resta probar el diseño:




Muy bien, hasta aquí llegamos en esta entrega, nos vemos en la próxima :).

11 comentarios en “Curso VHDL – Configurando una tarjeta Nexys 2”

  1. josemachorro@yahoo.com.mx también copiar PF

    Te felicito. Tomaré mi primer curso de fpga con la misma tarjeta .
    Estudiaré tu curso y espero además de aprender, darte retro.

    Tengo un amigo que hace videos, edita , subtitula, y los sube, podria ayudarte. Avísame si te interesa
    Mil gracias
    JIMV

  2. Qué tal, muchas gracias por la felicitación, espero que te sirva lo poco que hasta la fecha he podido publicar, cualquier comentario es bienvenido.

    Si me interesa, pero últimamente he tenido muy poco tiempo para publicar algo, estoy de lleno en el trabajo, aunque la próxima semana liberamos el proyecto en el que hemos estado trabajando y probablemente consiga un poco de tiempo :).

    1. Si estás en México, lo más rápido es Robodacta: http://www.robodacta.com.mx, en estos momentos las tienen en existencia, si estás en la cd. de México, mucho mejor.

      Desde cualquier país, puedes adquirirlas en el sitio web de Digilent: http://www.digilentinc.com, el envío vía UPS o FedEx es bastante rápido, en una semana deberían llegar, el único detalle es que no sabes con exactitud si se te hará un cobro extra por la importación o no, y de cuánto será.

  3. Hola.
    Buenas tardes.
    Tengo una pregunta:

    ¿Como hacer que el programa cargado en la tarjeta, quede guardado a la hora de desconectar su alimentación, y este listo para volverlo a usar cuando se alimente de nuevo, sin la necesidad de cargar de nueva cuenta el programa?

    1. La tarjeta Nexys está configurada para que, al encender, el FPGA intente cargar su configuración desde la memoria que se encuentra en la tarjeta, lo que debes hacer es grabar tu archivo de configuración a la memoria, así la próxima vez que encienda el FPGA cargará tu programa.

      1. Gracias por la respuesta! 🙂
        y una disculpa por no especificar jeje.. lo que pasa es que tengo una tarjeta Basys-2 y he intentado grabar el programa a la PROM y me marca una advertencia acerca del CLK y pues el programa no se queda grabado :S

        estoy dejando pasar algo?
        gracias

  4. disculpa, no se si podrias ayudarme con un problema, es que ne cesito conectar una entrada externa a la nexys y no he podido,

    mi proyecto era en un principio solo con circuitos integrados 74157 y 7483, consistia en sumar 2 numeros binarios de 8 bits y mostrarlos en dos display de 7 seg, pero como la ultima etapa(convertir 8 bits a bcd) era muy larga obtamos por utilizar la nexys, pero el problema es que no he podido conectar las salidas del sumador (7483) a la nexys. he leido lo de Peripheral Connectors del Diigiillentt Nexys2 Board
    Refference Manuall, pero no lo he resuelto, lo que hice fue conectar las salidas del sumador a un Pmod JA y unir la tierra de la nexys con la del sumador
    e

    1. ¿Qué voltaje estás utilizando? ¿5V o 3V? Ahorita no recuerdo pero verifica que los pines a los que estás conectando del FPGA lo soporten.

      Antes de conectar la salida del sumador, confirma que todo funcione con algo más sencillo: haz un proyecto en el que enciendas un led de la tarjeta cuando conectes una señal por el conector que estás intentando utilizar.

  5. buenas tardes… me gustaría saber si me podrías dar algún curso intensivo, necesito aprender lo más rápido posible.. cuento con el software y una nexys 2, me urge aprender maquinas de estados, comunicación serial y manejo de puerto de video… te dejo mi correo para que puedas contactarte conmigo.. giovascamacho@gmail.com
    de ante mano gracias

Deja un comentario