Webpack über die Befehlszeile verwenden, aber ohne Projektdatei?

Ich habe kürzlich Webpack dazu gebracht, auf meinem Linux-System für mich zu arbeiten ... aber ich habe versucht, ISim für die Simulation meiner Designs zu verwenden, und wurde von einem Problem getroffen. Und soweit ich das beurteilen kann, ist dieses Problem nicht das Problem von Xilinx, da ich kein unterstütztes Betriebssystem (Arch Linux) verwende ... und ich kann nicht herausfinden, wie ich es beheben kann ... also gehe ich etwas zu tun, was auf Dauer hoffentlich einfacher ist.

Wie auch immer, ich möchte ghdl/gtkwave für die Simulation verwenden und dann die Tools von Webpack nur dann verwenden, wenn ich einen Bitstream zum Hochladen auf mein FPGA generieren muss ... Und ich möchte, dass alles einfach von einem Makefile ausgeführt wird. Von allen Makefiles, die ich für die Verwendung ihrer Befehlszeilentools gesehen habe, benötigen sie jedoch alle eine Projektdatei. Ich würde wirklich lieber Dateien irgendwie manuell in meinem Makefile angeben. Ich möchte lieber nicht jedes Mal, wenn ich eine Datei hinzufüge, das Projekt und mein Makefile ändern. Ist das möglich?

Antworten (2)

Nicht, dass ich wüsste. Ein anderer Ansatz ist die Verwendung eines Skripts anstelle eines Makefiles. Das Skript kann dann die Projektdatei erstellen, sodass Sie nicht mehrere Dateien manuell bearbeiten müssen.

Sie können TCL verwenden, um die ISE-Tools zu steuern. Die ISE-Tools generieren Beispielcode für Sie. Weitere Informationen zur Verwendung von TCL finden Sie hier: http://devbisme.webfactional.com/blogs/devbisme/2012/04/03/running-weeds

Wenn Sie eine Python-Option zum Erstellen von Xilinx ISE-Projekten wünschen, sehen Sie sich die Python-Skripte von Guenter Dannoritzer an, die das zugrunde liegende tcl generieren, aber die OO-Schnittstelle in Python ist besser als das direkte Generieren von tcl, http://www.myhdl.org/doku.php /projects:ise_py . Ich habe einige Aktualisierungen an den Skripten hier vorgenommen, https://bitbucket.org/cfelton/examples/src/tip/tools

Beispielsweise können Sie schnell und einfach ein ISE-Projekt erstellen.

# 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()

nützt das was:

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

Das Googeln von "xilinx makefile" zeigt, dass viele Leute ähnliche Dinge tun.

Mein persönlicher Ansatz: Für Nicht-EDK-Systeme habe ich ein skriptbasiertes System, das einfach alle erforderlichen Schritte ohne "Klugheit" durchläuft - normalerweise sind diese Designs klein, sodass ein vollständiger Durchlauf nur etwa 5 Minuten dauert

Größere Designs werden normalerweise in EDK erstellt, dann baue ich auf dem Makefile von Xilinx auf (einschließlich ihres in meinem).