Closed LeChuck42 closed 1 year ago
This is the same problem from #2941. Both are Windows + conda. One is Riviera, the other is Questa.
This is apparently some path conversion when calling vsimsa
from sh
GPI_EXTRA inside vsimsa:
C;C:\Users\***\Miniconda3\envs\cocotb\Library\Users\***\Miniconda3\envs\cocotb\lib\site-packages\cocotb\libs\cocotbvhpi_aldec.dll;cocotbvhpi_entry_point
Some tests:
> set TEST=C:/Testing:foobar
> echo %TEST%
C:/Testing:foobar
> vsimsa -do "echo $::env(TEST)"
# Aldec, Inc. Riviera-PRO version 2021.10.114.8313 built for Windows64 on October 29, 2021.
# HDL, SystemC, and Assertions simulator, debugger, and design environment.
# (c) 1999-2021 Aldec, Inc. All rights reserved.
# C:/Testing:foobar
> sh
sh-4.3$ echo $TEST
C:/Testing:foobar
sh-4.3$ vsimsa -do "echo $::env(TEST)"
# Aldec, Inc. Riviera-PRO version 2021.10.114.8313 built for Windows64 on October 29, 2021.
# HDL, SystemC, and Assertions simulator, debugger, and design environment.
# (c) 1999-2021 Aldec, Inc. All rights reserved.
# C;C:\Users\***\Miniconda3\envs\cocotb\Library\Testing;foobar
When using backslashes the conversion doesn't trigger:
> set TEST2=C:\Testing:foobar
> sh
sh-4.3$ vsimsa -do "echo $::env(TEST2)"
# Aldec, Inc. Riviera-PRO version 2021.10.114.8313 built for Windows64 on October 29, 2021.
# HDL, SystemC, and Assertions simulator, debugger, and design environment.
# (c) 1999-2021 Aldec, Inc. All rights reserved.
# C:\Testing:foobar
Thanks for figuring that out!
Is that sh
you are running from a conda package?
This is apparently some path conversion when calling
vsimsa
fromsh
GPI_EXTRA inside vsimsa:
C;C:\Users\***\Miniconda3\envs\cocotb\Library\Users\***\Miniconda3\envs\cocotb\lib\site-packages\cocotb\libs\cocotbvhpi_aldec.dll;cocotbvhpi_entry_point
Some tests:
> set TEST=C:/Testing:foobar > echo %TEST% C:/Testing:foobar > vsimsa -do "echo $::env(TEST)" # Aldec, Inc. Riviera-PRO version 2021.10.114.8313 built for Windows64 on October 29, 2021. # HDL, SystemC, and Assertions simulator, debugger, and design environment. # (c) 1999-2021 Aldec, Inc. All rights reserved. # C:/Testing:foobar > sh sh-4.3$ echo $TEST C:/Testing:foobar sh-4.3$ vsimsa -do "echo $::env(TEST)" # Aldec, Inc. Riviera-PRO version 2021.10.114.8313 built for Windows64 on October 29, 2021. # HDL, SystemC, and Assertions simulator, debugger, and design environment. # (c) 1999-2021 Aldec, Inc. All rights reserved. # C;C:\Users\***\Miniconda3\envs\cocotb\Library\Testing;foobar
When using backslashes the conversion doesn't trigger:
> set TEST2=C:\Testing:foobar > sh sh-4.3$ vsimsa -do "echo $::env(TEST2)" # Aldec, Inc. Riviera-PRO version 2021.10.114.8313 built for Windows64 on October 29, 2021. # HDL, SystemC, and Assertions simulator, debugger, and design environment. # (c) 1999-2021 Aldec, Inc. All rights reserved. # C:\Testing:foobar
So, as the result: did you run successfully your script? Did you add some changes in make or other files?
Is that
sh
you are running from a conda package?
Yes, correct.
So, as the result: did you run successfully your script? Did you add some changes in make or other files?
I switch to another system running Linux, avoiding the issue.
Thanks for figuring that out!
Is that
sh
you are running from a conda package?
Could you tell me please, may I add described above changes into necessary files (and which one) for successful compilation?
This seems like a Riviera-PRO issue isn't it? The variable in sh
is fine, but in Riviera it's screwed up. My guess is Riviera sees it's on Windows running from a POSIX shell then decides to convert the variable, which it assumes is a PATH-like variable from POSIX shell, into Windows style PATH-like. Maybe they should only be doing that on specific variables and not all of them...
I met the same issue.
I try to hardcode the path in GpiCommon.cpp
:
if (strlen(lib_env) >= 2 && lib_env[1] == ';')
{
// only available for my computer and verilog-vhdl situation
lib_list = "C:/ProgramData/Anaconda3/lib/site-packages/cocotb/libs/cocotbfli_modelsim.dll:cocotbfli_entry_point";
printf("new GPI_EXTRA: %s\n", lib_list.c_str());
}
it is ugly but seems to be ok.
Has your question been resolved? If so please close this issue. If it has not been resolved, you may need to provide more information. If no more activity on this issue occurs in 7 days, it will be closed.
This has not yet been solved afaik. If it won't be fixed, maybe it should at least be noted in the documentation (installation instructions)?
I think it was auto-closed because the question
label wasn't removed once it was confirmed to be an issue. I can reopen it, but it would be nice to know what exactly the problem is and what this repo can do to solve it. From the above comments it seems like it's an issue with either Riviera or msys2's make or sh, so I'm not sure what can be done here. As for documenting the problem, this issue serves as documentation.
I'm trying to run the examples after installing cocotb. I followed the installation instructions.
Installed versions (running on Win10 x64):
Error Log: