Forum: FPGA, VHDL & Co. ActiveHdl (Lattice Edition): .do und .bat Scripte verheiraten


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Fpga I. (fpga-ing)


Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

für meine Simulationen mit ActiveHdl verwende ich .do Scripte, mit denen 
ich meine Simulation steuern kann. Zum simulieren öffne ich dann 
ActiveHdl, wechsle in das benötigte Verzeichnis und tippe anschließend 
"do simstart.do" ein.
Nun kann ich in den .do scripten aber nicht alles tun, was ich gerne 
möchte, also würde ich diese gerne mit .bat Scripten "verheiraten". Dies 
ist mir leider bisher noch nicht gelungen.

Wie kann ActiveHdl starten, ein .do Script ausführen und anschließend 
wieder schließen?

Wie kann ich ein .bat Script aus einem .do script heraus aufrufen?

Ich freu mich auf sachdienliche Hinweise :-)
  Klaus

von Duke Scarring (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Bei Modelsim gibt man -do auf der Kommandozeile mit:
1
   -do "<command>"         Execute <command> on startup; <command> can be
2
                           a macro filename
ActiveHDL hat da mit Sicherheit auch was.

Die .do-Dateien sind eigentlich tcl-Skripte und werden von einer tclsh 
ausgeführt.
Die passende Dokumentation zu tcl findet man (u.a.) hier:
https://tcl.tk/man/tcl/TclCmd/exec.htm
oder hier:
http://wiki.tcl.tk/1039

Duke

von Fpga I. (fpga-ing)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Duke,

danke für die Antwort.

Duke Scarring schrieb:
> Bei Modelsim gibt man -do auf der Kommandozeile mit:...

das habe ich bei Modelsim bisher auch so gehandhabt. Leider funktioniert 
das nicht mit der vsim.exe des ActiveHdl. Es gibt eine vsimsa.bat/exe, 
die jedoch leider andere Fehlermeldungen generiert. Im Netz habe ich 
hierzu auch noch nicht die passende Lösung gefunden.

Wenn ich in der ActiveHdl Konsole exec < myBatchFile.bat eingebe, 
erhalte ich leider nur die Meldung:
# Error: invalid command name exec

Weitere Ideen?

von Fpga I. (fpga-ing)


Bewertung
0 lesenswert
nicht lesenswert
Hab eine Lösung gefunden:
in den Lattice .do scripten lassen sich command line Befehle mit einem ! 
starten. Ein Backslash (beispielsweise im Pfad) muss dabei mit \ escaped 
werden.

Mein Batch Script starte ich also durch folgende Zeile im .do Script:

!..\\bin\\mybatch.bat myParam1 myParam2

Auch andere Commandline parameter lassen sich so starten:
!del transcript.txt

Für mich ist die Frage also soweit geklärt und die Lösung für die 
Nachwelt dokumentiert :-)

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]
  • [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.