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
No more name mangling #336
Conversation
|
Apparently, this unmangling messes up cosimulation because this expects the mangled names (if any ...) |
reaming the simulation objects
|
It does fail then as well; so I believe it is warranted to publish my change and add a |
|
We should fix the tristate test, surely? |
IMO that is also a contrived test. |
the test module? |
to start with. I am trying to do this on my machine without updating the PR all the time |
I guess I need some help to get Cosimulation running, spent all afternoon on it. Note that I want to run it from within Eclipse (all my tools in one place: PyDev, Impulse, Sigasi, XML, MarkDown, etc.) And Windows 10 ... |
Well, that sounds unnecessarily painful. Why not run a linux virtual machine for testing? It's easy to have it all synced so you mount the relevant folders on the linux machine. |
|
Running Linux is a pita, I have to look up about every command. And installing SW is quite often as painful, if not more, as in Windows. I started a Linux box but gave up ... |
|
@josyb I suspect your issues are more around relative comfort. I could build you a virtualbox image if you want? |
|
Might have mentioned before, but it might be worth investing into a one time docker setup for Windows to run prefabricated reference environments for testing, so you don't need to juggle with SW packages. Here's a container that has fairly recent ghdl/iverilog etc. installed to run all the co-sim tests: The only thing on Windows you'll need is to install the Docker Toolbox (https://www.docker.com/products/docker-desktop). And I don't know how painful it is these days to mount local volumes. |
|
You see, all this virtualenv and docker stuff is only needed because software gets broken even between minor releases ... It is bad enough that my disk is filling up with different Vivado and Quartus versions ... Just package the complete mess and defer it to the customer. (I must be ranting ...) |
|
@josyb ?? The problem seems to be around installing the relevant tools to do testing. What does that have to do with backwards compatibility? Moreover, are we really at the point we should lock down our API? |
|
@hgomersall You are right, it is about installing tools to test. It took me several installations of MingW/MSys before I managed to execute iverilog-vpi.exe to build myhdl.vpi and yet it doesn't work. In (my) ideal world, that myhdl.vpi would come ready with the MyHDL package and would run with any version of iverilog (not older than the myhdl.vpi, I agree) |
|
@josyb Don't forget the current release is 0.11. Major API changes are still possible before 1.0. Or am I missing something? BTW: Thank you so much for your hard work on myhdl. I really want to use it at work but it's hard to convince my boss because the community around it is too small 😥 |
It is a matter of principle: IMO you try to avoid breaking code, unless absolutely necessary.
Convincing the boss is never easy, but he/she will appreciate the quality and speed of your work in MyHDL |
You can start by writing modules in MyHDL and then using the resultant generated code. |
I do appreciate the sentiment, and I basically agree, but the question is what is absolutely necessary. I'm coming round more to the idea that you should version pin dependencies, then it matters less. |
changing more names (in parallel with PR myhdl#336)
|
@hgomersall @jck I am afraid that in cosimulation one has strict rules to follow or it breaks. You can see in PR #339 that it can be broken too in the current state of the master branch. |
…ws 10, properly (auto-)formatted the source util.py: changed the myhdl.vpi path to defaukt to iverilog's known system path test_tristate.py: the TestTristate class re-used the tristate_obuf.o for the test with the interface; which put iverilog on the wrong foot ...
After all the symptom there in PR #339 is what I cured here. I took me a while before I spotted that iverilog re-used |
|
What's happening with this PR? |
|
Let's rerun the tests with the latest test matrix. I've been running this change for a while now and it all seems good. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This all looks good to me. It's also been tested extensively at my end for since the original PR.
This resolves the name mangling issue on converting top level interfaces.
This is an issue that comes up regularly, e.g. https://discourse.myhdl.org/t/unexpected-signal-name-in-converted-vhdl/389, https://discourse.myhdl.org/t/conversion-naming-issue/373, @hgomersall