forked from verilator/verilator
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Make incorrect soft ordering constraint into a hard constraint.
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 ...)
- Loading branch information
Showing
3 changed files
with
18 additions
and
16 deletions.
There are no files selected for viewing
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
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
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