vsim не принимает параметр-modelsimini в Windows
Я использую аргумент командной строки -modelsimini <modelsim.ini>
, чтобы указать мой собственный modelsim.ini
файл для большинства исполняемых файлов QuestaSim / ModelSim.
это отлично работает в Linux для vcom
и vsim
, а также vcom
на Windows. Но окна! .. --5--> прерывается и выдает ошибку:
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
файлы существуют и имеют следующий контент:
[Library]
others = $MODEL_TECH/../modelsim.ini
(этот файл будет содержать больше строк, если инструменты поставщика добавят свою библиотеку отображения.)
как я могу пройти свой собственный modelsim.ini
конфигурационный файл vsim.exe
?
2 ответов
сомнительно, следует ли это рассматривать как ошибку или нет, потому что TCL требует этого имена файлов задаются косыми чертами вместо обратных косых черт. Конечно, можно было бы ожидать, что имена файлов обрабатываются одинаково при вызове vcom
или vsim
. Таким образом, решение с этой точки зрения-указать путь с прямыми косыми чертами:
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
проверил его с ModelSim выступает 10.1 D под окнами и ModelSim выступает.ini в моем временном справочник.
некоторые эксперименты под vsim
TCL консоль показывает, что -modelsimini
имя файла обрабатывается по-разному vcom
и vsim
команды. Сначала обратная косая черта указывает на escape-последовательность, a \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.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
аргумент file-name будет обработан так же, как и раньше. Но тогда vsim
скрипт добавляет еще одну пару фигурных скобок вокруг расширен
QuestaSim это vsim
исполняемый файл в Windows не может справиться с путями Windows (используя \
как знак разделителя пути) в -modelsimini
переключатель командной строки. Путь должен быть в записи posix (используя /
разделители).
насколько я вижу, vcom
не имеет проблем с правильным знаком разделителя пути.