我正在使用命令行参数-modelsimini <modelsim.ini>为大多数QuestaSim / ModelSim可执行文件指定自己的modelsim.ini文件。

对于vcomvsim以及Windows上的vcom来说,这在Linux上工作得很好。但是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

最佳答案

值得怀疑的是,这是否应该视为错误,因为TCL要求使用file names are specified with forward slashes而不是反斜杠。当然,人们希望在调用vcomvsim时以相同的方式处理文件名。因此,从这个 Angular 来看,解决方案是使用斜杠指定路径:

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控制台下进行的一些实验表明,-modelsiminivcom命令对vsim文件名的处理方式有所不同。首先,反斜杠表示转义序列,文件名中的\t扩展为制表符,例如:
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.

为了防止这种情况,可以将参数放在大括号{}中,例如:
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.inivcom将按预期进行。是的,此处允许在文件名中使用反斜杠。

如果我们给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

file-name参数的处理方式与以前相同。但是,然后vsim脚本在扩展的参数周围添加了另一对花括号。此行为应视为错误,因为它没有任何意义。 vsim最终寻找一个名为{c:\tmp\modelsim.ini}的文件,该文件在Windows文件系统上永远找不到。在错误消息中,文件名也用花括号括起来。

关于vhdl - vsim在Windows上不接受-modelsimini参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37016020/

10-10 02:59