Repository navigation
Conversation
- Start error_injection_mode at 0, as upstream now resets it - A 4-state simulation no longer flips bits in DCCM writes
This file contains hidden or 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
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.
I'm running RTLMeter on a 4-state simulator, and VeeR-EL2 takes more cycles there than on Verilator for the same program.
dhryat one iteration retires the same 14,260 instructions in 17,532 cycles instead of 15,248, so the timings stop being comparable, even though the test still passes.error_injection_modeis declared with no initial value, so on a 4-state simulator it starts as x.rtlmeter/designs/VeeR-EL2/src/tb_top.sv
Line 525 in f63e557
The DCCM injection block then never takes its "injection off" branch, so every DCCM write gets a bit flipped, and the core spends the extra cycles correcting them. On Verilator the mode starts at 0, so nothing is injected.
rtlmeter/designs/VeeR-EL2/src/tb_top.sv
Lines 1748 to 1756 in f63e557
Upstream VeeR-EL2 has since fixed this by resetting the mode to 0 (chipsalliance/Cores-VeeR-EL2@21c5e9b), after the revision this copy was taken from. This change gives it an initial value of 0 instead, which leaves Verilator's behaviour unchanged and makes the 4-state cycle counts match it.
VeeR-EL2:default:hello,cmarkanddhrystill pass on Verilator.