Forum: FPGA, VHDL & Co. Wie synthetisiere ich mit Kommandozeile


von Christian P. (kron)


Lesenswert?

Hallo,

ich habe in einigen Threads schon gelesen,
dass man die Synthese, Mapping etc. mit Kommandozeilen
ausführen solle.
Wie funktioniert das und was bringt das genau?
Das einzige, was ich mir jetzt vorstellen kann,
sind irgendwelche spezielle Optionen beim synthetisieren,
die damit übergeben werden und nicht immer wieder
in der GUI eingestellt werden müssen.
Gibt's da noch was anderes, oder ist es das?

von Klaus F. (kfalser)


Lesenswert?

Spezielle Optionen, die in der GUI fehlen und die man von der 
Commandozeile aufrufen kann gibt es eher nicht. Die GUI sollte schon 
alle möglichen Einstellungen abdecken.
Es gibt aber Leute (ich gehöre dazu), die lieber mit der Tastatur 
arbeiten als mit der Maus alles mögliche anzuklicken und die die 
Xilinx-GUI nicht mögen (da gehöre ich auch wieder dazu).
Außerdem hat man, wenn man den ganzen Ablauf in ein makefile steckt, nur 
mehr text-basierte Quellfiles, was für die Versionskontrolle mittels CVS 
oder ähnlichem günstiger ist.
Wenn man solch ein makefile einmal hat, ist es kein großes Problem es an 
weitere Projekte anzupassen.

Klaus

von Christian P. (kron)


Lesenswert?

Ok, und wie sieht so ein Makefile aus,
bzw. wo steht, was da alles reinkann oder muss?

von Uwe Bonnes (Gast)


Lesenswert?

Wenn Du mit ISE und einem Projekt arbeitest, werden im 
Projektarbeitsverzeichnis als <projekt>.cmd_log die Aufrufe der 
einzelnen Programme mitgeschrieben. Auf der Kommandozeile die 
entsprechenden Environmentvariablen setzte und dann das Kommando in die 
Kommandozeile hineinkopieren und ausfuehren.


Bzgl. Makefile: Viele Leute scheinen sie zu verwenden, meine Bitten, ein 
Beispiel zu posten bleiben aber bisher immer unbeantwortet...

von Joerg (Gast)


Lesenswert?

Hallo,


Ich habe mal unter http://www.openreconf.org/wiki/Xilinx_Makefile ein 
paar Dinge dokumentiert, die ich darueber weiss.

Abgesehen davon kann ich nur empfehlen mal in 
http://www.xilinx.com/support/sw_manuals/xilinx9/download/dev.zip 
reinzugucken. Dort findet man Diagramme, die die Abhaenigkeiten und 
Aufgaben der einzelnen Tools zeigen und die mir sehr geholfen haben.


  j.

von Joerg W. (joergwolfram)


Lesenswert?

Für den Fall Linux, VHDL und CPLD's habe ich mir ein Shellscript 
geschrieben, welches den gesamten Ablauf weitestgehend automatisiert. So 
brauche ich nur noch VHDL- und ucf Dateien zu erstellen, Script im 
Verzeichnis (eventuell mit ein paar Optionen) starten und fertig. Die 
GUI finde ich unter langsameren Rechnern einfach unbedienbar.

http://www.jcwolfram.de/projekte/cpldlinux/main.php oder bei berlios.de 
nach  vhdl2cpld suchen.

Gruß Jörg

von Rick Dangerus (Gast)


Lesenswert?

@Uwe und andere:

Unter

http://www.xess.com/appnotes/makefile.html

gibt es ein Beispiel, mit welchem sich (nach kleineren Anpassungen) 
arbeiten läßt. Ein weiterer Vorteil: der ganze Vorgang  spart ungefähr 
30% Zeit gegenüber dem Ablauf in der ISE/IDE.

Rick

von Klaus F. (kfalser)


Angehängte Dateien:

Lesenswert?

> Bzgl. Makefile: Viele Leute scheinen sie zu verwenden, meine Bitten, ein
> Beispiel zu posten bleiben aber bisher immer unbeantwortet...

Ich hätte geglaubt, daß es genug Informationen dazu gibt, aber ich kann 
ja mal kurz beschreiben, wie ich es mache.
Mich hat es immer gestört, daß bei der ISE-GUI alle Dateien irgendwie 
ins Projektverzeichnis geschmissen werden. Deshalb gibt es bei mir für 
die verschiedenen Schritte Unterverzeichnisse.

\Project-Verzeichnis mit Quellfiles
 +  makefile (top)
 +  Quellfiles (*.vhd)
 |
 +  \XST (Unterverzeichnis zur Synthese, separates Makefile, xst.r )
 |    +  makefile
 |    +  xst.scr        (script für XST)
 |    +  project.prj    (liste der Files)
 |
 +  \ModelSim (Unterverzeichnis zur Simulation, separates Makefile)
 |
 +  \Xilinx (Unterverzeichnis zum Fitten, separates Makefile)
      + makefile   (für Place & route)

Das ganze arbeitet in der Cygwin-Umgebung (lang lebe Unix!).

Klaus

von yalu (Gast)


Lesenswert?

Die Vorteile aus meiner Sicht:

- Kürzere Gesamtdurchlaufzeiten (wie Rick Dangerus bereits schrieb)

- Niedrigerer Speicherbedarf: Der Rechner fängt später an zu swappen,
  steigt die Geschwindigkeit in einigen Fällen weiter.

- Das von mir verwendete ISE 8.1i hat ein Speicherloch, das dazu
  führt, dass nach ca. 4 (unter Windows) oder 6 (Linux) Durchläufen
  der Speicherverbrauch so stark angestiegen ist, dass ich den
  Projektnavigator neu starten muss (kostet wieder Zeit). Beim Start
  der einzelnen Tools aus einem Shellskript oder einem Makefile
  entfällt dieses Problem.

- Bei einem auf die persönlichen Bedürfnisse angepasstem Makefile sind
  die öfter geänderten Einstellungen alle am Anfang der Datei
  zusammengefasst und können so sehr schnell überblickt werden und
  müssen nicht durch wilde Klickerei zusammengesucht werden.

Der beim ISE eingebaute Texteditor ist auch nicht so toll, dass man
deswegen die Unhandlichkeit des ganzen Navigatorgedöns in Kauf nehmen
möchte.

Ich kenne jemanden, der bei einem Chip-Hersteller arbeitet. Dort
benutzt niemand den Navigator, höchstens zur Einarbeitung. Dafür ist
er auch sehr gut geeignet und wohl auch primär vorgesehen.

von Till (Gast)


Lesenswert?

Ich kann das hier geschriebene voll und ganz bestätigen. Ich nutze das 
Xess-Makefile mit ISE 8.1i unter Linux und brauche damit weniger 
Speicher und  Zeit als mit der IDE.

Bei Xess gibt es ein paar kleine Perl-Skripte, die alle nötigen 
Informationen aus den Xilinx-Metadateien extrahieren. Leider hat Xilinx 
die Projekt-Dateien vor ein oder zwei Versionen von Klartext auf ein 
unbekanntes Binärformat umgestellt, so dass die Tools nicht mehr alles 
auslesen können. So ist einige Handarbeit nötig, bevor man das Makefile 
anwenden kann.

Wenn man sehr viel Zeit hat, kann man sich auch die Doku zu den 
einzelnen Tools (XST, PAR, etc.) durchlesen und alles selbst bauen. In 
der ISE-Doku wird so ziemlich jede Kommandozeilen-Option beschrieben...

Gruß, Till.


von Jonathan S. (psihodelia)


Lesenswert?

> Bei Xess gibt es ein paar kleine Perl-Skripte, die alle nötigen
> Informationen aus den Xilinx-Metadateien extrahieren. Leider hat Xilinx
> die Projekt-Dateien vor ein oder zwei Versionen von Klartext auf ein
> unbekanntes Binärformat umgestellt, so dass die Tools nicht mehr alles
> auslesen können. So ist einige Handarbeit nötig, bevor man das Makefile
> anwenden kann.
> Gruß, Till.

Kannst du bitte dein Makefile zeigen ?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.