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...
Hola,
No se si conoces este lugar y si puede ayudarte con tus dudas. A mi me parece una web muy buena para empezar, ya que trata todos los temas de las FPGAs, tiene muchos links, tutoriales, ejemplos, etc (muy completa).
Saludos
Yo he utilizado el Modelsim SE 6.4a, el Precision Synthesis 2008a.42 y el Xilinx ISE Design Suite 12.3 para las prácticas de la uni, y tengo los tutoriales de cómo se uitlizan, te los paso al correo
S2
Ranganok Schahzaman
Gracias a los dos por ayudar.
@Juanjo: 😳 😳 Gracias por recordarme que tengo el link de fpga4fun en favoritos, junto a Opencores.org y Xilinx.com 😳 😳
Los apuntes estos, les voy a echar una ojeada, tal y como ya he hecho con fpga4fun.
Respecto de la página web en cuestión, es muy interesante y completa. El único 'pero' es que este gilip... que suscribe quiere aprender VHDL, y los chicos de fpga4fun, así como otros muchos, tienen la mayoría del código en Verilog. Lo cual no quita que den ideas muy buenas, yo ya me he cogido unas cuantas.
Sin embargo, lo que necesito de verdad es coger soltura con las herramientas y la depuración. Aprender a programar en VHDL (o verilog más adelante si es el caso) no me asusta tanto. Una entidad descrita como estructura no deja de ser un netlist, que es básicamente lo que hace Altium: crea netlists en formato VHDL a partir de las librerías de componentes, o instancia sheet simbols que hacen referencia a un archivo VHDl (vale, con un wrapper), y punto.
Y hablando de depurar y herramientas, con el osciloscopio y algo de tiempo, me he encontrado lo que creo que es el problema de este diseño: utilizo el flanco de reloj equivocado (uso el de subida, cuando creo que necesito usar el de bajada). Lo cambio cuando el Altium me arranque (esto es otra historia aparte), lo compilo, lo programo, e informo.
Gracias otra vez.
Hola, por casa tengo los apuntes de VHDL y un libro a ver si los encuentro y te los envío.
S
Ranganok Schahzaman