2016-05-03 16 views
34

私はコマンドライン引数-modelsimini <modelsim.ini>を使用して、ほとんどのQuestaSim/ModelSim実行ファイルに自分自身のmodelsim.iniファイルを指定しています。vsimはWindows上で-modelsiminiパラメータを受け付けません

これは、Linuxの場合、vcomvsim、およびWindowsの場合はvcomで完璧に機能します。しかし、Windowsのvsimは中止され、エラーがスローされます。

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 

modelsim.iniファイルが存在し、以下の内容を持っていた:

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

(。ベンダーのツールは、そのライブラリのマッピングを追加する場合は、このファイルには、より多くの行が含まれています)

modelsim.ini設定ファイルをvsim.exeに渡すにはどうすればよいですか? Windows上

+18

私はdownvoterではありませんが、どこにでも表示される-modelsiminiコマンドライン引数が表示されます* Windowsシステムでは、パス区切りはスラッシュ(/)でなければなりません。* [ModelSim®Reference Manual Softwareバージョン10.1c](http://www.cc.gatech.edu/~hadi/teaching/cs3220/01-2014fa/doc/modelsim/ModelSim_Reference_Manual_v10.1c.pdf)を10か所位置いています。同じ文章が見つかったQuestasimユーザーマニュアルには少なくとも1つの場所があります(最初に見つけました)。あなたがそれを見つけるほど、行動は奇妙ではないかもしれません。 – user1155120

+1

@Gab申し訳ありません。これは私の意図ではありませんでした。報告された問題は、より広範囲に広がっているようです。 – Paebbels

答えて

5

TCLではバックスラッシュの代わりにfile names are specified with forward slashesが必要なので、これをバグとみなすべきかどうかは疑問です。もちろん、vcomまたはvsimを呼び出すと、ファイル名が同じ方法で処理されることが予想されます。だから、この観点からの解決策は、スラッシュでパスを指定することです:

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 

は、WindowsでのModelSim 10.1dとここでそれをチェックして、私の一時ディレクトリにあるmodelsim.ini。


vsim TCLコンソールの下にいくつかの実験では-modelsiminiファイル名がvcomvsimコマンドによって異なる方法で処理されることが明らかになりました。

:これを防ぐために

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. 

、引数は中括弧で例えば{}を置くことができます:最初のバックスラッシュは、ファイル名に\tは、例えばタブに展開され、エスケープシーケンスを示し、

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. 

存在しないファイルを指定しました。拡張子がわかるようにしました。ファイルc:\tmp\modelsim.iniを作成すると、vcomが期待通りに処理されます。はい、ここではファイル名のバックスラッシュは許可されています。

我々は、vsimにエラーメッセージ(と実際の行動を)同じ引数を与えるとは異なります。

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 

ファイル名引数は、以前と同じ方法で処理されます。しかし、vsimスクリプトでは、引数のあちこちにもう1組の中括弧が追加されます。この動作は意味をなさないため、バグとみなしてください。 vsimは、最終的にWindowsファイルシステム上に見つからない{c:\tmp\modelsim.ini}というファイルを探します。エラーメッセージでは、ファイル名も中括弧で囲まれています。

+0

以前のModelsimコマンドラインインタプリタは、VHDL '93の拡張識別子が出現するまで、バックスラッシュをパス区切り文字とみなしていたようです。拡張識別子を使用可能にするスイッチがありましたが、パス区切り文字にはスラッシュを使用する必要がありました。 [ModelSimコマンドリファレンス5.5e](http://www2.informatik.hu-berlin.de/~fwinkler/psvfpga/synthese/MXE-Dokumentation/oem_cmds.pdf)を参照してください。CR-15、CR-11拡張識別子これはコマンドライン引数の制限だとわかります。それは意味を作ることが視野の問題であるように見えるでしょう。 – user1155120

24

QuestaSimのvsim実行は-modelsiminiコマンドラインスイッチで(パス区切り記号として\を使用して)、Windowsのパスに対応できません。パスはposix書込みでなければなりません(/デリミタを使用)。

私が見る限り、vcomは正しいパス区切り記号に問題はありません。

+7

それは答えかコメントですか? – TaW

+4

@TaWこの回答は私の特定の質問を解決するので、それは定義による答えです。さらに、解決策として正解をマークする唯一の方法です。あなたはコメントを受け入れることはできません。それがあなたの懸念事項なのであれば、私は自問自答の評判も得ていません... Btw。短いですが、正解はまだ答えです。 – Paebbels

+3

@Paebbels自問自答によって評判が得られないということはどういう意味ですか?私が信じるコミュニティウィキとマークされていない限り、あなたは評判を得る。 –

関連する問題