Fixing Access to the Main Memory by Cache/UART in Simulation#132
Open
Joao-Pedro-Cabral wants to merge 2 commits intovproc:mainfrom
Open
Fixing Access to the Main Memory by Cache/UART in Simulation#132Joao-Pedro-Cabral wants to merge 2 commits intovproc:mainfrom
Joao-Pedro-Cabral wants to merge 2 commits intovproc:mainfrom
Conversation
Contributor
|
Due to other bugs with the caches, they have been dropped from further development efforts |
Author
|
But now, you don't use caches for simulation and in FPGA?
|
Contributor
|
We are working on replacements/other cache options. Due to bugs with these cache modules, we will not be supporting them. Specifically, one issue we have found involves data corruption caused by a single cycle of reading to the wrong cache way. Feel free to continue using them, or use other better verified memory/cache modules. |
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.
This commit fixes multiple bugs correlated to the use of the cache and the UART in the testbench.
The main problem is that in the current code, if when accessing the UART addresses for
VMEM_W>32(orDCACHE_LINE>32) it causes a memory exception and the code enters in infinite loop at the exception handler.This bug happens because the UART memory address is illegal for the RAM (which makes sense), so the RAM issues an error, but in this situation the UART simulator (presents in
verilator_main.cpp) must clear the error.The official implementation only works correctly for
VMEM_W=32, in the other cases the error is not cleared.