forked from verilator/verilator
-
Notifications
You must be signed in to change notification settings - Fork 6
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
[pull] master from verilator:master #618
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* Fix writing to SystemC values with `VL_ASSIGN_SBW` Signed-off-by: Krzysztof Bieganski <[email protected]> Co-authored-by: Bartłomiej Chmiel <[email protected]>
…4873) When the condition of an AstWhile loop contains a statement (e.g. through an AstExprStmt), temporaries inserted in that statement need to go before that statement, not in the AstWhile precondition.
Checking the wrong node meant we never actually pushed constant bit-select indices into the delayed update, as was the intention, but always generated a temporary instead.
No functional change. This patch is just cleanup with some non-functional changes to enable the next patch. Most importantly createDlyOnSet, which implements NBAs for arrays, has a new streamlined implementation that does the same thing. Some output code is perturbed due to statement/local variable insertion order. Also renamed Vdlyvfoo to VdlyFoo for easier readability of the generated code.
No functional change. Postpone the conversion of all AstAssignDlys that use the 'VdlySet' scheme for array LHSs until after the complete traversal of the netlist. The next patch takes advantage of this by using some extra information also gathered through the traversal to change the conversion. AstAssignDlys inside suspendable or fork are not deferred and are processed identical to the previous version. There are some TODOs in this patch that are fixed in the next patch. Output code perturbed due to variable ordering. MULTIDRIVEN message ordering perturbed due to processing order change.
For NBAs that might execute a dynamic number of times in a single evaluation (specifically: those that assign to array elements inside loops), we introduce a new run-time VlNBACommitQueue data-structure (currently a vector), which stores all pending updates and the necessary info to reconstruct the LHS reference of the AstAssignDly at run-time. All variables needing a commit queue has their corresponding unique commit queue. All NBAs to a variable that requires a commit queue go through the commit queue. This is necessary to preserve update order in sequential code, e.g.: a[7] <= 10 for (int i = 1 ; i < 10; ++i) a[i] <= i; a[2] <= 10 needs to end with array elements 1..9 being 1, 10, 3, 4, 5, 6, 7, 8, 9. This enables supporting common forms of NBAs to arrays on the left hand side of <= in non-suspendable/non-fork code. (Suspendable/fork implementation is unclear to me so I left it unchanged, see #5084). Any NBA that does not need a commit queue (i.e.: those that were supported before), use the same scheme as before, and this patch should have no effect on the generated code for those NBAs.
Signed-off-by: Bartłomiej Chmiel <[email protected]> Co-authored-by: Ryszard Rozak <[email protected]> Co-authored-by: Wilson Snyder <[email protected]> Co-authored-by: Arkadiusz Kozdra <[email protected]>
+ don't remove forced signals in V3Const and Dfg Fixes #5062
* Internals: Move getenvStr to verilatedos. No functional change intended. * Fix POS34-C. Do not call putenv() with a pointer to an automatic variable as the argument. Signed-off-by: Arkadiusz Kozdra <[email protected]>
Signed-off-by: Krzysztof Bieganski <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by pull[bot]
Can you help keep this open source service alive? 💖 Please sponsor : )