www.mikrocontroller.net

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


Autor: Christian Peters (kron)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christian Peters (kron)
Datum:

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

Autor: Uwe Bonnes (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Joerg (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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/d... 
reinzugucken. Dort findet man Diagramme, die die Abhaenigkeiten und 
Aufgaben der einzelnen Tools zeigen und die mir sehr geholfen haben.


  j.

Autor: Joerg Wolfram (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Klaus Falser (kfalser)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Till (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.


Autor: Jonathan Swift (psihodelia)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.