Forum: FPGA, VHDL & Co. Modelsim Abhängigkeiten


von Wilhelm (Gast)


Lesenswert?

Kann mir jemand erklären, wie man in Modelsim Abhängigkeiten von 
HDL-Files sich anzeigen lassen kann, z.B. in Form einer Dateiliste mit 
der richtigen Reihenfolge der zu kompilierenden HDLs ?

Hab gelesen dass es vmake gibt (vmake >Makefile). Aber dieses vmake 
trägt nur die HDLs in das Makefile ein, die man bereits in das 
work-Verzeichnis kompiliert hat. Mal abgesehen davon: Wozu soll dieses 
Makefile dann gut sein ? Kann man damit das Design neu kompilieren? Wenn 
ja, wie?

Vielleicht hat jemand ein paar Antworten, bin leicht verwirrt :-)

MfG,
Wilhelm

von Rick Dangerus (Gast)


Lesenswert?

M.E. probiert Modelsim beim Compilieren auch nur solange rum, bis es 
passt. Aber die ermittelte Reihenfolge sollte zumindest die 
Abhängigkeiten berücksichtigen. Ich habe mal irgendwo ein C++-Programm 
gesehen, welches die Abhängigkeiten aufgedröselt hat, aber ich weiss 
nicht mehr wo :-/

Rick

von user (Gast)


Lesenswert?

Also du kannst modelsim auf der console mit vcom compilieren lassen. 
Damit macht auch ein makefile sinn. Mit der Makefile kannst du dann auch 
die Abhängigkeiten modelieren.

vlib work
vcom datei1.vhd
vcom datei2.vhd

vlib legt ein work verzeichnis an
vcom compiliert die dateien

von Marcus H. (mharnisch) Benutzerseite


Lesenswert?

Wilhelm schrieb:
> Kann mir jemand erklären, wie man in Modelsim Abhängigkeiten von
> HDL-Files sich anzeigen lassen kann, z.B. in Form einer Dateiliste mit
> der richtigen Reihenfolge der zu kompilierenden HDLs ?

Interessieren Dich die genauen Abhängigkeitsregeln absolut 
beliebiger VHDL Dateien, oder reicht es, echte Projektdateien in der 
richtigen Reihenfolge übersetzen zu lassen? In letzterem Fall genügt es 
doch, die Übersetzung auf spezielle Designeinheiten zu beschränken.
1
  -just eapbc        Compile only selected design unit kinds
2
                     (e=entity, a=arch, p=package, b=body, c=config)

Die Reihenfolge p-e-a-b-c sollte schon mal ganz gute Ergebnisse bringen.

Viel Spaß
Marcus

von Wilhelm (Gast)


Lesenswert?

>Reihenfolge p-e-a-b-c

Wie macht man das ?

von Wilhelm (Gast)


Lesenswert?

Hallo user,

kannst du mir die einzelnen Schritte näher erklären ?

von Wilhelm (Gast)


Lesenswert?

Am sinnvollsten wäre eine Anwendung, mittels derer man die 
Abhängigkeiten von HDL-Dateien in einem Ordner herausfindet und die 
HDL-Dateinamen in der richtigen Reihenfolge in einer Dateiliste ausgeben 
lässt, um die Liste dann im eigenen DO-Skript verwenden zu können. 
Scheint mir doch ein alltägliches Problem zu sein, wundert mich nur, 
dass es da noch nichts Fertiges für gibt.

Gruß,
Wilhelm

von berndl (Gast)


Lesenswert?

ich hatte da mal ein kleines Perl Script gepostet, mag ja als Basis 
dienen...

von berndl (Gast)


Lesenswert?

oehm zu schnell gewesen, hier der Link:

Beitrag "Verifikationsplan"

von Kest (Gast)


Lesenswert?

hab selber nicht ausprobiert, aber kann sowas XEMacs nicht machen? 
Einfach auf "Generate makefile" klicken und schon hat man eine Datei, wo 
die Abhängigkeiten drin sind?

Kest

von Wilhelm (Gast)


Angehängte Dateien:

Lesenswert?

Hi Kest,

ja im Prinzip schon. Aber das generierte MakeFile (siehe Anhang) ist 
recht unübersichtlich (ab einer gewissen Größe). Könnte man aus diesem 
File alle HDL-Pfadangaben extrahieren und in ein separates File 
speichern? Also eine Art Liste ... ?

Gruß,
Wilhelm

von Marcus H. (mharnisch) Benutzerseite


Lesenswert?

Wilhelm schrieb:
>>Reihenfolge p-e-a-b-c
>
> Wie macht man das ?

In dem man sich nach diesem Hinweis die Doku greift und die Details 
nachliest ;-)

In etwa so (ungetestet, da kein VHDL Projekt zur Hand):

vcom -just p *.vhd
vcom -just e *.vhd
...

Viel Erfolg
Marcus

von Daniel -. (root)


Lesenswert?

es ist schon eine Weile her, aber ich glaube GHDL kann mit
einem Schalter (war's? -m) die Abhängigkeiten auflösen.
Vielleicht printet er sie auch aus.

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.