34 votes

vsim n'accepte pas le paramètre -modelsimini sous Windows

J'utilise l'argument de la ligne de commande -modelsimini <modelsim.ini> pour spécifier mes propres modelsim.ini pour la plupart des exécutables de QuestaSim / ModelSim.

Cela fonctionne parfaitement bien sous Linux pour vcom y vsim ainsi que pour vcom sur Windows. Mais le système Windows vsim abandonne et envoie une erreur :

C:\Mentor\QuestaSim64\10.4c\win64\vsim.exe -do "do D:/git/PoC/sim/vSim.batch.tcl" -c -modelsimini D:\git\PoC\temp\precompiled\vsim\modelsim.ini -error 3473 -t 1fs test.arith_prng_tb
Reading C:/Mentor/QuestaSim64/10.4c/tcl/vsim/pref.tcl

# 10.4c

# ** Error: (vsim-7) Failed to open -modelsimini file "{D:\git\PoC\temp\precompiled\vsim\modelsim.ini}" in read mode.
#
# Invalid argument. (errno = EINVAL)
# Error loading design
Error loading design
# Errors: 1, Warnings: 0

El modelsim.ini existe et a le contenu suivant :

[Library]
others = $MODEL_TECH/../modelsim.ini

(Ce fichier contiendra plus de lignes si les outils des fournisseurs ajoutent leurs mappages de bibliothèque).

Comment puis-je passer mon propre modelsim.ini dans le fichier de configuration vsim.exe ?

25voto

Paebbels Points 4076

Le site de QuestaSim vsim sous Windows ne peut pas gérer les chemins d'accès de Windows (en utilisant la fonction \ comme signe de délimitation du chemin) dans le -modelsimini le commutateur de ligne de commande. Le chemin doit être en écriture posix (en utilisant / délimiteurs).

D'après ce que je vois, vcom n'a aucun problème avec le signe de délimitation correct du chemin.

5voto

Martin Zabel Points 3071

On peut se demander si cela doit être considéré comme un bogue ou non car TCL exige que les noms de fichiers sont spécifiés avec des barres obliques au lieu des barres obliques inversées. Bien sûr, on pourrait s'attendre à ce que les noms de fichiers soient traités de la même manière lors de l'appel à vcom o vsim . La solution de ce point de vue est donc de spécifier le chemin d'accès avec des barres obliques :

C:\Mentor\QuestaSim64\10.4c\win64\vsim.exe -do "do D:/git/PoC/sim/vSim.batch.tcl" -c -modelsimini D:/git/PoC/temp/precompiled/vsim/modelsim.ini -error 3473 -t 1fs test.arith_prng_tb

Je l'ai vérifié ici avec ModelSim 10.1d sous Windows et un modelsim.ini dans mon répertoire temporaire.


Certaines expériences dans le cadre du vsim La console TCL révèle que -modelsimini est traité différemment par la fonction vcom y vsim des commandes. Au début, une barre oblique inverse indique une séquence d'échappement, un \t dans le nom du fichier est étendu à un onglet, par exemple :

vcom -modelsimini c:\tmp\modelsim.ini test.vhdl
# ** Error: (vcom-7) Failed to open -modelsimini file "c:   mpmodelsim.ini" in read mode.
# 
# Invalid argument. (errno = EINVAL)
# D:/altera/13.1_web/modelsim_ase/win32aloem/vcom failed.

Pour éviter cela, l'argument peut être mis entre accolades {} par exemple :

vcom -modelsimini {c:\tmp\modelsim.ini} test.vhdl
# ** Error: (vcom-7) Failed to open -modelsimini file "c:\tmp\modelsim.ini" in read mode.
# 
# No such file or directory. (errno = ENOENT)
# D:/altera/13.1_web/modelsim_ase/win32aloem/vcom failed.

J'ai spécifié un fichier inexistant, afin que l'on puisse voir l'expansion. Si je crée le fichier c:\tmp\modelsim.ini , vcom se déroulera comme prévu. Oui, les backslashes dans les noms de fichiers sont autorisés ici.

Si nous donnons les mêmes arguments à vsim les messages d'erreur (et le comportement réel) seront différents :

vsim -modelsimini c:\tmp\modelsim.ini test
# vsim -modelsimini {{c:    mpmodelsim.ini}} test 
# ** Error: (vsim-7) Failed to open -modelsimini file "{c:  mpmodelsim.ini}" in read mode.
# 
# No such file or directory. (errno = ENOENT)
# Error loading design

vsim -modelsimini {c:\tmp\modelsim.ini} test
# vsim -modelsimini {{c:\tmp\modelsim.ini}} test 
# ** Error: (vsim-7) Failed to open -modelsimini file "{c:\tmp\modelsim.ini}" in read mode.
# 
# Invalid argument. (errno = EINVAL)
# Error loading design

L'argument nom-fichier sera traité de la même manière que précédemment. Mais alors l'argument vsim script ajoute une autre paire d'accolades autour de la balise élargi argument. Ce comportement doit être considéré comme un bogue, car il n'a aucun sens. vsim cherche finalement un fichier appelé {c:\tmp\modelsim.ini} qui ne peut jamais être trouvé sur un système de fichiers Windows. Dans votre message d'erreur, le nom du fichier est également entouré d'accolades.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X