Few patch to improve Vivado code case support#107
Few patch to improve Vivado code case support#107JackCarterSmith wants to merge 13 commits intoVHDL:devfrom
Conversation
The message of the exception are not formatted properly. Parse the list of root and retrieve the correct string from them.
Vivado use sometimes the "use lib.all" to list libs in subfolder format. Added a validity check on libraryName variable to ignore such case when parsing. IP in Vivado are instanciated as component, this behavior crash the EdgeToVertex resolve for this _dependencyVertex. Added a validity check on the component.Entity for now, until the entity<->component is done.
Not up to standards ⛔
|
|
Thanks for your PR. I'll check it. Some feedback sofar:
|
|
Is your component in an architecture, but not in a package? |
|
My intermediate state:
I searched At next I see this error:
This is caused by |
I'm not sure how Vivado declare its own IP (I see the lib is forced to "xil_defaultlib"), I only see instanciation with component in architecture section + instance in begin section of the architecture.
Thanks for reviewing the fixes, maybe I got trouble with components linking due to generate statement in my VHDL indeed. I'll check it.
There are in
Yes, I got stuck on it too. (I mentionned it in this issue of pyGHDL repo) |
Hi,
I've used pyVHDLModel parser through pyGHDL.dom to parse some Xilinx Vivado VHDL source.
I've encountered several issues that cause the parser to hang in the following cases:
pyVHDLModel crash on that because the libraryName value can't be extracted due to the absence of the "package.lib.all" syntax.
So I added a few checks to prevent crashes and exceptions. Ideally, though, I would have preferred that the components be properly linked or treated as black boxes if no entity is found during parsing.
In my humble opinion, this is just “hacks”.
If you have any ideas for improvements or better ways to approach things, I'm all for it.
Thanks again, though, for all the impressive work you've done so far!