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


von Fpga I. (fpga-ing)


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)


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)


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)


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 :-)

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.