Wie synthetisiere ich mit Kommandozeile

#514533
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?
#514544
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
Gast #514627
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...
#514651
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
#514689
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
Angehängte Dateien:
Gast #514915
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.
Gast #518073
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.

#555047
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 ?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren