-
Notifications
You must be signed in to change notification settings - Fork 270
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Problem with component binding when using component instantiation #691
Comments
Unfortunately, I cannot reproduce. Copying your three sources to a directory and executing
This is on Windows 10 (MSYS2/MINGW64) using GHDL |
Thank you for your time, @eine! This is interesting - I am running the GHDL This seems to be a GHDL bug then. I think that it would be nice to warn new users of VUnit, if there is a problem with the most recent 'stable' version of GHDL, so that other people going for the 'stable' version of GHDL don't fall into the same trap. |
@DeniTCH, although it is difficult to understand it at first, there is no such concept of "a stable release of GHDL". GHDL is a rolling project. Once a year (around feb-march), a tag is created; but that does not imply any better or worse stability/support. Therefore, you should always use the latest version you can get.
In fact, 'stable' releases of GHDL are the artifacts of one specific nightly run. There is no special build procedure for 'releases'. Moreover, nightly artifacts/assets are only updated if the test suites pass on all platforms. Hence, regressions are rarely introduced in nightlies. Refs:
I believe this is a natural learning process when using GHDL (or any other EDA tool). You (we) need to know the tools, in the sense of understanding what to expect from them. The fact that 'stable' releases are not necessarily more stable than nightlies is one of many peculiarities of GHDL. Others being that three different backends are supported (each with exclusive features), different versions of the standard cannot be mixed (for now), most vendor libraries/sources need a 'relaxed' analysis/elaboration... Therefore, IMHO, it is not reasonable to maintain a list of 'expected bugs' (there are (un)known bugs in other simulators too). Effort is better spent on reporting those bugs upstream and helping get them fixed/tested. Nonetheless, GHDL is the only supported FLOSS simulator. So, it's the only one that allows users to get nightly releases. It would be sensible to have some note in http://vunit.github.io/installing.html#requirements about that. Are you up to submitting a PR? |
Added a note to clarify that GHDL is a rolling project and a recommendation to use the nightly version. Closes VUnit#691
Problem description
I am experiencing problems with GHDL not being able to bind components, when component instantiation is used. I need to use component instantiation instead of entity instantiation for my project, as the version of Xilinx unisim library that I am using depends on it. I have created a MWE, below, that demonstrates the problem. The test_component is supposed to count up until it reaches 10, on every clock cycle. When I run my VUnit python script, I get the following warning:
test_tb.vhdl:26:16:warning: instance "test_component_0" of component "test_component" is not bound [-Wbinding]
The simulation then starts, but the check_equality check fails, as the test_component_0 is never correctly instantiated:
1000000000000 fs - check - ERROR - Equality check failed Counter result: - Got -2147483648. Expected 10.
Minimum working example
Code (run.py):
Code (test.vhdl):
Testbench (tset_tb.vhdl):
The text was updated successfully, but these errors were encountered: