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

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

cela fonctionne parfaitement sur Linux pour vcom et vsim, ainsi que vcom sur Windows. Mais le Windows vsim annule et envoie une erreur:

C:MentorQuestaSim64.4cwin64vsim.exe -do "do D:/git/PoC/sim/vSim.batch.tcl" -c -modelsimini D:gitPoCtempprecompiledvsimmodelsim.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:gitPoCtempprecompiledvsimmodelsim.ini}" in read mode.
#
# Invalid argument. (errno = EINVAL)
# Error loading design
Error loading design
# Errors: 1, Warnings: 0

modelsim.ini fichiers existe et a le contenu suivant:

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

(ce fichier contiendra plus de lignes si les outils du fournisseur ajoutent leur bibliothèque adressages.)

Comment puis-je transmettre ma propre modelsim.ini fichier de configuration vers <!--10?

34
demandé sur Paebbels 2016-05-04 02:26:12

2 réponses

on peut se demander si cela doit être considéré comme un bogue ou non parce que TCL exige que les noms de fichiers sont spécifiés avec slashs forward au lieu de Taillades en arrière. Bien sûr, on s'attendrait à ce que les noms de fichiers soient traités de la même manière lors de l'appel vcom ou vsim. Donc la solution de ce point de vue est de spécifier le chemin avec des slashs en avant:

C:\Mentor\QuestaSim64.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

vérifié ici avec ModelSim 10.1 d Sous Windows et un modelsim.ini dans mon temporaire répertoire.


Quelques expériences en vertu de l' vsim la console TCL révèle que -modelsimini le nom du fichier est traité différemment par vcom et vsim commandes. Au début, un antislash indique une séquence d'évasion, un \t dans le nom de fichier est élargi à 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, pour qu'on puisse voir expansion. Si j'ai créer le fichier c:\tmp\modelsim.ini,vcom se déroulera comme prévu. Oui, les barres obliques inverses dans les noms de fichier sont autorisés ici.

si nous donnons les mêmes arguments à vsim, les messages d'erreur (et le comportement réel) sera différent:

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 file-name sera traité de la même manière qu'avant. Mais alors le vsim script ajoute une autre paire de broches bouclées autour de la étendu argument. Ce comportement doit être considéré comme un insecte, parce que ça n'a aucun sens. vsim enfin recherche 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 de fichier est également délimité par des accolades.

5
répondu Martin Zabel 2016-05-04 16:06:25

QuestaSim est vsim l'exécutable sous Windows ne peut pas prendre en charge les chemins Windows (en utilisant \ comme signe de délimiteur de chemin) dans le -modelsimini commutateur de ligne de commande. Le chemin doit être en écriture posix (en utilisant / délimiteurs).

pour autant Que je peux voir, vcom n'a aucun problème avec le signe correct de délimiteur de chemin.

24
répondu Paebbels 2016-05-04 02:57:34