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 #624
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
Signed-off-by: Ryszard Rozak <rrozak@antmicro.com>
* Refactor V3Delay for extensibility Introduce the concept of an "NBA Scheme", which is the lowering pattern we can use for various variables that are the targets of NBAs. E.g.: - ShadowVariable (old default scheme) - FlagShared (old array set flag scheme) - ValueQueueWhole (recent dynamic commit queue) We now analyse all AstAssignDly before making any decisions on which scheme to apply. We then choose a specific scheme for each variable that is the target of an NBA, and then all NBAs targeting that variable use the same scheme. This enables easy mix and match of schemes as needed, while remaining consistent by design after extensions. Output is perturbed due to node insertion order, but no functional or performance change is intended.
An ordering constraint between NBA commit blocks ('Post' logic) and the written variable were previously added as soft constraints (cutable edges). However these are required for correctness, so if it ever is cut we will have incorrect simulation results. Change these into hard constraints instead. This necessitates adding a flag on AstVar to ignore special variables constructed during V3Delayed that might otherwise appear as degenerate logic loops. E.g.: if (VdlySet) { VdlySet = 0; // <- This write to VdlySet can and must be ignored LHS = VdlyVal; } No functional change, but you might get an error if this constraint was ever violated. (Theoretically it should never be, as these variables were inserted in a way that does not require violating these constraints ...)
…Ignore whitespace if diff.
Signed-off-by: Ryszard Rozak <rrozak@antmicro.com>
Signed-off-by: Ryszard Rozak <rrozak@antmicro.com>
…5544) Instead of installing redirect scripts in to bindir, and real executables in to pkgdatadir/bin, we now put the real executables into bindir, and add redirect scripts into pkgdatadir/bin. (That is, we redirect in the opposite direction as before). This enables the same relocatable and testable installations as before without putting architecture specific binaries into pkgdatadir, so hopefully we now conform to the Linux Filesystem Hierarchy Standard. This requires a small fixup in the installed `verilator` script to hardcode the relative path between bindir and pkgdatadir. Fixes #5140
Use a generational allocator for reusing AstConst across V3Simulate::clear(), instead of using user1 (which is also used to store values of nodes). Also fix invalid lookup on array initializer
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 : )