vhdl modelsim questasim

vhdl - vsim no acepta el parámetro-modelsimini en Windows



questasim (2)

El ejecutable vsim de vsim en Windows no puede hacer frente a las rutas de Windows (usando / como signo delimitador de ruta) en el -modelsimini línea de comando -modelsimini . La ruta debe estar en la escritura posix (usando / delimitadores).

Por lo que puedo ver, vcom no tiene problemas con el signo de delimitador de ruta correcto.

Estoy usando el argumento de la línea de comando -modelsimini <modelsim.ini> para especificar mi propio archivo modelsim.ini para la mayoría de los ejecutables de QuestaSim / ModelSim.

Esto funciona perfectamente bien en Linux para vcom y vsim , así como para vcom en Windows. Pero el vsim Windows aborta y arroja un error:

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

Los archivos modelsim.ini existen y tienen el siguiente contenido:

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

(Este archivo contendrá más líneas si las herramientas del proveedor agregan sus asignaciones de biblioteca).

¿Cómo puedo pasar mi propio archivo de configuración vsim.exe a vsim.exe ?


Es cuestionable si esto se debe considerar como un error o no, ya que TCL requiere que los nombres de archivo se especifiquen con barras diagonales en lugar de barras diagonales inversas. Por supuesto, uno esperaría que los nombres de archivo se manejen de la misma manera cuando se llama a vcom o vsim . Entonces, la solución desde este punto de vista es especificar la ruta con barras diagonales:

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

Lo comprobé aquí con ModelSim 10.1d en Windows y un modelsim.ini en mi directorio temporal.

Algunos experimentos bajo la consola vsim TCL revelan que el -modelsimini archivo -modelsimini es manejado de manera diferente por los comandos vcom y vsim . Al principio, una barra invertida indica una secuencia de escape, un /t en el nombre de archivo se expande a una pestaña, por ejemplo:

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.

Para evitar esto, el argumento se puede poner entre llaves {} por ejemplo:

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.

Especifiqué un archivo inexistente, para que uno pueda ver la expansión. Si creo el archivo c:/tmp/modelsim.ini , vcom procederá como se espera. Sí, las barras invertidas en nombres de archivos están permitidas aquí.

Si le damos los mismos argumentos a vsim , los mensajes de error (y el comportamiento real) serán diferentes:

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

El argumento de nombre de archivo se procesará de la misma manera que antes. Pero luego la vsim comandos de vsim agrega otro par de llaves alrededor del argumento expandido . Este comportamiento se debe considerar como un error, ya que no tiene ningún sentido. vsim finalmente busca un archivo llamado {c:/tmp/modelsim.ini} que nunca se puede encontrar en un sistema de archivos de Windows. En su mensaje de error, el nombre de archivo también está rodeado por llaves.