¿Usando Webpack desde la línea de comando, pero sin un archivo de proyecto?

Recientemente conseguí que Webpack funcionara para mí en mi sistema Linux... pero traté de usar ISim para simular mis diseños y tuve un problema. Y por lo que puedo decir, este problema no es un problema de Xilinx, ya que no estoy usando un sistema operativo compatible (Arch Linux)... y no puedo encontrar la manera de solucionarlo... así que voy hacer algo que, con suerte, sea más fácil a largo plazo.

De todos modos, quiero usar ghdl/gtkwave para la simulación, y luego usar las herramientas de Webpack solo cuando necesito generar un flujo de bits para cargarlo en mi FPGA... Y quiero que todo se ejecute fácilmente desde un archivo MAKE. Sin embargo, de todos los archivos MAKE que he visto para usar sus herramientas de línea de comandos, todos requieren un archivo de proyecto. Realmente preferiría especificar archivos manualmente de alguna manera en mi archivo MAKE. Preferiría no tener que hacerlo, cada vez que agrego un archivo, cambio el proyecto y mi archivo MAKE. es posible?

Respuestas (2)

No es que yo sea consciente. Otro enfoque es usar una secuencia de comandos en lugar de un archivo MAKE. La secuencia de comandos puede crear el archivo del proyecto para que no tenga que editar manualmente varios archivos.

Puede usar TCL para controlar las herramientas ISE. Las herramientas ISE generarán un código de ejemplo para usted. Puede encontrar más información sobre el uso de TCL aquí, http://devbisme.webfactional.com/blogs/devbisme/2012/04/03/running-weeds

Si desea una opción de Python para crear proyectos Xilinx ISE, consulte los scripts de Python de Guenter Dannoritzer, que generan el tcl subyacente, pero la interfaz OO en Python es mejor que generar tcl directamente, http://www.myhdl.org/doku.php /proyectos:ise_py . He realizado algunas actualizaciones en los scripts aquí, https://bitbucket.org/cfelton/examples/src/tip/tools

Un ejemplo, puede crear rápida y fácilmente un proyecto ISE.

# set up pin configuration for the FPGA
fpga = Fpga(path=ppath)
fpga.setPin('clk', 'P124')
fpga.setPin('srst', 'P8')
fpga.setPin('led<0>', 'P92')
fpga.setPin('led<1>', 'P93')
fpga.setPin('led<2>', 'P95')
fpga.setPin('led<3>', 'P96')
fpga.setPin('led<4>', 'P97')
fpga.setPin('led<5>', 'P98')
fpga.setPin('led<6>', 'P99')
fpga.setPin('led<7>', 'P100')
fpga.setDevice('spartan3', 'xc3s400', 'tq144', '-5')

imp = Xilinx(ppath, 'stroby')

imp.setFpga(fpga)
imp.addHdl((vfile))
imp.createTcl() 
imp.run()

¿Es esto cualquier uso:

http://www.excamera.com/esfinge/fpga-makefile.html

Buscar en Google "xilinx makefile" muestra a muchas personas haciendo cosas similares.

Mi enfoque personal: para los sistemas que no son EDK, tengo un sistema basado en secuencias de comandos que simplemente ejecuta todos los pasos requeridos en orden sin ninguna "inteligencia"; por lo general, estos diseños son pequeños, por lo que una ejecución completa solo toma 5 minutos más o menos.

Los diseños más grandes generalmente se realizan dentro de EDK, luego construyo sobre el archivo MAKE de Xilinx (incluido el de ellos en el mío)