Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Hola:
Hace dos semanas que por fin me he metido en uno de mis temas más obsesivos y fetiche: las FPGA. Como no había manera de encontrar el momento de empezar a hacer algo real, en el curro me he 'autoimpuesto' un proyecto con una Xilinx Spartan 3AN, para así tener la excusa y a la vez la necesidad de meterme en este mundo desconocido para mí.
Resulta que como hace años que trabajo con Altium, y ésta hace mucha propaganda sobre la capacidad de trabajar de manera embebida con las FPGA de cualquier fabricante desde su propio sistema, decidí hacer el proyecto directamente desde Altium, tanto la PCB (obvio) como la parte de FPGA. Si tenemos en cuenta que el JTAG para FPGA venía de regalo con la licencia de Altium 2010 Summer edition, pues la decisión parecía obvia: no tengo ninguna experiencia en los programas propios de ningún fabricante de FPGA.
Pues después de un par de semanas, me he dado cuenta que ha sido un grave error. Aunque la captura de esquemas y la edición de VHDL desde Altium es tan buena como me parecía esperar, la integración de su FPGA y sus herramientas deja bastante que desear. De hecho, parece que el soporte para su propio JTAG es poco más que un mini parche. Y la fuente de algunos problemas.
En mi caso particular, resulta que tengo problemas primero debido a que el contacto del JTAG deja bastante que desear, a nivel de conector, lo cual hace que no siempre detecte correctamente la FPGA. En segundo lugar, y más problemático, es que no programa correctamente la FPGA, y encima no me deja configurar o grabar los datos de configuración en la Flash interna (una de las particularidades de las Spartan 3AN, y principal motivo por el que he escogido este modelo). Tiene que ser un problema meramente de SW o de gestión del JTAG de Altium, pues el mismo bitfile, programado con la Platform Cable USB de Xilinx, con el ISE iMPACT funciona perfecto.
Mientras que desde Altium no puedo borrar ni configurar (ni por extensión, programar) la flash interna, poniendo problemas de comunicación con la misma, desde el iMPACT, funciona perfecto. No sólo eso, si no que el mismo programa que funciona con el iMPACT, compilado desde el Altium, al intentar programar lo mismo desde el Altium, no va. Y mira que es simplemente un reloj con un divisor que hace parpadear un LED...
Si añadimos que las herramientas de depuración, en Altium, se hacen a través de un 'software JTAG' separado que usa 4 pines más, mientras que en Xilinx (y parece ser que también desde Altera), las mismas herramientas se usan a través el mismo JTAG de programación, ahorrando así cuatro pines. No es que haya problemas de pines de I/O en las FPGA, precisamente, pero ya hay que preveer un conector de depuración más grande. E inútil.
Así pues, recomiendo que la gente no trabaje con Xilinx y Altium a la vez, utilizando para las FPGA siempre las herramientas del fabricante. Lo peor es que ahora tendré que aprender a usar el ISE Webpack y/o el Vivado Design Suite Webpack edition de Xilinx, que parece ser muchos más complicado (quizás más potente?) que las herramientas de Altera. Si añadimos que el compañero que tiene experiencia con FPGA sólo usa Altera, que es lo que más conoce (como siempre, uno se mantiene en lo que ya conoce, si le funciona), me temo que tengo una dura curva de aprendizaje por delante. Tiempo valioso del que apenas dispongo en estos momentos, y en el trabajo, pues tampoco están muy contentos con esta situación...
Ya he recibido el correo, pero no me lo he podido mirar.
Aún así, he conseguido solucionar los fallos que tenía: la señal de clock en el flanco equivocado, tal y como comenté, y una señal síncrona que debe ser asíncrona. He corregido los fallos, y ahora funciona.
Me queda mucho por aprender, así que la literatura será bien venida. Ahora lo mejor es que ya tengo con que jugar.
De todas maneras, ya me ha quedado claro que el JTAG de Altium NO es el camino a seguir, y que lo mejor es ir trabajando con las herramientas de la casa. De momento continuaré con Xilinx, luego ya haré algo con Altera, que también hay placas en el curro que me puedo llevar a casa.
La mejor herramienta que he encontrado hasta ahora, se llama osciloscopio. Con uno que tenemos de cuatro canales he podido encontrar todos los problemas, pero este caso es sencillo. Ya veremos cuando empiece a complicarme la vida. Primero hay que gatear, antes que andar.
Gracias por la ayuda!!
No el tuto de VHDL todavía no te lo he enviado, lo que te envié era el tuto de Xilling
S2
Ranganok Schahzaman
😳 Pues en lugar de leer, he estado montando otra placa, diseño de un compañero, con una Spartan 6, para probar con el ISE Webpack 😈 Ahora mismito está a mi lado, intentando lidiar con el iMPACT, que me da error desconocido ¿?
Yo creo que terminaré comprando una de estas:
http://www.kickstarter.com/projects/1106670630/mojo-digital-design-for-the-hobbyist?ref=category " onclick="window.open(this.href);return false;
S2
Ranganok Schahzaman
Hola chicos sucede que en este momento estoy trabajando con FPGA's en una materia de la U que se llama Diseño digital, he comprado una FPGA Xilinx Spartan®-6 LX45 FPGA in a 324-pin BGA package la cual tiene una memoria DDR2, resulta que estoy trabajando con los puertos HDMI pero necesito hacer un controlador de memoria, he trabajado un poco con el CORE generator de ISE webpack pero aun tengo muchas dudas si depronto alguno de ustedes sabe trabajar el CORE generator para hacer un controlador de memoria o tienen otra idea de como hacerlo se los agradeceria estoy dispuesto a escuchar ideas