Ahora dejamos el PlanAhead, y volvemos al ISE Project Navigator. Pero para el paso que vamos a dar es importante asegurarse que el interruptor de alimentación de la placa Core3S250E esté en ON.
Una vez asegurado que la placa está alimentada, vamos al ISE
Project Navigator y comprobamos que en el campo “Top Module” sigue escrito
LEDA_blog y en la ventana Hierarchy está seleccionado el archivo LEDA_blog.vhd.
Después vamos a la ventana “Process LEDA_blog” y con ayuda del scroll buscamos
la opción “Configuration Target Device”.
Hacemos doble clic en “Configure Target Device”.
Observamos que se van ejecutando automáticamente pasos
anteriores como la Synthesis, el Implement Design y el Generate Programming
File. No preocupar se si sale en algún paso sale un triangulo amarillo con un
signo de admiración negro dentro, es sólo un warning o advertencia que en este
caso no tendrá consecuencias significativas (otra cosa es si saliera un circulo
rojo que es error y nos obliga a revisar que hemos hecho mal).
Después de unos segundos, nos aparece el siguiente cuadro de
diálogo dónde tenemos que dar a OK.
Esto lanzará una nueva ventana del paquete de software de
XILINX instalado llamado ISE iMPACT.
Con el ISE iMPACT es como finalmente programamos el
hardware.
Hacemos doble clic en “Boundary Scan”:
Se tiene:
En el area principal con la etiqueta “Boundary Scan” (como
se observa en la anterior figura), aparece justo en el centro en azul un
mensaje que dice así:
Right click to Add Device or
Initialize JTAG chain
Situamos el cursor encima de este mensaje y pulsamos el
botón derecho del ratón, nos aparecerá un desplegable y en el hacemos clic en
“Initialize Chain”.
Como resultado tenemos:
Hacemos clic en “Yes”, obteniendo:
Ahora tenemos una nueva ventana, haciendo esta ventana
tenemos que navegar hasta encontrar la ubicación de nuestro proyecto. Tal y
como lo estoy haciendo en este tutorial estaría en:
C:\Users\Nombre_usuario\Desktop\Proyectos
XILINX del blog\LED_blog
En dicho path encontramos un archivo (con color blanco en la
figura anterior) llamado leda_blog.bit. Lo seleccionamos y pulsamos “Open”.
Tendremos como resultado que a la FPGA se le a asignado el
archivo leda_blog.bit y que nos pide ahora que le asignemos algún archivo a la
memoria flash. Por el momento hacemos clic en “No”.
Finalmente hemos obtenido un cuadro de diálogo como el
mostrado en la captura de pantalla anterior, y aquí es dónde haremos que la
FPGA se pueda programar veamos como:
Seleccionamos Device 2 (PROM xcf02s). Si investigas en los links que te da waveshare (como el que ya dejé llamado www.waveshare.com/wiki/Open3S250E) puedes ver que el Open3S25E tiene una memoria flash de tipo xcf02s de 2 Megas de memoria.
Y activamos el casillero de Load FPGA.
Clic en OK.
Ahora hacemos clic en el dispositivo xc3s250e (leda_blog.bit).
Si nos fijamos en el área iMPACT Proceses -señalado en la
imagen anterior- podemos observar que ahora tenemos una nueva operación
disponible llamada Program.
Hacemos doble clic en Program y si todo ha ido bien verás
como en el tarjeta hardware se van encendiendo sucesivamente los LEDs L4, L3,
L2 y L1 (además de mantenerse encendido el FLAG_LED junto al PWR_LED que se
enciende desde el momento que pones el interruptor de la tarjeta en ON).
Si pulsamos el botón de la placa RESET, vemos que la
secuencia de encendido de LEDs continua,
Sin embargo si pulsamos el botón nCONFIG la secuencia se
para apagando se todos los LEDs.
Esto sucede porque en realidad no hemos cargado el programa
en la memoria flash que es una memoria no volátil (como si fuera una EEPROM por
ejemplo). Hemos cargado directamente el programa en la RAM de la FPGA.
Cuando presionamos el RESET lo que hay en ese momento en la
memoria volátil (como una RAM) se reinicia ejecutándose de nuevo el programa.
Sin embargo cuando se pulsa nCONFIG, es un tipo de
re-iniciado diferente, es como si apagáramos la alimentación y la volviéramos a
activar, como no hay nada en la memoria no-volátil, el resultado es que no
actúa ningún programa.
En el siguiente apartado veremos como resolver esto.
También es importante señalar que normalmente puedes
programar lo las veces que quieras, pero hay ocasiones en que al hacer clic en
la operación Program falla. En ese caso suele arreglarse de una forma poco
ortodoxa pero eficaz.
Se pone el interruptor de la placa en OFF, se desconecta el
cable que viene del modulo (de color blanco) XILINX Platform Cable USB a el
ordenador (mediante un terminal USB de este), y se vuelve a conectar al PC y se
pone el interruptor de la placa de nuevo en ON.
ES el viejo método de desconectar el cable y volverlo a
conectar, como a veces hacemos muchas personas con los routers cuando falla la
conexión con Internet vía wifi.
En mi caso el que se desconecta y se vuelve a conectar es el
cable azul.
0 comentarios: