Set VHDL assert condition initial state if fed by FF #4654
Merged
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.
What are the reasons/motivation for this change?
If we have assert that is inside VHLD process, it fails since condition signal is coming from uninitialized FF.
Please note that this primitive is VHDL only so it will not affect SVA code path.
Also there is left-over from past and there was never an "assume" attribute to convert this to assume.
Explain how this is achieved.
Initial state in condition wire is set to 1, making assert not trigger on its undefined state.
Since condition signal may originate from any internal signal (including register) we are checking if it is public.
Note that it will use register condition directly only if outside process block.