-
Notifications
You must be signed in to change notification settings - Fork 68
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
Module array instances get unrolled during elaboration #2684
Comments
Surelog primary concern is to create a model that is executable by Synthesis (Yosys) and Simulation (Verilator). Elaboration has to happen to achieve that goal. |
Agreed. But why is the non-elaborated model storing elaborated data. Shouldn't the non-elaborated model hold original source? Shouldn't the substitution and unrolling happen as part of elaboration process? This is just one such instance but elaboration seems to be seeping into the non-elaboration side. Without this information none of the tools like Language Server, Lint, and alike would be possible. |
You have to use both non-elaborated and elaborated model and you should have 99% of what you are looking for. |
This would be more work (having to roll back what has been unrolled during elaboration process) than just adding the necessary information to the non-elaborated tree.
We will do the engineering work to get the necessary information in the non-elaborated tree. Specific question - In the non-elaborated tree would the specific instance in this test |
Could you please provide some clarification/guidance on way forward for design. I am working on adding the missing pieces in non-elaborated model #2684 (instantiation of modules, gates, arrays, etc). Want to make sure I follow the committed path and not the abandoned one. UHDM models have specialization for |
I'm about to check in an interface_array example with interfaces being sub elements of the array. #3101 |
For non-elaborated tree - Add both interface_array & module_array For elaborated tree - Add module_array (interface_array exist already)
For non-elaborated tree - Add both interface_array & module_array For elaborated tree - Add module_array (interface_array exist already)
For non-elaborated tree - Add both interface_array & module_array For elaborated tree - Add module_array (interface_array exist already)
Fixed by #3200 |
Test: ArrayInst
Issue: Both arrays
q
andflop_instances
get unrolled during elaboration losing the original context.Expected: Unrolled instances of modules would retain some context of original source. Also, need to track the original Range and corresponding location information.
The text was updated successfully, but these errors were encountered: